From f5538cba6fdef3e474fdf031dd40b1439b38effd Mon Sep 17 00:00:00 2001 From: "Chris Ross (ASP.NET)" Date: Fri, 17 Jul 2020 23:07:49 +0000 Subject: [PATCH 001/187] Merged PR 9144: [5.0-preview8] Pass RequestAborted to SendFileAsync This is a cherry pick of the 3.1 PR. https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore/pullrequest/9042 The only change was to remove a questionable call to Abort after catching the exception. There are some less severe issues in Kestrel and MVC that we'll follow up on publicly after this releases. --- .../src/SendFileResponseExtensions.cs | 23 ++++- ...ft.AspNetCore.Http.Extensions.Tests.csproj | 4 + .../test/SendFileResponseExtensionsTests.cs | 95 ++++++++++++++++--- src/Http/Http.Extensions/test/testfile1kb.txt | 1 + .../StaticFiles/src/StaticFileContext.cs | 46 ++------- .../test/UnitTests/StaticFileContextTest.cs | 31 ++++++ .../FunctionalTests/ResponseSendFileTests.cs | 16 +++- 7 files changed, 156 insertions(+), 60 deletions(-) create mode 100644 src/Http/Http.Extensions/test/testfile1kb.txt diff --git a/src/Http/Http.Extensions/src/SendFileResponseExtensions.cs b/src/Http/Http.Extensions/src/SendFileResponseExtensions.cs index e7fd608c05..8dfae44bdc 100644 --- a/src/Http/Http.Extensions/src/SendFileResponseExtensions.cs +++ b/src/Http/Http.Extensions/src/SendFileResponseExtensions.cs @@ -16,6 +16,8 @@ namespace Microsoft.AspNetCore.Http /// public static class SendFileResponseExtensions { + private const int StreamCopyBufferSize = 64 * 1024; + /// /// Sends the given file using the SendFile extension. /// @@ -110,15 +112,21 @@ namespace Microsoft.AspNetCore.Http if (string.IsNullOrEmpty(file.PhysicalPath)) { CheckRange(offset, count, file.Length); + using var fileContent = file.CreateReadStream(); - using (var fileContent = file.CreateReadStream()) + var useRequestAborted = !cancellationToken.CanBeCanceled; + var localCancel = useRequestAborted ? response.HttpContext.RequestAborted : cancellationToken; + + try { + localCancel.ThrowIfCancellationRequested(); if (offset > 0) { fileContent.Seek(offset, SeekOrigin.Begin); } - await StreamCopyOperation.CopyToAsync(fileContent, response.Body, count, cancellationToken); + await StreamCopyOperation.CopyToAsync(fileContent, response.Body, count, StreamCopyBufferSize, localCancel); } + catch (OperationCanceledException) when (useRequestAborted) { } } else { @@ -126,10 +134,17 @@ namespace Microsoft.AspNetCore.Http } } - private static Task SendFileAsyncCore(HttpResponse response, string fileName, long offset, long? count, CancellationToken cancellationToken = default) + private static async Task SendFileAsyncCore(HttpResponse response, string fileName, long offset, long? count, CancellationToken cancellationToken = default) { + var useRequestAborted = !cancellationToken.CanBeCanceled; + var localCancel = useRequestAborted ? response.HttpContext.RequestAborted : cancellationToken; var sendFile = response.HttpContext.Features.Get(); - return sendFile.SendFileAsync(fileName, offset, count, cancellationToken); + + try + { + await sendFile.SendFileAsync(fileName, offset, count, localCancel); + } + catch (OperationCanceledException) when (useRequestAborted) { } } private static void CheckRange(long offset, long? count, long fileLength) diff --git a/src/Http/Http.Extensions/test/Microsoft.AspNetCore.Http.Extensions.Tests.csproj b/src/Http/Http.Extensions/test/Microsoft.AspNetCore.Http.Extensions.Tests.csproj index 19bf5e753a..fffeeb054b 100644 --- a/src/Http/Http.Extensions/test/Microsoft.AspNetCore.Http.Extensions.Tests.csproj +++ b/src/Http/Http.Extensions/test/Microsoft.AspNetCore.Http.Extensions.Tests.csproj @@ -4,6 +4,10 @@ $(DefaultNetCoreTargetFramework) + + + + diff --git a/src/Http/Http.Extensions/test/SendFileResponseExtensionsTests.cs b/src/Http/Http.Extensions/test/SendFileResponseExtensionsTests.cs index 5f5a6341f8..54e22811c0 100644 --- a/src/Http/Http.Extensions/test/SendFileResponseExtensionsTests.cs +++ b/src/Http/Http.Extensions/test/SendFileResponseExtensionsTests.cs @@ -1,6 +1,7 @@ // 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. +using System; using System.IO; using System.IO.Pipelines; using System.Threading; @@ -29,18 +30,86 @@ namespace Microsoft.AspNetCore.Http.Extensions.Tests await response.SendFileAsync("bob", 1, 3, CancellationToken.None); - Assert.Equal("bob", fakeFeature.name); - Assert.Equal(1, fakeFeature.offset); - Assert.Equal(3, fakeFeature.length); - Assert.Equal(CancellationToken.None, fakeFeature.token); + Assert.Equal("bob", fakeFeature.Name); + Assert.Equal(1, fakeFeature.Offset); + Assert.Equal(3, fakeFeature.Length); + Assert.Equal(CancellationToken.None, fakeFeature.Token); + } + + [Fact] + public async Task SendFile_FallsBackToBodyStream() + { + var body = new MemoryStream(); + var context = new DefaultHttpContext(); + var response = context.Response; + response.Body = body; + + await response.SendFileAsync("testfile1kb.txt", 1, 3, CancellationToken.None); + + Assert.Equal(3, body.Length); + } + + [Fact] + public async Task SendFile_Stream_ThrowsWhenCanceled() + { + var body = new MemoryStream(); + var context = new DefaultHttpContext(); + var response = context.Response; + response.Body = body; + + await Assert.ThrowsAnyAsync( + () => response.SendFileAsync("testfile1kb.txt", 1, 3, new CancellationToken(canceled: true))); + + Assert.Equal(0, body.Length); + } + + [Fact] + public async Task SendFile_Feature_ThrowsWhenCanceled() + { + var context = new DefaultHttpContext(); + var fakeFeature = new FakeResponseBodyFeature(); + context.Features.Set(fakeFeature); + var response = context.Response; + + await Assert.ThrowsAsync( + () => response.SendFileAsync("testfile1kb.txt", 1, 3, new CancellationToken(canceled: true))); + } + + [Fact] + public async Task SendFile_Stream_AbortsSilentlyWhenRequestCanceled() + { + var body = new MemoryStream(); + var context = new DefaultHttpContext(); + context.RequestAborted = new CancellationToken(canceled: true); + var response = context.Response; + response.Body = body; + + await response.SendFileAsync("testfile1kb.txt", 1, 3, CancellationToken.None); + + Assert.Equal(0, body.Length); + } + + [Fact] + public async Task SendFile_Feature_AbortsSilentlyWhenRequestCanceled() + { + var context = new DefaultHttpContext(); + var fakeFeature = new FakeResponseBodyFeature(); + context.Features.Set(fakeFeature); + var token = new CancellationToken(canceled: true); + context.RequestAborted = token; + var response = context.Response; + + await response.SendFileAsync("testfile1kb.txt", 1, 3, CancellationToken.None); + + Assert.Equal(token, fakeFeature.Token); } private class FakeResponseBodyFeature : IHttpResponseBodyFeature { - public string name = null; - public long offset = 0; - public long? length = null; - public CancellationToken token; + public string Name { get; set; } = null; + public long Offset { get; set; } = 0; + public long? Length { get; set; } = null; + public CancellationToken Token { get; set; } public Stream Stream => throw new System.NotImplementedException(); @@ -58,10 +127,12 @@ namespace Microsoft.AspNetCore.Http.Extensions.Tests public Task SendFileAsync(string path, long offset, long? length, CancellationToken cancellation) { - this.name = path; - this.offset = offset; - this.length = length; - this.token = cancellation; + Name = path; + Offset = offset; + Length = length; + Token = cancellation; + + cancellation.ThrowIfCancellationRequested(); return Task.FromResult(0); } diff --git a/src/Http/Http.Extensions/test/testfile1kb.txt b/src/Http/Http.Extensions/test/testfile1kb.txt new file mode 100644 index 0000000000..61d982da1a --- /dev/null +++ b/src/Http/Http.Extensions/test/testfile1kb.txt @@ -0,0 +1 @@ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/src/Middleware/StaticFiles/src/StaticFileContext.cs b/src/Middleware/StaticFiles/src/StaticFileContext.cs index 1d39b42c2e..540088e5fc 100644 --- a/src/Middleware/StaticFiles/src/StaticFileContext.cs +++ b/src/Middleware/StaticFiles/src/StaticFileContext.cs @@ -5,11 +5,9 @@ using System; using System.Diagnostics; using System.IO; using System.Linq; -using System.Threading; using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Http.Extensions; using Microsoft.AspNetCore.Http.Features; using Microsoft.AspNetCore.Http.Headers; using Microsoft.AspNetCore.Internal; @@ -21,8 +19,6 @@ namespace Microsoft.AspNetCore.StaticFiles { internal struct StaticFileContext { - private const int StreamCopyBufferSize = 64 * 1024; - private readonly HttpContext _context; private readonly StaticFileOptions _options; private readonly HttpRequest _request; @@ -345,29 +341,14 @@ namespace Microsoft.AspNetCore.StaticFiles { SetCompressionMode(); ApplyResponseHeaders(StatusCodes.Status200OK); - string physicalPath = _fileInfo.PhysicalPath; - var sendFile = _context.Features.Get(); - if (sendFile != null && !string.IsNullOrEmpty(physicalPath)) - { - // We don't need to directly cancel this, if the client disconnects it will fail silently. - await sendFile.SendFileAsync(physicalPath, 0, _length, CancellationToken.None); - return; - } - try { - using (var readStream = _fileInfo.CreateReadStream()) - { - // Larger StreamCopyBufferSize is required because in case of FileStream readStream isn't going to be buffering - await StreamCopyOperation.CopyToAsync(readStream, _response.Body, _length, StreamCopyBufferSize, _context.RequestAborted); - } + await _context.Response.SendFileAsync(_fileInfo, 0, _length, _context.RequestAborted); } catch (OperationCanceledException ex) { - _logger.WriteCancelled(ex); // Don't throw this exception, it's most likely caused by the client disconnecting. - // However, if it was cancelled for any other reason we need to prevent empty responses. - _context.Abort(); + _logger.WriteCancelled(ex); } } @@ -391,31 +372,16 @@ namespace Microsoft.AspNetCore.StaticFiles SetCompressionMode(); ApplyResponseHeaders(StatusCodes.Status206PartialContent); - string physicalPath = _fileInfo.PhysicalPath; - var sendFile = _context.Features.Get(); - if (sendFile != null && !string.IsNullOrEmpty(physicalPath)) - { - _logger.SendingFileRange(_response.Headers[HeaderNames.ContentRange], physicalPath); - // We don't need to directly cancel this, if the client disconnects it will fail silently. - await sendFile.SendFileAsync(physicalPath, start, length, CancellationToken.None); - return; - } - try { - using (var readStream = _fileInfo.CreateReadStream()) - { - readStream.Seek(start, SeekOrigin.Begin); // TODO: What if !CanSeek? - _logger.CopyingFileRange(_response.Headers[HeaderNames.ContentRange], SubPath); - await StreamCopyOperation.CopyToAsync(readStream, _response.Body, length, _context.RequestAborted); - } + var logPath = !string.IsNullOrEmpty(_fileInfo.PhysicalPath) ? _fileInfo.PhysicalPath : SubPath; + _logger.SendingFileRange(_response.Headers[HeaderNames.ContentRange], logPath); + await _context.Response.SendFileAsync(_fileInfo, start, length, _context.RequestAborted); } catch (OperationCanceledException ex) { - _logger.WriteCancelled(ex); // Don't throw this exception, it's most likely caused by the client disconnecting. - // However, if it was cancelled for any other reason we need to prevent empty responses. - _context.Abort(); + _logger.WriteCancelled(ex); } } diff --git a/src/Middleware/StaticFiles/test/UnitTests/StaticFileContextTest.cs b/src/Middleware/StaticFiles/test/UnitTests/StaticFileContextTest.cs index efea2a08e5..409cda5b5b 100644 --- a/src/Middleware/StaticFiles/test/UnitTests/StaticFileContextTest.cs +++ b/src/Middleware/StaticFiles/test/UnitTests/StaticFileContextTest.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.IO; +using System.Threading; using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; @@ -120,6 +121,36 @@ namespace Microsoft.AspNetCore.StaticFiles Assert.Equal(HttpsCompressionMode.Default, httpsCompressionFeature.Mode); } + [Fact] + public async Task RequestAborted_DoesntThrow() + { + var options = new StaticFileOptions(); + var fileProvider = new TestFileProvider(); + fileProvider.AddFile("/foo.txt", new TestFileInfo + { + LastModified = new DateTimeOffset(2014, 1, 2, 3, 4, 5, TimeSpan.Zero) + }); + var pathString = new PathString("/test"); + var httpContext = new DefaultHttpContext(); + httpContext.Request.Path = new PathString("/test/foo.txt"); + httpContext.RequestAborted = new CancellationToken(canceled: true); + var body = new MemoryStream(); + httpContext.Response.Body = body; + var validateResult = StaticFileMiddleware.ValidatePath(httpContext, pathString, out var subPath); + var contentTypeResult = StaticFileMiddleware.LookupContentType(new FileExtensionContentTypeProvider(), options, subPath, out var contentType); + + var context = new StaticFileContext(httpContext, options, NullLogger.Instance, fileProvider, contentType, subPath); + + var result = context.LookupFileInfo(); + Assert.True(validateResult); + Assert.True(contentTypeResult); + Assert.True(result); + + await context.SendAsync(); + + Assert.Equal(0, body.Length); + } + private sealed class TestFileProvider : IFileProvider { private readonly Dictionary _files = new Dictionary(StringComparer.Ordinal); diff --git a/src/Servers/HttpSys/test/FunctionalTests/ResponseSendFileTests.cs b/src/Servers/HttpSys/test/FunctionalTests/ResponseSendFileTests.cs index 1bda0ddee1..8d54a67a53 100644 --- a/src/Servers/HttpSys/test/FunctionalTests/ResponseSendFileTests.cs +++ b/src/Servers/HttpSys/test/FunctionalTests/ResponseSendFileTests.cs @@ -487,17 +487,21 @@ namespace Microsoft.AspNetCore.Server.HttpSys try { + // Note Response.SendFileAsync uses RequestAborted by default. This can cause the response to be disposed + // before it throws an IOException, but there's a race depending on when the disconnect is noticed. + // Passing our own token to skip that. + using var cts = new CancellationTokenSource(); await Assert.ThrowsAsync(async () => { // It can take several tries before Send notices the disconnect. for (int i = 0; i < Utilities.WriteRetryLimit; i++) { - await httpContext.Response.SendFileAsync(AbsoluteFilePath, 0, null); + await httpContext.Response.SendFileAsync(AbsoluteFilePath, 0, null, cts.Token); } }); await Assert.ThrowsAsync(() => - httpContext.Response.SendFileAsync(AbsoluteFilePath, 0, null)); + httpContext.Response.SendFileAsync(AbsoluteFilePath, 0, null, cts.Token)); testComplete.SetResult(0); } @@ -573,9 +577,13 @@ namespace Microsoft.AspNetCore.Server.HttpSys var testComplete = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); using (Utilities.CreateHttpServer(out var address, async httpContext => { + // Note Response.SendFileAsync uses RequestAborted by default. This can cause the response to be disposed + // before it throws an IOException, but there's a race depending on when the disconnect is noticed. + // Passing our own token to skip that. + using var cts = new CancellationTokenSource(); httpContext.RequestAborted.Register(() => cancellationReceived.SetResult(0)); // First write sends headers - await httpContext.Response.SendFileAsync(AbsoluteFilePath, 0, null); + await httpContext.Response.SendFileAsync(AbsoluteFilePath, 0, null, cts.Token); firstSendComplete.SetResult(0); await clientDisconnected.Task; @@ -586,7 +594,7 @@ namespace Microsoft.AspNetCore.Server.HttpSys // It can take several tries before Write notices the disconnect. for (int i = 0; i < Utilities.WriteRetryLimit; i++) { - await httpContext.Response.SendFileAsync(AbsoluteFilePath, 0, null, CancellationToken.None); + await httpContext.Response.SendFileAsync(AbsoluteFilePath, 0, null, cts.Token); } }); From 542031b42114b9c2e1f30276622a5f8b7768cf40 Mon Sep 17 00:00:00 2001 From: Brennan Conroy Date: Tue, 21 Jul 2020 21:59:33 +0000 Subject: [PATCH 002/187] Merged PR 9196: Modify WebSockets ValueTaskSource Create the GCHandle per operation and Free it when resetting the ValueTaskSource for re-use. Cherry-picked change from 3.1 --- .../IIS/IIS/src/Core/IO/WebSocketsAsyncIOEngine.Read.cs | 6 ++++-- .../IIS/IIS/src/Core/IO/WebSocketsAsyncIOEngine.Write.cs | 6 ++++-- src/Servers/IIS/IIS/src/Core/IO/WebSocketsAsyncIOEngine.cs | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/Servers/IIS/IIS/src/Core/IO/WebSocketsAsyncIOEngine.Read.cs b/src/Servers/IIS/IIS/src/Core/IO/WebSocketsAsyncIOEngine.Read.cs index 2dac1a234e..db4068c52c 100644 --- a/src/Servers/IIS/IIS/src/Core/IO/WebSocketsAsyncIOEngine.Read.cs +++ b/src/Servers/IIS/IIS/src/Core/IO/WebSocketsAsyncIOEngine.Read.cs @@ -25,7 +25,7 @@ namespace Microsoft.AspNetCore.Server.IIS.Core.IO }; private readonly WebSocketsAsyncIOEngine _engine; - private readonly GCHandle _thisHandle; + private GCHandle _thisHandle; private MemoryHandle _inputHandle; private IntPtr _requestHandler; private Memory _memory; @@ -33,11 +33,11 @@ namespace Microsoft.AspNetCore.Server.IIS.Core.IO public WebSocketReadOperation(WebSocketsAsyncIOEngine engine) { _engine = engine; - _thisHandle = GCHandle.Alloc(this); } protected override unsafe bool InvokeOperation(out int hr, out int bytes) { + _thisHandle = GCHandle.Alloc(this); _inputHandle = _memory.Pin(); hr = NativeMethods.HttpWebsocketsReadBytes( @@ -67,6 +67,8 @@ namespace Microsoft.AspNetCore.Server.IIS.Core.IO { base.ResetOperation(); + _thisHandle.Free(); + _memory = default; _inputHandle.Dispose(); _inputHandle = default; diff --git a/src/Servers/IIS/IIS/src/Core/IO/WebSocketsAsyncIOEngine.Write.cs b/src/Servers/IIS/IIS/src/Core/IO/WebSocketsAsyncIOEngine.Write.cs index 3eff3bba46..5e6630aae5 100644 --- a/src/Servers/IIS/IIS/src/Core/IO/WebSocketsAsyncIOEngine.Write.cs +++ b/src/Servers/IIS/IIS/src/Core/IO/WebSocketsAsyncIOEngine.Write.cs @@ -25,16 +25,16 @@ namespace Microsoft.AspNetCore.Server.IIS.Core.IO }; private readonly WebSocketsAsyncIOEngine _engine; - private readonly GCHandle _thisHandle; + private GCHandle _thisHandle; public WebSocketWriteOperation(WebSocketsAsyncIOEngine engine) { _engine = engine; - _thisHandle = GCHandle.Alloc(this); } protected override unsafe int WriteChunks(IntPtr requestHandler, int chunkCount, HttpApiTypes.HTTP_DATA_CHUNK* dataChunks, out bool completionExpected) { + _thisHandle = GCHandle.Alloc(this); return NativeMethods.HttpWebsocketsWriteBytes(requestHandler, dataChunks, chunkCount, WriteCallback, (IntPtr)_thisHandle, out completionExpected); } @@ -42,6 +42,8 @@ namespace Microsoft.AspNetCore.Server.IIS.Core.IO { base.ResetOperation(); + _thisHandle.Free(); + _engine.ReturnOperation(this); } } diff --git a/src/Servers/IIS/IIS/src/Core/IO/WebSocketsAsyncIOEngine.cs b/src/Servers/IIS/IIS/src/Core/IO/WebSocketsAsyncIOEngine.cs index a796af23b3..2c1ac02e20 100644 --- a/src/Servers/IIS/IIS/src/Core/IO/WebSocketsAsyncIOEngine.cs +++ b/src/Servers/IIS/IIS/src/Core/IO/WebSocketsAsyncIOEngine.cs @@ -39,7 +39,7 @@ namespace Microsoft.AspNetCore.Server.IIS.Core.IO var read = GetReadOperation(); read.Initialize(_handler, memory); read.Invoke(); - return new ValueTask(read, 0); + return new ValueTask(read, 0); } } From cba2275799aba49c4ab66b8879c6ddef46d8c045 Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Sun, 26 Jul 2020 05:49:09 +0000 Subject: [PATCH 003/187] Merged PR 9296: [internal/release/5.0-preview8] Update dependencies from dnceng/internal/dotnet-runtime This pull request updates the following dependencies [marker]: <> (Begin:2f3f3ff0-d34f-49bd-50aa-08d828f9655f) ## From https://github.com/dotnet/runtime - **Subscription**: 2f3f3ff0-d34f-49bd-50aa-08d828f9655f - **Build**: 20200722.7 - **Date Produced**: 7/23/2020 12:04 AM - **Commit**: 3cab6dd440a5f3763bfbd2d582b36fe51095686a - **Branch**: refs/heads/internal/release/5.0-preview8 [DependencyUpdate]: <> (Begin) - **Updates**: - **System.Diagnostics.DiagnosticSource**: from 5.0.0-preview.8.20361.2 to 5.0.0-preview.8.20372.7 - **System.Diagnostics.EventLog**: from 5.0.0-preview.8.20361.2 to 5.0.0-preview.8.20372.7 - **System.Drawing.Common**: from 5.0.0-preview.8.20361.2 to 5.0.0-preview.8.20372.7 - **System.IO.Pipelines**: from 5.0.0-preview.8.20361.2 to 5.0.0-preview.8.20372.7 - **System.ComponentModel.Annotations**: from 5.0.0-preview.8.20361.2 to 5.0.0-preview.8.20372.7 - **Microsoft.Extensions.Logging.Abstractions**: from 5.0.0-preview.8.20361.2 to 5.0.0-preview.8.20372.7 - **Microsoft.Extensions.Logging.Configuration**: from 5.0.0-preview.8.20361.2 to 5.0.0-preview.8.20372.7 - **Microsoft.Extensions.Logging.Console**: from 5.0.0-preview.8.20361.2 to 5.0.0-preview.8.20372.7 - **Microsoft.Extensions.Logging.Debug**: from 5.0.0-preview.8.20361.2 to 5.0.0-preview.8.20372.7 - **Microsoft.Extensions.Logging.EventLog**: from 5.0.0-preview.8.20361.2 to 5.0.0-preview.8.20372.7 - **Microsoft.Extensions.Logging.EventSource**: from 5.0.0-preview.8.20361.2 to 5.0.0-preview.8.20372.7 - **Microsoft.Extensions.Logging.TraceSource**: from 5.0.0-preview.8.20361.2 to 5.0.0-preview.8.20372.7 - **Microsoft.Extensions.Options**: from 5.0.0-preview.8.20361.2 to 5.0.0-preview.8.20372.7 - **Microsoft.Extensions.Options.ConfigurationExtensions**: from 5.0.0-preview.8.20361.2 to 5.0.0-preview.8.20372.7 - **Microsoft.Extensions.Options.DataAnnotations**: from 5.0.0-preview.8.20361.2 to 5.0.0-preview.8.20372.7 - **Microsoft.Extensions.Primitives**: from 5.0.0-preview.8.20361.2 to 5.0.0-preview.8.20372.7 - **Microsoft.Extensions.Logging**: from 5.0.0-preview.8.20361.2 to 5.0.0-preview.8.20372.7 - **Microsoft.Extensions.Internal.Transport**: from 5.0.0-preview.8.20361.2 to 5.0.0-preview.8.20372.7 - **Microsoft.Extensions.Hosting.Abstractions**: from 5.0.0-preview.8.20361.2 to 5.0.0-preview.8.20372.7 - **Microsoft.Extensions.Caching.Abstractions**: from 5.0.0-preview.8.20361.2 to 5.0.0-preview.8.20372.7 - **Microsoft.Extensions.Caching.Memory**: from 5.0.0-preview.8.20361.2 to 5.0.0-preview.8.20372.7 - **Microsoft.Extensions.Configuration**: from 5.0.0-preview.8.20361.2 to 5.0.0-preview.8.20372.7 - **Microsoft.Extensions.Configuration.Abstractions**: from 5.0.0-preview.8.20361.2 to 5.0.0-preview.8.20372.7 - **Microsoft.Extensions.Configuration.Binder**: from 5.0.0-preview.8.20361.2 to 5.0.0-preview.8.20372.7 - **Microsoft.Extensions.Configuration.CommandLine**: from 5.0.0-preview.8.203... --- .azure/pipelines/ci.yml | 9 +- NuGet.config | 3 - eng/Version.Details.xml | 252 +++++++++--------- eng/Versions.props | 128 +++++---- eng/helix/content/InstallDotNet.ps1 | 35 --- eng/helix/content/runtests.cmd | 12 +- eng/helix/content/runtests.sh | 63 ++--- eng/scripts/ci-source-build.sh | 70 ++++- eng/targets/Helix.targets | 13 +- .../Web.JS/dist/Release/blazor.server.js | 6 +- .../Web.JS/dist/Release/blazor.webassembly.js | 2 +- .../Web.JS/src/Platform/Mono/MonoPlatform.ts | 1 + .../test/InteropTests/InteropTests.csproj | 3 + .../testassets/InteropClient/InteropClient.cs | 2 +- .../test/testassets/InteropWebsite/Program.cs | 2 +- src/Http/WebUtilities/src/FormPipeReader.cs | 2 +- .../clients/ts/FunctionalTests/Program.cs | 2 +- 17 files changed, 314 insertions(+), 291 deletions(-) delete mode 100644 eng/helix/content/InstallDotNet.ps1 diff --git a/.azure/pipelines/ci.yml b/.azure/pipelines/ci.yml index 62a8e30dc9..554d8f331c 100644 --- a/.azure/pipelines/ci.yml +++ b/.azure/pipelines/ci.yml @@ -607,17 +607,18 @@ stages: timeoutInMinutes: 180 steps: # Build the shared framework - - script: ./build.cmd -ci -nobl -all -pack -arch x64 /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log + - script: ./build.cmd -ci -nobl -all -pack -arch x64 /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log $(_InternalRuntimeDownloadArgs) displayName: Build shared fx - - script: ./build.cmd -ci -nobl -noBuildRepoTasks -restore -noBuild -noBuildNative -projects src/Grpc/**/*.csproj + - script: ./build.cmd -ci -nobl -noBuildRepoTasks -restore -noBuild -noBuildNative -projects src/Grpc/**/*.csproj $(_InternalRuntimeDownloadArgs) displayName: Restore interop projects - script: ./build.cmd -ci -nobl -noBuildRepoTasks -noRestore -test -all -noBuildNative -projects eng\helix\helix.proj - /p:IsRequiredCheck=true /p:IsHelixJob=true /p:BuildInteropProjects=true /p:RunTemplateTests=true + /p:IsRequiredCheck=true /p:IsHelixJob=true /p:BuildInteropProjects=true /p:RunTemplateTests=true $(_InternalRuntimeDownloadArgs) /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log displayName: Run build.cmd helix target env: HelixApiAccessToken: $(HelixApiAccessToken) # Needed for internal queues SYSTEM_ACCESSTOKEN: $(System.AccessToken) # We need to set this env var to publish helix results to Azure Dev Ops + artifacts: - name: Helix_logs path: artifacts/log/ @@ -651,7 +652,7 @@ stages: arguments: $(Build.SourcesDirectory)/NuGet.config $Token env: Token: $(dn-bot-dnceng-artifact-feeds-rw) - - script: ./eng/scripts/ci-source-build.sh --ci --nobl --configuration Release /p:BuildManaged=true /p:BuildNodeJs=false + - script: ./eng/scripts/ci-source-build.sh --ci --nobl --configuration Release /p:BuildManaged=true /p:BuildNodeJs=false $(_InternalRuntimeDownloadArgs) displayName: Run ci-source-build.sh - task: PublishBuildArtifacts@1 displayName: Upload logs diff --git a/NuGet.config b/NuGet.config index 358177f770..94e12ce1b4 100644 --- a/NuGet.config +++ b/NuGet.config @@ -2,9 +2,6 @@ - - - diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 8d8a192ba6..5f7f71da0f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -41,264 +41,264 @@ https://github.com/dotnet/efcore 58abc390e0e3eb849b5773da3f5ed2982ade521d - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a - + https://github.com/dotnet/runtime - f37dd6fc8595e130909dcb3085a56342d04aa20c + 3cab6dd440a5f3763bfbd2d582b36fe51095686a https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 924244aaba..516e8e1ae5 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -64,70 +64,70 @@ 3.8.0-1.20361.1 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 - 5.0.0-preview.8.20361.2 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20361.2 + 5.0.0-preview.8.20372.7 3.2.0 @@ -155,7 +155,6 @@ --> $(MicrosoftNETCoreAppRuntimewinx64PackageVersion) - 5.0.0-preview.4.20180.4 diff --git a/eng/helix/content/InstallDotNet.ps1 b/eng/helix/content/InstallDotNet.ps1 deleted file mode 100644 index 7e87866433..0000000000 --- a/eng/helix/content/InstallDotNet.ps1 +++ /dev/null @@ -1,35 +0,0 @@ - <# - .SYNOPSIS - Installs dotnet sdk and runtime using https://dot.net/v1/dotnet-install.ps1 - .DESCRIPTION - Installs dotnet sdk and runtime using https://dot.net/v1/dotnet-install.ps1 -.PARAMETER arch - The architecture to install. -.PARAMETER sdkVersion - The sdk version to install -.PARAMETER runtimeVersion - The runtime version to install -.PARAMETER installDir - The directory to install to -#> -param( - [Parameter(Mandatory = $true)] - $arch, - - [Parameter(Mandatory = $true)] - $sdkVersion, - - [Parameter(Mandatory = $true)] - $runtimeVersion, - - [Parameter(Mandatory = $true)] - $installDir -) - -& $PSScriptRoot\Download.ps1 "https://dot.net/v1/dotnet-install.ps1" $PSScriptRoot\dotnet-install.ps1 -Write-Host "Download of dotnet-install.ps1 complete..." -Write-Host "Installing SDK...& $PSScriptRoot\dotnet-install.ps1 -Architecture $arch -Version $sdkVersion -InstallDir $installDir" -Invoke-Expression "& $PSScriptRoot\dotnet-install.ps1 -Architecture $arch -Version $sdkVersion -InstallDir $installDir" -Write-Host "Installing Runtime...& $PSScriptRoot\dotnet-install.ps1 -Architecture $arch -Runtime dotnet -Version $runtimeVersion -InstallDir $installDir" -Invoke-Expression "& $PSScriptRoot\dotnet-install.ps1 -Architecture $arch -Runtime dotnet -Version $runtimeVersion -InstallDir $installDir" -Write-Host "InstallDotNet.ps1 complete..." \ No newline at end of file diff --git a/eng/helix/content/runtests.cmd b/eng/helix/content/runtests.cmd index c1b27b1c89..d5d43bb8ff 100644 --- a/eng/helix/content/runtests.cmd +++ b/eng/helix/content/runtests.cmd @@ -15,6 +15,8 @@ set $aspnetref=%9 REM Batch only supports up to 9 arguments using the %# syntax, need to shift to get more shift set $helixTimeout=%9 +shift +set $feedCred=%9 set DOTNET_HOME=%HELIX_CORRELATION_PAYLOAD%\sdk set DOTNET_ROOT=%DOTNET_HOME%\%$arch% @@ -24,10 +26,16 @@ set DOTNET_CLI_HOME=%HELIX_CORRELATION_PAYLOAD%\home set PATH=%DOTNET_ROOT%;!PATH!;%HELIX_CORRELATION_PAYLOAD%\node\bin echo Set path to: %PATH% -echo "Invoking InstallDotNet.ps1 %$arch% %$sdkVersion% %$runtimeVersion% %DOTNET_ROOT%" -powershell.exe -NoProfile -ExecutionPolicy unrestricted -file InstallDotNet.ps1 %$arch% %$sdkVersion% %$runtimeVersion% %DOTNET_ROOT% + +powershell.exe -noLogo -NoProfile -ExecutionPolicy unrestricted -command ". eng\common\tools.ps1; InstallDotNet %DOTNET_ROOT% %$sdkVersion% %$arch% '' $true" +IF [%$feedCred%] == [] ( + powershell.exe -noLogo -NoProfile -ExecutionPolicy unrestricted -command ". eng\common\tools.ps1; InstallDotNet %DOTNET_ROOT% %$runtimeVersion% %$arch% dotnet $true" +) else ( + powershell.exe -noLogo -NoProfile -ExecutionPolicy unrestricted -command ". eng\common\tools.ps1; InstallDotNet %DOTNET_ROOT% %$runtimeVersion% %$arch% dotnet $true https://dotnetclimsrc.blob.core.windows.net/dotnet %$feedCred%" +) set exit_code=0 + echo "Restore: dotnet restore RunTests\RunTests.csproj --source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json --source https://api.nuget.org/v3/index.json --ignore-failed-sources..." dotnet restore RunTests\RunTests.csproj --source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json --source https://api.nuget.org/v3/index.json --ignore-failed-sources diff --git a/eng/helix/content/runtests.sh b/eng/helix/content/runtests.sh index a1bf932706..90e6fca8a1 100644 --- a/eng/helix/content/runtests.sh +++ b/eng/helix/content/runtests.sh @@ -30,49 +30,24 @@ RED="\033[0;31m" YELLOW="\033[0;33m" MAGENTA="\033[0;95m" -curl -o dotnet-install.sh -sSL https://dot.net/v1/dotnet-install.sh -if [ $? -ne 0 ]; then - download_retries=3 - while [ $download_retries -gt 0 ]; do - curl -o dotnet-install.sh -sSL https://dot.net/v1/dotnet-install.sh - if [ $? -ne 0 ]; then - let download_retries=download_retries-1 - echo -e "${YELLOW}Failed to download dotnet-install.sh. Retries left: $download_retries.${RESET}" - else - download_retries=0 - fi - done -fi - -# Call "sync" between "chmod" and execution to prevent "text file busy" error in Docker (aufs) -chmod +x "dotnet-install.sh"; sync - -./dotnet-install.sh --version $dotnet_sdk_version --install-dir "$DOTNET_ROOT" -if [ $? -ne 0 ]; then - sdk_retries=3 - while [ $sdk_retries -gt 0 ]; do - ./dotnet-install.sh --version $dotnet_sdk_version --install-dir "$DOTNET_ROOT" - if [ $? -ne 0 ]; then - let sdk_retries=sdk_retries-1 - echo -e "${YELLOW}Failed to install .NET Core SDK $version. Retries left: $sdk_retries.${RESET}" - else - sdk_retries=0 - fi - done -fi - -./dotnet-install.sh --runtime dotnet --version $dotnet_runtime_version --install-dir "$DOTNET_ROOT" -if [ $? -ne 0 ]; then - runtime_retries=3 - while [ $runtime_retries -gt 0 ]; do - ./dotnet-install.sh --runtime dotnet --version $dotnet_runtime_version --install-dir "$DOTNET_ROOT" - if [ $? -ne 0 ]; then - let runtime_retries=runtime_retries-1 - echo -e "${YELLOW}Failed to install .NET Core runtime $version. Retries left: $runtime_retries.${RESET}" - else - runtime_retries=0 - fi - done +. eng/common/tools.sh +InstallDotNet $DOTNET_ROOT $dotnet_sdk_version "" "" true || { + exit_code=$? + Write-PipelineTelemetryError -Category 'InitializeToolset' -Message "dotnet-install.sh failed (exit code '$exit_code')." >&2 + ExitWithExitCode $exit_code +} +if [[ -z "${11:-}" ]]; then + InstallDotNet $DOTNET_ROOT $dotnet_runtime_version "" dotnet true || { + exit_code=$? + Write-PipelineTelemetryError -Category 'InitializeToolset' -Message "dotnet-install.sh failed (exit code '$exit_code')." >&2 + ExitWithExitCode $exit_code + } +else + InstallDotNet $DOTNET_ROOT $dotnet_runtime_version "" dotnet true https://dotnetclimsrc.blob.core.windows.net/dotnet ${11} || { + exit_code=$? + Write-PipelineTelemetryError -Category 'InitializeToolset' -Message "dotnet-install.sh failed (exit code '$exit_code')." >&2 + ExitWithExitCode $exit_code + } fi if [ -e /proc/self/coredump_filter ]; then @@ -82,7 +57,7 @@ if [ -e /proc/self/coredump_filter ]; then echo -n 0x3F > /proc/self/coredump_filter fi -# dontet-install.sh seems to affect the Linux filesystem and causes test flakiness unless we sync the filesystem before running tests +# dotnet-install.sh seems to affect the Linux filesystem and causes test flakiness unless we sync the filesystem before running tests sync exit_code=0 diff --git a/eng/scripts/ci-source-build.sh b/eng/scripts/ci-source-build.sh index 468f749751..d599fced8c 100755 --- a/eng/scripts/ci-source-build.sh +++ b/eng/scripts/ci-source-build.sh @@ -33,10 +33,76 @@ reporoot="$(dirname "$(dirname "$scriptroot")")" # mv "$reporoot/global.bak.json" "$reporoot/global.json" #}" EXIT +dotnet_runtime_source_feed='' +dotnet_runtime_source_feed_key='' +other_args=() + +# +# Functions +# +__usage() { + echo "Usage: $(basename "${BASH_SOURCE[0]}") [options] [[--] ...] + +Arguments: + ... Arguments passed to the command. Variable number of arguments allowed. + + --dotnet-runtime-source-feed Additional feed that can be used when downloading .NET runtimes + --dotnet-runtime-source-feed-key Key for feed that can be used when downloading .NET runtimes + +Description: + This script is meant for testing source build by imitating some of the input parameters and conditions. +" + + if [[ "${1:-}" != '--no-exit' ]]; then + exit 2 + fi +} + +__error() { + echo -e "${RED}error: $*${RESET}" 1>&2 +} + +# +# main +# + +while [[ $# -gt 0 ]]; do + opt="$(echo "${1/#--/-}" | awk '{print tolower($0)}')" + case "$opt" in + -\?|-h|-help) + __usage --no-exit + exit 0 + ;; + -dotnet-runtime-source-feed|-dotnetruntimesourcefeed) + shift + [ -z "${1:-}" ] && __error "Missing value for parameter --dotnet-runtime-source-feed" && __usage + dotnet_runtime_source_feed="${1:-}" + ;; + -dotnet-runtime-source-feed-key|-dotnetruntimesourcefeedkey) + shift + [ -z "${1:-}" ] && __error "Missing value for parameter --dotnet-runtime-source-feed-key" && __usage + dotnet_runtime_source_feed_key="${1:-}" + ;; + *) + other_args[${#other_args[*]}]="$1" + ;; + esac + shift +done + +# Set up additional runtime args +runtime_feed_args=() +if [ ! -z "$dotnet_runtime_source_feed$dotnet_runtime_source_feed_key" ]; then + runtimeFeedArg="/p:DotNetRuntimeSourceFeed=$dotnet_runtime_source_feed" + runtimeFeedKeyArg="/p:DotNetRuntimeSourceFeedKey=$dotnet_runtime_source_feed_key" + runtime_feed_args[${#runtime_feed_args[*]}]=$runtimeFeedArg + runtime_feed_args[${#runtime_feed_args[*]}]=$runtimeFeedKeyArg +fi + # Build repo tasks -"$reporoot/eng/common/build.sh" --restore --build --ci --configuration Release /p:ProjectToBuild=$reporoot/eng/tools/RepoTasks/RepoTasks.csproj +"$reporoot/eng/common/build.sh" --restore --build --ci --configuration Release /p:ProjectToBuild=$reporoot/eng/tools/RepoTasks/RepoTasks.csproj ${runtime_feed_args[@]+"${runtime_feed_args[@]}"} export DotNetBuildFromSource='true' # Build projects -"$reporoot/eng/common/build.sh" --restore --build --pack "$@" \ No newline at end of file +"$reporoot/eng/common/build.sh" --restore --build --pack ${other_args[@]+"${other_args[@]}"} ${runtime_feed_args[@]+"${runtime_feed_args[@]}"} diff --git a/eng/targets/Helix.targets b/eng/targets/Helix.targets index 0743963a02..188b9b01bc 100644 --- a/eng/targets/Helix.targets +++ b/eng/targets/Helix.targets @@ -28,6 +28,15 @@ + + + + eng\common\%(Filename)%(Extension) + PreserveNewest + PreserveNewest + + false diff --git a/src/Grpc/test/testassets/InteropClient/InteropClient.cs b/src/Grpc/test/testassets/InteropClient/InteropClient.cs index 273bcd1950..d6b47ab241 100644 --- a/src/Grpc/test/testassets/InteropClient/InteropClient.cs +++ b/src/Grpc/test/testassets/InteropClient/InteropClient.cs @@ -97,7 +97,7 @@ namespace InteropTestsClient services.AddLogging(configure => { configure.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace); - configure.AddConsole(loggerOptions => + configure.AddSimpleConsole(loggerOptions => { loggerOptions.IncludeScopes = true; loggerOptions.DisableColors = true; diff --git a/src/Grpc/test/testassets/InteropWebsite/Program.cs b/src/Grpc/test/testassets/InteropWebsite/Program.cs index 0648004d95..3efd0d647c 100644 --- a/src/Grpc/test/testassets/InteropWebsite/Program.cs +++ b/src/Grpc/test/testassets/InteropWebsite/Program.cs @@ -37,7 +37,7 @@ namespace InteropTestsWebsite Host.CreateDefaultBuilder(args) .ConfigureLogging(builder => { - builder.AddConsole(o => o.DisableColors = true); + builder.AddSimpleConsole(o => o.DisableColors = true); builder.SetMinimumLevel(LogLevel.Trace); }) .ConfigureWebHostDefaults(webBuilder => diff --git a/src/Http/WebUtilities/src/FormPipeReader.cs b/src/Http/WebUtilities/src/FormPipeReader.cs index bcb553458d..6a41dcd95e 100644 --- a/src/Http/WebUtilities/src/FormPipeReader.cs +++ b/src/Http/WebUtilities/src/FormPipeReader.cs @@ -271,7 +271,7 @@ namespace Microsoft.AspNetCore.WebUtilities var keyValueReader = new SequenceReader(keyValuePair); ReadOnlySequence value; - if (keyValueReader.TryReadTo(out var key, equalsDelimiter)) + if (keyValueReader.TryReadTo(out ReadOnlySequence key, equalsDelimiter)) { if (key.Length > KeyLengthLimit) { diff --git a/src/SignalR/clients/ts/FunctionalTests/Program.cs b/src/SignalR/clients/ts/FunctionalTests/Program.cs index bc1cc0a323..358bba527e 100644 --- a/src/SignalR/clients/ts/FunctionalTests/Program.cs +++ b/src/SignalR/clients/ts/FunctionalTests/Program.cs @@ -35,7 +35,7 @@ namespace FunctionalTests webHostBuilder .ConfigureLogging(factory => { - factory.AddConsole(options => + factory.AddSimpleConsole(options => { options.IncludeScopes = true; options.TimestampFormat = "[HH:mm:ss] "; From 3e7a10649154271b475dd4b6919fefe2b9e73a53 Mon Sep 17 00:00:00 2001 From: Pranav Krishnamoorthy Date: Tue, 28 Jul 2020 21:28:52 +0000 Subject: [PATCH 004/187] Merged PR 9371: Revive support for globalization and localization in Blazor WASM Revive support for globalization and localization in Blazor WASM * Load icu and timezone data files * Unskip tests Fixes https://github.com/dotnet/aspnetcore/issues/24174 Fixes https://github.com/dotnet/aspnetcore/issues/22975 Fixes https://github.com/dotnet/aspnetcore/issues/23260 --- .../Web.JS/dist/Release/blazor.server.js | 8 +-- .../Web.JS/dist/Release/blazor.webassembly.js | 2 +- .../Web.JS/src/Platform/Mono/MonoPlatform.ts | 49 +++++++++++++++++-- .../Web.JS/src/Platform/Mono/MonoTypes.ts | 3 ++ .../src/Platform/Mono/TimezoneDataFile.ts | 43 ---------------- .../src/Platform/WebAssemblyStartOptions.ts | 2 +- .../WasmBuildIntegrationTest.cs | 9 ++-- .../Sdk/src/targets/BlazorWasm.web.config | 1 + ....NET.Sdk.BlazorWebAssembly.Current.targets | 2 + ...WebAssemblyApplicationBuilderExtensions.cs | 1 + .../src/Hosting/SatelliteResourcesLoader.cs | 5 +- src/Components/test/E2ETest/Tests/BindTest.cs | 8 +-- .../Tests/WebAssemblyLocalizationTest.cs | 2 +- .../netstandard2.0/BlazorWasm.web.config | 1 + ...soft.NET.Sdk.Razor.Components.Wasm.targets | 3 ++ 15 files changed, 75 insertions(+), 64 deletions(-) delete mode 100644 src/Components/Web.JS/src/Platform/Mono/TimezoneDataFile.ts diff --git a/src/Components/Web.JS/dist/Release/blazor.server.js b/src/Components/Web.JS/dist/Release/blazor.server.js index ccb9e68806..0fb8aff636 100644 --- a/src/Components/Web.JS/dist/Release/blazor.server.js +++ b/src/Components/Web.JS/dist/Release/blazor.server.js @@ -1,19 +1,19 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=53)}([function(e,t,n){"use strict";var r;n.d(t,"a",(function(){return r})),function(e){e[e.Trace=0]="Trace",e[e.Debug=1]="Debug",e[e.Information=2]="Information",e[e.Warning=3]="Warning",e[e.Error=4]="Error",e[e.Critical=5]="Critical",e[e.None=6]="None"}(r||(r={}))},function(e,t,n){"use strict";(function(e){n.d(t,"e",(function(){return c})),n.d(t,"a",(function(){return u})),n.d(t,"c",(function(){return l})),n.d(t,"g",(function(){return f})),n.d(t,"i",(function(){return h})),n.d(t,"j",(function(){return p})),n.d(t,"f",(function(){return d})),n.d(t,"d",(function(){return g})),n.d(t,"b",(function(){return y})),n.d(t,"h",(function(){return v}));var r=n(0),o=n(6),i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]-1&&this.subject.observers.splice(e,1),0===this.subject.observers.length&&this.subject.cancelCallback&&this.subject.cancelCallback().catch((function(e){}))},e}(),y=function(){function e(e){this.minimumLogLevel=e,this.outputConsole=console}return e.prototype.log=function(e,t){if(e>=this.minimumLogLevel)switch(e){case r.a.Critical:case r.a.Error:this.outputConsole.error("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;case r.a.Warning:this.outputConsole.warn("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;case r.a.Information:this.outputConsole.info("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;default:this.outputConsole.log("["+(new Date).toISOString()+"] "+r.a[e]+": "+t)}},e}();function v(){var e="X-SignalR-User-Agent";return l.isNode&&(e="User-Agent"),[e,b(c,m(),E(),w())]}function b(e,t,n,r){var o="Microsoft SignalR/",i=e.split(".");return o+=i[0]+"."+i[1],o+=" ("+e+"; ",o+=t&&""!==t?t+"; ":"Unknown OS; ",o+=""+n,o+=r?"; "+r:"; Unknown Runtime Version",o+=")"}function m(){if(!l.isNode)return"";switch(e.platform){case"win32":return"Windows NT";case"darwin":return"macOS";case"linux":return"Linux";default:return e.platform}}function w(){if(l.isNode)return e.versions.node}function E(){return l.isNode?"NodeJS":"Browser"}}).call(this,n(14))},function(e,t,n){"use strict";n.r(t),n.d(t,"AbortError",(function(){return s})),n.d(t,"HttpError",(function(){return i})),n.d(t,"TimeoutError",(function(){return a})),n.d(t,"HttpClient",(function(){return l})),n.d(t,"HttpResponse",(function(){return u})),n.d(t,"DefaultHttpClient",(function(){return S})),n.d(t,"HubConnection",(function(){return O})),n.d(t,"HubConnectionState",(function(){return I})),n.d(t,"HubConnectionBuilder",(function(){return re})),n.d(t,"MessageType",(function(){return b})),n.d(t,"LogLevel",(function(){return f.a})),n.d(t,"HttpTransportType",(function(){return P})),n.d(t,"TransferFormat",(function(){return x})),n.d(t,"NullLogger",(function(){return $.a})),n.d(t,"JsonHubProtocol",(function(){return ee})),n.d(t,"Subject",(function(){return _})),n.d(t,"VERSION",(function(){return h.e}));var r,o=(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),i=function(e){function t(t,n){var r=this,o=this.constructor.prototype;return(r=e.call(this,t)||this).statusCode=n,r.__proto__=o,r}return o(t,e),t}(Error),a=function(e){function t(t){void 0===t&&(t="A timeout occurred.");var n=this,r=this.constructor.prototype;return(n=e.call(this,t)||this).__proto__=r,n}return o(t,e),t}(Error),s=function(e){function t(t){void 0===t&&(t="An abort occurred.");var n=this,r=this.constructor.prototype;return(n=e.call(this,t)||this).__proto__=r,n}return o(t,e),t}(Error),c=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=200&&o.status<300?n(new u(o.status,o.statusText,o.response||o.responseText)):r(new i(o.statusText,o.status))},o.onerror=function(){t.logger.log(f.a.Warning,"Error from HTTP request. "+o.status+": "+o.statusText+"."),r(new i(o.statusText,o.status))},o.ontimeout=function(){t.logger.log(f.a.Warning,"Timeout from HTTP request."),r(new a)},o.send(e.content||"")})):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t}(l),E=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),S=function(e){function t(t){var n=e.call(this)||this;if("undefined"!=typeof fetch||h.c.isNode)n.httpClient=new v(t);else{if("undefined"==typeof XMLHttpRequest)throw new Error("No usable HttpClient found.");n.httpClient=new w(t)}return n}return E(t,e),t.prototype.send=function(e){return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new s):e.method?e.url?this.httpClient.send(e):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t.prototype.getCookieString=function(e){return this.httpClient.getCookieString(e)},t}(l),C=n(44);!function(e){e[e.Invocation=1]="Invocation",e[e.StreamItem=2]="StreamItem",e[e.Completion=3]="Completion",e[e.StreamInvocation=4]="StreamInvocation",e[e.CancelInvocation=5]="CancelInvocation",e[e.Ping=6]="Ping",e[e.Close=7]="Close"}(b||(b={}));var I,_=function(){function e(){this.observers=[]}return e.prototype.next=function(e){for(var t=0,n=this.observers;t0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0?[2,Promise.reject(new Error("Unable to connect to the server with any of the available transports. "+i.join(" ")))]:[2,Promise.reject(new Error("None of the transports supported by the client are supported by the server."))]}}))}))},e.prototype.constructTransport=function(e){switch(e){case P.WebSockets:if(!this.options.WebSocket)throw new Error("'WebSocket' is not supported in your environment.");return new Y(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.WebSocket,this.options.headers||{});case P.ServerSentEvents:if(!this.options.EventSource)throw new Error("'EventSource' is not supported in your environment.");return new H(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.EventSource,this.options.withCredentials,this.options.headers||{});case P.LongPolling:return new B(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.withCredentials,this.options.headers||{});default:throw new Error("Unknown transport: "+e+".")}},e.prototype.startTransport=function(e,t){var n=this;return this.transport.onreceive=this.onreceive,this.transport.onclose=function(e){return n.stopConnection(e)},this.transport.connect(e,t)},e.prototype.resolveTransportOrError=function(e,t,n){var r=P[e.transport];if(null==r)return this.logger.log(f.a.Debug,"Skipping transport '"+e.transport+"' because it is not supported by this client."),new Error("Skipping transport '"+e.transport+"' because it is not supported by this client.");if(!function(e,t){return!e||0!=(t&e)}(t,r))return this.logger.log(f.a.Debug,"Skipping transport '"+P[r]+"' because it was disabled by the client."),new Error("'"+P[r]+"' is disabled by the client.");if(!(e.transferFormats.map((function(e){return x[e]})).indexOf(n)>=0))return this.logger.log(f.a.Debug,"Skipping transport '"+P[r]+"' because it does not support the requested transfer format '"+x[n]+"'."),new Error("'"+P[r]+"' does not support "+x[n]+".");if(r===P.WebSockets&&!this.options.WebSocket||r===P.ServerSentEvents&&!this.options.EventSource)return this.logger.log(f.a.Debug,"Skipping transport '"+P[r]+"' because it is not supported in your environment.'"),new Error("'"+P[r]+"' is not supported in your environment.");this.logger.log(f.a.Debug,"Selecting transport '"+P[r]+"'.");try{return this.constructTransport(r)}catch(e){return e}},e.prototype.isITransport=function(e){return e&&"object"==typeof e&&"connect"in e},e.prototype.stopConnection=function(e){var t=this;if(this.logger.log(f.a.Debug,"HttpConnection.stopConnection("+e+") called while in state "+this.connectionState+"."),this.transport=void 0,e=this.stopError||e,this.stopError=void 0,"Disconnected"!==this.connectionState){if("Connecting"===this.connectionState)throw this.logger.log(f.a.Warning,"Call to HttpConnection.stopConnection("+e+") was ignored because the connection is still in the connecting state."),new Error("HttpConnection.stopConnection("+e+") was called while the connection is still in the connecting state.");if("Disconnecting"===this.connectionState&&this.stopPromiseResolver(),e?this.logger.log(f.a.Error,"Connection disconnected with error '"+e+"'."):this.logger.log(f.a.Information,"Connection disconnected."),this.sendQueue&&(this.sendQueue.stop().catch((function(e){t.logger.log(f.a.Error,"TransportSendQueue.stop() threw error '"+e+"'.")})),this.sendQueue=void 0),this.connectionId=void 0,this.connectionState="Disconnected",this.connectionStarted){this.connectionStarted=!1;try{this.onclose&&this.onclose(e)}catch(t){this.logger.log(f.a.Error,"HttpConnection.onclose("+e+") threw error '"+t+"'.")}}}else this.logger.log(f.a.Debug,"Call to HttpConnection.stopConnection("+e+") was ignored because the connection is already in the disconnected state.")},e.prototype.resolveUrl=function(e){if(0===e.lastIndexOf("https://",0)||0===e.lastIndexOf("http://",0))return e;if(!h.c.isBrowser||!window.document)throw new Error("Cannot resolve '"+e+"'.");var t=window.document.createElement("a");return t.href=e,this.logger.log(f.a.Information,"Normalizing '"+e+"' to '"+t.href+"'."),t.href},e.prototype.resolveNegotiateUrl=function(e){var t=e.indexOf("?"),n=e.substring(0,-1===t?e.length:t);return"/"!==n[n.length-1]&&(n+="/"),n+="negotiate",-1===(n+=-1===t?"":e.substring(t)).indexOf("negotiateVersion")&&(n+=-1===t?"?":"&",n+="negotiateVersion="+this.negotiateVersion),n},e}();var G=function(){function e(e){this.transport=e,this.buffer=[],this.executing=!0,this.sendBufferedData=new Q,this.transportResult=new Q,this.sendLoopPromise=this.sendLoop()}return e.prototype.send=function(e){return this.bufferData(e),this.transportResult||(this.transportResult=new Q),this.transportResult.promise},e.prototype.stop=function(){return this.executing=!1,this.sendBufferedData.resolve(),this.sendLoopPromise},e.prototype.bufferData=function(e){if(this.buffer.length&&typeof this.buffer[0]!=typeof e)throw new Error("Expected data to be of type "+typeof this.buffer+" but was of type "+typeof e);this.buffer.push(e),this.sendBufferedData.resolve()},e.prototype.sendLoop=function(){return K(this,void 0,void 0,(function(){var t,n,r;return V(this,(function(o){switch(o.label){case 0:return[4,this.sendBufferedData.promise];case 1:if(o.sent(),!this.executing)return this.transportResult&&this.transportResult.reject("Connection stopped."),[3,6];this.sendBufferedData=new Q,t=this.transportResult,this.transportResult=void 0,n="string"==typeof this.buffer[0]?this.buffer.join(""):e.concatBuffers(this.buffer),this.buffer.length=0,o.label=2;case 2:return o.trys.push([2,4,,5]),[4,this.transport.send(n)];case 3:return o.sent(),t.resolve(),[3,5];case 4:return r=o.sent(),t.reject(r),[3,5];case 5:return[3,0];case 6:return[2]}}))}))},e.concatBuffers=function(e){for(var t=e.map((function(e){return e.byteLength})).reduce((function(e,t){return e+t})),n=new Uint8Array(t),r=0,o=0,i=e;o0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]-1&&this.subject.observers.splice(e,1),0===this.subject.observers.length&&this.subject.cancelCallback&&this.subject.cancelCallback().catch((function(e){}))},e}(),y=function(){function e(e){this.minimumLogLevel=e,this.outputConsole=console}return e.prototype.log=function(e,t){if(e>=this.minimumLogLevel)switch(e){case r.a.Critical:case r.a.Error:this.outputConsole.error("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;case r.a.Warning:this.outputConsole.warn("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;case r.a.Information:this.outputConsole.info("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;default:this.outputConsole.log("["+(new Date).toISOString()+"] "+r.a[e]+": "+t)}},e}();function v(){var e="X-SignalR-User-Agent";return l.isNode&&(e="User-Agent"),[e,b(c,m(),E(),w())]}function b(e,t,n,r){var o="Microsoft SignalR/",i=e.split(".");return o+=i[0]+"."+i[1],o+=" ("+e+"; ",o+=t&&""!==t?t+"; ":"Unknown OS; ",o+=""+n,o+=r?"; "+r:"; Unknown Runtime Version",o+=")"}function m(){if(!l.isNode)return"";switch(e.platform){case"win32":return"Windows NT";case"darwin":return"macOS";case"linux":return"Linux";default:return e.platform}}function w(){if(l.isNode)return e.versions.node}function E(){return l.isNode?"NodeJS":"Browser"}}).call(this,n(14))},function(e,t,n){"use strict";n.r(t),n.d(t,"AbortError",(function(){return s})),n.d(t,"HttpError",(function(){return i})),n.d(t,"TimeoutError",(function(){return a})),n.d(t,"HttpClient",(function(){return l})),n.d(t,"HttpResponse",(function(){return u})),n.d(t,"DefaultHttpClient",(function(){return S})),n.d(t,"HubConnection",(function(){return O})),n.d(t,"HubConnectionState",(function(){return I})),n.d(t,"HubConnectionBuilder",(function(){return re})),n.d(t,"MessageType",(function(){return b})),n.d(t,"LogLevel",(function(){return f.a})),n.d(t,"HttpTransportType",(function(){return P})),n.d(t,"TransferFormat",(function(){return x})),n.d(t,"NullLogger",(function(){return $.a})),n.d(t,"JsonHubProtocol",(function(){return ee})),n.d(t,"Subject",(function(){return _})),n.d(t,"VERSION",(function(){return h.e}));var r,o=(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),i=function(e){function t(t,n){var r=this,o=this.constructor.prototype;return(r=e.call(this,t)||this).statusCode=n,r.__proto__=o,r}return o(t,e),t}(Error),a=function(e){function t(t){void 0===t&&(t="A timeout occurred.");var n=this,r=this.constructor.prototype;return(n=e.call(this,t)||this).__proto__=r,n}return o(t,e),t}(Error),s=function(e){function t(t){void 0===t&&(t="An abort occurred.");var n=this,r=this.constructor.prototype;return(n=e.call(this,t)||this).__proto__=r,n}return o(t,e),t}(Error),c=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=200&&o.status<300?n(new u(o.status,o.statusText,o.response||o.responseText)):r(new i(o.statusText,o.status))},o.onerror=function(){t.logger.log(f.a.Warning,"Error from HTTP request. "+o.status+": "+o.statusText+"."),r(new i(o.statusText,o.status))},o.ontimeout=function(){t.logger.log(f.a.Warning,"Timeout from HTTP request."),r(new a)},o.send(e.content||"")})):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t}(l),E=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),S=function(e){function t(t){var n=e.call(this)||this;if("undefined"!=typeof fetch||h.c.isNode)n.httpClient=new v(t);else{if("undefined"==typeof XMLHttpRequest)throw new Error("No usable HttpClient found.");n.httpClient=new w(t)}return n}return E(t,e),t.prototype.send=function(e){return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new s):e.method?e.url?this.httpClient.send(e):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t.prototype.getCookieString=function(e){return this.httpClient.getCookieString(e)},t}(l),C=n(42);!function(e){e[e.Invocation=1]="Invocation",e[e.StreamItem=2]="StreamItem",e[e.Completion=3]="Completion",e[e.StreamInvocation=4]="StreamInvocation",e[e.CancelInvocation=5]="CancelInvocation",e[e.Ping=6]="Ping",e[e.Close=7]="Close"}(b||(b={}));var I,_=function(){function e(){this.observers=[]}return e.prototype.next=function(e){for(var t=0,n=this.observers;t0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0?[2,Promise.reject(new Error("Unable to connect to the server with any of the available transports. "+i.join(" ")))]:[2,Promise.reject(new Error("None of the transports supported by the client are supported by the server."))]}}))}))},e.prototype.constructTransport=function(e){switch(e){case P.WebSockets:if(!this.options.WebSocket)throw new Error("'WebSocket' is not supported in your environment.");return new Y(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.WebSocket,this.options.headers||{});case P.ServerSentEvents:if(!this.options.EventSource)throw new Error("'EventSource' is not supported in your environment.");return new H(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.EventSource,this.options.withCredentials,this.options.headers||{});case P.LongPolling:return new B(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.withCredentials,this.options.headers||{});default:throw new Error("Unknown transport: "+e+".")}},e.prototype.startTransport=function(e,t){var n=this;return this.transport.onreceive=this.onreceive,this.transport.onclose=function(e){return n.stopConnection(e)},this.transport.connect(e,t)},e.prototype.resolveTransportOrError=function(e,t,n){var r=P[e.transport];if(null==r)return this.logger.log(f.a.Debug,"Skipping transport '"+e.transport+"' because it is not supported by this client."),new Error("Skipping transport '"+e.transport+"' because it is not supported by this client.");if(!function(e,t){return!e||0!=(t&e)}(t,r))return this.logger.log(f.a.Debug,"Skipping transport '"+P[r]+"' because it was disabled by the client."),new Error("'"+P[r]+"' is disabled by the client.");if(!(e.transferFormats.map((function(e){return x[e]})).indexOf(n)>=0))return this.logger.log(f.a.Debug,"Skipping transport '"+P[r]+"' because it does not support the requested transfer format '"+x[n]+"'."),new Error("'"+P[r]+"' does not support "+x[n]+".");if(r===P.WebSockets&&!this.options.WebSocket||r===P.ServerSentEvents&&!this.options.EventSource)return this.logger.log(f.a.Debug,"Skipping transport '"+P[r]+"' because it is not supported in your environment.'"),new Error("'"+P[r]+"' is not supported in your environment.");this.logger.log(f.a.Debug,"Selecting transport '"+P[r]+"'.");try{return this.constructTransport(r)}catch(e){return e}},e.prototype.isITransport=function(e){return e&&"object"==typeof e&&"connect"in e},e.prototype.stopConnection=function(e){var t=this;if(this.logger.log(f.a.Debug,"HttpConnection.stopConnection("+e+") called while in state "+this.connectionState+"."),this.transport=void 0,e=this.stopError||e,this.stopError=void 0,"Disconnected"!==this.connectionState){if("Connecting"===this.connectionState)throw this.logger.log(f.a.Warning,"Call to HttpConnection.stopConnection("+e+") was ignored because the connection is still in the connecting state."),new Error("HttpConnection.stopConnection("+e+") was called while the connection is still in the connecting state.");if("Disconnecting"===this.connectionState&&this.stopPromiseResolver(),e?this.logger.log(f.a.Error,"Connection disconnected with error '"+e+"'."):this.logger.log(f.a.Information,"Connection disconnected."),this.sendQueue&&(this.sendQueue.stop().catch((function(e){t.logger.log(f.a.Error,"TransportSendQueue.stop() threw error '"+e+"'.")})),this.sendQueue=void 0),this.connectionId=void 0,this.connectionState="Disconnected",this.connectionStarted){this.connectionStarted=!1;try{this.onclose&&this.onclose(e)}catch(t){this.logger.log(f.a.Error,"HttpConnection.onclose("+e+") threw error '"+t+"'.")}}}else this.logger.log(f.a.Debug,"Call to HttpConnection.stopConnection("+e+") was ignored because the connection is already in the disconnected state.")},e.prototype.resolveUrl=function(e){if(0===e.lastIndexOf("https://",0)||0===e.lastIndexOf("http://",0))return e;if(!h.c.isBrowser||!window.document)throw new Error("Cannot resolve '"+e+"'.");var t=window.document.createElement("a");return t.href=e,this.logger.log(f.a.Information,"Normalizing '"+e+"' to '"+t.href+"'."),t.href},e.prototype.resolveNegotiateUrl=function(e){var t=e.indexOf("?"),n=e.substring(0,-1===t?e.length:t);return"/"!==n[n.length-1]&&(n+="/"),n+="negotiate",-1===(n+=-1===t?"":e.substring(t)).indexOf("negotiateVersion")&&(n+=-1===t?"?":"&",n+="negotiateVersion="+this.negotiateVersion),n},e}();var G=function(){function e(e){this.transport=e,this.buffer=[],this.executing=!0,this.sendBufferedData=new Q,this.transportResult=new Q,this.sendLoopPromise=this.sendLoop()}return e.prototype.send=function(e){return this.bufferData(e),this.transportResult||(this.transportResult=new Q),this.transportResult.promise},e.prototype.stop=function(){return this.executing=!1,this.sendBufferedData.resolve(),this.sendLoopPromise},e.prototype.bufferData=function(e){if(this.buffer.length&&typeof this.buffer[0]!=typeof e)throw new Error("Expected data to be of type "+typeof this.buffer+" but was of type "+typeof e);this.buffer.push(e),this.sendBufferedData.resolve()},e.prototype.sendLoop=function(){return K(this,void 0,void 0,(function(){var t,n,r;return V(this,(function(o){switch(o.label){case 0:return[4,this.sendBufferedData.promise];case 1:if(o.sent(),!this.executing)return this.transportResult&&this.transportResult.reject("Connection stopped."),[3,6];this.sendBufferedData=new Q,t=this.transportResult,this.transportResult=void 0,n="string"==typeof this.buffer[0]?this.buffer.join(""):e.concatBuffers(this.buffer),this.buffer.length=0,o.label=2;case 2:return o.trys.push([2,4,,5]),[4,this.transport.send(n)];case 3:return o.sent(),t.resolve(),[3,5];case 4:return r=o.sent(),t.reject(r),[3,5];case 5:return[3,0];case 6:return[2]}}))}))},e.concatBuffers=function(e){for(var t=e.map((function(e){return e.byteLength})).reduce((function(e,t){return e+t})),n=new Uint8Array(t),r=0,o=0,i=e;o0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1] * @license MIT */ -var r=n(54),o=n(55),i=n(56);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function d(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return F(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return x(this,t,n);case"utf8":case"utf-8":return k(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return P(this,t,n);case"base64":return _(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,o);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,o){var i,a=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,n/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=n;is&&(n=s-c),i=n;i>=0;i--){for(var f=!0,h=0;ho&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function _(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function k(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o239?4:u>223?3:u>191?2:1;if(o+f<=n)switch(f){case 1:u<128&&(l=u);break;case 2:128==(192&(i=e[o+1]))&&(c=(31&u)<<6|63&i)>127&&(l=c);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(c=(15&u)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(c=(15&u)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&c<1114112&&(l=c)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},c.prototype.compare=function(e,t,n,r,o){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),u=this.slice(r,o),l=e.slice(t,n),f=0;fo)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return m(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return E(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return C(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;or)&&(n=r);for(var o="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function L(e,t,n,r,o,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function D(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o>>8*(r?o:1-o)}function M(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o>>8*(r?o:3-o)&255}function j(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function A(e,t,n,r,i){return i||j(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function B(e,t,n,r,i){return i||j(e,0,n,8),o.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(o*=256);)r+=this[e+--t]*o;return r},c.prototype.readUInt8=function(e,t){return t||R(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||R(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||R(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||R(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||R(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=this[e],o=1,i=0;++i=(o*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return t||R(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||R(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||R(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||R(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||R(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||R(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||R(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||R(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||R(e,8,this.length),o.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||L(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return A(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return A(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return B(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+n];else if(i<1e3||!c.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function H(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(N,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function q(e,t,n,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(9))},function(e,t,n){"use strict";var r=n(15).Buffer,o=n(57),i=n(21),a=n(70),s=n(73),c=n(74);e.exports=function(e){var t=[],n=[];return{encode:c(t,(e=e||{forceFloat64:!1,compatibilityMode:!1,disableTimestampEncoding:!1}).forceFloat64,e.compatibilityMode,e.disableTimestampEncoding),decode:s(n),register:function(e,t,n,a){return o(t,"must have a constructor"),o(n,"must have an encode function"),o(e>=0,"must have a non-negative type"),o(a,"must have a decode function"),this.registerEncoder((function(e){return e instanceof t}),(function(t){var o=i(),a=r.allocUnsafe(1);return a.writeInt8(e,0),o.append(a),o.append(n(t)),o})),this.registerDecoder(e,a),this},registerEncoder:function(e,n){return o(e,"must have an encode function"),o(n,"must have an encode function"),t.push({check:e,encode:n}),this},registerDecoder:function(e,t){return o(e>=0,"must have a non-negative type"),o(t,"must have a decode function"),n.push({type:e,decode:t}),this},encoder:a.encoder,decoder:a.decoder,buffer:!0,type:"msgpack5",IncompleteBufferError:s.IncompleteBufferError}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=p("_blazorLogicalChildren"),o=p("_blazorLogicalParent"),i=p("_blazorLogicalEnd");function a(e,t){if(e.childNodes.length>0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(u(i)&&u(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(c(i))throw new Error("Not implemented: moving existing logical children");var a=u(t);if(n0;)e(r,0)}var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=c,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return u(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=u,t.permuteLogicalChildren=function(e,t){var n=u(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=c(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):h(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},function(e,t){var n,r,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(e){n=i}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var c,u=[],l=!1,f=-1;function h(){l&&c&&(l=!1,c.length?u=c.concat(u):f=-1,u.length&&p())}function p(){if(!l){var e=s(h);l=!0;for(var t=u.length;t;){for(c=u,u=[];++f1)for(var n=1;nthis.length)&&(r=this.length),n>=this.length)return e||i.alloc(0);if(r<=0)return e||i.alloc(0);var o,a,s=!!e,c=this._offset(n),u=r-n,l=u,f=s&&t||0,h=c[1];if(0===n&&r==this.length){if(!s)return 1===this._bufs.length?this._bufs[0]:i.concat(this._bufs,this.length);for(a=0;a(o=this._bufs[a].length-h))){this._bufs[a].copy(e,f,h,h+l);break}this._bufs[a].copy(e,f,h),f+=o,l-=o,h&&(h=0)}return e},a.prototype.shallowSlice=function(e,t){e=e||0,t=t||this.length,e<0&&(e+=this.length),t<0&&(t+=this.length);var n=this._offset(e),r=this._offset(t),o=this._bufs.slice(n[0],r[0]+1);return 0==r[1]?o.pop():o[o.length-1]=o[o.length-1].slice(0,r[1]),0!=n[1]&&(o[0]=o[0].slice(n[1])),new a(o)},a.prototype.toString=function(e,t,n){return this.slice(t,n).toString(e)},a.prototype.consume=function(e){for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},a.prototype.duplicate=function(){for(var e=0,t=new a;e0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>>0)}t.readInt32LE=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},t.readUint32LE=i,t.readUint64LE=function(e,t){var n=i(e,t+4);if(n>o)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*r+i(e,t)},t.readLEB128=function(e,t){for(var n=0,r=0,o=0;o<4;o++){var i=e[t+o];if(n|=(127&i)<65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u)}r.length>1024&&(o.push(String.fromCharCode.apply(null,r)),r.length=0)}return o.push(String.fromCharCode.apply(null,r)),o.join("")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shouldAutoStart=function(){return!(!document||!document.currentScript||"false"===document.currentScript.getAttribute("autostart"))}},function(e,t,n){(function(e){var r=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),n={},r=0;r=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),c=r[n];n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(n)?r.showHidden=n:n&&t._extend(r,n),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=c),l(r,e,r.depth)}function c(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function u(e,t){return e}function l(e,n,r){if(e.customInspect&&n&&C(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,e);return v(o)||(o=l(e,o,r)),o}var i=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(y(t))return e.stylize(""+t,"number");if(d(t))return e.stylize(""+t,"boolean");if(g(t))return e.stylize("null","null")}(e,n);if(i)return i;var a=Object.keys(n),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),S(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return f(n);if(0===a.length){if(C(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(m(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(E(n))return e.stylize(Date.prototype.toString.call(n),"date");if(S(n))return f(n)}var u,w="",I=!1,_=["{","}"];(p(n)&&(I=!0,_=["[","]"]),C(n))&&(w=" [Function"+(n.name?": "+n.name:"")+"]");return m(n)&&(w=" "+RegExp.prototype.toString.call(n)),E(n)&&(w=" "+Date.prototype.toUTCString.call(n)),S(n)&&(w=" "+f(n)),0!==a.length||I&&0!=n.length?r<0?m(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=I?function(e,t,n,r,o){for(var i=[],a=0,s=t.length;a=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,w,_)):_[0]+w+_[1]}function f(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,n,r,o,i){var a,s,c;if((c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),P(r,o)||(a="["+o+"]"),s||(e.seen.indexOf(c.value)<0?(s=g(n)?l(e,c.value,null):l(e,c.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),b(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function p(e){return Array.isArray(e)}function d(e){return"boolean"==typeof e}function g(e){return null===e}function y(e){return"number"==typeof e}function v(e){return"string"==typeof e}function b(e){return void 0===e}function m(e){return w(e)&&"[object RegExp]"===I(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===I(e)}function S(e){return w(e)&&("[object Error]"===I(e)||e instanceof Error)}function C(e){return"function"==typeof e}function I(e){return Object.prototype.toString.call(e)}function _(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(n){if(b(i)&&(i=e.env.NODE_DEBUG||""),n=n.toUpperCase(),!a[n])if(new RegExp("\\b"+n+"\\b","i").test(i)){var r=e.pid;a[n]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",n,r,e)}}else a[n]=function(){};return a[n]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=p,t.isBoolean=d,t.isNull=g,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=v,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=m,t.isObject=w,t.isDate=E,t.isError=S,t.isFunction=C,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(59);var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function T(){var e=new Date,t=[_(e.getHours()),_(e.getMinutes()),_(e.getSeconds())].join(":");return[e.getDate(),k[e.getMonth()],t].join(" ")}function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",T(),t.format.apply(t,arguments))},t.inherits=n(60),t._extend=function(e,t){if(!t||!w(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var x="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function O(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(x&&e[x]){var t;if("function"!=typeof(t=e[x]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,x,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),o=[],i=0;i0?("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===u.prototype||(t=function(e){return u.from(e)}(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):E(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?E(e,a,t,!1):_(e,a)):E(e,a,t,!1))):r||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function C(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(p("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(I,e):I(e))}function I(e){p("emit readable"),e.emit("readable"),x(e)}function _(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(k,e,t))}function k(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;ei.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++r}return t.length-=r,o}(e,t):function(e,t){var n=u.allocUnsafe(e),r=t.head,o=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,a),0===(e-=a)){a===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++o}return t.length-=o,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function R(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(L,t,e))}function L(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function D(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return p("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?R(this):C(this),null;if(0===(e=S(e,t))&&t.ended)return 0===t.length&&R(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e0?O(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&R(this)),null!==r&&this.emit("data",r),r},m.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},m.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,p("pipe count=%d opts=%j",i.pipesCount,t);var c=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?l:m;function u(t,r){p("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,p("cleanup"),e.removeListener("close",v),e.removeListener("finish",b),e.removeListener("drain",f),e.removeListener("error",y),e.removeListener("unpipe",u),n.removeListener("end",l),n.removeListener("end",m),n.removeListener("data",g),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function l(){p("onend"),e.end()}i.endEmitted?o.nextTick(c):n.once("end",c),e.on("unpipe",u);var f=function(e){return function(){var t=e._readableState;p("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,x(e))}}(n);e.on("drain",f);var h=!1;var d=!1;function g(t){p("ondata"),d=!1,!1!==e.write(t)||d||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==D(i.pipes,e))&&!h&&(p("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,d=!0),n.pause())}function y(t){p("onerror",t),m(),e.removeListener("error",y),0===s(e,"error")&&e.emit("error",t)}function v(){e.removeListener("finish",b),m()}function b(){p("onfinish"),e.removeListener("close",v),m()}function m(){p("unpipe"),n.unpipe(e)}return n.on("data",g),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",y),e.once("close",v),e.once("finish",b),e.emit("pipe",n),i.flowing||(p("pipe resume"),n.resume()),e},m.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i0&&a.length>o&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,s=c,console&&console.warn&&console.warn(s)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=h.bind(r);return o.listener=n,r.wrapFn=o,o}function d(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var c=o[e];if(void 0===c)return!1;if("function"==typeof c)i(c,this,t);else{var u=c.length,l=y(c,u);for(n=0;n=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},s.prototype.listeners=function(e){return d(this,e,!0)},s.prototype.rawListeners=function(e){return d(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){e.exports=n(38).EventEmitter},function(e,t,n){"use strict";var r=n(22);function o(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(o,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?(r.nextTick(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){"use strict";var r=n(66).Buffer,o=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=u,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0)return o>0&&(e.lastNeed=o-1),o;if(--r=0)return o>0&&(e.lastNeed=o-2),o;if(--r=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";(function(t,r,o){var i=n(22);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=b;var s,c=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;b.WritableState=v;var u=n(20);u.inherits=n(16);var l={deprecate:n(69)},f=n(39),h=n(15).Buffer,p=o.Uint8Array||function(){};var d,g=n(40);function y(){}function v(e,t){s=s||n(10),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,u=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(I,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),I(e,t))}(e,n,r,t,o);else{var a=S(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||E(e,n),r?c(w,e,n,a,o):w(e,n,a,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(10),!(d.call(b,this)||this instanceof s))return new b(e);this._writableState=new v(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function m(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function w(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),I(e,t)}function E(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=n;for(var s=0,c=!0;n;)o[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;o.allBuffers=c,m(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,l=n.encoding,f=n.callback;if(m(e,t,!1,t.objectMode?1:u.length,u,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function S(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function C(e,t){e._final((function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),I(e,t)}))}function I(e,t){var n=S(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(C,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}u.inherits(b,f),v.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(v.prototype,"buffer",{get:l.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(d=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!d.call(this,e)||this===b&&(e&&e._writableState instanceof v)}})):d=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,o=this._writableState,a=!1,s=!o.objectMode&&(r=e,h.isBuffer(r)||r instanceof p);return s&&!h.isBuffer(e)&&(e=function(e){return h.from(e)}(e)),"function"==typeof t&&(n=t,t=null),s?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=y),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),i.nextTick(r,a),o=!1),o}(this,o,e,n))&&(o.pendingcb++,a=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=h.from(t,n));return t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var c=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,I(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=g.destroy,b.prototype._undestroy=g.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(14),n(67).setImmediate,n(9))},function(e,t,n){"use strict";e.exports=a;var r=n(10),o=n(20);function i(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.lengths?a.slice(s).buffer:null}else{var c,u=t;if(-1===(c=u.indexOf(r.a.RecordSeparator)))throw new Error("Message is incomplete.");s=c+1;n=u.substring(0,s),i=u.length>s?u.substring(s):null}var l=r.a.parse(n),f=JSON.parse(l[0]);if(f.type)throw new Error("Expected a handshake response from the server.");return[i,f]},t}()}).call(this,n(11).Buffer)},,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},a=this&&this.__spread||function(){for(var e=[],t=0;t0?a-4:a;for(n=0;n>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===s&&(t=o[e.charCodeAt(n)]<<2|o[e.charCodeAt(n+1)]>>4,c[l++]=255&t);1===s&&(t=o[e.charCodeAt(n)]<<10|o[e.charCodeAt(n+1)]<<4|o[e.charCodeAt(n+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;as?s:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,c=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var o,i,a=[],s=t;s>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,c=(1<>1,l=-7,f=n?o-1:0,h=n?-1:1,p=e[t+f];for(f+=h,i=p&(1<<-l)-1,p>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=h,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=r;l>0;a=256*a+e[t+f],f+=h,l-=8);if(0===i)i=1-u;else{if(i===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),i-=u}return(p?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,c,u=8*i-o-1,l=(1<>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,d=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+f>=1?h/c:h*Math.pow(2,1-f))*c>=2&&(a++,c/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*c-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[n+p]=255&s,p+=d,s/=256,o-=8);for(a=a<0;e[n+p]=255&a,p+=d,a/=256,u-=8);e[n+p-d]|=128*g}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";(function(t){var r=n(58); +var r=n(51),o=n(52),i=n(53);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function d(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return F(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return x(this,t,n);case"utf8":case"utf-8":return k(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return P(this,t,n);case"base64":return _(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,o);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,o){var i,a=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,n/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=n;is&&(n=s-c),i=n;i>=0;i--){for(var f=!0,h=0;ho&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function _(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function k(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o239?4:u>223?3:u>191?2:1;if(o+f<=n)switch(f){case 1:u<128&&(l=u);break;case 2:128==(192&(i=e[o+1]))&&(c=(31&u)<<6|63&i)>127&&(l=c);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(c=(15&u)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(c=(15&u)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&c<1114112&&(l=c)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},c.prototype.compare=function(e,t,n,r,o){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),u=this.slice(r,o),l=e.slice(t,n),f=0;fo)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return m(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return E(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return C(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;or)&&(n=r);for(var o="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function L(e,t,n,r,o,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function D(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o>>8*(r?o:1-o)}function M(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o>>8*(r?o:3-o)&255}function j(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function A(e,t,n,r,i){return i||j(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function B(e,t,n,r,i){return i||j(e,0,n,8),o.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(o*=256);)r+=this[e+--t]*o;return r},c.prototype.readUInt8=function(e,t){return t||R(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||R(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||R(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||R(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||R(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=this[e],o=1,i=0;++i=(o*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return t||R(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||R(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||R(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||R(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||R(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||R(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||R(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||R(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||R(e,8,this.length),o.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||L(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return A(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return A(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return B(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+n];else if(i<1e3||!c.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function H(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(U,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function q(e,t,n,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(9))},function(e,t,n){"use strict";var r=n(15).Buffer,o=n(54),i=n(21),a=n(67),s=n(70),c=n(71);e.exports=function(e){var t=[],n=[];return{encode:c(t,(e=e||{forceFloat64:!1,compatibilityMode:!1,disableTimestampEncoding:!1}).forceFloat64,e.compatibilityMode,e.disableTimestampEncoding),decode:s(n),register:function(e,t,n,a){return o(t,"must have a constructor"),o(n,"must have an encode function"),o(e>=0,"must have a non-negative type"),o(a,"must have a decode function"),this.registerEncoder((function(e){return e instanceof t}),(function(t){var o=i(),a=r.allocUnsafe(1);return a.writeInt8(e,0),o.append(a),o.append(n(t)),o})),this.registerDecoder(e,a),this},registerEncoder:function(e,n){return o(e,"must have an encode function"),o(n,"must have an encode function"),t.push({check:e,encode:n}),this},registerDecoder:function(e,t){return o(e>=0,"must have a non-negative type"),o(t,"must have a decode function"),n.push({type:e,decode:t}),this},encoder:a.encoder,decoder:a.decoder,buffer:!0,type:"msgpack5",IncompleteBufferError:s.IncompleteBufferError}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=p("_blazorLogicalChildren"),o=p("_blazorLogicalParent"),i=p("_blazorLogicalEnd");function a(e,t){if(e.childNodes.length>0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(u(i)&&u(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(c(i))throw new Error("Not implemented: moving existing logical children");var a=u(t);if(n0;)e(r,0)}var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=c,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return u(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=u,t.permuteLogicalChildren=function(e,t){var n=u(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=c(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):h(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},function(e,t){var n,r,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(e){n=i}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var c,u=[],l=!1,f=-1;function h(){l&&c&&(l=!1,c.length?u=c.concat(u):f=-1,u.length&&p())}function p(){if(!l){var e=s(h);l=!0;for(var t=u.length;t;){for(c=u,u=[];++f1)for(var n=1;nthis.length)&&(r=this.length),n>=this.length)return e||i.alloc(0);if(r<=0)return e||i.alloc(0);var o,a,s=!!e,c=this._offset(n),u=r-n,l=u,f=s&&t||0,h=c[1];if(0===n&&r==this.length){if(!s)return 1===this._bufs.length?this._bufs[0]:i.concat(this._bufs,this.length);for(a=0;a(o=this._bufs[a].length-h))){this._bufs[a].copy(e,f,h,h+l);break}this._bufs[a].copy(e,f,h),f+=o,l-=o,h&&(h=0)}return e},a.prototype.shallowSlice=function(e,t){e=e||0,t=t||this.length,e<0&&(e+=this.length),t<0&&(t+=this.length);var n=this._offset(e),r=this._offset(t),o=this._bufs.slice(n[0],r[0]+1);return 0==r[1]?o.pop():o[o.length-1]=o[o.length-1].slice(0,r[1]),0!=n[1]&&(o[0]=o[0].slice(n[1])),new a(o)},a.prototype.toString=function(e,t,n){return this.slice(t,n).toString(e)},a.prototype.consume=function(e){for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},a.prototype.duplicate=function(){for(var e=0,t=new a;e0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),c=r[n];n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(n)?r.showHidden=n:n&&t._extend(r,n),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=c),l(r,e,r.depth)}function c(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function u(e,t){return e}function l(e,n,r){if(e.customInspect&&n&&C(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,e);return v(o)||(o=l(e,o,r)),o}var i=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(y(t))return e.stylize(""+t,"number");if(d(t))return e.stylize(""+t,"boolean");if(g(t))return e.stylize("null","null")}(e,n);if(i)return i;var a=Object.keys(n),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),S(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return f(n);if(0===a.length){if(C(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(m(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(E(n))return e.stylize(Date.prototype.toString.call(n),"date");if(S(n))return f(n)}var u,w="",I=!1,_=["{","}"];(p(n)&&(I=!0,_=["[","]"]),C(n))&&(w=" [Function"+(n.name?": "+n.name:"")+"]");return m(n)&&(w=" "+RegExp.prototype.toString.call(n)),E(n)&&(w=" "+Date.prototype.toUTCString.call(n)),S(n)&&(w=" "+f(n)),0!==a.length||I&&0!=n.length?r<0?m(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=I?function(e,t,n,r,o){for(var i=[],a=0,s=t.length;a=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,w,_)):_[0]+w+_[1]}function f(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,n,r,o,i){var a,s,c;if((c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),P(r,o)||(a="["+o+"]"),s||(e.seen.indexOf(c.value)<0?(s=g(n)?l(e,c.value,null):l(e,c.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),b(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function p(e){return Array.isArray(e)}function d(e){return"boolean"==typeof e}function g(e){return null===e}function y(e){return"number"==typeof e}function v(e){return"string"==typeof e}function b(e){return void 0===e}function m(e){return w(e)&&"[object RegExp]"===I(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===I(e)}function S(e){return w(e)&&("[object Error]"===I(e)||e instanceof Error)}function C(e){return"function"==typeof e}function I(e){return Object.prototype.toString.call(e)}function _(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(n){if(b(i)&&(i=e.env.NODE_DEBUG||""),n=n.toUpperCase(),!a[n])if(new RegExp("\\b"+n+"\\b","i").test(i)){var r=e.pid;a[n]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",n,r,e)}}else a[n]=function(){};return a[n]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=p,t.isBoolean=d,t.isNull=g,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=v,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=m,t.isObject=w,t.isDate=E,t.isError=S,t.isFunction=C,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(56);var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function T(){var e=new Date,t=[_(e.getHours()),_(e.getMinutes()),_(e.getSeconds())].join(":");return[e.getDate(),k[e.getMonth()],t].join(" ")}function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",T(),t.format.apply(t,arguments))},t.inherits=n(57),t._extend=function(e,t){if(!t||!w(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var x="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function O(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(x&&e[x]){var t;if("function"!=typeof(t=e[x]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,x,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),o=[],i=0;i0?("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===u.prototype||(t=function(e){return u.from(e)}(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):E(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?E(e,a,t,!1):_(e,a)):E(e,a,t,!1))):r||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function C(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(p("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(I,e):I(e))}function I(e){p("emit readable"),e.emit("readable"),x(e)}function _(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(k,e,t))}function k(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;ei.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++r}return t.length-=r,o}(e,t):function(e,t){var n=u.allocUnsafe(e),r=t.head,o=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,a),0===(e-=a)){a===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++o}return t.length-=o,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function R(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(L,t,e))}function L(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function D(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return p("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?R(this):C(this),null;if(0===(e=S(e,t))&&t.ended)return 0===t.length&&R(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e0?O(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&R(this)),null!==r&&this.emit("data",r),r},m.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},m.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,p("pipe count=%d opts=%j",i.pipesCount,t);var c=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?l:m;function u(t,r){p("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,p("cleanup"),e.removeListener("close",v),e.removeListener("finish",b),e.removeListener("drain",f),e.removeListener("error",y),e.removeListener("unpipe",u),n.removeListener("end",l),n.removeListener("end",m),n.removeListener("data",g),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function l(){p("onend"),e.end()}i.endEmitted?o.nextTick(c):n.once("end",c),e.on("unpipe",u);var f=function(e){return function(){var t=e._readableState;p("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,x(e))}}(n);e.on("drain",f);var h=!1;var d=!1;function g(t){p("ondata"),d=!1,!1!==e.write(t)||d||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==D(i.pipes,e))&&!h&&(p("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,d=!0),n.pause())}function y(t){p("onerror",t),m(),e.removeListener("error",y),0===s(e,"error")&&e.emit("error",t)}function v(){e.removeListener("finish",b),m()}function b(){p("onfinish"),e.removeListener("close",v),m()}function m(){p("unpipe"),n.unpipe(e)}return n.on("data",g),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",y),e.once("close",v),e.once("finish",b),e.emit("pipe",n),i.flowing||(p("pipe resume"),n.resume()),e},m.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i0&&a.length>o&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,s=c,console&&console.warn&&console.warn(s)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=h.bind(r);return o.listener=n,r.wrapFn=o,o}function d(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var c=o[e];if(void 0===c)return!1;if("function"==typeof c)i(c,this,t);else{var u=c.length,l=y(c,u);for(n=0;n=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},s.prototype.listeners=function(e){return d(this,e,!0)},s.prototype.rawListeners=function(e){return d(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){e.exports=n(36).EventEmitter},function(e,t,n){"use strict";var r=n(22);function o(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(o,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?(r.nextTick(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){"use strict";var r=n(63).Buffer,o=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=u,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0)return o>0&&(e.lastNeed=o-1),o;if(--r=0)return o>0&&(e.lastNeed=o-2),o;if(--r=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";(function(t,r,o){var i=n(22);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=b;var s,c=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;b.WritableState=v;var u=n(20);u.inherits=n(16);var l={deprecate:n(66)},f=n(37),h=n(15).Buffer,p=o.Uint8Array||function(){};var d,g=n(38);function y(){}function v(e,t){s=s||n(10),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,u=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(I,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),I(e,t))}(e,n,r,t,o);else{var a=S(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||E(e,n),r?c(w,e,n,a,o):w(e,n,a,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(10),!(d.call(b,this)||this instanceof s))return new b(e);this._writableState=new v(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function m(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function w(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),I(e,t)}function E(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=n;for(var s=0,c=!0;n;)o[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;o.allBuffers=c,m(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,l=n.encoding,f=n.callback;if(m(e,t,!1,t.objectMode?1:u.length,u,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function S(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function C(e,t){e._final((function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),I(e,t)}))}function I(e,t){var n=S(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(C,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}u.inherits(b,f),v.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(v.prototype,"buffer",{get:l.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(d=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!d.call(this,e)||this===b&&(e&&e._writableState instanceof v)}})):d=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,o=this._writableState,a=!1,s=!o.objectMode&&(r=e,h.isBuffer(r)||r instanceof p);return s&&!h.isBuffer(e)&&(e=function(e){return h.from(e)}(e)),"function"==typeof t&&(n=t,t=null),s?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=y),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),i.nextTick(r,a),o=!1),o}(this,o,e,n))&&(o.pendingcb++,a=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=h.from(t,n));return t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var c=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,I(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=g.destroy,b.prototype._undestroy=g.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(14),n(64).setImmediate,n(9))},function(e,t,n){"use strict";e.exports=a;var r=n(10),o=n(20);function i(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.lengths?a.slice(s).buffer:null}else{var c,u=t;if(-1===(c=u.indexOf(r.a.RecordSeparator)))throw new Error("Message is incomplete.");s=c+1;n=u.substring(0,s),i=u.length>s?u.substring(s):null}var l=r.a.parse(n),f=JSON.parse(l[0]);if(f.type)throw new Error("Expected a handshake response from the server.");return[i,f]},t}()}).call(this,n(11).Buffer)},,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},a=this&&this.__spread||function(){for(var e=[],t=0;t0?a-4:a;for(n=0;n>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===s&&(t=o[e.charCodeAt(n)]<<2|o[e.charCodeAt(n+1)]>>4,c[l++]=255&t);1===s&&(t=o[e.charCodeAt(n)]<<10|o[e.charCodeAt(n+1)]<<4|o[e.charCodeAt(n+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;as?s:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,c=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var o,i,a=[],s=t;s>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,c=(1<>1,l=-7,f=n?o-1:0,h=n?-1:1,p=e[t+f];for(f+=h,i=p&(1<<-l)-1,p>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=h,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=r;l>0;a=256*a+e[t+f],f+=h,l-=8);if(0===i)i=1-u;else{if(i===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),i-=u}return(p?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,c,u=8*i-o-1,l=(1<>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,d=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+f>=1?h/c:h*Math.pow(2,1-f))*c>=2&&(a++,c/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*c-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[n+p]=255&s,p+=d,s/=256,o-=8);for(a=a<0;e[n+p]=255&a,p+=d,a/=256,u-=8);e[n+p-d]|=128*g}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";(function(t){var r=n(55); /*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT - */function o(e,t){if(e===t)return 0;for(var n=e.length,r=t.length,o=0,i=Math.min(n,r);o=0;u--)if(l[u]!==f[u])return!1;for(u=l.length-1;u>=0;u--)if(s=l[u],!m(e[s],t[s],n,r))return!1;return!0}(e,t,n,r))}return n?e===t:e==t}function w(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function E(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function S(e,t,n,r){var o;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof n&&(r=n,n=null),o=function(e){var t;try{e()}catch(e){t=e}return t}(t),r=(n&&n.name?" ("+n.name+").":".")+(r?" "+r:"."),e&&!o&&v(o,n,"Missing expected exception"+r);var i="string"==typeof r,s=!e&&o&&!n;if((!e&&a.isError(o)&&i&&E(o,n)||s)&&v(o,n,"Got unwanted exception"+r),e&&o&&n&&!E(o,n)||!e&&o)throw o}h.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return g(y(e.actual),128)+" "+e.operator+" "+g(y(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||v;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var n=new Error;if(n.stack){var r=n.stack,o=d(t),i=r.indexOf("\n"+o);if(i>=0){var a=r.indexOf("\n",i+1);r=r.substring(a+1)}this.stack=r}}},a.inherits(h.AssertionError,Error),h.fail=v,h.ok=b,h.equal=function(e,t,n){e!=t&&v(e,t,n,"==",h.equal)},h.notEqual=function(e,t,n){e==t&&v(e,t,n,"!=",h.notEqual)},h.deepEqual=function(e,t,n){m(e,t,!1)||v(e,t,n,"deepEqual",h.deepEqual)},h.deepStrictEqual=function(e,t,n){m(e,t,!0)||v(e,t,n,"deepStrictEqual",h.deepStrictEqual)},h.notDeepEqual=function(e,t,n){m(e,t,!1)&&v(e,t,n,"notDeepEqual",h.notDeepEqual)},h.notDeepStrictEqual=function e(t,n,r){m(t,n,!0)&&v(t,n,r,"notDeepStrictEqual",e)},h.strictEqual=function(e,t,n){e!==t&&v(e,t,n,"===",h.strictEqual)},h.notStrictEqual=function(e,t,n){e===t&&v(e,t,n,"!==",h.notStrictEqual)},h.throws=function(e,t,n){S(!0,e,t,n)},h.doesNotThrow=function(e,t,n){S(!1,e,t,n)},h.ifError=function(e){if(e)throw e},h.strict=r((function e(t,n){t||v(t,!0,n,"==",e)}),h,{equal:h.strictEqual,deepEqual:h.deepStrictEqual,notEqual:h.notStrictEqual,notDeepEqual:h.notDeepStrictEqual}),h.strict.strict=h.strict;var C=Object.keys||function(e){var t=[];for(var n in e)s.call(e,n)&&t.push(n);return t}}).call(this,n(9))},function(e,t,n){"use strict"; + */function o(e,t){if(e===t)return 0;for(var n=e.length,r=t.length,o=0,i=Math.min(n,r);o=0;u--)if(l[u]!==f[u])return!1;for(u=l.length-1;u>=0;u--)if(s=l[u],!m(e[s],t[s],n,r))return!1;return!0}(e,t,n,r))}return n?e===t:e==t}function w(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function E(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function S(e,t,n,r){var o;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof n&&(r=n,n=null),o=function(e){var t;try{e()}catch(e){t=e}return t}(t),r=(n&&n.name?" ("+n.name+").":".")+(r?" "+r:"."),e&&!o&&v(o,n,"Missing expected exception"+r);var i="string"==typeof r,s=!e&&o&&!n;if((!e&&a.isError(o)&&i&&E(o,n)||s)&&v(o,n,"Got unwanted exception"+r),e&&o&&n&&!E(o,n)||!e&&o)throw o}h.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return g(y(e.actual),128)+" "+e.operator+" "+g(y(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||v;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var n=new Error;if(n.stack){var r=n.stack,o=d(t),i=r.indexOf("\n"+o);if(i>=0){var a=r.indexOf("\n",i+1);r=r.substring(a+1)}this.stack=r}}},a.inherits(h.AssertionError,Error),h.fail=v,h.ok=b,h.equal=function(e,t,n){e!=t&&v(e,t,n,"==",h.equal)},h.notEqual=function(e,t,n){e==t&&v(e,t,n,"!=",h.notEqual)},h.deepEqual=function(e,t,n){m(e,t,!1)||v(e,t,n,"deepEqual",h.deepEqual)},h.deepStrictEqual=function(e,t,n){m(e,t,!0)||v(e,t,n,"deepStrictEqual",h.deepStrictEqual)},h.notDeepEqual=function(e,t,n){m(e,t,!1)&&v(e,t,n,"notDeepEqual",h.notDeepEqual)},h.notDeepStrictEqual=function e(t,n,r){m(t,n,!0)&&v(t,n,r,"notDeepStrictEqual",e)},h.strictEqual=function(e,t,n){e!==t&&v(e,t,n,"===",h.strictEqual)},h.notStrictEqual=function(e,t,n){e===t&&v(e,t,n,"!==",h.notStrictEqual)},h.throws=function(e,t,n){S(!0,e,t,n)},h.doesNotThrow=function(e,t,n){S(!1,e,t,n)},h.ifError=function(e){if(e)throw e},h.strict=r((function e(t,n){t||v(t,!0,n,"==",e)}),h,{equal:h.strictEqual,deepEqual:h.deepStrictEqual,notEqual:h.notStrictEqual,notDeepEqual:h.notDeepStrictEqual}),h.strict.strict=h.strict;var C=Object.keys||function(e){var t=[];for(var n in e)s.call(e,n)&&t.push(n);return t}}).call(this,n(9))},function(e,t,n){"use strict"; /* object-assign (c) Sindre Sorhus @license MIT -*/var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,s,c=a(e),u=1;u0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n},e.prototype.concat=function(e){if(0===this.length)return r.alloc(0);if(1===this.length)return this.head.data;for(var t,n,o,i=r.allocUnsafe(e>>>0),a=this.head,s=0;a;)t=a.data,n=i,o=s,t.copy(n,o),s+=a.data.length,a=a.next;return i},e}(),o&&o.inspect&&o.inspect.custom&&(e.exports.prototype[o.inspect.custom]=function(){var e=o.inspect({length:this.length});return this.constructor.name+" "+e})},function(e,t){},function(e,t,n){var r=n(11),o=r.Buffer;function i(e,t){for(var n in e)t[n]=e[n]}function a(e,t,n){return o(e,t,n)}o.from&&o.alloc&&o.allocUnsafe&&o.allocUnsafeSlow?e.exports=r:(i(r,t),t.Buffer=a),a.prototype=Object.create(o.prototype),i(o,a),a.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return o(e,t,n)},a.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=o(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},a.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return o(e)},a.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},function(e,t,n){(function(e){var r=void 0!==e&&e||"undefined"!=typeof self&&self||window,o=Function.prototype.apply;function i(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new i(o.call(setTimeout,r,arguments),clearTimeout)},t.setInterval=function(){return new i(o.call(setInterval,r,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(r,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},n(68),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,n(9))},function(e,t,n){(function(e,t){!function(e,n){"use strict";if(!e.setImmediate){var r,o,i,a,s,c=1,u={},l=!1,f=e.document,h=Object.getPrototypeOf&&Object.getPrototypeOf(e);h=h&&h.setTimeout?h:e,"[object process]"==={}.toString.call(e.process)?r=function(e){t.nextTick((function(){d(e)}))}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?e.MessageChannel?((i=new MessageChannel).port1.onmessage=function(e){d(e.data)},r=function(e){i.port2.postMessage(e)}):f&&"onreadystatechange"in f.createElement("script")?(o=f.documentElement,r=function(e){var t=f.createElement("script");t.onreadystatechange=function(){d(e),t.onreadystatechange=null,o.removeChild(t),t=null},o.appendChild(t)}):r=function(e){setTimeout(d,0,e)}:(a="setImmediate$"+Math.random()+"$",s=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(a)&&d(+t.data.slice(a.length))},e.addEventListener?e.addEventListener("message",s,!1):e.attachEvent("onmessage",s),r=function(t){e.postMessage(a+t,"*")}),h.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n0?this._transform(null,t,n):n()},e.exports.decoder=c,e.exports.encoder=s},function(e,t,n){(t=e.exports=n(37)).Stream=t,t.Readable=t,t.Writable=n(42),t.Duplex=n(10),t.Transform=n(43),t.PassThrough=n(72)},function(e,t,n){"use strict";e.exports=i;var r=n(43),o=n(20);function i(e){if(!(this instanceof i))return new i(e);r.call(this,e)}o.inherits=n(16),o.inherits(i,r),i.prototype._transform=function(e,t,n){n(null,e)}},function(e,t,n){var r=n(21);function o(e){Error.call(this),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.message=e||"unable to decode"}n(36).inherits(o,Error),e.exports=function(e){return function(e){e instanceof r||(e=r().append(e));var t=i(e);if(t)return e.consume(t.bytesConsumed),t.value;throw new o};function t(e,t,n){return t>=n+e}function n(e,t){return{value:e,bytesConsumed:t}}function i(e,r){r=void 0===r?0:r;var o=e.length-r;if(o<=0)return null;var i,l,f,h=e.readUInt8(r),p=0;if(!function(e,t){var n=function(e){switch(e){case 196:return 2;case 197:return 3;case 198:return 5;case 199:return 3;case 200:return 4;case 201:return 6;case 202:return 5;case 203:return 9;case 204:return 2;case 205:return 3;case 206:return 5;case 207:return 9;case 208:return 2;case 209:return 3;case 210:return 5;case 211:return 9;case 212:return 3;case 213:return 4;case 214:return 6;case 215:return 10;case 216:return 18;case 217:return 2;case 218:return 3;case 219:return 5;case 222:return 3;default:return-1}}(e);return!(-1!==n&&t=0;f--)p+=e.readUInt8(r+f+1)*Math.pow(2,8*(7-f));return n(p,9);case 208:return n(p=e.readInt8(r+1),2);case 209:return n(p=e.readInt16BE(r+1),3);case 210:return n(p=e.readInt32BE(r+1),5);case 211:return n(p=function(e,t){var n=128==(128&e[t]);if(n)for(var r=1,o=t+7;o>=t;o--){var i=(255^e[o])+r;e[o]=255&i,r=i>>8}var a=e.readUInt32BE(t+0),s=e.readUInt32BE(t+4);return(4294967296*a+s)*(n?-1:1)}(e.slice(r+1,r+9),0),9);case 202:return n(p=e.readFloatBE(r+1),5);case 203:return n(p=e.readDoubleBE(r+1),9);case 217:return t(i=e.readUInt8(r+1),o,2)?n(p=e.toString("utf8",r+2,r+2+i),2+i):null;case 218:return t(i=e.readUInt16BE(r+1),o,3)?n(p=e.toString("utf8",r+3,r+3+i),3+i):null;case 219:return t(i=e.readUInt32BE(r+1),o,5)?n(p=e.toString("utf8",r+5,r+5+i),5+i):null;case 196:return t(i=e.readUInt8(r+1),o,2)?n(p=e.slice(r+2,r+2+i),2+i):null;case 197:return t(i=e.readUInt16BE(r+1),o,3)?n(p=e.slice(r+3,r+3+i),3+i):null;case 198:return t(i=e.readUInt32BE(r+1),o,5)?n(p=e.slice(r+5,r+5+i),5+i):null;case 220:return o<3?null:(i=e.readUInt16BE(r+1),a(e,r,i,3));case 221:return o<5?null:(i=e.readUInt32BE(r+1),a(e,r,i,5));case 222:return i=e.readUInt16BE(r+1),s(e,r,i,3);case 223:throw new Error("map too big to decode in JS");case 212:return c(e,r,1);case 213:return c(e,r,2);case 214:return c(e,r,4);case 215:return c(e,r,8);case 216:return c(e,r,16);case 199:return i=e.readUInt8(r+1),l=e.readUInt8(r+2),t(i,o,3)?u(e,r,l,i,3):null;case 200:return i=e.readUInt16BE(r+1),l=e.readUInt8(r+3),t(i,o,4)?u(e,r,l,i,4):null;case 201:return i=e.readUInt32BE(r+1),l=e.readUInt8(r+5),t(i,o,6)?u(e,r,l,i,6):null}if(144==(240&h))return a(e,r,i=15&h,1);if(128==(240&h))return s(e,r,i=15&h,1);if(160==(224&h))return t(i=31&h,o,1)?n(p=e.toString("utf8",r+1,r+i+1),i+1):null;if(h>=224)return n(p=h-256,1);if(h<128)return n(h,1);throw new Error("not implemented yet")}function a(e,t,r,o){var a,s=[],c=0;for(t+=o,a=0;a.1)&&((n=r.allocUnsafe(9))[0]=203,n.writeDoubleBE(e,1)),n}e.exports=function(e,t,n,a){function s(c,u){var l,f,h;if(void 0===c)throw new Error("undefined is not encodable in msgpack!");if(null===c)(l=r.allocUnsafe(1))[0]=192;else if(!0===c)(l=r.allocUnsafe(1))[0]=195;else if(!1===c)(l=r.allocUnsafe(1))[0]=194;else if("string"==typeof c)(f=r.byteLength(c))<32?((l=r.allocUnsafe(1+f))[0]=160|f,f>0&&l.write(c,1)):f<=255&&!n?((l=r.allocUnsafe(2+f))[0]=217,l[1]=f,l.write(c,2)):f<=65535?((l=r.allocUnsafe(3+f))[0]=218,l.writeUInt16BE(f,1),l.write(c,3)):((l=r.allocUnsafe(5+f))[0]=219,l.writeUInt32BE(f,1),l.write(c,5));else if(c&&(c.readUInt32LE||c instanceof Uint8Array))c instanceof Uint8Array&&(c=r.from(c)),c.length<=255?((l=r.allocUnsafe(2))[0]=196,l[1]=c.length):c.length<=65535?((l=r.allocUnsafe(3))[0]=197,l.writeUInt16BE(c.length,1)):((l=r.allocUnsafe(5))[0]=198,l.writeUInt32BE(c.length,1)),l=o([l,c]);else if(Array.isArray(c))c.length<16?(l=r.allocUnsafe(1))[0]=144|c.length:c.length<65536?((l=r.allocUnsafe(3))[0]=220,l.writeUInt16BE(c.length,1)):((l=r.allocUnsafe(5))[0]=221,l.writeUInt32BE(c.length,1)),l=c.reduce((function(e,t){return e.append(s(t,!0)),e}),o().append(l));else{if(!a&&"function"==typeof c.getDate)return function(e){var t,n=1*e,i=Math.floor(n/1e3),a=1e6*(n-1e3*i);if(a||i>4294967295){(t=new r(10))[0]=215,t[1]=-1;var s=4*a,c=i/Math.pow(2,32),u=s+c&4294967295,l=4294967295&i;t.writeInt32BE(u,2),t.writeInt32BE(l,6)}else(t=new r(6))[0]=214,t[1]=-1,t.writeUInt32BE(Math.floor(n/1e3),2);return o().append(t)}(c);if("object"==typeof c)l=function(t){var n,i,a,s=[];for(n=0;n>8),s.push(255&a)):(s.push(201),s.push(a>>24),s.push(a>>16&255),s.push(a>>8&255),s.push(255&a));return o().append(r.from(s)).append(i)}(c)||function(e){var t,n,i=[],a=0;for(t in e)e.hasOwnProperty(t)&&void 0!==e[t]&&"function"!=typeof e[t]&&(++a,i.push(s(t,!0)),i.push(s(e[t],!0)));a<16?(n=r.allocUnsafe(1))[0]=128|a:((n=r.allocUnsafe(3))[0]=222,n.writeUInt16BE(a,1));return i.unshift(n),i.reduce((function(e,t){return e.append(t)}),o())}(c);else if("number"==typeof c){if((h=c)!==Math.floor(h))return i(c,t);if(c>=0)if(c<128)(l=r.allocUnsafe(1))[0]=c;else if(c<256)(l=r.allocUnsafe(2))[0]=204,l[1]=c;else if(c<65536)(l=r.allocUnsafe(3))[0]=205,l.writeUInt16BE(c,1);else if(c<=4294967295)(l=r.allocUnsafe(5))[0]=206,l.writeUInt32BE(c,1);else{if(!(c<=9007199254740991))return i(c,!0);(l=r.allocUnsafe(9))[0]=207,function(e,t){for(var n=7;n>=0;n--)e[n+1]=255&t,t/=256}(l,c)}else if(c>=-32)(l=r.allocUnsafe(1))[0]=256+c;else if(c>=-128)(l=r.allocUnsafe(2))[0]=208,l.writeInt8(c,1);else if(c>=-32768)(l=r.allocUnsafe(3))[0]=209,l.writeInt16BE(c,1);else if(c>-214748365)(l=r.allocUnsafe(5))[0]=210,l.writeInt32BE(c,1);else{if(!(c>=-9007199254740991))return i(c,!0);(l=r.allocUnsafe(9))[0]=211,function(e,t,n){var r=n<0;r&&(n=Math.abs(n));var o=n%4294967296,i=n/4294967296;if(e.writeUInt32BE(Math.floor(i),t+0),e.writeUInt32BE(o,t+4),r)for(var a=1,s=t+7;s>=t;s--){var c=(255^e[s])+a;e[s]=255&c,a=c>>8}}(l,1,c)}}}if(!l)throw new Error("not implemented yet");return u?l:l.slice()}return s}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]this.nextBatchId?this.fatalError?(this.logger.log(s.LogLevel.Debug,"Received a new batch "+e+" but errored out on a previous batch "+(this.nextBatchId-1)),[4,n.send("OnRenderCompleted",this.nextBatchId-1,this.fatalError.toString())]):[3,4]:[3,5];case 3:return o.sent(),[2];case 4:return this.logger.log(s.LogLevel.Debug,"Waiting for batch "+this.nextBatchId+". Batch "+e+" not processed."),[2];case 5:return o.trys.push([5,7,,8]),this.nextBatchId++,this.logger.log(s.LogLevel.Debug,"Applying batch "+e+"."),i.renderBatch(this.browserRendererId,new a.OutOfProcessRenderBatch(t)),[4,this.completeBatch(n,e)];case 6:return o.sent(),[3,8];case 7:throw r=o.sent(),this.fatalError=r.toString(),this.logger.log(s.LogLevel.Error,"There was an error applying batch "+e+"."),n.send("OnRenderCompleted",e,r.toString()),r;case 8:return[2]}}))}))},e.prototype.getLastBatchid=function(){return this.nextBatchId-1},e.prototype.completeBatch=function(e,t){return r(this,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,e.send("OnRenderCompleted",t,null)];case 1:return n.sent(),[3,3];case 2:return n.sent(),this.logger.log(s.LogLevel.Warning,"Failed to deliver completion notification for render '"+t+"'."),[3,3];case 3:return[2]}}))}))},e}();t.RenderQueue=c},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(34),o=n(33),i=function(){function e(e){this.batchData=e;var t=new u(e);this.arrayRangeReader=new l(e),this.arrayBuilderSegmentReader=new f(e),this.diffReader=new a(e),this.editReader=new s(e,t),this.frameReader=new c(e,t)}return e.prototype.updatedComponents=function(){return o.readInt32LE(this.batchData,this.batchData.length-20)},e.prototype.referenceFrames=function(){return o.readInt32LE(this.batchData,this.batchData.length-16)},e.prototype.disposedComponentIds=function(){return o.readInt32LE(this.batchData,this.batchData.length-12)},e.prototype.disposedEventHandlerIds=function(){return o.readInt32LE(this.batchData,this.batchData.length-8)},e.prototype.updatedComponentsEntry=function(e,t){var n=e+4*t;return o.readInt32LE(this.batchData,n)},e.prototype.referenceFramesEntry=function(e,t){return e+20*t},e.prototype.disposedComponentIdsEntry=function(e,t){var n=e+4*t;return o.readInt32LE(this.batchData,n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=e+8*t;return o.readUint64LE(this.batchData,n)},e}();t.OutOfProcessRenderBatch=i;var a=function(){function e(e){this.batchDataUint8=e}return e.prototype.componentId=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.edits=function(e){return e+4},e.prototype.editsEntry=function(e,t){return e+16*t},e}(),s=function(){function e(e,t){this.batchDataUint8=e,this.stringReader=t}return e.prototype.editType=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.siblingIndex=function(e){return o.readInt32LE(this.batchDataUint8,e+4)},e.prototype.newTreeIndex=function(e){return o.readInt32LE(this.batchDataUint8,e+8)},e.prototype.moveToSiblingIndex=function(e){return o.readInt32LE(this.batchDataUint8,e+8)},e.prototype.removedAttributeName=function(e){var t=o.readInt32LE(this.batchDataUint8,e+12);return this.stringReader.readString(t)},e}(),c=function(){function e(e,t){this.batchDataUint8=e,this.stringReader=t}return e.prototype.frameType=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.subtreeLength=function(e){return o.readInt32LE(this.batchDataUint8,e+4)},e.prototype.elementReferenceCaptureId=function(e){var t=o.readInt32LE(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.componentId=function(e){return o.readInt32LE(this.batchDataUint8,e+8)},e.prototype.elementName=function(e){var t=o.readInt32LE(this.batchDataUint8,e+8);return this.stringReader.readString(t)},e.prototype.textContent=function(e){var t=o.readInt32LE(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.markupContent=function(e){var t=o.readInt32LE(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.attributeName=function(e){var t=o.readInt32LE(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.attributeValue=function(e){var t=o.readInt32LE(this.batchDataUint8,e+8);return this.stringReader.readString(t)},e.prototype.attributeEventHandlerId=function(e){return o.readUint64LE(this.batchDataUint8,e+12)},e}(),u=function(){function e(e){this.batchDataUint8=e,this.stringTableStartIndex=o.readInt32LE(e,e.length-4)}return e.prototype.readString=function(e){if(-1===e)return null;var t=o.readInt32LE(this.batchDataUint8,this.stringTableStartIndex+4*e),n=o.readLEB128(this.batchDataUint8,t),i=t+o.numLEB128Bytes(n),a=new Uint8Array(this.batchDataUint8.buffer,this.batchDataUint8.byteOffset+i,n);return r.decodeUtf8(a)},e}(),l=function(){function e(e){this.batchDataUint8=e}return e.prototype.count=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.values=function(e){return e+4},e}(),f=function(){function e(e){this.batchDataUint8=e}return e.prototype.offset=function(e){return 0},e.prototype.count=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.values=function(e){return e+4},e}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(17),o=function(){function e(){}return e.prototype.log=function(e,t){},e.instance=new e,e}();t.NullLogger=o;var i=function(){function e(e){this.minimumLogLevel=e}return e.prototype.log=function(e,t){if(e>=this.minimumLogLevel)switch(e){case r.LogLevel.Critical:case r.LogLevel.Error:console.error("["+(new Date).toISOString()+"] "+r.LogLevel[e]+": "+t);break;case r.LogLevel.Warning:console.warn("["+(new Date).toISOString()+"] "+r.LogLevel[e]+": "+t);break;case r.LogLevel.Information:console.info("["+(new Date).toISOString()+"] "+r.LogLevel[e]+": "+t);break;default:console.log("["+(new Date).toISOString()+"] "+r.LogLevel[e]+": "+t)}},e}();t.ConsoleLogger=i},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]reloading the page if you're unable to reconnect.",this.message.querySelector("a").addEventListener("click",(function(){return location.reload()}))},e.prototype.rejected=function(){this.button.style.display="none",this.reloadParagraph.style.display="none",this.message.innerHTML="Could not reconnect to the server. Reload the page to restore functionality.",this.message.querySelector("a").addEventListener("click",(function(){return location.reload()}))},e}();t.DefaultReconnectDisplay=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.dialog=e}return e.prototype.show=function(){this.removeClasses(),this.dialog.classList.add(e.ShowClassName)},e.prototype.hide=function(){this.removeClasses(),this.dialog.classList.add(e.HideClassName)},e.prototype.failed=function(){this.removeClasses(),this.dialog.classList.add(e.FailedClassName)},e.prototype.rejected=function(){this.removeClasses(),this.dialog.classList.add(e.RejectedClassName)},e.prototype.removeClasses=function(){this.dialog.classList.remove(e.ShowClassName,e.HideClassName,e.FailedClassName,e.RejectedClassName)},e.ShowClassName="components-reconnect-show",e.HideClassName="components-reconnect-hide",e.FailedClassName="components-reconnect-failed",e.RejectedClassName="components-reconnect-rejected",e}();t.UserSpecifiedDisplay=r},function(e,t,n){"use strict";n.r(t),n.d(t,"VERSION",(function(){return l})),n.d(t,"MessagePackHubProtocol",(function(){return u}));var r=n(11),o=n(12),i=n(2),a=function(){function e(){}return e.write=function(e){var t=e.byteLength||e.length,n=[];do{var r=127&t;(t>>=7)>0&&(r|=128),n.push(r)}while(t>0);t=e.byteLength||e.length;var o=new Uint8Array(n.length+t);return o.set(n,0),o.set(e,n.length),o.buffer},e.parse=function(e){for(var t=[],n=new Uint8Array(e),r=[0,7,14,21,28],o=0;o7)throw new Error("Messages bigger than 2GB are not supported.");if(!(n.byteLength>=o+i+a))throw new Error("Incomplete message.");t.push(n.slice?n.slice(o+i,o+i+a):n.subarray(o+i,o+i+a)),o=o+i+a}return t},e}();var s=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=3?e[2]:void 0,error:e[1],type:i.MessageType.Close}},e.prototype.createPingMessage=function(e){if(e.length<1)throw new Error("Invalid payload for Ping message.");return{type:i.MessageType.Ping}},e.prototype.createInvocationMessage=function(e,t){if(t.length<5)throw new Error("Invalid payload for Invocation message.");var n=t[2];return n?{arguments:t[4],headers:e,invocationId:n,streamIds:[],target:t[3],type:i.MessageType.Invocation}:{arguments:t[4],headers:e,streamIds:[],target:t[3],type:i.MessageType.Invocation}},e.prototype.createStreamItemMessage=function(e,t){if(t.length<4)throw new Error("Invalid payload for StreamItem message.");return{headers:e,invocationId:t[2],item:t[3],type:i.MessageType.StreamItem}},e.prototype.createCompletionMessage=function(e,t){if(t.length<4)throw new Error("Invalid payload for Completion message.");var n,r,o=t[3];if(o!==this.voidResult&&t.length<5)throw new Error("Invalid payload for Completion message.");switch(o){case this.errorResult:n=t[4];break;case this.nonVoidResult:r=t[4]}return{error:n,headers:e,invocationId:t[2],result:r,type:i.MessageType.Completion}},e.prototype.writeInvocation=function(e){var t,n=o(this.messagePackOptions);return t=e.streamIds?n.encode([i.MessageType.Invocation,e.headers||{},e.invocationId||null,e.target,e.arguments,e.streamIds]):n.encode([i.MessageType.Invocation,e.headers||{},e.invocationId||null,e.target,e.arguments]),a.write(t.slice())},e.prototype.writeStreamInvocation=function(e){var t,n=o(this.messagePackOptions);return t=e.streamIds?n.encode([i.MessageType.StreamInvocation,e.headers||{},e.invocationId,e.target,e.arguments,e.streamIds]):n.encode([i.MessageType.StreamInvocation,e.headers||{},e.invocationId,e.target,e.arguments]),a.write(t.slice())},e.prototype.writeStreamItem=function(e){var t=o(this.messagePackOptions).encode([i.MessageType.StreamItem,e.headers||{},e.invocationId,e.item]);return a.write(t.slice())},e.prototype.writeCompletion=function(e){var t,n=o(this.messagePackOptions),r=e.error?this.errorResult:e.result?this.nonVoidResult:this.voidResult;switch(r){case this.errorResult:t=n.encode([i.MessageType.Completion,e.headers||{},e.invocationId,r,e.error]);break;case this.voidResult:t=n.encode([i.MessageType.Completion,e.headers||{},e.invocationId,r]);break;case this.nonVoidResult:t=n.encode([i.MessageType.Completion,e.headers||{},e.invocationId,r,e.result])}return a.write(t.slice())},e.prototype.writeCancelInvocation=function(e){var t=o(this.messagePackOptions).encode([i.MessageType.CancelInvocation,e.headers||{},e.invocationId]);return a.write(t.slice())},e.prototype.readHeaders=function(e){var t=e[1];if("object"!=typeof t)throw new Error("Invalid headers.");return t},e}(),l="5.0.0-dev"}]); \ No newline at end of file +*/var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,s,c=a(e),u=1;u0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n},e.prototype.concat=function(e){if(0===this.length)return r.alloc(0);if(1===this.length)return this.head.data;for(var t,n,o,i=r.allocUnsafe(e>>>0),a=this.head,s=0;a;)t=a.data,n=i,o=s,t.copy(n,o),s+=a.data.length,a=a.next;return i},e}(),o&&o.inspect&&o.inspect.custom&&(e.exports.prototype[o.inspect.custom]=function(){var e=o.inspect({length:this.length});return this.constructor.name+" "+e})},function(e,t){},function(e,t,n){var r=n(11),o=r.Buffer;function i(e,t){for(var n in e)t[n]=e[n]}function a(e,t,n){return o(e,t,n)}o.from&&o.alloc&&o.allocUnsafe&&o.allocUnsafeSlow?e.exports=r:(i(r,t),t.Buffer=a),a.prototype=Object.create(o.prototype),i(o,a),a.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return o(e,t,n)},a.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=o(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},a.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return o(e)},a.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},function(e,t,n){(function(e){var r=void 0!==e&&e||"undefined"!=typeof self&&self||window,o=Function.prototype.apply;function i(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new i(o.call(setTimeout,r,arguments),clearTimeout)},t.setInterval=function(){return new i(o.call(setInterval,r,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(r,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},n(65),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,n(9))},function(e,t,n){(function(e,t){!function(e,n){"use strict";if(!e.setImmediate){var r,o,i,a,s,c=1,u={},l=!1,f=e.document,h=Object.getPrototypeOf&&Object.getPrototypeOf(e);h=h&&h.setTimeout?h:e,"[object process]"==={}.toString.call(e.process)?r=function(e){t.nextTick((function(){d(e)}))}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?e.MessageChannel?((i=new MessageChannel).port1.onmessage=function(e){d(e.data)},r=function(e){i.port2.postMessage(e)}):f&&"onreadystatechange"in f.createElement("script")?(o=f.documentElement,r=function(e){var t=f.createElement("script");t.onreadystatechange=function(){d(e),t.onreadystatechange=null,o.removeChild(t),t=null},o.appendChild(t)}):r=function(e){setTimeout(d,0,e)}:(a="setImmediate$"+Math.random()+"$",s=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(a)&&d(+t.data.slice(a.length))},e.addEventListener?e.addEventListener("message",s,!1):e.attachEvent("onmessage",s),r=function(t){e.postMessage(a+t,"*")}),h.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n0?this._transform(null,t,n):n()},e.exports.decoder=c,e.exports.encoder=s},function(e,t,n){(t=e.exports=n(35)).Stream=t,t.Readable=t,t.Writable=n(40),t.Duplex=n(10),t.Transform=n(41),t.PassThrough=n(69)},function(e,t,n){"use strict";e.exports=i;var r=n(41),o=n(20);function i(e){if(!(this instanceof i))return new i(e);r.call(this,e)}o.inherits=n(16),o.inherits(i,r),i.prototype._transform=function(e,t,n){n(null,e)}},function(e,t,n){var r=n(21);function o(e){Error.call(this),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.message=e||"unable to decode"}n(34).inherits(o,Error),e.exports=function(e){return function(e){e instanceof r||(e=r().append(e));var t=i(e);if(t)return e.consume(t.bytesConsumed),t.value;throw new o};function t(e,t,n){return t>=n+e}function n(e,t){return{value:e,bytesConsumed:t}}function i(e,r){r=void 0===r?0:r;var o=e.length-r;if(o<=0)return null;var i,l,f,h=e.readUInt8(r),p=0;if(!function(e,t){var n=function(e){switch(e){case 196:return 2;case 197:return 3;case 198:return 5;case 199:return 3;case 200:return 4;case 201:return 6;case 202:return 5;case 203:return 9;case 204:return 2;case 205:return 3;case 206:return 5;case 207:return 9;case 208:return 2;case 209:return 3;case 210:return 5;case 211:return 9;case 212:return 3;case 213:return 4;case 214:return 6;case 215:return 10;case 216:return 18;case 217:return 2;case 218:return 3;case 219:return 5;case 222:return 3;default:return-1}}(e);return!(-1!==n&&t=0;f--)p+=e.readUInt8(r+f+1)*Math.pow(2,8*(7-f));return n(p,9);case 208:return n(p=e.readInt8(r+1),2);case 209:return n(p=e.readInt16BE(r+1),3);case 210:return n(p=e.readInt32BE(r+1),5);case 211:return n(p=function(e,t){var n=128==(128&e[t]);if(n)for(var r=1,o=t+7;o>=t;o--){var i=(255^e[o])+r;e[o]=255&i,r=i>>8}var a=e.readUInt32BE(t+0),s=e.readUInt32BE(t+4);return(4294967296*a+s)*(n?-1:1)}(e.slice(r+1,r+9),0),9);case 202:return n(p=e.readFloatBE(r+1),5);case 203:return n(p=e.readDoubleBE(r+1),9);case 217:return t(i=e.readUInt8(r+1),o,2)?n(p=e.toString("utf8",r+2,r+2+i),2+i):null;case 218:return t(i=e.readUInt16BE(r+1),o,3)?n(p=e.toString("utf8",r+3,r+3+i),3+i):null;case 219:return t(i=e.readUInt32BE(r+1),o,5)?n(p=e.toString("utf8",r+5,r+5+i),5+i):null;case 196:return t(i=e.readUInt8(r+1),o,2)?n(p=e.slice(r+2,r+2+i),2+i):null;case 197:return t(i=e.readUInt16BE(r+1),o,3)?n(p=e.slice(r+3,r+3+i),3+i):null;case 198:return t(i=e.readUInt32BE(r+1),o,5)?n(p=e.slice(r+5,r+5+i),5+i):null;case 220:return o<3?null:(i=e.readUInt16BE(r+1),a(e,r,i,3));case 221:return o<5?null:(i=e.readUInt32BE(r+1),a(e,r,i,5));case 222:return i=e.readUInt16BE(r+1),s(e,r,i,3);case 223:throw new Error("map too big to decode in JS");case 212:return c(e,r,1);case 213:return c(e,r,2);case 214:return c(e,r,4);case 215:return c(e,r,8);case 216:return c(e,r,16);case 199:return i=e.readUInt8(r+1),l=e.readUInt8(r+2),t(i,o,3)?u(e,r,l,i,3):null;case 200:return i=e.readUInt16BE(r+1),l=e.readUInt8(r+3),t(i,o,4)?u(e,r,l,i,4):null;case 201:return i=e.readUInt32BE(r+1),l=e.readUInt8(r+5),t(i,o,6)?u(e,r,l,i,6):null}if(144==(240&h))return a(e,r,i=15&h,1);if(128==(240&h))return s(e,r,i=15&h,1);if(160==(224&h))return t(i=31&h,o,1)?n(p=e.toString("utf8",r+1,r+i+1),i+1):null;if(h>=224)return n(p=h-256,1);if(h<128)return n(h,1);throw new Error("not implemented yet")}function a(e,t,r,o){var a,s=[],c=0;for(t+=o,a=0;a.1)&&((n=r.allocUnsafe(9))[0]=203,n.writeDoubleBE(e,1)),n}e.exports=function(e,t,n,a){function s(c,u){var l,f,h;if(void 0===c)throw new Error("undefined is not encodable in msgpack!");if(null===c)(l=r.allocUnsafe(1))[0]=192;else if(!0===c)(l=r.allocUnsafe(1))[0]=195;else if(!1===c)(l=r.allocUnsafe(1))[0]=194;else if("string"==typeof c)(f=r.byteLength(c))<32?((l=r.allocUnsafe(1+f))[0]=160|f,f>0&&l.write(c,1)):f<=255&&!n?((l=r.allocUnsafe(2+f))[0]=217,l[1]=f,l.write(c,2)):f<=65535?((l=r.allocUnsafe(3+f))[0]=218,l.writeUInt16BE(f,1),l.write(c,3)):((l=r.allocUnsafe(5+f))[0]=219,l.writeUInt32BE(f,1),l.write(c,5));else if(c&&(c.readUInt32LE||c instanceof Uint8Array))c instanceof Uint8Array&&(c=r.from(c)),c.length<=255?((l=r.allocUnsafe(2))[0]=196,l[1]=c.length):c.length<=65535?((l=r.allocUnsafe(3))[0]=197,l.writeUInt16BE(c.length,1)):((l=r.allocUnsafe(5))[0]=198,l.writeUInt32BE(c.length,1)),l=o([l,c]);else if(Array.isArray(c))c.length<16?(l=r.allocUnsafe(1))[0]=144|c.length:c.length<65536?((l=r.allocUnsafe(3))[0]=220,l.writeUInt16BE(c.length,1)):((l=r.allocUnsafe(5))[0]=221,l.writeUInt32BE(c.length,1)),l=c.reduce((function(e,t){return e.append(s(t,!0)),e}),o().append(l));else{if(!a&&"function"==typeof c.getDate)return function(e){var t,n=1*e,i=Math.floor(n/1e3),a=1e6*(n-1e3*i);if(a||i>4294967295){(t=new r(10))[0]=215,t[1]=-1;var s=4*a,c=i/Math.pow(2,32),u=s+c&4294967295,l=4294967295&i;t.writeInt32BE(u,2),t.writeInt32BE(l,6)}else(t=new r(6))[0]=214,t[1]=-1,t.writeUInt32BE(Math.floor(n/1e3),2);return o().append(t)}(c);if("object"==typeof c)l=function(t){var n,i,a,s=[];for(n=0;n>8),s.push(255&a)):(s.push(201),s.push(a>>24),s.push(a>>16&255),s.push(a>>8&255),s.push(255&a));return o().append(r.from(s)).append(i)}(c)||function(e){var t,n,i=[],a=0;for(t in e)e.hasOwnProperty(t)&&void 0!==e[t]&&"function"!=typeof e[t]&&(++a,i.push(s(t,!0)),i.push(s(e[t],!0)));a<16?(n=r.allocUnsafe(1))[0]=128|a:((n=r.allocUnsafe(3))[0]=222,n.writeUInt16BE(a,1));return i.unshift(n),i.reduce((function(e,t){return e.append(t)}),o())}(c);else if("number"==typeof c){if((h=c)!==Math.floor(h))return i(c,t);if(c>=0)if(c<128)(l=r.allocUnsafe(1))[0]=c;else if(c<256)(l=r.allocUnsafe(2))[0]=204,l[1]=c;else if(c<65536)(l=r.allocUnsafe(3))[0]=205,l.writeUInt16BE(c,1);else if(c<=4294967295)(l=r.allocUnsafe(5))[0]=206,l.writeUInt32BE(c,1);else{if(!(c<=9007199254740991))return i(c,!0);(l=r.allocUnsafe(9))[0]=207,function(e,t){for(var n=7;n>=0;n--)e[n+1]=255&t,t/=256}(l,c)}else if(c>=-32)(l=r.allocUnsafe(1))[0]=256+c;else if(c>=-128)(l=r.allocUnsafe(2))[0]=208,l.writeInt8(c,1);else if(c>=-32768)(l=r.allocUnsafe(3))[0]=209,l.writeInt16BE(c,1);else if(c>-214748365)(l=r.allocUnsafe(5))[0]=210,l.writeInt32BE(c,1);else{if(!(c>=-9007199254740991))return i(c,!0);(l=r.allocUnsafe(9))[0]=211,function(e,t,n){var r=n<0;r&&(n=Math.abs(n));var o=n%4294967296,i=n/4294967296;if(e.writeUInt32BE(Math.floor(i),t+0),e.writeUInt32BE(o,t+4),r)for(var a=1,s=t+7;s>=t;s--){var c=(255^e[s])+a;e[s]=255&c,a=c>>8}}(l,1,c)}}}if(!l)throw new Error("not implemented yet");return u?l:l.slice()}return s}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]this.nextBatchId?this.fatalError?(this.logger.log(s.LogLevel.Debug,"Received a new batch "+e+" but errored out on a previous batch "+(this.nextBatchId-1)),[4,n.send("OnRenderCompleted",this.nextBatchId-1,this.fatalError.toString())]):[3,4]:[3,5];case 3:return o.sent(),[2];case 4:return this.logger.log(s.LogLevel.Debug,"Waiting for batch "+this.nextBatchId+". Batch "+e+" not processed."),[2];case 5:return o.trys.push([5,7,,8]),this.nextBatchId++,this.logger.log(s.LogLevel.Debug,"Applying batch "+e+"."),i.renderBatch(this.browserRendererId,new a.OutOfProcessRenderBatch(t)),[4,this.completeBatch(n,e)];case 6:return o.sent(),[3,8];case 7:throw r=o.sent(),this.fatalError=r.toString(),this.logger.log(s.LogLevel.Error,"There was an error applying batch "+e+"."),n.send("OnRenderCompleted",e,r.toString()),r;case 8:return[2]}}))}))},e.prototype.getLastBatchid=function(){return this.nextBatchId-1},e.prototype.completeBatch=function(e,t){return r(this,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,e.send("OnRenderCompleted",t,null)];case 1:return n.sent(),[3,3];case 2:return n.sent(),this.logger.log(s.LogLevel.Warning,"Failed to deliver completion notification for render '"+t+"'."),[3,3];case 3:return[2]}}))}))},e}();t.RenderQueue=c},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(74),o=n(75),i=function(){function e(e){this.batchData=e;var t=new u(e);this.arrayRangeReader=new l(e),this.arrayBuilderSegmentReader=new f(e),this.diffReader=new a(e),this.editReader=new s(e,t),this.frameReader=new c(e,t)}return e.prototype.updatedComponents=function(){return o.readInt32LE(this.batchData,this.batchData.length-20)},e.prototype.referenceFrames=function(){return o.readInt32LE(this.batchData,this.batchData.length-16)},e.prototype.disposedComponentIds=function(){return o.readInt32LE(this.batchData,this.batchData.length-12)},e.prototype.disposedEventHandlerIds=function(){return o.readInt32LE(this.batchData,this.batchData.length-8)},e.prototype.updatedComponentsEntry=function(e,t){var n=e+4*t;return o.readInt32LE(this.batchData,n)},e.prototype.referenceFramesEntry=function(e,t){return e+20*t},e.prototype.disposedComponentIdsEntry=function(e,t){var n=e+4*t;return o.readInt32LE(this.batchData,n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=e+8*t;return o.readUint64LE(this.batchData,n)},e}();t.OutOfProcessRenderBatch=i;var a=function(){function e(e){this.batchDataUint8=e}return e.prototype.componentId=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.edits=function(e){return e+4},e.prototype.editsEntry=function(e,t){return e+16*t},e}(),s=function(){function e(e,t){this.batchDataUint8=e,this.stringReader=t}return e.prototype.editType=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.siblingIndex=function(e){return o.readInt32LE(this.batchDataUint8,e+4)},e.prototype.newTreeIndex=function(e){return o.readInt32LE(this.batchDataUint8,e+8)},e.prototype.moveToSiblingIndex=function(e){return o.readInt32LE(this.batchDataUint8,e+8)},e.prototype.removedAttributeName=function(e){var t=o.readInt32LE(this.batchDataUint8,e+12);return this.stringReader.readString(t)},e}(),c=function(){function e(e,t){this.batchDataUint8=e,this.stringReader=t}return e.prototype.frameType=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.subtreeLength=function(e){return o.readInt32LE(this.batchDataUint8,e+4)},e.prototype.elementReferenceCaptureId=function(e){var t=o.readInt32LE(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.componentId=function(e){return o.readInt32LE(this.batchDataUint8,e+8)},e.prototype.elementName=function(e){var t=o.readInt32LE(this.batchDataUint8,e+8);return this.stringReader.readString(t)},e.prototype.textContent=function(e){var t=o.readInt32LE(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.markupContent=function(e){var t=o.readInt32LE(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.attributeName=function(e){var t=o.readInt32LE(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.attributeValue=function(e){var t=o.readInt32LE(this.batchDataUint8,e+8);return this.stringReader.readString(t)},e.prototype.attributeEventHandlerId=function(e){return o.readUint64LE(this.batchDataUint8,e+12)},e}(),u=function(){function e(e){this.batchDataUint8=e,this.stringTableStartIndex=o.readInt32LE(e,e.length-4)}return e.prototype.readString=function(e){if(-1===e)return null;var t=o.readInt32LE(this.batchDataUint8,this.stringTableStartIndex+4*e),n=o.readLEB128(this.batchDataUint8,t),i=t+o.numLEB128Bytes(n),a=new Uint8Array(this.batchDataUint8.buffer,this.batchDataUint8.byteOffset+i,n);return r.decodeUtf8(a)},e}(),l=function(){function e(e){this.batchDataUint8=e}return e.prototype.count=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.values=function(e){return e+4},e}(),f=function(){function e(e){this.batchDataUint8=e}return e.prototype.offset=function(e){return 0},e.prototype.count=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.values=function(e){return e+4},e}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof TextDecoder?new TextDecoder("utf-8"):null;t.decodeUtf8=r?r.decode.bind(r):function(e){var t=0,n=e.length,r=[],o=[];for(;t65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u)}r.length>1024&&(o.push(String.fromCharCode.apply(null,r)),r.length=0)}return o.push(String.fromCharCode.apply(null,r)),o.join("")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Math.pow(2,32),o=Math.pow(2,21)-1;function i(e,t){return e[t]+(e[t+1]<<8)+(e[t+2]<<16)+(e[t+3]<<24>>>0)}t.readInt32LE=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},t.readUint32LE=i,t.readUint64LE=function(e,t){var n=i(e,t+4);if(n>o)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*r+i(e,t)},t.readLEB128=function(e,t){for(var n=0,r=0,o=0;o<4;o++){var i=e[t+o];if(n|=(127&i)<=this.minimumLogLevel)switch(e){case r.LogLevel.Critical:case r.LogLevel.Error:console.error("["+(new Date).toISOString()+"] "+r.LogLevel[e]+": "+t);break;case r.LogLevel.Warning:console.warn("["+(new Date).toISOString()+"] "+r.LogLevel[e]+": "+t);break;case r.LogLevel.Information:console.info("["+(new Date).toISOString()+"] "+r.LogLevel[e]+": "+t);break;default:console.log("["+(new Date).toISOString()+"] "+r.LogLevel[e]+": "+t)}},e}();t.ConsoleLogger=i},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]reloading the page if you're unable to reconnect.",this.message.querySelector("a").addEventListener("click",(function(){return location.reload()}))},e.prototype.rejected=function(){this.button.style.display="none",this.reloadParagraph.style.display="none",this.message.innerHTML="Could not reconnect to the server. Reload the page to restore functionality.",this.message.querySelector("a").addEventListener("click",(function(){return location.reload()}))},e}();t.DefaultReconnectDisplay=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.dialog=e}return e.prototype.show=function(){this.removeClasses(),this.dialog.classList.add(e.ShowClassName)},e.prototype.hide=function(){this.removeClasses(),this.dialog.classList.add(e.HideClassName)},e.prototype.failed=function(){this.removeClasses(),this.dialog.classList.add(e.FailedClassName)},e.prototype.rejected=function(){this.removeClasses(),this.dialog.classList.add(e.RejectedClassName)},e.prototype.removeClasses=function(){this.dialog.classList.remove(e.ShowClassName,e.HideClassName,e.FailedClassName,e.RejectedClassName)},e.ShowClassName="components-reconnect-show",e.HideClassName="components-reconnect-hide",e.FailedClassName="components-reconnect-failed",e.RejectedClassName="components-reconnect-rejected",e}();t.UserSpecifiedDisplay=r},function(e,t,n){"use strict";n.r(t),n.d(t,"VERSION",(function(){return l})),n.d(t,"MessagePackHubProtocol",(function(){return u}));var r=n(11),o=n(12),i=n(2),a=function(){function e(){}return e.write=function(e){var t=e.byteLength||e.length,n=[];do{var r=127&t;(t>>=7)>0&&(r|=128),n.push(r)}while(t>0);t=e.byteLength||e.length;var o=new Uint8Array(n.length+t);return o.set(n,0),o.set(e,n.length),o.buffer},e.parse=function(e){for(var t=[],n=new Uint8Array(e),r=[0,7,14,21,28],o=0;o7)throw new Error("Messages bigger than 2GB are not supported.");if(!(n.byteLength>=o+i+a))throw new Error("Incomplete message.");t.push(n.slice?n.slice(o+i,o+i+a):n.subarray(o+i,o+i+a)),o=o+i+a}return t},e}();var s=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=3?e[2]:void 0,error:e[1],type:i.MessageType.Close}},e.prototype.createPingMessage=function(e){if(e.length<1)throw new Error("Invalid payload for Ping message.");return{type:i.MessageType.Ping}},e.prototype.createInvocationMessage=function(e,t){if(t.length<5)throw new Error("Invalid payload for Invocation message.");var n=t[2];return n?{arguments:t[4],headers:e,invocationId:n,streamIds:[],target:t[3],type:i.MessageType.Invocation}:{arguments:t[4],headers:e,streamIds:[],target:t[3],type:i.MessageType.Invocation}},e.prototype.createStreamItemMessage=function(e,t){if(t.length<4)throw new Error("Invalid payload for StreamItem message.");return{headers:e,invocationId:t[2],item:t[3],type:i.MessageType.StreamItem}},e.prototype.createCompletionMessage=function(e,t){if(t.length<4)throw new Error("Invalid payload for Completion message.");var n,r,o=t[3];if(o!==this.voidResult&&t.length<5)throw new Error("Invalid payload for Completion message.");switch(o){case this.errorResult:n=t[4];break;case this.nonVoidResult:r=t[4]}return{error:n,headers:e,invocationId:t[2],result:r,type:i.MessageType.Completion}},e.prototype.writeInvocation=function(e){var t,n=o(this.messagePackOptions);return t=e.streamIds?n.encode([i.MessageType.Invocation,e.headers||{},e.invocationId||null,e.target,e.arguments,e.streamIds]):n.encode([i.MessageType.Invocation,e.headers||{},e.invocationId||null,e.target,e.arguments]),a.write(t.slice())},e.prototype.writeStreamInvocation=function(e){var t,n=o(this.messagePackOptions);return t=e.streamIds?n.encode([i.MessageType.StreamInvocation,e.headers||{},e.invocationId,e.target,e.arguments,e.streamIds]):n.encode([i.MessageType.StreamInvocation,e.headers||{},e.invocationId,e.target,e.arguments]),a.write(t.slice())},e.prototype.writeStreamItem=function(e){var t=o(this.messagePackOptions).encode([i.MessageType.StreamItem,e.headers||{},e.invocationId,e.item]);return a.write(t.slice())},e.prototype.writeCompletion=function(e){var t,n=o(this.messagePackOptions),r=e.error?this.errorResult:e.result?this.nonVoidResult:this.voidResult;switch(r){case this.errorResult:t=n.encode([i.MessageType.Completion,e.headers||{},e.invocationId,r,e.error]);break;case this.voidResult:t=n.encode([i.MessageType.Completion,e.headers||{},e.invocationId,r]);break;case this.nonVoidResult:t=n.encode([i.MessageType.Completion,e.headers||{},e.invocationId,r,e.result])}return a.write(t.slice())},e.prototype.writeCancelInvocation=function(e){var t=o(this.messagePackOptions).encode([i.MessageType.CancelInvocation,e.headers||{},e.invocationId]);return a.write(t.slice())},e.prototype.readHeaders=function(e){var t=e[1];if("object"!=typeof t)throw new Error("Invalid headers.");return t},e}(),l="0.0.0-DEV_BUILD"}]); \ No newline at end of file diff --git a/src/Components/Web.JS/dist/Release/blazor.webassembly.js b/src/Components/Web.JS/dist/Release/blazor.webassembly.js index cb80bf059e..6d86abf0d8 100644 --- a/src/Components/Web.JS/dist/Release/blazor.webassembly.js +++ b/src/Components/Web.JS/dist/Release/blazor.webassembly.js @@ -1 +1 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=45)}([,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){window.DotNet=e;var t=[],n={},r={},o=1,i=null;function a(e){t.push(e)}function s(e,t,n,r){var o=l();if(o.invokeDotNetFromJS){var i=JSON.stringify(r,m),a=o.invokeDotNetFromJS(e,t,n,i);return a?f(a):null}throw new Error("The current dispatcher does not support synchronous calls from JS to .NET. Use invokeMethodAsync instead.")}function u(e,t,r,i){if(e&&r)throw new Error("For instance method calls, assemblyName should be null. Received '"+e+"'.");var a=o++,s=new Promise((function(e,t){n[a]={resolve:e,reject:t}}));try{var u=JSON.stringify(i,m);l().beginInvokeDotNetFromJS(a,e,t,r,u)}catch(e){c(a,!1,e)}return s}function l(){if(null!==i)return i;throw new Error("No .NET call dispatcher has been set.")}function c(e,t,r){if(!n.hasOwnProperty(e))throw new Error("There is no pending async call with ID "+e+".");var o=n[e];delete n[e],t?o.resolve(r):o.reject(r)}function f(e){return e?JSON.parse(e,(function(e,n){return t.reduce((function(t,n){return n(e,t)}),n)})):null}function d(e){return e instanceof Error?e.message+"\n"+e.stack:e?e.toString():"null"}function p(e){if(Object.prototype.hasOwnProperty.call(r,e))return r[e];var t,n=window,o="window";if(e.split(".").forEach((function(e){if(!(e in n))throw new Error("Could not find '"+e+"' in '"+o+"'.");t=n,n=n[e],o+="."+e})),n instanceof Function)return n=n.bind(t),r[e]=n,n;throw new Error("The value '"+o+"' is not a function.")}e.attachDispatcher=function(e){i=e},e.attachReviver=a,e.invokeMethod=function(e,t){for(var n=[],r=2;r0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(l(i)&&l(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(u(i))throw new Error("Not implemented: moving existing logical children");var a=l(t);if(n0;)e(r,0)}var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=u,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return l(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===c(e).namespaceURI},t.getLogicalChildrenArray=l,t.permuteLogicalChildren=function(e,t){var n=l(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=u(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):d(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=c},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setPlatform=function(e){return t.platform=e,t.platform}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.dispatchEvent=function(e,t){if(!r)throw new Error("eventDispatcher not initialized. Call 'setEventDispatcher' to configure it.");r(e,t)},t.setEventDispatcher=function(e){r=e}},,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(8),o=n(4),i=n(31),a=n(5);window.Blazor={navigateTo:r.navigateTo,_internal:{attachRootComponentToElement:o.attachRootComponentToElement,navigationManager:r.internalFunctions,domWrapper:i.domFunctions,setProfilingEnabled:a.setProfilingEnabled}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(26),o=n(27),i=n(13),a=n(30),s=n(19),u=n(8),l=n(5),c=document.createElement("template"),f=document.createElementNS("http://www.w3.org/2000/svg","g"),d={submit:!0},p={},h=function(){function e(e){var t=this;this.childComponentLocations={},this.browserRendererId=e,this.eventDelegator=new o.EventDelegator((function(e,n,r,o){!function(e,t,n,r,o){d[e.type]&&e.preventDefault();var i={browserRendererId:t,eventHandlerId:n,eventArgsType:r.type,eventFieldInfo:o};s.dispatchEvent(i,r.data)}(e,t.browserRendererId,n,r,o)})),u.attachToEventDelegator(this.eventDelegator)}return e.prototype.attachRootComponentToLogicalElement=function(e,t){this.attachComponentToElement(e,t),p[e]=t},e.prototype.updateComponent=function(e,t,n,r){l.profileStart("updateComponent");var o=this.childComponentLocations[t];if(!o)throw new Error("No element is currently associated with component "+t);var a=p[t];if(a){var s=i.getLogicalSiblingEnd(a);delete p[t],s?function(e,t){var n=i.getLogicalParent(e);if(!n)throw new Error("Can't clear between nodes. The start node does not have a logical parent.");for(var r=i.getLogicalChildrenArray(n),o=r.indexOf(e)+1,a=r.indexOf(t),s=o;s<=a;s++)i.removeLogicalChild(n,o);e.textContent="!"}(a,s):function(e){var t;for(;t=e.firstChild;)e.removeChild(t)}(a)}var u=i.getClosestDomElement(o).ownerDocument,c=u&&u.activeElement;this.applyEdits(e,t,o,0,n,r),c instanceof HTMLElement&&u&&u.activeElement!==c&&c.focus(),l.profileEnd("updateComponent")},e.prototype.disposeComponent=function(e){delete this.childComponentLocations[e]},e.prototype.disposeEventHandler=function(e){this.eventDelegator.removeListener(e)},e.prototype.attachComponentToElement=function(e,t){this.childComponentLocations[e]=t},e.prototype.applyEdits=function(e,t,n,o,a,s){for(var u,l=0,c=o,f=e.arrayBuilderSegmentReader,d=e.editReader,p=e.frameReader,h=f.values(a),m=f.offset(a),y=m+f.count(a),v=m;v0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>>0)}t.readInt32LE=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},t.readUint32LE=i,t.readUint64LE=function(e,t){var n=i(e,t+4);if(n>o)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*r+i(e,t)},t.readLEB128=function(e,t){for(var n=0,r=0,o=0;o<4;o++){var i=e[t+o];if(n|=(127&i)<65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l)}r.length>1024&&(o.push(String.fromCharCode.apply(null,r)),r.length=0)}return o.push(String.fromCharCode.apply(null,r)),o.join("")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shouldAutoStart=function(){return!(!document||!document.currentScript||"false"===document.currentScript.getAttribute("autostart"))}},,,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var a=n(3);n(23);var s=n(18),u=n(46),l=n(4),c=n(49),f=n(35),d=n(19),p=n(50),h=n(51),m=n(52),y=n(5),v=!1;function b(e){return r(this,void 0,void 0,(function(){var t,n,f,b,g,w,E,_=this;return o(this,(function(C){switch(C.label){case 0:if(v)throw new Error("Blazor has already started.");return v=!0,d.setEventDispatcher((function(e,t){u.monoPlatform.invokeWhenHeapUnlocked((function(){return a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","DispatchEvent",e,JSON.stringify(t))}))})),t=s.setPlatform(u.monoPlatform),window.Blazor.platform=t,window.Blazor._internal.renderBatch=function(e,t){y.profileStart("renderBatch");var n=u.monoPlatform.beginHeapLock();try{l.renderBatch(e,new c.SharedMemoryRenderBatch(t))}finally{n.release()}y.profileEnd("renderBatch")},n=window.Blazor._internal.navigationManager.getBaseURI,f=window.Blazor._internal.navigationManager.getLocationHref,window.Blazor._internal.navigationManager.getUnmarshalledBaseURI=function(){return BINDING.js_string_to_mono_string(n())},window.Blazor._internal.navigationManager.getUnmarshalledLocationHref=function(){return BINDING.js_string_to_mono_string(f())},window.Blazor._internal.navigationManager.listenForNavigationEvents((function(e,t){return r(_,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return[4,a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChanged",e,t)];case 1:return n.sent(),[2]}}))}))})),[4,m.BootConfigResult.initAsync()];case 1:return b=C.sent(),[4,Promise.all([p.WebAssemblyResourceLoader.initAsync(b.bootConfig,e||{}),h.WebAssemblyConfigLoader.initAsync(b)])];case 2:g=i.apply(void 0,[C.sent(),1]),w=g[0],C.label=3;case 3:return C.trys.push([3,5,,6]),[4,t.start(w)];case 4:return C.sent(),[3,6];case 5:throw E=C.sent(),new Error("Failed to start platform. Reason: "+E);case 6:return t.callEntryPoint(w.bootConfig.entryAssembly),[2]}}))}))}window.Blazor.start=b,f.shouldAutoStart()&&b().catch((function(e){"undefined"!=typeof Module&&Module.printErr?Module.printErr(e):console.error(e)}))},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var f,d;s.attachDebuggerHotkey(e),c.initializeProfiling((function(e){v("Microsoft.AspNetCore.Components","Microsoft.AspNetCore.Components.Profiling.WebAssemblyComponentsProfiling","SetCapturing")(e)})),window.Browser={init:function(){}},f=function(){window.Module=function(e,t,n){var c=this,f=e.bootConfig.resources,d=window.Module||{},p=["DEBUGGING ENABLED"];d.print=function(e){return p.indexOf(e)<0&&console.log(e)},d.printErr=function(e){console.error(e),u.showErrorNotification()},d.preRun=d.preRun||[],d.postRun=d.postRun||[],d.preloadPlugins=[];var h,y=e.loadResources(f.assembly,(function(e){return"_framework/"+e}),"assembly"),w=e.loadResources(f.pdb||{},(function(e){return"_framework/"+e}),"pdb"),E=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");return e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.dat")&&(h=e.loadResource("dotnet.timezones.dat","_framework/dotnet.timezones.dat",e.bootConfig.resources.runtime["dotnet.timezones.dat"],"timezonedata")),d.instantiateWasm=function(e,t){return r(c,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,E];case 1:return[4,b(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),d.printErr(r),r;case 4:return t(n),[2]}}))})),[]},d.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],h&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),l.loadTimezoneData(n),removeRunDependency(t),[2]}}))}))}(h),y.forEach((function(e){return _(e,function(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}(e.name,".dll"))})),w.forEach((function(e){return _(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){d.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources;if(i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(c,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return h(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>d)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*f+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return h(e+(t||0))},readStringField:function(e,t,n){var r,o=h(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return p?void 0===(r=p.stringCache.get(o))&&(r=BINDING.conv_string(o),p.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return g(),p=new w},invokeWhenHeapUnlocked:function(e){p?p.enqueuePostReleaseAction(e):e()}};var m=document.createElement("a");function y(e){return e+12}function v(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function b(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function g(){if(p)throw new Error("Assertion failed - heap is currently locked")}var w=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(p!==this)throw new Error("Trying to release a lock which isn't current");for(p=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),g()}},e}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=window.chrome&&navigator.userAgent.indexOf("Edge")<0,o=!1;function i(){return o&&r}t.hasDebuggingEnabled=i,t.attachDebuggerHotkey=function(e){o=!!e.bootConfig.resources.pdb;var t=navigator.platform.match(/^Mac/i)?"Cmd":"Alt";i()&&console.info("Debugging hotkey: Shift+"+t+"+D (when application has focus)"),document.addEventListener("keydown",(function(e){var t;e.shiftKey&&(e.metaKey||e.altKey)&&"KeyD"===e.code&&(o?r?((t=document.createElement("a")).href="_framework/debug?url="+encodeURIComponent(location.href),t.target="_blank",t.rel="noopener noreferrer",t.click()):console.error("Currently, only Microsoft Edge (80+), or Google Chrome, are supported for debugging."):console.error("Cannot start debugging, because the application was not compiled with debugging enabled."))}))}},function(e,t,n){"use strict";var r=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},o=this&&this.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var i=n(33),a=n(34);t.loadTimezoneData=function(e){var t,n,s=new Uint8Array(e),u=i.readInt32LE(s,0);s=s.slice(4);var l=a.decodeUtf8(s.slice(0,u)),c=JSON.parse(l);s=s.slice(u),Module.FS_createPath("/","zoneinfo",!0,!0),new Set(c.map((function(e){return e[0].split("/")[0]}))).forEach((function(e){return Module.FS_createPath("/zoneinfo",e,!0,!0)}));try{for(var f=r(c),d=f.next();!d.done;d=f.next()){var p=o(d.value,2),h=p[0],m=p[1],y=s.slice(0,m);Module.FS_createDataFile("/zoneinfo/"+h,null,y,!0,!0,!0),s=s.slice(m)}}catch(e){t={error:e}}finally{try{d&&!d.done&&(n=f.return)&&n.call(f)}finally{if(t)throw t.error}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(18),o=function(){function e(e){this.batchAddress=e,this.arrayRangeReader=i,this.arrayBuilderSegmentReader=a,this.diffReader=s,this.editReader=u,this.frameReader=l}return e.prototype.updatedComponents=function(){return r.platform.readStructField(this.batchAddress,0)},e.prototype.referenceFrames=function(){return r.platform.readStructField(this.batchAddress,i.structLength)},e.prototype.disposedComponentIds=function(){return r.platform.readStructField(this.batchAddress,2*i.structLength)},e.prototype.disposedEventHandlerIds=function(){return r.platform.readStructField(this.batchAddress,3*i.structLength)},e.prototype.updatedComponentsEntry=function(e,t){return c(e,t,s.structLength)},e.prototype.referenceFramesEntry=function(e,t){return c(e,t,l.structLength)},e.prototype.disposedComponentIdsEntry=function(e,t){var n=c(e,t,4);return r.platform.readInt32Field(n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=c(e,t,8);return r.platform.readUint64Field(n)},e}();t.SharedMemoryRenderBatch=o;var i={structLength:8,values:function(e){return r.platform.readObjectField(e,0)},count:function(e){return r.platform.readInt32Field(e,4)}},a={structLength:12,values:function(e){var t=r.platform.readObjectField(e,0),n=r.platform.getObjectFieldsBaseAddress(t);return r.platform.readObjectField(n,0)},offset:function(e){return r.platform.readInt32Field(e,4)},count:function(e){return r.platform.readInt32Field(e,8)}},s={structLength:4+a.structLength,componentId:function(e){return r.platform.readInt32Field(e,0)},edits:function(e){return r.platform.readStructField(e,4)},editsEntry:function(e,t){return c(e,t,u.structLength)}},u={structLength:20,editType:function(e){return r.platform.readInt32Field(e,0)},siblingIndex:function(e){return r.platform.readInt32Field(e,4)},newTreeIndex:function(e){return r.platform.readInt32Field(e,8)},moveToSiblingIndex:function(e){return r.platform.readInt32Field(e,8)},removedAttributeName:function(e){return r.platform.readStringField(e,16)}},l={structLength:36,frameType:function(e){return r.platform.readInt16Field(e,4)},subtreeLength:function(e){return r.platform.readInt32Field(e,8)},elementReferenceCaptureId:function(e){return r.platform.readStringField(e,16)},componentId:function(e){return r.platform.readInt32Field(e,12)},elementName:function(e){return r.platform.readStringField(e,16)},textContent:function(e){return r.platform.readStringField(e,16)},markupContent:function(e){return r.platform.readStringField(e,16)},attributeName:function(e){return r.platform.readStringField(e,16)},attributeValue:function(e){return r.platform.readStringField(e,24,!0)},attributeEventHandlerId:function(e){return r.platform.readUint64Field(e,8)}};function c(e,t,n){return r.platform.getArrayEntryPtr(e,t,n)}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var a=e;if(e instanceof Comment&&(c(a)&&c(a).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(u(a))throw new Error("Not implemented: moving existing logical children");var i=c(t);if(n0;)e(r,0)}var a=r;a.parentNode.removeChild(a)},t.getLogicalParent=u,t.getLogicalSiblingEnd=function(e){return e[a]||null},t.getLogicalChild=function(e,t){return c(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=c,t.permuteLogicalChildren=function(e,t){var n=c(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=u(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):d(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,a=r;a;){var i=a.nextSibling;if(n.insertBefore(a,t),a===o)break;a=i}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setPlatform=function(e){return t.platform=e,t.platform}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.dispatchEvent=function(e,t){if(!r)throw new Error("eventDispatcher not initialized. Call 'setEventDispatcher' to configure it.");r(e,t)},t.setEventDispatcher=function(e){r=e}},,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(8),o=n(4),a=n(31),i=n(5);window.Blazor={navigateTo:r.navigateTo,_internal:{attachRootComponentToElement:o.attachRootComponentToElement,navigationManager:r.internalFunctions,domWrapper:a.domFunctions,setProfilingEnabled:i.setProfilingEnabled}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(26),o=n(27),a=n(13),i=n(30),s=n(19),u=n(8),c=n(5),l=document.createElement("template"),f=document.createElementNS("http://www.w3.org/2000/svg","g"),d={submit:!0},p={},h=function(){function e(e){var t=this;this.childComponentLocations={},this.browserRendererId=e,this.eventDelegator=new o.EventDelegator((function(e,n,r,o){!function(e,t,n,r,o){d[e.type]&&e.preventDefault();var a={browserRendererId:t,eventHandlerId:n,eventArgsType:r.type,eventFieldInfo:o};s.dispatchEvent(a,r.data)}(e,t.browserRendererId,n,r,o)})),u.attachToEventDelegator(this.eventDelegator)}return e.prototype.attachRootComponentToLogicalElement=function(e,t){this.attachComponentToElement(e,t),p[e]=t},e.prototype.updateComponent=function(e,t,n,r){c.profileStart("updateComponent");var o=this.childComponentLocations[t];if(!o)throw new Error("No element is currently associated with component "+t);var i=p[t];if(i){var s=a.getLogicalSiblingEnd(i);delete p[t],s?function(e,t){var n=a.getLogicalParent(e);if(!n)throw new Error("Can't clear between nodes. The start node does not have a logical parent.");for(var r=a.getLogicalChildrenArray(n),o=r.indexOf(e)+1,i=r.indexOf(t),s=o;s<=i;s++)a.removeLogicalChild(n,o);e.textContent="!"}(i,s):function(e){var t;for(;t=e.firstChild;)e.removeChild(t)}(i)}var u=a.getClosestDomElement(o).ownerDocument,l=u&&u.activeElement;this.applyEdits(e,t,o,0,n,r),l instanceof HTMLElement&&u&&u.activeElement!==l&&l.focus(),c.profileEnd("updateComponent")},e.prototype.disposeComponent=function(e){delete this.childComponentLocations[e]},e.prototype.disposeEventHandler=function(e){this.eventDelegator.removeListener(e)},e.prototype.attachComponentToElement=function(e,t){this.childComponentLocations[e]=t},e.prototype.applyEdits=function(e,t,n,o,i,s){for(var u,c=0,l=o,f=e.arrayBuilderSegmentReader,d=e.editReader,p=e.frameReader,h=f.values(i),m=f.offset(i),y=m+f.count(i),v=m;v0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]0)&&!(r=a.next()).done;)i.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=a.return)&&n.call(a)}finally{if(o)throw o.error}}return i};Object.defineProperty(t,"__esModule",{value:!0});var i=n(3);n(23);var s=n(18),u=n(44),c=n(4),l=n(46),f=n(33),d=n(19),p=n(47),h=n(48),m=n(49),y=n(5),v=!1;function b(e){return r(this,void 0,void 0,(function(){var t,n,f,b,g,w,E,_=this;return o(this,(function(C){switch(C.label){case 0:if(v)throw new Error("Blazor has already started.");return v=!0,d.setEventDispatcher((function(e,t){u.monoPlatform.invokeWhenHeapUnlocked((function(){return i.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","DispatchEvent",e,JSON.stringify(t))}))})),t=s.setPlatform(u.monoPlatform),window.Blazor.platform=t,window.Blazor._internal.renderBatch=function(e,t){y.profileStart("renderBatch");var n=u.monoPlatform.beginHeapLock();try{c.renderBatch(e,new l.SharedMemoryRenderBatch(t))}finally{n.release()}y.profileEnd("renderBatch")},n=window.Blazor._internal.navigationManager.getBaseURI,f=window.Blazor._internal.navigationManager.getLocationHref,window.Blazor._internal.navigationManager.getUnmarshalledBaseURI=function(){return BINDING.js_string_to_mono_string(n())},window.Blazor._internal.navigationManager.getUnmarshalledLocationHref=function(){return BINDING.js_string_to_mono_string(f())},window.Blazor._internal.navigationManager.listenForNavigationEvents((function(e,t){return r(_,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return[4,i.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChanged",e,t)];case 1:return n.sent(),[2]}}))}))})),[4,m.BootConfigResult.initAsync()];case 1:return b=C.sent(),[4,Promise.all([p.WebAssemblyResourceLoader.initAsync(b.bootConfig,e||{}),h.WebAssemblyConfigLoader.initAsync(b)])];case 2:g=a.apply(void 0,[C.sent(),1]),w=g[0],C.label=3;case 3:return C.trys.push([3,5,,6]),[4,t.start(w)];case 4:return C.sent(),[3,6];case 5:throw E=C.sent(),new Error("Failed to start platform. Reason: "+E);case 6:return t.callEntryPoint(w.bootConfig.entryAssembly),[2]}}))}))}window.Blazor.start=b,f.shouldAutoStart()&&b().catch((function(e){"undefined"!=typeof Module&&Module.printErr?Module.printErr(e):console.error(e)}))},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,a){function i(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,r=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var l,f;s.attachDebuggerHotkey(e),c.initializeProfiling((function(e){y("Microsoft.AspNetCore.Components","Microsoft.AspNetCore.Components.Profiling.WebAssemblyComponentsProfiling","SetCapturing")(e)})),window.Browser={init:function(){}},l=function(){window.Module=function(e,t,n){var c=this,l=e.bootConfig.resources,f=window.Module||{},d=["DEBUGGING ENABLED"];f.print=function(e){return d.indexOf(e)<0&&console.log(e)},f.printErr=function(e){console.error(e),u.showErrorNotification()},f.preRun=f.preRun||[],f.postRun=f.postRun||[],f.preloadPlugins=[];var p,m,g=e.loadResources(l.assembly,(function(e){return"_framework/"+e}),"assembly"),w=e.loadResources(l.pdb||{},(function(e){return"_framework/"+e}),"pdb"),E=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");return e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.blat")&&(p=e.loadResource("dotnet.timezones.blat","_framework/dotnet.timezones.blat",e.bootConfig.resources.runtime["dotnet.timezones.blat"],"globalization")),e.bootConfig.resources.runtime.hasOwnProperty("icudt.dat")?m=e.loadResource("icudt.dat","_framework/icudt.dat",e.bootConfig.resources.runtime["icudt.dat"],"globalization"):MONO.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT","1"),f.instantiateWasm=function(e,t){return r(c,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,E];case 1:return[4,v(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),f.printErr(r),r;case 4:return t(n),[2]}}))})),[]},f.preRun.push((function(){a=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],p&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),Module.FS_createPath("/","usr",!0,!0),Module.FS_createPath("/usr/","share",!0,!0),Module.FS_createPath("/usr/share/","zoneinfo",!0,!0),MONO.mono_wasm_load_data_archive(new Uint8Array(n),"/usr/share/zoneinfo/"),removeRunDependency(t),[2]}}))}))}(p),m&&function(e){r(this,void 0,void 0,(function(){var t,n,r,a,i;return o(this,(function(o){switch(o.label){case 0:return t="blazor:icudata",addRunDependency(t),[4,e.response];case 1:return n=o.sent(),a=Uint8Array.bind,[4,n.arrayBuffer()];case 2:if(r=new(a.apply(Uint8Array,[void 0,o.sent()])),i=MONO.mono_wasm_load_bytes_into_heap(r),!MONO.mono_wasm_load_icu_data(i))throw new Error("Error loading ICU asset.");return removeRunDependency(t),[2]}}))}))}(m),g.forEach((function(e){return _(e,function(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}(e.name,".dll"))})),w.forEach((function(e){return _(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){f.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),a=e.bootConfig.resources.satelliteResources;if(a){var i=Promise.all(n.filter((function(e){return a.hasOwnProperty(e)})).map((function(t){return e.loadResources(a[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(c,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(i.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return p(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>f)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*l+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return p(e+(t||0))},readStringField:function(e,t,n){var r,o=p(e+(t||0));if(0===o)return null;if(n){var a=BINDING.unbox_mono_obj(o);return"boolean"==typeof a?a?"":null:a}return d?void 0===(r=d.stringCache.get(o))&&(r=BINDING.conv_string(o),d.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return b(),d=new g},invokeWhenHeapUnlocked:function(e){d?d.enqueuePostReleaseAction(e):e()}};var h=document.createElement("a");function m(e){return e+12}function y(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function v(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function b(){if(d)throw new Error("Assertion failed - heap is currently locked")}var g=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(d!==this)throw new Error("Trying to release a lock which isn't current");for(d=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),b()}},e}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=window.chrome&&navigator.userAgent.indexOf("Edge")<0,o=!1;function a(){return o&&r}t.hasDebuggingEnabled=a,t.attachDebuggerHotkey=function(e){o=!!e.bootConfig.resources.pdb;var t=navigator.platform.match(/^Mac/i)?"Cmd":"Alt";a()&&console.info("Debugging hotkey: Shift+"+t+"+D (when application has focus)"),document.addEventListener("keydown",(function(e){var t;e.shiftKey&&(e.metaKey||e.altKey)&&"KeyD"===e.code&&(o?r?((t=document.createElement("a")).href="_framework/debug?url="+encodeURIComponent(location.href),t.target="_blank",t.rel="noopener noreferrer",t.click()):console.error("Currently, only Microsoft Edge (80+), or Google Chrome, are supported for debugging."):console.error("Cannot start debugging, because the application was not compiled with debugging enabled."))}))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(18),o=function(){function e(e){this.batchAddress=e,this.arrayRangeReader=a,this.arrayBuilderSegmentReader=i,this.diffReader=s,this.editReader=u,this.frameReader=c}return e.prototype.updatedComponents=function(){return r.platform.readStructField(this.batchAddress,0)},e.prototype.referenceFrames=function(){return r.platform.readStructField(this.batchAddress,a.structLength)},e.prototype.disposedComponentIds=function(){return r.platform.readStructField(this.batchAddress,2*a.structLength)},e.prototype.disposedEventHandlerIds=function(){return r.platform.readStructField(this.batchAddress,3*a.structLength)},e.prototype.updatedComponentsEntry=function(e,t){return l(e,t,s.structLength)},e.prototype.referenceFramesEntry=function(e,t){return l(e,t,c.structLength)},e.prototype.disposedComponentIdsEntry=function(e,t){var n=l(e,t,4);return r.platform.readInt32Field(n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=l(e,t,8);return r.platform.readUint64Field(n)},e}();t.SharedMemoryRenderBatch=o;var a={structLength:8,values:function(e){return r.platform.readObjectField(e,0)},count:function(e){return r.platform.readInt32Field(e,4)}},i={structLength:12,values:function(e){var t=r.platform.readObjectField(e,0),n=r.platform.getObjectFieldsBaseAddress(t);return r.platform.readObjectField(n,0)},offset:function(e){return r.platform.readInt32Field(e,4)},count:function(e){return r.platform.readInt32Field(e,8)}},s={structLength:4+i.structLength,componentId:function(e){return r.platform.readInt32Field(e,0)},edits:function(e){return r.platform.readStructField(e,4)},editsEntry:function(e,t){return l(e,t,u.structLength)}},u={structLength:20,editType:function(e){return r.platform.readInt32Field(e,0)},siblingIndex:function(e){return r.platform.readInt32Field(e,4)},newTreeIndex:function(e){return r.platform.readInt32Field(e,8)},moveToSiblingIndex:function(e){return r.platform.readInt32Field(e,8)},removedAttributeName:function(e){return r.platform.readStringField(e,16)}},c={structLength:36,frameType:function(e){return r.platform.readInt16Field(e,4)},subtreeLength:function(e){return r.platform.readInt32Field(e,8)},elementReferenceCaptureId:function(e){return r.platform.readStringField(e,16)},componentId:function(e){return r.platform.readInt32Field(e,12)},elementName:function(e){return r.platform.readStringField(e,16)},textContent:function(e){return r.platform.readStringField(e,16)},markupContent:function(e){return r.platform.readStringField(e,16)},attributeName:function(e){return r.platform.readStringField(e,16)},attributeValue:function(e){return r.platform.readStringField(e,24,!0)},attributeEventHandlerId:function(e){return r.platform.readUint64Field(e,8)}};function l(e,t,n){return r.platform.getArrayEntryPtr(e,t,n)}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,a){function i(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,r=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1] void; const appBinDirName = 'appBinDir'; +const icuDataResourceName = 'icudt.dat'; const uint64HighOrderShift = Math.pow(2, 32); const maxSafeNumberHighPart = Math.pow(2, 21) - 1; // The high-order int32 from Number.MAX_SAFE_INTEGER @@ -244,14 +244,26 @@ function createEmscriptenModuleInstance(resourceLoader: WebAssemblyResourceLoade /* hash */ resourceLoader.bootConfig.resources.runtime[dotnetWasmResourceName], /* type */ 'dotnetwasm'); - const dotnetTimeZoneResourceName = 'dotnet.timezones.dat'; + const dotnetTimeZoneResourceName = 'dotnet.timezones.blat'; let timeZoneResource: LoadingResource | undefined; if (resourceLoader.bootConfig.resources.runtime.hasOwnProperty(dotnetTimeZoneResourceName)) { timeZoneResource = resourceLoader.loadResource( dotnetTimeZoneResourceName, `_framework/${dotnetTimeZoneResourceName}`, resourceLoader.bootConfig.resources.runtime[dotnetTimeZoneResourceName], - 'timezonedata'); + 'globalization'); + } + + let icuDataResource: LoadingResource | undefined; + if (resourceLoader.bootConfig.resources.runtime.hasOwnProperty(icuDataResourceName)) { + icuDataResource = resourceLoader.loadResource( + icuDataResourceName, + `_framework/${icuDataResourceName}`, + resourceLoader.bootConfig.resources.runtime[icuDataResourceName], + 'globalization'); + } else { + // Use invariant culture if the app does not carry icu data. + MONO.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT", "1"); } // Override the mechanism for fetching the main wasm file so we can connect it to our cache @@ -279,6 +291,10 @@ function createEmscriptenModuleInstance(resourceLoader: WebAssemblyResourceLoade loadTimezone(timeZoneResource); } + if (icuDataResource) { + loadICUData(icuDataResource); + } + // Fetch the assemblies and PDBs in the background, telling Mono to wait until they are loaded // Mono requires the assembly filenames to have a '.dll' extension, so supply such names regardless // of the extensions in the URLs. This allows loading assemblies with arbitrary filenames. @@ -363,7 +379,11 @@ function createEmscriptenModuleInstance(resourceLoader: WebAssemblyResourceLoade resourceLoader.purgeUnusedCacheEntriesAsync(); // Don't await - it's fine to run in background MONO.mono_wasm_setenv("MONO_URI_DOTNETRELATIVEORABSOLUTE", "true"); - MONO.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT", "1"); + let timeZone = "UTC"; + try { + timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone; + } catch { } + MONO.mono_wasm_setenv("TZ", timeZone); const load_runtime = cwrap('mono_wasm_load_runtime', null, ['string', 'number']); // -1 enables debugging with logging disabled. 0 disables debugging entirely. load_runtime(appBinDirName, hasDebuggingEnabled() ? -1 : 0); @@ -461,8 +481,27 @@ async function loadTimezone(timeZoneResource: LoadingResource) : Promise { const request = await timeZoneResource.response; const arrayBuffer = await request.arrayBuffer(); - loadTimezoneData(arrayBuffer) + Module['FS_createPath']('/', 'usr', true, true); + Module['FS_createPath']('/usr/', 'share', true, true); + Module['FS_createPath']('/usr/share/', 'zoneinfo', true, true); + MONO.mono_wasm_load_data_archive(new Uint8Array(arrayBuffer), '/usr/share/zoneinfo/'); + + removeRunDependency(runDependencyId); +} + +async function loadICUData(icuDataResource: LoadingResource) : Promise { + const runDependencyId = `blazor:icudata`; + addRunDependency(runDependencyId); + + const request = await icuDataResource.response; + const array = new Uint8Array(await request.arrayBuffer()); + + const offset = MONO.mono_wasm_load_bytes_into_heap(array); + if (!MONO.mono_wasm_load_icu_data(offset)) + { + throw new Error("Error loading ICU asset."); + } removeRunDependency(runDependencyId); } diff --git a/src/Components/Web.JS/src/Platform/Mono/MonoTypes.ts b/src/Components/Web.JS/src/Platform/Mono/MonoTypes.ts index 6d83388430..9e87713b65 100644 --- a/src/Components/Web.JS/src/Platform/Mono/MonoTypes.ts +++ b/src/Components/Web.JS/src/Platform/Mono/MonoTypes.ts @@ -6,6 +6,9 @@ declare interface MONO { loaded_files: string[]; mono_wasm_runtime_ready (): void; mono_wasm_setenv (name: string, value: string): void; + mono_wasm_load_data_archive(data: Uint8Array, prefix: string): void; + mono_wasm_load_bytes_into_heap (data: Uint8Array): Pointer; + mono_wasm_load_icu_data(heapAddress: Pointer): boolean; } // Mono uses this global to hold low-level interop APIs diff --git a/src/Components/Web.JS/src/Platform/Mono/TimezoneDataFile.ts b/src/Components/Web.JS/src/Platform/Mono/TimezoneDataFile.ts deleted file mode 100644 index 47076f4aae..0000000000 --- a/src/Components/Web.JS/src/Platform/Mono/TimezoneDataFile.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { readInt32LE } from "../../BinaryDecoder"; -import { decodeUtf8 } from "../../Utf8Decoder"; - -export function loadTimezoneData(arrayBuffer: ArrayBuffer) { - let remainingData = new Uint8Array(arrayBuffer); - - // The timezone file is generated by https://github.com/dotnet/blazor/tree/master/src/TimeZoneData. - // The file format of the TZ file look like so - // - // [4 - byte length of manifest] - // [json manifest] - // [data bytes] - // - // The json manifest is an array that looks like so: - // - // [...["America/Fort_Nelson",2249],["America/Glace_Bay",2206]..] - // - // where the first token in each array is the relative path of the file on disk, and the second is the - // length of the file. The starting offset of a file can be calculated using the lengths of all files - // that appear prior to it. - const manifestSize = readInt32LE(remainingData, 0); - remainingData = remainingData.slice(4); - const manifestContent = decodeUtf8(remainingData.slice(0, manifestSize)); - const manifest = JSON.parse(manifestContent) as ManifestEntry[]; - remainingData = remainingData.slice(manifestSize); - - // Create the folder structure - // /zoneinfo - // /zoneinfo/Africa - // /zoneinfo/Asia - // .. - Module['FS_createPath']('/', 'zoneinfo', true, true); - new Set(manifest.map(m => m[0].split('/')![0])).forEach(folder => - Module['FS_createPath']('/zoneinfo', folder, true, true)); - - for (const [name, length] of manifest) { - const bytes = remainingData.slice(0, length); - Module['FS_createDataFile'](`/zoneinfo/${name}`, null, bytes, true, true, true); - remainingData = remainingData.slice(length); - } - } - - type ManifestEntry = [string, number]; \ No newline at end of file diff --git a/src/Components/Web.JS/src/Platform/WebAssemblyStartOptions.ts b/src/Components/Web.JS/src/Platform/WebAssemblyStartOptions.ts index c6710e7405..8549d5bd58 100644 --- a/src/Components/Web.JS/src/Platform/WebAssemblyStartOptions.ts +++ b/src/Components/Web.JS/src/Platform/WebAssemblyStartOptions.ts @@ -14,4 +14,4 @@ export interface WebAssemblyStartOptions { // This type doesn't have to align with anything in BootConfig. // Instead, this represents the public API through which certain aspects // of boot resource loading can be customized. -export type WebAssemblyBootResourceType = 'assembly' | 'pdb' | 'dotnetjs' | 'dotnetwasm' | 'timezonedata'; +export type WebAssemblyBootResourceType = 'assembly' | 'pdb' | 'dotnetjs' | 'dotnetwasm' | 'globalization'; diff --git a/src/Components/WebAssembly/Sdk/integrationtests/WasmBuildIntegrationTest.cs b/src/Components/WebAssembly/Sdk/integrationtests/WasmBuildIntegrationTest.cs index 7313c0b243..5790168c24 100644 --- a/src/Components/WebAssembly/Sdk/integrationtests/WasmBuildIntegrationTest.cs +++ b/src/Components/WebAssembly/Sdk/integrationtests/WasmBuildIntegrationTest.cs @@ -31,6 +31,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests Assert.FileExists(result, buildOutputDirectory, "wwwroot", "_framework", "blazor.boot.json"); Assert.FileExists(result, buildOutputDirectory, "wwwroot", "_framework", "blazor.webassembly.js"); Assert.FileExists(result, buildOutputDirectory, "wwwroot", "_framework", "dotnet.wasm"); + Assert.FileExists(result, buildOutputDirectory, "wwwroot", "_framework", "dotnet.timezones.blat"); Assert.FileExists(result, buildOutputDirectory, "wwwroot", "_framework", "dotnet.wasm.gz"); Assert.FileExists(result, buildOutputDirectory, "wwwroot", "_framework", DotNetJsFileName); Assert.FileExists(result, buildOutputDirectory, "wwwroot", "_framework", "blazorwasm-minimal.dll"); @@ -169,7 +170,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests Assert.Null(bootJsonData.resources.satelliteResources); } - [Fact(Skip = "https://github.com/dotnet/aspnetcore/issues/22975")] + [Fact] public async Task Build_WithBlazorEnableTimeZoneSupportDisabled_DoesNotCopyTimeZoneInfo() { // Arrange @@ -192,10 +193,10 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests var runtime = bootJsonData.resources.runtime.Keys; Assert.Contains("dotnet.wasm", runtime); - Assert.DoesNotContain("dotnet.timezones.dat", runtime); + Assert.DoesNotContain("dotnet.timezones.blat", runtime); - Assert.FileExists(result, buildOutputDirectory, "wwwroot", "_framework", "wasm", "dotnet.wasm"); - Assert.FileDoesNotExist(result, buildOutputDirectory, "wwwroot", "_framework", "wasm", "dotnet.timezones.dat"); + Assert.FileExists(result, buildOutputDirectory, "wwwroot", "_framework", "dotnet.wasm"); + Assert.FileDoesNotExist(result, buildOutputDirectory, "wwwroot", "_framework", "dotnet.timezones.blat"); } [Fact] diff --git a/src/Components/WebAssembly/Sdk/src/targets/BlazorWasm.web.config b/src/Components/WebAssembly/Sdk/src/targets/BlazorWasm.web.config index 7f9995d792..c16575f751 100644 --- a/src/Components/WebAssembly/Sdk/src/targets/BlazorWasm.web.config +++ b/src/Components/WebAssembly/Sdk/src/targets/BlazorWasm.web.config @@ -2,6 +2,7 @@ + diff --git a/src/Components/WebAssembly/Sdk/src/targets/Microsoft.NET.Sdk.BlazorWebAssembly.Current.targets b/src/Components/WebAssembly/Sdk/src/targets/Microsoft.NET.Sdk.BlazorWebAssembly.Current.targets index a0c4faa979..ff92c11941 100644 --- a/src/Components/WebAssembly/Sdk/src/targets/Microsoft.NET.Sdk.BlazorWebAssembly.Current.targets +++ b/src/Components/WebAssembly/Sdk/src/targets/Microsoft.NET.Sdk.BlazorWebAssembly.Current.targets @@ -123,6 +123,8 @@ Copyright (c) .NET Foundation. All rights reserved. + + + + + - + https://github.com/dotnet/runtime - 3cab6dd440a5f3763bfbd2d582b36fe51095686a + e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 - + https://github.com/dotnet/runtime - 3cab6dd440a5f3763bfbd2d582b36fe51095686a + e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 - + https://github.com/dotnet/runtime - 3cab6dd440a5f3763bfbd2d582b36fe51095686a + e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 516e8e1ae5..7793b47245 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -64,70 +64,70 @@ 3.8.0-1.20361.1 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 - 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20372.7 + 5.0.0-preview.8.20378.11 3.2.0 From 5dc9931a54e7992223625018ed10a0143ca78442 Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Thu, 30 Jul 2020 09:55:58 +0000 Subject: [PATCH 006/187] [internal/release/5.0-preview8] Update dependencies from dnceng/internal/dotnet-runtime --- eng/Version.Details.xml | 252 ++++++++++++++++++++-------------------- eng/Versions.props | 126 ++++++++++---------- 2 files changed, 189 insertions(+), 189 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 7c314532bf..9ba634824d 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -41,264 +41,264 @@ https://github.com/dotnet/efcore 58abc390e0e3eb849b5773da3f5ed2982ade521d - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 - + https://github.com/dotnet/runtime - e26443ae490a9c292d22f0dc0dfc1fb7c9faaad2 + cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 3116176cac..a5eb74218a 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -64,70 +64,70 @@ 3.8.0-1.20361.1 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 - 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20378.11 + 5.0.0-preview.8.20379.8 3.2.0 From fed19537a0440752b6d8595d8e3598da1fc133e6 Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Fri, 31 Jul 2020 20:12:58 +0000 Subject: [PATCH 007/187] [internal/release/5.0-preview8] Update dependencies from dnceng/internal/dotnet-efcore - Updates: - Microsoft.EntityFrameworkCore.Tools: from 5.0.0-preview.8.20360.8 to 5.0.0-preview.8.20379.2 - Microsoft.EntityFrameworkCore.SqlServer: from 5.0.0-preview.8.20360.8 to 5.0.0-preview.8.20379.2 - dotnet-ef: from 5.0.0-preview.8.20360.8 to 5.0.0-preview.8.20379.2 - Microsoft.EntityFrameworkCore: from 5.0.0-preview.8.20360.8 to 5.0.0-preview.8.20379.2 - Microsoft.EntityFrameworkCore.Relational: from 5.0.0-preview.8.20360.8 to 5.0.0-preview.8.20379.2 - Microsoft.EntityFrameworkCore.Sqlite: from 5.0.0-preview.8.20360.8 to 5.0.0-preview.8.20379.2 - Microsoft.EntityFrameworkCore.InMemory: from 5.0.0-preview.8.20360.8 to 5.0.0-preview.8.20379.2 --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 14 +++++++------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 9ba634824d..b13a6fa0e2 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -13,33 +13,33 @@ https://github.com/dotnet/blazor cc449601d638ffaab58ae9487f0fd010bb178a12 - + https://github.com/dotnet/efcore - 58abc390e0e3eb849b5773da3f5ed2982ade521d + f3f7551cbff7effc8f605e35d18f5974ca945e5b - + https://github.com/dotnet/efcore - 58abc390e0e3eb849b5773da3f5ed2982ade521d + f3f7551cbff7effc8f605e35d18f5974ca945e5b - + https://github.com/dotnet/efcore - 58abc390e0e3eb849b5773da3f5ed2982ade521d + f3f7551cbff7effc8f605e35d18f5974ca945e5b - + https://github.com/dotnet/efcore - 58abc390e0e3eb849b5773da3f5ed2982ade521d + f3f7551cbff7effc8f605e35d18f5974ca945e5b - + https://github.com/dotnet/efcore - 58abc390e0e3eb849b5773da3f5ed2982ade521d + f3f7551cbff7effc8f605e35d18f5974ca945e5b - + https://github.com/dotnet/efcore - 58abc390e0e3eb849b5773da3f5ed2982ade521d + f3f7551cbff7effc8f605e35d18f5974ca945e5b - + https://github.com/dotnet/efcore - 58abc390e0e3eb849b5773da3f5ed2982ade521d + f3f7551cbff7effc8f605e35d18f5974ca945e5b https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index a5eb74218a..d3d7f0373e 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -131,13 +131,13 @@ 3.2.0 - 5.0.0-preview.8.20360.8 - 5.0.0-preview.8.20360.8 - 5.0.0-preview.8.20360.8 - 5.0.0-preview.8.20360.8 - 5.0.0-preview.8.20360.8 - 5.0.0-preview.8.20360.8 - 5.0.0-preview.8.20360.8 + 5.0.0-preview.8.20379.2 + 5.0.0-preview.8.20379.2 + 5.0.0-preview.8.20379.2 + 5.0.0-preview.8.20379.2 + 5.0.0-preview.8.20379.2 + 5.0.0-preview.8.20379.2 + 5.0.0-preview.8.20379.2 - + https://github.com/dotnet/runtime - cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 + 4f703e60c34640ba337323c58d7de89bf584c922 - + https://github.com/dotnet/runtime - cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 + 4f703e60c34640ba337323c58d7de89bf584c922 - + https://github.com/dotnet/runtime - cfa1c371b2eb7e0a0a5947dc8e05c41f1bc2aba6 + 4f703e60c34640ba337323c58d7de89bf584c922 https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index d3d7f0373e..8ba38300d0 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -64,70 +64,70 @@ 3.8.0-1.20361.1 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 - 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20379.8 + 5.0.0-preview.8.20380.14 3.2.0 From 3516b8d580794a4bdc9ba5726638bdc301364ece Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Mon, 3 Aug 2020 05:08:03 +0000 Subject: [PATCH 009/187] [internal/release/5.0-preview8] Update dependencies from dnceng/internal/dotnet-runtime --- eng/Version.Details.xml | 252 ++++++++++++++++++++-------------------- eng/Versions.props | 126 ++++++++++---------- 2 files changed, 189 insertions(+), 189 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 8742e19f5f..dc43fbede1 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -41,264 +41,264 @@ https://github.com/dotnet/efcore f3f7551cbff7effc8f605e35d18f5974ca945e5b - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 - + https://github.com/dotnet/runtime - 4f703e60c34640ba337323c58d7de89bf584c922 + 7b82cf110596ca9c41fd9a1c910df59595814ec4 https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 8ba38300d0..24d26ec9ad 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -64,70 +64,70 @@ 3.8.0-1.20361.1 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 - 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20380.14 + 5.0.0-preview.8.20381.10 3.2.0 From a1df872449f07a903a1356e0aad9b7a0fa720134 Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Sat, 8 Aug 2020 01:18:13 +0000 Subject: [PATCH 010/187] [internal/release/5.0-preview8] Update dependencies from dnceng/internal/dotnet-runtime --- eng/Version.Details.xml | 252 ++++++++++++++++++++-------------------- eng/Versions.props | 126 ++++++++++---------- 2 files changed, 189 insertions(+), 189 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index dc43fbede1..4021cb046f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -41,264 +41,264 @@ https://github.com/dotnet/efcore f3f7551cbff7effc8f605e35d18f5974ca945e5b - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 - + https://github.com/dotnet/runtime - 7b82cf110596ca9c41fd9a1c910df59595814ec4 + bf456654f9a4f9a86c15d9d50095ff29cde5f0a4 https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 24d26ec9ad..f93d8bdf13 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -64,70 +64,70 @@ 3.8.0-1.20361.1 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 - 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 + 5.0.0-preview.8.20407.11 - 5.0.0-preview.8.20381.10 + 5.0.0-preview.8.20407.11 3.2.0 From 929a89b7a2bd8ebd4252251fbef5333a315ad385 Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Mon, 10 Aug 2020 09:29:28 +0000 Subject: [PATCH 011/187] [internal/release/5.0-preview8] Update dependencies from dnceng/internal/dotnet-efcore - Updates: - Microsoft.EntityFrameworkCore.Tools: from 5.0.0-preview.8.20379.2 to 5.0.0-preview.8.20407.2 - Microsoft.EntityFrameworkCore.SqlServer: from 5.0.0-preview.8.20379.2 to 5.0.0-preview.8.20407.2 - dotnet-ef: from 5.0.0-preview.8.20379.2 to 5.0.0-preview.8.20407.2 - Microsoft.EntityFrameworkCore: from 5.0.0-preview.8.20379.2 to 5.0.0-preview.8.20407.2 - Microsoft.EntityFrameworkCore.Relational: from 5.0.0-preview.8.20379.2 to 5.0.0-preview.8.20407.2 - Microsoft.EntityFrameworkCore.Sqlite: from 5.0.0-preview.8.20379.2 to 5.0.0-preview.8.20407.2 - Microsoft.EntityFrameworkCore.InMemory: from 5.0.0-preview.8.20379.2 to 5.0.0-preview.8.20407.2 --- eng/Version.Details.xml | 42 ++++++++++++++++++++--------------------- eng/Versions.props | 14 +++++++------- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 4021cb046f..6688f28606 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -13,33 +13,33 @@ https://github.com/dotnet/blazor cc449601d638ffaab58ae9487f0fd010bb178a12 - - https://github.com/dotnet/efcore - f3f7551cbff7effc8f605e35d18f5974ca945e5b + + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore + 1a0927da48e4d2f164fd0076f17d3e89c72dac9e - - https://github.com/dotnet/efcore - f3f7551cbff7effc8f605e35d18f5974ca945e5b + + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore + 1a0927da48e4d2f164fd0076f17d3e89c72dac9e - - https://github.com/dotnet/efcore - f3f7551cbff7effc8f605e35d18f5974ca945e5b + + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore + 1a0927da48e4d2f164fd0076f17d3e89c72dac9e - - https://github.com/dotnet/efcore - f3f7551cbff7effc8f605e35d18f5974ca945e5b + + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore + 1a0927da48e4d2f164fd0076f17d3e89c72dac9e - - https://github.com/dotnet/efcore - f3f7551cbff7effc8f605e35d18f5974ca945e5b + + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore + 1a0927da48e4d2f164fd0076f17d3e89c72dac9e - - https://github.com/dotnet/efcore - f3f7551cbff7effc8f605e35d18f5974ca945e5b + + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore + 1a0927da48e4d2f164fd0076f17d3e89c72dac9e - - https://github.com/dotnet/efcore - f3f7551cbff7effc8f605e35d18f5974ca945e5b + + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore + 1a0927da48e4d2f164fd0076f17d3e89c72dac9e https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index f93d8bdf13..5053d81e36 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -131,13 +131,13 @@ 3.2.0 - 5.0.0-preview.8.20379.2 - 5.0.0-preview.8.20379.2 - 5.0.0-preview.8.20379.2 - 5.0.0-preview.8.20379.2 - 5.0.0-preview.8.20379.2 - 5.0.0-preview.8.20379.2 - 5.0.0-preview.8.20379.2 + 5.0.0-preview.8.20407.2 + 5.0.0-preview.8.20407.2 + 5.0.0-preview.8.20407.2 + 5.0.0-preview.8.20407.2 + 5.0.0-preview.8.20407.2 + 5.0.0-preview.8.20407.2 + 5.0.0-preview.8.20407.2 3.2.0 - 5.0.0-preview.8.20407.2 - 5.0.0-preview.8.20407.2 - 5.0.0-preview.8.20407.2 - 5.0.0-preview.8.20407.2 - 5.0.0-preview.8.20407.2 - 5.0.0-preview.8.20407.2 - 5.0.0-preview.8.20407.2 + 5.0.0-preview.8.20407.4 + 5.0.0-preview.8.20407.4 + 5.0.0-preview.8.20407.4 + 5.0.0-preview.8.20407.4 + 5.0.0-preview.8.20407.4 + 5.0.0-preview.8.20407.4 + 5.0.0-preview.8.20407.4 - false From 72a7635b62e627d1ad677d5643eb3969cfb0477c Mon Sep 17 00:00:00 2001 From: Will Godbe Date: Fri, 28 Aug 2020 09:13:19 -0700 Subject: [PATCH 016/187] Fix InteropClient testasset --- src/Grpc/test/testassets/InteropClient/InteropClient.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Grpc/test/testassets/InteropClient/InteropClient.cs b/src/Grpc/test/testassets/InteropClient/InteropClient.cs index 8090bf3ae6..6590d8ae69 100644 --- a/src/Grpc/test/testassets/InteropClient/InteropClient.cs +++ b/src/Grpc/test/testassets/InteropClient/InteropClient.cs @@ -95,8 +95,8 @@ namespace InteropTestsClient var services = new ServiceCollection(); services.AddLogging(configure => { - configure.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace); - configure.AddSimpleConsole(loggerOptions => + configure.SetMinimumLevel(LogLevel.Trace); + configure.AddConsole(loggerOptions => { #pragma warning disable CS0618 // Type or member is obsolete loggerOptions.IncludeScopes = true; From f0a5233b2c615105f95d9009cacfa2a21d100ca4 Mon Sep 17 00:00:00 2001 From: William Godbe Date: Tue, 1 Sep 2020 10:57:10 -0700 Subject: [PATCH 017/187] Update branding to rc2 (#25502) --- eng/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Versions.props b/eng/Versions.props index 0109457387..ba04ec98e1 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -9,7 +9,7 @@ 5 0 0 - 1 + 2 From ee712265d529a41e50b5078a546be9cac0a300d3 Mon Sep 17 00:00:00 2001 From: Justin Kotalik Date: Tue, 1 Sep 2020 15:30:28 -0700 Subject: [PATCH 018/187] Make startup timeout recycle worker process (#25321) --- .../CommonLib/ConfigurationSection.h | 1 + .../InProcessOptions.cpp | 1 + .../InProcessOptions.h | 7 +++ .../inprocessapplication.cpp | 9 +++- .../Inprocess/StartupTests.cs | 43 +++++++++++++++++-- 5 files changed, 56 insertions(+), 5 deletions(-) diff --git a/src/Servers/IIS/AspNetCoreModuleV2/CommonLib/ConfigurationSection.h b/src/Servers/IIS/AspNetCoreModuleV2/CommonLib/ConfigurationSection.h index 8c9cece3e3..ef55c4ec53 100644 --- a/src/Servers/IIS/AspNetCoreModuleV2/CommonLib/ConfigurationSection.h +++ b/src/Servers/IIS/AspNetCoreModuleV2/CommonLib/ConfigurationSection.h @@ -30,6 +30,7 @@ #define CS_ENABLED L"enabled" #define CS_ASPNETCORE_HANDLER_CALL_STARTUP_HOOK L"callStartupHook" #define CS_ASPNETCORE_HANDLER_STACK_SIZE L"stackSize" +#define CS_ASPNETCORE_SUPPRESS_RECYCLE_ON_STARTUP_TIMEOUT L"suppressRecycleOnStartupTimeout" #define CS_ASPNETCORE_DETAILEDERRORS L"ASPNETCORE_DETAILEDERRORS" #define CS_ASPNETCORE_ENVIRONMENT L"ASPNETCORE_ENVIRONMENT" #define CS_DOTNET_ENVIRONMENT L"DOTNET_ENVIRONMENT" diff --git a/src/Servers/IIS/AspNetCoreModuleV2/InProcessRequestHandler/InProcessOptions.cpp b/src/Servers/IIS/AspNetCoreModuleV2/InProcessRequestHandler/InProcessOptions.cpp index c2ff5e0a7d..157f0dda22 100644 --- a/src/Servers/IIS/AspNetCoreModuleV2/InProcessRequestHandler/InProcessOptions.cpp +++ b/src/Servers/IIS/AspNetCoreModuleV2/InProcessRequestHandler/InProcessOptions.cpp @@ -66,6 +66,7 @@ InProcessOptions::InProcessOptions(const ConfigurationSource &configurationSourc m_fSetCurrentDirectory = equals_ignore_case(find_element(handlerSettings, CS_ASPNETCORE_HANDLER_SET_CURRENT_DIRECTORY).value_or(L"true"), L"true"); m_fCallStartupHook = equals_ignore_case(find_element(handlerSettings, CS_ASPNETCORE_HANDLER_CALL_STARTUP_HOOK).value_or(L"true"), L"true"); m_strStackSize = find_element(handlerSettings, CS_ASPNETCORE_HANDLER_STACK_SIZE).value_or(L"1048576"); + m_fSuppressRecycleOnStartupTimeout = equals_ignore_case(find_element(handlerSettings, CS_ASPNETCORE_SUPPRESS_RECYCLE_ON_STARTUP_TIMEOUT).value_or(L"false"), L"true"); m_dwStartupTimeLimitInMS = aspNetCoreSection->GetRequiredLong(CS_ASPNETCORE_PROCESS_STARTUP_TIME_LIMIT) * 1000; m_dwShutdownTimeLimitInMS = aspNetCoreSection->GetRequiredLong(CS_ASPNETCORE_PROCESS_SHUTDOWN_TIME_LIMIT) * 1000; diff --git a/src/Servers/IIS/AspNetCoreModuleV2/InProcessRequestHandler/InProcessOptions.h b/src/Servers/IIS/AspNetCoreModuleV2/InProcessRequestHandler/InProcessOptions.h index 61a79664b2..fa0e19e849 100644 --- a/src/Servers/IIS/AspNetCoreModuleV2/InProcessRequestHandler/InProcessOptions.h +++ b/src/Servers/IIS/AspNetCoreModuleV2/InProcessRequestHandler/InProcessOptions.h @@ -118,6 +118,12 @@ public: return m_strStackSize; } + bool + QuerySuppressRecycleOnStartupTimeout() const + { + return m_fSuppressRecycleOnStartupTimeout; + } + InProcessOptions(const ConfigurationSource &configurationSource, IHttpSite* pSite); static @@ -139,6 +145,7 @@ private: bool m_fWindowsAuthEnabled; bool m_fBasicAuthEnabled; bool m_fAnonymousAuthEnabled; + bool m_fSuppressRecycleOnStartupTimeout; DWORD m_dwStartupTimeLimitInMS; DWORD m_dwShutdownTimeLimitInMS; DWORD m_dwMaxRequestBodySize; diff --git a/src/Servers/IIS/AspNetCoreModuleV2/InProcessRequestHandler/inprocessapplication.cpp b/src/Servers/IIS/AspNetCoreModuleV2/InProcessRequestHandler/inprocessapplication.cpp index 4f86cde3b8..1dd8a42c4b 100644 --- a/src/Servers/IIS/AspNetCoreModuleV2/InProcessRequestHandler/inprocessapplication.cpp +++ b/src/Servers/IIS/AspNetCoreModuleV2/InProcessRequestHandler/inprocessapplication.cpp @@ -169,7 +169,14 @@ IN_PROCESS_APPLICATION::LoadManagedApplication(ErrorContext& errorContext) errorContext.errorReason = format("ASP.NET Core app failed to start after %d milliseconds", m_pConfig->QueryStartupTimeLimitInMS()); m_waitForShutdown = false; - StopClr(); + if (m_pConfig->QuerySuppressRecycleOnStartupTimeout()) + { + StopClr(); + } + else + { + Stop(/* fServerInitiated */false); + } throw InvalidOperationException(format(L"Managed server didn't initialize after %u ms.", m_pConfig->QueryStartupTimeLimitInMS())); } diff --git a/src/Servers/IIS/IIS/test/Common.FunctionalTests/Inprocess/StartupTests.cs b/src/Servers/IIS/IIS/test/Common.FunctionalTests/Inprocess/StartupTests.cs index 220489dba6..01a7243f10 100644 --- a/src/Servers/IIS/IIS/test/Common.FunctionalTests/Inprocess/StartupTests.cs +++ b/src/Servers/IIS/IIS/test/Common.FunctionalTests/Inprocess/StartupTests.cs @@ -453,9 +453,10 @@ namespace Microsoft.AspNetCore.Server.IIS.FunctionalTests.InProcess } [ConditionalFact] + [RequiresNewHandler] public async Task StartupTimeoutIsApplied() { - // From what I can tell, this failure is due to ungraceful shutdown. + // From what we can tell, this failure is due to ungraceful shutdown. // The error could be the same as https://github.com/dotnet/core-setup/issues/4646 // But can't be certain without another repro. using (AppVerifier.Disable(DeployerSelector.ServerType, 0x300)) @@ -470,11 +471,45 @@ namespace Microsoft.AspNetCore.Server.IIS.FunctionalTests.InProcess var response = await deploymentResult.HttpClient.GetAsync("/"); Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode); + // Startup timeout now recycles process. + deploymentResult.AssertWorkerProcessStop(); + + EventLogHelpers.VerifyEventLogEvent(deploymentResult, + EventLogHelpers.InProcessFailedToStart(deploymentResult, "Managed server didn't initialize after 1000 ms."), + Logger); + + if (DeployerSelector.HasNewHandler) + { + var responseContent = await response.Content.ReadAsStringAsync(); + Assert.Contains("500.37", responseContent); + } + } + } + + [ConditionalFact] + [MaximumOSVersion(OperatingSystems.Windows, WindowsVersions.Win10_20H1, SkipReason = "Shutdown hangs https://github.com/dotnet/aspnetcore/issues/25107")] + public async Task StartupTimeoutIsApplied_DisableRecycleOnStartupTimeout() + { + // From what we can tell, this failure is due to ungraceful shutdown. + // The error could be the same as https://github.com/dotnet/core-setup/issues/4646 + // But can't be certain without another repro. + using (AppVerifier.Disable(DeployerSelector.ServerType, 0x300)) + { + var deploymentParameters = Fixture.GetBaseDeploymentParameters(Fixture.InProcessTestSite); + deploymentParameters.TransformArguments((a, _) => $"{a} Hang"); + deploymentParameters.WebConfigActionList.Add( + WebConfigHelpers.AddOrModifyAspNetCoreSection("startupTimeLimit", "1")); + deploymentParameters.HandlerSettings["suppressRecycleOnStartupTimeout"] = "true"; + var deploymentResult = await DeployAsync(deploymentParameters); + + var response = await deploymentResult.HttpClient.GetAsync("/"); + Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode); + StopServer(gracefulShutdown: false); - EventLogHelpers.VerifyEventLogEvents(deploymentResult, - EventLogHelpers.InProcessFailedToStart(deploymentResult, "Managed server didn't initialize after 1000 ms.") - ); + EventLogHelpers.VerifyEventLogEvent(deploymentResult, + EventLogHelpers.InProcessFailedToStart(deploymentResult, "Managed server didn't initialize after 1000 ms."), + Logger); if (DeployerSelector.HasNewHandler) { From 08309b1e0245eee30b4dea7e2ba0d96df8310e51 Mon Sep 17 00:00:00 2001 From: Will Godbe Date: Tue, 1 Sep 2020 15:49:38 -0700 Subject: [PATCH 019/187] Fix tools.ps1 --- eng/common/tools.ps1 | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index 6f8bc41116..27e97a3f8a 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -222,8 +222,8 @@ function GetDotNetInstallScript([string] $dotnetRoot) { return $installScript } -function InstallDotNetSdk([string] $dotnetRoot, [string] $version, [string] $architecture = '') { - InstallDotNet $dotnetRoot $version $architecture +function InstallDotNetSdk([string] $dotnetRoot, [string] $version, [string] $architecture = '', [switch] $noPath) { + InstallDotNet $dotnetRoot $version $architecture '' $false $runtimeSourceFeed $runtimeSourceFeedKey -noPath:$noPath } function InstallDotNet([string] $dotnetRoot, @@ -232,7 +232,8 @@ function InstallDotNet([string] $dotnetRoot, [string] $runtime = '', [bool] $skipNonVersionedFiles = $false, [string] $runtimeSourceFeed = '', - [string] $runtimeSourceFeedKey = '') { + [string] $runtimeSourceFeedKey = '', + [switch] $noPath) { $installScript = GetDotNetInstallScript $dotnetRoot $installParameters = @{ @@ -243,6 +244,7 @@ function InstallDotNet([string] $dotnetRoot, if ($architecture) { $installParameters.Architecture = $architecture } if ($runtime) { $installParameters.Runtime = $runtime } if ($skipNonVersionedFiles) { $installParameters.SkipNonVersionedFiles = $skipNonVersionedFiles } + if ($noPath) { $installParameters.NoPath = $True } try { & $installScript @installParameters From 97ed9197a107bc0c3faa85d8144ee2466e3fc231 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 2 Sep 2020 05:20:38 +0000 Subject: [PATCH 020/187] [release/5.0-rc2] Update dependencies from dotnet/efcore (#25514) [release/5.0-rc2] Update dependencies from dotnet/efcore - Updates: - Microsoft.EntityFrameworkCore.Tools: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.12 - Microsoft.EntityFrameworkCore.SqlServer: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.12 - dotnet-ef: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.12 - Microsoft.EntityFrameworkCore: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.12 - Microsoft.EntityFrameworkCore.Design: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.12 - Microsoft.EntityFrameworkCore.Relational: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.12 - Microsoft.EntityFrameworkCore.Sqlite: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.12 - Microsoft.EntityFrameworkCore.InMemory: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.12 - Merge branch 'release/5.0-rc2' into darc-release/5.0-rc2-3ebdc2ef-d6ce-4e79-aa79-c89018409111 --- eng/Version.Details.xml | 32 ++++++++++++++++---------------- eng/Versions.props | 16 ++++++++-------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 208ed4bf12..03947a060d 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -13,37 +13,37 @@ https://github.com/dotnet/blazor cc449601d638ffaab58ae9487f0fd010bb178a12 - + https://github.com/dotnet/efcore - a6653be361ab12369205a6ed51454aaee50a38c6 + 53abd75dbdec13d0f90a5dc294d47a3a388d920c - + https://github.com/dotnet/efcore - a6653be361ab12369205a6ed51454aaee50a38c6 + 53abd75dbdec13d0f90a5dc294d47a3a388d920c - + https://github.com/dotnet/efcore - a6653be361ab12369205a6ed51454aaee50a38c6 + 53abd75dbdec13d0f90a5dc294d47a3a388d920c - + https://github.com/dotnet/efcore - a6653be361ab12369205a6ed51454aaee50a38c6 + 53abd75dbdec13d0f90a5dc294d47a3a388d920c - + https://github.com/dotnet/efcore - a6653be361ab12369205a6ed51454aaee50a38c6 + 53abd75dbdec13d0f90a5dc294d47a3a388d920c - + https://github.com/dotnet/efcore - a6653be361ab12369205a6ed51454aaee50a38c6 + 53abd75dbdec13d0f90a5dc294d47a3a388d920c - + https://github.com/dotnet/efcore - a6653be361ab12369205a6ed51454aaee50a38c6 + 53abd75dbdec13d0f90a5dc294d47a3a388d920c - + https://github.com/dotnet/efcore - a6653be361ab12369205a6ed51454aaee50a38c6 + 53abd75dbdec13d0f90a5dc294d47a3a388d920c https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index a49be0e1e0..3442dd7d3c 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -135,14 +135,14 @@ 3.2.0 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 + 5.0.0-rc.2.20451.12 + 5.0.0-rc.2.20451.12 + 5.0.0-rc.2.20451.12 + 5.0.0-rc.2.20451.12 + 5.0.0-rc.2.20451.12 + 5.0.0-rc.2.20451.12 + 5.0.0-rc.2.20451.12 + 5.0.0-rc.2.20451.12 5.0.0-beta.20431.1 From 474f9472617f0325c492bd6e307208eab92a6293 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 2 Sep 2020 10:51:15 +0000 Subject: [PATCH 021/187] [release/5.0-rc2] Update dependencies from dotnet/runtime dotnet/efcore (#25528) [release/5.0-rc2] Update dependencies from dotnet/runtime dotnet/efcore - Updates: - System.ComponentModel.Annotations: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - System.Diagnostics.DiagnosticSource: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - System.Diagnostics.EventLog: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - System.DirectoryServices.Protocols: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.Logging.Abstractions: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.Logging.Configuration: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.Logging.Console: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.Logging.Debug: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.Logging.EventLog: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.Logging.EventSource: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.Logging.TraceSource: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.Options: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.Options.ConfigurationExtensions: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.Options.DataAnnotations: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.Primitives: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.Logging: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.Internal.Transport: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.Http: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.Hosting.Abstractions: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.Caching.Abstractions: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.Caching.Memory: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.Configuration: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.Configuration.Abstractions: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.Configuration.Binder: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.Configuration.CommandLine: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.Configuration.EnvironmentVariables: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.Configuration.FileExtensions: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.Configuration.Ini: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.Configuration.UserSecrets: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.Configuration.Xml: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.DependencyInjection: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.DependencyInjection.Abstractions: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.DependencyModel: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.FileProviders.Abstractions: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.FileProviders.Composite: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.FileProviders.Physical: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.FileSystemGlobbing: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.HostFactoryResolver.Sources: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.Hosting: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Extensions.Configuration.Json: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.NETCore.App.Runtime.win-x64: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.NETCore.BrowserDebugHost.Transport: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.NETCore.Platforms: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Win32.Registry: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.Win32.SystemEvents: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.NETCore.App.Internal: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Microsoft.NETCore.App.Ref: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - System.Drawing.Common: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - System.Text.Json: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - System.Threading.Channels: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - System.Windows.Extensions: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - System.Text.Encodings.Web: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - System.ServiceProcess.ServiceController: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - System.IO.Pipelines: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - System.Net.Http.Json: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - System.Net.Http.WinHttpHandler: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - System.Net.WebSockets.WebSocketProtocol: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - System.Reflection.Metadata: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - System.Resources.Extensions: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - System.Runtime.CompilerServices.Unsafe: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - System.Security.AccessControl: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - System.Security.Cryptography.Cng: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - System.Security.Cryptography.Pkcs: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - System.Security.Cryptography.Xml: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - System.Security.Permissions: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - System.Security.Principal.Windows: from 5.0.0-rc.1.20451.2 to 5.0.0-rc.2.20451.27 - Updates: - Microsoft.EntityFrameworkCore.Tools: from 5.0.0-rc.2.20451.12 to 5.0.0-rc.2.20452.1 - Microsoft.EntityFrameworkCore.SqlServer: from 5.0.0-rc.2.20451.12 to 5.0.0-rc.2.20452.1 - dotnet-ef: from 5.0.0-rc.2.20451.12 to 5.0.0-rc.2.20452.1 - Microsoft.EntityFrameworkCore: from 5.0.0-rc.2.20451.12 to 5.0.0-rc.2.20452.1 - Microsoft.EntityFrameworkCore.Design: from 5.0.0-rc.2.20451.12 to 5.0.0-rc.2.20452.1 - Microsoft.EntityFrameworkCore.Relational: from 5.0.0-rc.2.20451.12 to 5.0.0-rc.2.20452.1 - Microsoft.EntityFrameworkCore.Sqlite: from 5.0.0-rc.2.20451.12 to 5.0.0-rc.2.20452.1 - Microsoft.EntityFrameworkCore.InMemory: from 5.0.0-rc.2.20451.12 to 5.0.0-rc.2.20452.1 --- eng/Version.Details.xml | 296 ++++++++++++++++++++-------------------- eng/Versions.props | 148 ++++++++++---------- 2 files changed, 222 insertions(+), 222 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 03947a060d..bddecc1cb8 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -13,309 +13,309 @@ https://github.com/dotnet/blazor cc449601d638ffaab58ae9487f0fd010bb178a12 - + https://github.com/dotnet/efcore - 53abd75dbdec13d0f90a5dc294d47a3a388d920c + dcb27d309d099d7cb15dc19a5b9188feeb8795c8 - + https://github.com/dotnet/efcore - 53abd75dbdec13d0f90a5dc294d47a3a388d920c + dcb27d309d099d7cb15dc19a5b9188feeb8795c8 - + https://github.com/dotnet/efcore - 53abd75dbdec13d0f90a5dc294d47a3a388d920c + dcb27d309d099d7cb15dc19a5b9188feeb8795c8 - + https://github.com/dotnet/efcore - 53abd75dbdec13d0f90a5dc294d47a3a388d920c + dcb27d309d099d7cb15dc19a5b9188feeb8795c8 - + https://github.com/dotnet/efcore - 53abd75dbdec13d0f90a5dc294d47a3a388d920c + dcb27d309d099d7cb15dc19a5b9188feeb8795c8 - + https://github.com/dotnet/efcore - 53abd75dbdec13d0f90a5dc294d47a3a388d920c + dcb27d309d099d7cb15dc19a5b9188feeb8795c8 - + https://github.com/dotnet/efcore - 53abd75dbdec13d0f90a5dc294d47a3a388d920c + dcb27d309d099d7cb15dc19a5b9188feeb8795c8 - + https://github.com/dotnet/efcore - 53abd75dbdec13d0f90a5dc294d47a3a388d920c + dcb27d309d099d7cb15dc19a5b9188feeb8795c8 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 - + https://github.com/dotnet/runtime - 54e597d3a5c2b6c0e9dc556a79bba08fb0c67eb9 + 83bbcec3eb6a405f2023d452ae61494ce7e6d787 https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 3442dd7d3c..6d51ad7700 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -64,85 +64,85 @@ 3.8.0-2.20407.3 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 - 5.0.0-rc.1.20451.2 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20451.27 - 5.0.0-rc.1.20451.2 + 5.0.0-rc.2.20451.27 3.2.0 - 5.0.0-rc.2.20451.12 - 5.0.0-rc.2.20451.12 - 5.0.0-rc.2.20451.12 - 5.0.0-rc.2.20451.12 - 5.0.0-rc.2.20451.12 - 5.0.0-rc.2.20451.12 - 5.0.0-rc.2.20451.12 - 5.0.0-rc.2.20451.12 + 5.0.0-rc.2.20452.1 + 5.0.0-rc.2.20452.1 + 5.0.0-rc.2.20452.1 + 5.0.0-rc.2.20452.1 + 5.0.0-rc.2.20452.1 + 5.0.0-rc.2.20452.1 + 5.0.0-rc.2.20452.1 + 5.0.0-rc.2.20452.1 5.0.0-beta.20431.1 From ab3799f65115dcee3bbd6cdce785813b40f7e994 Mon Sep 17 00:00:00 2001 From: Ben Adams Date: Wed, 2 Sep 2020 17:19:13 +0100 Subject: [PATCH 022/187] Make CertificateConfig linker friendly (#25515) --- .../Core/src/Internal/ConfigurationReader.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Servers/Kestrel/Core/src/Internal/ConfigurationReader.cs b/src/Servers/Kestrel/Core/src/Internal/ConfigurationReader.cs index 06ca82a8a9..d749de79f8 100644 --- a/src/Servers/Kestrel/Core/src/Internal/ConfigurationReader.cs +++ b/src/Servers/Kestrel/Core/src/Internal/ConfigurationReader.cs @@ -353,7 +353,19 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal public CertificateConfig(IConfigurationSection configSection) { ConfigSection = configSection; - ConfigSection.Bind(this); + + // Bind explictly to preserve linkability + Path = configSection[nameof(Path)]; + KeyPath = configSection[nameof(KeyPath)]; + Password = configSection[nameof(Password)]; + Subject = configSection[nameof(Subject)]; + Store = configSection[nameof(Store)]; + Location = configSection[nameof(Location)]; + + if (bool.TryParse(configSection[nameof(AllowInvalid)], out var value)) + { + AllowInvalid = value; + } } // For testing From 3254f71b95e9902402b7731a5396740e38fbdb7d Mon Sep 17 00:00:00 2001 From: Ben Adams Date: Wed, 2 Sep 2020 17:20:14 +0100 Subject: [PATCH 023/187] Make IdentityServer.Configuration.KeyDefinition linker friendly (#25524) --- .../ConfigureSigningCredentials.cs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/Identity/ApiAuthorization.IdentityServer/src/Configuration/ConfigureSigningCredentials.cs b/src/Identity/ApiAuthorization.IdentityServer/src/Configuration/ConfigureSigningCredentials.cs index 69b5115877..57248ed284 100644 --- a/src/Identity/ApiAuthorization.IdentityServer/src/Configuration/ConfigureSigningCredentials.cs +++ b/src/Identity/ApiAuthorization.IdentityServer/src/Configuration/ConfigureSigningCredentials.cs @@ -52,8 +52,21 @@ namespace Microsoft.AspNetCore.ApiAuthorization.IdentityServer return null; } - var key = new KeyDefinition(); - _configuration.Bind(key); + var key = new KeyDefinition() + { + Type = _configuration[nameof(KeyDefinition.Type)], + FilePath = _configuration[nameof(KeyDefinition.FilePath)], + Password = _configuration[nameof(KeyDefinition.Password)], + Name = _configuration[nameof(KeyDefinition.Name)], + StoreLocation = _configuration[nameof(KeyDefinition.StoreLocation)], + StoreName = _configuration[nameof(KeyDefinition.StoreName)], + StorageFlags = _configuration[nameof(KeyDefinition.StorageFlags)] + }; + + if (bool.TryParse(_configuration[nameof(KeyDefinition.Persisted)], out var value)) + { + key.Persisted = value; + } switch (key.Type) { From d1ab8efe70893475f049655afeacda5c86f0a2fb Mon Sep 17 00:00:00 2001 From: Will Godbe Date: Wed, 2 Sep 2020 09:32:10 -0700 Subject: [PATCH 024/187] Use -nopath --- eng/helix/content/runtests.cmd | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/helix/content/runtests.cmd b/eng/helix/content/runtests.cmd index dc36eedf72..4dca87d067 100644 --- a/eng/helix/content/runtests.cmd +++ b/eng/helix/content/runtests.cmd @@ -29,11 +29,11 @@ set DOTNET_CLI_HOME=%HELIX_CORRELATION_PAYLOAD%\home set PATH=%DOTNET_ROOT%;!PATH!;%HELIX_CORRELATION_PAYLOAD%\node\bin echo Set path to: %PATH% -powershell.exe -noLogo -NoProfile -ExecutionPolicy unrestricted -command ". eng\common\tools.ps1; InstallDotNet %DOTNET_ROOT% %$sdkVersion% %$arch% '' $true" +powershell.exe -noLogo -NoProfile -ExecutionPolicy unrestricted -command ". eng\common\tools.ps1; InstallDotNet %DOTNET_ROOT% %$sdkVersion% %$arch% '' $true '' '' $true" IF [%$feedCred%] == [] ( - powershell.exe -noLogo -NoProfile -ExecutionPolicy unrestricted -command ". eng\common\tools.ps1; InstallDotNet %DOTNET_ROOT% %$runtimeVersion% %$arch% dotnet $true" + powershell.exe -noLogo -NoProfile -ExecutionPolicy unrestricted -command ". eng\common\tools.ps1; InstallDotNet %DOTNET_ROOT% %$runtimeVersion% %$arch% dotnet $true '' '' $true" ) else ( - powershell.exe -noLogo -NoProfile -ExecutionPolicy unrestricted -command ". eng\common\tools.ps1; InstallDotNet %DOTNET_ROOT% %$runtimeVersion% %$arch% dotnet $true https://dotnetclimsrc.blob.core.windows.net/dotnet %$feedCred%" + powershell.exe -noLogo -NoProfile -ExecutionPolicy unrestricted -command ". eng\common\tools.ps1; InstallDotNet %DOTNET_ROOT% %$runtimeVersion% %$arch% dotnet $true https://dotnetclimsrc.blob.core.windows.net/dotnet %$feedCred% $true" ) set exit_code=0 From 6ec1b481186365519c95cc79b24fc6f1c926e249 Mon Sep 17 00:00:00 2001 From: Stephen Halter Date: Wed, 2 Sep 2020 14:40:37 -0700 Subject: [PATCH 025/187] Quarantine UseHttpsWithAsyncCallbackDoeNotFallBackToDefaultCert (#25543) --- .../Kestrel/test/InMemory.FunctionalTests/HttpsTests.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Servers/Kestrel/test/InMemory.FunctionalTests/HttpsTests.cs b/src/Servers/Kestrel/test/InMemory.FunctionalTests/HttpsTests.cs index 3ef0c16d2a..2e2e2c48bb 100644 --- a/src/Servers/Kestrel/test/InMemory.FunctionalTests/HttpsTests.cs +++ b/src/Servers/Kestrel/test/InMemory.FunctionalTests/HttpsTests.cs @@ -61,6 +61,8 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests } [Fact] + [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/25542")] + public async Task UseHttpsWithAsyncCallbackDoeNotFallBackToDefaultCert() { var loggerProvider = new HandshakeErrorLoggerProvider(); @@ -81,8 +83,10 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests { var ex = await Assert.ThrowsAnyAsync(() => sslStream.AuthenticateAsClientAsync("127.0.0.1", clientCertificates: null, - enabledSslProtocols: SslProtocols.Tls, + enabledSslProtocols: SslProtocols.None, checkCertificateRevocation: false)); + + Logger.LogTrace(ex, "AuthenticateAsClientAsync Exception"); } } From 2a0b7dc43e71335d897ee1d8478d1e0664131dab Mon Sep 17 00:00:00 2001 From: Mackinnon Buck Date: Wed, 2 Sep 2020 15:09:26 -0700 Subject: [PATCH 026/187] JSObjectReference API review follow-up (#25476) * API review changes. * Fixed JSObjectReferenceJsonConverter * CR feedback * Update JSObjectReferenceExtensions.cs --- .../Microsoft.JSInterop.WebAssembly.csproj | 6 +- .../JSInterop/src/WebAssemblyJSRuntime.cs | 2 +- .../BasicTestApp/InteropComponent.razor | 6 +- .../InteropTest/JavaScriptInterop.cs | 8 +- .../src/IJSInProcessObjectReference.cs | 20 +++ .../src/IJSObjectReference.cs | 41 ++++++ .../JSObjectReferenceJsonConverter.cs | 18 ++- .../src/JSInProcessObjectReference.cs | 14 +- .../JSInProcessObjectReferenceExtensions.cs | 26 ++++ .../src/JSInProcessRuntime.cs | 4 +- .../src/JSObjectReference.cs | 55 +------ .../src/JSObjectReferenceExtensions.cs | 139 ++++++++++++++++++ .../Microsoft.JSInterop/src/JSRuntime.cs | 15 +- .../src/Microsoft.JSInterop.csproj | 6 +- .../JSObjectReferenceJsonConverterTest.cs | 12 +- .../JSInterop/JSCallResultTypeHelper.cs | 13 ++ 16 files changed, 286 insertions(+), 99 deletions(-) create mode 100644 src/JSInterop/Microsoft.JSInterop/src/IJSInProcessObjectReference.cs create mode 100644 src/JSInterop/Microsoft.JSInterop/src/IJSObjectReference.cs create mode 100644 src/JSInterop/Microsoft.JSInterop/src/JSInProcessObjectReferenceExtensions.cs create mode 100644 src/JSInterop/Microsoft.JSInterop/src/JSObjectReferenceExtensions.cs create mode 100644 src/Shared/JSInterop/JSCallResultTypeHelper.cs diff --git a/src/Components/WebAssembly/JSInterop/src/Microsoft.JSInterop.WebAssembly.csproj b/src/Components/WebAssembly/JSInterop/src/Microsoft.JSInterop.WebAssembly.csproj index 8b58eb02dd..2d7aabeee7 100644 --- a/src/Components/WebAssembly/JSInterop/src/Microsoft.JSInterop.WebAssembly.csproj +++ b/src/Components/WebAssembly/JSInterop/src/Microsoft.JSInterop.WebAssembly.csproj @@ -1,4 +1,4 @@ - + $(DefaultNetCoreTargetFramework) @@ -12,4 +12,8 @@ + + + + diff --git a/src/Components/WebAssembly/JSInterop/src/WebAssemblyJSRuntime.cs b/src/Components/WebAssembly/JSInterop/src/WebAssemblyJSRuntime.cs index 14e1600b9f..cbc07b36a9 100644 --- a/src/Components/WebAssembly/JSInterop/src/WebAssemblyJSRuntime.cs +++ b/src/Components/WebAssembly/JSInterop/src/WebAssemblyJSRuntime.cs @@ -78,7 +78,7 @@ namespace Microsoft.JSInterop.WebAssembly var callInfo = new JSCallInfo { FunctionIdentifier = identifier, - ResultType = ResultTypeFromGeneric() + ResultType = JSCallResultTypeHelper.FromGeneric() }; var result = InternalCalls.InvokeJS(out var exception, ref callInfo, arg0, arg1, arg2); diff --git a/src/Components/test/testassets/BasicTestApp/InteropComponent.razor b/src/Components/test/testassets/BasicTestApp/InteropComponent.razor index b24da1366b..388e745493 100644 --- a/src/Components/test/testassets/BasicTestApp/InteropComponent.razor +++ b/src/Components/test/testassets/BasicTestApp/InteropComponent.razor @@ -137,7 +137,7 @@ ReturnValues["returnArray"] = string.Join(",", ((IJSInProcessRuntime)JSRuntime).Invoke("returnArray").Select(x => x.Source).ToArray()); } - var jsObjectReference = await JSRuntime.InvokeAsync("returnJSObjectReference"); + var jsObjectReference = await JSRuntime.InvokeAsync("returnJSObjectReference"); ReturnValues["jsObjectReference.identity"] = await jsObjectReference.InvokeAsync("identity", "Invoked from JSObjectReference"); ReturnValues["jsObjectReference.nested.add"] = (await jsObjectReference.InvokeAsync("nested.add", 2, 3)).ToString(); ReturnValues["addViaJSObjectReference"] = (await JSRuntime.InvokeAsync("addViaJSObjectReference", jsObjectReference, 2, 3)).ToString(); @@ -151,7 +151,7 @@ JSObjectReferenceInvokeNonFunctionException = e; } - var module = await JSRuntime.InvokeAsync("import", "./js/testmodule.js"); + var module = await JSRuntime.InvokeAsync("import", "./js/testmodule.js"); ReturnValues["jsObjectReferenceModule"] = await module.InvokeAsync("identity", "Returned from module!"); if (shouldSupportSyncInterop) @@ -192,7 +192,7 @@ { var inProcRuntime = ((IJSInProcessRuntime)JSRuntime); - var jsInProcObjectReference = inProcRuntime.Invoke("returnJSObjectReference"); + var jsInProcObjectReference = inProcRuntime.Invoke("returnJSObjectReference"); ReturnValues["jsInProcessObjectReference.identity"] = jsInProcObjectReference.Invoke("identity", "Invoked from JSInProcessObjectReference"); } diff --git a/src/Components/test/testassets/BasicTestApp/InteropTest/JavaScriptInterop.cs b/src/Components/test/testassets/BasicTestApp/InteropTest/JavaScriptInterop.cs index 8667bdc2c6..55fc6e8fc6 100644 --- a/src/Components/test/testassets/BasicTestApp/InteropTest/JavaScriptInterop.cs +++ b/src/Components/test/testassets/BasicTestApp/InteropTest/JavaScriptInterop.cs @@ -415,20 +415,20 @@ namespace BasicTestApp.InteropTest } [JSInvokable] - public static JSObjectReference RoundTripJSObjectReference(JSObjectReference jsObjectReference) + public static IJSObjectReference RoundTripJSObjectReference(IJSObjectReference jsObjectReference) { return jsObjectReference; } [JSInvokable] - public static async Task RoundTripJSObjectReferenceAsync(JSObjectReference jSObjectReference) + public static async Task RoundTripJSObjectReferenceAsync(IJSObjectReference jSObjectReference) { await Task.Yield(); return jSObjectReference; } [JSInvokable] - public static string InvokeDisposedJSObjectReferenceException(JSInProcessObjectReference jsObjectReference) + public static string InvokeDisposedJSObjectReferenceException(IJSInProcessObjectReference jsObjectReference) { try { @@ -442,7 +442,7 @@ namespace BasicTestApp.InteropTest } [JSInvokable] - public static async Task InvokeDisposedJSObjectReferenceExceptionAsync(JSObjectReference jsObjectReference) + public static async Task InvokeDisposedJSObjectReferenceExceptionAsync(IJSObjectReference jsObjectReference) { try { diff --git a/src/JSInterop/Microsoft.JSInterop/src/IJSInProcessObjectReference.cs b/src/JSInterop/Microsoft.JSInterop/src/IJSInProcessObjectReference.cs new file mode 100644 index 0000000000..2c3cbbde69 --- /dev/null +++ b/src/JSInterop/Microsoft.JSInterop/src/IJSInProcessObjectReference.cs @@ -0,0 +1,20 @@ +// 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. + +namespace Microsoft.JSInterop +{ + /// + /// Represents a reference to a JavaScript object whose functions can be invoked synchronously. + /// + public interface IJSInProcessObjectReference : IJSObjectReference + { + /// + /// Invokes the specified JavaScript function synchronously. + /// + /// The JSON-serializable return type. + /// An identifier for the function to invoke. For example, the value "someScope.someFunction" will invoke the function someScope.someFunction on the target instance. + /// JSON-serializable arguments. + /// An instance of obtained by JSON-deserializing the return value. + TValue Invoke(string identifier, params object?[]? args); + } +} diff --git a/src/JSInterop/Microsoft.JSInterop/src/IJSObjectReference.cs b/src/JSInterop/Microsoft.JSInterop/src/IJSObjectReference.cs new file mode 100644 index 0000000000..43e67f0cb1 --- /dev/null +++ b/src/JSInterop/Microsoft.JSInterop/src/IJSObjectReference.cs @@ -0,0 +1,41 @@ +// 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. + +using System; +using System.Threading; +using System.Threading.Tasks; + +namespace Microsoft.JSInterop +{ + /// + /// Represents a reference to a JavaScript object. + /// + public interface IJSObjectReference : IAsyncDisposable + { + /// + /// Invokes the specified JavaScript function asynchronously. + /// + /// will apply timeouts to this operation based on the value configured in . To dispatch a call with a different, or no timeout, + /// consider using . + /// + /// + /// The JSON-serializable return type. + /// An identifier for the function to invoke. For example, the value "someScope.someFunction" will invoke the function someScope.someFunction on the target instance. + /// JSON-serializable arguments. + /// An instance of obtained by JSON-deserializing the return value. + ValueTask InvokeAsync(string identifier, object?[]? args); + + /// + /// Invokes the specified JavaScript function asynchronously. + /// + /// The JSON-serializable return type. + /// An identifier for the function to invoke. For example, the value "someScope.someFunction" will invoke the function someScope.someFunction on the target instance. + /// + /// A cancellation token to signal the cancellation of the operation. Specifying this parameter will override any default cancellations such as due to timeouts + /// () from being applied. + /// + /// JSON-serializable arguments. + /// An instance of obtained by JSON-deserializing the return value. + ValueTask InvokeAsync(string identifier, CancellationToken cancellationToken, object?[]? args); + } +} diff --git a/src/JSInterop/Microsoft.JSInterop/src/Infrastructure/JSObjectReferenceJsonConverter.cs b/src/JSInterop/Microsoft.JSInterop/src/Infrastructure/JSObjectReferenceJsonConverter.cs index f26efa92a1..d18f7092b6 100644 --- a/src/JSInterop/Microsoft.JSInterop/src/Infrastructure/JSObjectReferenceJsonConverter.cs +++ b/src/JSInterop/Microsoft.JSInterop/src/Infrastructure/JSObjectReferenceJsonConverter.cs @@ -7,17 +7,21 @@ using System.Text.Json.Serialization; namespace Microsoft.JSInterop.Infrastructure { - internal sealed class JSObjectReferenceJsonConverter - : JsonConverter where TJSObjectReference : JSObjectReference + internal sealed class JSObjectReferenceJsonConverter : JsonConverter + where TInterface : class, IJSObjectReference + where TImplementation : JSObjectReference, TInterface { - private readonly Func _jsObjectReferenceFactory; + private readonly Func _jsObjectReferenceFactory; - public JSObjectReferenceJsonConverter(Func jsObjectReferenceFactory) + public JSObjectReferenceJsonConverter(Func jsObjectReferenceFactory) { _jsObjectReferenceFactory = jsObjectReferenceFactory; } - public override TJSObjectReference? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + public override bool CanConvert(Type typeToConvert) + => typeToConvert == typeof(TInterface) || typeToConvert == typeof(TImplementation); + + public override TInterface? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { long id = -1; @@ -49,10 +53,10 @@ namespace Microsoft.JSInterop.Infrastructure return _jsObjectReferenceFactory(id); } - public override void Write(Utf8JsonWriter writer, TJSObjectReference value, JsonSerializerOptions options) + public override void Write(Utf8JsonWriter writer, TInterface value, JsonSerializerOptions options) { writer.WriteStartObject(); - writer.WriteNumber(JSObjectReference.IdKey, value.Id); + writer.WriteNumber(JSObjectReference.IdKey, ((TImplementation)value).Id); writer.WriteEndObject(); } } diff --git a/src/JSInterop/Microsoft.JSInterop/src/JSInProcessObjectReference.cs b/src/JSInterop/Microsoft.JSInterop/src/JSInProcessObjectReference.cs index bd97a8f7a0..44dcba7287 100644 --- a/src/JSInterop/Microsoft.JSInterop/src/JSInProcessObjectReference.cs +++ b/src/JSInterop/Microsoft.JSInterop/src/JSInProcessObjectReference.cs @@ -5,10 +5,7 @@ using System.Diagnostics.CodeAnalysis; namespace Microsoft.JSInterop { - /// - /// Represents a reference to a JavaScript object whose functions can be invoked synchronously. - /// - public class JSInProcessObjectReference : JSObjectReference + internal class JSInProcessObjectReference : JSObjectReference, IJSInProcessObjectReference { private readonly JSInProcessRuntime _jsRuntime; @@ -17,15 +14,8 @@ namespace Microsoft.JSInterop _jsRuntime = jsRuntime; } - /// - /// Invokes the specified JavaScript function synchronously. - /// - /// The JSON-serializable return type. - /// An identifier for the function to invoke. For example, the value "someScope.someFunction" will invoke the function someScope.someFunction on the target instance. - /// JSON-serializable arguments. - /// An instance of obtained by JSON-deserializing the return value. [return: MaybeNull] - public TValue Invoke(string identifier, params object[] args) + public TValue Invoke(string identifier, params object?[]? args) { ThrowIfDisposed(); diff --git a/src/JSInterop/Microsoft.JSInterop/src/JSInProcessObjectReferenceExtensions.cs b/src/JSInterop/Microsoft.JSInterop/src/JSInProcessObjectReferenceExtensions.cs new file mode 100644 index 0000000000..57b9cc66fe --- /dev/null +++ b/src/JSInterop/Microsoft.JSInterop/src/JSInProcessObjectReferenceExtensions.cs @@ -0,0 +1,26 @@ +// 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. + +using System; + +namespace Microsoft.JSInterop +{ + public static class JSInProcessObjectReferenceExtensions + { + /// + /// Invokes the specified JavaScript function synchronously. + /// + /// The . + /// An identifier for the function to invoke. For example, the value "someScope.someFunction" will invoke the function someScope.someFunction on the target instance. + /// JSON-serializable arguments. + public static void InvokeVoid(this IJSInProcessObjectReference jsObjectReference, string identifier, params object?[] args) + { + if (jsObjectReference == null) + { + throw new ArgumentNullException(nameof(jsObjectReference)); + } + + jsObjectReference.Invoke(identifier, args); + } + } +} diff --git a/src/JSInterop/Microsoft.JSInterop/src/JSInProcessRuntime.cs b/src/JSInterop/Microsoft.JSInterop/src/JSInProcessRuntime.cs index 092f295330..2912c2db06 100644 --- a/src/JSInterop/Microsoft.JSInterop/src/JSInProcessRuntime.cs +++ b/src/JSInterop/Microsoft.JSInterop/src/JSInProcessRuntime.cs @@ -17,7 +17,7 @@ namespace Microsoft.JSInterop /// protected JSInProcessRuntime() { - JsonSerializerOptions.Converters.Add(new JSObjectReferenceJsonConverter( + JsonSerializerOptions.Converters.Add(new JSObjectReferenceJsonConverter( id => new JSInProcessObjectReference(this, id))); } @@ -27,7 +27,7 @@ namespace Microsoft.JSInterop var resultJson = InvokeJS( identifier, JsonSerializer.Serialize(args, JsonSerializerOptions), - ResultTypeFromGeneric(), + JSCallResultTypeHelper.FromGeneric(), targetInstanceId); if (resultJson is null) diff --git a/src/JSInterop/Microsoft.JSInterop/src/JSObjectReference.cs b/src/JSInterop/Microsoft.JSInterop/src/JSObjectReference.cs index ef98c2dfc9..ea87657a07 100644 --- a/src/JSInterop/Microsoft.JSInterop/src/JSObjectReference.cs +++ b/src/JSInterop/Microsoft.JSInterop/src/JSObjectReference.cs @@ -8,77 +8,37 @@ using System.Threading.Tasks; namespace Microsoft.JSInterop { - /// - /// Represents a reference to a JavaScript object. - /// - public class JSObjectReference : IAsyncDisposable + internal class JSObjectReference : IJSObjectReference { - internal static readonly JsonEncodedText IdKey = JsonEncodedText.Encode("__jsObjectId"); + public static readonly JsonEncodedText IdKey = JsonEncodedText.Encode("__jsObjectId"); private readonly JSRuntime _jsRuntime; private bool _disposed; - internal long Id { get; } + public long Id { get; } - internal JSObjectReference(JSRuntime jsRuntime, long id) + public JSObjectReference(JSRuntime jsRuntime, long id) { _jsRuntime = jsRuntime; Id = id; } - /// - /// Invokes the specified JavaScript function asynchronously. - /// - /// An identifier for the function to invoke. For example, the value "someScope.someFunction" will invoke the function someScope.someFunction on the target instance. - /// JSON-serializable arguments. - /// A that represents the asynchronous invocation operation. - public async ValueTask InvokeVoidAsync(string identifier, params object[] args) - { - await InvokeAsync(identifier, args); - } - - /// - /// Invokes the specified JavaScript function asynchronously. - /// - /// will apply timeouts to this operation based on the value configured in . To dispatch a call with a different, or no timeout, - /// consider using . - /// - /// - /// The JSON-serializable return type. - /// An identifier for the function to invoke. For example, the value "someScope.someFunction" will invoke the function someScope.someFunction on the target instance. - /// JSON-serializable arguments. - /// An instance of obtained by JSON-deserializing the return value. - public ValueTask InvokeAsync(string identifier, params object[] args) + public ValueTask InvokeAsync(string identifier, object?[]? args) { ThrowIfDisposed(); return _jsRuntime.InvokeAsync(Id, identifier, args); } - /// - /// Invokes the specified JavaScript function asynchronously. - /// - /// The JSON-serializable return type. - /// An identifier for the function to invoke. For example, the value "someScope.someFunction" will invoke the function someScope.someFunction on the target instance. - /// - /// A cancellation token to signal the cancellation of the operation. Specifying this parameter will override any default cancellations such as due to timeouts - /// () from being applied. - /// - /// JSON-serializable arguments. - /// An instance of obtained by JSON-deserializing the return value. - public ValueTask InvokeAsync(string identifier, CancellationToken cancellationToken, params object[] args) + public ValueTask InvokeAsync(string identifier, CancellationToken cancellationToken, object?[]? args) { ThrowIfDisposed(); return _jsRuntime.InvokeAsync(Id, identifier, cancellationToken, args); } - /// - /// Disposes the , freeing its resources and disabling it from further use. - /// - /// A representing the completion of the operation. public async ValueTask DisposeAsync() { if (!_disposed) @@ -89,9 +49,6 @@ namespace Microsoft.JSInterop } } - /// - /// Throws an exception if this instance has been disposed. - /// protected void ThrowIfDisposed() { if (_disposed) diff --git a/src/JSInterop/Microsoft.JSInterop/src/JSObjectReferenceExtensions.cs b/src/JSInterop/Microsoft.JSInterop/src/JSObjectReferenceExtensions.cs new file mode 100644 index 0000000000..ee5d658cf6 --- /dev/null +++ b/src/JSInterop/Microsoft.JSInterop/src/JSObjectReferenceExtensions.cs @@ -0,0 +1,139 @@ +// 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. + +using System; +using System.Threading; +using System.Threading.Tasks; + +namespace Microsoft.JSInterop +{ + /// + /// Extensions for . + /// + public static class JSObjectReferenceExtensions + { + /// + /// Invokes the specified JavaScript function asynchronously. + /// + /// The . + /// An identifier for the function to invoke. For example, the value "someScope.someFunction" will invoke the function someScope.someFunction on the target instance. + /// JSON-serializable arguments. + /// A that represents the asynchronous invocation operation. + public static async ValueTask InvokeVoidAsync(this IJSObjectReference jsObjectReference, string identifier, params object?[] args) + { + if (jsObjectReference is null) + { + throw new ArgumentNullException(nameof(jsObjectReference)); + } + + await jsObjectReference.InvokeAsync(identifier, args); + } + + /// + /// Invokes the specified JavaScript function asynchronously. + /// + /// will apply timeouts to this operation based on the value configured in . To dispatch a call with a different timeout, or no timeout, + /// consider using . + /// + /// + /// The . + /// The JSON-serializable return type. + /// An identifier for the function to invoke. For example, the value "someScope.someFunction" will invoke the function someScope.someFunction on the target instance. + /// JSON-serializable arguments. + /// An instance of obtained by JSON-deserializing the return value. + public static ValueTask InvokeAsync(this IJSObjectReference jsObjectReference, string identifier, params object?[] args) + { + if (jsObjectReference is null) + { + throw new ArgumentNullException(nameof(jsObjectReference)); + } + + return jsObjectReference.InvokeAsync(identifier, args); + } + + /// + /// Invokes the specified JavaScript function asynchronously. + /// + /// The JSON-serializable return type. + /// The . + /// An identifier for the function to invoke. For example, the value "someScope.someFunction" will invoke the function someScope.someFunction on the target instance. + /// + /// A cancellation token to signal the cancellation of the operation. Specifying this parameter will override any default cancellations such as due to timeouts + /// () from being applied. + /// + /// JSON-serializable arguments. + /// An instance of obtained by JSON-deserializing the return value. + public static ValueTask InvokeAsync(this IJSObjectReference jsObjectReference, string identifier, CancellationToken cancellationToken, params object?[] args) + { + if (jsObjectReference is null) + { + throw new ArgumentNullException(nameof(jsObjectReference)); + } + + return jsObjectReference.InvokeAsync(identifier, cancellationToken, args); + } + + /// + /// Invokes the specified JavaScript function asynchronously. + /// + /// The . + /// An identifier for the function to invoke. For example, the value "someScope.someFunction" will invoke the function someScope.someFunction on the target instance. + /// + /// A cancellation token to signal the cancellation of the operation. Specifying this parameter will override any default cancellations such as due to timeouts + /// () from being applied. + /// + /// JSON-serializable arguments. + /// A that represents the asynchronous invocation operation. + public static async ValueTask InvokeVoidAsync(this IJSObjectReference jsObjectReference, string identifier, CancellationToken cancellationToken, params object?[] args) + { + if (jsObjectReference is null) + { + throw new ArgumentNullException(nameof(jsObjectReference)); + } + + await jsObjectReference.InvokeAsync(identifier, cancellationToken, args); + } + + /// + /// Invokes the specified JavaScript function asynchronously. + /// + /// The . + /// An identifier for the function to invoke. For example, the value "someScope.someFunction" will invoke the function someScope.someFunction on the target instance. + /// The duration after which to cancel the async operation. Overrides default timeouts (). + /// JSON-serializable arguments. + /// A that represents the asynchronous invocation operation. + public static async ValueTask InvokeAsync(this IJSObjectReference jsObjectReference, string identifier, TimeSpan timeout, params object?[] args) + { + if (jsObjectReference is null) + { + throw new ArgumentNullException(nameof(jsObjectReference)); + } + + using var cancellationTokenSource = timeout == Timeout.InfiniteTimeSpan ? null : new CancellationTokenSource(timeout); + var cancellationToken = cancellationTokenSource?.Token ?? CancellationToken.None; + + return await jsObjectReference.InvokeAsync(identifier, cancellationToken, args); + } + + /// + /// Invokes the specified JavaScript function asynchronously. + /// + /// The . + /// An identifier for the function to invoke. For example, the value "someScope.someFunction" will invoke the function someScope.someFunction on the target instance. + /// The duration after which to cancel the async operation. Overrides default timeouts (). + /// JSON-serializable arguments. + /// A that represents the asynchronous invocation operation. + public static async ValueTask InvokeVoidAsync(this IJSObjectReference jsObjectReference, string identifier, TimeSpan timeout, params object?[] args) + { + if (jsObjectReference is null) + { + throw new ArgumentNullException(nameof(jsObjectReference)); + } + + using var cancellationTokenSource = timeout == Timeout.InfiniteTimeSpan ? null : new CancellationTokenSource(timeout); + var cancellationToken = cancellationTokenSource?.Token ?? CancellationToken.None; + + await jsObjectReference.InvokeAsync(identifier, cancellationToken, args); + } + } +} diff --git a/src/JSInterop/Microsoft.JSInterop/src/JSRuntime.cs b/src/JSInterop/Microsoft.JSInterop/src/JSRuntime.cs index 7e69eb3d21..25a885a7b9 100644 --- a/src/JSInterop/Microsoft.JSInterop/src/JSRuntime.cs +++ b/src/JSInterop/Microsoft.JSInterop/src/JSRuntime.cs @@ -37,7 +37,7 @@ namespace Microsoft.JSInterop Converters = { new DotNetObjectReferenceJsonConverterFactory(this), - new JSObjectReferenceJsonConverter(id => new JSObjectReference(this, id)), + new JSObjectReferenceJsonConverter(id => new JSObjectReference(this, id)), } }; } @@ -52,17 +52,6 @@ namespace Microsoft.JSInterop /// protected TimeSpan? DefaultAsyncTimeout { get; set; } - /// - /// Creates a from the given generic type. - /// - /// - /// The type of the result of the relevant JS interop call. - /// - protected static JSCallResultType ResultTypeFromGeneric() - => typeof(TResult) == typeof(JSObjectReference) || typeof(TResult) == typeof(JSInProcessObjectReference) ? - JSCallResultType.JSObjectReference : - JSCallResultType.Default; - /// /// Invokes the specified JavaScript function asynchronously. /// @@ -134,7 +123,7 @@ namespace Microsoft.JSInterop var argsJson = args?.Any() == true ? JsonSerializer.Serialize(args, JsonSerializerOptions) : null; - var resultType = ResultTypeFromGeneric(); + var resultType = JSCallResultTypeHelper.FromGeneric(); BeginInvokeJS(taskId, identifier, argsJson, resultType, targetInstanceId); diff --git a/src/JSInterop/Microsoft.JSInterop/src/Microsoft.JSInterop.csproj b/src/JSInterop/Microsoft.JSInterop/src/Microsoft.JSInterop.csproj index ebdf3cd319..4667991833 100644 --- a/src/JSInterop/Microsoft.JSInterop/src/Microsoft.JSInterop.csproj +++ b/src/JSInterop/Microsoft.JSInterop/src/Microsoft.JSInterop.csproj @@ -1,4 +1,4 @@ - + $(DefaultNetCoreTargetFramework) @@ -13,6 +13,10 @@ + + + + diff --git a/src/JSInterop/Microsoft.JSInterop/test/Infrastructure/JSObjectReferenceJsonConverterTest.cs b/src/JSInterop/Microsoft.JSInterop/test/Infrastructure/JSObjectReferenceJsonConverterTest.cs index 75f4388c15..0b7948cf56 100644 --- a/src/JSInterop/Microsoft.JSInterop/test/Infrastructure/JSObjectReferenceJsonConverterTest.cs +++ b/src/JSInterop/Microsoft.JSInterop/test/Infrastructure/JSObjectReferenceJsonConverterTest.cs @@ -18,7 +18,7 @@ namespace Microsoft.JSInterop.Infrastructure var json = "{}"; // Act & Assert - var ex = Assert.Throws(() => JsonSerializer.Deserialize(json, JsonSerializerOptions)); + var ex = Assert.Throws(() => JsonSerializer.Deserialize(json, JsonSerializerOptions)); Assert.Equal("Required property __jsObjectId not found.", ex.Message); } @@ -29,7 +29,7 @@ namespace Microsoft.JSInterop.Infrastructure var json = "{\"foo\":2}"; // Act & Assert - var ex = Assert.Throws(() => JsonSerializer.Deserialize(json, JsonSerializerOptions)); + var ex = Assert.Throws(() => JsonSerializer.Deserialize(json, JsonSerializerOptions)); Assert.Equal("Unexcepted JSON property foo.", ex.Message); } @@ -40,7 +40,7 @@ namespace Microsoft.JSInterop.Infrastructure var json = $"{{\"__jsObjectId\":5"; // Act & Assert - var ex = Record.Exception(() => JsonSerializer.Deserialize(json, JsonSerializerOptions)); + var ex = Record.Exception(() => JsonSerializer.Deserialize(json, JsonSerializerOptions)); Assert.IsAssignableFrom(ex); } @@ -51,7 +51,7 @@ namespace Microsoft.JSInterop.Infrastructure var json = $"{{\"__jsObjectId\":3,\"__jsObjectId\":7}}"; // Act & Assert - var ex = Record.Exception(() => JsonSerializer.Deserialize(json, JsonSerializerOptions)); + var ex = Record.Exception(() => JsonSerializer.Deserialize(json, JsonSerializerOptions)); Assert.IsAssignableFrom(ex); } @@ -63,7 +63,7 @@ namespace Microsoft.JSInterop.Infrastructure var json = $"{{\"__jsObjectId\":{expectedId}}}"; // Act - var deserialized = JsonSerializer.Deserialize(json, JsonSerializerOptions)!; + var deserialized = (JSObjectReference)JsonSerializer.Deserialize(json, JsonSerializerOptions)!; // Assert Assert.Equal(expectedId, deserialized?.Id); @@ -76,7 +76,7 @@ namespace Microsoft.JSInterop.Infrastructure var jsObjectRef = new JSObjectReference(JSRuntime, 7); // Act - var json = JsonSerializer.Serialize(jsObjectRef, JsonSerializerOptions); + var json = JsonSerializer.Serialize((IJSObjectReference)jsObjectRef, JsonSerializerOptions); // Assert Assert.Equal($"{{\"__jsObjectId\":{jsObjectRef.Id}}}", json); diff --git a/src/Shared/JSInterop/JSCallResultTypeHelper.cs b/src/Shared/JSInterop/JSCallResultTypeHelper.cs new file mode 100644 index 0000000000..a03e4308d1 --- /dev/null +++ b/src/Shared/JSInterop/JSCallResultTypeHelper.cs @@ -0,0 +1,13 @@ +// 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. + +namespace Microsoft.JSInterop +{ + internal static class JSCallResultTypeHelper + { + public static JSCallResultType FromGeneric() + => typeof(TResult) == typeof(IJSObjectReference) || typeof(TResult) == typeof(IJSInProcessObjectReference) ? + JSCallResultType.JSObjectReference : + JSCallResultType.Default; + } +} From d2c31edc14d3566336ea7f0882865f81d59b2aff Mon Sep 17 00:00:00 2001 From: Justin Kotalik Date: Wed, 2 Sep 2020 15:54:41 -0700 Subject: [PATCH 027/187] Improving logs from hostfxr (#25541) --- .../inprocessapplication.cpp | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/src/Servers/IIS/AspNetCoreModuleV2/InProcessRequestHandler/inprocessapplication.cpp b/src/Servers/IIS/AspNetCoreModuleV2/InProcessRequestHandler/inprocessapplication.cpp index 1dd8a42c4b..8643f8089a 100644 --- a/src/Servers/IIS/AspNetCoreModuleV2/InProcessRequestHandler/inprocessapplication.cpp +++ b/src/Servers/IIS/AspNetCoreModuleV2/InProcessRequestHandler/inprocessapplication.cpp @@ -251,10 +251,26 @@ IN_PROCESS_APPLICATION::ExecuteApplication() LOG_INFOF(L"Setting current directory to %s", this->QueryApplicationPhysicalPath().c_str()); } + auto redirectionOutput = LoggingHelpers::CreateOutputs( + m_pConfig->QueryStdoutLogEnabled(), + m_pConfig->QueryStdoutLogFile(), + QueryApplicationPhysicalPath(), + m_stringRedirectionOutput + ); + + StandardStreamRedirection redirection(*redirectionOutput.get(), m_pHttpServer.IsCommandLineLaunch()); + + context->m_redirectionOutput = redirectionOutput.get(); + + ForwardingRedirectionOutput redirectionForwarder(&context->m_redirectionOutput); + const auto redirect = context->m_hostFxr.RedirectOutput(&redirectionForwarder); + auto startupReturnCode = context->m_hostFxr.InitializeForApp(context->m_argc, context->m_argv.get(), m_dotnetExeKnownLocation); if (startupReturnCode != 0) { - throw InvalidOperationException(format(L"Error occurred when initializing in-process application, Return code: 0x%x", startupReturnCode)); + auto content = m_stringRedirectionOutput->GetOutput(); + + throw InvalidOperationException(format(L"Error occurred when initializing in-process application, Return code: 0x%x, Error logs: %ls", startupReturnCode, content.c_str())); } if (m_pConfig->QueryCallStartupHook()) @@ -280,17 +296,6 @@ IN_PROCESS_APPLICATION::ExecuteApplication() bool clrThreadExited; { - auto redirectionOutput = LoggingHelpers::CreateOutputs( - m_pConfig->QueryStdoutLogEnabled(), - m_pConfig->QueryStdoutLogFile(), - QueryApplicationPhysicalPath(), - m_stringRedirectionOutput - ); - - StandardStreamRedirection redirection(*redirectionOutput.get(), m_pHttpServer.IsCommandLineLaunch()); - - context->m_redirectionOutput = redirectionOutput.get(); - //Start CLR thread m_clrThread = std::thread(ClrThreadEntryPoint, context); @@ -480,8 +485,6 @@ IN_PROCESS_APPLICATION::ClrThreadEntryPoint(const std::shared_ptrm_errorWriter itself to be able to // disconnect listener before CLR exits - ForwardingRedirectionOutput redirectionForwarder(&context->m_redirectionOutput); - const auto redirect = context->m_hostFxr.RedirectOutput(&redirectionForwarder); ExecuteClr(context); } From 3f612afe9ad521f93efa42e79d2fdd39fda33c51 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 2 Sep 2020 23:02:44 +0000 Subject: [PATCH 028/187] [release/5.0-rc2] Update dependencies from dotnet/runtime dotnet/efcore (#25536) [release/5.0-rc2] Update dependencies from dotnet/runtime dotnet/efcore - Updates: - System.ComponentModel.Annotations: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - System.Diagnostics.DiagnosticSource: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - System.Diagnostics.EventLog: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - System.DirectoryServices.Protocols: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.Logging.Abstractions: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.Logging.Configuration: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.Logging.Console: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.Logging.Debug: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.Logging.EventLog: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.Logging.EventSource: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.Logging.TraceSource: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.Options: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.Options.ConfigurationExtensions: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.Options.DataAnnotations: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.Primitives: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.Logging: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.Internal.Transport: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.Http: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.Hosting.Abstractions: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.Caching.Abstractions: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.Caching.Memory: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.Configuration: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.Configuration.Abstractions: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.Configuration.Binder: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.Configuration.CommandLine: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.Configuration.EnvironmentVariables: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.Configuration.FileExtensions: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.Configuration.Ini: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.Configuration.UserSecrets: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.Configuration.Xml: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.DependencyInjection: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.DependencyInjection.Abstractions: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.DependencyModel: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.FileProviders.Abstractions: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.FileProviders.Composite: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.FileProviders.Physical: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.FileSystemGlobbing: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.HostFactoryResolver.Sources: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.Hosting: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Extensions.Configuration.Json: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.NETCore.App.Runtime.win-x64: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.NETCore.BrowserDebugHost.Transport: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.NETCore.Platforms: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Win32.Registry: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.Win32.SystemEvents: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.NETCore.App.Internal: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Microsoft.NETCore.App.Ref: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - System.Drawing.Common: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - System.Threading.Channels: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - System.Windows.Extensions: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - System.Text.Json: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - System.Text.Encodings.Web: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - System.ServiceProcess.ServiceController: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - System.IO.Pipelines: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - System.Net.Http.Json: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - System.Net.Http.WinHttpHandler: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - System.Net.WebSockets.WebSocketProtocol: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - System.Reflection.Metadata: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - System.Runtime.CompilerServices.Unsafe: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - System.Security.AccessControl: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - System.Security.Cryptography.Cng: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - System.Security.Cryptography.Pkcs: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - System.Security.Cryptography.Xml: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - System.Security.Permissions: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - System.Security.Principal.Windows: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - System.Resources.Extensions: from 5.0.0-rc.2.20451.27 to 5.0.0-rc.2.20452.4 - Updates: - Microsoft.EntityFrameworkCore.Tools: from 5.0.0-rc.2.20452.1 to 5.0.0-rc.2.20452.2 - Microsoft.EntityFrameworkCore.SqlServer: from 5.0.0-rc.2.20452.1 to 5.0.0-rc.2.20452.2 - dotnet-ef: from 5.0.0-rc.2.20452.1 to 5.0.0-rc.2.20452.2 - Microsoft.EntityFrameworkCore: from 5.0.0-rc.2.20452.1 to 5.0.0-rc.2.20452.2 - Microsoft.EntityFrameworkCore.Design: from 5.0.0-rc.2.20452.1 to 5.0.0-rc.2.20452.2 - Microsoft.EntityFrameworkCore.Relational: from 5.0.0-rc.2.20452.1 to 5.0.0-rc.2.20452.2 - Microsoft.EntityFrameworkCore.Sqlite: from 5.0.0-rc.2.20452.1 to 5.0.0-rc.2.20452.2 - Microsoft.EntityFrameworkCore.InMemory: from 5.0.0-rc.2.20452.1 to 5.0.0-rc.2.20452.2 --- eng/Version.Details.xml | 296 ++++++++++++++++++++-------------------- eng/Versions.props | 148 ++++++++++---------- 2 files changed, 222 insertions(+), 222 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index bddecc1cb8..f1e879be4b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -13,309 +13,309 @@ https://github.com/dotnet/blazor cc449601d638ffaab58ae9487f0fd010bb178a12 - + https://github.com/dotnet/efcore - dcb27d309d099d7cb15dc19a5b9188feeb8795c8 + 2ff3db33660c59e35d449dcbddd8d37dfba72b7b - + https://github.com/dotnet/efcore - dcb27d309d099d7cb15dc19a5b9188feeb8795c8 + 2ff3db33660c59e35d449dcbddd8d37dfba72b7b - + https://github.com/dotnet/efcore - dcb27d309d099d7cb15dc19a5b9188feeb8795c8 + 2ff3db33660c59e35d449dcbddd8d37dfba72b7b - + https://github.com/dotnet/efcore - dcb27d309d099d7cb15dc19a5b9188feeb8795c8 + 2ff3db33660c59e35d449dcbddd8d37dfba72b7b - + https://github.com/dotnet/efcore - dcb27d309d099d7cb15dc19a5b9188feeb8795c8 + 2ff3db33660c59e35d449dcbddd8d37dfba72b7b - + https://github.com/dotnet/efcore - dcb27d309d099d7cb15dc19a5b9188feeb8795c8 + 2ff3db33660c59e35d449dcbddd8d37dfba72b7b - + https://github.com/dotnet/efcore - dcb27d309d099d7cb15dc19a5b9188feeb8795c8 + 2ff3db33660c59e35d449dcbddd8d37dfba72b7b - + https://github.com/dotnet/efcore - dcb27d309d099d7cb15dc19a5b9188feeb8795c8 + 2ff3db33660c59e35d449dcbddd8d37dfba72b7b - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac - + https://github.com/dotnet/runtime - 83bbcec3eb6a405f2023d452ae61494ce7e6d787 + 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 6d51ad7700..6e8b4cd373 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -64,85 +64,85 @@ 3.8.0-2.20407.3 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 - 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20451.27 + 5.0.0-rc.2.20452.4 3.2.0 - 5.0.0-rc.2.20452.1 - 5.0.0-rc.2.20452.1 - 5.0.0-rc.2.20452.1 - 5.0.0-rc.2.20452.1 - 5.0.0-rc.2.20452.1 - 5.0.0-rc.2.20452.1 - 5.0.0-rc.2.20452.1 - 5.0.0-rc.2.20452.1 + 5.0.0-rc.2.20452.2 + 5.0.0-rc.2.20452.2 + 5.0.0-rc.2.20452.2 + 5.0.0-rc.2.20452.2 + 5.0.0-rc.2.20452.2 + 5.0.0-rc.2.20452.2 + 5.0.0-rc.2.20452.2 + 5.0.0-rc.2.20452.2 5.0.0-beta.20431.1 From a2ffaf95caa9eea8947e06f71834bf1d7079c068 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 3 Sep 2020 01:31:37 +0000 Subject: [PATCH 029/187] Update dependencies from https://github.com/dotnet/runtime build 20200902.8 (#25549) [release/5.0-rc2] Update dependencies from dotnet/runtime - Updates: - System.ComponentModel.Annotations: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - System.Diagnostics.DiagnosticSource: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - System.Diagnostics.EventLog: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - System.DirectoryServices.Protocols: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.Logging.Abstractions: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.Logging.Configuration: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.Logging.Console: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.Logging.Debug: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.Logging.EventLog: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.Logging.EventSource: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.Logging.TraceSource: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.Options: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.Options.ConfigurationExtensions: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.Options.DataAnnotations: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.Primitives: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.Logging: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.Internal.Transport: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.Http: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.Hosting.Abstractions: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.Caching.Abstractions: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.Caching.Memory: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.Configuration: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.Configuration.Abstractions: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.Configuration.Binder: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.Configuration.CommandLine: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.Configuration.EnvironmentVariables: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.Configuration.FileExtensions: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.Configuration.Ini: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.Configuration.UserSecrets: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.Configuration.Xml: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.DependencyInjection: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.DependencyInjection.Abstractions: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.DependencyModel: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.FileProviders.Abstractions: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.FileProviders.Composite: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.FileProviders.Physical: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.FileSystemGlobbing: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.HostFactoryResolver.Sources: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.Hosting: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Extensions.Configuration.Json: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.NETCore.App.Runtime.win-x64: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.NETCore.BrowserDebugHost.Transport: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.NETCore.Platforms: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Win32.Registry: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.Win32.SystemEvents: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.NETCore.App.Internal: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - Microsoft.NETCore.App.Ref: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - System.Drawing.Common: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - System.Threading.Channels: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - System.Windows.Extensions: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - System.Text.Json: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - System.Text.Encodings.Web: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - System.ServiceProcess.ServiceController: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - System.IO.Pipelines: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - System.Net.Http.Json: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - System.Net.Http.WinHttpHandler: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - System.Net.WebSockets.WebSocketProtocol: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - System.Reflection.Metadata: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - System.Runtime.CompilerServices.Unsafe: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - System.Security.AccessControl: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - System.Security.Cryptography.Cng: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - System.Security.Cryptography.Pkcs: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - System.Security.Cryptography.Xml: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - System.Security.Permissions: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - System.Security.Principal.Windows: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 - System.Resources.Extensions: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20452.8 --- eng/Version.Details.xml | 264 ++++++++++++++++++++-------------------- eng/Versions.props | 132 ++++++++++---------- 2 files changed, 198 insertions(+), 198 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index f1e879be4b..3403589c3c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -45,277 +45,277 @@ https://github.com/dotnet/efcore 2ff3db33660c59e35d449dcbddd8d37dfba72b7b - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 - + https://github.com/dotnet/runtime - 4e8bd6c3c88cf12a7f0547e8a7e8e364fe43e0ac + 7097851a16f17d757506bf3d4bf13343540be148 https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 6e8b4cd373..855ebb1979 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -64,74 +64,74 @@ 3.8.0-2.20407.3 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 - 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 + 5.0.0-rc.2.20452.8 - 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.8 3.2.0 From 3ef9fbee42ae846797b771d86efecbf277556ea9 Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Wed, 2 Sep 2020 19:45:36 -0700 Subject: [PATCH 030/187] Quick infrastructure fix-ups (#25545) - pin Microsoft.Net.Compilers.Toolset version to isolate us from Arcade - the version now matches dotnet/runtime - may move the pin to later version later in RC2 if needed - double the macOS job max. length in our normal and quarantined PR runs - have been seeing them timeout or come very close too often --- .azure/pipelines/ci.yml | 1 + .azure/pipelines/quarantined-pr.yml | 2 +- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.azure/pipelines/ci.yml b/.azure/pipelines/ci.yml index bbf6b58667..801eb09923 100644 --- a/.azure/pipelines/ci.yml +++ b/.azure/pipelines/ci.yml @@ -573,6 +573,7 @@ stages: jobName: MacOS_Test jobDisplayName: "Test: macOS 10.14" agentOs: macOS + timeoutInMinutes: 240 isTestingJob: true buildArgs: --all --test "/p:RunTemplateTests=false /p:SkipHelixReadyTests=true" $(_InternalRuntimeDownloadArgs) beforeBuild: diff --git a/.azure/pipelines/quarantined-pr.yml b/.azure/pipelines/quarantined-pr.yml index adcff0e305..13a7236c3a 100644 --- a/.azure/pipelines/quarantined-pr.yml +++ b/.azure/pipelines/quarantined-pr.yml @@ -86,7 +86,7 @@ jobs: jobName: MacOS_Quarantined_Test jobDisplayName: "Tests: macOS 10.14" agentOs: macOS - timeoutInMinutes: 60 + timeoutInMinutes: 120 isTestingJob: true steps: - bash: ./build.sh --all --pack --ci --nobl --no-build-java diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 3403589c3c..159fcfd186 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -329,9 +329,9 @@ https://github.com/dotnet/arcade 4be47e467013f8a07a1ed7b6e49e39c8150bde54 - + https://github.com/dotnet/roslyn - dba2fa57432b4bd9cc7880e2c6fe3acdd01bba3c + b6a07e61473ed8a804de465f7c1cb5c17f80732d diff --git a/eng/Versions.props b/eng/Versions.props index 855ebb1979..bea85d582f 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,7 +62,7 @@ --> - 3.8.0-2.20407.3 + 3.8.0-2.20403.2 5.0.0-rc.2.20452.8 5.0.0-rc.2.20452.8 From 8991f17c2e271b71190122b3bd4ef82335b010b6 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 3 Sep 2020 03:25:56 +0000 Subject: [PATCH 031/187] [release/5.0-rc2] Update dependencies from dotnet/efcore (#25553) [release/5.0-rc2] Update dependencies from dotnet/efcore - Updates: - Microsoft.EntityFrameworkCore.Tools: from 5.0.0-rc.2.20452.3 to 5.0.0-rc.2.20452.4 - Microsoft.EntityFrameworkCore.SqlServer: from 5.0.0-rc.2.20452.3 to 5.0.0-rc.2.20452.4 - dotnet-ef: from 5.0.0-rc.2.20452.3 to 5.0.0-rc.2.20452.4 - Microsoft.EntityFrameworkCore: from 5.0.0-rc.2.20452.3 to 5.0.0-rc.2.20452.4 - Microsoft.EntityFrameworkCore.Design: from 5.0.0-rc.2.20452.3 to 5.0.0-rc.2.20452.4 - Microsoft.EntityFrameworkCore.Relational: from 5.0.0-rc.2.20452.3 to 5.0.0-rc.2.20452.4 - Microsoft.EntityFrameworkCore.Sqlite: from 5.0.0-rc.2.20452.3 to 5.0.0-rc.2.20452.4 - Microsoft.EntityFrameworkCore.InMemory: from 5.0.0-rc.2.20452.3 to 5.0.0-rc.2.20452.4 --- eng/Version.Details.xml | 32 ++++++++++++++++---------------- eng/Versions.props | 16 ++++++++-------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 159fcfd186..900a34295d 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -13,37 +13,37 @@ https://github.com/dotnet/blazor cc449601d638ffaab58ae9487f0fd010bb178a12 - + https://github.com/dotnet/efcore - 2ff3db33660c59e35d449dcbddd8d37dfba72b7b + 474ef514330b6cd14d26fb598769134b87d0131f - + https://github.com/dotnet/efcore - 2ff3db33660c59e35d449dcbddd8d37dfba72b7b + 474ef514330b6cd14d26fb598769134b87d0131f - + https://github.com/dotnet/efcore - 2ff3db33660c59e35d449dcbddd8d37dfba72b7b + 474ef514330b6cd14d26fb598769134b87d0131f - + https://github.com/dotnet/efcore - 2ff3db33660c59e35d449dcbddd8d37dfba72b7b + 474ef514330b6cd14d26fb598769134b87d0131f - + https://github.com/dotnet/efcore - 2ff3db33660c59e35d449dcbddd8d37dfba72b7b + 474ef514330b6cd14d26fb598769134b87d0131f - + https://github.com/dotnet/efcore - 2ff3db33660c59e35d449dcbddd8d37dfba72b7b + 474ef514330b6cd14d26fb598769134b87d0131f - + https://github.com/dotnet/efcore - 2ff3db33660c59e35d449dcbddd8d37dfba72b7b + 474ef514330b6cd14d26fb598769134b87d0131f - + https://github.com/dotnet/efcore - 2ff3db33660c59e35d449dcbddd8d37dfba72b7b + 474ef514330b6cd14d26fb598769134b87d0131f https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index bea85d582f..f938c39644 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -135,14 +135,14 @@ 3.2.0 - 5.0.0-rc.2.20452.2 - 5.0.0-rc.2.20452.2 - 5.0.0-rc.2.20452.2 - 5.0.0-rc.2.20452.2 - 5.0.0-rc.2.20452.2 - 5.0.0-rc.2.20452.2 - 5.0.0-rc.2.20452.2 - 5.0.0-rc.2.20452.2 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 + 5.0.0-rc.2.20452.4 5.0.0-beta.20431.1 From 12c016567cbca41bade3925512d0c926ccaaff95 Mon Sep 17 00:00:00 2001 From: Pranav K Date: Wed, 2 Sep 2020 23:37:46 -0700 Subject: [PATCH 032/187] Reject control characters in IsLocalUrl check (#25378) Fixes https://github.com/dotnet/aspnetcore/issues/18109 --- src/Mvc/Mvc.Core/src/Routing/UrlHelperBase.cs | 21 ++++++++-- .../test/Routing/UrlHelperTestBase.cs | 39 ++++++++++++++++++- 2 files changed, 56 insertions(+), 4 deletions(-) diff --git a/src/Mvc/Mvc.Core/src/Routing/UrlHelperBase.cs b/src/Mvc/Mvc.Core/src/Routing/UrlHelperBase.cs index 2cea4a9fc7..54eedb0e45 100644 --- a/src/Mvc/Mvc.Core/src/Routing/UrlHelperBase.cs +++ b/src/Mvc/Mvc.Core/src/Routing/UrlHelperBase.cs @@ -1,4 +1,4 @@ -// 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. using System; @@ -60,7 +60,7 @@ namespace Microsoft.AspNetCore.Mvc.Routing // url doesn't start with "//" or "/\" if (url[1] != '/' && url[1] != '\\') { - return true; + return !HasControlCharacter(url.AsSpan(1)); } return false; @@ -78,15 +78,30 @@ namespace Microsoft.AspNetCore.Mvc.Routing // url doesn't start with "~//" or "~/\" if (url[2] != '/' && url[2] != '\\') { - return true; + return !HasControlCharacter(url.AsSpan(2)); } return false; } return false; + + static bool HasControlCharacter(ReadOnlySpan readOnlySpan) + { + // URLs may not contain ASCII control characters. + for (var i = 0; i < readOnlySpan.Length; i++) + { + if (char.IsControl(readOnlySpan[i])) + { + return true; + } + } + + return false; + } } + /// public virtual string Content(string contentPath) { diff --git a/src/Mvc/Mvc.Core/test/Routing/UrlHelperTestBase.cs b/src/Mvc/Mvc.Core/test/Routing/UrlHelperTestBase.cs index a1b3da3088..a0693946bc 100644 --- a/src/Mvc/Mvc.Core/test/Routing/UrlHelperTestBase.cs +++ b/src/Mvc/Mvc.Core/test/Routing/UrlHelperTestBase.cs @@ -1,4 +1,4 @@ -// 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. using System; @@ -288,6 +288,43 @@ namespace Microsoft.AspNetCore.Mvc.Routing Assert.False(result); } + [Theory] + [InlineData("\n")] + [InlineData("\\n")] + [InlineData("/\n")] + [InlineData("~\n")] + [InlineData("~/\n")] + public void IsLocalUrl_RejectsUrlWithNewLineAtStart(string url) + { + // Arrange + var helper = CreateUrlHelper(appRoot: string.Empty, host: "www.mysite.com", protocol: null); + + // Act + var result = helper.IsLocalUrl(url); + + // Assert + Assert.False(result); + } + + [Theory] + [InlineData("/\r\nsomepath")] + [InlineData("~/\r\nsomepath")] + [InlineData("/some\npath")] + [InlineData("~/some\npath")] + [InlineData("\\path\b")] + [InlineData("~\\path\b")] + public void IsLocalUrl_RejectsUrlWithControlCharacters(string url) + { + // Arrange + var helper = CreateUrlHelper(appRoot: string.Empty, host: "www.mysite.com", protocol: null); + + // Act + var result = helper.IsLocalUrl(url); + + // Assert + Assert.False(result); + } + [Fact] public void RouteUrlWithDictionary() { From 8418ef66e33d03e6a5cff3d27b1b04aaa1ca5511 Mon Sep 17 00:00:00 2001 From: Mackinnon Buck Date: Thu, 3 Sep 2020 10:29:47 -0700 Subject: [PATCH 033/187] Various virtualization improvements. Fixes #25535 (#25260) * Use ItemSize if it's close to the calculated item size. * Update WeatherForecastService.cs * Improved item size calculation. * Always use calculated item size * Disable overflow anchoring on scroll containers (except the document itself) * Update JS files following rebase * Apply overflow anchor fix to document element too * Add OverscanCount parameter Co-authored-by: Steve Sanderson --- .../Web.JS/dist/Release/blazor.server.js | 2 +- .../Web.JS/dist/Release/blazor.webassembly.js | 2 +- src/Components/Web.JS/src/Virtualize.ts | 14 +++++++++++--- .../Web/src/Virtualization/Virtualize.cs | 13 +++++++++++-- 4 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/Components/Web.JS/dist/Release/blazor.server.js b/src/Components/Web.JS/dist/Release/blazor.server.js index 4256e35b98..57c2416673 100644 --- a/src/Components/Web.JS/dist/Release/blazor.server.js +++ b/src/Components/Web.JS/dist/Release/blazor.server.js @@ -5,7 +5,7 @@ * @author Feross Aboukhadijeh * @license MIT */ -var r=n(54),o=n(55),i=n(56);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function d(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return F(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return O(this,t,n);case"utf8":case"utf-8":return k(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return P(this,t,n);case"base64":return C(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,o);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,o){var i,a=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,n/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=n;is&&(n=s-c),i=n;i>=0;i--){for(var f=!0,h=0;ho&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function C(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function k(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o239?4:u>223?3:u>191?2:1;if(o+f<=n)switch(f){case 1:u<128&&(l=u);break;case 2:128==(192&(i=e[o+1]))&&(c=(31&u)<<6|63&i)>127&&(l=c);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(c=(15&u)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(c=(15&u)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&c<1114112&&(l=c)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},c.prototype.compare=function(e,t,n,r,o){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),u=this.slice(r,o),l=e.slice(t,n),f=0;fo)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return m(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return E(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return _(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;or)&&(n=r);for(var o="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function D(e,t,n,r,o,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function A(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o>>8*(r?o:1-o)}function M(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o>>8*(r?o:3-o)&255}function L(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function j(e,t,n,r,i){return i||L(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function B(e,t,n,r,i){return i||L(e,0,n,8),o.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(o*=256);)r+=this[e+--t]*o;return r},c.prototype.readUInt8=function(e,t){return t||x(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||x(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||x(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||x(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||x(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||x(e,t,this.length);for(var r=this[e],o=1,i=0;++i=(o*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||x(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return t||x(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||x(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||x(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||x(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||x(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||x(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||x(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||x(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||x(e,8,this.length),o.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||D(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):A(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):A(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);D(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);D(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):A(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):A(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return j(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return j(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return B(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+n];else if(i<1e3||!c.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function H(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(N,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function W(e,t,n,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(8))},function(e,t,n){"use strict";var r=n(14).Buffer,o=n(57),i=n(22),a=n(70),s=n(73),c=n(74);e.exports=function(e){var t=[],n=[];return{encode:c(t,(e=e||{forceFloat64:!1,compatibilityMode:!1,disableTimestampEncoding:!1}).forceFloat64,e.compatibilityMode,e.disableTimestampEncoding),decode:s(n),register:function(e,t,n,a){return o(t,"must have a constructor"),o(n,"must have an encode function"),o(e>=0,"must have a non-negative type"),o(a,"must have a decode function"),this.registerEncoder((function(e){return e instanceof t}),(function(t){var o=i(),a=r.allocUnsafe(1);return a.writeInt8(e,0),o.append(a),o.append(n(t)),o})),this.registerDecoder(e,a),this},registerEncoder:function(e,n){return o(e,"must have an encode function"),o(n,"must have an encode function"),t.push({check:e,encode:n}),this},registerDecoder:function(e,t){return o(e>=0,"must have a non-negative type"),o(t,"must have a decode function"),n.push({type:e,decode:t}),this},encoder:a.encoder,decoder:a.decoder,buffer:!0,type:"msgpack5",IncompleteBufferError:s.IncompleteBufferError}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(25),n(17);var r=n(26),o=n(7),i={},a=!1;function s(e,t,n){var o=i[e];o||(o=i[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=s,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");s(n||0,o.toLogicalElement(r,!0),t)},t.getRendererer=function(e){return i[e]},t.renderBatch=function(e,t){var n=i[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),s=r.values(o),c=r.count(o),u=t.referenceFrames(),l=r.values(u),f=t.diffReader,h=0;h1)for(var n=1;n0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var u,l;s.attachDebuggerHotkey(e),window.Browser={init:function(){}},u=function(){window.Module=function(e,t,n){var u=this,l=e.bootConfig.resources,f=window.Module||{},h=["DEBUGGING ENABLED"];f.print=function(e){return h.indexOf(e)<0&&console.log(e)},f.printErr=function(e){console.error(e),c.showErrorNotification()},f.preRun=f.preRun||[],f.postRun=f.postRun||[],f.preloadPlugins=[];var d,b,m=e.loadResources(l.assembly,(function(e){return"_framework/"+e}),"assembly"),w=e.loadResources(l.pdb||{},(function(e){return"_framework/"+e}),"pdb"),E=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");return e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.blat")&&(d=e.loadResource("dotnet.timezones.blat","_framework/dotnet.timezones.blat",e.bootConfig.resources.runtime["dotnet.timezones.blat"],"globalization")),e.bootConfig.resources.runtime.hasOwnProperty("icudt.dat")&&(b=e.loadResource("icudt.dat","_framework/icudt.dat",e.bootConfig.resources.runtime["icudt.dat"],"globalization")),f.instantiateWasm=function(e,t){return r(u,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,E];case 1:return[4,y(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),f.printErr(r),r;case 4:return t(n),[2]}}))})),[]},f.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],d&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),Module.FS_createPath("/","usr",!0,!0),Module.FS_createPath("/usr/","share",!0,!0),Module.FS_createPath("/usr/share/","zoneinfo",!0,!0),MONO.mono_wasm_load_data_archive(new Uint8Array(n),"/usr/share/zoneinfo/"),removeRunDependency(t),[2]}}))}))}(d),b?function(e){r(this,void 0,void 0,(function(){var t,n,r,i,a;return o(this,(function(o){switch(o.label){case 0:return t="blazor:icudata",addRunDependency(t),[4,e.response];case 1:return n=o.sent(),i=Uint8Array.bind,[4,n.arrayBuffer()];case 2:if(r=new(i.apply(Uint8Array,[void 0,o.sent()])),a=MONO.mono_wasm_load_bytes_into_heap(r),!MONO.mono_wasm_load_icu_data(a))throw new Error("Error loading ICU asset.");return removeRunDependency(t),[2]}}))}))}(b):MONO.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT","1"),m.forEach((function(e){return S(e,function(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}(e.name,".dll"))})),w.forEach((function(e){return S(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){f.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources;if(i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(u,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return h(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>l)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*u+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return h(e+(t||0))},readStringField:function(e,t,n){var r,o=h(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return f?void 0===(r=f.stringCache.get(o))&&(r=BINDING.conv_string(o),f.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return v(),f=new b},invokeWhenHeapUnlocked:function(e){f?f.enqueuePostReleaseAction(e):e()}};var p=document.createElement("a");function d(e){return e+12}function g(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function y(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function v(){if(f)throw new Error("Assertion failed - heap is currently locked")}var b=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(f!==this)throw new Error("Trying to release a lock which isn't current");for(f=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),v()}},e}()},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]this.length)&&(r=this.length),n>=this.length)return e||i.alloc(0);if(r<=0)return e||i.alloc(0);var o,a,s=!!e,c=this._offset(n),u=r-n,l=u,f=s&&t||0,h=c[1];if(0===n&&r==this.length){if(!s)return 1===this._bufs.length?this._bufs[0]:i.concat(this._bufs,this.length);for(a=0;a(o=this._bufs[a].length-h))){this._bufs[a].copy(e,f,h,h+l);break}this._bufs[a].copy(e,f,h),f+=o,l-=o,h&&(h=0)}return e},a.prototype.shallowSlice=function(e,t){e=e||0,t=t||this.length,e<0&&(e+=this.length),t<0&&(t+=this.length);var n=this._offset(e),r=this._offset(t),o=this._bufs.slice(n[0],r[0]+1);return 0==r[1]?o.pop():o[o.length-1]=o[o.length-1].slice(0,r[1]),0!=n[1]&&(o[0]=o[0].slice(n[1])),new a(o)},a.prototype.toString=function(e,t,n){return this.slice(t,n).toString(e)},a.prototype.consume=function(e){for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},a.prototype.duplicate=function(){for(var e=0,t=new a;e0&&e.invokeMethodAsync("OnSpacerAfterVisible",r.boundingClientRect.bottom-r.intersectionRect.bottom,i,a)}}))}),{root:o(t),rootMargin:i+"px"});a.observe(t),a.observe(n);var s=u(t),c=u(n);function u(e){var t=new MutationObserver((function(){a.unobserve(e),a.observe(e)}));return t.observe(e,{attributes:!0}),t}r[e._id]={intersectionObserver:a,mutationObserverBefore:s,mutationObserverAfter:c}},dispose:function(e){var t=r[e._id];t&&(t.intersectionObserver.disconnect(),t.mutationObserverBefore.disconnect(),t.mutationObserverAfter.disconnect(),e.dispose(),delete r[e._id])}};var r={};function o(e){return e?"visible"!==getComputedStyle(e).overflowY?e:o(e.parentElement):null}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1].*)$/;function i(e,t){var n=e.currentElement;if(n&&n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r.groups&&r.groups.descriptor;if(!i)return;try{var s=function(e){var t=JSON.parse(e),n=t.type;if("server"!==n&&"webassembly"!==n)throw new Error("Invalid component type '"+n+"'.");return t}(i);switch(t){case"webassembly":return function(e,t,n){var r=e.type,o=e.assembly,i=e.typeName,s=e.parameterDefinitions,c=e.parameterValues,u=e.prerenderId;if("webassembly"!==r)return;if(!o)throw new Error("assembly must be defined when using a descriptor.");if(!i)throw new Error("typeName must be defined when using a descriptor.");if(u){var l=a(u,n);if(!l)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:c&&atob(c),start:t,prerenderId:u,end:l}}return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:c&&atob(c),start:t}}(s,n,e);case"server":return function(e,t,n){var r=e.type,o=e.descriptor,i=e.sequence,s=e.prerenderId;if("server"!==r)return;if(!o)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===i)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(i))throw new Error("Error parsing the sequence '"+i+"' for component '"+JSON.stringify(e)+"'");if(s){var c=a(s,n);if(!c)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,sequence:i,descriptor:o,start:t,prerenderId:s,end:c}}return{type:r,sequence:i,descriptor:o,start:t}}(s,n,e)}}catch(e){throw new Error("Found malformed component comment at "+n.textContent)}}}function a(e,t){for(;t.next()&&t.currentElement;){var n=t.currentElement;if(n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r[1];if(i)return s(i,e),n}}}function s(e,t){var n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error("Invalid end of component comment: '"+e+"'");var r=n.prerenderId;if(!r)throw new Error("End of component comment must have a value for the prerendered property: '"+e+"'");if(r!==t)throw new Error("End of component comment prerendered property must match the start comment prerender id: '"+t+"', '"+r+"'")}var c=function(){function e(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}return e.prototype.next=function(){return this.currentIndex++,this.currentIndex=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),c=r[n];n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(n)?r.showHidden=n:n&&t._extend(r,n),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=c),l(r,e,r.depth)}function c(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function u(e,t){return e}function l(e,n,r){if(e.customInspect&&n&&_(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,e);return v(o)||(o=l(e,o,r)),o}var i=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(y(t))return e.stylize(""+t,"number");if(d(t))return e.stylize(""+t,"boolean");if(g(t))return e.stylize("null","null")}(e,n);if(i)return i;var a=Object.keys(n),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),S(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return f(n);if(0===a.length){if(_(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(m(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(E(n))return e.stylize(Date.prototype.toString.call(n),"date");if(S(n))return f(n)}var u,w="",I=!1,C=["{","}"];(p(n)&&(I=!0,C=["[","]"]),_(n))&&(w=" [Function"+(n.name?": "+n.name:"")+"]");return m(n)&&(w=" "+RegExp.prototype.toString.call(n)),E(n)&&(w=" "+Date.prototype.toUTCString.call(n)),S(n)&&(w=" "+f(n)),0!==a.length||I&&0!=n.length?r<0?m(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=I?function(e,t,n,r,o){for(var i=[],a=0,s=t.length;a=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,w,C)):C[0]+w+C[1]}function f(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,n,r,o,i){var a,s,c;if((c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),P(r,o)||(a="["+o+"]"),s||(e.seen.indexOf(c.value)<0?(s=g(n)?l(e,c.value,null):l(e,c.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),b(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function p(e){return Array.isArray(e)}function d(e){return"boolean"==typeof e}function g(e){return null===e}function y(e){return"number"==typeof e}function v(e){return"string"==typeof e}function b(e){return void 0===e}function m(e){return w(e)&&"[object RegExp]"===I(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===I(e)}function S(e){return w(e)&&("[object Error]"===I(e)||e instanceof Error)}function _(e){return"function"==typeof e}function I(e){return Object.prototype.toString.call(e)}function C(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(n){if(b(i)&&(i=e.env.NODE_DEBUG||""),n=n.toUpperCase(),!a[n])if(new RegExp("\\b"+n+"\\b","i").test(i)){var r=e.pid;a[n]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",n,r,e)}}else a[n]=function(){};return a[n]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=p,t.isBoolean=d,t.isNull=g,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=v,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=m,t.isObject=w,t.isDate=E,t.isError=S,t.isFunction=_,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(59);var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function T(){var e=new Date,t=[C(e.getHours()),C(e.getMinutes()),C(e.getSeconds())].join(":");return[e.getDate(),k[e.getMonth()],t].join(" ")}function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",T(),t.format.apply(t,arguments))},t.inherits=n(60),t._extend=function(e,t){if(!t||!w(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var O="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function R(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(O&&e[O]){var t;if("function"!=typeof(t=e[O]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,O,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),o=[],i=0;i0?("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===u.prototype||(t=function(e){return u.from(e)}(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):E(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?E(e,a,t,!1):C(e,a)):E(e,a,t,!1))):r||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function _(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(p("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(I,e):I(e))}function I(e){p("emit readable"),e.emit("readable"),O(e)}function C(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(k,e,t))}function k(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;ei.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++r}return t.length-=r,o}(e,t):function(e,t){var n=u.allocUnsafe(e),r=t.head,o=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,a),0===(e-=a)){a===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++o}return t.length-=o,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function x(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(D,t,e))}function D(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function A(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return p("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?x(this):_(this),null;if(0===(e=S(e,t))&&t.ended)return 0===t.length&&x(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e0?R(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&x(this)),null!==r&&this.emit("data",r),r},m.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},m.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,p("pipe count=%d opts=%j",i.pipesCount,t);var c=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?l:m;function u(t,r){p("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,p("cleanup"),e.removeListener("close",v),e.removeListener("finish",b),e.removeListener("drain",f),e.removeListener("error",y),e.removeListener("unpipe",u),n.removeListener("end",l),n.removeListener("end",m),n.removeListener("data",g),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function l(){p("onend"),e.end()}i.endEmitted?o.nextTick(c):n.once("end",c),e.on("unpipe",u);var f=function(e){return function(){var t=e._readableState;p("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,O(e))}}(n);e.on("drain",f);var h=!1;var d=!1;function g(t){p("ondata"),d=!1,!1!==e.write(t)||d||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==A(i.pipes,e))&&!h&&(p("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,d=!0),n.pause())}function y(t){p("onerror",t),m(),e.removeListener("error",y),0===s(e,"error")&&e.emit("error",t)}function v(){e.removeListener("finish",b),m()}function b(){p("onfinish"),e.removeListener("close",v),m()}function m(){p("unpipe"),n.unpipe(e)}return n.on("data",g),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",y),e.once("close",v),e.once("finish",b),e.emit("pipe",n),i.flowing||(p("pipe resume"),n.resume()),e},m.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i0&&a.length>o&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,s=c,console&&console.warn&&console.warn(s)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=h.bind(r);return o.listener=n,r.wrapFn=o,o}function d(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var c=o[e];if(void 0===c)return!1;if("function"==typeof c)i(c,this,t);else{var u=c.length,l=y(c,u);for(n=0;n=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},s.prototype.listeners=function(e){return d(this,e,!0)},s.prototype.rawListeners=function(e){return d(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){e.exports=n(40).EventEmitter},function(e,t,n){"use strict";var r=n(23);function o(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(o,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?(r.nextTick(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){"use strict";var r=n(66).Buffer,o=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=u,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0)return o>0&&(e.lastNeed=o-1),o;if(--r=0)return o>0&&(e.lastNeed=o-2),o;if(--r=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";(function(t,r,o){var i=n(23);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=b;var s,c=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;b.WritableState=v;var u=n(19);u.inherits=n(15);var l={deprecate:n(69)},f=n(41),h=n(14).Buffer,p=o.Uint8Array||function(){};var d,g=n(42);function y(){}function v(e,t){s=s||n(9),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,u=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(I,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),I(e,t))}(e,n,r,t,o);else{var a=S(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||E(e,n),r?c(w,e,n,a,o):w(e,n,a,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(9),!(d.call(b,this)||this instanceof s))return new b(e);this._writableState=new v(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function m(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function w(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),I(e,t)}function E(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=n;for(var s=0,c=!0;n;)o[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;o.allBuffers=c,m(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,l=n.encoding,f=n.callback;if(m(e,t,!1,t.objectMode?1:u.length,u,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function S(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function _(e,t){e._final((function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),I(e,t)}))}function I(e,t){var n=S(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(_,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}u.inherits(b,f),v.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(v.prototype,"buffer",{get:l.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(d=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!d.call(this,e)||this===b&&(e&&e._writableState instanceof v)}})):d=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,o=this._writableState,a=!1,s=!o.objectMode&&(r=e,h.isBuffer(r)||r instanceof p);return s&&!h.isBuffer(e)&&(e=function(e){return h.from(e)}(e)),"function"==typeof t&&(n=t,t=null),s?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=y),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),i.nextTick(r,a),o=!1),o}(this,o,e,n))&&(o.pendingcb++,a=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=h.from(t,n));return t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var c=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,I(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=g.destroy,b.prototype._undestroy=g.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(13),n(67).setImmediate,n(8))},function(e,t,n){"use strict";e.exports=a;var r=n(9),o=n(19);function i(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.lengths?a.slice(s).buffer:null}else{var c,u=t;if(-1===(c=u.indexOf(r.a.RecordSeparator)))throw new Error("Message is incomplete.");s=c+1;n=u.substring(0,s),i=u.length>s?u.substring(s):null}var l=r.a.parse(n),f=JSON.parse(l[0]);if(f.type)throw new Error("Expected a handshake response from the server.");return[i,f]},t}()}).call(this,n(10).Buffer)},,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},a=this&&this.__spread||function(){for(var e=[],t=0;t0?a-4:a;for(n=0;n>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===s&&(t=o[e.charCodeAt(n)]<<2|o[e.charCodeAt(n+1)]>>4,c[l++]=255&t);1===s&&(t=o[e.charCodeAt(n)]<<10|o[e.charCodeAt(n+1)]<<4|o[e.charCodeAt(n+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;as?s:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,c=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var o,i,a=[],s=t;s>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,c=(1<>1,l=-7,f=n?o-1:0,h=n?-1:1,p=e[t+f];for(f+=h,i=p&(1<<-l)-1,p>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=h,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=r;l>0;a=256*a+e[t+f],f+=h,l-=8);if(0===i)i=1-u;else{if(i===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),i-=u}return(p?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,c,u=8*i-o-1,l=(1<>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,d=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+f>=1?h/c:h*Math.pow(2,1-f))*c>=2&&(a++,c/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*c-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[n+p]=255&s,p+=d,s/=256,o-=8);for(a=a<0;e[n+p]=255&a,p+=d,a/=256,u-=8);e[n+p-d]|=128*g}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";(function(t){var r=n(58); +var r=n(54),o=n(55),i=n(56);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function d(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return F(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return O(this,t,n);case"utf8":case"utf-8":return k(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return P(this,t,n);case"base64":return C(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,o);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,o){var i,a=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,n/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=n;is&&(n=s-c),i=n;i>=0;i--){for(var f=!0,h=0;ho&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function C(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function k(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o239?4:u>223?3:u>191?2:1;if(o+f<=n)switch(f){case 1:u<128&&(l=u);break;case 2:128==(192&(i=e[o+1]))&&(c=(31&u)<<6|63&i)>127&&(l=c);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(c=(15&u)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(c=(15&u)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&c<1114112&&(l=c)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},c.prototype.compare=function(e,t,n,r,o){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),u=this.slice(r,o),l=e.slice(t,n),f=0;fo)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return m(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return E(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return _(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;or)&&(n=r);for(var o="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function D(e,t,n,r,o,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function A(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o>>8*(r?o:1-o)}function M(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o>>8*(r?o:3-o)&255}function L(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function j(e,t,n,r,i){return i||L(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function B(e,t,n,r,i){return i||L(e,0,n,8),o.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(o*=256);)r+=this[e+--t]*o;return r},c.prototype.readUInt8=function(e,t){return t||x(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||x(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||x(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||x(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||x(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||x(e,t,this.length);for(var r=this[e],o=1,i=0;++i=(o*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||x(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return t||x(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||x(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||x(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||x(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||x(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||x(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||x(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||x(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||x(e,8,this.length),o.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||D(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):A(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):A(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);D(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);D(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):A(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):A(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return j(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return j(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return B(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+n];else if(i<1e3||!c.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function H(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(N,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function W(e,t,n,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(8))},function(e,t,n){"use strict";var r=n(14).Buffer,o=n(57),i=n(22),a=n(70),s=n(73),c=n(74);e.exports=function(e){var t=[],n=[];return{encode:c(t,(e=e||{forceFloat64:!1,compatibilityMode:!1,disableTimestampEncoding:!1}).forceFloat64,e.compatibilityMode,e.disableTimestampEncoding),decode:s(n),register:function(e,t,n,a){return o(t,"must have a constructor"),o(n,"must have an encode function"),o(e>=0,"must have a non-negative type"),o(a,"must have a decode function"),this.registerEncoder((function(e){return e instanceof t}),(function(t){var o=i(),a=r.allocUnsafe(1);return a.writeInt8(e,0),o.append(a),o.append(n(t)),o})),this.registerDecoder(e,a),this},registerEncoder:function(e,n){return o(e,"must have an encode function"),o(n,"must have an encode function"),t.push({check:e,encode:n}),this},registerDecoder:function(e,t){return o(e>=0,"must have a non-negative type"),o(t,"must have a decode function"),n.push({type:e,decode:t}),this},encoder:a.encoder,decoder:a.decoder,buffer:!0,type:"msgpack5",IncompleteBufferError:s.IncompleteBufferError}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(25),n(17);var r=n(26),o=n(7),i={},a=!1;function s(e,t,n){var o=i[e];o||(o=i[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=s,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");s(n||0,o.toLogicalElement(r,!0),t)},t.getRendererer=function(e){return i[e]},t.renderBatch=function(e,t){var n=i[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),s=r.values(o),c=r.count(o),u=t.referenceFrames(),l=r.values(u),f=t.diffReader,h=0;h1)for(var n=1;n0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var u,l;s.attachDebuggerHotkey(e),window.Browser={init:function(){}},u=function(){window.Module=function(e,t,n){var u=this,l=e.bootConfig.resources,f=window.Module||{},h=["DEBUGGING ENABLED"];f.print=function(e){return h.indexOf(e)<0&&console.log(e)},f.printErr=function(e){console.error(e),c.showErrorNotification()},f.preRun=f.preRun||[],f.postRun=f.postRun||[],f.preloadPlugins=[];var d,b,m=e.loadResources(l.assembly,(function(e){return"_framework/"+e}),"assembly"),w=e.loadResources(l.pdb||{},(function(e){return"_framework/"+e}),"pdb"),E=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");return e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.blat")&&(d=e.loadResource("dotnet.timezones.blat","_framework/dotnet.timezones.blat",e.bootConfig.resources.runtime["dotnet.timezones.blat"],"globalization")),e.bootConfig.resources.runtime.hasOwnProperty("icudt.dat")&&(b=e.loadResource("icudt.dat","_framework/icudt.dat",e.bootConfig.resources.runtime["icudt.dat"],"globalization")),f.instantiateWasm=function(e,t){return r(u,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,E];case 1:return[4,y(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),f.printErr(r),r;case 4:return t(n),[2]}}))})),[]},f.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],d&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),Module.FS_createPath("/","usr",!0,!0),Module.FS_createPath("/usr/","share",!0,!0),Module.FS_createPath("/usr/share/","zoneinfo",!0,!0),MONO.mono_wasm_load_data_archive(new Uint8Array(n),"/usr/share/zoneinfo/"),removeRunDependency(t),[2]}}))}))}(d),b?function(e){r(this,void 0,void 0,(function(){var t,n,r,i,a;return o(this,(function(o){switch(o.label){case 0:return t="blazor:icudata",addRunDependency(t),[4,e.response];case 1:return n=o.sent(),i=Uint8Array.bind,[4,n.arrayBuffer()];case 2:if(r=new(i.apply(Uint8Array,[void 0,o.sent()])),a=MONO.mono_wasm_load_bytes_into_heap(r),!MONO.mono_wasm_load_icu_data(a))throw new Error("Error loading ICU asset.");return removeRunDependency(t),[2]}}))}))}(b):MONO.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT","1"),m.forEach((function(e){return S(e,function(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}(e.name,".dll"))})),w.forEach((function(e){return S(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){f.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources;if(i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(u,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return h(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>l)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*u+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return h(e+(t||0))},readStringField:function(e,t,n){var r,o=h(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return f?void 0===(r=f.stringCache.get(o))&&(r=BINDING.conv_string(o),f.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return v(),f=new b},invokeWhenHeapUnlocked:function(e){f?f.enqueuePostReleaseAction(e):e()}};var p=document.createElement("a");function d(e){return e+12}function g(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function y(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function v(){if(f)throw new Error("Assertion failed - heap is currently locked")}var b=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(f!==this)throw new Error("Trying to release a lock which isn't current");for(f=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),v()}},e}()},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]this.length)&&(r=this.length),n>=this.length)return e||i.alloc(0);if(r<=0)return e||i.alloc(0);var o,a,s=!!e,c=this._offset(n),u=r-n,l=u,f=s&&t||0,h=c[1];if(0===n&&r==this.length){if(!s)return 1===this._bufs.length?this._bufs[0]:i.concat(this._bufs,this.length);for(a=0;a(o=this._bufs[a].length-h))){this._bufs[a].copy(e,f,h,h+l);break}this._bufs[a].copy(e,f,h),f+=o,l-=o,h&&(h=0)}return e},a.prototype.shallowSlice=function(e,t){e=e||0,t=t||this.length,e<0&&(e+=this.length),t<0&&(t+=this.length);var n=this._offset(e),r=this._offset(t),o=this._bufs.slice(n[0],r[0]+1);return 0==r[1]?o.pop():o[o.length-1]=o[o.length-1].slice(0,r[1]),0!=n[1]&&(o[0]=o[0].slice(n[1])),new a(o)},a.prototype.toString=function(e,t,n){return this.slice(t,n).toString(e)},a.prototype.consume=function(e){for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},a.prototype.duplicate=function(){for(var e=0,t=new a;e0&&e.invokeMethodAsync("OnSpacerAfterVisible",r.boundingClientRect.bottom-r.intersectionRect.bottom,a,s)}}))}),{root:i,rootMargin:o+"px"});a.observe(t),a.observe(n);var s=u(t),c=u(n);function u(e){var t=new MutationObserver((function(){a.unobserve(e),a.observe(e)}));return t.observe(e,{attributes:!0}),t}r[e._id]={intersectionObserver:a,mutationObserverBefore:s,mutationObserverAfter:c}},dispose:function(e){var t=r[e._id];t&&(t.intersectionObserver.disconnect(),t.mutationObserverBefore.disconnect(),t.mutationObserverAfter.disconnect(),e.dispose(),delete r[e._id])}};var r={}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1].*)$/;function i(e,t){var n=e.currentElement;if(n&&n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r.groups&&r.groups.descriptor;if(!i)return;try{var s=function(e){var t=JSON.parse(e),n=t.type;if("server"!==n&&"webassembly"!==n)throw new Error("Invalid component type '"+n+"'.");return t}(i);switch(t){case"webassembly":return function(e,t,n){var r=e.type,o=e.assembly,i=e.typeName,s=e.parameterDefinitions,c=e.parameterValues,u=e.prerenderId;if("webassembly"!==r)return;if(!o)throw new Error("assembly must be defined when using a descriptor.");if(!i)throw new Error("typeName must be defined when using a descriptor.");if(u){var l=a(u,n);if(!l)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:c&&atob(c),start:t,prerenderId:u,end:l}}return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:c&&atob(c),start:t}}(s,n,e);case"server":return function(e,t,n){var r=e.type,o=e.descriptor,i=e.sequence,s=e.prerenderId;if("server"!==r)return;if(!o)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===i)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(i))throw new Error("Error parsing the sequence '"+i+"' for component '"+JSON.stringify(e)+"'");if(s){var c=a(s,n);if(!c)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,sequence:i,descriptor:o,start:t,prerenderId:s,end:c}}return{type:r,sequence:i,descriptor:o,start:t}}(s,n,e)}}catch(e){throw new Error("Found malformed component comment at "+n.textContent)}}}function a(e,t){for(;t.next()&&t.currentElement;){var n=t.currentElement;if(n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r[1];if(i)return s(i,e),n}}}function s(e,t){var n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error("Invalid end of component comment: '"+e+"'");var r=n.prerenderId;if(!r)throw new Error("End of component comment must have a value for the prerendered property: '"+e+"'");if(r!==t)throw new Error("End of component comment prerendered property must match the start comment prerender id: '"+t+"', '"+r+"'")}var c=function(){function e(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}return e.prototype.next=function(){return this.currentIndex++,this.currentIndex=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),c=r[n];n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(n)?r.showHidden=n:n&&t._extend(r,n),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=c),l(r,e,r.depth)}function c(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function u(e,t){return e}function l(e,n,r){if(e.customInspect&&n&&_(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,e);return v(o)||(o=l(e,o,r)),o}var i=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(y(t))return e.stylize(""+t,"number");if(d(t))return e.stylize(""+t,"boolean");if(g(t))return e.stylize("null","null")}(e,n);if(i)return i;var a=Object.keys(n),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),S(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return f(n);if(0===a.length){if(_(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(m(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(E(n))return e.stylize(Date.prototype.toString.call(n),"date");if(S(n))return f(n)}var u,w="",I=!1,C=["{","}"];(p(n)&&(I=!0,C=["[","]"]),_(n))&&(w=" [Function"+(n.name?": "+n.name:"")+"]");return m(n)&&(w=" "+RegExp.prototype.toString.call(n)),E(n)&&(w=" "+Date.prototype.toUTCString.call(n)),S(n)&&(w=" "+f(n)),0!==a.length||I&&0!=n.length?r<0?m(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=I?function(e,t,n,r,o){for(var i=[],a=0,s=t.length;a=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,w,C)):C[0]+w+C[1]}function f(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,n,r,o,i){var a,s,c;if((c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),P(r,o)||(a="["+o+"]"),s||(e.seen.indexOf(c.value)<0?(s=g(n)?l(e,c.value,null):l(e,c.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),b(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function p(e){return Array.isArray(e)}function d(e){return"boolean"==typeof e}function g(e){return null===e}function y(e){return"number"==typeof e}function v(e){return"string"==typeof e}function b(e){return void 0===e}function m(e){return w(e)&&"[object RegExp]"===I(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===I(e)}function S(e){return w(e)&&("[object Error]"===I(e)||e instanceof Error)}function _(e){return"function"==typeof e}function I(e){return Object.prototype.toString.call(e)}function C(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(n){if(b(i)&&(i=e.env.NODE_DEBUG||""),n=n.toUpperCase(),!a[n])if(new RegExp("\\b"+n+"\\b","i").test(i)){var r=e.pid;a[n]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",n,r,e)}}else a[n]=function(){};return a[n]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=p,t.isBoolean=d,t.isNull=g,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=v,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=m,t.isObject=w,t.isDate=E,t.isError=S,t.isFunction=_,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(59);var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function T(){var e=new Date,t=[C(e.getHours()),C(e.getMinutes()),C(e.getSeconds())].join(":");return[e.getDate(),k[e.getMonth()],t].join(" ")}function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",T(),t.format.apply(t,arguments))},t.inherits=n(60),t._extend=function(e,t){if(!t||!w(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var O="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function R(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(O&&e[O]){var t;if("function"!=typeof(t=e[O]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,O,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),o=[],i=0;i0?("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===u.prototype||(t=function(e){return u.from(e)}(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):E(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?E(e,a,t,!1):C(e,a)):E(e,a,t,!1))):r||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function _(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(p("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(I,e):I(e))}function I(e){p("emit readable"),e.emit("readable"),O(e)}function C(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(k,e,t))}function k(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;ei.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++r}return t.length-=r,o}(e,t):function(e,t){var n=u.allocUnsafe(e),r=t.head,o=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,a),0===(e-=a)){a===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++o}return t.length-=o,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function x(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(D,t,e))}function D(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function A(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return p("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?x(this):_(this),null;if(0===(e=S(e,t))&&t.ended)return 0===t.length&&x(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e0?R(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&x(this)),null!==r&&this.emit("data",r),r},m.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},m.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,p("pipe count=%d opts=%j",i.pipesCount,t);var c=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?l:m;function u(t,r){p("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,p("cleanup"),e.removeListener("close",v),e.removeListener("finish",b),e.removeListener("drain",f),e.removeListener("error",y),e.removeListener("unpipe",u),n.removeListener("end",l),n.removeListener("end",m),n.removeListener("data",g),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function l(){p("onend"),e.end()}i.endEmitted?o.nextTick(c):n.once("end",c),e.on("unpipe",u);var f=function(e){return function(){var t=e._readableState;p("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,O(e))}}(n);e.on("drain",f);var h=!1;var d=!1;function g(t){p("ondata"),d=!1,!1!==e.write(t)||d||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==A(i.pipes,e))&&!h&&(p("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,d=!0),n.pause())}function y(t){p("onerror",t),m(),e.removeListener("error",y),0===s(e,"error")&&e.emit("error",t)}function v(){e.removeListener("finish",b),m()}function b(){p("onfinish"),e.removeListener("close",v),m()}function m(){p("unpipe"),n.unpipe(e)}return n.on("data",g),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",y),e.once("close",v),e.once("finish",b),e.emit("pipe",n),i.flowing||(p("pipe resume"),n.resume()),e},m.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i0&&a.length>o&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,s=c,console&&console.warn&&console.warn(s)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=h.bind(r);return o.listener=n,r.wrapFn=o,o}function d(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var c=o[e];if(void 0===c)return!1;if("function"==typeof c)i(c,this,t);else{var u=c.length,l=y(c,u);for(n=0;n=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},s.prototype.listeners=function(e){return d(this,e,!0)},s.prototype.rawListeners=function(e){return d(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){e.exports=n(40).EventEmitter},function(e,t,n){"use strict";var r=n(23);function o(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(o,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?(r.nextTick(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){"use strict";var r=n(66).Buffer,o=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=u,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0)return o>0&&(e.lastNeed=o-1),o;if(--r=0)return o>0&&(e.lastNeed=o-2),o;if(--r=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";(function(t,r,o){var i=n(23);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=b;var s,c=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;b.WritableState=v;var u=n(19);u.inherits=n(15);var l={deprecate:n(69)},f=n(41),h=n(14).Buffer,p=o.Uint8Array||function(){};var d,g=n(42);function y(){}function v(e,t){s=s||n(9),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,u=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(I,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),I(e,t))}(e,n,r,t,o);else{var a=S(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||E(e,n),r?c(w,e,n,a,o):w(e,n,a,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(9),!(d.call(b,this)||this instanceof s))return new b(e);this._writableState=new v(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function m(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function w(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),I(e,t)}function E(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=n;for(var s=0,c=!0;n;)o[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;o.allBuffers=c,m(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,l=n.encoding,f=n.callback;if(m(e,t,!1,t.objectMode?1:u.length,u,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function S(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function _(e,t){e._final((function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),I(e,t)}))}function I(e,t){var n=S(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(_,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}u.inherits(b,f),v.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(v.prototype,"buffer",{get:l.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(d=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!d.call(this,e)||this===b&&(e&&e._writableState instanceof v)}})):d=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,o=this._writableState,a=!1,s=!o.objectMode&&(r=e,h.isBuffer(r)||r instanceof p);return s&&!h.isBuffer(e)&&(e=function(e){return h.from(e)}(e)),"function"==typeof t&&(n=t,t=null),s?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=y),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),i.nextTick(r,a),o=!1),o}(this,o,e,n))&&(o.pendingcb++,a=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=h.from(t,n));return t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var c=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,I(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=g.destroy,b.prototype._undestroy=g.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(13),n(67).setImmediate,n(8))},function(e,t,n){"use strict";e.exports=a;var r=n(9),o=n(19);function i(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.lengths?a.slice(s).buffer:null}else{var c,u=t;if(-1===(c=u.indexOf(r.a.RecordSeparator)))throw new Error("Message is incomplete.");s=c+1;n=u.substring(0,s),i=u.length>s?u.substring(s):null}var l=r.a.parse(n),f=JSON.parse(l[0]);if(f.type)throw new Error("Expected a handshake response from the server.");return[i,f]},t}()}).call(this,n(10).Buffer)},,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},a=this&&this.__spread||function(){for(var e=[],t=0;t0?a-4:a;for(n=0;n>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===s&&(t=o[e.charCodeAt(n)]<<2|o[e.charCodeAt(n+1)]>>4,c[l++]=255&t);1===s&&(t=o[e.charCodeAt(n)]<<10|o[e.charCodeAt(n+1)]<<4|o[e.charCodeAt(n+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;as?s:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,c=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var o,i,a=[],s=t;s>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,c=(1<>1,l=-7,f=n?o-1:0,h=n?-1:1,p=e[t+f];for(f+=h,i=p&(1<<-l)-1,p>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=h,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=r;l>0;a=256*a+e[t+f],f+=h,l-=8);if(0===i)i=1-u;else{if(i===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),i-=u}return(p?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,c,u=8*i-o-1,l=(1<>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,d=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+f>=1?h/c:h*Math.pow(2,1-f))*c>=2&&(a++,c/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*c-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[n+p]=255&s,p+=d,s/=256,o-=8);for(a=a<0;e[n+p]=255&a,p+=d,a/=256,u-=8);e[n+p-d]|=128*g}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";(function(t){var r=n(58); /*! * The buffer module from node.js, for the browser. * diff --git a/src/Components/Web.JS/dist/Release/blazor.webassembly.js b/src/Components/Web.JS/dist/Release/blazor.webassembly.js index a16c6c4abb..0e35103eef 100644 --- a/src/Components/Web.JS/dist/Release/blazor.webassembly.js +++ b/src/Components/Web.JS/dist/Release/blazor.webassembly.js @@ -1 +1 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=47)}([,,,function(e,t,n){"use strict";var r;n.r(t),n.d(t,"DotNet",(function(){return r})),function(e){var t;window.DotNet=e;var n=[],r=function(){function e(e){this._jsObject=e,this._cachedFunctions=new Map}return e.prototype.findFunction=function(e){var t=this._cachedFunctions.get(e);if(t)return t;var n,r=this._jsObject;if(e.split(".").forEach((function(t){if(!(t in r))throw new Error("Could not find '"+e+"' ('"+t+"' was undefined).");n=r,r=r[t]})),r instanceof Function)return r=r.bind(n),this._cachedFunctions.set(e,r),r;throw new Error("The value '"+e+"' is not a function.")},e.prototype.getWrappedObject=function(){return this._jsObject},e}(),o={},i=((t={})[0]=new r(window),t);i[0]._cachedFunctions.set("import",(function(e){return"string"==typeof e&&e.startsWith("./")&&(e=document.baseURI+e.substr(2)),import(e)}));var a,s=1,u=1,c=null;function l(e){n.push(e)}function f(e){var t;if(e&&"object"==typeof e){i[u]=new r(e);var n=((t={}).__jsObjectId=u,t);return u++,n}throw new Error("Cannot create a JSObjectReference from the value '"+e+"'.")}function d(e){return e?JSON.parse(e,(function(e,t){return n.reduce((function(t,n){return n(e,t)}),t)})):null}function p(e,t,n,r){var o=m();if(o.invokeDotNetFromJS){var i=JSON.stringify(r,_),a=o.invokeDotNetFromJS(e,t,n,i);return a?d(a):null}throw new Error("The current dispatcher does not support synchronous calls from JS to .NET. Use invokeMethodAsync instead.")}function h(e,t,n,r){if(e&&n)throw new Error("For instance method calls, assemblyName should be null. Received '"+e+"'.");var i=s++,a=new Promise((function(e,t){o[i]={resolve:e,reject:t}}));try{var u=JSON.stringify(r,_);m().beginInvokeDotNetFromJS(i,e,t,n,u)}catch(e){v(i,!1,e)}return a}function m(){if(null!==c)return c;throw new Error("No .NET call dispatcher has been set.")}function v(e,t,n){if(!o.hasOwnProperty(e))throw new Error("There is no pending async call with ID "+e+".");var r=o[e];delete o[e],t?r.resolve(n):r.reject(n)}function y(e){return e instanceof Error?e.message+"\n"+e.stack:e?e.toString():"null"}function b(e,t){var n=i[t];if(n)return n.findFunction(e);throw new Error("JS object instance with ID "+t+" does not exist (has it been disposed?).")}function g(e){delete i[e]}e.attachDispatcher=function(e){c=e},e.attachReviver=l,e.invokeMethod=function(e,t){for(var n=[],r=2;r0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(c(i)&&c(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(u(i))throw new Error("Not implemented: moving existing logical children");var a=c(t);if(n0;)e(r,0)}var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=u,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return c(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=c,t.permuteLogicalChildren=function(e,t){var n=c(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=u(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):d(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(25),n(17);var r=n(26),o=n(7),i={},a=!1;function s(e,t,n){var o=i[e];o||(o=i[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=s,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");s(n||0,o.toLogicalElement(r,!0),t)},t.getRendererer=function(e){return i[e]},t.renderBatch=function(e,t){var n=i[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),s=r.values(o),u=r.count(o),c=t.referenceFrames(),l=r.values(c),f=t.diffReader,d=0;d0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var c,l;s.attachDebuggerHotkey(e),window.Browser={init:function(){}},c=function(){window.Module=function(e,t,n){var c=this,l=e.bootConfig.resources,f=window.Module||{},d=["DEBUGGING ENABLED"];f.print=function(e){return d.indexOf(e)<0&&console.log(e)},f.printErr=function(e){console.error(e),u.showErrorNotification()},f.preRun=f.preRun||[],f.postRun=f.postRun||[],f.preloadPlugins=[];var h,b,g=e.loadResources(l.assembly,(function(e){return"_framework/"+e}),"assembly"),w=e.loadResources(l.pdb||{},(function(e){return"_framework/"+e}),"pdb"),E=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");return e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.blat")&&(h=e.loadResource("dotnet.timezones.blat","_framework/dotnet.timezones.blat",e.bootConfig.resources.runtime["dotnet.timezones.blat"],"globalization")),e.bootConfig.resources.runtime.hasOwnProperty("icudt.dat")&&(b=e.loadResource("icudt.dat","_framework/icudt.dat",e.bootConfig.resources.runtime["icudt.dat"],"globalization")),f.instantiateWasm=function(e,t){return r(c,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,E];case 1:return[4,v(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),f.printErr(r),r;case 4:return t(n),[2]}}))})),[]},f.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],h&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),Module.FS_createPath("/","usr",!0,!0),Module.FS_createPath("/usr/","share",!0,!0),Module.FS_createPath("/usr/share/","zoneinfo",!0,!0),MONO.mono_wasm_load_data_archive(new Uint8Array(n),"/usr/share/zoneinfo/"),removeRunDependency(t),[2]}}))}))}(h),b?function(e){r(this,void 0,void 0,(function(){var t,n,r,i,a;return o(this,(function(o){switch(o.label){case 0:return t="blazor:icudata",addRunDependency(t),[4,e.response];case 1:return n=o.sent(),i=Uint8Array.bind,[4,n.arrayBuffer()];case 2:if(r=new(i.apply(Uint8Array,[void 0,o.sent()])),a=MONO.mono_wasm_load_bytes_into_heap(r),!MONO.mono_wasm_load_icu_data(a))throw new Error("Error loading ICU asset.");return removeRunDependency(t),[2]}}))}))}(b):MONO.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT","1"),g.forEach((function(e){return _(e,function(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}(e.name,".dll"))})),w.forEach((function(e){return _(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){f.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources;if(i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(c,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return d(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>l)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*c+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return d(e+(t||0))},readStringField:function(e,t,n){var r,o=d(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return f?void 0===(r=f.stringCache.get(o))&&(r=BINDING.conv_string(o),f.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return y(),f=new b},invokeWhenHeapUnlocked:function(e){f?f.enqueuePostReleaseAction(e):e()}};var p=document.createElement("a");function h(e){return e+12}function m(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function v(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function y(){if(f)throw new Error("Assertion failed - heap is currently locked")}var b=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(f!==this)throw new Error("Trying to release a lock which isn't current");for(f=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),y()}},e}()},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&e.invokeMethodAsync("OnSpacerAfterVisible",r.boundingClientRect.bottom-r.intersectionRect.bottom,i,a)}}))}),{root:o(t),rootMargin:i+"px"});a.observe(t),a.observe(n);var s=c(t),u=c(n);function c(e){var t=new MutationObserver((function(){a.unobserve(e),a.observe(e)}));return t.observe(e,{attributes:!0}),t}r[e._id]={intersectionObserver:a,mutationObserverBefore:s,mutationObserverAfter:u}},dispose:function(e){var t=r[e._id];t&&(t.intersectionObserver.disconnect(),t.mutationObserverBefore.disconnect(),t.mutationObserverAfter.disconnect(),e.dispose(),delete r[e._id])}};var r={};function o(e){return e?"visible"!==getComputedStyle(e).overflowY?e:o(e.parentElement):null}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1].*)$/;function i(e,t){var n=e.currentElement;if(n&&n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r.groups&&r.groups.descriptor;if(!i)return;try{var s=function(e){var t=JSON.parse(e),n=t.type;if("server"!==n&&"webassembly"!==n)throw new Error("Invalid component type '"+n+"'.");return t}(i);switch(t){case"webassembly":return function(e,t,n){var r=e.type,o=e.assembly,i=e.typeName,s=e.parameterDefinitions,u=e.parameterValues,c=e.prerenderId;if("webassembly"!==r)return;if(!o)throw new Error("assembly must be defined when using a descriptor.");if(!i)throw new Error("typeName must be defined when using a descriptor.");if(c){var l=a(c,n);if(!l)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:u&&atob(u),start:t,prerenderId:c,end:l}}return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:u&&atob(u),start:t}}(s,n,e);case"server":return function(e,t,n){var r=e.type,o=e.descriptor,i=e.sequence,s=e.prerenderId;if("server"!==r)return;if(!o)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===i)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(i))throw new Error("Error parsing the sequence '"+i+"' for component '"+JSON.stringify(e)+"'");if(s){var u=a(s,n);if(!u)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,sequence:i,descriptor:o,start:t,prerenderId:s,end:u}}return{type:r,sequence:i,descriptor:o,start:t}}(s,n,e)}}catch(e){throw new Error("Found malformed component comment at "+n.textContent)}}}function a(e,t){for(;t.next()&&t.currentElement;){var n=t.currentElement;if(n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r[1];if(i)return s(i,e),n}}}function s(e,t){var n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error("Invalid end of component comment: '"+e+"'");var r=n.prerenderId;if(!r)throw new Error("End of component comment must have a value for the prerendered property: '"+e+"'");if(r!==t)throw new Error("End of component comment prerendered property must match the start comment prerender id: '"+t+"', '"+r+"'")}var u=function(){function e(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}return e.prototype.next=function(){return this.currentIndex++,this.currentIndex0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var a=n(3);n(24);var s=n(17),u=n(20),c=n(12),l=n(48),f=n(36),d=n(18),p=n(49),h=n(50),m=n(51),v=n(52),y=n(37),b=!1;function g(e){return r(this,void 0,void 0,(function(){var t,n,f,g,E,_,I,C,N,A,S,k=this;return o(this,(function(F){switch(F.label){case 0:if(b)throw new Error("Blazor has already started.");return b=!0,d.setEventDispatcher((function(e,t){c.getRendererer(e.browserRendererId).eventDelegator.getHandler(e.eventHandlerId)&&u.monoPlatform.invokeWhenHeapUnlocked((function(){return a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","DispatchEvent",e,JSON.stringify(t))}))})),window.Blazor._internal.invokeJSFromDotNet=w,t=s.setPlatform(u.monoPlatform),window.Blazor.platform=t,window.Blazor._internal.renderBatch=function(e,t){var n=u.monoPlatform.beginHeapLock();try{c.renderBatch(e,new l.SharedMemoryRenderBatch(t))}finally{n.release()}},n=window.Blazor._internal.navigationManager.getBaseURI,f=window.Blazor._internal.navigationManager.getLocationHref,window.Blazor._internal.navigationManager.getUnmarshalledBaseURI=function(){return BINDING.js_string_to_mono_string(n())},window.Blazor._internal.navigationManager.getUnmarshalledLocationHref=function(){return BINDING.js_string_to_mono_string(f())},window.Blazor._internal.navigationManager.listenForNavigationEvents((function(e,t){return r(k,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return[4,a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChanged",e,t)];case 1:return n.sent(),[2]}}))}))})),g=null==e?void 0:e.environment,E=m.BootConfigResult.initAsync(g),_=y.discoverComponents(document,"webassembly"),I=new v.WebAssemblyComponentAttacher(_),window.Blazor._internal.registeredComponents={getRegisteredComponentsCount:function(){return I.getCount()},getId:function(e){return I.getId(e)},getAssembly:function(e){return BINDING.js_string_to_mono_string(I.getAssembly(e))},getTypeName:function(e){return BINDING.js_string_to_mono_string(I.getTypeName(e))},getParameterDefinitions:function(e){return BINDING.js_string_to_mono_string(I.getParameterDefinitions(e)||"")},getParameterValues:function(e){return BINDING.js_string_to_mono_string(I.getParameterValues(e)||"")}},window.Blazor._internal.attachRootComponentToElement=function(e,t,n){var r=I.resolveRegisteredElement(e);r?c.attachRootComponentToLogicalElement(n,r,t):c.attachRootComponentToElement(e,t,n)},[4,E];case 1:return C=F.sent(),[4,Promise.all([p.WebAssemblyResourceLoader.initAsync(C.bootConfig,e||{}),h.WebAssemblyConfigLoader.initAsync(C)])];case 2:N=i.apply(void 0,[F.sent(),1]),A=N[0],F.label=3;case 3:return F.trys.push([3,5,,6]),[4,t.start(A)];case 4:return F.sent(),[3,6];case 5:throw S=F.sent(),new Error("Failed to start platform. Reason: "+S);case 6:return t.callEntryPoint(A.bootConfig.entryAssembly),[2]}}))}))}function w(e,t,n,r){var o=u.monoPlatform.readStringField(e,0),i=u.monoPlatform.readInt32Field(e,4),s=u.monoPlatform.readStringField(e,8),c=u.monoPlatform.readUint64Field(e,20);if(null!==s){var l=u.monoPlatform.readUint64Field(e,12);if(0!==l)return a.DotNet.jsCallDispatcher.beginInvokeJSFromDotNet(l,o,s,i,c),0;var f=a.DotNet.jsCallDispatcher.invokeJSFromDotNet(o,s,i,c);return null===f?0:BINDING.js_string_to_mono_string(f)}return a.DotNet.jsCallDispatcher.findJSFunction(o,c).call(null,t,n,r)}window.Blazor.start=g,f.shouldAutoStart()&&g().catch((function(e){"undefined"!=typeof Module&&Module.printErr?Module.printErr(e):console.error(e)}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(17),o=function(){function e(e){this.batchAddress=e,this.arrayRangeReader=i,this.arrayBuilderSegmentReader=a,this.diffReader=s,this.editReader=u,this.frameReader=c}return e.prototype.updatedComponents=function(){return r.platform.readStructField(this.batchAddress,0)},e.prototype.referenceFrames=function(){return r.platform.readStructField(this.batchAddress,i.structLength)},e.prototype.disposedComponentIds=function(){return r.platform.readStructField(this.batchAddress,2*i.structLength)},e.prototype.disposedEventHandlerIds=function(){return r.platform.readStructField(this.batchAddress,3*i.structLength)},e.prototype.updatedComponentsEntry=function(e,t){return l(e,t,s.structLength)},e.prototype.referenceFramesEntry=function(e,t){return l(e,t,c.structLength)},e.prototype.disposedComponentIdsEntry=function(e,t){var n=l(e,t,4);return r.platform.readInt32Field(n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=l(e,t,8);return r.platform.readUint64Field(n)},e}();t.SharedMemoryRenderBatch=o;var i={structLength:8,values:function(e){return r.platform.readObjectField(e,0)},count:function(e){return r.platform.readInt32Field(e,4)}},a={structLength:12,values:function(e){var t=r.platform.readObjectField(e,0),n=r.platform.getObjectFieldsBaseAddress(t);return r.platform.readObjectField(n,0)},offset:function(e){return r.platform.readInt32Field(e,4)},count:function(e){return r.platform.readInt32Field(e,8)}},s={structLength:4+a.structLength,componentId:function(e){return r.platform.readInt32Field(e,0)},edits:function(e){return r.platform.readStructField(e,4)},editsEntry:function(e,t){return l(e,t,u.structLength)}},u={structLength:20,editType:function(e){return r.platform.readInt32Field(e,0)},siblingIndex:function(e){return r.platform.readInt32Field(e,4)},newTreeIndex:function(e){return r.platform.readInt32Field(e,8)},moveToSiblingIndex:function(e){return r.platform.readInt32Field(e,8)},removedAttributeName:function(e){return r.platform.readStringField(e,16)}},c={structLength:36,frameType:function(e){return r.platform.readInt16Field(e,4)},subtreeLength:function(e){return r.platform.readInt32Field(e,8)},elementReferenceCaptureId:function(e){return r.platform.readStringField(e,16)},componentId:function(e){return r.platform.readInt32Field(e,12)},elementName:function(e){return r.platform.readStringField(e,16)},textContent:function(e){return r.platform.readStringField(e,16)},markupContent:function(e){return r.platform.readStringField(e,16)},attributeName:function(e){return r.platform.readStringField(e,16)},attributeValue:function(e){return r.platform.readStringField(e,24,!0)},attributeEventHandlerId:function(e){return r.platform.readUint64Field(e,8)}};function l(e,t,n){return r.platform.getArrayEntryPtr(e,t,n)}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(c(i)&&c(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(u(i))throw new Error("Not implemented: moving existing logical children");var a=c(t);if(n0;)e(r,0)}var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=u,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return c(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=c,t.permuteLogicalChildren=function(e,t){var n=c(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=u(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):d(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(25),n(17);var r=n(26),o=n(7),i={},a=!1;function s(e,t,n){var o=i[e];o||(o=i[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=s,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");s(n||0,o.toLogicalElement(r,!0),t)},t.getRendererer=function(e){return i[e]},t.renderBatch=function(e,t){var n=i[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),s=r.values(o),u=r.count(o),c=t.referenceFrames(),l=r.values(c),f=t.diffReader,d=0;d0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var c,l;s.attachDebuggerHotkey(e),window.Browser={init:function(){}},c=function(){window.Module=function(e,t,n){var c=this,l=e.bootConfig.resources,f=window.Module||{},d=["DEBUGGING ENABLED"];f.print=function(e){return d.indexOf(e)<0&&console.log(e)},f.printErr=function(e){console.error(e),u.showErrorNotification()},f.preRun=f.preRun||[],f.postRun=f.postRun||[],f.preloadPlugins=[];var h,b,g=e.loadResources(l.assembly,(function(e){return"_framework/"+e}),"assembly"),w=e.loadResources(l.pdb||{},(function(e){return"_framework/"+e}),"pdb"),E=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");return e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.blat")&&(h=e.loadResource("dotnet.timezones.blat","_framework/dotnet.timezones.blat",e.bootConfig.resources.runtime["dotnet.timezones.blat"],"globalization")),e.bootConfig.resources.runtime.hasOwnProperty("icudt.dat")&&(b=e.loadResource("icudt.dat","_framework/icudt.dat",e.bootConfig.resources.runtime["icudt.dat"],"globalization")),f.instantiateWasm=function(e,t){return r(c,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,E];case 1:return[4,v(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),f.printErr(r),r;case 4:return t(n),[2]}}))})),[]},f.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],h&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),Module.FS_createPath("/","usr",!0,!0),Module.FS_createPath("/usr/","share",!0,!0),Module.FS_createPath("/usr/share/","zoneinfo",!0,!0),MONO.mono_wasm_load_data_archive(new Uint8Array(n),"/usr/share/zoneinfo/"),removeRunDependency(t),[2]}}))}))}(h),b?function(e){r(this,void 0,void 0,(function(){var t,n,r,i,a;return o(this,(function(o){switch(o.label){case 0:return t="blazor:icudata",addRunDependency(t),[4,e.response];case 1:return n=o.sent(),i=Uint8Array.bind,[4,n.arrayBuffer()];case 2:if(r=new(i.apply(Uint8Array,[void 0,o.sent()])),a=MONO.mono_wasm_load_bytes_into_heap(r),!MONO.mono_wasm_load_icu_data(a))throw new Error("Error loading ICU asset.");return removeRunDependency(t),[2]}}))}))}(b):MONO.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT","1"),g.forEach((function(e){return _(e,function(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}(e.name,".dll"))})),w.forEach((function(e){return _(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){f.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources;if(i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(c,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return d(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>l)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*c+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return d(e+(t||0))},readStringField:function(e,t,n){var r,o=d(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return f?void 0===(r=f.stringCache.get(o))&&(r=BINDING.conv_string(o),f.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return y(),f=new b},invokeWhenHeapUnlocked:function(e){f?f.enqueuePostReleaseAction(e):e()}};var p=document.createElement("a");function h(e){return e+12}function m(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function v(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function y(){if(f)throw new Error("Assertion failed - heap is currently locked")}var b=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(f!==this)throw new Error("Trying to release a lock which isn't current");for(f=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),y()}},e}()},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&e.invokeMethodAsync("OnSpacerAfterVisible",r.boundingClientRect.bottom-r.intersectionRect.bottom,a,s)}}))}),{root:i,rootMargin:o+"px"});a.observe(t),a.observe(n);var s=c(t),u=c(n);function c(e){var t=new MutationObserver((function(){a.unobserve(e),a.observe(e)}));return t.observe(e,{attributes:!0}),t}r[e._id]={intersectionObserver:a,mutationObserverBefore:s,mutationObserverAfter:u}},dispose:function(e){var t=r[e._id];t&&(t.intersectionObserver.disconnect(),t.mutationObserverBefore.disconnect(),t.mutationObserverAfter.disconnect(),e.dispose(),delete r[e._id])}};var r={}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1].*)$/;function i(e,t){var n=e.currentElement;if(n&&n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r.groups&&r.groups.descriptor;if(!i)return;try{var s=function(e){var t=JSON.parse(e),n=t.type;if("server"!==n&&"webassembly"!==n)throw new Error("Invalid component type '"+n+"'.");return t}(i);switch(t){case"webassembly":return function(e,t,n){var r=e.type,o=e.assembly,i=e.typeName,s=e.parameterDefinitions,u=e.parameterValues,c=e.prerenderId;if("webassembly"!==r)return;if(!o)throw new Error("assembly must be defined when using a descriptor.");if(!i)throw new Error("typeName must be defined when using a descriptor.");if(c){var l=a(c,n);if(!l)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:u&&atob(u),start:t,prerenderId:c,end:l}}return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:u&&atob(u),start:t}}(s,n,e);case"server":return function(e,t,n){var r=e.type,o=e.descriptor,i=e.sequence,s=e.prerenderId;if("server"!==r)return;if(!o)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===i)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(i))throw new Error("Error parsing the sequence '"+i+"' for component '"+JSON.stringify(e)+"'");if(s){var u=a(s,n);if(!u)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,sequence:i,descriptor:o,start:t,prerenderId:s,end:u}}return{type:r,sequence:i,descriptor:o,start:t}}(s,n,e)}}catch(e){throw new Error("Found malformed component comment at "+n.textContent)}}}function a(e,t){for(;t.next()&&t.currentElement;){var n=t.currentElement;if(n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r[1];if(i)return s(i,e),n}}}function s(e,t){var n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error("Invalid end of component comment: '"+e+"'");var r=n.prerenderId;if(!r)throw new Error("End of component comment must have a value for the prerendered property: '"+e+"'");if(r!==t)throw new Error("End of component comment prerendered property must match the start comment prerender id: '"+t+"', '"+r+"'")}var u=function(){function e(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}return e.prototype.next=function(){return this.currentIndex++,this.currentIndex0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var a=n(3);n(24);var s=n(17),u=n(20),c=n(12),l=n(48),f=n(36),d=n(18),p=n(49),h=n(50),m=n(51),v=n(52),y=n(37),b=!1;function g(e){return r(this,void 0,void 0,(function(){var t,n,f,g,E,_,I,C,N,A,S,k=this;return o(this,(function(F){switch(F.label){case 0:if(b)throw new Error("Blazor has already started.");return b=!0,d.setEventDispatcher((function(e,t){c.getRendererer(e.browserRendererId).eventDelegator.getHandler(e.eventHandlerId)&&u.monoPlatform.invokeWhenHeapUnlocked((function(){return a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","DispatchEvent",e,JSON.stringify(t))}))})),window.Blazor._internal.invokeJSFromDotNet=w,t=s.setPlatform(u.monoPlatform),window.Blazor.platform=t,window.Blazor._internal.renderBatch=function(e,t){var n=u.monoPlatform.beginHeapLock();try{c.renderBatch(e,new l.SharedMemoryRenderBatch(t))}finally{n.release()}},n=window.Blazor._internal.navigationManager.getBaseURI,f=window.Blazor._internal.navigationManager.getLocationHref,window.Blazor._internal.navigationManager.getUnmarshalledBaseURI=function(){return BINDING.js_string_to_mono_string(n())},window.Blazor._internal.navigationManager.getUnmarshalledLocationHref=function(){return BINDING.js_string_to_mono_string(f())},window.Blazor._internal.navigationManager.listenForNavigationEvents((function(e,t){return r(k,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return[4,a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChanged",e,t)];case 1:return n.sent(),[2]}}))}))})),g=null==e?void 0:e.environment,E=m.BootConfigResult.initAsync(g),_=y.discoverComponents(document,"webassembly"),I=new v.WebAssemblyComponentAttacher(_),window.Blazor._internal.registeredComponents={getRegisteredComponentsCount:function(){return I.getCount()},getId:function(e){return I.getId(e)},getAssembly:function(e){return BINDING.js_string_to_mono_string(I.getAssembly(e))},getTypeName:function(e){return BINDING.js_string_to_mono_string(I.getTypeName(e))},getParameterDefinitions:function(e){return BINDING.js_string_to_mono_string(I.getParameterDefinitions(e)||"")},getParameterValues:function(e){return BINDING.js_string_to_mono_string(I.getParameterValues(e)||"")}},window.Blazor._internal.attachRootComponentToElement=function(e,t,n){var r=I.resolveRegisteredElement(e);r?c.attachRootComponentToLogicalElement(n,r,t):c.attachRootComponentToElement(e,t,n)},[4,E];case 1:return C=F.sent(),[4,Promise.all([p.WebAssemblyResourceLoader.initAsync(C.bootConfig,e||{}),h.WebAssemblyConfigLoader.initAsync(C)])];case 2:N=i.apply(void 0,[F.sent(),1]),A=N[0],F.label=3;case 3:return F.trys.push([3,5,,6]),[4,t.start(A)];case 4:return F.sent(),[3,6];case 5:throw S=F.sent(),new Error("Failed to start platform. Reason: "+S);case 6:return t.callEntryPoint(A.bootConfig.entryAssembly),[2]}}))}))}function w(e,t,n,r){var o=u.monoPlatform.readStringField(e,0),i=u.monoPlatform.readInt32Field(e,4),s=u.monoPlatform.readStringField(e,8),c=u.monoPlatform.readUint64Field(e,20);if(null!==s){var l=u.monoPlatform.readUint64Field(e,12);if(0!==l)return a.DotNet.jsCallDispatcher.beginInvokeJSFromDotNet(l,o,s,i,c),0;var f=a.DotNet.jsCallDispatcher.invokeJSFromDotNet(o,s,i,c);return null===f?0:BINDING.js_string_to_mono_string(f)}return a.DotNet.jsCallDispatcher.findJSFunction(o,c).call(null,t,n,r)}window.Blazor.start=g,f.shouldAutoStart()&&g().catch((function(e){"undefined"!=typeof Module&&Module.printErr?Module.printErr(e):console.error(e)}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(17),o=function(){function e(e){this.batchAddress=e,this.arrayRangeReader=i,this.arrayBuilderSegmentReader=a,this.diffReader=s,this.editReader=u,this.frameReader=c}return e.prototype.updatedComponents=function(){return r.platform.readStructField(this.batchAddress,0)},e.prototype.referenceFrames=function(){return r.platform.readStructField(this.batchAddress,i.structLength)},e.prototype.disposedComponentIds=function(){return r.platform.readStructField(this.batchAddress,2*i.structLength)},e.prototype.disposedEventHandlerIds=function(){return r.platform.readStructField(this.batchAddress,3*i.structLength)},e.prototype.updatedComponentsEntry=function(e,t){return l(e,t,s.structLength)},e.prototype.referenceFramesEntry=function(e,t){return l(e,t,c.structLength)},e.prototype.disposedComponentIdsEntry=function(e,t){var n=l(e,t,4);return r.platform.readInt32Field(n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=l(e,t,8);return r.platform.readUint64Field(n)},e}();t.SharedMemoryRenderBatch=o;var i={structLength:8,values:function(e){return r.platform.readObjectField(e,0)},count:function(e){return r.platform.readInt32Field(e,4)}},a={structLength:12,values:function(e){var t=r.platform.readObjectField(e,0),n=r.platform.getObjectFieldsBaseAddress(t);return r.platform.readObjectField(n,0)},offset:function(e){return r.platform.readInt32Field(e,4)},count:function(e){return r.platform.readInt32Field(e,8)}},s={structLength:4+a.structLength,componentId:function(e){return r.platform.readInt32Field(e,0)},edits:function(e){return r.platform.readStructField(e,4)},editsEntry:function(e,t){return l(e,t,u.structLength)}},u={structLength:20,editType:function(e){return r.platform.readInt32Field(e,0)},siblingIndex:function(e){return r.platform.readInt32Field(e,4)},newTreeIndex:function(e){return r.platform.readInt32Field(e,8)},moveToSiblingIndex:function(e){return r.platform.readInt32Field(e,8)},removedAttributeName:function(e){return r.platform.readStringField(e,16)}},c={structLength:36,frameType:function(e){return r.platform.readInt16Field(e,4)},subtreeLength:function(e){return r.platform.readInt32Field(e,8)},elementReferenceCaptureId:function(e){return r.platform.readStringField(e,16)},componentId:function(e){return r.platform.readInt32Field(e,12)},elementName:function(e){return r.platform.readStringField(e,16)},textContent:function(e){return r.platform.readStringField(e,16)},markupContent:function(e){return r.platform.readStringField(e,16)},attributeName:function(e){return r.platform.readStringField(e,16)},attributeValue:function(e){return r.platform.readStringField(e,24,!0)},attributeEventHandlerId:function(e){return r.platform.readUint64Field(e,8)}};function l(e,t,n){return r.platform.getArrayEntryPtr(e,t,n)}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]? Items { get; set; } + /// + /// Gets or sets a value that determines how many additional items will be rendered + /// before and after the visible region. This help to reduce the frequency of rendering + /// during scrolling. However, higher values mean that more elements will be present + /// in the page. + /// + [Parameter] + public int OverscanCount { get; set; } = 3; + /// protected override void OnParametersSet() { @@ -251,8 +260,8 @@ namespace Microsoft.AspNetCore.Components.Web.Virtualization _itemSize = ItemSize; } - itemsInSpacer = Math.Max(0, (int)Math.Floor(spacerSize / _itemSize) - 1); - visibleItemCapacity = (int)Math.Ceiling(containerSize / _itemSize) + 2; + itemsInSpacer = Math.Max(0, (int)Math.Floor(spacerSize / _itemSize) - OverscanCount); + visibleItemCapacity = (int)Math.Ceiling(containerSize / _itemSize) + 2 * OverscanCount; } private void UpdateItemDistribution(int itemsBefore, int visibleItemCapacity) From c77b8f1b92cbf06d33960e7a743b982f765b9c07 Mon Sep 17 00:00:00 2001 From: Kevin Pilch Date: Thu, 3 Sep 2020 14:01:45 -0700 Subject: [PATCH 034/187] Add PublicAPI baselines for Identity (#25578) Except Identity.UI, since it has Razor files. --- .../src/PublicAPI.Shipped.txt | 1 + .../src/PublicAPI.Unshipped.txt | 129 +++++ src/Identity/Core/src/PublicAPI.Shipped.txt | 1 + src/Identity/Core/src/PublicAPI.Unshipped.txt | 139 +++++ src/Identity/Core/src/SignInManager.cs | 3 + .../Extensions.Core/src/PublicAPI.Shipped.txt | 1 + .../src/PublicAPI.Unshipped.txt | 540 ++++++++++++++++++ .../src/PublicAPI.Shipped.txt | 1 + .../src/PublicAPI.Unshipped.txt | 206 +++++++ 9 files changed, 1021 insertions(+) create mode 100644 src/Identity/ApiAuthorization.IdentityServer/src/PublicAPI.Shipped.txt create mode 100644 src/Identity/ApiAuthorization.IdentityServer/src/PublicAPI.Unshipped.txt create mode 100644 src/Identity/Core/src/PublicAPI.Shipped.txt create mode 100644 src/Identity/Core/src/PublicAPI.Unshipped.txt create mode 100644 src/Identity/Extensions.Core/src/PublicAPI.Shipped.txt create mode 100644 src/Identity/Extensions.Core/src/PublicAPI.Unshipped.txt create mode 100644 src/Identity/Extensions.Stores/src/PublicAPI.Shipped.txt create mode 100644 src/Identity/Extensions.Stores/src/PublicAPI.Unshipped.txt diff --git a/src/Identity/ApiAuthorization.IdentityServer/src/PublicAPI.Shipped.txt b/src/Identity/ApiAuthorization.IdentityServer/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/Identity/ApiAuthorization.IdentityServer/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Identity/ApiAuthorization.IdentityServer/src/PublicAPI.Unshipped.txt b/src/Identity/ApiAuthorization.IdentityServer/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..2eaa8f7d1e --- /dev/null +++ b/src/Identity/ApiAuthorization.IdentityServer/src/PublicAPI.Unshipped.txt @@ -0,0 +1,129 @@ +#nullable enable +Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiAuthorizationOptions +Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiAuthorizationOptions.ApiAuthorizationOptions() -> void +Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiResourceBuilder +Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiResourceBuilder.ApiResourceBuilder() -> void +Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiResourceCollection +Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiResourceCollection.ApiResourceCollection() -> void +Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiScopeCollection +Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiScopeCollection.ApiScopeCollection() -> void +Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApplicationProfiles +Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApplicationProfilesPropertyNames +Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApplicationProfilesPropertyValues +Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientBuilder +Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientBuilder.ClientBuilder() -> void +Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientCollection +Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientCollection.ClientCollection() -> void +Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientParametersTagHelper +Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IClientRequestParametersProvider +Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceBuilder +Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceBuilder.IdentityResourceBuilder() -> void +Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceCollection +Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceCollection.AddAddress() -> void +Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceCollection.AddEmail() -> void +Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceCollection.AddOpenId() -> void +Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceCollection.AddPhone() -> void +Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceCollection.AddProfile() -> void +Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceCollection.IdentityResourceCollection() -> void +Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityServerJwtConstants +Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityServerJwtConstants.IdentityServerJwtConstants() -> void +Microsoft.AspNetCore.Authentication.AuthenticationBuilderExtensions +Microsoft.Extensions.DependencyInjection.IdentityServerBuilderConfigurationExtensions +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiAuthorizationDbContext +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiAuthorizationDbContext.ApiAuthorizationDbContext(Microsoft.EntityFrameworkCore.DbContextOptions options, Microsoft.Extensions.Options.IOptions operationalStoreOptions) -> void +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiAuthorizationDbContext.DeviceFlowCodes.get -> Microsoft.EntityFrameworkCore.DbSet +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiAuthorizationDbContext.DeviceFlowCodes.set -> void +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiAuthorizationDbContext.PersistedGrants.get -> Microsoft.EntityFrameworkCore.DbSet +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiAuthorizationDbContext.PersistedGrants.set -> void +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiAuthorizationOptions.ApiResources.get -> Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiResourceCollection +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiAuthorizationOptions.ApiResources.set -> void +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiAuthorizationOptions.ApiScopes.get -> Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiScopeCollection +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiAuthorizationOptions.ApiScopes.set -> void +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiAuthorizationOptions.Clients.get -> Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientCollection +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiAuthorizationOptions.Clients.set -> void +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiAuthorizationOptions.IdentityResources.get -> Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceCollection +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiAuthorizationOptions.IdentityResources.set -> void +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiAuthorizationOptions.SigningCredential.get -> Microsoft.IdentityModel.Tokens.SigningCredentials +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiAuthorizationOptions.SigningCredential.set -> void +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiResourceBuilder.AllowAllClients() -> Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiResourceBuilder +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiResourceBuilder.ApiResourceBuilder(IdentityServer4.Models.ApiResource resource) -> void +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiResourceBuilder.Build() -> IdentityServer4.Models.ApiResource +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiResourceBuilder.ReplaceScopes(params string[] resourceScopes) -> Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiResourceBuilder +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiResourceBuilder.WithApplicationProfile(string profile) -> Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiResourceBuilder +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiResourceBuilder.WithScopes(params string[] resourceScopes) -> Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiResourceBuilder +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiResourceCollection.AddApiResource(string name, System.Action configure) -> void +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiResourceCollection.AddIdentityServerJwt(string name, System.Action configure) -> void +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiResourceCollection.AddRange(params IdentityServer4.Models.ApiResource[] resources) -> void +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiResourceCollection.ApiResourceCollection(System.Collections.Generic.IList list) -> void +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiResourceCollection.this[string key].get -> IdentityServer4.Models.ApiResource +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiScopeCollection.AddRange(params IdentityServer4.Models.ApiScope[] scopes) -> void +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiScopeCollection.ApiScopeCollection(System.Collections.Generic.IList list) -> void +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiScopeCollection.ContainsScope(string key) -> bool +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiScopeCollection.this[string key].get -> IdentityServer4.Models.ApiScope +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientBuilder.Build() -> IdentityServer4.Models.Client +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientBuilder.ClientBuilder(IdentityServer4.Models.Client client) -> void +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientBuilder.WithApplicationProfile(string profile) -> Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientBuilder +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientBuilder.WithClientId(string clientId) -> Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientBuilder +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientBuilder.WithLogoutRedirectUri(string logoutUri) -> Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientBuilder +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientBuilder.WithRedirectUri(string redirectUri) -> Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientBuilder +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientBuilder.WithScopes(params string[] scopes) -> Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientBuilder +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientBuilder.WithoutClientSecrets() -> Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientBuilder +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientCollection.AddIdentityServerSPA(string clientId, System.Action configure) -> IdentityServer4.Models.Client +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientCollection.AddNativeApp(string clientId, System.Action configure) -> IdentityServer4.Models.Client +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientCollection.AddRange(params IdentityServer4.Models.Client[] clients) -> void +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientCollection.AddSPA(string clientId, System.Action configure) -> IdentityServer4.Models.Client +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientCollection.ClientCollection(System.Collections.Generic.IList list) -> void +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientCollection.this[string key].get -> IdentityServer4.Models.Client +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientParametersTagHelper.ClientId.get -> string +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientParametersTagHelper.ClientId.set -> void +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientParametersTagHelper.ClientParametersTagHelper(Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IClientRequestParametersProvider clientRequestParametersProvider) -> void +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientParametersTagHelper.ViewContext.get -> Microsoft.AspNetCore.Mvc.Rendering.ViewContext +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientParametersTagHelper.ViewContext.set -> void +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IClientRequestParametersProvider.GetClientParameters(Microsoft.AspNetCore.Http.HttpContext context, string clientId) -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceBuilder.AllowAllClients() -> Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceBuilder +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceBuilder.Build() -> IdentityServer4.Models.IdentityResource +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceBuilder.IdentityResourceBuilder(IdentityServer4.Models.IdentityResource resource) -> void +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceCollection.AddAddress(System.Action configure) -> void +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceCollection.AddEmail(System.Action configure) -> void +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceCollection.AddOpenId(System.Action configure) -> void +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceCollection.AddPhone(System.Action configure) -> void +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceCollection.AddProfile(System.Action configure) -> void +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceCollection.AddRange(params IdentityServer4.Models.IdentityResource[] identityResources) -> void +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceCollection.IdentityResourceCollection(System.Collections.Generic.IList list) -> void +~Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceCollection.this[string key].get -> IdentityServer4.Models.IdentityResource +~const Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApplicationProfiles.API = "API" -> string +~const Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApplicationProfiles.IdentityServerJwt = "IdentityServerJwt" -> string +~const Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApplicationProfiles.IdentityServerSPA = "IdentityServerSPA" -> string +~const Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApplicationProfiles.NativeApp = "NativeApp" -> string +~const Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApplicationProfiles.SPA = "SPA" -> string +~const Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApplicationProfilesPropertyNames.Clients = "Clients" -> string +~const Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApplicationProfilesPropertyNames.Profile = "Profile" -> string +~const Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApplicationProfilesPropertyNames.Source = "Source" -> string +~const Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApplicationProfilesPropertyValues.AllowAllApplications = "*" -> string +~const Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApplicationProfilesPropertyValues.Configuration = "Configuration" -> string +~const Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApplicationProfilesPropertyValues.Default = "Default" -> string +~const Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityServerJwtConstants.IdentityServerJwtBearerScheme = "IdentityServerJwtBearer" -> string +~const Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityServerJwtConstants.IdentityServerJwtScheme = "IdentityServerJwt" -> string +~override Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiAuthorizationDbContext.OnModelCreating(Microsoft.EntityFrameworkCore.ModelBuilder builder) -> void +~override Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientParametersTagHelper.Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> void +~static Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiResourceBuilder.ApiResource(string name) -> Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiResourceBuilder +~static Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiResourceBuilder.IdentityServerJwt(string name) -> Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiResourceBuilder +~static Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientBuilder.IdentityServerSPA(string clientId) -> Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientBuilder +~static Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientBuilder.NativeApp(string clientId) -> Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientBuilder +~static Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientBuilder.SPA(string clientId) -> Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ClientBuilder +~static Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceBuilder.Address() -> Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceBuilder +~static Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceBuilder.Email() -> Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceBuilder +~static Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceBuilder.OpenId() -> Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceBuilder +~static Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceBuilder.Phone() -> Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceBuilder +~static Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceBuilder.Profile() -> Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityResourceBuilder +~static Microsoft.AspNetCore.Authentication.AuthenticationBuilderExtensions.AddIdentityServerJwt(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder) -> Microsoft.AspNetCore.Authentication.AuthenticationBuilder +~static Microsoft.Extensions.DependencyInjection.IdentityServerBuilderConfigurationExtensions.AddApiAuthorization(this Microsoft.Extensions.DependencyInjection.IIdentityServerBuilder builder) -> Microsoft.Extensions.DependencyInjection.IIdentityServerBuilder +~static Microsoft.Extensions.DependencyInjection.IdentityServerBuilderConfigurationExtensions.AddApiAuthorization(this Microsoft.Extensions.DependencyInjection.IIdentityServerBuilder builder, System.Action configure) -> Microsoft.Extensions.DependencyInjection.IIdentityServerBuilder +~static Microsoft.Extensions.DependencyInjection.IdentityServerBuilderConfigurationExtensions.AddApiResources(this Microsoft.Extensions.DependencyInjection.IIdentityServerBuilder builder) -> Microsoft.Extensions.DependencyInjection.IIdentityServerBuilder +~static Microsoft.Extensions.DependencyInjection.IdentityServerBuilderConfigurationExtensions.AddApiResources(this Microsoft.Extensions.DependencyInjection.IIdentityServerBuilder builder, Microsoft.Extensions.Configuration.IConfiguration configuration) -> Microsoft.Extensions.DependencyInjection.IIdentityServerBuilder +~static Microsoft.Extensions.DependencyInjection.IdentityServerBuilderConfigurationExtensions.AddClients(this Microsoft.Extensions.DependencyInjection.IIdentityServerBuilder builder) -> Microsoft.Extensions.DependencyInjection.IIdentityServerBuilder +~static Microsoft.Extensions.DependencyInjection.IdentityServerBuilderConfigurationExtensions.AddClients(this Microsoft.Extensions.DependencyInjection.IIdentityServerBuilder builder, Microsoft.Extensions.Configuration.IConfiguration configuration) -> Microsoft.Extensions.DependencyInjection.IIdentityServerBuilder +~static Microsoft.Extensions.DependencyInjection.IdentityServerBuilderConfigurationExtensions.AddIdentityResources(this Microsoft.Extensions.DependencyInjection.IIdentityServerBuilder builder) -> Microsoft.Extensions.DependencyInjection.IIdentityServerBuilder +~static Microsoft.Extensions.DependencyInjection.IdentityServerBuilderConfigurationExtensions.AddIdentityResources(this Microsoft.Extensions.DependencyInjection.IIdentityServerBuilder builder, Microsoft.Extensions.Configuration.IConfiguration configuration) -> Microsoft.Extensions.DependencyInjection.IIdentityServerBuilder +~static Microsoft.Extensions.DependencyInjection.IdentityServerBuilderConfigurationExtensions.AddSigningCredentials(this Microsoft.Extensions.DependencyInjection.IIdentityServerBuilder builder) -> Microsoft.Extensions.DependencyInjection.IIdentityServerBuilder +~static Microsoft.Extensions.DependencyInjection.IdentityServerBuilderConfigurationExtensions.AddSigningCredentials(this Microsoft.Extensions.DependencyInjection.IIdentityServerBuilder builder, Microsoft.Extensions.Configuration.IConfiguration configuration) -> Microsoft.Extensions.DependencyInjection.IIdentityServerBuilder diff --git a/src/Identity/Core/src/PublicAPI.Shipped.txt b/src/Identity/Core/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/Identity/Core/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Identity/Core/src/PublicAPI.Unshipped.txt b/src/Identity/Core/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..1f07ef5d0e --- /dev/null +++ b/src/Identity/Core/src/PublicAPI.Unshipped.txt @@ -0,0 +1,139 @@ +#nullable enable +Microsoft.AspNetCore.Identity.DataProtectionTokenProviderOptions +Microsoft.AspNetCore.Identity.DataProtectionTokenProviderOptions.DataProtectionTokenProviderOptions() -> void +Microsoft.AspNetCore.Identity.DataProtectionTokenProviderOptions.TokenLifespan.get -> System.TimeSpan +Microsoft.AspNetCore.Identity.DataProtectionTokenProviderOptions.TokenLifespan.set -> void +Microsoft.AspNetCore.Identity.ExternalLoginInfo +Microsoft.AspNetCore.Identity.ISecurityStampValidator +Microsoft.AspNetCore.Identity.ITwoFactorSecurityStampValidator +Microsoft.AspNetCore.Identity.IdentityBuilderExtensions +Microsoft.AspNetCore.Identity.IdentityConstants +Microsoft.AspNetCore.Identity.IdentityConstants.IdentityConstants() -> void +Microsoft.AspNetCore.Identity.IdentityCookieAuthenticationBuilderExtensions +Microsoft.AspNetCore.Identity.IdentityCookiesBuilder +Microsoft.AspNetCore.Identity.IdentityCookiesBuilder.IdentityCookiesBuilder() -> void +Microsoft.AspNetCore.Identity.SecurityStampRefreshingPrincipalContext +Microsoft.AspNetCore.Identity.SecurityStampRefreshingPrincipalContext.SecurityStampRefreshingPrincipalContext() -> void +Microsoft.AspNetCore.Identity.SecurityStampValidator +Microsoft.AspNetCore.Identity.SecurityStampValidatorOptions +Microsoft.AspNetCore.Identity.SecurityStampValidatorOptions.SecurityStampValidatorOptions() -> void +Microsoft.AspNetCore.Identity.SecurityStampValidatorOptions.ValidationInterval.get -> System.TimeSpan +Microsoft.AspNetCore.Identity.SecurityStampValidatorOptions.ValidationInterval.set -> void +Microsoft.Extensions.DependencyInjection.IdentityServiceCollectionExtensions +override Microsoft.AspNetCore.Identity.AspNetRoleManager.CancellationToken.get -> System.Threading.CancellationToken +override Microsoft.AspNetCore.Identity.AspNetUserManager.CancellationToken.get -> System.Threading.CancellationToken +~Microsoft.AspNetCore.Identity.AspNetRoleManager +~Microsoft.AspNetCore.Identity.AspNetRoleManager.AspNetRoleManager(Microsoft.AspNetCore.Identity.IRoleStore store, System.Collections.Generic.IEnumerable> roleValidators, Microsoft.AspNetCore.Identity.ILookupNormalizer keyNormalizer, Microsoft.AspNetCore.Identity.IdentityErrorDescriber errors, Microsoft.Extensions.Logging.ILogger> logger, Microsoft.AspNetCore.Http.IHttpContextAccessor contextAccessor) -> void +~Microsoft.AspNetCore.Identity.AspNetUserManager +~Microsoft.AspNetCore.Identity.AspNetUserManager.AspNetUserManager(Microsoft.AspNetCore.Identity.IUserStore store, Microsoft.Extensions.Options.IOptions optionsAccessor, Microsoft.AspNetCore.Identity.IPasswordHasher passwordHasher, System.Collections.Generic.IEnumerable> userValidators, System.Collections.Generic.IEnumerable> passwordValidators, Microsoft.AspNetCore.Identity.ILookupNormalizer keyNormalizer, Microsoft.AspNetCore.Identity.IdentityErrorDescriber errors, System.IServiceProvider services, Microsoft.Extensions.Logging.ILogger> logger) -> void +~Microsoft.AspNetCore.Identity.DataProtectionTokenProviderOptions.Name.get -> string +~Microsoft.AspNetCore.Identity.DataProtectionTokenProviderOptions.Name.set -> void +~Microsoft.AspNetCore.Identity.DataProtectorTokenProvider +~Microsoft.AspNetCore.Identity.DataProtectorTokenProvider.DataProtectorTokenProvider(Microsoft.AspNetCore.DataProtection.IDataProtectionProvider dataProtectionProvider, Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Logging.ILogger> logger) -> void +~Microsoft.AspNetCore.Identity.DataProtectorTokenProvider.Logger.get -> Microsoft.Extensions.Logging.ILogger> +~Microsoft.AspNetCore.Identity.DataProtectorTokenProvider.Name.get -> string +~Microsoft.AspNetCore.Identity.DataProtectorTokenProvider.Options.get -> Microsoft.AspNetCore.Identity.DataProtectionTokenProviderOptions +~Microsoft.AspNetCore.Identity.DataProtectorTokenProvider.Protector.get -> Microsoft.AspNetCore.DataProtection.IDataProtector +~Microsoft.AspNetCore.Identity.ExternalLoginInfo.AuthenticationProperties.get -> Microsoft.AspNetCore.Authentication.AuthenticationProperties +~Microsoft.AspNetCore.Identity.ExternalLoginInfo.AuthenticationProperties.set -> void +~Microsoft.AspNetCore.Identity.ExternalLoginInfo.AuthenticationTokens.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Identity.ExternalLoginInfo.AuthenticationTokens.set -> void +~Microsoft.AspNetCore.Identity.ExternalLoginInfo.ExternalLoginInfo(System.Security.Claims.ClaimsPrincipal principal, string loginProvider, string providerKey, string displayName) -> void +~Microsoft.AspNetCore.Identity.ExternalLoginInfo.Principal.get -> System.Security.Claims.ClaimsPrincipal +~Microsoft.AspNetCore.Identity.ExternalLoginInfo.Principal.set -> void +~Microsoft.AspNetCore.Identity.ISecurityStampValidator.ValidateAsync(Microsoft.AspNetCore.Authentication.Cookies.CookieValidatePrincipalContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IdentityCookiesBuilder.ApplicationCookie.get -> Microsoft.Extensions.Options.OptionsBuilder +~Microsoft.AspNetCore.Identity.IdentityCookiesBuilder.ApplicationCookie.set -> void +~Microsoft.AspNetCore.Identity.IdentityCookiesBuilder.ExternalCookie.get -> Microsoft.Extensions.Options.OptionsBuilder +~Microsoft.AspNetCore.Identity.IdentityCookiesBuilder.ExternalCookie.set -> void +~Microsoft.AspNetCore.Identity.IdentityCookiesBuilder.TwoFactorRememberMeCookie.get -> Microsoft.Extensions.Options.OptionsBuilder +~Microsoft.AspNetCore.Identity.IdentityCookiesBuilder.TwoFactorRememberMeCookie.set -> void +~Microsoft.AspNetCore.Identity.IdentityCookiesBuilder.TwoFactorUserIdCookie.get -> Microsoft.Extensions.Options.OptionsBuilder +~Microsoft.AspNetCore.Identity.IdentityCookiesBuilder.TwoFactorUserIdCookie.set -> void +~Microsoft.AspNetCore.Identity.SecurityStampRefreshingPrincipalContext.CurrentPrincipal.get -> System.Security.Claims.ClaimsPrincipal +~Microsoft.AspNetCore.Identity.SecurityStampRefreshingPrincipalContext.CurrentPrincipal.set -> void +~Microsoft.AspNetCore.Identity.SecurityStampRefreshingPrincipalContext.NewPrincipal.get -> System.Security.Claims.ClaimsPrincipal +~Microsoft.AspNetCore.Identity.SecurityStampRefreshingPrincipalContext.NewPrincipal.set -> void +~Microsoft.AspNetCore.Identity.SecurityStampValidator +~Microsoft.AspNetCore.Identity.SecurityStampValidator.Clock.get -> Microsoft.AspNetCore.Authentication.ISystemClock +~Microsoft.AspNetCore.Identity.SecurityStampValidator.Logger.get -> Microsoft.Extensions.Logging.ILogger +~Microsoft.AspNetCore.Identity.SecurityStampValidator.Logger.set -> void +~Microsoft.AspNetCore.Identity.SecurityStampValidator.Options.get -> Microsoft.AspNetCore.Identity.SecurityStampValidatorOptions +~Microsoft.AspNetCore.Identity.SecurityStampValidator.SecurityStampValidator(Microsoft.Extensions.Options.IOptions options, Microsoft.AspNetCore.Identity.SignInManager signInManager, Microsoft.AspNetCore.Authentication.ISystemClock clock, Microsoft.Extensions.Logging.ILoggerFactory logger) -> void +~Microsoft.AspNetCore.Identity.SecurityStampValidator.SignInManager.get -> Microsoft.AspNetCore.Identity.SignInManager +~Microsoft.AspNetCore.Identity.SecurityStampValidatorOptions.OnRefreshingPrincipal.get -> System.Func +~Microsoft.AspNetCore.Identity.SecurityStampValidatorOptions.OnRefreshingPrincipal.set -> void +~Microsoft.AspNetCore.Identity.SignInManager +~Microsoft.AspNetCore.Identity.SignInManager.ClaimsFactory.get -> Microsoft.AspNetCore.Identity.IUserClaimsPrincipalFactory +~Microsoft.AspNetCore.Identity.SignInManager.ClaimsFactory.set -> void +~Microsoft.AspNetCore.Identity.SignInManager.Context.get -> Microsoft.AspNetCore.Http.HttpContext +~Microsoft.AspNetCore.Identity.SignInManager.Context.set -> void +~Microsoft.AspNetCore.Identity.SignInManager.Options.get -> Microsoft.AspNetCore.Identity.IdentityOptions +~Microsoft.AspNetCore.Identity.SignInManager.Options.set -> void +~Microsoft.AspNetCore.Identity.SignInManager.SignInManager(Microsoft.AspNetCore.Identity.UserManager userManager, Microsoft.AspNetCore.Http.IHttpContextAccessor contextAccessor, Microsoft.AspNetCore.Identity.IUserClaimsPrincipalFactory claimsFactory, Microsoft.Extensions.Options.IOptions optionsAccessor, Microsoft.Extensions.Logging.ILogger> logger, Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider schemes, Microsoft.AspNetCore.Identity.IUserConfirmation confirmation) -> void +~Microsoft.AspNetCore.Identity.SignInManager.UserManager.get -> Microsoft.AspNetCore.Identity.UserManager +~Microsoft.AspNetCore.Identity.SignInManager.UserManager.set -> void +~Microsoft.AspNetCore.Identity.TwoFactorSecurityStampValidator +~Microsoft.AspNetCore.Identity.TwoFactorSecurityStampValidator.TwoFactorSecurityStampValidator(Microsoft.Extensions.Options.IOptions options, Microsoft.AspNetCore.Identity.SignInManager signInManager, Microsoft.AspNetCore.Authentication.ISystemClock clock, Microsoft.Extensions.Logging.ILoggerFactory logger) -> void +~override Microsoft.AspNetCore.Identity.TwoFactorSecurityStampValidator.SecurityStampVerified(TUser user, Microsoft.AspNetCore.Authentication.Cookies.CookieValidatePrincipalContext context) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Identity.TwoFactorSecurityStampValidator.VerifySecurityStamp(System.Security.Claims.ClaimsPrincipal principal) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Identity.IdentityBuilderExtensions.AddDefaultTokenProviders(this Microsoft.AspNetCore.Identity.IdentityBuilder builder) -> Microsoft.AspNetCore.Identity.IdentityBuilder +~static Microsoft.AspNetCore.Identity.IdentityBuilderExtensions.AddSignInManager(this Microsoft.AspNetCore.Identity.IdentityBuilder builder) -> Microsoft.AspNetCore.Identity.IdentityBuilder +~static Microsoft.AspNetCore.Identity.IdentityBuilderExtensions.AddSignInManager(this Microsoft.AspNetCore.Identity.IdentityBuilder builder) -> Microsoft.AspNetCore.Identity.IdentityBuilder +~static Microsoft.AspNetCore.Identity.IdentityCookieAuthenticationBuilderExtensions.AddApplicationCookie(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder) -> Microsoft.Extensions.Options.OptionsBuilder +~static Microsoft.AspNetCore.Identity.IdentityCookieAuthenticationBuilderExtensions.AddExternalCookie(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder) -> Microsoft.Extensions.Options.OptionsBuilder +~static Microsoft.AspNetCore.Identity.IdentityCookieAuthenticationBuilderExtensions.AddIdentityCookies(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder) -> Microsoft.AspNetCore.Identity.IdentityCookiesBuilder +~static Microsoft.AspNetCore.Identity.IdentityCookieAuthenticationBuilderExtensions.AddIdentityCookies(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, System.Action configureCookies) -> Microsoft.AspNetCore.Identity.IdentityCookiesBuilder +~static Microsoft.AspNetCore.Identity.IdentityCookieAuthenticationBuilderExtensions.AddTwoFactorRememberMeCookie(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder) -> Microsoft.Extensions.Options.OptionsBuilder +~static Microsoft.AspNetCore.Identity.IdentityCookieAuthenticationBuilderExtensions.AddTwoFactorUserIdCookie(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder) -> Microsoft.Extensions.Options.OptionsBuilder +~static Microsoft.AspNetCore.Identity.SecurityStampValidator.ValidateAsync(Microsoft.AspNetCore.Authentication.Cookies.CookieValidatePrincipalContext context) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Identity.SecurityStampValidator.ValidatePrincipalAsync(Microsoft.AspNetCore.Authentication.Cookies.CookieValidatePrincipalContext context) -> System.Threading.Tasks.Task +~static Microsoft.Extensions.DependencyInjection.IdentityServiceCollectionExtensions.AddIdentity(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) -> Microsoft.AspNetCore.Identity.IdentityBuilder +~static Microsoft.Extensions.DependencyInjection.IdentityServiceCollectionExtensions.AddIdentity(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action setupAction) -> Microsoft.AspNetCore.Identity.IdentityBuilder +~static Microsoft.Extensions.DependencyInjection.IdentityServiceCollectionExtensions.ConfigureApplicationCookie(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) -> Microsoft.Extensions.DependencyInjection.IServiceCollection +~static Microsoft.Extensions.DependencyInjection.IdentityServiceCollectionExtensions.ConfigureExternalCookie(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) -> Microsoft.Extensions.DependencyInjection.IServiceCollection +~static readonly Microsoft.AspNetCore.Identity.IdentityConstants.ApplicationScheme -> string +~static readonly Microsoft.AspNetCore.Identity.IdentityConstants.ExternalScheme -> string +~static readonly Microsoft.AspNetCore.Identity.IdentityConstants.TwoFactorRememberMeScheme -> string +~static readonly Microsoft.AspNetCore.Identity.IdentityConstants.TwoFactorUserIdScheme -> string +~virtual Microsoft.AspNetCore.Identity.DataProtectorTokenProvider.CanGenerateTwoFactorTokenAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.DataProtectorTokenProvider.GenerateAsync(string purpose, Microsoft.AspNetCore.Identity.UserManager manager, TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.DataProtectorTokenProvider.ValidateAsync(string purpose, string token, Microsoft.AspNetCore.Identity.UserManager manager, TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SecurityStampValidator.SecurityStampVerified(TUser user, Microsoft.AspNetCore.Authentication.Cookies.CookieValidatePrincipalContext context) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SecurityStampValidator.ValidateAsync(Microsoft.AspNetCore.Authentication.Cookies.CookieValidatePrincipalContext context) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SecurityStampValidator.VerifySecurityStamp(System.Security.Claims.ClaimsPrincipal principal) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.CanSignInAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.CheckPasswordSignInAsync(TUser user, string password, bool lockoutOnFailure) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.ConfigureExternalAuthenticationProperties(string provider, string redirectUrl, string userId = null) -> Microsoft.AspNetCore.Authentication.AuthenticationProperties +~virtual Microsoft.AspNetCore.Identity.SignInManager.CreateUserPrincipalAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.ExternalLoginSignInAsync(string loginProvider, string providerKey, bool isPersistent) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.ExternalLoginSignInAsync(string loginProvider, string providerKey, bool isPersistent, bool bypassTwoFactor) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.ForgetTwoFactorClientAsync() -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.GetExternalAuthenticationSchemesAsync() -> System.Threading.Tasks.Task> +~virtual Microsoft.AspNetCore.Identity.SignInManager.GetExternalLoginInfoAsync(string expectedXsrf = null) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.GetTwoFactorAuthenticationUserAsync() -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.IsLockedOut(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.IsSignedIn(System.Security.Claims.ClaimsPrincipal principal) -> bool +~virtual Microsoft.AspNetCore.Identity.SignInManager.IsTwoFactorClientRememberedAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.LockedOut(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.Logger.get -> Microsoft.Extensions.Logging.ILogger +~virtual Microsoft.AspNetCore.Identity.SignInManager.Logger.set -> void +~virtual Microsoft.AspNetCore.Identity.SignInManager.PasswordSignInAsync(TUser user, string password, bool isPersistent, bool lockoutOnFailure) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.PasswordSignInAsync(string userName, string password, bool isPersistent, bool lockoutOnFailure) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.PreSignInCheck(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.RefreshSignInAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.RememberTwoFactorClientAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.ResetLockout(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.SignInAsync(TUser user, Microsoft.AspNetCore.Authentication.AuthenticationProperties authenticationProperties, string authenticationMethod = null) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.SignInAsync(TUser user, bool isPersistent, string authenticationMethod = null) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.SignInOrTwoFactorAsync(TUser user, bool isPersistent, string loginProvider = null, bool bypassTwoFactor = false) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.SignInWithClaimsAsync(TUser user, Microsoft.AspNetCore.Authentication.AuthenticationProperties authenticationProperties, System.Collections.Generic.IEnumerable additionalClaims) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.SignInWithClaimsAsync(TUser user, bool isPersistent, System.Collections.Generic.IEnumerable additionalClaims) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.SignOutAsync() -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.TwoFactorAuthenticatorSignInAsync(string code, bool isPersistent, bool rememberClient) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.TwoFactorRecoveryCodeSignInAsync(string recoveryCode) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.TwoFactorSignInAsync(string provider, string code, bool isPersistent, bool rememberClient) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.UpdateExternalAuthenticationTokensAsync(Microsoft.AspNetCore.Identity.ExternalLoginInfo externalLogin) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.ValidateSecurityStampAsync(System.Security.Claims.ClaimsPrincipal principal) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.ValidateSecurityStampAsync(TUser user, string securityStamp) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.SignInManager.ValidateTwoFactorSecurityStampAsync(System.Security.Claims.ClaimsPrincipal principal) -> System.Threading.Tasks.Task diff --git a/src/Identity/Core/src/SignInManager.cs b/src/Identity/Core/src/SignInManager.cs index 32ad02a16d..b992907221 100644 --- a/src/Identity/Core/src/SignInManager.cs +++ b/src/Identity/Core/src/SignInManager.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Security.Claims; using System.Threading.Tasks; @@ -197,6 +198,7 @@ namespace Microsoft.AspNetCore.Identity /// Flag indicating whether the sign-in cookie should persist after the browser is closed. /// Name of the method used to authenticate the user. /// The task object representing the asynchronous operation. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required for backwards compatibility")] public virtual Task SignInAsync(TUser user, bool isPersistent, string authenticationMethod = null) => SignInAsync(user, new AuthenticationProperties { IsPersistent = isPersistent }, authenticationMethod); @@ -207,6 +209,7 @@ namespace Microsoft.AspNetCore.Identity /// Properties applied to the login and authentication cookie. /// Name of the method used to authenticate the user. /// The task object representing the asynchronous operation. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required for backwards compatibility")] public virtual Task SignInAsync(TUser user, AuthenticationProperties authenticationProperties, string authenticationMethod = null) { IList additionalClaims = Array.Empty(); diff --git a/src/Identity/Extensions.Core/src/PublicAPI.Shipped.txt b/src/Identity/Extensions.Core/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/Identity/Extensions.Core/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Identity/Extensions.Core/src/PublicAPI.Unshipped.txt b/src/Identity/Extensions.Core/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..7ad617ee2f --- /dev/null +++ b/src/Identity/Extensions.Core/src/PublicAPI.Unshipped.txt @@ -0,0 +1,540 @@ +#nullable enable +Microsoft.AspNetCore.Identity.AuthenticatorTokenProvider.AuthenticatorTokenProvider() -> void +Microsoft.AspNetCore.Identity.ClaimsIdentityOptions +Microsoft.AspNetCore.Identity.ClaimsIdentityOptions.ClaimsIdentityOptions() -> void +Microsoft.AspNetCore.Identity.DefaultPersonalDataProtector +Microsoft.AspNetCore.Identity.DefaultUserConfirmation.DefaultUserConfirmation() -> void +Microsoft.AspNetCore.Identity.EmailTokenProvider.EmailTokenProvider() -> void +Microsoft.AspNetCore.Identity.ILookupNormalizer +Microsoft.AspNetCore.Identity.ILookupProtector +Microsoft.AspNetCore.Identity.ILookupProtectorKeyRing +Microsoft.AspNetCore.Identity.IPersonalDataProtector +Microsoft.AspNetCore.Identity.IdentityBuilder +Microsoft.AspNetCore.Identity.IdentityError +Microsoft.AspNetCore.Identity.IdentityError.IdentityError() -> void +Microsoft.AspNetCore.Identity.IdentityErrorDescriber +Microsoft.AspNetCore.Identity.IdentityErrorDescriber.IdentityErrorDescriber() -> void +Microsoft.AspNetCore.Identity.IdentityOptions +Microsoft.AspNetCore.Identity.IdentityOptions.IdentityOptions() -> void +Microsoft.AspNetCore.Identity.IdentityResult +Microsoft.AspNetCore.Identity.IdentityResult.IdentityResult() -> void +Microsoft.AspNetCore.Identity.IdentityResult.Succeeded.get -> bool +Microsoft.AspNetCore.Identity.IdentityResult.Succeeded.set -> void +Microsoft.AspNetCore.Identity.LockoutOptions +Microsoft.AspNetCore.Identity.LockoutOptions.AllowedForNewUsers.get -> bool +Microsoft.AspNetCore.Identity.LockoutOptions.AllowedForNewUsers.set -> void +Microsoft.AspNetCore.Identity.LockoutOptions.DefaultLockoutTimeSpan.get -> System.TimeSpan +Microsoft.AspNetCore.Identity.LockoutOptions.DefaultLockoutTimeSpan.set -> void +Microsoft.AspNetCore.Identity.LockoutOptions.LockoutOptions() -> void +Microsoft.AspNetCore.Identity.LockoutOptions.MaxFailedAccessAttempts.get -> int +Microsoft.AspNetCore.Identity.LockoutOptions.MaxFailedAccessAttempts.set -> void +Microsoft.AspNetCore.Identity.PasswordHasherCompatibilityMode +Microsoft.AspNetCore.Identity.PasswordHasherCompatibilityMode.IdentityV2 = 0 -> Microsoft.AspNetCore.Identity.PasswordHasherCompatibilityMode +Microsoft.AspNetCore.Identity.PasswordHasherCompatibilityMode.IdentityV3 = 1 -> Microsoft.AspNetCore.Identity.PasswordHasherCompatibilityMode +Microsoft.AspNetCore.Identity.PasswordHasherOptions +Microsoft.AspNetCore.Identity.PasswordHasherOptions.CompatibilityMode.get -> Microsoft.AspNetCore.Identity.PasswordHasherCompatibilityMode +Microsoft.AspNetCore.Identity.PasswordHasherOptions.CompatibilityMode.set -> void +Microsoft.AspNetCore.Identity.PasswordHasherOptions.IterationCount.get -> int +Microsoft.AspNetCore.Identity.PasswordHasherOptions.IterationCount.set -> void +Microsoft.AspNetCore.Identity.PasswordHasherOptions.PasswordHasherOptions() -> void +Microsoft.AspNetCore.Identity.PasswordOptions +Microsoft.AspNetCore.Identity.PasswordOptions.PasswordOptions() -> void +Microsoft.AspNetCore.Identity.PasswordOptions.RequireDigit.get -> bool +Microsoft.AspNetCore.Identity.PasswordOptions.RequireDigit.set -> void +Microsoft.AspNetCore.Identity.PasswordOptions.RequireLowercase.get -> bool +Microsoft.AspNetCore.Identity.PasswordOptions.RequireLowercase.set -> void +Microsoft.AspNetCore.Identity.PasswordOptions.RequireNonAlphanumeric.get -> bool +Microsoft.AspNetCore.Identity.PasswordOptions.RequireNonAlphanumeric.set -> void +Microsoft.AspNetCore.Identity.PasswordOptions.RequireUppercase.get -> bool +Microsoft.AspNetCore.Identity.PasswordOptions.RequireUppercase.set -> void +Microsoft.AspNetCore.Identity.PasswordOptions.RequiredLength.get -> int +Microsoft.AspNetCore.Identity.PasswordOptions.RequiredLength.set -> void +Microsoft.AspNetCore.Identity.PasswordOptions.RequiredUniqueChars.get -> int +Microsoft.AspNetCore.Identity.PasswordOptions.RequiredUniqueChars.set -> void +Microsoft.AspNetCore.Identity.PasswordVerificationResult +Microsoft.AspNetCore.Identity.PasswordVerificationResult.Failed = 0 -> Microsoft.AspNetCore.Identity.PasswordVerificationResult +Microsoft.AspNetCore.Identity.PasswordVerificationResult.Success = 1 -> Microsoft.AspNetCore.Identity.PasswordVerificationResult +Microsoft.AspNetCore.Identity.PasswordVerificationResult.SuccessRehashNeeded = 2 -> Microsoft.AspNetCore.Identity.PasswordVerificationResult +Microsoft.AspNetCore.Identity.PersonalDataAttribute +Microsoft.AspNetCore.Identity.PersonalDataAttribute.PersonalDataAttribute() -> void +Microsoft.AspNetCore.Identity.PhoneNumberTokenProvider.PhoneNumberTokenProvider() -> void +Microsoft.AspNetCore.Identity.ProtectedPersonalDataAttribute +Microsoft.AspNetCore.Identity.ProtectedPersonalDataAttribute.ProtectedPersonalDataAttribute() -> void +Microsoft.AspNetCore.Identity.RoleManager.Dispose() -> void +Microsoft.AspNetCore.Identity.RoleManager.ThrowIfDisposed() -> void +Microsoft.AspNetCore.Identity.SignInOptions +Microsoft.AspNetCore.Identity.SignInOptions.RequireConfirmedAccount.get -> bool +Microsoft.AspNetCore.Identity.SignInOptions.RequireConfirmedAccount.set -> void +Microsoft.AspNetCore.Identity.SignInOptions.RequireConfirmedEmail.get -> bool +Microsoft.AspNetCore.Identity.SignInOptions.RequireConfirmedEmail.set -> void +Microsoft.AspNetCore.Identity.SignInOptions.RequireConfirmedPhoneNumber.get -> bool +Microsoft.AspNetCore.Identity.SignInOptions.RequireConfirmedPhoneNumber.set -> void +Microsoft.AspNetCore.Identity.SignInOptions.SignInOptions() -> void +Microsoft.AspNetCore.Identity.SignInResult +Microsoft.AspNetCore.Identity.SignInResult.IsLockedOut.get -> bool +Microsoft.AspNetCore.Identity.SignInResult.IsLockedOut.set -> void +Microsoft.AspNetCore.Identity.SignInResult.IsNotAllowed.get -> bool +Microsoft.AspNetCore.Identity.SignInResult.IsNotAllowed.set -> void +Microsoft.AspNetCore.Identity.SignInResult.RequiresTwoFactor.get -> bool +Microsoft.AspNetCore.Identity.SignInResult.RequiresTwoFactor.set -> void +Microsoft.AspNetCore.Identity.SignInResult.SignInResult() -> void +Microsoft.AspNetCore.Identity.SignInResult.Succeeded.get -> bool +Microsoft.AspNetCore.Identity.SignInResult.Succeeded.set -> void +Microsoft.AspNetCore.Identity.StoreOptions +Microsoft.AspNetCore.Identity.StoreOptions.MaxLengthForKeys.get -> int +Microsoft.AspNetCore.Identity.StoreOptions.MaxLengthForKeys.set -> void +Microsoft.AspNetCore.Identity.StoreOptions.ProtectPersonalData.get -> bool +Microsoft.AspNetCore.Identity.StoreOptions.ProtectPersonalData.set -> void +Microsoft.AspNetCore.Identity.StoreOptions.StoreOptions() -> void +Microsoft.AspNetCore.Identity.TokenOptions +Microsoft.AspNetCore.Identity.TokenOptions.TokenOptions() -> void +Microsoft.AspNetCore.Identity.TokenProviderDescriptor +Microsoft.AspNetCore.Identity.TotpSecurityStampBasedTokenProvider.TotpSecurityStampBasedTokenProvider() -> void +Microsoft.AspNetCore.Identity.UpperInvariantLookupNormalizer +Microsoft.AspNetCore.Identity.UpperInvariantLookupNormalizer.UpperInvariantLookupNormalizer() -> void +Microsoft.AspNetCore.Identity.UserLoginInfo +Microsoft.AspNetCore.Identity.UserManager.Dispose() -> void +Microsoft.AspNetCore.Identity.UserManager.ThrowIfDisposed() -> void +Microsoft.AspNetCore.Identity.UserOptions +Microsoft.AspNetCore.Identity.UserOptions.RequireUniqueEmail.get -> bool +Microsoft.AspNetCore.Identity.UserOptions.RequireUniqueEmail.set -> void +Microsoft.AspNetCore.Identity.UserOptions.UserOptions() -> void +Microsoft.Extensions.DependencyInjection.IdentityServiceCollectionExtensions +System.Security.Claims.PrincipalExtensions +virtual Microsoft.AspNetCore.Identity.PasswordValidator.IsDigit(char c) -> bool +virtual Microsoft.AspNetCore.Identity.PasswordValidator.IsLetterOrDigit(char c) -> bool +virtual Microsoft.AspNetCore.Identity.PasswordValidator.IsLower(char c) -> bool +virtual Microsoft.AspNetCore.Identity.PasswordValidator.IsUpper(char c) -> bool +virtual Microsoft.AspNetCore.Identity.RoleManager.CancellationToken.get -> System.Threading.CancellationToken +virtual Microsoft.AspNetCore.Identity.RoleManager.Dispose(bool disposing) -> void +virtual Microsoft.AspNetCore.Identity.RoleManager.SupportsQueryableRoles.get -> bool +virtual Microsoft.AspNetCore.Identity.RoleManager.SupportsRoleClaims.get -> bool +virtual Microsoft.AspNetCore.Identity.UserManager.CancellationToken.get -> System.Threading.CancellationToken +virtual Microsoft.AspNetCore.Identity.UserManager.Dispose(bool disposing) -> void +virtual Microsoft.AspNetCore.Identity.UserManager.SupportsQueryableUsers.get -> bool +virtual Microsoft.AspNetCore.Identity.UserManager.SupportsUserAuthenticationTokens.get -> bool +virtual Microsoft.AspNetCore.Identity.UserManager.SupportsUserAuthenticatorKey.get -> bool +virtual Microsoft.AspNetCore.Identity.UserManager.SupportsUserClaim.get -> bool +virtual Microsoft.AspNetCore.Identity.UserManager.SupportsUserEmail.get -> bool +virtual Microsoft.AspNetCore.Identity.UserManager.SupportsUserLockout.get -> bool +virtual Microsoft.AspNetCore.Identity.UserManager.SupportsUserLogin.get -> bool +virtual Microsoft.AspNetCore.Identity.UserManager.SupportsUserPassword.get -> bool +virtual Microsoft.AspNetCore.Identity.UserManager.SupportsUserPhoneNumber.get -> bool +virtual Microsoft.AspNetCore.Identity.UserManager.SupportsUserRole.get -> bool +virtual Microsoft.AspNetCore.Identity.UserManager.SupportsUserSecurityStamp.get -> bool +virtual Microsoft.AspNetCore.Identity.UserManager.SupportsUserTwoFactor.get -> bool +virtual Microsoft.AspNetCore.Identity.UserManager.SupportsUserTwoFactorRecoveryCodes.get -> bool +~Microsoft.AspNetCore.Identity.AuthenticatorTokenProvider +~Microsoft.AspNetCore.Identity.ClaimsIdentityOptions.EmailClaimType.get -> string +~Microsoft.AspNetCore.Identity.ClaimsIdentityOptions.EmailClaimType.set -> void +~Microsoft.AspNetCore.Identity.ClaimsIdentityOptions.RoleClaimType.get -> string +~Microsoft.AspNetCore.Identity.ClaimsIdentityOptions.RoleClaimType.set -> void +~Microsoft.AspNetCore.Identity.ClaimsIdentityOptions.SecurityStampClaimType.get -> string +~Microsoft.AspNetCore.Identity.ClaimsIdentityOptions.SecurityStampClaimType.set -> void +~Microsoft.AspNetCore.Identity.ClaimsIdentityOptions.UserIdClaimType.get -> string +~Microsoft.AspNetCore.Identity.ClaimsIdentityOptions.UserIdClaimType.set -> void +~Microsoft.AspNetCore.Identity.ClaimsIdentityOptions.UserNameClaimType.get -> string +~Microsoft.AspNetCore.Identity.ClaimsIdentityOptions.UserNameClaimType.set -> void +~Microsoft.AspNetCore.Identity.DefaultPersonalDataProtector.DefaultPersonalDataProtector(Microsoft.AspNetCore.Identity.ILookupProtectorKeyRing keyRing, Microsoft.AspNetCore.Identity.ILookupProtector protector) -> void +~Microsoft.AspNetCore.Identity.DefaultUserConfirmation +~Microsoft.AspNetCore.Identity.EmailTokenProvider +~Microsoft.AspNetCore.Identity.ILookupNormalizer.NormalizeEmail(string email) -> string +~Microsoft.AspNetCore.Identity.ILookupNormalizer.NormalizeName(string name) -> string +~Microsoft.AspNetCore.Identity.ILookupProtector.Protect(string keyId, string data) -> string +~Microsoft.AspNetCore.Identity.ILookupProtector.Unprotect(string keyId, string data) -> string +~Microsoft.AspNetCore.Identity.ILookupProtectorKeyRing.CurrentKeyId.get -> string +~Microsoft.AspNetCore.Identity.ILookupProtectorKeyRing.GetAllKeyIds() -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Identity.ILookupProtectorKeyRing.this[string keyId].get -> string +~Microsoft.AspNetCore.Identity.IPasswordHasher +~Microsoft.AspNetCore.Identity.IPasswordHasher.HashPassword(TUser user, string password) -> string +~Microsoft.AspNetCore.Identity.IPasswordHasher.VerifyHashedPassword(TUser user, string hashedPassword, string providedPassword) -> Microsoft.AspNetCore.Identity.PasswordVerificationResult +~Microsoft.AspNetCore.Identity.IPasswordValidator +~Microsoft.AspNetCore.Identity.IPasswordValidator.ValidateAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user, string password) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IPersonalDataProtector.Protect(string data) -> string +~Microsoft.AspNetCore.Identity.IPersonalDataProtector.Unprotect(string data) -> string +~Microsoft.AspNetCore.Identity.IProtectedUserStore +~Microsoft.AspNetCore.Identity.IQueryableRoleStore +~Microsoft.AspNetCore.Identity.IQueryableRoleStore.Roles.get -> System.Linq.IQueryable +~Microsoft.AspNetCore.Identity.IQueryableUserStore +~Microsoft.AspNetCore.Identity.IQueryableUserStore.Users.get -> System.Linq.IQueryable +~Microsoft.AspNetCore.Identity.IRoleClaimStore +~Microsoft.AspNetCore.Identity.IRoleClaimStore.AddClaimAsync(TRole role, System.Security.Claims.Claim claim, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IRoleClaimStore.GetClaimsAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task> +~Microsoft.AspNetCore.Identity.IRoleClaimStore.RemoveClaimAsync(TRole role, System.Security.Claims.Claim claim, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IRoleStore +~Microsoft.AspNetCore.Identity.IRoleStore.CreateAsync(TRole role, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IRoleStore.DeleteAsync(TRole role, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IRoleStore.FindByIdAsync(string roleId, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IRoleStore.FindByNameAsync(string normalizedRoleName, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IRoleStore.GetNormalizedRoleNameAsync(TRole role, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IRoleStore.GetRoleIdAsync(TRole role, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IRoleStore.GetRoleNameAsync(TRole role, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IRoleStore.SetNormalizedRoleNameAsync(TRole role, string normalizedName, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IRoleStore.SetRoleNameAsync(TRole role, string roleName, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IRoleStore.UpdateAsync(TRole role, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IRoleValidator +~Microsoft.AspNetCore.Identity.IRoleValidator.ValidateAsync(Microsoft.AspNetCore.Identity.RoleManager manager, TRole role) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserAuthenticationTokenStore +~Microsoft.AspNetCore.Identity.IUserAuthenticationTokenStore.GetTokenAsync(TUser user, string loginProvider, string name, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserAuthenticationTokenStore.RemoveTokenAsync(TUser user, string loginProvider, string name, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserAuthenticationTokenStore.SetTokenAsync(TUser user, string loginProvider, string name, string value, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserAuthenticatorKeyStore +~Microsoft.AspNetCore.Identity.IUserAuthenticatorKeyStore.GetAuthenticatorKeyAsync(TUser user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserAuthenticatorKeyStore.SetAuthenticatorKeyAsync(TUser user, string key, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserClaimStore +~Microsoft.AspNetCore.Identity.IUserClaimStore.AddClaimsAsync(TUser user, System.Collections.Generic.IEnumerable claims, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserClaimStore.GetClaimsAsync(TUser user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task> +~Microsoft.AspNetCore.Identity.IUserClaimStore.GetUsersForClaimAsync(System.Security.Claims.Claim claim, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task> +~Microsoft.AspNetCore.Identity.IUserClaimStore.RemoveClaimsAsync(TUser user, System.Collections.Generic.IEnumerable claims, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserClaimStore.ReplaceClaimAsync(TUser user, System.Security.Claims.Claim claim, System.Security.Claims.Claim newClaim, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserClaimsPrincipalFactory +~Microsoft.AspNetCore.Identity.IUserClaimsPrincipalFactory.CreateAsync(TUser user) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserConfirmation +~Microsoft.AspNetCore.Identity.IUserConfirmation.IsConfirmedAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserEmailStore +~Microsoft.AspNetCore.Identity.IUserEmailStore.FindByEmailAsync(string normalizedEmail, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserEmailStore.GetEmailAsync(TUser user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserEmailStore.GetEmailConfirmedAsync(TUser user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserEmailStore.GetNormalizedEmailAsync(TUser user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserEmailStore.SetEmailAsync(TUser user, string email, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserEmailStore.SetEmailConfirmedAsync(TUser user, bool confirmed, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserEmailStore.SetNormalizedEmailAsync(TUser user, string normalizedEmail, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserLockoutStore +~Microsoft.AspNetCore.Identity.IUserLockoutStore.GetAccessFailedCountAsync(TUser user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserLockoutStore.GetLockoutEnabledAsync(TUser user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserLockoutStore.GetLockoutEndDateAsync(TUser user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserLockoutStore.IncrementAccessFailedCountAsync(TUser user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserLockoutStore.ResetAccessFailedCountAsync(TUser user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserLockoutStore.SetLockoutEnabledAsync(TUser user, bool enabled, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserLockoutStore.SetLockoutEndDateAsync(TUser user, System.DateTimeOffset? lockoutEnd, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserLoginStore +~Microsoft.AspNetCore.Identity.IUserLoginStore.AddLoginAsync(TUser user, Microsoft.AspNetCore.Identity.UserLoginInfo login, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserLoginStore.FindByLoginAsync(string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserLoginStore.GetLoginsAsync(TUser user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task> +~Microsoft.AspNetCore.Identity.IUserLoginStore.RemoveLoginAsync(TUser user, string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserPasswordStore +~Microsoft.AspNetCore.Identity.IUserPasswordStore.GetPasswordHashAsync(TUser user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserPasswordStore.HasPasswordAsync(TUser user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserPasswordStore.SetPasswordHashAsync(TUser user, string passwordHash, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserPhoneNumberStore +~Microsoft.AspNetCore.Identity.IUserPhoneNumberStore.GetPhoneNumberAsync(TUser user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserPhoneNumberStore.GetPhoneNumberConfirmedAsync(TUser user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserPhoneNumberStore.SetPhoneNumberAsync(TUser user, string phoneNumber, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserPhoneNumberStore.SetPhoneNumberConfirmedAsync(TUser user, bool confirmed, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserRoleStore +~Microsoft.AspNetCore.Identity.IUserRoleStore.AddToRoleAsync(TUser user, string roleName, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserRoleStore.GetRolesAsync(TUser user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task> +~Microsoft.AspNetCore.Identity.IUserRoleStore.GetUsersInRoleAsync(string roleName, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task> +~Microsoft.AspNetCore.Identity.IUserRoleStore.IsInRoleAsync(TUser user, string roleName, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserRoleStore.RemoveFromRoleAsync(TUser user, string roleName, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserSecurityStampStore +~Microsoft.AspNetCore.Identity.IUserSecurityStampStore.GetSecurityStampAsync(TUser user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserSecurityStampStore.SetSecurityStampAsync(TUser user, string stamp, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserStore +~Microsoft.AspNetCore.Identity.IUserStore.CreateAsync(TUser user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserStore.DeleteAsync(TUser user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserStore.FindByIdAsync(string userId, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserStore.FindByNameAsync(string normalizedUserName, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserStore.GetNormalizedUserNameAsync(TUser user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserStore.GetUserIdAsync(TUser user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserStore.GetUserNameAsync(TUser user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserStore.SetNormalizedUserNameAsync(TUser user, string normalizedName, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserStore.SetUserNameAsync(TUser user, string userName, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserStore.UpdateAsync(TUser user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserTwoFactorRecoveryCodeStore +~Microsoft.AspNetCore.Identity.IUserTwoFactorRecoveryCodeStore.CountCodesAsync(TUser user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserTwoFactorRecoveryCodeStore.RedeemCodeAsync(TUser user, string code, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserTwoFactorRecoveryCodeStore.ReplaceCodesAsync(TUser user, System.Collections.Generic.IEnumerable recoveryCodes, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserTwoFactorStore +~Microsoft.AspNetCore.Identity.IUserTwoFactorStore.GetTwoFactorEnabledAsync(TUser user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserTwoFactorStore.SetTwoFactorEnabledAsync(TUser user, bool enabled, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserTwoFactorTokenProvider +~Microsoft.AspNetCore.Identity.IUserTwoFactorTokenProvider.CanGenerateTwoFactorTokenAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserTwoFactorTokenProvider.GenerateAsync(string purpose, Microsoft.AspNetCore.Identity.UserManager manager, TUser user) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserTwoFactorTokenProvider.ValidateAsync(string purpose, string token, Microsoft.AspNetCore.Identity.UserManager manager, TUser user) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IUserValidator +~Microsoft.AspNetCore.Identity.IUserValidator.ValidateAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.IdentityBuilder.IdentityBuilder(System.Type user, Microsoft.Extensions.DependencyInjection.IServiceCollection services) -> void +~Microsoft.AspNetCore.Identity.IdentityBuilder.IdentityBuilder(System.Type user, System.Type role, Microsoft.Extensions.DependencyInjection.IServiceCollection services) -> void +~Microsoft.AspNetCore.Identity.IdentityBuilder.RoleType.get -> System.Type +~Microsoft.AspNetCore.Identity.IdentityBuilder.Services.get -> Microsoft.Extensions.DependencyInjection.IServiceCollection +~Microsoft.AspNetCore.Identity.IdentityBuilder.UserType.get -> System.Type +~Microsoft.AspNetCore.Identity.IdentityError.Code.get -> string +~Microsoft.AspNetCore.Identity.IdentityError.Code.set -> void +~Microsoft.AspNetCore.Identity.IdentityError.Description.get -> string +~Microsoft.AspNetCore.Identity.IdentityError.Description.set -> void +~Microsoft.AspNetCore.Identity.IdentityOptions.ClaimsIdentity.get -> Microsoft.AspNetCore.Identity.ClaimsIdentityOptions +~Microsoft.AspNetCore.Identity.IdentityOptions.ClaimsIdentity.set -> void +~Microsoft.AspNetCore.Identity.IdentityOptions.Lockout.get -> Microsoft.AspNetCore.Identity.LockoutOptions +~Microsoft.AspNetCore.Identity.IdentityOptions.Lockout.set -> void +~Microsoft.AspNetCore.Identity.IdentityOptions.Password.get -> Microsoft.AspNetCore.Identity.PasswordOptions +~Microsoft.AspNetCore.Identity.IdentityOptions.Password.set -> void +~Microsoft.AspNetCore.Identity.IdentityOptions.SignIn.get -> Microsoft.AspNetCore.Identity.SignInOptions +~Microsoft.AspNetCore.Identity.IdentityOptions.SignIn.set -> void +~Microsoft.AspNetCore.Identity.IdentityOptions.Stores.get -> Microsoft.AspNetCore.Identity.StoreOptions +~Microsoft.AspNetCore.Identity.IdentityOptions.Stores.set -> void +~Microsoft.AspNetCore.Identity.IdentityOptions.Tokens.get -> Microsoft.AspNetCore.Identity.TokenOptions +~Microsoft.AspNetCore.Identity.IdentityOptions.Tokens.set -> void +~Microsoft.AspNetCore.Identity.IdentityOptions.User.get -> Microsoft.AspNetCore.Identity.UserOptions +~Microsoft.AspNetCore.Identity.IdentityOptions.User.set -> void +~Microsoft.AspNetCore.Identity.IdentityResult.Errors.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Identity.PasswordHasher +~Microsoft.AspNetCore.Identity.PasswordHasher.PasswordHasher(Microsoft.Extensions.Options.IOptions optionsAccessor = null) -> void +~Microsoft.AspNetCore.Identity.PasswordValidator +~Microsoft.AspNetCore.Identity.PasswordValidator.Describer.get -> Microsoft.AspNetCore.Identity.IdentityErrorDescriber +~Microsoft.AspNetCore.Identity.PasswordValidator.PasswordValidator(Microsoft.AspNetCore.Identity.IdentityErrorDescriber errors = null) -> void +~Microsoft.AspNetCore.Identity.PhoneNumberTokenProvider +~Microsoft.AspNetCore.Identity.RoleManager +~Microsoft.AspNetCore.Identity.RoleManager.ErrorDescriber.get -> Microsoft.AspNetCore.Identity.IdentityErrorDescriber +~Microsoft.AspNetCore.Identity.RoleManager.ErrorDescriber.set -> void +~Microsoft.AspNetCore.Identity.RoleManager.KeyNormalizer.get -> Microsoft.AspNetCore.Identity.ILookupNormalizer +~Microsoft.AspNetCore.Identity.RoleManager.KeyNormalizer.set -> void +~Microsoft.AspNetCore.Identity.RoleManager.RoleManager(Microsoft.AspNetCore.Identity.IRoleStore store, System.Collections.Generic.IEnumerable> roleValidators, Microsoft.AspNetCore.Identity.ILookupNormalizer keyNormalizer, Microsoft.AspNetCore.Identity.IdentityErrorDescriber errors, Microsoft.Extensions.Logging.ILogger> logger) -> void +~Microsoft.AspNetCore.Identity.RoleManager.RoleValidators.get -> System.Collections.Generic.IList> +~Microsoft.AspNetCore.Identity.RoleManager.Store.get -> Microsoft.AspNetCore.Identity.IRoleStore +~Microsoft.AspNetCore.Identity.RoleValidator +~Microsoft.AspNetCore.Identity.RoleValidator.RoleValidator(Microsoft.AspNetCore.Identity.IdentityErrorDescriber errors = null) -> void +~Microsoft.AspNetCore.Identity.TokenOptions.AuthenticatorIssuer.get -> string +~Microsoft.AspNetCore.Identity.TokenOptions.AuthenticatorIssuer.set -> void +~Microsoft.AspNetCore.Identity.TokenOptions.AuthenticatorTokenProvider.get -> string +~Microsoft.AspNetCore.Identity.TokenOptions.AuthenticatorTokenProvider.set -> void +~Microsoft.AspNetCore.Identity.TokenOptions.ChangeEmailTokenProvider.get -> string +~Microsoft.AspNetCore.Identity.TokenOptions.ChangeEmailTokenProvider.set -> void +~Microsoft.AspNetCore.Identity.TokenOptions.ChangePhoneNumberTokenProvider.get -> string +~Microsoft.AspNetCore.Identity.TokenOptions.ChangePhoneNumberTokenProvider.set -> void +~Microsoft.AspNetCore.Identity.TokenOptions.EmailConfirmationTokenProvider.get -> string +~Microsoft.AspNetCore.Identity.TokenOptions.EmailConfirmationTokenProvider.set -> void +~Microsoft.AspNetCore.Identity.TokenOptions.PasswordResetTokenProvider.get -> string +~Microsoft.AspNetCore.Identity.TokenOptions.PasswordResetTokenProvider.set -> void +~Microsoft.AspNetCore.Identity.TokenOptions.ProviderMap.get -> System.Collections.Generic.Dictionary +~Microsoft.AspNetCore.Identity.TokenOptions.ProviderMap.set -> void +~Microsoft.AspNetCore.Identity.TokenProviderDescriptor.ProviderInstance.get -> object +~Microsoft.AspNetCore.Identity.TokenProviderDescriptor.ProviderInstance.set -> void +~Microsoft.AspNetCore.Identity.TokenProviderDescriptor.ProviderType.get -> System.Type +~Microsoft.AspNetCore.Identity.TokenProviderDescriptor.TokenProviderDescriptor(System.Type type) -> void +~Microsoft.AspNetCore.Identity.TotpSecurityStampBasedTokenProvider +~Microsoft.AspNetCore.Identity.UpperInvariantLookupNormalizer.NormalizeEmail(string email) -> string +~Microsoft.AspNetCore.Identity.UpperInvariantLookupNormalizer.NormalizeName(string name) -> string +~Microsoft.AspNetCore.Identity.UserClaimsPrincipalFactory +~Microsoft.AspNetCore.Identity.UserClaimsPrincipalFactory.RoleManager.get -> Microsoft.AspNetCore.Identity.RoleManager +~Microsoft.AspNetCore.Identity.UserClaimsPrincipalFactory.UserClaimsPrincipalFactory(Microsoft.AspNetCore.Identity.UserManager userManager, Microsoft.AspNetCore.Identity.RoleManager roleManager, Microsoft.Extensions.Options.IOptions options) -> void +~Microsoft.AspNetCore.Identity.UserClaimsPrincipalFactory +~Microsoft.AspNetCore.Identity.UserClaimsPrincipalFactory.Options.get -> Microsoft.AspNetCore.Identity.IdentityOptions +~Microsoft.AspNetCore.Identity.UserClaimsPrincipalFactory.UserClaimsPrincipalFactory(Microsoft.AspNetCore.Identity.UserManager userManager, Microsoft.Extensions.Options.IOptions optionsAccessor) -> void +~Microsoft.AspNetCore.Identity.UserClaimsPrincipalFactory.UserManager.get -> Microsoft.AspNetCore.Identity.UserManager +~Microsoft.AspNetCore.Identity.UserLoginInfo.LoginProvider.get -> string +~Microsoft.AspNetCore.Identity.UserLoginInfo.LoginProvider.set -> void +~Microsoft.AspNetCore.Identity.UserLoginInfo.ProviderDisplayName.get -> string +~Microsoft.AspNetCore.Identity.UserLoginInfo.ProviderDisplayName.set -> void +~Microsoft.AspNetCore.Identity.UserLoginInfo.ProviderKey.get -> string +~Microsoft.AspNetCore.Identity.UserLoginInfo.ProviderKey.set -> void +~Microsoft.AspNetCore.Identity.UserLoginInfo.UserLoginInfo(string loginProvider, string providerKey, string displayName) -> void +~Microsoft.AspNetCore.Identity.UserManager +~Microsoft.AspNetCore.Identity.UserManager.ErrorDescriber.get -> Microsoft.AspNetCore.Identity.IdentityErrorDescriber +~Microsoft.AspNetCore.Identity.UserManager.ErrorDescriber.set -> void +~Microsoft.AspNetCore.Identity.UserManager.KeyNormalizer.get -> Microsoft.AspNetCore.Identity.ILookupNormalizer +~Microsoft.AspNetCore.Identity.UserManager.KeyNormalizer.set -> void +~Microsoft.AspNetCore.Identity.UserManager.Options.get -> Microsoft.AspNetCore.Identity.IdentityOptions +~Microsoft.AspNetCore.Identity.UserManager.Options.set -> void +~Microsoft.AspNetCore.Identity.UserManager.PasswordHasher.get -> Microsoft.AspNetCore.Identity.IPasswordHasher +~Microsoft.AspNetCore.Identity.UserManager.PasswordHasher.set -> void +~Microsoft.AspNetCore.Identity.UserManager.PasswordValidators.get -> System.Collections.Generic.IList> +~Microsoft.AspNetCore.Identity.UserManager.Store.get -> Microsoft.AspNetCore.Identity.IUserStore +~Microsoft.AspNetCore.Identity.UserManager.Store.set -> void +~Microsoft.AspNetCore.Identity.UserManager.UserManager(Microsoft.AspNetCore.Identity.IUserStore store, Microsoft.Extensions.Options.IOptions optionsAccessor, Microsoft.AspNetCore.Identity.IPasswordHasher passwordHasher, System.Collections.Generic.IEnumerable> userValidators, System.Collections.Generic.IEnumerable> passwordValidators, Microsoft.AspNetCore.Identity.ILookupNormalizer keyNormalizer, Microsoft.AspNetCore.Identity.IdentityErrorDescriber errors, System.IServiceProvider services, Microsoft.Extensions.Logging.ILogger> logger) -> void +~Microsoft.AspNetCore.Identity.UserManager.UserValidators.get -> System.Collections.Generic.IList> +~Microsoft.AspNetCore.Identity.UserManager.ValidatePasswordAsync(TUser user, string password) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.UserManager.ValidateUserAsync(TUser user) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Identity.UserOptions.AllowedUserNameCharacters.get -> string +~Microsoft.AspNetCore.Identity.UserOptions.AllowedUserNameCharacters.set -> void +~Microsoft.AspNetCore.Identity.UserValidator +~Microsoft.AspNetCore.Identity.UserValidator.Describer.get -> Microsoft.AspNetCore.Identity.IdentityErrorDescriber +~Microsoft.AspNetCore.Identity.UserValidator.UserValidator(Microsoft.AspNetCore.Identity.IdentityErrorDescriber errors = null) -> void +~abstract Microsoft.AspNetCore.Identity.TotpSecurityStampBasedTokenProvider.CanGenerateTwoFactorTokenAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user) -> System.Threading.Tasks.Task +~const Microsoft.AspNetCore.Identity.UserManager.ChangePhoneNumberTokenPurpose = "ChangePhoneNumber" -> string +~const Microsoft.AspNetCore.Identity.UserManager.ConfirmEmailTokenPurpose = "EmailConfirmation" -> string +~const Microsoft.AspNetCore.Identity.UserManager.ResetPasswordTokenPurpose = "ResetPassword" -> string +~override Microsoft.AspNetCore.Identity.EmailTokenProvider.CanGenerateTwoFactorTokenAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Identity.EmailTokenProvider.GetUserModifierAsync(string purpose, Microsoft.AspNetCore.Identity.UserManager manager, TUser user) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Identity.IdentityResult.ToString() -> string +~override Microsoft.AspNetCore.Identity.PhoneNumberTokenProvider.CanGenerateTwoFactorTokenAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Identity.PhoneNumberTokenProvider.GetUserModifierAsync(string purpose, Microsoft.AspNetCore.Identity.UserManager manager, TUser user) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Identity.SignInResult.ToString() -> string +~override Microsoft.AspNetCore.Identity.UserClaimsPrincipalFactory.GenerateClaimsAsync(TUser user) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Identity.IdentityResult.Failed(params Microsoft.AspNetCore.Identity.IdentityError[] errors) -> Microsoft.AspNetCore.Identity.IdentityResult +~static Microsoft.AspNetCore.Identity.IdentityResult.Success.get -> Microsoft.AspNetCore.Identity.IdentityResult +~static Microsoft.AspNetCore.Identity.SignInResult.Failed.get -> Microsoft.AspNetCore.Identity.SignInResult +~static Microsoft.AspNetCore.Identity.SignInResult.LockedOut.get -> Microsoft.AspNetCore.Identity.SignInResult +~static Microsoft.AspNetCore.Identity.SignInResult.NotAllowed.get -> Microsoft.AspNetCore.Identity.SignInResult +~static Microsoft.AspNetCore.Identity.SignInResult.Success.get -> Microsoft.AspNetCore.Identity.SignInResult +~static Microsoft.AspNetCore.Identity.SignInResult.TwoFactorRequired.get -> Microsoft.AspNetCore.Identity.SignInResult +~static Microsoft.AspNetCore.Identity.UserManager.GetChangeEmailTokenPurpose(string newEmail) -> string +~static Microsoft.Extensions.DependencyInjection.IdentityServiceCollectionExtensions.AddIdentityCore(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) -> Microsoft.AspNetCore.Identity.IdentityBuilder +~static Microsoft.Extensions.DependencyInjection.IdentityServiceCollectionExtensions.AddIdentityCore(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action setupAction) -> Microsoft.AspNetCore.Identity.IdentityBuilder +~static System.Security.Claims.PrincipalExtensions.FindFirstValue(this System.Security.Claims.ClaimsPrincipal principal, string claimType) -> string +~static readonly Microsoft.AspNetCore.Identity.TokenOptions.DefaultAuthenticatorProvider -> string +~static readonly Microsoft.AspNetCore.Identity.TokenOptions.DefaultEmailProvider -> string +~static readonly Microsoft.AspNetCore.Identity.TokenOptions.DefaultPhoneProvider -> string +~static readonly Microsoft.AspNetCore.Identity.TokenOptions.DefaultProvider -> string +~virtual Microsoft.AspNetCore.Identity.AuthenticatorTokenProvider.CanGenerateTwoFactorTokenAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.AuthenticatorTokenProvider.GenerateAsync(string purpose, Microsoft.AspNetCore.Identity.UserManager manager, TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.AuthenticatorTokenProvider.ValidateAsync(string purpose, string token, Microsoft.AspNetCore.Identity.UserManager manager, TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.DefaultPersonalDataProtector.Protect(string data) -> string +~virtual Microsoft.AspNetCore.Identity.DefaultPersonalDataProtector.Unprotect(string data) -> string +~virtual Microsoft.AspNetCore.Identity.DefaultUserConfirmation.IsConfirmedAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.IdentityBuilder.AddClaimsPrincipalFactory() -> Microsoft.AspNetCore.Identity.IdentityBuilder +~virtual Microsoft.AspNetCore.Identity.IdentityBuilder.AddErrorDescriber() -> Microsoft.AspNetCore.Identity.IdentityBuilder +~virtual Microsoft.AspNetCore.Identity.IdentityBuilder.AddPasswordValidator() -> Microsoft.AspNetCore.Identity.IdentityBuilder +~virtual Microsoft.AspNetCore.Identity.IdentityBuilder.AddPersonalDataProtection() -> Microsoft.AspNetCore.Identity.IdentityBuilder +~virtual Microsoft.AspNetCore.Identity.IdentityBuilder.AddRoleManager() -> Microsoft.AspNetCore.Identity.IdentityBuilder +~virtual Microsoft.AspNetCore.Identity.IdentityBuilder.AddRoleStore() -> Microsoft.AspNetCore.Identity.IdentityBuilder +~virtual Microsoft.AspNetCore.Identity.IdentityBuilder.AddRoleValidator() -> Microsoft.AspNetCore.Identity.IdentityBuilder +~virtual Microsoft.AspNetCore.Identity.IdentityBuilder.AddRoles() -> Microsoft.AspNetCore.Identity.IdentityBuilder +~virtual Microsoft.AspNetCore.Identity.IdentityBuilder.AddTokenProvider(string providerName, System.Type provider) -> Microsoft.AspNetCore.Identity.IdentityBuilder +~virtual Microsoft.AspNetCore.Identity.IdentityBuilder.AddTokenProvider(string providerName) -> Microsoft.AspNetCore.Identity.IdentityBuilder +~virtual Microsoft.AspNetCore.Identity.IdentityBuilder.AddUserConfirmation() -> Microsoft.AspNetCore.Identity.IdentityBuilder +~virtual Microsoft.AspNetCore.Identity.IdentityBuilder.AddUserManager() -> Microsoft.AspNetCore.Identity.IdentityBuilder +~virtual Microsoft.AspNetCore.Identity.IdentityBuilder.AddUserStore() -> Microsoft.AspNetCore.Identity.IdentityBuilder +~virtual Microsoft.AspNetCore.Identity.IdentityBuilder.AddUserValidator() -> Microsoft.AspNetCore.Identity.IdentityBuilder +~virtual Microsoft.AspNetCore.Identity.IdentityErrorDescriber.ConcurrencyFailure() -> Microsoft.AspNetCore.Identity.IdentityError +~virtual Microsoft.AspNetCore.Identity.IdentityErrorDescriber.DefaultError() -> Microsoft.AspNetCore.Identity.IdentityError +~virtual Microsoft.AspNetCore.Identity.IdentityErrorDescriber.DuplicateEmail(string email) -> Microsoft.AspNetCore.Identity.IdentityError +~virtual Microsoft.AspNetCore.Identity.IdentityErrorDescriber.DuplicateRoleName(string role) -> Microsoft.AspNetCore.Identity.IdentityError +~virtual Microsoft.AspNetCore.Identity.IdentityErrorDescriber.DuplicateUserName(string userName) -> Microsoft.AspNetCore.Identity.IdentityError +~virtual Microsoft.AspNetCore.Identity.IdentityErrorDescriber.InvalidEmail(string email) -> Microsoft.AspNetCore.Identity.IdentityError +~virtual Microsoft.AspNetCore.Identity.IdentityErrorDescriber.InvalidRoleName(string role) -> Microsoft.AspNetCore.Identity.IdentityError +~virtual Microsoft.AspNetCore.Identity.IdentityErrorDescriber.InvalidToken() -> Microsoft.AspNetCore.Identity.IdentityError +~virtual Microsoft.AspNetCore.Identity.IdentityErrorDescriber.InvalidUserName(string userName) -> Microsoft.AspNetCore.Identity.IdentityError +~virtual Microsoft.AspNetCore.Identity.IdentityErrorDescriber.LoginAlreadyAssociated() -> Microsoft.AspNetCore.Identity.IdentityError +~virtual Microsoft.AspNetCore.Identity.IdentityErrorDescriber.PasswordMismatch() -> Microsoft.AspNetCore.Identity.IdentityError +~virtual Microsoft.AspNetCore.Identity.IdentityErrorDescriber.PasswordRequiresDigit() -> Microsoft.AspNetCore.Identity.IdentityError +~virtual Microsoft.AspNetCore.Identity.IdentityErrorDescriber.PasswordRequiresLower() -> Microsoft.AspNetCore.Identity.IdentityError +~virtual Microsoft.AspNetCore.Identity.IdentityErrorDescriber.PasswordRequiresNonAlphanumeric() -> Microsoft.AspNetCore.Identity.IdentityError +~virtual Microsoft.AspNetCore.Identity.IdentityErrorDescriber.PasswordRequiresUniqueChars(int uniqueChars) -> Microsoft.AspNetCore.Identity.IdentityError +~virtual Microsoft.AspNetCore.Identity.IdentityErrorDescriber.PasswordRequiresUpper() -> Microsoft.AspNetCore.Identity.IdentityError +~virtual Microsoft.AspNetCore.Identity.IdentityErrorDescriber.PasswordTooShort(int length) -> Microsoft.AspNetCore.Identity.IdentityError +~virtual Microsoft.AspNetCore.Identity.IdentityErrorDescriber.RecoveryCodeRedemptionFailed() -> Microsoft.AspNetCore.Identity.IdentityError +~virtual Microsoft.AspNetCore.Identity.IdentityErrorDescriber.UserAlreadyHasPassword() -> Microsoft.AspNetCore.Identity.IdentityError +~virtual Microsoft.AspNetCore.Identity.IdentityErrorDescriber.UserAlreadyInRole(string role) -> Microsoft.AspNetCore.Identity.IdentityError +~virtual Microsoft.AspNetCore.Identity.IdentityErrorDescriber.UserLockoutNotEnabled() -> Microsoft.AspNetCore.Identity.IdentityError +~virtual Microsoft.AspNetCore.Identity.IdentityErrorDescriber.UserNotInRole(string role) -> Microsoft.AspNetCore.Identity.IdentityError +~virtual Microsoft.AspNetCore.Identity.PasswordHasher.HashPassword(TUser user, string password) -> string +~virtual Microsoft.AspNetCore.Identity.PasswordHasher.VerifyHashedPassword(TUser user, string hashedPassword, string providedPassword) -> Microsoft.AspNetCore.Identity.PasswordVerificationResult +~virtual Microsoft.AspNetCore.Identity.PasswordValidator.ValidateAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user, string password) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.RoleManager.AddClaimAsync(TRole role, System.Security.Claims.Claim claim) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.RoleManager.CreateAsync(TRole role) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.RoleManager.DeleteAsync(TRole role) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.RoleManager.FindByIdAsync(string roleId) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.RoleManager.FindByNameAsync(string roleName) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.RoleManager.GetClaimsAsync(TRole role) -> System.Threading.Tasks.Task> +~virtual Microsoft.AspNetCore.Identity.RoleManager.GetRoleIdAsync(TRole role) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.RoleManager.GetRoleNameAsync(TRole role) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.RoleManager.Logger.get -> Microsoft.Extensions.Logging.ILogger +~virtual Microsoft.AspNetCore.Identity.RoleManager.Logger.set -> void +~virtual Microsoft.AspNetCore.Identity.RoleManager.NormalizeKey(string key) -> string +~virtual Microsoft.AspNetCore.Identity.RoleManager.RemoveClaimAsync(TRole role, System.Security.Claims.Claim claim) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.RoleManager.RoleExistsAsync(string roleName) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.RoleManager.Roles.get -> System.Linq.IQueryable +~virtual Microsoft.AspNetCore.Identity.RoleManager.SetRoleNameAsync(TRole role, string name) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.RoleManager.UpdateAsync(TRole role) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.RoleManager.UpdateNormalizedRoleNameAsync(TRole role) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.RoleManager.UpdateRoleAsync(TRole role) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.RoleManager.ValidateRoleAsync(TRole role) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.RoleValidator.ValidateAsync(Microsoft.AspNetCore.Identity.RoleManager manager, TRole role) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.TotpSecurityStampBasedTokenProvider.GenerateAsync(string purpose, Microsoft.AspNetCore.Identity.UserManager manager, TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.TotpSecurityStampBasedTokenProvider.GetUserModifierAsync(string purpose, Microsoft.AspNetCore.Identity.UserManager manager, TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.TotpSecurityStampBasedTokenProvider.ValidateAsync(string purpose, string token, Microsoft.AspNetCore.Identity.UserManager manager, TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserClaimsPrincipalFactory.CreateAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserClaimsPrincipalFactory.GenerateClaimsAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.AccessFailedAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.AddClaimAsync(TUser user, System.Security.Claims.Claim claim) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.AddClaimsAsync(TUser user, System.Collections.Generic.IEnumerable claims) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.AddLoginAsync(TUser user, Microsoft.AspNetCore.Identity.UserLoginInfo login) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.AddPasswordAsync(TUser user, string password) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.AddToRoleAsync(TUser user, string role) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.AddToRolesAsync(TUser user, System.Collections.Generic.IEnumerable roles) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.ChangeEmailAsync(TUser user, string newEmail, string token) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.ChangePasswordAsync(TUser user, string currentPassword, string newPassword) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.ChangePhoneNumberAsync(TUser user, string phoneNumber, string token) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.CheckPasswordAsync(TUser user, string password) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.ConfirmEmailAsync(TUser user, string token) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.CountRecoveryCodesAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.CreateAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.CreateAsync(TUser user, string password) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.CreateSecurityTokenAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.CreateTwoFactorRecoveryCode() -> string +~virtual Microsoft.AspNetCore.Identity.UserManager.DeleteAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.FindByEmailAsync(string email) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.FindByIdAsync(string userId) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.FindByLoginAsync(string loginProvider, string providerKey) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.FindByNameAsync(string userName) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.GenerateChangeEmailTokenAsync(TUser user, string newEmail) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.GenerateChangePhoneNumberTokenAsync(TUser user, string phoneNumber) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.GenerateConcurrencyStampAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.GenerateEmailConfirmationTokenAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.GenerateNewAuthenticatorKey() -> string +~virtual Microsoft.AspNetCore.Identity.UserManager.GenerateNewTwoFactorRecoveryCodesAsync(TUser user, int number) -> System.Threading.Tasks.Task> +~virtual Microsoft.AspNetCore.Identity.UserManager.GeneratePasswordResetTokenAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.GenerateTwoFactorTokenAsync(TUser user, string tokenProvider) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.GenerateUserTokenAsync(TUser user, string tokenProvider, string purpose) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.GetAccessFailedCountAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.GetAuthenticationTokenAsync(TUser user, string loginProvider, string tokenName) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.GetAuthenticatorKeyAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.GetClaimsAsync(TUser user) -> System.Threading.Tasks.Task> +~virtual Microsoft.AspNetCore.Identity.UserManager.GetEmailAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.GetLockoutEnabledAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.GetLockoutEndDateAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.GetLoginsAsync(TUser user) -> System.Threading.Tasks.Task> +~virtual Microsoft.AspNetCore.Identity.UserManager.GetPhoneNumberAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.GetRolesAsync(TUser user) -> System.Threading.Tasks.Task> +~virtual Microsoft.AspNetCore.Identity.UserManager.GetSecurityStampAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.GetTwoFactorEnabledAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.GetUserAsync(System.Security.Claims.ClaimsPrincipal principal) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.GetUserId(System.Security.Claims.ClaimsPrincipal principal) -> string +~virtual Microsoft.AspNetCore.Identity.UserManager.GetUserIdAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.GetUserName(System.Security.Claims.ClaimsPrincipal principal) -> string +~virtual Microsoft.AspNetCore.Identity.UserManager.GetUserNameAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.GetUsersForClaimAsync(System.Security.Claims.Claim claim) -> System.Threading.Tasks.Task> +~virtual Microsoft.AspNetCore.Identity.UserManager.GetUsersInRoleAsync(string roleName) -> System.Threading.Tasks.Task> +~virtual Microsoft.AspNetCore.Identity.UserManager.GetValidTwoFactorProvidersAsync(TUser user) -> System.Threading.Tasks.Task> +~virtual Microsoft.AspNetCore.Identity.UserManager.HasPasswordAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.IsEmailConfirmedAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.IsInRoleAsync(TUser user, string role) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.IsLockedOutAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.IsPhoneNumberConfirmedAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.Logger.get -> Microsoft.Extensions.Logging.ILogger +~virtual Microsoft.AspNetCore.Identity.UserManager.Logger.set -> void +~virtual Microsoft.AspNetCore.Identity.UserManager.NormalizeEmail(string email) -> string +~virtual Microsoft.AspNetCore.Identity.UserManager.NormalizeName(string name) -> string +~virtual Microsoft.AspNetCore.Identity.UserManager.RedeemTwoFactorRecoveryCodeAsync(TUser user, string code) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.RegisterTokenProvider(string providerName, Microsoft.AspNetCore.Identity.IUserTwoFactorTokenProvider provider) -> void +~virtual Microsoft.AspNetCore.Identity.UserManager.RemoveAuthenticationTokenAsync(TUser user, string loginProvider, string tokenName) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.RemoveClaimAsync(TUser user, System.Security.Claims.Claim claim) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.RemoveClaimsAsync(TUser user, System.Collections.Generic.IEnumerable claims) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.RemoveFromRoleAsync(TUser user, string role) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.RemoveFromRolesAsync(TUser user, System.Collections.Generic.IEnumerable roles) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.RemoveLoginAsync(TUser user, string loginProvider, string providerKey) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.RemovePasswordAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.ReplaceClaimAsync(TUser user, System.Security.Claims.Claim claim, System.Security.Claims.Claim newClaim) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.ResetAccessFailedCountAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.ResetAuthenticatorKeyAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.ResetPasswordAsync(TUser user, string token, string newPassword) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.SetAuthenticationTokenAsync(TUser user, string loginProvider, string tokenName, string tokenValue) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.SetEmailAsync(TUser user, string email) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.SetLockoutEnabledAsync(TUser user, bool enabled) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.SetLockoutEndDateAsync(TUser user, System.DateTimeOffset? lockoutEnd) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.SetPhoneNumberAsync(TUser user, string phoneNumber) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.SetTwoFactorEnabledAsync(TUser user, bool enabled) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.SetUserNameAsync(TUser user, string userName) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.UpdateAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.UpdateNormalizedEmailAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.UpdateNormalizedUserNameAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.UpdatePasswordHash(TUser user, string newPassword, bool validatePassword) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.UpdateSecurityStampAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.UpdateUserAsync(TUser user) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.Users.get -> System.Linq.IQueryable +~virtual Microsoft.AspNetCore.Identity.UserManager.VerifyChangePhoneNumberTokenAsync(TUser user, string token, string phoneNumber) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.VerifyPasswordAsync(Microsoft.AspNetCore.Identity.IUserPasswordStore store, TUser user, string password) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.VerifyTwoFactorTokenAsync(TUser user, string tokenProvider, string token) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserManager.VerifyUserTokenAsync(TUser user, string tokenProvider, string purpose, string token) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserValidator.ValidateAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user) -> System.Threading.Tasks.Task diff --git a/src/Identity/Extensions.Stores/src/PublicAPI.Shipped.txt b/src/Identity/Extensions.Stores/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/Identity/Extensions.Stores/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Identity/Extensions.Stores/src/PublicAPI.Unshipped.txt b/src/Identity/Extensions.Stores/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..22b128c6f4 --- /dev/null +++ b/src/Identity/Extensions.Stores/src/PublicAPI.Unshipped.txt @@ -0,0 +1,206 @@ +#nullable enable +Microsoft.AspNetCore.Identity.IdentityRole +Microsoft.AspNetCore.Identity.IdentityRole.IdentityRole() -> void +Microsoft.AspNetCore.Identity.IdentityRole.IdentityRole() -> void +Microsoft.AspNetCore.Identity.IdentityRoleClaim.IdentityRoleClaim() -> void +Microsoft.AspNetCore.Identity.IdentityUser +Microsoft.AspNetCore.Identity.IdentityUser.IdentityUser() -> void +Microsoft.AspNetCore.Identity.IdentityUser.IdentityUser() -> void +Microsoft.AspNetCore.Identity.IdentityUserClaim.IdentityUserClaim() -> void +Microsoft.AspNetCore.Identity.IdentityUserLogin.IdentityUserLogin() -> void +Microsoft.AspNetCore.Identity.IdentityUserRole.IdentityUserRole() -> void +Microsoft.AspNetCore.Identity.IdentityUserToken.IdentityUserToken() -> void +Microsoft.AspNetCore.Identity.RoleStoreBase.Dispose() -> void +Microsoft.AspNetCore.Identity.RoleStoreBase.ThrowIfDisposed() -> void +Microsoft.AspNetCore.Identity.UserStoreBase.Dispose() -> void +Microsoft.AspNetCore.Identity.UserStoreBase.ThrowIfDisposed() -> void +virtual Microsoft.AspNetCore.Identity.IdentityRoleClaim.Id.get -> int +virtual Microsoft.AspNetCore.Identity.IdentityRoleClaim.Id.set -> void +virtual Microsoft.AspNetCore.Identity.IdentityUser.AccessFailedCount.get -> int +virtual Microsoft.AspNetCore.Identity.IdentityUser.AccessFailedCount.set -> void +virtual Microsoft.AspNetCore.Identity.IdentityUser.EmailConfirmed.get -> bool +virtual Microsoft.AspNetCore.Identity.IdentityUser.EmailConfirmed.set -> void +virtual Microsoft.AspNetCore.Identity.IdentityUser.LockoutEnabled.get -> bool +virtual Microsoft.AspNetCore.Identity.IdentityUser.LockoutEnabled.set -> void +virtual Microsoft.AspNetCore.Identity.IdentityUser.LockoutEnd.get -> System.DateTimeOffset? +virtual Microsoft.AspNetCore.Identity.IdentityUser.LockoutEnd.set -> void +virtual Microsoft.AspNetCore.Identity.IdentityUser.PhoneNumberConfirmed.get -> bool +virtual Microsoft.AspNetCore.Identity.IdentityUser.PhoneNumberConfirmed.set -> void +virtual Microsoft.AspNetCore.Identity.IdentityUser.TwoFactorEnabled.get -> bool +virtual Microsoft.AspNetCore.Identity.IdentityUser.TwoFactorEnabled.set -> void +virtual Microsoft.AspNetCore.Identity.IdentityUserClaim.Id.get -> int +virtual Microsoft.AspNetCore.Identity.IdentityUserClaim.Id.set -> void +~Microsoft.AspNetCore.Identity.IdentityRole.IdentityRole(string roleName) -> void +~Microsoft.AspNetCore.Identity.IdentityRole +~Microsoft.AspNetCore.Identity.IdentityRole.IdentityRole(string roleName) -> void +~Microsoft.AspNetCore.Identity.IdentityRoleClaim +~Microsoft.AspNetCore.Identity.IdentityUser.IdentityUser(string userName) -> void +~Microsoft.AspNetCore.Identity.IdentityUser +~Microsoft.AspNetCore.Identity.IdentityUser.IdentityUser(string userName) -> void +~Microsoft.AspNetCore.Identity.IdentityUserClaim +~Microsoft.AspNetCore.Identity.IdentityUserLogin +~Microsoft.AspNetCore.Identity.IdentityUserRole +~Microsoft.AspNetCore.Identity.IdentityUserToken +~Microsoft.AspNetCore.Identity.RoleStoreBase +~Microsoft.AspNetCore.Identity.RoleStoreBase.ErrorDescriber.get -> Microsoft.AspNetCore.Identity.IdentityErrorDescriber +~Microsoft.AspNetCore.Identity.RoleStoreBase.ErrorDescriber.set -> void +~Microsoft.AspNetCore.Identity.RoleStoreBase.RoleStoreBase(Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer) -> void +~Microsoft.AspNetCore.Identity.UserStoreBase +~Microsoft.AspNetCore.Identity.UserStoreBase.ErrorDescriber.get -> Microsoft.AspNetCore.Identity.IdentityErrorDescriber +~Microsoft.AspNetCore.Identity.UserStoreBase.ErrorDescriber.set -> void +~Microsoft.AspNetCore.Identity.UserStoreBase.UserStoreBase(Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer) -> void +~Microsoft.AspNetCore.Identity.UserStoreBase +~Microsoft.AspNetCore.Identity.UserStoreBase.UserStoreBase(Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer) -> void +~abstract Microsoft.AspNetCore.Identity.RoleStoreBase.AddClaimAsync(TRole role, System.Security.Claims.Claim claim, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Identity.RoleStoreBase.CreateAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Identity.RoleStoreBase.DeleteAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Identity.RoleStoreBase.FindByIdAsync(string id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Identity.RoleStoreBase.FindByNameAsync(string normalizedName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Identity.RoleStoreBase.GetClaimsAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task> +~abstract Microsoft.AspNetCore.Identity.RoleStoreBase.RemoveClaimAsync(TRole role, System.Security.Claims.Claim claim, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Identity.RoleStoreBase.Roles.get -> System.Linq.IQueryable +~abstract Microsoft.AspNetCore.Identity.RoleStoreBase.UpdateAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Identity.UserStoreBase.AddClaimsAsync(TUser user, System.Collections.Generic.IEnumerable claims, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Identity.UserStoreBase.AddLoginAsync(TUser user, Microsoft.AspNetCore.Identity.UserLoginInfo login, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Identity.UserStoreBase.AddUserTokenAsync(TUserToken token) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Identity.UserStoreBase.CreateAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Identity.UserStoreBase.DeleteAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Identity.UserStoreBase.FindByEmailAsync(string normalizedEmail, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Identity.UserStoreBase.FindByIdAsync(string userId, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Identity.UserStoreBase.FindByNameAsync(string normalizedUserName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Identity.UserStoreBase.FindTokenAsync(TUser user, string loginProvider, string name, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Identity.UserStoreBase.FindUserAsync(TKey userId, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Identity.UserStoreBase.FindUserLoginAsync(TKey userId, string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Identity.UserStoreBase.FindUserLoginAsync(string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Identity.UserStoreBase.GetClaimsAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task> +~abstract Microsoft.AspNetCore.Identity.UserStoreBase.GetLoginsAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task> +~abstract Microsoft.AspNetCore.Identity.UserStoreBase.GetUsersForClaimAsync(System.Security.Claims.Claim claim, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task> +~abstract Microsoft.AspNetCore.Identity.UserStoreBase.RemoveClaimsAsync(TUser user, System.Collections.Generic.IEnumerable claims, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Identity.UserStoreBase.RemoveLoginAsync(TUser user, string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Identity.UserStoreBase.RemoveUserTokenAsync(TUserToken token) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Identity.UserStoreBase.ReplaceClaimAsync(TUser user, System.Security.Claims.Claim claim, System.Security.Claims.Claim newClaim, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Identity.UserStoreBase.UpdateAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Identity.UserStoreBase.Users.get -> System.Linq.IQueryable +~abstract Microsoft.AspNetCore.Identity.UserStoreBase.AddToRoleAsync(TUser user, string normalizedRoleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Identity.UserStoreBase.FindRoleAsync(string normalizedRoleName, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Identity.UserStoreBase.FindUserRoleAsync(TKey userId, TKey roleId, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Identity.UserStoreBase.GetRolesAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task> +~abstract Microsoft.AspNetCore.Identity.UserStoreBase.GetUsersInRoleAsync(string normalizedRoleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task> +~abstract Microsoft.AspNetCore.Identity.UserStoreBase.IsInRoleAsync(TUser user, string normalizedRoleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~abstract Microsoft.AspNetCore.Identity.UserStoreBase.RemoveFromRoleAsync(TUser user, string normalizedRoleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Identity.IdentityRole.ToString() -> string +~override Microsoft.AspNetCore.Identity.IdentityUser.ToString() -> string +~virtual Microsoft.AspNetCore.Identity.IdentityRole.ConcurrencyStamp.get -> string +~virtual Microsoft.AspNetCore.Identity.IdentityRole.ConcurrencyStamp.set -> void +~virtual Microsoft.AspNetCore.Identity.IdentityRole.Id.get -> TKey +~virtual Microsoft.AspNetCore.Identity.IdentityRole.Id.set -> void +~virtual Microsoft.AspNetCore.Identity.IdentityRole.Name.get -> string +~virtual Microsoft.AspNetCore.Identity.IdentityRole.Name.set -> void +~virtual Microsoft.AspNetCore.Identity.IdentityRole.NormalizedName.get -> string +~virtual Microsoft.AspNetCore.Identity.IdentityRole.NormalizedName.set -> void +~virtual Microsoft.AspNetCore.Identity.IdentityRoleClaim.ClaimType.get -> string +~virtual Microsoft.AspNetCore.Identity.IdentityRoleClaim.ClaimType.set -> void +~virtual Microsoft.AspNetCore.Identity.IdentityRoleClaim.ClaimValue.get -> string +~virtual Microsoft.AspNetCore.Identity.IdentityRoleClaim.ClaimValue.set -> void +~virtual Microsoft.AspNetCore.Identity.IdentityRoleClaim.InitializeFromClaim(System.Security.Claims.Claim other) -> void +~virtual Microsoft.AspNetCore.Identity.IdentityRoleClaim.RoleId.get -> TKey +~virtual Microsoft.AspNetCore.Identity.IdentityRoleClaim.RoleId.set -> void +~virtual Microsoft.AspNetCore.Identity.IdentityRoleClaim.ToClaim() -> System.Security.Claims.Claim +~virtual Microsoft.AspNetCore.Identity.IdentityUser.ConcurrencyStamp.get -> string +~virtual Microsoft.AspNetCore.Identity.IdentityUser.ConcurrencyStamp.set -> void +~virtual Microsoft.AspNetCore.Identity.IdentityUser.Email.get -> string +~virtual Microsoft.AspNetCore.Identity.IdentityUser.Email.set -> void +~virtual Microsoft.AspNetCore.Identity.IdentityUser.Id.get -> TKey +~virtual Microsoft.AspNetCore.Identity.IdentityUser.Id.set -> void +~virtual Microsoft.AspNetCore.Identity.IdentityUser.NormalizedEmail.get -> string +~virtual Microsoft.AspNetCore.Identity.IdentityUser.NormalizedEmail.set -> void +~virtual Microsoft.AspNetCore.Identity.IdentityUser.NormalizedUserName.get -> string +~virtual Microsoft.AspNetCore.Identity.IdentityUser.NormalizedUserName.set -> void +~virtual Microsoft.AspNetCore.Identity.IdentityUser.PasswordHash.get -> string +~virtual Microsoft.AspNetCore.Identity.IdentityUser.PasswordHash.set -> void +~virtual Microsoft.AspNetCore.Identity.IdentityUser.PhoneNumber.get -> string +~virtual Microsoft.AspNetCore.Identity.IdentityUser.PhoneNumber.set -> void +~virtual Microsoft.AspNetCore.Identity.IdentityUser.SecurityStamp.get -> string +~virtual Microsoft.AspNetCore.Identity.IdentityUser.SecurityStamp.set -> void +~virtual Microsoft.AspNetCore.Identity.IdentityUser.UserName.get -> string +~virtual Microsoft.AspNetCore.Identity.IdentityUser.UserName.set -> void +~virtual Microsoft.AspNetCore.Identity.IdentityUserClaim.ClaimType.get -> string +~virtual Microsoft.AspNetCore.Identity.IdentityUserClaim.ClaimType.set -> void +~virtual Microsoft.AspNetCore.Identity.IdentityUserClaim.ClaimValue.get -> string +~virtual Microsoft.AspNetCore.Identity.IdentityUserClaim.ClaimValue.set -> void +~virtual Microsoft.AspNetCore.Identity.IdentityUserClaim.InitializeFromClaim(System.Security.Claims.Claim claim) -> void +~virtual Microsoft.AspNetCore.Identity.IdentityUserClaim.ToClaim() -> System.Security.Claims.Claim +~virtual Microsoft.AspNetCore.Identity.IdentityUserClaim.UserId.get -> TKey +~virtual Microsoft.AspNetCore.Identity.IdentityUserClaim.UserId.set -> void +~virtual Microsoft.AspNetCore.Identity.IdentityUserLogin.LoginProvider.get -> string +~virtual Microsoft.AspNetCore.Identity.IdentityUserLogin.LoginProvider.set -> void +~virtual Microsoft.AspNetCore.Identity.IdentityUserLogin.ProviderDisplayName.get -> string +~virtual Microsoft.AspNetCore.Identity.IdentityUserLogin.ProviderDisplayName.set -> void +~virtual Microsoft.AspNetCore.Identity.IdentityUserLogin.ProviderKey.get -> string +~virtual Microsoft.AspNetCore.Identity.IdentityUserLogin.ProviderKey.set -> void +~virtual Microsoft.AspNetCore.Identity.IdentityUserLogin.UserId.get -> TKey +~virtual Microsoft.AspNetCore.Identity.IdentityUserLogin.UserId.set -> void +~virtual Microsoft.AspNetCore.Identity.IdentityUserRole.RoleId.get -> TKey +~virtual Microsoft.AspNetCore.Identity.IdentityUserRole.RoleId.set -> void +~virtual Microsoft.AspNetCore.Identity.IdentityUserRole.UserId.get -> TKey +~virtual Microsoft.AspNetCore.Identity.IdentityUserRole.UserId.set -> void +~virtual Microsoft.AspNetCore.Identity.IdentityUserToken.LoginProvider.get -> string +~virtual Microsoft.AspNetCore.Identity.IdentityUserToken.LoginProvider.set -> void +~virtual Microsoft.AspNetCore.Identity.IdentityUserToken.Name.get -> string +~virtual Microsoft.AspNetCore.Identity.IdentityUserToken.Name.set -> void +~virtual Microsoft.AspNetCore.Identity.IdentityUserToken.UserId.get -> TKey +~virtual Microsoft.AspNetCore.Identity.IdentityUserToken.UserId.set -> void +~virtual Microsoft.AspNetCore.Identity.IdentityUserToken.Value.get -> string +~virtual Microsoft.AspNetCore.Identity.IdentityUserToken.Value.set -> void +~virtual Microsoft.AspNetCore.Identity.RoleStoreBase.ConvertIdFromString(string id) -> TKey +~virtual Microsoft.AspNetCore.Identity.RoleStoreBase.ConvertIdToString(TKey id) -> string +~virtual Microsoft.AspNetCore.Identity.RoleStoreBase.CreateRoleClaim(TRole role, System.Security.Claims.Claim claim) -> TRoleClaim +~virtual Microsoft.AspNetCore.Identity.RoleStoreBase.GetNormalizedRoleNameAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.RoleStoreBase.GetRoleIdAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.RoleStoreBase.GetRoleNameAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.RoleStoreBase.SetNormalizedRoleNameAsync(TRole role, string normalizedName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.RoleStoreBase.SetRoleNameAsync(TRole role, string roleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.ConvertIdFromString(string id) -> TKey +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.ConvertIdToString(TKey id) -> string +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.CountCodesAsync(TUser user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.CreateUserClaim(TUser user, System.Security.Claims.Claim claim) -> TUserClaim +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.CreateUserLogin(TUser user, Microsoft.AspNetCore.Identity.UserLoginInfo login) -> TUserLogin +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.CreateUserToken(TUser user, string loginProvider, string name, string value) -> TUserToken +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.FindByLoginAsync(string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.GetAccessFailedCountAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.GetAuthenticatorKeyAsync(TUser user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.GetEmailAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.GetEmailConfirmedAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.GetLockoutEnabledAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.GetLockoutEndDateAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.GetNormalizedEmailAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.GetNormalizedUserNameAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.GetPasswordHashAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.GetPhoneNumberAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.GetPhoneNumberConfirmedAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.GetSecurityStampAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.GetTokenAsync(TUser user, string loginProvider, string name, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.GetTwoFactorEnabledAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.GetUserIdAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.GetUserNameAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.HasPasswordAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.IncrementAccessFailedCountAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.RedeemCodeAsync(TUser user, string code, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.RemoveTokenAsync(TUser user, string loginProvider, string name, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.ReplaceCodesAsync(TUser user, System.Collections.Generic.IEnumerable recoveryCodes, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.ResetAccessFailedCountAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.SetAuthenticatorKeyAsync(TUser user, string key, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.SetEmailAsync(TUser user, string email, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.SetEmailConfirmedAsync(TUser user, bool confirmed, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.SetLockoutEnabledAsync(TUser user, bool enabled, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.SetLockoutEndDateAsync(TUser user, System.DateTimeOffset? lockoutEnd, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.SetNormalizedEmailAsync(TUser user, string normalizedEmail, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.SetNormalizedUserNameAsync(TUser user, string normalizedName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.SetPasswordHashAsync(TUser user, string passwordHash, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.SetPhoneNumberAsync(TUser user, string phoneNumber, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.SetPhoneNumberConfirmedAsync(TUser user, bool confirmed, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.SetSecurityStampAsync(TUser user, string stamp, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.SetTokenAsync(TUser user, string loginProvider, string name, string value, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.SetTwoFactorEnabledAsync(TUser user, bool enabled, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.SetUserNameAsync(TUser user, string userName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Identity.UserStoreBase.CreateUserRole(TUser user, TRole role) -> TUserRole From 844bcb557cb10effcb680dba03426b42712c31ba Mon Sep 17 00:00:00 2001 From: Kevin Pilch Date: Thu, 3 Sep 2020 17:20:48 -0700 Subject: [PATCH 035/187] Add Public API Baselines for JSInterop, Localization, Logging.AzureAppServices (#25586) --- AspNetCore.sln | 97 +++++++++++++++++++ .../src/PublicAPI.Shipped.txt | 1 + .../src/PublicAPI.Unshipped.txt | 81 ++++++++++++++++ .../Abstractions/src/PublicAPI.Shipped.txt | 1 + .../Abstractions/src/PublicAPI.Unshipped.txt | 28 ++++++ .../Localization/src/PublicAPI.Shipped.txt | 1 + .../Localization/src/PublicAPI.Unshipped.txt | 37 +++++++ .../src/BlobLoggerProvider.cs | 2 + .../src/FileLoggerProvider.cs | 2 + .../src/PublicAPI.Shipped.txt | 1 + .../src/PublicAPI.Unshipped.txt | 35 +++++++ 11 files changed, 286 insertions(+) create mode 100644 src/JSInterop/Microsoft.JSInterop/src/PublicAPI.Shipped.txt create mode 100644 src/JSInterop/Microsoft.JSInterop/src/PublicAPI.Unshipped.txt create mode 100644 src/Localization/Abstractions/src/PublicAPI.Shipped.txt create mode 100644 src/Localization/Abstractions/src/PublicAPI.Unshipped.txt create mode 100644 src/Localization/Localization/src/PublicAPI.Shipped.txt create mode 100644 src/Localization/Localization/src/PublicAPI.Unshipped.txt create mode 100644 src/Logging.AzureAppServices/src/PublicAPI.Shipped.txt create mode 100644 src/Logging.AzureAppServices/src/PublicAPI.Unshipped.txt diff --git a/AspNetCore.sln b/AspNetCore.sln index f7535666dd..55931107f8 100644 --- a/AspNetCore.sln +++ b/AspNetCore.sln @@ -1492,6 +1492,7 @@ EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Components.ProtectedBrowserStorage", "src\Components\ProtectedBrowserStorage\src\Microsoft.AspNetCore.Components.ProtectedBrowserStorage.csproj", "{9059AC97-7547-4CC1-A076-680CBCCC1F33}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Components.ProtectedBrowserStorage.Tests", "src\Components\ProtectedBrowserStorage\test\Microsoft.AspNetCore.Components.ProtectedBrowserStorage.Tests.csproj", "{943FD3EC-D330-4277-B3F3-3DFABB57D3B5}" +EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.KeyPerFile", "src\Configuration.KeyPerFile\src\Microsoft.Extensions.Configuration.KeyPerFile.csproj", "{498A4F54-F11A-46C5-A58D-09DE56C6A034}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Configuration.KeyPerFile", "Configuration.KeyPerFile", "{AEB1933E-9369-4305-B20E-F186F888158F}" @@ -1506,6 +1507,22 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FilePr EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Embedded.Tests", "src\FileProviders\Embedded\test\Microsoft.Extensions.FileProviders.Embedded.Tests.csproj", "{B06ADD57-E855-4D8C-85DC-B323509AE540}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Localization", "Localization", "{3D34C81F-2CB5-459E-87E9-0CC04757A2A0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Localization.Abstractions", "src\Localization\Abstractions\src\Microsoft.Extensions.Localization.Abstractions.csproj", "{FEF97646-9BC9-4D1B-A939-784D915C18A4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Localization", "src\Localization\Localization\src\Microsoft.Extensions.Localization.csproj", "{839CE175-E0D9-43B9-9FA8-F32C47E7F56B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Localization.RootNamespace.Tests", "src\Localization\Localization\test\Microsoft.Extensions.Localization.RootNamespace.Tests\Microsoft.Extensions.Localization.RootNamespace.Tests.csproj", "{50BF2926-7435-4F4B-88A9-3D0EDEB67FC8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Localization.Tests", "src\Localization\Localization\test\Microsoft.Extensions.Localization.Tests\Microsoft.Extensions.Localization.Tests.csproj", "{16B899B4-A4F4-4EF7-93BB-355861977A12}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Logging.AzureAppServices", "Logging.AzureAppServices", "{3EAB9890-2C01-444C-ACA0-D77B29CDE08B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.AzureAppServices", "src\Logging.AzureAppServices\src\Microsoft.Extensions.Logging.AzureAppServices.csproj", "{3E29454A-C4DC-44B7-AF0A-A782AD2E73BC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.AzureAppServices.Tests", "src\Logging.AzureAppServices\test\Microsoft.Extensions.Logging.AzureAppServices.Tests.csproj", "{43E3B132-2486-44A3-92C6-39E39724FAFD}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -7190,6 +7207,78 @@ Global {B06ADD57-E855-4D8C-85DC-B323509AE540}.Release|x64.Build.0 = Release|Any CPU {B06ADD57-E855-4D8C-85DC-B323509AE540}.Release|x86.ActiveCfg = Release|Any CPU {B06ADD57-E855-4D8C-85DC-B323509AE540}.Release|x86.Build.0 = Release|Any CPU + {FEF97646-9BC9-4D1B-A939-784D915C18A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FEF97646-9BC9-4D1B-A939-784D915C18A4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FEF97646-9BC9-4D1B-A939-784D915C18A4}.Debug|x64.ActiveCfg = Debug|Any CPU + {FEF97646-9BC9-4D1B-A939-784D915C18A4}.Debug|x64.Build.0 = Debug|Any CPU + {FEF97646-9BC9-4D1B-A939-784D915C18A4}.Debug|x86.ActiveCfg = Debug|Any CPU + {FEF97646-9BC9-4D1B-A939-784D915C18A4}.Debug|x86.Build.0 = Debug|Any CPU + {FEF97646-9BC9-4D1B-A939-784D915C18A4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FEF97646-9BC9-4D1B-A939-784D915C18A4}.Release|Any CPU.Build.0 = Release|Any CPU + {FEF97646-9BC9-4D1B-A939-784D915C18A4}.Release|x64.ActiveCfg = Release|Any CPU + {FEF97646-9BC9-4D1B-A939-784D915C18A4}.Release|x64.Build.0 = Release|Any CPU + {FEF97646-9BC9-4D1B-A939-784D915C18A4}.Release|x86.ActiveCfg = Release|Any CPU + {FEF97646-9BC9-4D1B-A939-784D915C18A4}.Release|x86.Build.0 = Release|Any CPU + {839CE175-E0D9-43B9-9FA8-F32C47E7F56B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {839CE175-E0D9-43B9-9FA8-F32C47E7F56B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {839CE175-E0D9-43B9-9FA8-F32C47E7F56B}.Debug|x64.ActiveCfg = Debug|Any CPU + {839CE175-E0D9-43B9-9FA8-F32C47E7F56B}.Debug|x64.Build.0 = Debug|Any CPU + {839CE175-E0D9-43B9-9FA8-F32C47E7F56B}.Debug|x86.ActiveCfg = Debug|Any CPU + {839CE175-E0D9-43B9-9FA8-F32C47E7F56B}.Debug|x86.Build.0 = Debug|Any CPU + {839CE175-E0D9-43B9-9FA8-F32C47E7F56B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {839CE175-E0D9-43B9-9FA8-F32C47E7F56B}.Release|Any CPU.Build.0 = Release|Any CPU + {839CE175-E0D9-43B9-9FA8-F32C47E7F56B}.Release|x64.ActiveCfg = Release|Any CPU + {839CE175-E0D9-43B9-9FA8-F32C47E7F56B}.Release|x64.Build.0 = Release|Any CPU + {839CE175-E0D9-43B9-9FA8-F32C47E7F56B}.Release|x86.ActiveCfg = Release|Any CPU + {839CE175-E0D9-43B9-9FA8-F32C47E7F56B}.Release|x86.Build.0 = Release|Any CPU + {50BF2926-7435-4F4B-88A9-3D0EDEB67FC8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {50BF2926-7435-4F4B-88A9-3D0EDEB67FC8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {50BF2926-7435-4F4B-88A9-3D0EDEB67FC8}.Debug|x64.ActiveCfg = Debug|Any CPU + {50BF2926-7435-4F4B-88A9-3D0EDEB67FC8}.Debug|x64.Build.0 = Debug|Any CPU + {50BF2926-7435-4F4B-88A9-3D0EDEB67FC8}.Debug|x86.ActiveCfg = Debug|Any CPU + {50BF2926-7435-4F4B-88A9-3D0EDEB67FC8}.Debug|x86.Build.0 = Debug|Any CPU + {50BF2926-7435-4F4B-88A9-3D0EDEB67FC8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {50BF2926-7435-4F4B-88A9-3D0EDEB67FC8}.Release|Any CPU.Build.0 = Release|Any CPU + {50BF2926-7435-4F4B-88A9-3D0EDEB67FC8}.Release|x64.ActiveCfg = Release|Any CPU + {50BF2926-7435-4F4B-88A9-3D0EDEB67FC8}.Release|x64.Build.0 = Release|Any CPU + {50BF2926-7435-4F4B-88A9-3D0EDEB67FC8}.Release|x86.ActiveCfg = Release|Any CPU + {50BF2926-7435-4F4B-88A9-3D0EDEB67FC8}.Release|x86.Build.0 = Release|Any CPU + {16B899B4-A4F4-4EF7-93BB-355861977A12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {16B899B4-A4F4-4EF7-93BB-355861977A12}.Debug|Any CPU.Build.0 = Debug|Any CPU + {16B899B4-A4F4-4EF7-93BB-355861977A12}.Debug|x64.ActiveCfg = Debug|Any CPU + {16B899B4-A4F4-4EF7-93BB-355861977A12}.Debug|x64.Build.0 = Debug|Any CPU + {16B899B4-A4F4-4EF7-93BB-355861977A12}.Debug|x86.ActiveCfg = Debug|Any CPU + {16B899B4-A4F4-4EF7-93BB-355861977A12}.Debug|x86.Build.0 = Debug|Any CPU + {16B899B4-A4F4-4EF7-93BB-355861977A12}.Release|Any CPU.ActiveCfg = Release|Any CPU + {16B899B4-A4F4-4EF7-93BB-355861977A12}.Release|Any CPU.Build.0 = Release|Any CPU + {16B899B4-A4F4-4EF7-93BB-355861977A12}.Release|x64.ActiveCfg = Release|Any CPU + {16B899B4-A4F4-4EF7-93BB-355861977A12}.Release|x64.Build.0 = Release|Any CPU + {16B899B4-A4F4-4EF7-93BB-355861977A12}.Release|x86.ActiveCfg = Release|Any CPU + {16B899B4-A4F4-4EF7-93BB-355861977A12}.Release|x86.Build.0 = Release|Any CPU + {3E29454A-C4DC-44B7-AF0A-A782AD2E73BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3E29454A-C4DC-44B7-AF0A-A782AD2E73BC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3E29454A-C4DC-44B7-AF0A-A782AD2E73BC}.Debug|x64.ActiveCfg = Debug|Any CPU + {3E29454A-C4DC-44B7-AF0A-A782AD2E73BC}.Debug|x64.Build.0 = Debug|Any CPU + {3E29454A-C4DC-44B7-AF0A-A782AD2E73BC}.Debug|x86.ActiveCfg = Debug|Any CPU + {3E29454A-C4DC-44B7-AF0A-A782AD2E73BC}.Debug|x86.Build.0 = Debug|Any CPU + {3E29454A-C4DC-44B7-AF0A-A782AD2E73BC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3E29454A-C4DC-44B7-AF0A-A782AD2E73BC}.Release|Any CPU.Build.0 = Release|Any CPU + {3E29454A-C4DC-44B7-AF0A-A782AD2E73BC}.Release|x64.ActiveCfg = Release|Any CPU + {3E29454A-C4DC-44B7-AF0A-A782AD2E73BC}.Release|x64.Build.0 = Release|Any CPU + {3E29454A-C4DC-44B7-AF0A-A782AD2E73BC}.Release|x86.ActiveCfg = Release|Any CPU + {3E29454A-C4DC-44B7-AF0A-A782AD2E73BC}.Release|x86.Build.0 = Release|Any CPU + {43E3B132-2486-44A3-92C6-39E39724FAFD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {43E3B132-2486-44A3-92C6-39E39724FAFD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {43E3B132-2486-44A3-92C6-39E39724FAFD}.Debug|x64.ActiveCfg = Debug|Any CPU + {43E3B132-2486-44A3-92C6-39E39724FAFD}.Debug|x64.Build.0 = Debug|Any CPU + {43E3B132-2486-44A3-92C6-39E39724FAFD}.Debug|x86.ActiveCfg = Debug|Any CPU + {43E3B132-2486-44A3-92C6-39E39724FAFD}.Debug|x86.Build.0 = Debug|Any CPU + {43E3B132-2486-44A3-92C6-39E39724FAFD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {43E3B132-2486-44A3-92C6-39E39724FAFD}.Release|Any CPU.Build.0 = Release|Any CPU + {43E3B132-2486-44A3-92C6-39E39724FAFD}.Release|x64.ActiveCfg = Release|Any CPU + {43E3B132-2486-44A3-92C6-39E39724FAFD}.Release|x64.Build.0 = Release|Any CPU + {43E3B132-2486-44A3-92C6-39E39724FAFD}.Release|x86.ActiveCfg = Release|Any CPU + {43E3B132-2486-44A3-92C6-39E39724FAFD}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -7945,6 +8034,14 @@ Global {37329855-01B8-4B03-9765-1A941B06E43C} = {8C15FD04-7F90-43FC-B488-023432FE3CE1} {D3246226-BC1A-47F1-8E3E-C3380A8F13FB} = {8C15FD04-7F90-43FC-B488-023432FE3CE1} {B06ADD57-E855-4D8C-85DC-B323509AE540} = {898F7E0B-1671-42CB-9DFB-689AFF212ED3} + {3D34C81F-2CB5-459E-87E9-0CC04757A2A0} = {017429CC-C5FB-48B4-9C46-034E29EE2F06} + {FEF97646-9BC9-4D1B-A939-784D915C18A4} = {3D34C81F-2CB5-459E-87E9-0CC04757A2A0} + {839CE175-E0D9-43B9-9FA8-F32C47E7F56B} = {3D34C81F-2CB5-459E-87E9-0CC04757A2A0} + {50BF2926-7435-4F4B-88A9-3D0EDEB67FC8} = {3D34C81F-2CB5-459E-87E9-0CC04757A2A0} + {16B899B4-A4F4-4EF7-93BB-355861977A12} = {3D34C81F-2CB5-459E-87E9-0CC04757A2A0} + {3EAB9890-2C01-444C-ACA0-D77B29CDE08B} = {017429CC-C5FB-48B4-9C46-034E29EE2F06} + {3E29454A-C4DC-44B7-AF0A-A782AD2E73BC} = {3EAB9890-2C01-444C-ACA0-D77B29CDE08B} + {43E3B132-2486-44A3-92C6-39E39724FAFD} = {3EAB9890-2C01-444C-ACA0-D77B29CDE08B} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {3E8720B3-DBDD-498C-B383-2CC32A054E8F} diff --git a/src/JSInterop/Microsoft.JSInterop/src/PublicAPI.Shipped.txt b/src/JSInterop/Microsoft.JSInterop/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/JSInterop/Microsoft.JSInterop/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/JSInterop/Microsoft.JSInterop/src/PublicAPI.Unshipped.txt b/src/JSInterop/Microsoft.JSInterop/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..cbb05786f4 --- /dev/null +++ b/src/JSInterop/Microsoft.JSInterop/src/PublicAPI.Unshipped.txt @@ -0,0 +1,81 @@ +#nullable enable +Microsoft.JSInterop.DotNetObjectReference +Microsoft.JSInterop.DotNetObjectReference +Microsoft.JSInterop.DotNetObjectReference.Dispose() -> void +Microsoft.JSInterop.DotNetObjectReference.Value.get -> TValue! +Microsoft.JSInterop.IJSInProcessObjectReference +Microsoft.JSInterop.IJSInProcessObjectReference.Invoke(string! identifier, params object?[]? args) -> TValue +Microsoft.JSInterop.IJSInProcessRuntime +Microsoft.JSInterop.IJSInProcessRuntime.Invoke(string! identifier, params object?[]? args) -> T +Microsoft.JSInterop.IJSObjectReference +Microsoft.JSInterop.IJSObjectReference.InvokeAsync(string! identifier, System.Threading.CancellationToken cancellationToken, object?[]? args) -> System.Threading.Tasks.ValueTask +Microsoft.JSInterop.IJSObjectReference.InvokeAsync(string! identifier, object?[]? args) -> System.Threading.Tasks.ValueTask +Microsoft.JSInterop.IJSRuntime +Microsoft.JSInterop.IJSRuntime.InvokeAsync(string! identifier, System.Threading.CancellationToken cancellationToken, object?[]? args) -> System.Threading.Tasks.ValueTask +Microsoft.JSInterop.IJSRuntime.InvokeAsync(string! identifier, object?[]? args) -> System.Threading.Tasks.ValueTask +Microsoft.JSInterop.IJSUnmarshalledRuntime +Microsoft.JSInterop.IJSUnmarshalledRuntime.InvokeUnmarshalled(string! identifier, T0 arg0, T1 arg1, T2 arg2) -> TResult +Microsoft.JSInterop.IJSUnmarshalledRuntime.InvokeUnmarshalled(string! identifier, T0 arg0, T1 arg1) -> TResult +Microsoft.JSInterop.IJSUnmarshalledRuntime.InvokeUnmarshalled(string! identifier, T0 arg0) -> TResult +Microsoft.JSInterop.IJSUnmarshalledRuntime.InvokeUnmarshalled(string! identifier) -> TResult +Microsoft.JSInterop.Infrastructure.DotNetDispatcher +Microsoft.JSInterop.Infrastructure.DotNetInvocationInfo +Microsoft.JSInterop.Infrastructure.DotNetInvocationInfo.AssemblyName.get -> string? +Microsoft.JSInterop.Infrastructure.DotNetInvocationInfo.CallId.get -> string? +Microsoft.JSInterop.Infrastructure.DotNetInvocationInfo.DotNetInvocationInfo(string? assemblyName, string! methodIdentifier, long dotNetObjectId, string? callId) -> void +Microsoft.JSInterop.Infrastructure.DotNetInvocationInfo.DotNetObjectId.get -> long +Microsoft.JSInterop.Infrastructure.DotNetInvocationInfo.MethodIdentifier.get -> string! +Microsoft.JSInterop.Infrastructure.DotNetInvocationResult +Microsoft.JSInterop.Infrastructure.DotNetInvocationResult.DotNetInvocationResult(System.Exception! exception, string? errorKind) -> void +Microsoft.JSInterop.Infrastructure.DotNetInvocationResult.DotNetInvocationResult(object? result) -> void +Microsoft.JSInterop.Infrastructure.DotNetInvocationResult.ErrorKind.get -> string? +Microsoft.JSInterop.Infrastructure.DotNetInvocationResult.Exception.get -> System.Exception? +Microsoft.JSInterop.Infrastructure.DotNetInvocationResult.Result.get -> object? +Microsoft.JSInterop.Infrastructure.DotNetInvocationResult.Success.get -> bool +Microsoft.JSInterop.JSCallResultType +Microsoft.JSInterop.JSCallResultType.Default = 0 -> Microsoft.JSInterop.JSCallResultType +Microsoft.JSInterop.JSCallResultType.JSObjectReference = 1 -> Microsoft.JSInterop.JSCallResultType +Microsoft.JSInterop.JSException +Microsoft.JSInterop.JSException.JSException(string! message) -> void +Microsoft.JSInterop.JSException.JSException(string! message, System.Exception! innerException) -> void +Microsoft.JSInterop.JSInProcessObjectReferenceExtensions +Microsoft.JSInterop.JSInProcessRuntime +Microsoft.JSInterop.JSInProcessRuntime.Invoke(string! identifier, params object?[]? args) -> TValue +Microsoft.JSInterop.JSInProcessRuntime.JSInProcessRuntime() -> void +Microsoft.JSInterop.JSInProcessRuntimeExtensions +Microsoft.JSInterop.JSInvokableAttribute +Microsoft.JSInterop.JSInvokableAttribute.Identifier.get -> string? +Microsoft.JSInterop.JSInvokableAttribute.JSInvokableAttribute() -> void +Microsoft.JSInterop.JSInvokableAttribute.JSInvokableAttribute(string! identifier) -> void +Microsoft.JSInterop.JSObjectReferenceExtensions +Microsoft.JSInterop.JSRuntime +Microsoft.JSInterop.JSRuntime.DefaultAsyncTimeout.get -> System.TimeSpan? +Microsoft.JSInterop.JSRuntime.DefaultAsyncTimeout.set -> void +Microsoft.JSInterop.JSRuntime.InvokeAsync(string! identifier, System.Threading.CancellationToken cancellationToken, object?[]? args) -> System.Threading.Tasks.ValueTask +Microsoft.JSInterop.JSRuntime.InvokeAsync(string! identifier, object?[]? args) -> System.Threading.Tasks.ValueTask +Microsoft.JSInterop.JSRuntime.JSRuntime() -> void +Microsoft.JSInterop.JSRuntime.JsonSerializerOptions.get -> System.Text.Json.JsonSerializerOptions! +Microsoft.JSInterop.JSRuntimeExtensions +abstract Microsoft.JSInterop.JSInProcessRuntime.InvokeJS(string! identifier, string? argsJson, Microsoft.JSInterop.JSCallResultType resultType, long targetInstanceId) -> string? +abstract Microsoft.JSInterop.JSRuntime.BeginInvokeJS(long taskId, string! identifier, string? argsJson, Microsoft.JSInterop.JSCallResultType resultType, long targetInstanceId) -> void +abstract Microsoft.JSInterop.JSRuntime.EndInvokeDotNet(Microsoft.JSInterop.Infrastructure.DotNetInvocationInfo invocationInfo, in Microsoft.JSInterop.Infrastructure.DotNetInvocationResult invocationResult) -> void +static Microsoft.JSInterop.DotNetObjectReference.Create(TValue! value) -> Microsoft.JSInterop.DotNetObjectReference! +static Microsoft.JSInterop.Infrastructure.DotNetDispatcher.BeginInvokeDotNet(Microsoft.JSInterop.JSRuntime! jsRuntime, Microsoft.JSInterop.Infrastructure.DotNetInvocationInfo invocationInfo, string! argsJson) -> void +static Microsoft.JSInterop.Infrastructure.DotNetDispatcher.EndInvokeJS(Microsoft.JSInterop.JSRuntime! jsRuntime, string! arguments) -> void +static Microsoft.JSInterop.Infrastructure.DotNetDispatcher.Invoke(Microsoft.JSInterop.JSRuntime! jsRuntime, in Microsoft.JSInterop.Infrastructure.DotNetInvocationInfo invocationInfo, string! argsJson) -> string? +static Microsoft.JSInterop.JSInProcessObjectReferenceExtensions.InvokeVoid(this Microsoft.JSInterop.IJSInProcessObjectReference! jsObjectReference, string! identifier, params object?[]! args) -> void +static Microsoft.JSInterop.JSInProcessRuntimeExtensions.InvokeVoid(this Microsoft.JSInterop.IJSInProcessRuntime! jsRuntime, string! identifier, params object?[]! args) -> void +static Microsoft.JSInterop.JSObjectReferenceExtensions.InvokeAsync(this Microsoft.JSInterop.IJSObjectReference! jsObjectReference, string! identifier, System.Threading.CancellationToken cancellationToken, params object?[]! args) -> System.Threading.Tasks.ValueTask +static Microsoft.JSInterop.JSObjectReferenceExtensions.InvokeAsync(this Microsoft.JSInterop.IJSObjectReference! jsObjectReference, string! identifier, System.TimeSpan timeout, params object?[]! args) -> System.Threading.Tasks.ValueTask +static Microsoft.JSInterop.JSObjectReferenceExtensions.InvokeAsync(this Microsoft.JSInterop.IJSObjectReference! jsObjectReference, string! identifier, params object?[]! args) -> System.Threading.Tasks.ValueTask +static Microsoft.JSInterop.JSObjectReferenceExtensions.InvokeVoidAsync(this Microsoft.JSInterop.IJSObjectReference! jsObjectReference, string! identifier, System.Threading.CancellationToken cancellationToken, params object?[]! args) -> System.Threading.Tasks.ValueTask +static Microsoft.JSInterop.JSObjectReferenceExtensions.InvokeVoidAsync(this Microsoft.JSInterop.IJSObjectReference! jsObjectReference, string! identifier, System.TimeSpan timeout, params object?[]! args) -> System.Threading.Tasks.ValueTask +static Microsoft.JSInterop.JSObjectReferenceExtensions.InvokeVoidAsync(this Microsoft.JSInterop.IJSObjectReference! jsObjectReference, string! identifier, params object?[]! args) -> System.Threading.Tasks.ValueTask +static Microsoft.JSInterop.JSRuntimeExtensions.InvokeAsync(this Microsoft.JSInterop.IJSRuntime! jsRuntime, string! identifier, System.Threading.CancellationToken cancellationToken, params object![]! args) -> System.Threading.Tasks.ValueTask +static Microsoft.JSInterop.JSRuntimeExtensions.InvokeAsync(this Microsoft.JSInterop.IJSRuntime! jsRuntime, string! identifier, System.TimeSpan timeout, params object![]! args) -> System.Threading.Tasks.ValueTask +static Microsoft.JSInterop.JSRuntimeExtensions.InvokeAsync(this Microsoft.JSInterop.IJSRuntime! jsRuntime, string! identifier, params object![]! args) -> System.Threading.Tasks.ValueTask +static Microsoft.JSInterop.JSRuntimeExtensions.InvokeVoidAsync(this Microsoft.JSInterop.IJSRuntime! jsRuntime, string! identifier, System.Threading.CancellationToken cancellationToken, params object![]! args) -> System.Threading.Tasks.ValueTask +static Microsoft.JSInterop.JSRuntimeExtensions.InvokeVoidAsync(this Microsoft.JSInterop.IJSRuntime! jsRuntime, string! identifier, System.TimeSpan timeout, params object![]! args) -> System.Threading.Tasks.ValueTask +static Microsoft.JSInterop.JSRuntimeExtensions.InvokeVoidAsync(this Microsoft.JSInterop.IJSRuntime! jsRuntime, string! identifier, params object![]! args) -> System.Threading.Tasks.ValueTask +virtual Microsoft.JSInterop.JSInProcessRuntime.InvokeJS(string! identifier, string? argsJson) -> string? +virtual Microsoft.JSInterop.JSRuntime.BeginInvokeJS(long taskId, string! identifier, string? argsJson) -> void diff --git a/src/Localization/Abstractions/src/PublicAPI.Shipped.txt b/src/Localization/Abstractions/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/Localization/Abstractions/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Localization/Abstractions/src/PublicAPI.Unshipped.txt b/src/Localization/Abstractions/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..8c1b707f62 --- /dev/null +++ b/src/Localization/Abstractions/src/PublicAPI.Unshipped.txt @@ -0,0 +1,28 @@ +#nullable enable +Microsoft.Extensions.Localization.IStringLocalizer +Microsoft.Extensions.Localization.IStringLocalizer.GetAllStrings(bool includeParentCultures) -> System.Collections.Generic.IEnumerable! +Microsoft.Extensions.Localization.IStringLocalizer.this[string! name, params object![]! arguments].get -> Microsoft.Extensions.Localization.LocalizedString! +Microsoft.Extensions.Localization.IStringLocalizer.this[string! name].get -> Microsoft.Extensions.Localization.LocalizedString! +Microsoft.Extensions.Localization.IStringLocalizer +Microsoft.Extensions.Localization.IStringLocalizerFactory +Microsoft.Extensions.Localization.IStringLocalizerFactory.Create(System.Type! resourceSource) -> Microsoft.Extensions.Localization.IStringLocalizer! +Microsoft.Extensions.Localization.IStringLocalizerFactory.Create(string! baseName, string! location) -> Microsoft.Extensions.Localization.IStringLocalizer! +Microsoft.Extensions.Localization.LocalizedString +Microsoft.Extensions.Localization.LocalizedString.LocalizedString(string! name, string! value) -> void +Microsoft.Extensions.Localization.LocalizedString.LocalizedString(string! name, string! value, bool resourceNotFound) -> void +Microsoft.Extensions.Localization.LocalizedString.LocalizedString(string! name, string! value, bool resourceNotFound, string? searchedLocation) -> void +Microsoft.Extensions.Localization.LocalizedString.Name.get -> string! +Microsoft.Extensions.Localization.LocalizedString.ResourceNotFound.get -> bool +Microsoft.Extensions.Localization.LocalizedString.SearchedLocation.get -> string? +Microsoft.Extensions.Localization.LocalizedString.Value.get -> string! +Microsoft.Extensions.Localization.StringLocalizer +Microsoft.Extensions.Localization.StringLocalizer.GetAllStrings(bool includeParentCultures) -> System.Collections.Generic.IEnumerable! +Microsoft.Extensions.Localization.StringLocalizer.StringLocalizer(Microsoft.Extensions.Localization.IStringLocalizerFactory! factory) -> void +Microsoft.Extensions.Localization.StringLocalizerExtensions +override Microsoft.Extensions.Localization.LocalizedString.ToString() -> string! +static Microsoft.Extensions.Localization.LocalizedString.implicit operator string?(Microsoft.Extensions.Localization.LocalizedString! localizedString) -> string? +static Microsoft.Extensions.Localization.StringLocalizerExtensions.GetAllStrings(this Microsoft.Extensions.Localization.IStringLocalizer! stringLocalizer) -> System.Collections.Generic.IEnumerable! +static Microsoft.Extensions.Localization.StringLocalizerExtensions.GetString(this Microsoft.Extensions.Localization.IStringLocalizer! stringLocalizer, string! name) -> Microsoft.Extensions.Localization.LocalizedString! +static Microsoft.Extensions.Localization.StringLocalizerExtensions.GetString(this Microsoft.Extensions.Localization.IStringLocalizer! stringLocalizer, string! name, params object![]! arguments) -> Microsoft.Extensions.Localization.LocalizedString! +virtual Microsoft.Extensions.Localization.StringLocalizer.this[string! name, params object![]! arguments].get -> Microsoft.Extensions.Localization.LocalizedString! +virtual Microsoft.Extensions.Localization.StringLocalizer.this[string! name].get -> Microsoft.Extensions.Localization.LocalizedString! diff --git a/src/Localization/Localization/src/PublicAPI.Shipped.txt b/src/Localization/Localization/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/Localization/Localization/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Localization/Localization/src/PublicAPI.Unshipped.txt b/src/Localization/Localization/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..d2609142c5 --- /dev/null +++ b/src/Localization/Localization/src/PublicAPI.Unshipped.txt @@ -0,0 +1,37 @@ +#nullable enable +Microsoft.Extensions.DependencyInjection.LocalizationServiceCollectionExtensions +Microsoft.Extensions.Localization.IResourceNamesCache +Microsoft.Extensions.Localization.IResourceNamesCache.GetOrAdd(string! name, System.Func?>! valueFactory) -> System.Collections.Generic.IList? +Microsoft.Extensions.Localization.LocalizationOptions +Microsoft.Extensions.Localization.LocalizationOptions.LocalizationOptions() -> void +Microsoft.Extensions.Localization.LocalizationOptions.ResourcesPath.get -> string! +Microsoft.Extensions.Localization.LocalizationOptions.ResourcesPath.set -> void +Microsoft.Extensions.Localization.ResourceLocationAttribute +Microsoft.Extensions.Localization.ResourceLocationAttribute.ResourceLocation.get -> string! +Microsoft.Extensions.Localization.ResourceLocationAttribute.ResourceLocationAttribute(string! resourceLocation) -> void +Microsoft.Extensions.Localization.ResourceManagerStringLocalizer +Microsoft.Extensions.Localization.ResourceManagerStringLocalizer.GetAllStrings(bool includeParentCultures, System.Globalization.CultureInfo! culture) -> System.Collections.Generic.IEnumerable! +Microsoft.Extensions.Localization.ResourceManagerStringLocalizer.GetStringSafely(string! name, System.Globalization.CultureInfo? culture) -> string? +Microsoft.Extensions.Localization.ResourceManagerStringLocalizer.ResourceManagerStringLocalizer(System.Resources.ResourceManager! resourceManager, System.Reflection.Assembly! resourceAssembly, string! baseName, Microsoft.Extensions.Localization.IResourceNamesCache! resourceNamesCache, Microsoft.Extensions.Logging.ILogger! logger) -> void +Microsoft.Extensions.Localization.ResourceManagerStringLocalizerFactory +Microsoft.Extensions.Localization.ResourceManagerStringLocalizerFactory.Create(System.Type! resourceSource) -> Microsoft.Extensions.Localization.IStringLocalizer! +Microsoft.Extensions.Localization.ResourceManagerStringLocalizerFactory.Create(string! baseName, string! location) -> Microsoft.Extensions.Localization.IStringLocalizer! +Microsoft.Extensions.Localization.ResourceNamesCache +Microsoft.Extensions.Localization.ResourceNamesCache.GetOrAdd(string! name, System.Func?>! valueFactory) -> System.Collections.Generic.IList? +Microsoft.Extensions.Localization.ResourceNamesCache.ResourceNamesCache() -> void +Microsoft.Extensions.Localization.RootNamespaceAttribute +Microsoft.Extensions.Localization.RootNamespaceAttribute.RootNamespace.get -> string! +Microsoft.Extensions.Localization.RootNamespaceAttribute.RootNamespaceAttribute(string! rootNamespace) -> void +static Microsoft.Extensions.DependencyInjection.LocalizationServiceCollectionExtensions.AddLocalization(this Microsoft.Extensions.DependencyInjection.IServiceCollection! services) -> Microsoft.Extensions.DependencyInjection.IServiceCollection! +static Microsoft.Extensions.DependencyInjection.LocalizationServiceCollectionExtensions.AddLocalization(this Microsoft.Extensions.DependencyInjection.IServiceCollection! services, System.Action! setupAction) -> Microsoft.Extensions.DependencyInjection.IServiceCollection! +virtual Microsoft.Extensions.Localization.ResourceManagerStringLocalizer.GetAllStrings(bool includeParentCultures) -> System.Collections.Generic.IEnumerable! +virtual Microsoft.Extensions.Localization.ResourceManagerStringLocalizer.this[string! name, params object![]! arguments].get -> Microsoft.Extensions.Localization.LocalizedString! +virtual Microsoft.Extensions.Localization.ResourceManagerStringLocalizer.this[string! name].get -> Microsoft.Extensions.Localization.LocalizedString! +virtual Microsoft.Extensions.Localization.ResourceManagerStringLocalizerFactory.CreateResourceManagerStringLocalizer(System.Reflection.Assembly! assembly, string! baseName) -> Microsoft.Extensions.Localization.ResourceManagerStringLocalizer! +virtual Microsoft.Extensions.Localization.ResourceManagerStringLocalizerFactory.GetResourceLocationAttribute(System.Reflection.Assembly! assembly) -> Microsoft.Extensions.Localization.ResourceLocationAttribute? +virtual Microsoft.Extensions.Localization.ResourceManagerStringLocalizerFactory.GetResourcePrefix(System.Reflection.TypeInfo! typeInfo) -> string! +virtual Microsoft.Extensions.Localization.ResourceManagerStringLocalizerFactory.GetResourcePrefix(System.Reflection.TypeInfo! typeInfo, string? baseNamespace, string? resourcesRelativePath) -> string! +virtual Microsoft.Extensions.Localization.ResourceManagerStringLocalizerFactory.GetResourcePrefix(string! baseResourceName, string! baseNamespace) -> string! +virtual Microsoft.Extensions.Localization.ResourceManagerStringLocalizerFactory.GetResourcePrefix(string! location, string! baseName, string! resourceLocation) -> string! +virtual Microsoft.Extensions.Localization.ResourceManagerStringLocalizerFactory.GetRootNamespaceAttribute(System.Reflection.Assembly! assembly) -> Microsoft.Extensions.Localization.RootNamespaceAttribute? +~Microsoft.Extensions.Localization.ResourceManagerStringLocalizerFactory.ResourceManagerStringLocalizerFactory(Microsoft.Extensions.Options.IOptions! localizationOptions, Microsoft.Extensions.Logging.ILoggerFactory! loggerFactory) -> void diff --git a/src/Logging.AzureAppServices/src/BlobLoggerProvider.cs b/src/Logging.AzureAppServices/src/BlobLoggerProvider.cs index 3d62ea2ac6..504a6b8c92 100644 --- a/src/Logging.AzureAppServices/src/BlobLoggerProvider.cs +++ b/src/Logging.AzureAppServices/src/BlobLoggerProvider.cs @@ -5,6 +5,7 @@ using System; using System.Collections.Generic; using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; using System.IO; using System.Linq; using System.Net.Http; @@ -29,6 +30,7 @@ namespace Microsoft.Extensions.Logging.AzureAppServices /// Creates a new instance of /// /// The options to use when creating a provider. + [SuppressMessage("ApiDesign", "RS0022:Constructor make noninheritable base class inheritable", Justification = "Required for backwards compatibility")] public BlobLoggerProvider(IOptionsMonitor options) : this(options, null) { diff --git a/src/Logging.AzureAppServices/src/FileLoggerProvider.cs b/src/Logging.AzureAppServices/src/FileLoggerProvider.cs index 1143d38c07..0752b0038a 100644 --- a/src/Logging.AzureAppServices/src/FileLoggerProvider.cs +++ b/src/Logging.AzureAppServices/src/FileLoggerProvider.cs @@ -3,6 +3,7 @@ // See the LICENSE file in the project root for more information. using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using System.IO; using System.Linq; using System.Threading; @@ -26,6 +27,7 @@ namespace Microsoft.Extensions.Logging.AzureAppServices /// Creates a new instance of . /// /// The options to use when creating a provider. + [SuppressMessage("ApiDesign", "RS0022:Constructor make noninheritable base class inheritable", Justification = "Required for backwards compatibility")] public FileLoggerProvider(IOptionsMonitor options) : base(options) { var loggerOptions = options.CurrentValue; diff --git a/src/Logging.AzureAppServices/src/PublicAPI.Shipped.txt b/src/Logging.AzureAppServices/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/Logging.AzureAppServices/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Logging.AzureAppServices/src/PublicAPI.Unshipped.txt b/src/Logging.AzureAppServices/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..68d49acfa6 --- /dev/null +++ b/src/Logging.AzureAppServices/src/PublicAPI.Unshipped.txt @@ -0,0 +1,35 @@ +#nullable enable +Microsoft.Extensions.Logging.AzureAppServices.AzureBlobLoggerOptions +Microsoft.Extensions.Logging.AzureAppServices.AzureBlobLoggerOptions.AzureBlobLoggerOptions() -> void +Microsoft.Extensions.Logging.AzureAppServices.AzureFileLoggerOptions +Microsoft.Extensions.Logging.AzureAppServices.AzureFileLoggerOptions.AzureFileLoggerOptions() -> void +Microsoft.Extensions.Logging.AzureAppServices.AzureFileLoggerOptions.FileSizeLimit.get -> int? +Microsoft.Extensions.Logging.AzureAppServices.AzureFileLoggerOptions.FileSizeLimit.set -> void +Microsoft.Extensions.Logging.AzureAppServices.AzureFileLoggerOptions.RetainedFileCountLimit.get -> int? +Microsoft.Extensions.Logging.AzureAppServices.AzureFileLoggerOptions.RetainedFileCountLimit.set -> void +Microsoft.Extensions.Logging.AzureAppServices.BatchingLoggerOptions +Microsoft.Extensions.Logging.AzureAppServices.BatchingLoggerOptions.BackgroundQueueSize.get -> int? +Microsoft.Extensions.Logging.AzureAppServices.BatchingLoggerOptions.BackgroundQueueSize.set -> void +Microsoft.Extensions.Logging.AzureAppServices.BatchingLoggerOptions.BatchSize.get -> int? +Microsoft.Extensions.Logging.AzureAppServices.BatchingLoggerOptions.BatchSize.set -> void +Microsoft.Extensions.Logging.AzureAppServices.BatchingLoggerOptions.BatchingLoggerOptions() -> void +Microsoft.Extensions.Logging.AzureAppServices.BatchingLoggerOptions.FlushPeriod.get -> System.TimeSpan +Microsoft.Extensions.Logging.AzureAppServices.BatchingLoggerOptions.FlushPeriod.set -> void +Microsoft.Extensions.Logging.AzureAppServices.BatchingLoggerOptions.IncludeScopes.get -> bool +Microsoft.Extensions.Logging.AzureAppServices.BatchingLoggerOptions.IncludeScopes.set -> void +Microsoft.Extensions.Logging.AzureAppServices.BatchingLoggerOptions.IsEnabled.get -> bool +Microsoft.Extensions.Logging.AzureAppServices.BatchingLoggerOptions.IsEnabled.set -> void +Microsoft.Extensions.Logging.AzureAppServices.BatchingLoggerProvider +Microsoft.Extensions.Logging.AzureAppServices.BatchingLoggerProvider.Dispose() -> void +Microsoft.Extensions.Logging.AzureAppServices.BatchingLoggerProvider.IsEnabled.get -> bool +Microsoft.Extensions.Logging.AzureAppServices.BlobLoggerProvider +Microsoft.Extensions.Logging.AzureAppServices.FileLoggerProvider +Microsoft.Extensions.Logging.AzureAppServicesLoggerFactoryExtensions +~Microsoft.Extensions.Logging.AzureAppServices.AzureBlobLoggerOptions.BlobName.get -> string +~Microsoft.Extensions.Logging.AzureAppServices.AzureBlobLoggerOptions.BlobName.set -> void +~Microsoft.Extensions.Logging.AzureAppServices.AzureFileLoggerOptions.FileName.get -> string +~Microsoft.Extensions.Logging.AzureAppServices.AzureFileLoggerOptions.FileName.set -> void +~Microsoft.Extensions.Logging.AzureAppServices.BatchingLoggerProvider.CreateLogger(string categoryName) -> Microsoft.Extensions.Logging.ILogger +~Microsoft.Extensions.Logging.AzureAppServices.BlobLoggerProvider.BlobLoggerProvider(Microsoft.Extensions.Options.IOptionsMonitor options) -> void +~Microsoft.Extensions.Logging.AzureAppServices.FileLoggerProvider.FileLoggerProvider(Microsoft.Extensions.Options.IOptionsMonitor options) -> void +~static Microsoft.Extensions.Logging.AzureAppServicesLoggerFactoryExtensions.AddAzureWebAppDiagnostics(this Microsoft.Extensions.Logging.ILoggingBuilder builder) -> Microsoft.Extensions.Logging.ILoggingBuilder From c61bdfdd25195b1c9f1824606369b92741d630f7 Mon Sep 17 00:00:00 2001 From: Matt Mitchell Date: Fri, 4 Sep 2020 10:07:31 -0700 Subject: [PATCH 036/187] Pass through BUILD_REPOSITORY_NAME to docker containers (#25620) Needed for manifest generation. Previously we used the uri for the name of the build, but the name is also used for generating the names of the stable package feeds in v3 publishing. --- dockerbuild.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/dockerbuild.sh b/dockerbuild.sh index 2d9b8bcfed..ff24d88a9a 100755 --- a/dockerbuild.sh +++ b/dockerbuild.sh @@ -137,6 +137,7 @@ docker run \ -e SYSTEM_TEAMPROJECT \ -e BUILD_BUILDNUMBER \ -e BUILD_REPOSITORY_URI \ + -e BUILD_REPOSITORY_NAME \ -e BUILD_SOURCEVERSION \ -e BUILD_SOURCEBRANCH \ -e SYSTEM_DEFINITIONID \ From bbc7fd81929c25f051c09dd526d83996fb5c07ba Mon Sep 17 00:00:00 2001 From: Mackinnon Buck Date: Fri, 4 Sep 2020 10:27:10 -0700 Subject: [PATCH 037/187] IJSUnmarshalledObjectReference for unmarshalled JS interop calls on JavaScript objects. (#25548) * Added IJSUnmarshalledObjectReference * Working support for IJSUnmarshalledObjectReference * CR feedback * Removed IVT and made JSObjectReference public * Updated JSON converter. * Update JSObjectReferenceJsonConverterTest.cs * Removed whitespace :sweat: --- .../Web.JS/dist/Release/blazor.webassembly.js | 2 +- src/Components/Web.JS/src/Boot.WebAssembly.ts | 11 ++- .../src/WebAssemblyJSObjectReference.cs | 45 ++++++++++++ .../JSInterop/src/WebAssemblyJSRuntime.cs | 57 ++++++++++----- .../src/Rendering/WebAssemblyRenderer.cs | 2 +- .../src/Services/WebAssemblyConsoleLogger.cs | 2 +- .../Services/WebAssemblyJSRuntimeInvoker.cs | 2 +- .../test/E2ETest/Tests/InteropTest.cs | 1 + .../BasicTestApp/InteropComponent.razor | 8 +++ .../BasicTestApp/InteropTest/InteropStruct.cs | 14 ++++ .../BasicTestApp/wwwroot/js/jsinteroptests.js | 5 ++ .../src/IJSInProcessObjectReference.cs | 4 +- .../src/IJSUnmarshalledObjectReference.cs | 55 +++++++++++++++ .../JSInProcessObjectReference.cs | 45 ++++++++++++ .../{ => Implementation}/JSObjectReference.cs | 34 ++++++--- .../JSObjectReferenceJsonConverter.cs | 9 ++- .../src/JSInProcessObjectReference.cs | 25 ------- .../src/JSInProcessRuntime.cs | 6 +- .../Microsoft.JSInterop/src/JSRuntime.cs | 4 +- .../src/Microsoft.JSInterop.csproj | 2 +- .../JSObjectReferenceJsonConverterTest.cs | 70 ++++++++++++++++++- .../test/JSObjectReferenceTest.cs | 1 + .../JSInterop/JSCallResultTypeHelper.cs | 4 +- 23 files changed, 337 insertions(+), 71 deletions(-) create mode 100644 src/Components/WebAssembly/JSInterop/src/WebAssemblyJSObjectReference.cs create mode 100644 src/Components/test/testassets/BasicTestApp/InteropTest/InteropStruct.cs create mode 100644 src/JSInterop/Microsoft.JSInterop/src/IJSUnmarshalledObjectReference.cs create mode 100644 src/JSInterop/Microsoft.JSInterop/src/Implementation/JSInProcessObjectReference.cs rename src/JSInterop/Microsoft.JSInterop/src/{ => Implementation}/JSObjectReference.cs (56%) delete mode 100644 src/JSInterop/Microsoft.JSInterop/src/JSInProcessObjectReference.cs diff --git a/src/Components/Web.JS/dist/Release/blazor.webassembly.js b/src/Components/Web.JS/dist/Release/blazor.webassembly.js index 0e35103eef..4536b800bb 100644 --- a/src/Components/Web.JS/dist/Release/blazor.webassembly.js +++ b/src/Components/Web.JS/dist/Release/blazor.webassembly.js @@ -1 +1 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=47)}([,,,function(e,t,n){"use strict";var r;n.r(t),n.d(t,"DotNet",(function(){return r})),function(e){var t;window.DotNet=e;var n=[],r=function(){function e(e){this._jsObject=e,this._cachedFunctions=new Map}return e.prototype.findFunction=function(e){var t=this._cachedFunctions.get(e);if(t)return t;var n,r=this._jsObject;if(e.split(".").forEach((function(t){if(!(t in r))throw new Error("Could not find '"+e+"' ('"+t+"' was undefined).");n=r,r=r[t]})),r instanceof Function)return r=r.bind(n),this._cachedFunctions.set(e,r),r;throw new Error("The value '"+e+"' is not a function.")},e.prototype.getWrappedObject=function(){return this._jsObject},e}(),o={},i=((t={})[0]=new r(window),t);i[0]._cachedFunctions.set("import",(function(e){return"string"==typeof e&&e.startsWith("./")&&(e=document.baseURI+e.substr(2)),import(e)}));var a,s=1,u=1,c=null;function l(e){n.push(e)}function f(e){var t;if(e&&"object"==typeof e){i[u]=new r(e);var n=((t={}).__jsObjectId=u,t);return u++,n}throw new Error("Cannot create a JSObjectReference from the value '"+e+"'.")}function d(e){return e?JSON.parse(e,(function(e,t){return n.reduce((function(t,n){return n(e,t)}),t)})):null}function p(e,t,n,r){var o=m();if(o.invokeDotNetFromJS){var i=JSON.stringify(r,_),a=o.invokeDotNetFromJS(e,t,n,i);return a?d(a):null}throw new Error("The current dispatcher does not support synchronous calls from JS to .NET. Use invokeMethodAsync instead.")}function h(e,t,n,r){if(e&&n)throw new Error("For instance method calls, assemblyName should be null. Received '"+e+"'.");var i=s++,a=new Promise((function(e,t){o[i]={resolve:e,reject:t}}));try{var u=JSON.stringify(r,_);m().beginInvokeDotNetFromJS(i,e,t,n,u)}catch(e){v(i,!1,e)}return a}function m(){if(null!==c)return c;throw new Error("No .NET call dispatcher has been set.")}function v(e,t,n){if(!o.hasOwnProperty(e))throw new Error("There is no pending async call with ID "+e+".");var r=o[e];delete o[e],t?r.resolve(n):r.reject(n)}function y(e){return e instanceof Error?e.message+"\n"+e.stack:e?e.toString():"null"}function b(e,t){var n=i[t];if(n)return n.findFunction(e);throw new Error("JS object instance with ID "+t+" does not exist (has it been disposed?).")}function g(e){delete i[e]}e.attachDispatcher=function(e){c=e},e.attachReviver=l,e.invokeMethod=function(e,t){for(var n=[],r=2;r0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(c(i)&&c(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(u(i))throw new Error("Not implemented: moving existing logical children");var a=c(t);if(n0;)e(r,0)}var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=u,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return c(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=c,t.permuteLogicalChildren=function(e,t){var n=c(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=u(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):d(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(25),n(17);var r=n(26),o=n(7),i={},a=!1;function s(e,t,n){var o=i[e];o||(o=i[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=s,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");s(n||0,o.toLogicalElement(r,!0),t)},t.getRendererer=function(e){return i[e]},t.renderBatch=function(e,t){var n=i[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),s=r.values(o),u=r.count(o),c=t.referenceFrames(),l=r.values(c),f=t.diffReader,d=0;d0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var c,l;s.attachDebuggerHotkey(e),window.Browser={init:function(){}},c=function(){window.Module=function(e,t,n){var c=this,l=e.bootConfig.resources,f=window.Module||{},d=["DEBUGGING ENABLED"];f.print=function(e){return d.indexOf(e)<0&&console.log(e)},f.printErr=function(e){console.error(e),u.showErrorNotification()},f.preRun=f.preRun||[],f.postRun=f.postRun||[],f.preloadPlugins=[];var h,b,g=e.loadResources(l.assembly,(function(e){return"_framework/"+e}),"assembly"),w=e.loadResources(l.pdb||{},(function(e){return"_framework/"+e}),"pdb"),E=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");return e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.blat")&&(h=e.loadResource("dotnet.timezones.blat","_framework/dotnet.timezones.blat",e.bootConfig.resources.runtime["dotnet.timezones.blat"],"globalization")),e.bootConfig.resources.runtime.hasOwnProperty("icudt.dat")&&(b=e.loadResource("icudt.dat","_framework/icudt.dat",e.bootConfig.resources.runtime["icudt.dat"],"globalization")),f.instantiateWasm=function(e,t){return r(c,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,E];case 1:return[4,v(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),f.printErr(r),r;case 4:return t(n),[2]}}))})),[]},f.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],h&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),Module.FS_createPath("/","usr",!0,!0),Module.FS_createPath("/usr/","share",!0,!0),Module.FS_createPath("/usr/share/","zoneinfo",!0,!0),MONO.mono_wasm_load_data_archive(new Uint8Array(n),"/usr/share/zoneinfo/"),removeRunDependency(t),[2]}}))}))}(h),b?function(e){r(this,void 0,void 0,(function(){var t,n,r,i,a;return o(this,(function(o){switch(o.label){case 0:return t="blazor:icudata",addRunDependency(t),[4,e.response];case 1:return n=o.sent(),i=Uint8Array.bind,[4,n.arrayBuffer()];case 2:if(r=new(i.apply(Uint8Array,[void 0,o.sent()])),a=MONO.mono_wasm_load_bytes_into_heap(r),!MONO.mono_wasm_load_icu_data(a))throw new Error("Error loading ICU asset.");return removeRunDependency(t),[2]}}))}))}(b):MONO.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT","1"),g.forEach((function(e){return _(e,function(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}(e.name,".dll"))})),w.forEach((function(e){return _(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){f.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources;if(i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(c,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return d(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>l)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*c+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return d(e+(t||0))},readStringField:function(e,t,n){var r,o=d(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return f?void 0===(r=f.stringCache.get(o))&&(r=BINDING.conv_string(o),f.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return y(),f=new b},invokeWhenHeapUnlocked:function(e){f?f.enqueuePostReleaseAction(e):e()}};var p=document.createElement("a");function h(e){return e+12}function m(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function v(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function y(){if(f)throw new Error("Assertion failed - heap is currently locked")}var b=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(f!==this)throw new Error("Trying to release a lock which isn't current");for(f=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),y()}},e}()},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&e.invokeMethodAsync("OnSpacerAfterVisible",r.boundingClientRect.bottom-r.intersectionRect.bottom,a,s)}}))}),{root:i,rootMargin:o+"px"});a.observe(t),a.observe(n);var s=c(t),u=c(n);function c(e){var t=new MutationObserver((function(){a.unobserve(e),a.observe(e)}));return t.observe(e,{attributes:!0}),t}r[e._id]={intersectionObserver:a,mutationObserverBefore:s,mutationObserverAfter:u}},dispose:function(e){var t=r[e._id];t&&(t.intersectionObserver.disconnect(),t.mutationObserverBefore.disconnect(),t.mutationObserverAfter.disconnect(),e.dispose(),delete r[e._id])}};var r={}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1].*)$/;function i(e,t){var n=e.currentElement;if(n&&n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r.groups&&r.groups.descriptor;if(!i)return;try{var s=function(e){var t=JSON.parse(e),n=t.type;if("server"!==n&&"webassembly"!==n)throw new Error("Invalid component type '"+n+"'.");return t}(i);switch(t){case"webassembly":return function(e,t,n){var r=e.type,o=e.assembly,i=e.typeName,s=e.parameterDefinitions,u=e.parameterValues,c=e.prerenderId;if("webassembly"!==r)return;if(!o)throw new Error("assembly must be defined when using a descriptor.");if(!i)throw new Error("typeName must be defined when using a descriptor.");if(c){var l=a(c,n);if(!l)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:u&&atob(u),start:t,prerenderId:c,end:l}}return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:u&&atob(u),start:t}}(s,n,e);case"server":return function(e,t,n){var r=e.type,o=e.descriptor,i=e.sequence,s=e.prerenderId;if("server"!==r)return;if(!o)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===i)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(i))throw new Error("Error parsing the sequence '"+i+"' for component '"+JSON.stringify(e)+"'");if(s){var u=a(s,n);if(!u)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,sequence:i,descriptor:o,start:t,prerenderId:s,end:u}}return{type:r,sequence:i,descriptor:o,start:t}}(s,n,e)}}catch(e){throw new Error("Found malformed component comment at "+n.textContent)}}}function a(e,t){for(;t.next()&&t.currentElement;){var n=t.currentElement;if(n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r[1];if(i)return s(i,e),n}}}function s(e,t){var n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error("Invalid end of component comment: '"+e+"'");var r=n.prerenderId;if(!r)throw new Error("End of component comment must have a value for the prerendered property: '"+e+"'");if(r!==t)throw new Error("End of component comment prerendered property must match the start comment prerender id: '"+t+"', '"+r+"'")}var u=function(){function e(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}return e.prototype.next=function(){return this.currentIndex++,this.currentIndex0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var a=n(3);n(24);var s=n(17),u=n(20),c=n(12),l=n(48),f=n(36),d=n(18),p=n(49),h=n(50),m=n(51),v=n(52),y=n(37),b=!1;function g(e){return r(this,void 0,void 0,(function(){var t,n,f,g,E,_,I,C,N,A,S,k=this;return o(this,(function(F){switch(F.label){case 0:if(b)throw new Error("Blazor has already started.");return b=!0,d.setEventDispatcher((function(e,t){c.getRendererer(e.browserRendererId).eventDelegator.getHandler(e.eventHandlerId)&&u.monoPlatform.invokeWhenHeapUnlocked((function(){return a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","DispatchEvent",e,JSON.stringify(t))}))})),window.Blazor._internal.invokeJSFromDotNet=w,t=s.setPlatform(u.monoPlatform),window.Blazor.platform=t,window.Blazor._internal.renderBatch=function(e,t){var n=u.monoPlatform.beginHeapLock();try{c.renderBatch(e,new l.SharedMemoryRenderBatch(t))}finally{n.release()}},n=window.Blazor._internal.navigationManager.getBaseURI,f=window.Blazor._internal.navigationManager.getLocationHref,window.Blazor._internal.navigationManager.getUnmarshalledBaseURI=function(){return BINDING.js_string_to_mono_string(n())},window.Blazor._internal.navigationManager.getUnmarshalledLocationHref=function(){return BINDING.js_string_to_mono_string(f())},window.Blazor._internal.navigationManager.listenForNavigationEvents((function(e,t){return r(k,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return[4,a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChanged",e,t)];case 1:return n.sent(),[2]}}))}))})),g=null==e?void 0:e.environment,E=m.BootConfigResult.initAsync(g),_=y.discoverComponents(document,"webassembly"),I=new v.WebAssemblyComponentAttacher(_),window.Blazor._internal.registeredComponents={getRegisteredComponentsCount:function(){return I.getCount()},getId:function(e){return I.getId(e)},getAssembly:function(e){return BINDING.js_string_to_mono_string(I.getAssembly(e))},getTypeName:function(e){return BINDING.js_string_to_mono_string(I.getTypeName(e))},getParameterDefinitions:function(e){return BINDING.js_string_to_mono_string(I.getParameterDefinitions(e)||"")},getParameterValues:function(e){return BINDING.js_string_to_mono_string(I.getParameterValues(e)||"")}},window.Blazor._internal.attachRootComponentToElement=function(e,t,n){var r=I.resolveRegisteredElement(e);r?c.attachRootComponentToLogicalElement(n,r,t):c.attachRootComponentToElement(e,t,n)},[4,E];case 1:return C=F.sent(),[4,Promise.all([p.WebAssemblyResourceLoader.initAsync(C.bootConfig,e||{}),h.WebAssemblyConfigLoader.initAsync(C)])];case 2:N=i.apply(void 0,[F.sent(),1]),A=N[0],F.label=3;case 3:return F.trys.push([3,5,,6]),[4,t.start(A)];case 4:return F.sent(),[3,6];case 5:throw S=F.sent(),new Error("Failed to start platform. Reason: "+S);case 6:return t.callEntryPoint(A.bootConfig.entryAssembly),[2]}}))}))}function w(e,t,n,r){var o=u.monoPlatform.readStringField(e,0),i=u.monoPlatform.readInt32Field(e,4),s=u.monoPlatform.readStringField(e,8),c=u.monoPlatform.readUint64Field(e,20);if(null!==s){var l=u.monoPlatform.readUint64Field(e,12);if(0!==l)return a.DotNet.jsCallDispatcher.beginInvokeJSFromDotNet(l,o,s,i,c),0;var f=a.DotNet.jsCallDispatcher.invokeJSFromDotNet(o,s,i,c);return null===f?0:BINDING.js_string_to_mono_string(f)}return a.DotNet.jsCallDispatcher.findJSFunction(o,c).call(null,t,n,r)}window.Blazor.start=g,f.shouldAutoStart()&&g().catch((function(e){"undefined"!=typeof Module&&Module.printErr?Module.printErr(e):console.error(e)}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(17),o=function(){function e(e){this.batchAddress=e,this.arrayRangeReader=i,this.arrayBuilderSegmentReader=a,this.diffReader=s,this.editReader=u,this.frameReader=c}return e.prototype.updatedComponents=function(){return r.platform.readStructField(this.batchAddress,0)},e.prototype.referenceFrames=function(){return r.platform.readStructField(this.batchAddress,i.structLength)},e.prototype.disposedComponentIds=function(){return r.platform.readStructField(this.batchAddress,2*i.structLength)},e.prototype.disposedEventHandlerIds=function(){return r.platform.readStructField(this.batchAddress,3*i.structLength)},e.prototype.updatedComponentsEntry=function(e,t){return l(e,t,s.structLength)},e.prototype.referenceFramesEntry=function(e,t){return l(e,t,c.structLength)},e.prototype.disposedComponentIdsEntry=function(e,t){var n=l(e,t,4);return r.platform.readInt32Field(n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=l(e,t,8);return r.platform.readUint64Field(n)},e}();t.SharedMemoryRenderBatch=o;var i={structLength:8,values:function(e){return r.platform.readObjectField(e,0)},count:function(e){return r.platform.readInt32Field(e,4)}},a={structLength:12,values:function(e){var t=r.platform.readObjectField(e,0),n=r.platform.getObjectFieldsBaseAddress(t);return r.platform.readObjectField(n,0)},offset:function(e){return r.platform.readInt32Field(e,4)},count:function(e){return r.platform.readInt32Field(e,8)}},s={structLength:4+a.structLength,componentId:function(e){return r.platform.readInt32Field(e,0)},edits:function(e){return r.platform.readStructField(e,4)},editsEntry:function(e,t){return l(e,t,u.structLength)}},u={structLength:20,editType:function(e){return r.platform.readInt32Field(e,0)},siblingIndex:function(e){return r.platform.readInt32Field(e,4)},newTreeIndex:function(e){return r.platform.readInt32Field(e,8)},moveToSiblingIndex:function(e){return r.platform.readInt32Field(e,8)},removedAttributeName:function(e){return r.platform.readStringField(e,16)}},c={structLength:36,frameType:function(e){return r.platform.readInt16Field(e,4)},subtreeLength:function(e){return r.platform.readInt32Field(e,8)},elementReferenceCaptureId:function(e){return r.platform.readStringField(e,16)},componentId:function(e){return r.platform.readInt32Field(e,12)},elementName:function(e){return r.platform.readStringField(e,16)},textContent:function(e){return r.platform.readStringField(e,16)},markupContent:function(e){return r.platform.readStringField(e,16)},attributeName:function(e){return r.platform.readStringField(e,16)},attributeValue:function(e){return r.platform.readStringField(e,24,!0)},attributeEventHandlerId:function(e){return r.platform.readUint64Field(e,8)}};function l(e,t,n){return r.platform.getArrayEntryPtr(e,t,n)}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(c(i)&&c(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(u(i))throw new Error("Not implemented: moving existing logical children");var a=c(t);if(n0;)e(r,0)}var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=u,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return c(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=c,t.permuteLogicalChildren=function(e,t){var n=c(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=u(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):d(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(25),n(17);var r=n(26),o=n(7),i={},a=!1;function s(e,t,n){var o=i[e];o||(o=i[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=s,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");s(n||0,o.toLogicalElement(r,!0),t)},t.getRendererer=function(e){return i[e]},t.renderBatch=function(e,t){var n=i[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),s=r.values(o),u=r.count(o),c=t.referenceFrames(),l=r.values(c),f=t.diffReader,d=0;d0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var c,l;s.attachDebuggerHotkey(e),window.Browser={init:function(){}},c=function(){window.Module=function(e,t,n){var c=this,l=e.bootConfig.resources,f=window.Module||{},d=["DEBUGGING ENABLED"];f.print=function(e){return d.indexOf(e)<0&&console.log(e)},f.printErr=function(e){console.error(e),u.showErrorNotification()},f.preRun=f.preRun||[],f.postRun=f.postRun||[],f.preloadPlugins=[];var h,b,g=e.loadResources(l.assembly,(function(e){return"_framework/"+e}),"assembly"),w=e.loadResources(l.pdb||{},(function(e){return"_framework/"+e}),"pdb"),E=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");return e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.blat")&&(h=e.loadResource("dotnet.timezones.blat","_framework/dotnet.timezones.blat",e.bootConfig.resources.runtime["dotnet.timezones.blat"],"globalization")),e.bootConfig.resources.runtime.hasOwnProperty("icudt.dat")&&(b=e.loadResource("icudt.dat","_framework/icudt.dat",e.bootConfig.resources.runtime["icudt.dat"],"globalization")),f.instantiateWasm=function(e,t){return r(c,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,E];case 1:return[4,v(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),f.printErr(r),r;case 4:return t(n),[2]}}))})),[]},f.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],h&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),Module.FS_createPath("/","usr",!0,!0),Module.FS_createPath("/usr/","share",!0,!0),Module.FS_createPath("/usr/share/","zoneinfo",!0,!0),MONO.mono_wasm_load_data_archive(new Uint8Array(n),"/usr/share/zoneinfo/"),removeRunDependency(t),[2]}}))}))}(h),b?function(e){r(this,void 0,void 0,(function(){var t,n,r,i,a;return o(this,(function(o){switch(o.label){case 0:return t="blazor:icudata",addRunDependency(t),[4,e.response];case 1:return n=o.sent(),i=Uint8Array.bind,[4,n.arrayBuffer()];case 2:if(r=new(i.apply(Uint8Array,[void 0,o.sent()])),a=MONO.mono_wasm_load_bytes_into_heap(r),!MONO.mono_wasm_load_icu_data(a))throw new Error("Error loading ICU asset.");return removeRunDependency(t),[2]}}))}))}(b):MONO.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT","1"),g.forEach((function(e){return _(e,function(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}(e.name,".dll"))})),w.forEach((function(e){return _(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){f.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources;if(i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(c,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return d(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>l)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*c+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return d(e+(t||0))},readStringField:function(e,t,n){var r,o=d(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return f?void 0===(r=f.stringCache.get(o))&&(r=BINDING.conv_string(o),f.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return y(),f=new b},invokeWhenHeapUnlocked:function(e){f?f.enqueuePostReleaseAction(e):e()}};var p=document.createElement("a");function h(e){return e+12}function m(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function v(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function y(){if(f)throw new Error("Assertion failed - heap is currently locked")}var b=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(f!==this)throw new Error("Trying to release a lock which isn't current");for(f=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),y()}},e}()},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&e.invokeMethodAsync("OnSpacerAfterVisible",r.boundingClientRect.bottom-r.intersectionRect.bottom,a,s)}}))}),{root:i,rootMargin:o+"px"});a.observe(t),a.observe(n);var s=c(t),u=c(n);function c(e){var t=new MutationObserver((function(){a.unobserve(e),a.observe(e)}));return t.observe(e,{attributes:!0}),t}r[e._id]={intersectionObserver:a,mutationObserverBefore:s,mutationObserverAfter:u}},dispose:function(e){var t=r[e._id];t&&(t.intersectionObserver.disconnect(),t.mutationObserverBefore.disconnect(),t.mutationObserverAfter.disconnect(),e.dispose(),delete r[e._id])}};var r={}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1].*)$/;function i(e,t){var n=e.currentElement;if(n&&n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r.groups&&r.groups.descriptor;if(!i)return;try{var s=function(e){var t=JSON.parse(e),n=t.type;if("server"!==n&&"webassembly"!==n)throw new Error("Invalid component type '"+n+"'.");return t}(i);switch(t){case"webassembly":return function(e,t,n){var r=e.type,o=e.assembly,i=e.typeName,s=e.parameterDefinitions,u=e.parameterValues,c=e.prerenderId;if("webassembly"!==r)return;if(!o)throw new Error("assembly must be defined when using a descriptor.");if(!i)throw new Error("typeName must be defined when using a descriptor.");if(c){var l=a(c,n);if(!l)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:u&&atob(u),start:t,prerenderId:c,end:l}}return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:u&&atob(u),start:t}}(s,n,e);case"server":return function(e,t,n){var r=e.type,o=e.descriptor,i=e.sequence,s=e.prerenderId;if("server"!==r)return;if(!o)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===i)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(i))throw new Error("Error parsing the sequence '"+i+"' for component '"+JSON.stringify(e)+"'");if(s){var u=a(s,n);if(!u)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,sequence:i,descriptor:o,start:t,prerenderId:s,end:u}}return{type:r,sequence:i,descriptor:o,start:t}}(s,n,e)}}catch(e){throw new Error("Found malformed component comment at "+n.textContent)}}}function a(e,t){for(;t.next()&&t.currentElement;){var n=t.currentElement;if(n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r[1];if(i)return s(i,e),n}}}function s(e,t){var n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error("Invalid end of component comment: '"+e+"'");var r=n.prerenderId;if(!r)throw new Error("End of component comment must have a value for the prerendered property: '"+e+"'");if(r!==t)throw new Error("End of component comment prerendered property must match the start comment prerender id: '"+t+"', '"+r+"'")}var u=function(){function e(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}return e.prototype.next=function(){return this.currentIndex++,this.currentIndex0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var a=n(3);n(24);var s=n(17),u=n(20),c=n(12),l=n(48),f=n(36),d=n(18),p=n(49),h=n(50),m=n(51),v=n(52),y=n(37),b=!1;function g(e){return r(this,void 0,void 0,(function(){var t,n,f,g,E,_,I,C,N,S,A,k=this;return o(this,(function(F){switch(F.label){case 0:if(b)throw new Error("Blazor has already started.");return b=!0,d.setEventDispatcher((function(e,t){c.getRendererer(e.browserRendererId).eventDelegator.getHandler(e.eventHandlerId)&&u.monoPlatform.invokeWhenHeapUnlocked((function(){return a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","DispatchEvent",e,JSON.stringify(t))}))})),window.Blazor._internal.invokeJSFromDotNet=w,t=s.setPlatform(u.monoPlatform),window.Blazor.platform=t,window.Blazor._internal.renderBatch=function(e,t){var n=u.monoPlatform.beginHeapLock();try{c.renderBatch(e,new l.SharedMemoryRenderBatch(t))}finally{n.release()}},n=window.Blazor._internal.navigationManager.getBaseURI,f=window.Blazor._internal.navigationManager.getLocationHref,window.Blazor._internal.navigationManager.getUnmarshalledBaseURI=function(){return BINDING.js_string_to_mono_string(n())},window.Blazor._internal.navigationManager.getUnmarshalledLocationHref=function(){return BINDING.js_string_to_mono_string(f())},window.Blazor._internal.navigationManager.listenForNavigationEvents((function(e,t){return r(k,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return[4,a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChanged",e,t)];case 1:return n.sent(),[2]}}))}))})),g=null==e?void 0:e.environment,E=m.BootConfigResult.initAsync(g),_=y.discoverComponents(document,"webassembly"),I=new v.WebAssemblyComponentAttacher(_),window.Blazor._internal.registeredComponents={getRegisteredComponentsCount:function(){return I.getCount()},getId:function(e){return I.getId(e)},getAssembly:function(e){return BINDING.js_string_to_mono_string(I.getAssembly(e))},getTypeName:function(e){return BINDING.js_string_to_mono_string(I.getTypeName(e))},getParameterDefinitions:function(e){return BINDING.js_string_to_mono_string(I.getParameterDefinitions(e)||"")},getParameterValues:function(e){return BINDING.js_string_to_mono_string(I.getParameterValues(e)||"")}},window.Blazor._internal.attachRootComponentToElement=function(e,t,n){var r=I.resolveRegisteredElement(e);r?c.attachRootComponentToLogicalElement(n,r,t):c.attachRootComponentToElement(e,t,n)},[4,E];case 1:return C=F.sent(),[4,Promise.all([p.WebAssemblyResourceLoader.initAsync(C.bootConfig,e||{}),h.WebAssemblyConfigLoader.initAsync(C)])];case 2:N=i.apply(void 0,[F.sent(),1]),S=N[0],F.label=3;case 3:return F.trys.push([3,5,,6]),[4,t.start(S)];case 4:return F.sent(),[3,6];case 5:throw A=F.sent(),new Error("Failed to start platform. Reason: "+A);case 6:return t.callEntryPoint(S.bootConfig.entryAssembly),[2]}}))}))}function w(e,t,n,r){var o=u.monoPlatform.readStringField(e,0),i=u.monoPlatform.readInt32Field(e,4),s=u.monoPlatform.readStringField(e,8),c=u.monoPlatform.readUint64Field(e,20);if(null!==s){var l=u.monoPlatform.readUint64Field(e,12);if(0!==l)return a.DotNet.jsCallDispatcher.beginInvokeJSFromDotNet(l,o,s,i,c),0;var f=a.DotNet.jsCallDispatcher.invokeJSFromDotNet(o,s,i,c);return null===f?0:BINDING.js_string_to_mono_string(f)}var d=a.DotNet.jsCallDispatcher.findJSFunction(o,c).call(null,t,n,r);switch(i){case a.DotNet.JSCallResultType.Default:return d;case a.DotNet.JSCallResultType.JSObjectReference:return a.DotNet.createJSObjectReference(d).__jsObjectId;default:throw new Error("Invalid JS call result type '"+i+"'.")}}window.Blazor.start=g,f.shouldAutoStart()&&g().catch((function(e){"undefined"!=typeof Module&&Module.printErr?Module.printErr(e):console.error(e)}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(17),o=function(){function e(e){this.batchAddress=e,this.arrayRangeReader=i,this.arrayBuilderSegmentReader=a,this.diffReader=s,this.editReader=u,this.frameReader=c}return e.prototype.updatedComponents=function(){return r.platform.readStructField(this.batchAddress,0)},e.prototype.referenceFrames=function(){return r.platform.readStructField(this.batchAddress,i.structLength)},e.prototype.disposedComponentIds=function(){return r.platform.readStructField(this.batchAddress,2*i.structLength)},e.prototype.disposedEventHandlerIds=function(){return r.platform.readStructField(this.batchAddress,3*i.structLength)},e.prototype.updatedComponentsEntry=function(e,t){return l(e,t,s.structLength)},e.prototype.referenceFramesEntry=function(e,t){return l(e,t,c.structLength)},e.prototype.disposedComponentIdsEntry=function(e,t){var n=l(e,t,4);return r.platform.readInt32Field(n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=l(e,t,8);return r.platform.readUint64Field(n)},e}();t.SharedMemoryRenderBatch=o;var i={structLength:8,values:function(e){return r.platform.readObjectField(e,0)},count:function(e){return r.platform.readInt32Field(e,4)}},a={structLength:12,values:function(e){var t=r.platform.readObjectField(e,0),n=r.platform.getObjectFieldsBaseAddress(t);return r.platform.readObjectField(n,0)},offset:function(e){return r.platform.readInt32Field(e,4)},count:function(e){return r.platform.readInt32Field(e,8)}},s={structLength:4+a.structLength,componentId:function(e){return r.platform.readInt32Field(e,0)},edits:function(e){return r.platform.readStructField(e,4)},editsEntry:function(e,t){return l(e,t,u.structLength)}},u={structLength:20,editType:function(e){return r.platform.readInt32Field(e,0)},siblingIndex:function(e){return r.platform.readInt32Field(e,4)},newTreeIndex:function(e){return r.platform.readInt32Field(e,8)},moveToSiblingIndex:function(e){return r.platform.readInt32Field(e,8)},removedAttributeName:function(e){return r.platform.readStringField(e,16)}},c={structLength:36,frameType:function(e){return r.platform.readInt16Field(e,4)},subtreeLength:function(e){return r.platform.readInt32Field(e,8)},elementReferenceCaptureId:function(e){return r.platform.readStringField(e,16)},componentId:function(e){return r.platform.readInt32Field(e,12)},elementName:function(e){return r.platform.readStringField(e,16)},textContent:function(e){return r.platform.readStringField(e,16)},markupContent:function(e){return r.platform.readStringField(e,16)},attributeName:function(e){return r.platform.readStringField(e,16)},attributeValue:function(e){return r.platform.readStringField(e,24,!0)},attributeEventHandlerId:function(e){return r.platform.readUint64Field(e,8)}};function l(e,t,n){return r.platform.getArrayEntryPtr(e,t,n)}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1](string identifier) + { + ThrowIfDisposed(); + + return _jsRuntime.InvokeUnmarshalled(identifier, null, null, null, Id); + } + + public TResult InvokeUnmarshalled(string identifier, T0 arg0) + { + ThrowIfDisposed(); + + return _jsRuntime.InvokeUnmarshalled(identifier, arg0, null, null, Id); + } + + public TResult InvokeUnmarshalled(string identifier, T0 arg0, T1 arg1) + { + ThrowIfDisposed(); + + return _jsRuntime.InvokeUnmarshalled(identifier, arg0, arg1, null, Id); + } + + public TResult InvokeUnmarshalled(string identifier, T0 arg0, T1 arg1, T2 arg2) + { + ThrowIfDisposed(); + + return _jsRuntime.InvokeUnmarshalled(identifier, arg0, arg1, arg2, Id); + } + } +} diff --git a/src/Components/WebAssembly/JSInterop/src/WebAssemblyJSRuntime.cs b/src/Components/WebAssembly/JSInterop/src/WebAssemblyJSRuntime.cs index cbc07b36a9..86ffec0ad5 100644 --- a/src/Components/WebAssembly/JSInterop/src/WebAssemblyJSRuntime.cs +++ b/src/Components/WebAssembly/JSInterop/src/WebAssemblyJSRuntime.cs @@ -1,6 +1,7 @@ // 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. +using System; using System.Text.Json; using Microsoft.JSInterop.Infrastructure; using WebAssembly.JSInterop; @@ -60,32 +61,50 @@ namespace Microsoft.JSInterop.WebAssembly BeginInvokeJS(0, "DotNet.jsCallDispatcher.endInvokeDotNetFromJS", args, JSCallResultType.Default, 0); } - /// - TResult IJSUnmarshalledRuntime.InvokeUnmarshalled(string identifier) - => ((IJSUnmarshalledRuntime)this).InvokeUnmarshalled(identifier, null, null, null); - - /// - TResult IJSUnmarshalledRuntime.InvokeUnmarshalled(string identifier, T0 arg0) - => ((IJSUnmarshalledRuntime)this).InvokeUnmarshalled(identifier, arg0, null, null); - - /// - TResult IJSUnmarshalledRuntime.InvokeUnmarshalled(string identifier, T0 arg0, T1 arg1) - => ((IJSUnmarshalledRuntime)this).InvokeUnmarshalled(identifier, arg0, arg1, null); - - /// - TResult IJSUnmarshalledRuntime.InvokeUnmarshalled(string identifier, T0 arg0, T1 arg1, T2 arg2) + internal TResult InvokeUnmarshalled(string identifier, T0 arg0, T1 arg1, T2 arg2, long targetInstanceId) { + var resultType = JSCallResultTypeHelper.FromGeneric(); + var callInfo = new JSCallInfo { FunctionIdentifier = identifier, - ResultType = JSCallResultTypeHelper.FromGeneric() + TargetInstanceId = targetInstanceId, + ResultType = resultType, }; - var result = InternalCalls.InvokeJS(out var exception, ref callInfo, arg0, arg1, arg2); + string exception; - return exception != null - ? throw new JSException(exception) - : result; + switch (resultType) + { + case JSCallResultType.Default: + var result = InternalCalls.InvokeJS(out exception, ref callInfo, arg0, arg1, arg2); + return exception != null + ? throw new JSException(exception) + : result; + case JSCallResultType.JSObjectReference: + var id = InternalCalls.InvokeJS(out exception, ref callInfo, arg0, arg1, arg2); + return exception != null + ? throw new JSException(exception) + : (TResult)(object)new WebAssemblyJSObjectReference(this, id); + default: + throw new InvalidOperationException($"Invalid result type '{resultType}'."); + } } + + /// + public TResult InvokeUnmarshalled(string identifier) + => InvokeUnmarshalled(identifier, null, null, null, 0); + + /// + public TResult InvokeUnmarshalled(string identifier, T0 arg0) + => InvokeUnmarshalled(identifier, arg0, null, null, 0); + + /// + public TResult InvokeUnmarshalled(string identifier, T0 arg0, T1 arg1) + => InvokeUnmarshalled(identifier, arg0, arg1, null, 0); + + /// + public TResult InvokeUnmarshalled(string identifier, T0 arg0, T1 arg1, T2 arg2) + => InvokeUnmarshalled(identifier, arg0, arg1, arg2, 0); } } diff --git a/src/Components/WebAssembly/WebAssembly/src/Rendering/WebAssemblyRenderer.cs b/src/Components/WebAssembly/WebAssembly/src/Rendering/WebAssemblyRenderer.cs index ca033e1107..f6ade9cbd7 100644 --- a/src/Components/WebAssembly/WebAssembly/src/Rendering/WebAssemblyRenderer.cs +++ b/src/Components/WebAssembly/WebAssembly/src/Rendering/WebAssemblyRenderer.cs @@ -98,7 +98,7 @@ namespace Microsoft.AspNetCore.Components.WebAssembly.Rendering /// protected override Task UpdateDisplayAsync(in RenderBatch batch) { - ((IJSUnmarshalledRuntime)DefaultWebAssemblyJSRuntime.Instance).InvokeUnmarshalled( + DefaultWebAssemblyJSRuntime.Instance.InvokeUnmarshalled( "Blazor._internal.renderBatch", _webAssemblyRendererId, batch); diff --git a/src/Components/WebAssembly/WebAssembly/src/Services/WebAssemblyConsoleLogger.cs b/src/Components/WebAssembly/WebAssembly/src/Services/WebAssemblyConsoleLogger.cs index 398453fa99..d8fb668579 100644 --- a/src/Components/WebAssembly/WebAssembly/src/Services/WebAssemblyConsoleLogger.cs +++ b/src/Components/WebAssembly/WebAssembly/src/Services/WebAssemblyConsoleLogger.cs @@ -99,7 +99,7 @@ namespace Microsoft.AspNetCore.Components.WebAssembly.Services _jsRuntime.InvokeVoid("console.error", formattedMessage); break; case LogLevel.Critical: - ((IJSUnmarshalledRuntime)_jsRuntime).InvokeUnmarshalled("Blazor._internal.dotNetCriticalError", formattedMessage); + _jsRuntime.InvokeUnmarshalled("Blazor._internal.dotNetCriticalError", formattedMessage); break; default: // LogLevel.None or invalid enum values Console.WriteLine(formattedMessage); diff --git a/src/Components/WebAssembly/WebAssembly/src/Services/WebAssemblyJSRuntimeInvoker.cs b/src/Components/WebAssembly/WebAssembly/src/Services/WebAssemblyJSRuntimeInvoker.cs index b2960de3ca..10d81c0002 100644 --- a/src/Components/WebAssembly/WebAssembly/src/Services/WebAssemblyJSRuntimeInvoker.cs +++ b/src/Components/WebAssembly/WebAssembly/src/Services/WebAssemblyJSRuntimeInvoker.cs @@ -22,6 +22,6 @@ namespace Microsoft.AspNetCore.Components.WebAssembly.Services public static WebAssemblyJSRuntimeInvoker Instance = new WebAssemblyJSRuntimeInvoker(); public virtual TResult InvokeUnmarshalled(string identifier, T0 arg0, T1 arg1, T2 arg2) - => ((IJSUnmarshalledRuntime)DefaultWebAssemblyJSRuntime.Instance).InvokeUnmarshalled(identifier, arg0, arg1, arg2); + => DefaultWebAssemblyJSRuntime.Instance.InvokeUnmarshalled(identifier, arg0, arg1, arg2); } } diff --git a/src/Components/test/E2ETest/Tests/InteropTest.cs b/src/Components/test/E2ETest/Tests/InteropTest.cs index 69d84233a0..ef763452a9 100644 --- a/src/Components/test/E2ETest/Tests/InteropTest.cs +++ b/src/Components/test/E2ETest/Tests/InteropTest.cs @@ -110,6 +110,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests ["instanceMethodIncomingByRef"] = "123", ["instanceMethodOutgoingByRef"] = "1234", ["jsInProcessObjectReference.identity"] = "Invoked from JSInProcessObjectReference", + ["jsUnmarshalledObjectReference.unmarshalledFunction"] = "True", ["stringValueUpperSync"] = "MY STRING", ["testDtoNonSerializedValueSync"] = "99999", ["testDtoSync"] = "Same", diff --git a/src/Components/test/testassets/BasicTestApp/InteropComponent.razor b/src/Components/test/testassets/BasicTestApp/InteropComponent.razor index 388e745493..788a8bda20 100644 --- a/src/Components/test/testassets/BasicTestApp/InteropComponent.razor +++ b/src/Components/test/testassets/BasicTestApp/InteropComponent.razor @@ -194,6 +194,14 @@ var jsInProcObjectReference = inProcRuntime.Invoke("returnJSObjectReference"); ReturnValues["jsInProcessObjectReference.identity"] = jsInProcObjectReference.Invoke("identity", "Invoked from JSInProcessObjectReference"); + + var unmarshalledRuntime = (IJSUnmarshalledRuntime)JSRuntime; + var jsUnmarshalledReference = unmarshalledRuntime.InvokeUnmarshalled("returnJSObjectReference"); + ReturnValues["jsUnmarshalledObjectReference.unmarshalledFunction"] = jsUnmarshalledReference.InvokeUnmarshalled("unmarshalledFunction", new InteropStruct + { + Message = "Sent from .NET", + NumberField = 42, + }).ToString(); } public class PassDotNetObjectByRefArgs diff --git a/src/Components/test/testassets/BasicTestApp/InteropTest/InteropStruct.cs b/src/Components/test/testassets/BasicTestApp/InteropTest/InteropStruct.cs new file mode 100644 index 0000000000..c003cb3f6b --- /dev/null +++ b/src/Components/test/testassets/BasicTestApp/InteropTest/InteropStruct.cs @@ -0,0 +1,14 @@ +using System.Runtime.InteropServices; + +namespace BasicTestApp.InteropTest +{ + [StructLayout(LayoutKind.Explicit)] + public struct InteropStruct + { + [FieldOffset(0)] + public string Message; + + [FieldOffset(8)] + public int NumberField; + } +} diff --git a/src/Components/test/testassets/BasicTestApp/wwwroot/js/jsinteroptests.js b/src/Components/test/testassets/BasicTestApp/wwwroot/js/jsinteroptests.js index 14ef4714c1..40d6ffd886 100644 --- a/src/Components/test/testassets/BasicTestApp/wwwroot/js/jsinteroptests.js +++ b/src/Components/test/testassets/BasicTestApp/wwwroot/js/jsinteroptests.js @@ -233,6 +233,11 @@ function returnJSObjectReference() { dispose: function () { DotNet.disposeJSObjectReference(this); }, + unmarshalledFunction: function (fields) { + const message = Blazor.platform.readStringField(fields, 0); + const numberField = Blazor.platform.readInt32Field(fields, 8); + return message === "Sent from .NET" && numberField === 42; + } }; } diff --git a/src/JSInterop/Microsoft.JSInterop/src/IJSInProcessObjectReference.cs b/src/JSInterop/Microsoft.JSInterop/src/IJSInProcessObjectReference.cs index 2c3cbbde69..52e7892da6 100644 --- a/src/JSInterop/Microsoft.JSInterop/src/IJSInProcessObjectReference.cs +++ b/src/JSInterop/Microsoft.JSInterop/src/IJSInProcessObjectReference.cs @@ -1,12 +1,14 @@ // 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. +using System; + namespace Microsoft.JSInterop { /// /// Represents a reference to a JavaScript object whose functions can be invoked synchronously. /// - public interface IJSInProcessObjectReference : IJSObjectReference + public interface IJSInProcessObjectReference : IJSObjectReference, IDisposable { /// /// Invokes the specified JavaScript function synchronously. diff --git a/src/JSInterop/Microsoft.JSInterop/src/IJSUnmarshalledObjectReference.cs b/src/JSInterop/Microsoft.JSInterop/src/IJSUnmarshalledObjectReference.cs new file mode 100644 index 0000000000..9a5fc0c11c --- /dev/null +++ b/src/JSInterop/Microsoft.JSInterop/src/IJSUnmarshalledObjectReference.cs @@ -0,0 +1,55 @@ +// 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. + +namespace Microsoft.JSInterop +{ + /// + /// Represents a reference to a JavaScript object whose functions can be invoked synchronously without JSON marshalling. + /// + public interface IJSUnmarshalledObjectReference : IJSInProcessObjectReference + { + /// + /// Invokes the JavaScript function registered with the specified identifier. + /// + /// The .NET type corresponding to the function's return value type. + /// The identifier used when registering the target function. + /// The result of the function invocation. + TResult InvokeUnmarshalled(string identifier); + + /// + /// Invokes the JavaScript function registered with the specified identifier. + /// + /// The type of the first argument. + /// The .NET type corresponding to the function's return value type. + /// The identifier used when registering the target function. + /// The first argument. + /// The result of the function invocation. + TResult InvokeUnmarshalled(string identifier, T0 arg0); + + /// + /// Invokes the JavaScript function registered with the specified identifier. + /// + /// The type of the first argument. + /// The type of the second argument. + /// The .NET type corresponding to the function's return value type. + /// The identifier used when registering the target function. + /// The first argument. + /// The second argument. + /// The result of the function invocation. + TResult InvokeUnmarshalled(string identifier, T0 arg0, T1 arg1); + + /// + /// Invokes the JavaScript function registered with the specified identifier. + /// + /// The type of the first argument. + /// The type of the second argument. + /// The type of the third argument. + /// The .NET type corresponding to the function's return value type. + /// The identifier used when registering the target function. + /// The first argument. + /// The second argument. + /// The third argument. + /// The result of the function invocation. + TResult InvokeUnmarshalled(string identifier, T0 arg0, T1 arg1, T2 arg2); + } +} diff --git a/src/JSInterop/Microsoft.JSInterop/src/Implementation/JSInProcessObjectReference.cs b/src/JSInterop/Microsoft.JSInterop/src/Implementation/JSInProcessObjectReference.cs new file mode 100644 index 0000000000..6867c98c78 --- /dev/null +++ b/src/JSInterop/Microsoft.JSInterop/src/Implementation/JSInProcessObjectReference.cs @@ -0,0 +1,45 @@ +// 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. + +using System.Diagnostics.CodeAnalysis; + +namespace Microsoft.JSInterop.Implementation +{ + /// + /// Implements functionality for . + /// + public class JSInProcessObjectReference : JSObjectReference, IJSInProcessObjectReference + { + private readonly JSInProcessRuntime _jsRuntime; + + /// + /// Inititializes a new instance. + /// + /// The used for invoking JS interop calls. + /// The unique identifier. + protected internal JSInProcessObjectReference(JSInProcessRuntime jsRuntime, long id) : base(jsRuntime, id) + { + _jsRuntime = jsRuntime; + } + + /// + [return: MaybeNull] + public TValue Invoke(string identifier, params object?[]? args) + { + ThrowIfDisposed(); + + return _jsRuntime.Invoke(identifier, Id, args); + } + + /// + public void Dispose() + { + if (!Disposed) + { + Disposed = true; + + _jsRuntime.InvokeVoid("DotNet.jsCallDispatcher.disposeJSObjectReferenceById", Id); + } + } + } +} diff --git a/src/JSInterop/Microsoft.JSInterop/src/JSObjectReference.cs b/src/JSInterop/Microsoft.JSInterop/src/Implementation/JSObjectReference.cs similarity index 56% rename from src/JSInterop/Microsoft.JSInterop/src/JSObjectReference.cs rename to src/JSInterop/Microsoft.JSInterop/src/Implementation/JSObjectReference.cs index ea87657a07..f92c6d7ded 100644 --- a/src/JSInterop/Microsoft.JSInterop/src/JSObjectReference.cs +++ b/src/JSInterop/Microsoft.JSInterop/src/Implementation/JSObjectReference.cs @@ -2,29 +2,38 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; -using System.Text.Json; using System.Threading; using System.Threading.Tasks; -namespace Microsoft.JSInterop +namespace Microsoft.JSInterop.Implementation { - internal class JSObjectReference : IJSObjectReference + /// + /// Implements functionality for . + /// + public class JSObjectReference : IJSObjectReference { - public static readonly JsonEncodedText IdKey = JsonEncodedText.Encode("__jsObjectId"); - private readonly JSRuntime _jsRuntime; - private bool _disposed; + internal bool Disposed { get; set; } - public long Id { get; } + /// + /// The unique identifier assigned to this instance. + /// + protected internal long Id { get; } - public JSObjectReference(JSRuntime jsRuntime, long id) + /// + /// Inititializes a new instance. + /// + /// The used for invoking JS interop calls. + /// The unique identifier. + protected internal JSObjectReference(JSRuntime jsRuntime, long id) { _jsRuntime = jsRuntime; Id = id; } + /// public ValueTask InvokeAsync(string identifier, object?[]? args) { ThrowIfDisposed(); @@ -32,6 +41,7 @@ namespace Microsoft.JSInterop return _jsRuntime.InvokeAsync(Id, identifier, args); } + /// public ValueTask InvokeAsync(string identifier, CancellationToken cancellationToken, object?[]? args) { ThrowIfDisposed(); @@ -39,19 +49,21 @@ namespace Microsoft.JSInterop return _jsRuntime.InvokeAsync(Id, identifier, cancellationToken, args); } + /// public async ValueTask DisposeAsync() { - if (!_disposed) + if (!Disposed) { - _disposed = true; + Disposed = true; await _jsRuntime.InvokeVoidAsync("DotNet.jsCallDispatcher.disposeJSObjectReferenceById", Id); } } + /// protected void ThrowIfDisposed() { - if (_disposed) + if (Disposed) { throw new ObjectDisposedException(GetType().Name); } diff --git a/src/JSInterop/Microsoft.JSInterop/src/Infrastructure/JSObjectReferenceJsonConverter.cs b/src/JSInterop/Microsoft.JSInterop/src/Infrastructure/JSObjectReferenceJsonConverter.cs index d18f7092b6..d19c607014 100644 --- a/src/JSInterop/Microsoft.JSInterop/src/Infrastructure/JSObjectReferenceJsonConverter.cs +++ b/src/JSInterop/Microsoft.JSInterop/src/Infrastructure/JSObjectReferenceJsonConverter.cs @@ -4,6 +4,7 @@ using System; using System.Text.Json; using System.Text.Json.Serialization; +using Microsoft.JSInterop.Implementation; namespace Microsoft.JSInterop.Infrastructure { @@ -11,6 +12,8 @@ namespace Microsoft.JSInterop.Infrastructure where TInterface : class, IJSObjectReference where TImplementation : JSObjectReference, TInterface { + private static readonly JsonEncodedText _idKey = JsonEncodedText.Encode("__jsObjectId"); + private readonly Func _jsObjectReferenceFactory; public JSObjectReferenceJsonConverter(Func jsObjectReferenceFactory) @@ -29,7 +32,7 @@ namespace Microsoft.JSInterop.Infrastructure { if (reader.TokenType == JsonTokenType.PropertyName) { - if (id == -1 && reader.ValueTextEquals(JSObjectReference.IdKey.EncodedUtf8Bytes)) + if (id == -1 && reader.ValueTextEquals(_idKey.EncodedUtf8Bytes)) { reader.Read(); id = reader.GetInt64(); @@ -47,7 +50,7 @@ namespace Microsoft.JSInterop.Infrastructure if (id == -1) { - throw new JsonException($"Required property {JSObjectReference.IdKey} not found."); + throw new JsonException($"Required property {_idKey} not found."); } return _jsObjectReferenceFactory(id); @@ -56,7 +59,7 @@ namespace Microsoft.JSInterop.Infrastructure public override void Write(Utf8JsonWriter writer, TInterface value, JsonSerializerOptions options) { writer.WriteStartObject(); - writer.WriteNumber(JSObjectReference.IdKey, ((TImplementation)value).Id); + writer.WriteNumber(_idKey, ((TImplementation)value).Id); writer.WriteEndObject(); } } diff --git a/src/JSInterop/Microsoft.JSInterop/src/JSInProcessObjectReference.cs b/src/JSInterop/Microsoft.JSInterop/src/JSInProcessObjectReference.cs deleted file mode 100644 index 44dcba7287..0000000000 --- a/src/JSInterop/Microsoft.JSInterop/src/JSInProcessObjectReference.cs +++ /dev/null @@ -1,25 +0,0 @@ -// 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. - -using System.Diagnostics.CodeAnalysis; - -namespace Microsoft.JSInterop -{ - internal class JSInProcessObjectReference : JSObjectReference, IJSInProcessObjectReference - { - private readonly JSInProcessRuntime _jsRuntime; - - internal JSInProcessObjectReference(JSInProcessRuntime jsRuntime, long id) : base(jsRuntime, id) - { - _jsRuntime = jsRuntime; - } - - [return: MaybeNull] - public TValue Invoke(string identifier, params object?[]? args) - { - ThrowIfDisposed(); - - return _jsRuntime.Invoke(identifier, Id, args); - } - } -} diff --git a/src/JSInterop/Microsoft.JSInterop/src/JSInProcessRuntime.cs b/src/JSInterop/Microsoft.JSInterop/src/JSInProcessRuntime.cs index 2912c2db06..44b35f6d3f 100644 --- a/src/JSInterop/Microsoft.JSInterop/src/JSInProcessRuntime.cs +++ b/src/JSInterop/Microsoft.JSInterop/src/JSInProcessRuntime.cs @@ -3,6 +3,7 @@ using System.Diagnostics.CodeAnalysis; using System.Text.Json; +using Microsoft.JSInterop.Implementation; using Microsoft.JSInterop.Infrastructure; namespace Microsoft.JSInterop @@ -17,8 +18,9 @@ namespace Microsoft.JSInterop /// protected JSInProcessRuntime() { - JsonSerializerOptions.Converters.Add(new JSObjectReferenceJsonConverter( - id => new JSInProcessObjectReference(this, id))); + JsonSerializerOptions.Converters.Add( + new JSObjectReferenceJsonConverter( + id => new JSInProcessObjectReference(this, id))); } [return: MaybeNull] diff --git a/src/JSInterop/Microsoft.JSInterop/src/JSRuntime.cs b/src/JSInterop/Microsoft.JSInterop/src/JSRuntime.cs index 25a885a7b9..7d37460e55 100644 --- a/src/JSInterop/Microsoft.JSInterop/src/JSRuntime.cs +++ b/src/JSInterop/Microsoft.JSInterop/src/JSRuntime.cs @@ -8,6 +8,7 @@ using System.Linq; using System.Text.Json; using System.Threading; using System.Threading.Tasks; +using Microsoft.JSInterop.Implementation; using Microsoft.JSInterop.Infrastructure; namespace Microsoft.JSInterop @@ -37,7 +38,8 @@ namespace Microsoft.JSInterop Converters = { new DotNetObjectReferenceJsonConverterFactory(this), - new JSObjectReferenceJsonConverter(id => new JSObjectReference(this, id)), + new JSObjectReferenceJsonConverter( + id => new JSObjectReference(this, id)), } }; } diff --git a/src/JSInterop/Microsoft.JSInterop/src/Microsoft.JSInterop.csproj b/src/JSInterop/Microsoft.JSInterop/src/Microsoft.JSInterop.csproj index 4667991833..15af621cda 100644 --- a/src/JSInterop/Microsoft.JSInterop/src/Microsoft.JSInterop.csproj +++ b/src/JSInterop/Microsoft.JSInterop/src/Microsoft.JSInterop.csproj @@ -1,4 +1,4 @@ - + $(DefaultNetCoreTargetFramework) diff --git a/src/JSInterop/Microsoft.JSInterop/test/Infrastructure/JSObjectReferenceJsonConverterTest.cs b/src/JSInterop/Microsoft.JSInterop/test/Infrastructure/JSObjectReferenceJsonConverterTest.cs index 0b7948cf56..6b485cc1fd 100644 --- a/src/JSInterop/Microsoft.JSInterop/test/Infrastructure/JSObjectReferenceJsonConverterTest.cs +++ b/src/JSInterop/Microsoft.JSInterop/test/Infrastructure/JSObjectReferenceJsonConverterTest.cs @@ -1,7 +1,9 @@ // 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. +using System; using System.Text.Json; +using Microsoft.JSInterop.Implementation; using Xunit; namespace Microsoft.JSInterop.Infrastructure @@ -9,7 +11,16 @@ namespace Microsoft.JSInterop.Infrastructure public class JSObjectReferenceJsonConverterTest { private readonly JSRuntime JSRuntime = new TestJSRuntime(); - private JsonSerializerOptions JsonSerializerOptions => JSRuntime.JsonSerializerOptions; + private readonly JsonSerializerOptions JsonSerializerOptions; + + public JSObjectReferenceJsonConverterTest() + { + JsonSerializerOptions = JSRuntime.JsonSerializerOptions; + JsonSerializerOptions.Converters.Add(new JSObjectReferenceJsonConverter( + id => new JSInProcessObjectReference(default!, id))); + JsonSerializerOptions.Converters.Add(new JSObjectReferenceJsonConverter( + id => new TestJSUnmarshalledObjectReference(id))); + } [Fact] public void Read_Throws_IfJsonIsMissingJSObjectIdProperty() @@ -56,7 +67,7 @@ namespace Microsoft.JSInterop.Infrastructure } [Fact] - public void Read_ReadsJson() + public void Read_ReadsJson_IJSObjectReference() { // Arrange var expectedId = 3; @@ -69,6 +80,34 @@ namespace Microsoft.JSInterop.Infrastructure Assert.Equal(expectedId, deserialized?.Id); } + [Fact] + public void Read_ReadsJson_IJSInProcessObjectReference() + { + // Arrange + var expectedId = 3; + var json = $"{{\"__jsObjectId\":{expectedId}}}"; + + // Act + var deserialized = (JSInProcessObjectReference)JsonSerializer.Deserialize(json, JsonSerializerOptions)!; + + // Assert + Assert.Equal(expectedId, deserialized?.Id); + } + + [Fact] + public void Read_ReadsJson_IJSUnmarshalledObjectReference() + { + // Arrange + var expectedId = 3; + var json = $"{{\"__jsObjectId\":{expectedId}}}"; + + // Act + var deserialized = (TestJSUnmarshalledObjectReference)JsonSerializer.Deserialize(json, JsonSerializerOptions)!; + + // Assert + Assert.Equal(expectedId, deserialized?.Id); + } + [Fact] public void Write_WritesValidJson() { @@ -81,5 +120,32 @@ namespace Microsoft.JSInterop.Infrastructure // Assert Assert.Equal($"{{\"__jsObjectId\":{jsObjectRef.Id}}}", json); } + + private class TestJSUnmarshalledObjectReference : JSInProcessObjectReference, IJSUnmarshalledObjectReference + { + public TestJSUnmarshalledObjectReference(long id) : base(default!, id) + { + } + + public TResult InvokeUnmarshalled(string identifier) + { + throw new NotImplementedException(); + } + + public TResult InvokeUnmarshalled(string identifier, T0 arg0) + { + throw new NotImplementedException(); + } + + public TResult InvokeUnmarshalled(string identifier, T0 arg0, T1 arg1) + { + throw new NotImplementedException(); + } + + public TResult InvokeUnmarshalled(string identifier, T0 arg0, T1 arg1, T2 arg2) + { + throw new NotImplementedException(); + } + } } } diff --git a/src/JSInterop/Microsoft.JSInterop/test/JSObjectReferenceTest.cs b/src/JSInterop/Microsoft.JSInterop/test/JSObjectReferenceTest.cs index 2eb4f57fa9..b142fb0caf 100644 --- a/src/JSInterop/Microsoft.JSInterop/test/JSObjectReferenceTest.cs +++ b/src/JSInterop/Microsoft.JSInterop/test/JSObjectReferenceTest.cs @@ -4,6 +4,7 @@ using System; using System.Threading; using System.Threading.Tasks; +using Microsoft.JSInterop.Implementation; using Microsoft.JSInterop.Infrastructure; using Xunit; diff --git a/src/Shared/JSInterop/JSCallResultTypeHelper.cs b/src/Shared/JSInterop/JSCallResultTypeHelper.cs index a03e4308d1..82c3920c72 100644 --- a/src/Shared/JSInterop/JSCallResultTypeHelper.cs +++ b/src/Shared/JSInterop/JSCallResultTypeHelper.cs @@ -6,7 +6,9 @@ namespace Microsoft.JSInterop internal static class JSCallResultTypeHelper { public static JSCallResultType FromGeneric() - => typeof(TResult) == typeof(IJSObjectReference) || typeof(TResult) == typeof(IJSInProcessObjectReference) ? + => typeof(TResult) == typeof(IJSObjectReference) + || typeof(TResult) == typeof(IJSInProcessObjectReference) + || typeof(TResult) == typeof(IJSUnmarshalledObjectReference) ? JSCallResultType.JSObjectReference : JSCallResultType.Default; } From cd0ec1f46b2bb416c590c56fa09c4e0ba96e1726 Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Fri, 4 Sep 2020 10:53:15 -0700 Subject: [PATCH 038/187] Add dotnet-install-scripts files to Helix content --- eng/targets/Helix.targets | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/eng/targets/Helix.targets b/eng/targets/Helix.targets index 9a277c0d59..706c407778 100644 --- a/eng/targets/Helix.targets +++ b/eng/targets/Helix.targets @@ -33,6 +33,11 @@ PreserveNewest PreserveNewest + + eng\common\dotnet-install-scripts\%(Filename)%(Extension) + PreserveNewest + PreserveNewest + + + + diff --git a/src/Components/test/testassets/TestContentPackage/ComponentFromPackage.razor.css b/src/Components/test/testassets/TestContentPackage/ComponentFromPackage.razor.css new file mode 100644 index 0000000000..7703d4b4e1 --- /dev/null +++ b/src/Components/test/testassets/TestContentPackage/ComponentFromPackage.razor.css @@ -0,0 +1,3 @@ +div { + font-size: 20px; +} diff --git a/src/Components/test/testassets/TestContentPackage/wwwroot/styles.css b/src/Components/test/testassets/TestContentPackage/wwwroot/styles.css index 95137fe983..1b4c995098 100644 --- a/src/Components/test/testassets/TestContentPackage/wwwroot/styles.css +++ b/src/Components/test/testassets/TestContentPackage/wwwroot/styles.css @@ -1,10 +1,9 @@ -.special-style { +.special-style { background-image: url('./face.png'); padding: 50px; background-repeat: repeat-x; border: 5px dashed red; font-family: "Comic Sans MS"; - font-size: 20px; font-weight: bold; animation: hideous-rainbow 1s infinite; } diff --git a/src/Components/test/testassets/TestServer/Components.TestServer.csproj b/src/Components/test/testassets/TestServer/Components.TestServer.csproj index 59b8fe5685..5030a5fc78 100644 --- a/src/Components/test/testassets/TestServer/Components.TestServer.csproj +++ b/src/Components/test/testassets/TestServer/Components.TestServer.csproj @@ -1,4 +1,4 @@ - + $(DefaultNetCoreTargetFramework) @@ -36,19 +36,4 @@ - - - - - - diff --git a/src/Components/test/testassets/TestServer/Pages/_ServerHost.cshtml b/src/Components/test/testassets/TestServer/Pages/_ServerHost.cshtml index ebd2beeaf9..2421d246ad 100644 --- a/src/Components/test/testassets/TestServer/Pages/_ServerHost.cshtml +++ b/src/Components/test/testassets/TestServer/Pages/_ServerHost.cshtml @@ -10,6 +10,7 @@ + @@ -41,8 +42,6 @@ - - + + + + From 0637599517adf7fb5114ec800c6eba3591d27b91 Mon Sep 17 00:00:00 2001 From: Javier Calvarro Nelson Date: Thu, 10 Sep 2020 19:18:32 +0200 Subject: [PATCH 069/187] Update DfaMatcherBuilder to use the correct behavior (#25616) --- .../Routing/src/Matching/DfaMatcherBuilder.cs | 2 +- .../UnitTests/Matching/DfaMatcherBuilderTest.cs | 16 ++++++++++++---- .../Matching/DfaMatcherConformanceTest.cs | 4 ++-- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/Http/Routing/src/Matching/DfaMatcherBuilder.cs b/src/Http/Routing/src/Matching/DfaMatcherBuilder.cs index c10c34d12b..3ff3666101 100644 --- a/src/Http/Routing/src/Matching/DfaMatcherBuilder.cs +++ b/src/Http/Routing/src/Matching/DfaMatcherBuilder.cs @@ -49,7 +49,7 @@ namespace Microsoft.AspNetCore.Routing.Matching } else { - UseCorrectCatchAllBehavior = false; // default to bugged behavior + UseCorrectCatchAllBehavior = true; // default to correct behavior } var (nodeBuilderPolicies, endpointComparerPolicies, endpointSelectorPolicies) = ExtractPolicies(policies.OrderBy(p => p.Order)); diff --git a/src/Http/Routing/test/UnitTests/Matching/DfaMatcherBuilderTest.cs b/src/Http/Routing/test/UnitTests/Matching/DfaMatcherBuilderTest.cs index 6ac360a207..7372e4d3b3 100644 --- a/src/Http/Routing/test/UnitTests/Matching/DfaMatcherBuilderTest.cs +++ b/src/Http/Routing/test/UnitTests/Matching/DfaMatcherBuilderTest.cs @@ -543,7 +543,7 @@ namespace Microsoft.AspNetCore.Routing.Matching public void BuildDfaTree_MultipleEndpoint_ParameterAndCatchAll_OnSameNode_Order2_DefaultBehavior() { var builder = CreateDfaMatcherBuilder(); - BuildDfaTree_MultipleEndpoint_ParameterAndCatchAll_OnSameNode_Order2_LegacyBehavior_Core(builder); + BuildDfaTree_MultipleEndpoint_ParameterAndCatchAll_OnSameNode_Order2_CorrectBehavior_Core(builder); } [Fact] @@ -636,7 +636,11 @@ namespace Microsoft.AspNetCore.Routing.Matching // Arrange var builder = CreateDfaMatcherBuilder(); builder.UseCorrectCatchAllBehavior = true; + BuildDfaTree_MultipleEndpoint_CatchAllWithHigherPrecedenceThanParameter_Order1_CorrectBehavior_Core(builder); + } + private void BuildDfaTree_MultipleEndpoint_CatchAllWithHigherPrecedenceThanParameter_Order1_CorrectBehavior_Core(DfaMatcherBuilder builder) + { var endpoint1 = CreateEndpoint("{a}/{b}", order: 0); builder.AddEndpoint(endpoint1); @@ -688,10 +692,14 @@ namespace Microsoft.AspNetCore.Routing.Matching [Fact] public void BuildDfaTree_MultipleEndpoint_CatchAllWithHigherPrecedenceThanParameter_Order2_CorrectBehavior() { - // Arrange var builder = CreateDfaMatcherBuilder(); builder.UseCorrectCatchAllBehavior = true; + BuildDfaTree_MultipleEndpoint_CatchAllWithHigherPrecedenceThanParameter_Order2_CorrectBehavior_Core(builder); + } + private void BuildDfaTree_MultipleEndpoint_CatchAllWithHigherPrecedenceThanParameter_Order2_CorrectBehavior_Core(DfaMatcherBuilder builder) + { + // Arrange var endpoint1 = CreateEndpoint("a/{*b}", order: 0); builder.AddEndpoint(endpoint1); @@ -744,7 +752,7 @@ namespace Microsoft.AspNetCore.Routing.Matching public void BuildDfaTree_MultipleEndpoint_CatchAllWithHigherPrecedenceThanParameter_Order1_DefaultBehavior() { var builder = CreateDfaMatcherBuilder(); - BuildDfaTree_MultipleEndpoint_CatchAllWithHigherPrecedenceThanParameter_Order1_Legacy30Behavior_Core(builder); + BuildDfaTree_MultipleEndpoint_CatchAllWithHigherPrecedenceThanParameter_Order1_CorrectBehavior_Core(builder); } // Regression test for https://github.com/dotnet/aspnetcore/issues/18677 @@ -803,7 +811,7 @@ namespace Microsoft.AspNetCore.Routing.Matching public void BuildDfaTree_MultipleEndpoint_CatchAllWithHigherPrecedenceThanParameter_Order2_DefaultBehavior() { var builder = CreateDfaMatcherBuilder(); - BuildDfaTree_MultipleEndpoint_CatchAllWithHigherPrecedenceThanParameter_Order2_Legacy30Behavior_Core(builder); + BuildDfaTree_MultipleEndpoint_CatchAllWithHigherPrecedenceThanParameter_Order2_CorrectBehavior_Core(builder); } // Regression test for https://github.com/dotnet/aspnetcore/issues/18677 diff --git a/src/Http/Routing/test/UnitTests/Matching/DfaMatcherConformanceTest.cs b/src/Http/Routing/test/UnitTests/Matching/DfaMatcherConformanceTest.cs index 66fb02c03a..5af5ca25fe 100644 --- a/src/Http/Routing/test/UnitTests/Matching/DfaMatcherConformanceTest.cs +++ b/src/Http/Routing/test/UnitTests/Matching/DfaMatcherConformanceTest.cs @@ -60,8 +60,8 @@ namespace Microsoft.AspNetCore.Routing.Matching // [Theory] [InlineData("/middleware", 1)] - [InlineData("/middleware/test", 0)] - [InlineData("/middleware/test1/test2", -1)] + [InlineData("/middleware/test", 1)] + [InlineData("/middleware/test1/test2", 1)] [InlineData("/bill/boga", 0)] public async Task Match_Regression_1867_DefaultBehavior(string path, int endpointIndex) { From 31fcc8bd26f0edc290704f69b892b4ebe966676a Mon Sep 17 00:00:00 2001 From: Javier Calvarro Nelson Date: Thu, 10 Sep 2020 19:20:19 +0200 Subject: [PATCH 070/187] Update error page (#25706) --- .../BlazorServerWeb-CSharp/Pages/Error.cshtml | 50 ++++++++++++---- .../Pages/Error.cshtml.cs | 32 ++++++++++ .../Server/Pages/Error.cshtml | 59 ++++++++++++------- 3 files changed, 107 insertions(+), 34 deletions(-) create mode 100644 src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/Error.cshtml.cs diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/Error.cshtml b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/Error.cshtml index 6436437154..6b3b6a1930 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/Error.cshtml +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/Error.cshtml @@ -1,16 +1,42 @@ @page +@model BlazorServerWeb_CSharp.Pages.ErrorModel + + -

Error.

-

An error occurred while processing your request.

+ + + + Error + + + -

Development Mode

-

- Swapping to Development environment will display more detailed information about the error that occurred. -

-

- The Development environment shouldn't be enabled for deployed applications. - It can result in displaying sensitive information from exceptions to end users. - For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development - and restarting the app. -

+ +
+
+

Error.

+

An error occurred while processing your request.

+ + @if (Model.ShowRequestId) + { +

+ Request ID: @Model.RequestId +

+ } + +

Development Mode

+

+ Swapping to the Development environment displays detailed information about the error that occurred. +

+

+ The Development environment shouldn't be enabled for deployed applications. + It can result in displaying sensitive information from exceptions to end users. + For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development + and restarting the app. +

+
+
+ + + diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/Error.cshtml.cs b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/Error.cshtml.cs new file mode 100644 index 0000000000..4c944dc5d8 --- /dev/null +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/Error.cshtml.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.Extensions.Logging; + +namespace BlazorServerWeb_CSharp.Pages +{ + [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] + [IgnoreAntiforgeryToken] + public class ErrorModel : PageModel + { + public string RequestId { get; set; } + + public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); + + private readonly ILogger _logger; + + public ErrorModel(ILogger logger) + { + _logger = logger; + } + + public void OnGet() + { + RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier; + } + } +} diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Pages/Error.cshtml b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Pages/Error.cshtml index acc46468b6..b1ff51af39 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Pages/Error.cshtml +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Pages/Error.cshtml @@ -1,27 +1,42 @@ @page @model ComponentsWebAssembly_CSharp.Server.Pages.ErrorModel -@{ - Layout = "_Layout"; - ViewData["Title"] = "Error"; -} -

Error.

-

An error occurred while processing your request.

+ + -@if (Model.ShowRequestId) -{ -

- Request ID: @Model.RequestId -

-} + + + + Error + + + -

Development Mode

-

- Swapping to the Development environment displays detailed information about the error that occurred. -

-

- The Development environment shouldn't be enabled for deployed applications. - It can result in displaying sensitive information from exceptions to end users. - For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development - and restarting the app. -

+ +
+
+

Error.

+

An error occurred while processing your request.

+ + @if (Model.ShowRequestId) + { +

+ Request ID: @Model.RequestId +

+ } + +

Development Mode

+

+ Swapping to the Development environment displays detailed information about the error that occurred. +

+

+ The Development environment shouldn't be enabled for deployed applications. + It can result in displaying sensitive information from exceptions to end users. + For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development + and restarting the app. +

+
+
+ + + From dda1d33f7bea9e85e6abcd5dab2642f22e9a8093 Mon Sep 17 00:00:00 2001 From: Juan Hoyos Date: Thu, 10 Sep 2020 10:59:37 -0700 Subject: [PATCH 071/187] Enable ARM64 installers build. (#25579) Changes WiX toolset used to 3.14 to support ARM64 Generates targeting pack from the x86/x64 leg, as it gets produced using a zip that gets generated there. The ARM64 leg now produces all the necessary msi's, exe, and wixlib needed for the installer to generate a bundle. --- .azure/pipelines/ci.yml | 61 +++++++++++++++---- build.ps1 | 5 +- eng/Build.props | 14 ++++- eng/targets/Wix.Common.props | 4 +- .../Windows/SharedFramework/Product.wxs | 4 +- .../SharedFramework/SharedFramework.wixproj | 4 ++ .../Windows/SharedFrameworkBundle/Bundle.wxs | 2 + .../SharedFrameworkBundle.wixproj | 43 ++++++++----- .../Windows/SharedFrameworkLib/Library.wxs | 3 + .../Windows/TargetingPack/Product.wxs | 4 +- src/Installers/Windows/Wix.targets | 5 ++ 11 files changed, 113 insertions(+), 36 deletions(-) diff --git a/.azure/pipelines/ci.yml b/.azure/pipelines/ci.yml index a3cce2ea12..a7dc48c128 100644 --- a/.azure/pipelines/ci.yml +++ b/.azure/pipelines/ci.yml @@ -51,6 +51,8 @@ variables: /p:DotNetPublishUsingPipelines=$(_PublishUsingPipelines) /p:DotNetArtifactsCategory=$(_DotNetArtifactsCategory) # Do not log most Windows steps in official builds; this is the slowest job. Site extensions step always logs. + - name: WindowsArm64LogArgs + value: -ExcludeCIBinaryLog - name: Windows64LogArgs value: -ExcludeCIBinaryLog - name: Windows86LogArgs @@ -59,12 +61,16 @@ variables: value: -ExcludeCIBinaryLog - name: WindowsInstallersLogArgs value: -ExcludeCIBinaryLog + - name: WindowsArm64InstallersLogArgs + value: -ExcludeCIBinaryLog - ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}: - name: _BuildArgs value: '/p:SkipTestBuild=true' - name: _PublishArgs value: '' # Write binary logs for all main Windows build steps except the x86 one in public and PR builds. + - name: WindowsArm64LogArgs + value: /bl:artifacts/log/Release/Build.arm64.binlog - name: Windows64LogArgs value: /bl:artifacts/log/Release/Build.x64.binlog - name: Windows86LogArgs @@ -73,6 +79,8 @@ variables: value: /bl:artifacts/log/Release/Build.CodeSign.binlog - name: WindowsInstallersLogArgs value: /bl:artifacts/log/Release/Build.Installers.binlog + - name: WindowsArm64InstallersLogArgs + value: /bl:artifacts/log/Release/Build.Installers.Arm64.binlog - ${{ if ne(variables['System.TeamProject'], 'internal') }}: - name: _UseHelixOpenQueues value: 'true' @@ -263,18 +271,6 @@ stages: jobName: Windows_arm64_build jobDisplayName: "Build: Windows ARM64" agentOs: Windows - buildArgs: - -arch arm64 - -sign - -pack - -noBuildNodeJS - -noBuildJava - /p:DotNetSignType=$(_SignType) - /p:OnlyPackPlatformSpecificPackages=true - /p:AssetManifestFileName=aspnetcore-win-arm64.xml - $(_BuildArgs) - $(_PublishArgs) - $(_InternalRuntimeDownloadArgs) installNodeJs: false installJdk: false artifacts: @@ -286,6 +282,47 @@ stages: path: artifacts/packages/ - name: Windows_arm64_Installers path: artifacts/installers/ + steps: + - script: ./build.cmd + -ci + -arch arm64 + -sign + -pack + -noBuildJava + -noBuildNative + /p:DotNetSignType=$(_SignType) + /p:OnlyPackPlatformSpecificPackages=true + $(_BuildArgs) + $(_InternalRuntimeDownloadArgs) + $(WindowsArm64LogArgs) + displayName: Build ARM64 + + # Windows installers bundle for arm64 + - script: ./build.cmd + -ci + -noBuildRepoTasks + -arch arm64 + -sign + -buildInstallers + -noBuildNative + /p:DotNetSignType=$(_SignType) + /p:AssetManifestFileName=aspnetcore-win-arm64.xml + $(_BuildArgs) + $(_PublishArgs) + $(_InternalRuntimeDownloadArgs) + $(WindowsArm64InstallersLogArgs) + displayName: Build Arm64 Installers + + # A few files must also go to the VS package feed. + - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - task: NuGetCommand@2 + displayName: Push Visual Studio packages + inputs: + command: push + packagesToPush: 'artifacts/packages/**/VS.Redist.Common.AspNetCore.*.nupkg' + nuGetFeedType: external + publishFeedCredentials: 'DevDiv - VS package feed' + # Build MacOS - template: jobs/default-build.yml diff --git a/build.ps1 b/build.ps1 index 96e5cb7bf0..0d82c3b265 100644 --- a/build.ps1 +++ b/build.ps1 @@ -296,12 +296,11 @@ if ($BuildNodeJS) { $dotnetBuildArguments += "/p:BuildNodeJS=true" } # Don't bother with two builds if just one will build everything. Ignore super-weird cases like # "-Projects ... -NoBuildJava -NoBuildManaged -NoBuildNodeJS". An empty `./build.ps1` command will build both # managed and native projects. -$performDesktopBuild = ($BuildInstallers -or $BuildNative) -and ` - -not $Architecture.StartsWith("arm", [System.StringComparison]::OrdinalIgnoreCase) +$performDesktopBuild = ($BuildInstallers -and $Architecture -ne "arm") -or ` + ($BuildNative -and -not $Architecture.StartsWith("arm", [System.StringComparison]::OrdinalIgnoreCase)) $performDotnetBuild = $BuildJava -or $BuildManaged -or $BuildNodeJS -or ` ($All -and -not ($NoBuildJava -and $NoBuildManaged -and $NoBuildNodeJS)) -or ` ($Projects -and -not ($BuildInstallers -or $specifiedBuildNative)) - $foundJdk = $false $javac = Get-Command javac -ErrorAction Ignore -CommandType Application $localJdkPath = "$PSScriptRoot\.tools\jdk\win-x64\" diff --git a/eng/Build.props b/eng/Build.props index f0cb8db0b8..497ba8f4f8 100644 --- a/eng/Build.props +++ b/eng/Build.props @@ -50,7 +50,7 @@ - + @@ -64,6 +64,10 @@ + + @@ -77,6 +81,14 @@ + + + + + + + diff --git a/eng/targets/Wix.Common.props b/eng/targets/Wix.Common.props index e6b1337fcb..9a29437eb2 100644 --- a/eng/targets/Wix.Common.props +++ b/eng/targets/Wix.Common.props @@ -3,8 +3,8 @@ 2.0 - 3.11 - 3.11.1 + 3.14 + 3.14.0-dotnet diff --git a/src/Installers/Windows/SharedFramework/Product.wxs b/src/Installers/Windows/SharedFramework/Product.wxs index 2a71da323a..3375094918 100644 --- a/src/Installers/Windows/SharedFramework/Product.wxs +++ b/src/Installers/Windows/SharedFramework/Product.wxs @@ -2,7 +2,7 @@ - + @@ -21,7 +21,7 @@ - + diff --git a/src/Installers/Windows/SharedFramework/SharedFramework.wixproj b/src/Installers/Windows/SharedFramework/SharedFramework.wixproj index edbb9f5bef..6c87d77747 100644 --- a/src/Installers/Windows/SharedFramework/SharedFramework.wixproj +++ b/src/Installers/Windows/SharedFramework/SharedFramework.wixproj @@ -61,12 +61,16 @@ + $(InstallersOutputPath) $(InstallersOutputPath) $(InstallersOutputPath) + $(SharedFrameworkArm64HarvestRootPath)aspnetcore-runtime-internal-$(PackageVersion)-win-arm64.zip $(SharedFrameworkX64HarvestRootPath)aspnetcore-runtime-internal-$(PackageVersion)-win-x64.zip $(SharedFrameworkX86HarvestRootPath)aspnetcore-runtime-internal-$(PackageVersion)-win-x86.zip + + + diff --git a/src/Installers/Windows/SharedFrameworkBundle/SharedFrameworkBundle.wixproj b/src/Installers/Windows/SharedFrameworkBundle/SharedFrameworkBundle.wixproj index 7aa16e58ec..f9f285c873 100644 --- a/src/Installers/Windows/SharedFrameworkBundle/SharedFrameworkBundle.wixproj +++ b/src/Installers/Windows/SharedFrameworkBundle/SharedFrameworkBundle.wixproj @@ -29,20 +29,35 @@ - - - SharedFrameworkLib - {5244BC49-2568-4701-80A6-EAB8950AB5FA} - True - True - - - SharedFrameworkLib - {5244BC49-2568-4701-80A6-EAB8950AB5FA} - True - True - - + + + + + SharedFrameworkLib + {5244BC49-2568-4701-80A6-EAB8950AB5FA} + True + True + + + + + + + SharedFrameworkLib + {5244BC49-2568-4701-80A6-EAB8950AB5FA} + True + True + + + SharedFrameworkLib + {5244BC49-2568-4701-80A6-EAB8950AB5FA} + True + True + + + + + diff --git a/src/Installers/Windows/SharedFrameworkLib/Library.wxs b/src/Installers/Windows/SharedFrameworkLib/Library.wxs index dde16acbd7..c30f743d0b 100644 --- a/src/Installers/Windows/SharedFrameworkLib/Library.wxs +++ b/src/Installers/Windows/SharedFrameworkLib/Library.wxs @@ -16,6 +16,9 @@ + + + - + @@ -21,7 +21,7 @@ - + diff --git a/src/Installers/Windows/Wix.targets b/src/Installers/Windows/Wix.targets index ec321d4c41..4112082782 100644 --- a/src/Installers/Windows/Wix.targets +++ b/src/Installers/Windows/Wix.targets @@ -8,6 +8,11 @@ <_FileRevisionVersion Condition=" '$(_FileRevisionVersion)' == '' ">42424 $(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).$(AspNetCorePatchVersion).$(_FileRevisionVersion) + + + $(DefineConstants);InstallerVersion=500 + $(DefineConstants);InstallerVersion=200 + $(DefineConstants);MajorVersion=$(AspNetCoreMajorVersion) $(DefineConstants);MinorVersion=$(AspNetCoreMinorVersion) $(DefineConstants);Version=$(Version) From 158401f3612d804fd1e4298294f61934390019f3 Mon Sep 17 00:00:00 2001 From: Kevin Pilch Date: Thu, 10 Sep 2020 11:44:04 -0700 Subject: [PATCH 072/187] Add public API baselines to SignalR (#25653) --- .../HubConnectionExtensions.InvokeAsync.cs | 12 + ...ConnectionExtensions.InvokeAsyncGeneric.cs | 12 + .../src/HubConnectionExtensions.SendAsync.cs | 12 + ...nnectionExtensions.StreamAsChannelAsync.cs | 12 + .../HubConnectionExtensions.StreamAsync.cs | 12 + .../Client.Core/src/PublicAPI.Shipped.txt | 1 + .../Client.Core/src/PublicAPI.Unshipped.txt | 135 +++++++++ .../csharp/Client/src/PublicAPI.Shipped.txt | 1 + .../csharp/Client/src/PublicAPI.Unshipped.txt | 10 + .../src/HttpConnection.cs | 3 + .../src/PublicAPI.Shipped.txt | 1 + .../src/PublicAPI.Unshipped.txt | 54 ++++ .../src/PublicAPI.Shipped.txt | 1 + .../src/PublicAPI.Unshipped.txt | 34 +++ .../src/PublicAPI.Shipped.txt | 1 + .../src/PublicAPI.Unshipped.txt | 51 ++++ .../Protocols.Json/src/PublicAPI.Shipped.txt | 1 + .../src/PublicAPI.Unshipped.txt | 18 ++ .../src/PublicAPI.Shipped.txt | 1 + .../src/PublicAPI.Unshipped.txt | 18 ++ .../src/PublicAPI.Shipped.txt | 1 + .../src/PublicAPI.Unshipped.txt | 19 ++ .../SignalR.Common/src/PublicAPI.Shipped.txt | 1 + .../src/PublicAPI.Unshipped.txt | 97 ++++++ .../server/Core/src/ClientProxyExtensions.cs | 12 + .../server/Core/src/HubConnectionContext.cs | 3 + .../server/Core/src/PublicAPI.Shipped.txt | 1 + .../server/Core/src/PublicAPI.Unshipped.txt | 280 ++++++++++++++++++ .../server/SignalR/src/PublicAPI.Shipped.txt | 1 + .../SignalR/src/PublicAPI.Unshipped.txt | 14 + .../src/PublicAPI.Shipped.txt | 1 + .../src/PublicAPI.Unshipped.txt | 29 ++ 32 files changed, 849 insertions(+) create mode 100644 src/SignalR/clients/csharp/Client.Core/src/PublicAPI.Shipped.txt create mode 100644 src/SignalR/clients/csharp/Client.Core/src/PublicAPI.Unshipped.txt create mode 100644 src/SignalR/clients/csharp/Client/src/PublicAPI.Shipped.txt create mode 100644 src/SignalR/clients/csharp/Client/src/PublicAPI.Unshipped.txt create mode 100644 src/SignalR/clients/csharp/Http.Connections.Client/src/PublicAPI.Shipped.txt create mode 100644 src/SignalR/clients/csharp/Http.Connections.Client/src/PublicAPI.Unshipped.txt create mode 100644 src/SignalR/common/Http.Connections.Common/src/PublicAPI.Shipped.txt create mode 100644 src/SignalR/common/Http.Connections.Common/src/PublicAPI.Unshipped.txt create mode 100644 src/SignalR/common/Http.Connections/src/PublicAPI.Shipped.txt create mode 100644 src/SignalR/common/Http.Connections/src/PublicAPI.Unshipped.txt create mode 100644 src/SignalR/common/Protocols.Json/src/PublicAPI.Shipped.txt create mode 100644 src/SignalR/common/Protocols.Json/src/PublicAPI.Unshipped.txt create mode 100644 src/SignalR/common/Protocols.MessagePack/src/PublicAPI.Shipped.txt create mode 100644 src/SignalR/common/Protocols.MessagePack/src/PublicAPI.Unshipped.txt create mode 100644 src/SignalR/common/Protocols.NewtonsoftJson/src/PublicAPI.Shipped.txt create mode 100644 src/SignalR/common/Protocols.NewtonsoftJson/src/PublicAPI.Unshipped.txt create mode 100644 src/SignalR/common/SignalR.Common/src/PublicAPI.Shipped.txt create mode 100644 src/SignalR/common/SignalR.Common/src/PublicAPI.Unshipped.txt create mode 100644 src/SignalR/server/Core/src/PublicAPI.Shipped.txt create mode 100644 src/SignalR/server/Core/src/PublicAPI.Unshipped.txt create mode 100644 src/SignalR/server/SignalR/src/PublicAPI.Shipped.txt create mode 100644 src/SignalR/server/SignalR/src/PublicAPI.Unshipped.txt create mode 100644 src/SignalR/server/StackExchangeRedis/src/PublicAPI.Shipped.txt create mode 100644 src/SignalR/server/StackExchangeRedis/src/PublicAPI.Unshipped.txt diff --git a/src/SignalR/clients/csharp/Client.Core/src/HubConnectionExtensions.InvokeAsync.cs b/src/SignalR/clients/csharp/Client.Core/src/HubConnectionExtensions.InvokeAsync.cs index f8d2a0ddb7..5d9a263470 100644 --- a/src/SignalR/clients/csharp/Client.Core/src/HubConnectionExtensions.InvokeAsync.cs +++ b/src/SignalR/clients/csharp/Client.Core/src/HubConnectionExtensions.InvokeAsync.cs @@ -2,6 +2,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Diagnostics.CodeAnalysis; using System.Threading; using System.Threading.Tasks; @@ -19,6 +20,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// The name of the server method to invoke. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task InvokeAsync(this HubConnection hubConnection, string methodName, CancellationToken cancellationToken = default) { return hubConnection.InvokeCoreAsync(methodName, Array.Empty(), cancellationToken); @@ -32,6 +34,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// The first argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task InvokeAsync(this HubConnection hubConnection, string methodName, object arg1, CancellationToken cancellationToken = default) { return hubConnection.InvokeCoreAsync(methodName, new[] { arg1 }, cancellationToken); @@ -46,6 +49,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// The second argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task InvokeAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, CancellationToken cancellationToken = default) { return hubConnection.InvokeCoreAsync(methodName, new[] { arg1, arg2 }, cancellationToken); @@ -61,6 +65,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// The third argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task InvokeAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, CancellationToken cancellationToken = default) { return hubConnection.InvokeCoreAsync(methodName, new[] { arg1, arg2, arg3 }, cancellationToken); @@ -77,6 +82,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// The fourth argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task InvokeAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, CancellationToken cancellationToken = default) { return hubConnection.InvokeCoreAsync(methodName, new[] { arg1, arg2, arg3, arg4 }, cancellationToken); @@ -94,6 +100,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// The fifth argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task InvokeAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, CancellationToken cancellationToken = default) { return hubConnection.InvokeCoreAsync(methodName, new[] { arg1, arg2, arg3, arg4, arg5 }, cancellationToken); @@ -112,6 +119,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// The sixth argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task InvokeAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, CancellationToken cancellationToken = default) { return hubConnection.InvokeCoreAsync(methodName, new[] { arg1, arg2, arg3, arg4, arg5, arg6 }, cancellationToken); @@ -131,6 +139,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// The seventh argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task InvokeAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, CancellationToken cancellationToken = default) { return hubConnection.InvokeCoreAsync(methodName, new[] { arg1, arg2, arg3, arg4, arg5, arg6, arg7 }, cancellationToken); @@ -151,6 +160,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// The eighth argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task InvokeAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, CancellationToken cancellationToken = default) { return hubConnection.InvokeCoreAsync(methodName, new[] { arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8 }, cancellationToken); @@ -172,6 +182,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// The ninth argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task InvokeAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, CancellationToken cancellationToken = default) { return hubConnection.InvokeCoreAsync(methodName, new[] { arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9 }, cancellationToken); @@ -194,6 +205,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// The tenth argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task InvokeAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, object arg10, CancellationToken cancellationToken = default) { return hubConnection.InvokeCoreAsync(methodName, new[] { arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10 }, cancellationToken); diff --git a/src/SignalR/clients/csharp/Client.Core/src/HubConnectionExtensions.InvokeAsyncGeneric.cs b/src/SignalR/clients/csharp/Client.Core/src/HubConnectionExtensions.InvokeAsyncGeneric.cs index 5d5df546a6..ef1ddfcff3 100644 --- a/src/SignalR/clients/csharp/Client.Core/src/HubConnectionExtensions.InvokeAsyncGeneric.cs +++ b/src/SignalR/clients/csharp/Client.Core/src/HubConnectionExtensions.InvokeAsyncGeneric.cs @@ -2,6 +2,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Diagnostics.CodeAnalysis; using System.Threading; using System.Threading.Tasks; @@ -23,6 +24,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// A that represents the asynchronous invoke. /// The property returns a for the hub method return value. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task InvokeAsync(this HubConnection hubConnection, string methodName, CancellationToken cancellationToken = default) { return hubConnection.InvokeCoreAsync(methodName, Array.Empty(), cancellationToken); @@ -40,6 +42,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// A that represents the asynchronous invoke. /// The property returns a for the hub method return value. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task InvokeAsync(this HubConnection hubConnection, string methodName, object arg1, CancellationToken cancellationToken = default) { return hubConnection.InvokeCoreAsync(methodName, new[] { arg1 }, cancellationToken); @@ -58,6 +61,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// A that represents the asynchronous invoke. /// The property returns a for the hub method return value. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task InvokeAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, CancellationToken cancellationToken = default) { return hubConnection.InvokeCoreAsync(methodName, new[] { arg1, arg2 }, cancellationToken); @@ -77,6 +81,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// A that represents the asynchronous invoke. /// The property returns a for the hub method return value. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task InvokeAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, CancellationToken cancellationToken = default) { return hubConnection.InvokeCoreAsync(methodName, new[] { arg1, arg2, arg3 }, cancellationToken); @@ -97,6 +102,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// A that represents the asynchronous invoke. /// The property returns a for the hub method return value. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task InvokeAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, CancellationToken cancellationToken = default) { return hubConnection.InvokeCoreAsync(methodName, new[] { arg1, arg2, arg3, arg4 }, cancellationToken); @@ -118,6 +124,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// A that represents the asynchronous invoke. /// The property returns a for the hub method return value. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task InvokeAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, CancellationToken cancellationToken = default) { return hubConnection.InvokeCoreAsync(methodName, new[] { arg1, arg2, arg3, arg4, arg5 }, cancellationToken); @@ -140,6 +147,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// A that represents the asynchronous invoke. /// The property returns a for the hub method return value. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task InvokeAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, CancellationToken cancellationToken = default) { return hubConnection.InvokeCoreAsync(methodName, new[] { arg1, arg2, arg3, arg4, arg5, arg6 }, cancellationToken); @@ -163,6 +171,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// A that represents the asynchronous invoke. /// The property returns a for the hub method return value. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task InvokeAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, CancellationToken cancellationToken = default) { return hubConnection.InvokeCoreAsync(methodName, new[] { arg1, arg2, arg3, arg4, arg5, arg6, arg7 }, cancellationToken); @@ -187,6 +196,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// A that represents the asynchronous invoke. /// The property returns a for the hub method return value. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task InvokeAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, CancellationToken cancellationToken = default) { return hubConnection.InvokeCoreAsync(methodName, new[] { arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8 }, cancellationToken); @@ -212,6 +222,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// A that represents the asynchronous invoke. /// The property returns a for the hub method return value. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task InvokeAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, CancellationToken cancellationToken = default) { return hubConnection.InvokeCoreAsync(methodName, new[] { arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9 }, cancellationToken); @@ -238,6 +249,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// A that represents the asynchronous invoke. /// The property returns a for the hub method return value. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task InvokeAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, object arg10, CancellationToken cancellationToken = default) { return hubConnection.InvokeCoreAsync(methodName, new[] { arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10 }, cancellationToken); diff --git a/src/SignalR/clients/csharp/Client.Core/src/HubConnectionExtensions.SendAsync.cs b/src/SignalR/clients/csharp/Client.Core/src/HubConnectionExtensions.SendAsync.cs index ea41429607..eaeb03d88d 100644 --- a/src/SignalR/clients/csharp/Client.Core/src/HubConnectionExtensions.SendAsync.cs +++ b/src/SignalR/clients/csharp/Client.Core/src/HubConnectionExtensions.SendAsync.cs @@ -2,6 +2,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Diagnostics.CodeAnalysis; using System.Threading; using System.Threading.Tasks; @@ -20,6 +21,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// The name of the server method to invoke. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task SendAsync(this HubConnection hubConnection, string methodName, CancellationToken cancellationToken = default) { return hubConnection.SendCoreAsync(methodName, Array.Empty(), cancellationToken); @@ -34,6 +36,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// The first argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task SendAsync(this HubConnection hubConnection, string methodName, object arg1, CancellationToken cancellationToken = default) { return hubConnection.SendCoreAsync(methodName, new[] { arg1 }, cancellationToken); @@ -49,6 +52,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// The second argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task SendAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, CancellationToken cancellationToken = default) { return hubConnection.SendCoreAsync(methodName, new[] { arg1, arg2 }, cancellationToken); @@ -65,6 +69,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// The third argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task SendAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, CancellationToken cancellationToken = default) { return hubConnection.SendCoreAsync(methodName, new[] { arg1, arg2, arg3 }, cancellationToken); @@ -82,6 +87,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// The fourth argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task SendAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, CancellationToken cancellationToken = default) { return hubConnection.SendCoreAsync(methodName, new[] { arg1, arg2, arg3, arg4 }, cancellationToken); @@ -100,6 +106,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// The fifth argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task SendAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, CancellationToken cancellationToken = default) { return hubConnection.SendCoreAsync(methodName, new[] { arg1, arg2, arg3, arg4, arg5 }, cancellationToken); @@ -119,6 +126,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// The sixth argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task SendAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, CancellationToken cancellationToken = default) { return hubConnection.SendCoreAsync(methodName, new[] { arg1, arg2, arg3, arg4, arg5, arg6 }, cancellationToken); @@ -139,6 +147,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// The seventh argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task SendAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, CancellationToken cancellationToken = default) { return hubConnection.SendCoreAsync(methodName, new[] { arg1, arg2, arg3, arg4, arg5, arg6, arg7 }, cancellationToken); @@ -160,6 +169,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// The eighth argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task SendAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, CancellationToken cancellationToken = default) { return hubConnection.SendCoreAsync(methodName, new[] { arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8 }, cancellationToken); @@ -182,6 +192,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// The ninth argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task SendAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, CancellationToken cancellationToken = default) { return hubConnection.SendCoreAsync(methodName, new[] { arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9 }, cancellationToken); @@ -205,6 +216,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// The tenth argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task SendAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, object arg10, CancellationToken cancellationToken = default) { return hubConnection.SendCoreAsync(methodName, new[] { arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10 }, cancellationToken); diff --git a/src/SignalR/clients/csharp/Client.Core/src/HubConnectionExtensions.StreamAsChannelAsync.cs b/src/SignalR/clients/csharp/Client.Core/src/HubConnectionExtensions.StreamAsChannelAsync.cs index b4095d1dc0..533c8dc0a9 100644 --- a/src/SignalR/clients/csharp/Client.Core/src/HubConnectionExtensions.StreamAsChannelAsync.cs +++ b/src/SignalR/clients/csharp/Client.Core/src/HubConnectionExtensions.StreamAsChannelAsync.cs @@ -5,6 +5,7 @@ using System; using System.Threading; using System.Threading.Tasks; using System.Threading.Channels; +using System.Diagnostics.CodeAnalysis; namespace Microsoft.AspNetCore.SignalR.Client { @@ -24,6 +25,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// A that represents the asynchronous invoke. /// The property returns a for the streamed hub method values. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task> StreamAsChannelAsync(this HubConnection hubConnection, string methodName, CancellationToken cancellationToken = default) { return hubConnection.StreamAsChannelCoreAsync(methodName, Array.Empty(), cancellationToken); @@ -41,6 +43,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// A that represents the asynchronous invoke. /// The property returns a for the streamed hub method values. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task> StreamAsChannelAsync(this HubConnection hubConnection, string methodName, object arg1, CancellationToken cancellationToken = default) { return hubConnection.StreamAsChannelCoreAsync(methodName, new[] { arg1 }, cancellationToken); @@ -59,6 +62,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// A that represents the asynchronous invoke. /// The property returns a for the streamed hub method values. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task> StreamAsChannelAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, CancellationToken cancellationToken = default) { return hubConnection.StreamAsChannelCoreAsync(methodName, new[] { arg1, arg2 }, cancellationToken); @@ -78,6 +82,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// A that represents the asynchronous invoke. /// The property returns a for the streamed hub method values. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task> StreamAsChannelAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, CancellationToken cancellationToken = default) { return hubConnection.StreamAsChannelCoreAsync(methodName, new[] { arg1, arg2, arg3 }, cancellationToken); @@ -98,6 +103,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// A that represents the asynchronous invoke. /// The property returns a for the streamed hub method values. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task> StreamAsChannelAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, CancellationToken cancellationToken = default) { return hubConnection.StreamAsChannelCoreAsync(methodName, new[] { arg1, arg2, arg3, arg4 }, cancellationToken); @@ -119,6 +125,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// A that represents the asynchronous invoke. /// The property returns a for the streamed hub method values. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task> StreamAsChannelAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, CancellationToken cancellationToken = default) { return hubConnection.StreamAsChannelCoreAsync(methodName, new[] { arg1, arg2, arg3, arg4, arg5 }, cancellationToken); @@ -141,6 +148,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// A that represents the asynchronous invoke. /// The property returns a for the streamed hub method values. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task> StreamAsChannelAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, CancellationToken cancellationToken = default) { return hubConnection.StreamAsChannelCoreAsync(methodName, new[] { arg1, arg2, arg3, arg4, arg5, arg6 }, cancellationToken); @@ -164,6 +172,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// A that represents the asynchronous invoke. /// The property returns a for the streamed hub method values. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task> StreamAsChannelAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, CancellationToken cancellationToken = default) { return hubConnection.StreamAsChannelCoreAsync(methodName, new[] { arg1, arg2, arg3, arg4, arg5, arg6, arg7 }, cancellationToken); @@ -188,6 +197,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// A that represents the asynchronous invoke. /// The property returns a for the streamed hub method values. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task> StreamAsChannelAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, CancellationToken cancellationToken = default) { return hubConnection.StreamAsChannelCoreAsync(methodName, new[] { arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8 }, cancellationToken); @@ -213,6 +223,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// A that represents the asynchronous invoke. /// The property returns a for the streamed hub method values. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task> StreamAsChannelAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, CancellationToken cancellationToken = default) { return hubConnection.StreamAsChannelCoreAsync(methodName, new[] { arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9 }, cancellationToken); @@ -239,6 +250,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// A that represents the asynchronous invoke. /// The property returns a for the streamed hub method values. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task> StreamAsChannelAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, object arg10, CancellationToken cancellationToken = default) { return hubConnection.StreamAsChannelCoreAsync(methodName, new[] { arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10 }, cancellationToken); diff --git a/src/SignalR/clients/csharp/Client.Core/src/HubConnectionExtensions.StreamAsync.cs b/src/SignalR/clients/csharp/Client.Core/src/HubConnectionExtensions.StreamAsync.cs index 9448948f6a..c11429a9a0 100644 --- a/src/SignalR/clients/csharp/Client.Core/src/HubConnectionExtensions.StreamAsync.cs +++ b/src/SignalR/clients/csharp/Client.Core/src/HubConnectionExtensions.StreamAsync.cs @@ -6,6 +6,7 @@ using System.Threading; using System.Threading.Tasks; using System.Threading.Channels; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; namespace Microsoft.AspNetCore.SignalR.Client { @@ -24,6 +25,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// /// A that represents the stream. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static IAsyncEnumerable StreamAsync(this HubConnection hubConnection, string methodName, CancellationToken cancellationToken = default) { return hubConnection.StreamAsyncCore(methodName, Array.Empty(), cancellationToken); @@ -40,6 +42,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// /// A that represents the stream. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static IAsyncEnumerable StreamAsync(this HubConnection hubConnection, string methodName, object arg1, CancellationToken cancellationToken = default) { return hubConnection.StreamAsyncCore(methodName, new[] { arg1 }, cancellationToken); @@ -57,6 +60,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// /// A that represents the stream. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static IAsyncEnumerable StreamAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, CancellationToken cancellationToken = default) { return hubConnection.StreamAsyncCore(methodName, new[] { arg1, arg2 }, cancellationToken); @@ -75,6 +79,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// /// A that represents the stream. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static IAsyncEnumerable StreamAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, CancellationToken cancellationToken = default) { return hubConnection.StreamAsyncCore(methodName, new[] { arg1, arg2, arg3 }, cancellationToken); @@ -94,6 +99,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// /// A that represents the stream. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static IAsyncEnumerable StreamAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, CancellationToken cancellationToken = default) { return hubConnection.StreamAsyncCore(methodName, new[] { arg1, arg2, arg3, arg4 }, cancellationToken); @@ -114,6 +120,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// /// A that represents the stream. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static IAsyncEnumerable StreamAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, CancellationToken cancellationToken = default) { return hubConnection.StreamAsyncCore(methodName, new[] { arg1, arg2, arg3, arg4, arg5 }, cancellationToken); @@ -135,6 +142,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// /// A that represents the stream. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static IAsyncEnumerable StreamAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, CancellationToken cancellationToken = default) { return hubConnection.StreamAsyncCore(methodName, new[] { arg1, arg2, arg3, arg4, arg5, arg6 }, cancellationToken); @@ -157,6 +165,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// /// A that represents the stream. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static IAsyncEnumerable StreamAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, CancellationToken cancellationToken = default) { return hubConnection.StreamAsyncCore(methodName, new[] { arg1, arg2, arg3, arg4, arg5, arg6, arg7 }, cancellationToken); @@ -180,6 +189,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// /// A that represents the stream. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static IAsyncEnumerable StreamAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, CancellationToken cancellationToken = default) { return hubConnection.StreamAsyncCore(methodName, new[] { arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8 }, cancellationToken); @@ -204,6 +214,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// /// A that represents the stream. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static IAsyncEnumerable StreamAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, CancellationToken cancellationToken = default) { return hubConnection.StreamAsyncCore(methodName, new[] { arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9 }, cancellationToken); @@ -229,6 +240,7 @@ namespace Microsoft.AspNetCore.SignalR.Client /// /// A that represents the stream. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static IAsyncEnumerable StreamAsync(this HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, object arg10, CancellationToken cancellationToken = default) { return hubConnection.StreamAsyncCore(methodName, new[] { arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10 }, cancellationToken); diff --git a/src/SignalR/clients/csharp/Client.Core/src/PublicAPI.Shipped.txt b/src/SignalR/clients/csharp/Client.Core/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/SignalR/clients/csharp/Client.Core/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/SignalR/clients/csharp/Client.Core/src/PublicAPI.Unshipped.txt b/src/SignalR/clients/csharp/Client.Core/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..589e965a9f --- /dev/null +++ b/src/SignalR/clients/csharp/Client.Core/src/PublicAPI.Unshipped.txt @@ -0,0 +1,135 @@ +#nullable enable +Microsoft.AspNetCore.SignalR.Client.HubConnection +Microsoft.AspNetCore.SignalR.Client.HubConnection.Closed -> System.Func +Microsoft.AspNetCore.SignalR.Client.HubConnection.DisposeAsync() -> System.Threading.Tasks.ValueTask +Microsoft.AspNetCore.SignalR.Client.HubConnection.HandshakeTimeout.get -> System.TimeSpan +Microsoft.AspNetCore.SignalR.Client.HubConnection.HandshakeTimeout.set -> void +Microsoft.AspNetCore.SignalR.Client.HubConnection.KeepAliveInterval.get -> System.TimeSpan +Microsoft.AspNetCore.SignalR.Client.HubConnection.KeepAliveInterval.set -> void +Microsoft.AspNetCore.SignalR.Client.HubConnection.Reconnected -> System.Func +Microsoft.AspNetCore.SignalR.Client.HubConnection.Reconnecting -> System.Func +Microsoft.AspNetCore.SignalR.Client.HubConnection.ServerTimeout.get -> System.TimeSpan +Microsoft.AspNetCore.SignalR.Client.HubConnection.ServerTimeout.set -> void +Microsoft.AspNetCore.SignalR.Client.HubConnection.State.get -> Microsoft.AspNetCore.SignalR.Client.HubConnectionState +Microsoft.AspNetCore.SignalR.Client.HubConnectionBuilder +Microsoft.AspNetCore.SignalR.Client.HubConnectionBuilder.HubConnectionBuilder() -> void +Microsoft.AspNetCore.SignalR.Client.HubConnectionBuilderExtensions +Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions +Microsoft.AspNetCore.SignalR.Client.HubConnectionState +Microsoft.AspNetCore.SignalR.Client.HubConnectionState.Connected = 1 -> Microsoft.AspNetCore.SignalR.Client.HubConnectionState +Microsoft.AspNetCore.SignalR.Client.HubConnectionState.Connecting = 2 -> Microsoft.AspNetCore.SignalR.Client.HubConnectionState +Microsoft.AspNetCore.SignalR.Client.HubConnectionState.Disconnected = 0 -> Microsoft.AspNetCore.SignalR.Client.HubConnectionState +Microsoft.AspNetCore.SignalR.Client.HubConnectionState.Reconnecting = 3 -> Microsoft.AspNetCore.SignalR.Client.HubConnectionState +Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder +Microsoft.AspNetCore.SignalR.Client.IRetryPolicy +Microsoft.AspNetCore.SignalR.Client.RetryContext +Microsoft.AspNetCore.SignalR.Client.RetryContext.ElapsedTime.get -> System.TimeSpan +Microsoft.AspNetCore.SignalR.Client.RetryContext.ElapsedTime.set -> void +Microsoft.AspNetCore.SignalR.Client.RetryContext.PreviousRetryCount.get -> long +Microsoft.AspNetCore.SignalR.Client.RetryContext.PreviousRetryCount.set -> void +Microsoft.AspNetCore.SignalR.Client.RetryContext.RetryContext() -> void +override Microsoft.AspNetCore.SignalR.Client.HubConnectionBuilder.GetHashCode() -> int +static readonly Microsoft.AspNetCore.SignalR.Client.HubConnection.DefaultHandshakeTimeout -> System.TimeSpan +static readonly Microsoft.AspNetCore.SignalR.Client.HubConnection.DefaultKeepAliveInterval -> System.TimeSpan +static readonly Microsoft.AspNetCore.SignalR.Client.HubConnection.DefaultServerTimeout -> System.TimeSpan +~Microsoft.AspNetCore.SignalR.Client.HubConnection.ConnectionId.get -> string +~Microsoft.AspNetCore.SignalR.Client.HubConnection.HubConnection(Microsoft.AspNetCore.Connections.IConnectionFactory connectionFactory, Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol protocol, System.Net.EndPoint endPoint, System.IServiceProvider serviceProvider, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.SignalR.Client.HubConnection.HubConnection(Microsoft.AspNetCore.Connections.IConnectionFactory connectionFactory, Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol protocol, System.Net.EndPoint endPoint, System.IServiceProvider serviceProvider, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.SignalR.Client.IRetryPolicy reconnectPolicy) -> void +~Microsoft.AspNetCore.SignalR.Client.HubConnection.InvokeCoreAsync(string methodName, System.Type returnType, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.SignalR.Client.HubConnection.On(string methodName, System.Type[] parameterTypes, System.Func handler, object state) -> System.IDisposable +~Microsoft.AspNetCore.SignalR.Client.HubConnection.Remove(string methodName) -> void +~Microsoft.AspNetCore.SignalR.Client.HubConnection.SendCoreAsync(string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.SignalR.Client.HubConnection.StartAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.SignalR.Client.HubConnection.StopAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.SignalR.Client.HubConnection.StreamAsChannelCoreAsync(string methodName, System.Type returnType, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task> +~Microsoft.AspNetCore.SignalR.Client.HubConnection.StreamAsyncCore(string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable +~Microsoft.AspNetCore.SignalR.Client.HubConnectionBuilder.Build() -> Microsoft.AspNetCore.SignalR.Client.HubConnection +~Microsoft.AspNetCore.SignalR.Client.HubConnectionBuilder.GetType() -> System.Type +~Microsoft.AspNetCore.SignalR.Client.HubConnectionBuilder.Services.get -> Microsoft.Extensions.DependencyInjection.IServiceCollection +~Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder.Build() -> Microsoft.AspNetCore.SignalR.Client.HubConnection +~Microsoft.AspNetCore.SignalR.Client.IRetryPolicy.NextRetryDelay(Microsoft.AspNetCore.SignalR.Client.RetryContext retryContext) -> System.TimeSpan? +~Microsoft.AspNetCore.SignalR.Client.RetryContext.RetryReason.get -> System.Exception +~Microsoft.AspNetCore.SignalR.Client.RetryContext.RetryReason.set -> void +~override Microsoft.AspNetCore.SignalR.Client.HubConnectionBuilder.Equals(object obj) -> bool +~override Microsoft.AspNetCore.SignalR.Client.HubConnectionBuilder.ToString() -> string +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionBuilderExtensions.ConfigureLogging(this Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder hubConnectionBuilder, System.Action configureLogging) -> Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionBuilderExtensions.WithAutomaticReconnect(this Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder hubConnectionBuilder) -> Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionBuilderExtensions.WithAutomaticReconnect(this Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder hubConnectionBuilder, Microsoft.AspNetCore.SignalR.Client.IRetryPolicy retryPolicy) -> Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionBuilderExtensions.WithAutomaticReconnect(this Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder hubConnectionBuilder, System.TimeSpan[] reconnectDelays) -> Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, object arg10, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.InvokeAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, object arg10, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.InvokeCoreAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.InvokeCoreAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.On(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Action handler) -> System.IDisposable +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.On(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Func handler) -> System.IDisposable +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.On(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Type[] parameterTypes, System.Func handler) -> System.IDisposable +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.On(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Action handler) -> System.IDisposable +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.On(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Func handler) -> System.IDisposable +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.On(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Action handler) -> System.IDisposable +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.On(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Func handler) -> System.IDisposable +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.On(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Action handler) -> System.IDisposable +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.On(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Func handler) -> System.IDisposable +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.On(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Action handler) -> System.IDisposable +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.On(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Func handler) -> System.IDisposable +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.On(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Action handler) -> System.IDisposable +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.On(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Func handler) -> System.IDisposable +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.On(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Action handler) -> System.IDisposable +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.On(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Func handler) -> System.IDisposable +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.On(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Action handler) -> System.IDisposable +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.On(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Func handler) -> System.IDisposable +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.On(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Action handler) -> System.IDisposable +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.On(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Func handler) -> System.IDisposable +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.SendAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, object arg10, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.StreamAsChannelAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task> +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.StreamAsChannelAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task> +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.StreamAsChannelAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task> +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.StreamAsChannelAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task> +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.StreamAsChannelAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task> +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.StreamAsChannelAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task> +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.StreamAsChannelAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task> +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.StreamAsChannelAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task> +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.StreamAsChannelAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task> +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.StreamAsChannelAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task> +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.StreamAsChannelAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, object arg10, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task> +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.StreamAsChannelCoreAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task> +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.StreamAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.StreamAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.StreamAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.StreamAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.StreamAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.StreamAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.StreamAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.StreamAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.StreamAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.StreamAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.StreamAsync(this Microsoft.AspNetCore.SignalR.Client.HubConnection hubConnection, string methodName, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, object arg10, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable diff --git a/src/SignalR/clients/csharp/Client/src/PublicAPI.Shipped.txt b/src/SignalR/clients/csharp/Client/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/SignalR/clients/csharp/Client/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/SignalR/clients/csharp/Client/src/PublicAPI.Unshipped.txt b/src/SignalR/clients/csharp/Client/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..32486f22b0 --- /dev/null +++ b/src/SignalR/clients/csharp/Client/src/PublicAPI.Unshipped.txt @@ -0,0 +1,10 @@ +#nullable enable +Microsoft.AspNetCore.SignalR.Client.HubConnectionBuilderHttpExtensions +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionBuilderHttpExtensions.WithUrl(this Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder hubConnectionBuilder, System.Uri url) -> Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionBuilderHttpExtensions.WithUrl(this Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder hubConnectionBuilder, System.Uri url, Microsoft.AspNetCore.Http.Connections.HttpTransportType transports) -> Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionBuilderHttpExtensions.WithUrl(this Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder hubConnectionBuilder, System.Uri url, Microsoft.AspNetCore.Http.Connections.HttpTransportType transports, System.Action configureHttpConnection) -> Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionBuilderHttpExtensions.WithUrl(this Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder hubConnectionBuilder, System.Uri url, System.Action configureHttpConnection) -> Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionBuilderHttpExtensions.WithUrl(this Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder hubConnectionBuilder, string url) -> Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionBuilderHttpExtensions.WithUrl(this Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder hubConnectionBuilder, string url, Microsoft.AspNetCore.Http.Connections.HttpTransportType transports) -> Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionBuilderHttpExtensions.WithUrl(this Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder hubConnectionBuilder, string url, Microsoft.AspNetCore.Http.Connections.HttpTransportType transports, System.Action configureHttpConnection) -> Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder +~static Microsoft.AspNetCore.SignalR.Client.HubConnectionBuilderHttpExtensions.WithUrl(this Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder hubConnectionBuilder, string url, System.Action configureHttpConnection) -> Microsoft.AspNetCore.SignalR.Client.IHubConnectionBuilder diff --git a/src/SignalR/clients/csharp/Http.Connections.Client/src/HttpConnection.cs b/src/SignalR/clients/csharp/Http.Connections.Client/src/HttpConnection.cs index 71fd3d0f2a..ecd2c30b8b 100644 --- a/src/SignalR/clients/csharp/Http.Connections.Client/src/HttpConnection.cs +++ b/src/SignalR/clients/csharp/Http.Connections.Client/src/HttpConnection.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using System.IO.Pipelines; using System.Linq; using System.Net.Http; @@ -181,6 +182,7 @@ namespace Microsoft.AspNetCore.Http.Connections.Client /// A connection cannot be restarted after it has stopped. To restart a connection /// a new instance should be created using the same options. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public Task StartAsync(CancellationToken cancellationToken = default) { return StartAsync(_httpConnectionOptions.DefaultTransferFormat, cancellationToken); @@ -196,6 +198,7 @@ namespace Microsoft.AspNetCore.Http.Connections.Client /// A connection cannot be restarted after it has stopped. To restart a connection /// a new instance should be created using the same options. /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public async Task StartAsync(TransferFormat transferFormat, CancellationToken cancellationToken = default) { using (_logger.BeginScope(_logScope)) diff --git a/src/SignalR/clients/csharp/Http.Connections.Client/src/PublicAPI.Shipped.txt b/src/SignalR/clients/csharp/Http.Connections.Client/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/SignalR/clients/csharp/Http.Connections.Client/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/SignalR/clients/csharp/Http.Connections.Client/src/PublicAPI.Unshipped.txt b/src/SignalR/clients/csharp/Http.Connections.Client/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..4435fdeb5c --- /dev/null +++ b/src/SignalR/clients/csharp/Http.Connections.Client/src/PublicAPI.Unshipped.txt @@ -0,0 +1,54 @@ +#nullable enable +Microsoft.AspNetCore.Http.Connections.Client.HttpConnection +Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionFactory +Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions +Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.CloseTimeout.get -> System.TimeSpan +Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.CloseTimeout.set -> void +Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.DefaultTransferFormat.get -> Microsoft.AspNetCore.Connections.TransferFormat +Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.DefaultTransferFormat.set -> void +Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.HttpConnectionOptions() -> void +Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.SkipNegotiation.get -> bool +Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.SkipNegotiation.set -> void +Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.Transports.get -> Microsoft.AspNetCore.Http.Connections.HttpTransportType +Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.Transports.set -> void +Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.UseDefaultCredentials.get -> bool? +Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.UseDefaultCredentials.set -> void +Microsoft.AspNetCore.Http.Connections.Client.NoTransportSupportedException +Microsoft.AspNetCore.Http.Connections.Client.TransportFailedException +override Microsoft.AspNetCore.Http.Connections.Client.HttpConnection.DisposeAsync() -> System.Threading.Tasks.ValueTask +~Microsoft.AspNetCore.Http.Connections.Client.HttpConnection.HttpConnection(Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions httpConnectionOptions, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Http.Connections.Client.HttpConnection.HttpConnection(System.Uri url) -> void +~Microsoft.AspNetCore.Http.Connections.Client.HttpConnection.HttpConnection(System.Uri url, Microsoft.AspNetCore.Http.Connections.HttpTransportType transports) -> void +~Microsoft.AspNetCore.Http.Connections.Client.HttpConnection.HttpConnection(System.Uri url, Microsoft.AspNetCore.Http.Connections.HttpTransportType transports, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Http.Connections.Client.HttpConnection.StartAsync(Microsoft.AspNetCore.Connections.TransferFormat transferFormat, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Http.Connections.Client.HttpConnection.StartAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionFactory.ConnectAsync(System.Net.EndPoint endPoint, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.ValueTask +~Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionFactory.HttpConnectionFactory(Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.AccessTokenProvider.get -> System.Func> +~Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.AccessTokenProvider.set -> void +~Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.ClientCertificates.get -> System.Security.Cryptography.X509Certificates.X509CertificateCollection +~Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.ClientCertificates.set -> void +~Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.Cookies.get -> System.Net.CookieContainer +~Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.Cookies.set -> void +~Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.Credentials.get -> System.Net.ICredentials +~Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.Credentials.set -> void +~Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.Headers.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.Headers.set -> void +~Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.HttpMessageHandlerFactory.get -> System.Func +~Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.HttpMessageHandlerFactory.set -> void +~Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.Proxy.get -> System.Net.IWebProxy +~Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.Proxy.set -> void +~Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.Url.get -> System.Uri +~Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.Url.set -> void +~Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.WebSocketConfiguration.get -> System.Action +~Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.WebSocketConfiguration.set -> void +~Microsoft.AspNetCore.Http.Connections.Client.NoTransportSupportedException.NoTransportSupportedException(string message) -> void +~Microsoft.AspNetCore.Http.Connections.Client.TransportFailedException.TransportFailedException(string transportType, string message, System.Exception innerException = null) -> void +~Microsoft.AspNetCore.Http.Connections.Client.TransportFailedException.TransportType.get -> string +~override Microsoft.AspNetCore.Http.Connections.Client.HttpConnection.ConnectionId.get -> string +~override Microsoft.AspNetCore.Http.Connections.Client.HttpConnection.ConnectionId.set -> void +~override Microsoft.AspNetCore.Http.Connections.Client.HttpConnection.Features.get -> Microsoft.AspNetCore.Http.Features.IFeatureCollection +~override Microsoft.AspNetCore.Http.Connections.Client.HttpConnection.Items.get -> System.Collections.Generic.IDictionary +~override Microsoft.AspNetCore.Http.Connections.Client.HttpConnection.Items.set -> void +~override Microsoft.AspNetCore.Http.Connections.Client.HttpConnection.Transport.get -> System.IO.Pipelines.IDuplexPipe +~override Microsoft.AspNetCore.Http.Connections.Client.HttpConnection.Transport.set -> void diff --git a/src/SignalR/common/Http.Connections.Common/src/PublicAPI.Shipped.txt b/src/SignalR/common/Http.Connections.Common/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/SignalR/common/Http.Connections.Common/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/SignalR/common/Http.Connections.Common/src/PublicAPI.Unshipped.txt b/src/SignalR/common/Http.Connections.Common/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..049d88f7fa --- /dev/null +++ b/src/SignalR/common/Http.Connections.Common/src/PublicAPI.Unshipped.txt @@ -0,0 +1,34 @@ +#nullable enable +Microsoft.AspNetCore.Http.Connections.AvailableTransport +Microsoft.AspNetCore.Http.Connections.AvailableTransport.AvailableTransport() -> void +Microsoft.AspNetCore.Http.Connections.HttpTransportType +Microsoft.AspNetCore.Http.Connections.HttpTransportType.LongPolling = 4 -> Microsoft.AspNetCore.Http.Connections.HttpTransportType +Microsoft.AspNetCore.Http.Connections.HttpTransportType.None = 0 -> Microsoft.AspNetCore.Http.Connections.HttpTransportType +Microsoft.AspNetCore.Http.Connections.HttpTransportType.ServerSentEvents = 2 -> Microsoft.AspNetCore.Http.Connections.HttpTransportType +Microsoft.AspNetCore.Http.Connections.HttpTransportType.WebSockets = 1 -> Microsoft.AspNetCore.Http.Connections.HttpTransportType +Microsoft.AspNetCore.Http.Connections.HttpTransports +Microsoft.AspNetCore.Http.Connections.NegotiateProtocol +Microsoft.AspNetCore.Http.Connections.NegotiationResponse +Microsoft.AspNetCore.Http.Connections.NegotiationResponse.NegotiationResponse() -> void +Microsoft.AspNetCore.Http.Connections.NegotiationResponse.Version.get -> int +Microsoft.AspNetCore.Http.Connections.NegotiationResponse.Version.set -> void +static readonly Microsoft.AspNetCore.Http.Connections.HttpTransports.All -> Microsoft.AspNetCore.Http.Connections.HttpTransportType +~Microsoft.AspNetCore.Http.Connections.AvailableTransport.TransferFormats.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Http.Connections.AvailableTransport.TransferFormats.set -> void +~Microsoft.AspNetCore.Http.Connections.AvailableTransport.Transport.get -> string +~Microsoft.AspNetCore.Http.Connections.AvailableTransport.Transport.set -> void +~Microsoft.AspNetCore.Http.Connections.NegotiationResponse.AccessToken.get -> string +~Microsoft.AspNetCore.Http.Connections.NegotiationResponse.AccessToken.set -> void +~Microsoft.AspNetCore.Http.Connections.NegotiationResponse.AvailableTransports.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Http.Connections.NegotiationResponse.AvailableTransports.set -> void +~Microsoft.AspNetCore.Http.Connections.NegotiationResponse.ConnectionId.get -> string +~Microsoft.AspNetCore.Http.Connections.NegotiationResponse.ConnectionId.set -> void +~Microsoft.AspNetCore.Http.Connections.NegotiationResponse.ConnectionToken.get -> string +~Microsoft.AspNetCore.Http.Connections.NegotiationResponse.ConnectionToken.set -> void +~Microsoft.AspNetCore.Http.Connections.NegotiationResponse.Error.get -> string +~Microsoft.AspNetCore.Http.Connections.NegotiationResponse.Error.set -> void +~Microsoft.AspNetCore.Http.Connections.NegotiationResponse.Url.get -> string +~Microsoft.AspNetCore.Http.Connections.NegotiationResponse.Url.set -> void +~static Microsoft.AspNetCore.Http.Connections.NegotiateProtocol.ParseResponse(System.IO.Stream content) -> Microsoft.AspNetCore.Http.Connections.NegotiationResponse +~static Microsoft.AspNetCore.Http.Connections.NegotiateProtocol.ParseResponse(System.ReadOnlySpan content) -> Microsoft.AspNetCore.Http.Connections.NegotiationResponse +~static Microsoft.AspNetCore.Http.Connections.NegotiateProtocol.WriteResponse(Microsoft.AspNetCore.Http.Connections.NegotiationResponse response, System.Buffers.IBufferWriter output) -> void diff --git a/src/SignalR/common/Http.Connections/src/PublicAPI.Shipped.txt b/src/SignalR/common/Http.Connections/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/SignalR/common/Http.Connections/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/SignalR/common/Http.Connections/src/PublicAPI.Unshipped.txt b/src/SignalR/common/Http.Connections/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..58ac96dde9 --- /dev/null +++ b/src/SignalR/common/Http.Connections/src/PublicAPI.Unshipped.txt @@ -0,0 +1,51 @@ +#nullable enable +Microsoft.AspNetCore.Builder.ConnectionEndpointRouteBuilder +Microsoft.AspNetCore.Builder.ConnectionEndpointRouteBuilder.Add(System.Action! convention) -> void +Microsoft.AspNetCore.Builder.ConnectionEndpointRouteBuilderExtensions +Microsoft.AspNetCore.Http.Connections.ConnectionOptions +Microsoft.AspNetCore.Http.Connections.ConnectionOptions.ConnectionOptions() -> void +Microsoft.AspNetCore.Http.Connections.ConnectionOptions.DisconnectTimeout.get -> System.TimeSpan? +Microsoft.AspNetCore.Http.Connections.ConnectionOptions.DisconnectTimeout.set -> void +Microsoft.AspNetCore.Http.Connections.ConnectionOptionsSetup +Microsoft.AspNetCore.Http.Connections.ConnectionOptionsSetup.Configure(Microsoft.AspNetCore.Http.Connections.ConnectionOptions! options) -> void +Microsoft.AspNetCore.Http.Connections.ConnectionOptionsSetup.ConnectionOptionsSetup() -> void +Microsoft.AspNetCore.Http.Connections.Features.IHttpContextFeature +Microsoft.AspNetCore.Http.Connections.Features.IHttpContextFeature.HttpContext.get -> Microsoft.AspNetCore.Http.HttpContext! +Microsoft.AspNetCore.Http.Connections.Features.IHttpContextFeature.HttpContext.set -> void +Microsoft.AspNetCore.Http.Connections.Features.IHttpTransportFeature +Microsoft.AspNetCore.Http.Connections.Features.IHttpTransportFeature.TransportType.get -> Microsoft.AspNetCore.Http.Connections.HttpTransportType +Microsoft.AspNetCore.Http.Connections.HttpConnectionContextExtensions +Microsoft.AspNetCore.Http.Connections.HttpConnectionDispatcherOptions +Microsoft.AspNetCore.Http.Connections.HttpConnectionDispatcherOptions.ApplicationMaxBufferSize.get -> long +Microsoft.AspNetCore.Http.Connections.HttpConnectionDispatcherOptions.ApplicationMaxBufferSize.set -> void +Microsoft.AspNetCore.Http.Connections.HttpConnectionDispatcherOptions.AuthorizationData.get -> System.Collections.Generic.IList! +Microsoft.AspNetCore.Http.Connections.HttpConnectionDispatcherOptions.HttpConnectionDispatcherOptions() -> void +Microsoft.AspNetCore.Http.Connections.HttpConnectionDispatcherOptions.LongPolling.get -> Microsoft.AspNetCore.Http.Connections.LongPollingOptions! +Microsoft.AspNetCore.Http.Connections.HttpConnectionDispatcherOptions.MinimumProtocolVersion.get -> int +Microsoft.AspNetCore.Http.Connections.HttpConnectionDispatcherOptions.MinimumProtocolVersion.set -> void +Microsoft.AspNetCore.Http.Connections.HttpConnectionDispatcherOptions.TransportMaxBufferSize.get -> long +Microsoft.AspNetCore.Http.Connections.HttpConnectionDispatcherOptions.TransportMaxBufferSize.set -> void +Microsoft.AspNetCore.Http.Connections.HttpConnectionDispatcherOptions.Transports.get -> Microsoft.AspNetCore.Http.Connections.HttpTransportType +Microsoft.AspNetCore.Http.Connections.HttpConnectionDispatcherOptions.Transports.set -> void +Microsoft.AspNetCore.Http.Connections.HttpConnectionDispatcherOptions.WebSockets.get -> Microsoft.AspNetCore.Http.Connections.WebSocketOptions! +Microsoft.AspNetCore.Http.Connections.LongPollingOptions +Microsoft.AspNetCore.Http.Connections.LongPollingOptions.LongPollingOptions() -> void +Microsoft.AspNetCore.Http.Connections.LongPollingOptions.PollTimeout.get -> System.TimeSpan +Microsoft.AspNetCore.Http.Connections.LongPollingOptions.PollTimeout.set -> void +Microsoft.AspNetCore.Http.Connections.NegotiateMetadata +Microsoft.AspNetCore.Http.Connections.NegotiateMetadata.NegotiateMetadata() -> void +Microsoft.AspNetCore.Http.Connections.WebSocketOptions +Microsoft.AspNetCore.Http.Connections.WebSocketOptions.CloseTimeout.get -> System.TimeSpan +Microsoft.AspNetCore.Http.Connections.WebSocketOptions.CloseTimeout.set -> void +Microsoft.AspNetCore.Http.Connections.WebSocketOptions.SubProtocolSelector.get -> System.Func!, string!>? +Microsoft.AspNetCore.Http.Connections.WebSocketOptions.SubProtocolSelector.set -> void +Microsoft.AspNetCore.Http.Connections.WebSocketOptions.WebSocketOptions() -> void +Microsoft.Extensions.DependencyInjection.ConnectionsDependencyInjectionExtensions +static Microsoft.AspNetCore.Builder.ConnectionEndpointRouteBuilderExtensions.MapConnectionHandler(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder! endpoints, string! pattern) -> Microsoft.AspNetCore.Builder.ConnectionEndpointRouteBuilder! +static Microsoft.AspNetCore.Builder.ConnectionEndpointRouteBuilderExtensions.MapConnectionHandler(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder! endpoints, string! pattern, System.Action? configureOptions) -> Microsoft.AspNetCore.Builder.ConnectionEndpointRouteBuilder! +static Microsoft.AspNetCore.Builder.ConnectionEndpointRouteBuilderExtensions.MapConnections(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder! endpoints, string! pattern, Microsoft.AspNetCore.Http.Connections.HttpConnectionDispatcherOptions! options, System.Action! configure) -> Microsoft.AspNetCore.Builder.ConnectionEndpointRouteBuilder! +static Microsoft.AspNetCore.Builder.ConnectionEndpointRouteBuilderExtensions.MapConnections(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder! endpoints, string! pattern, System.Action! configure) -> Microsoft.AspNetCore.Builder.ConnectionEndpointRouteBuilder! +static Microsoft.AspNetCore.Http.Connections.ConnectionOptionsSetup.DefaultDisconectTimeout -> System.TimeSpan +static Microsoft.AspNetCore.Http.Connections.HttpConnectionContextExtensions.GetHttpContext(this Microsoft.AspNetCore.Connections.ConnectionContext! connection) -> Microsoft.AspNetCore.Http.HttpContext? +static Microsoft.Extensions.DependencyInjection.ConnectionsDependencyInjectionExtensions.AddConnections(this Microsoft.Extensions.DependencyInjection.IServiceCollection! services) -> Microsoft.Extensions.DependencyInjection.IServiceCollection! +static Microsoft.Extensions.DependencyInjection.ConnectionsDependencyInjectionExtensions.AddConnections(this Microsoft.Extensions.DependencyInjection.IServiceCollection! services, System.Action! options) -> Microsoft.Extensions.DependencyInjection.IServiceCollection! diff --git a/src/SignalR/common/Protocols.Json/src/PublicAPI.Shipped.txt b/src/SignalR/common/Protocols.Json/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/SignalR/common/Protocols.Json/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/SignalR/common/Protocols.Json/src/PublicAPI.Unshipped.txt b/src/SignalR/common/Protocols.Json/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..17f714ed42 --- /dev/null +++ b/src/SignalR/common/Protocols.Json/src/PublicAPI.Unshipped.txt @@ -0,0 +1,18 @@ +#nullable enable +Microsoft.AspNetCore.SignalR.JsonHubProtocolOptions +Microsoft.AspNetCore.SignalR.JsonHubProtocolOptions.JsonHubProtocolOptions() -> void +Microsoft.AspNetCore.SignalR.JsonHubProtocolOptions.PayloadSerializerOptions.get -> System.Text.Json.JsonSerializerOptions! +Microsoft.AspNetCore.SignalR.JsonHubProtocolOptions.PayloadSerializerOptions.set -> void +Microsoft.AspNetCore.SignalR.Protocol.JsonHubProtocol +Microsoft.AspNetCore.SignalR.Protocol.JsonHubProtocol.IsVersionSupported(int version) -> bool +Microsoft.AspNetCore.SignalR.Protocol.JsonHubProtocol.JsonHubProtocol() -> void +Microsoft.AspNetCore.SignalR.Protocol.JsonHubProtocol.TransferFormat.get -> Microsoft.AspNetCore.Connections.TransferFormat +Microsoft.AspNetCore.SignalR.Protocol.JsonHubProtocol.Version.get -> int +Microsoft.Extensions.DependencyInjection.JsonProtocolDependencyInjectionExtensions +static Microsoft.Extensions.DependencyInjection.JsonProtocolDependencyInjectionExtensions.AddJsonProtocol(this TBuilder builder) -> TBuilder +static Microsoft.Extensions.DependencyInjection.JsonProtocolDependencyInjectionExtensions.AddJsonProtocol(this TBuilder builder, System.Action! configure) -> TBuilder +~Microsoft.AspNetCore.SignalR.Protocol.JsonHubProtocol.GetMessageBytes(Microsoft.AspNetCore.SignalR.Protocol.HubMessage message) -> System.ReadOnlyMemory +~Microsoft.AspNetCore.SignalR.Protocol.JsonHubProtocol.JsonHubProtocol(Microsoft.Extensions.Options.IOptions options) -> void +~Microsoft.AspNetCore.SignalR.Protocol.JsonHubProtocol.Name.get -> string +~Microsoft.AspNetCore.SignalR.Protocol.JsonHubProtocol.TryParseMessage(ref System.Buffers.ReadOnlySequence input, Microsoft.AspNetCore.SignalR.IInvocationBinder binder, out Microsoft.AspNetCore.SignalR.Protocol.HubMessage message) -> bool +~Microsoft.AspNetCore.SignalR.Protocol.JsonHubProtocol.WriteMessage(Microsoft.AspNetCore.SignalR.Protocol.HubMessage message, System.Buffers.IBufferWriter output) -> void diff --git a/src/SignalR/common/Protocols.MessagePack/src/PublicAPI.Shipped.txt b/src/SignalR/common/Protocols.MessagePack/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/SignalR/common/Protocols.MessagePack/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/SignalR/common/Protocols.MessagePack/src/PublicAPI.Unshipped.txt b/src/SignalR/common/Protocols.MessagePack/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..fe7020d861 --- /dev/null +++ b/src/SignalR/common/Protocols.MessagePack/src/PublicAPI.Unshipped.txt @@ -0,0 +1,18 @@ +#nullable enable +Microsoft.AspNetCore.SignalR.MessagePackHubProtocolOptions +Microsoft.AspNetCore.SignalR.MessagePackHubProtocolOptions.MessagePackHubProtocolOptions() -> void +Microsoft.AspNetCore.SignalR.MessagePackHubProtocolOptions.SerializerOptions.get -> MessagePack.MessagePackSerializerOptions! +Microsoft.AspNetCore.SignalR.MessagePackHubProtocolOptions.SerializerOptions.set -> void +Microsoft.AspNetCore.SignalR.Protocol.MessagePackHubProtocol +Microsoft.AspNetCore.SignalR.Protocol.MessagePackHubProtocol.IsVersionSupported(int version) -> bool +Microsoft.AspNetCore.SignalR.Protocol.MessagePackHubProtocol.MessagePackHubProtocol() -> void +Microsoft.AspNetCore.SignalR.Protocol.MessagePackHubProtocol.TransferFormat.get -> Microsoft.AspNetCore.Connections.TransferFormat +Microsoft.AspNetCore.SignalR.Protocol.MessagePackHubProtocol.Version.get -> int +Microsoft.Extensions.DependencyInjection.MessagePackProtocolDependencyInjectionExtensions +static Microsoft.Extensions.DependencyInjection.MessagePackProtocolDependencyInjectionExtensions.AddMessagePackProtocol(this TBuilder builder) -> TBuilder +static Microsoft.Extensions.DependencyInjection.MessagePackProtocolDependencyInjectionExtensions.AddMessagePackProtocol(this TBuilder builder, System.Action! configure) -> TBuilder +~Microsoft.AspNetCore.SignalR.Protocol.MessagePackHubProtocol.GetMessageBytes(Microsoft.AspNetCore.SignalR.Protocol.HubMessage message) -> System.ReadOnlyMemory +~Microsoft.AspNetCore.SignalR.Protocol.MessagePackHubProtocol.MessagePackHubProtocol(Microsoft.Extensions.Options.IOptions options) -> void +~Microsoft.AspNetCore.SignalR.Protocol.MessagePackHubProtocol.Name.get -> string +~Microsoft.AspNetCore.SignalR.Protocol.MessagePackHubProtocol.TryParseMessage(ref System.Buffers.ReadOnlySequence input, Microsoft.AspNetCore.SignalR.IInvocationBinder binder, out Microsoft.AspNetCore.SignalR.Protocol.HubMessage message) -> bool +~Microsoft.AspNetCore.SignalR.Protocol.MessagePackHubProtocol.WriteMessage(Microsoft.AspNetCore.SignalR.Protocol.HubMessage message, System.Buffers.IBufferWriter output) -> void diff --git a/src/SignalR/common/Protocols.NewtonsoftJson/src/PublicAPI.Shipped.txt b/src/SignalR/common/Protocols.NewtonsoftJson/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/SignalR/common/Protocols.NewtonsoftJson/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/SignalR/common/Protocols.NewtonsoftJson/src/PublicAPI.Unshipped.txt b/src/SignalR/common/Protocols.NewtonsoftJson/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..e9547db187 --- /dev/null +++ b/src/SignalR/common/Protocols.NewtonsoftJson/src/PublicAPI.Unshipped.txt @@ -0,0 +1,19 @@ +#nullable enable +Microsoft.AspNetCore.SignalR.NewtonsoftJsonHubProtocolOptions +Microsoft.AspNetCore.SignalR.NewtonsoftJsonHubProtocolOptions.NewtonsoftJsonHubProtocolOptions() -> void +Microsoft.AspNetCore.SignalR.NewtonsoftJsonHubProtocolOptions.PayloadSerializerSettings.get -> Newtonsoft.Json.JsonSerializerSettings! +Microsoft.AspNetCore.SignalR.NewtonsoftJsonHubProtocolOptions.PayloadSerializerSettings.set -> void +Microsoft.AspNetCore.SignalR.Protocol.NewtonsoftJsonHubProtocol +Microsoft.AspNetCore.SignalR.Protocol.NewtonsoftJsonHubProtocol.IsVersionSupported(int version) -> bool +Microsoft.AspNetCore.SignalR.Protocol.NewtonsoftJsonHubProtocol.NewtonsoftJsonHubProtocol() -> void +Microsoft.AspNetCore.SignalR.Protocol.NewtonsoftJsonHubProtocol.TransferFormat.get -> Microsoft.AspNetCore.Connections.TransferFormat +Microsoft.AspNetCore.SignalR.Protocol.NewtonsoftJsonHubProtocol.Version.get -> int +Microsoft.Extensions.DependencyInjection.NewtonsoftJsonProtocolDependencyInjectionExtensions +static Microsoft.Extensions.DependencyInjection.NewtonsoftJsonProtocolDependencyInjectionExtensions.AddNewtonsoftJsonProtocol(this TBuilder builder) -> TBuilder +static Microsoft.Extensions.DependencyInjection.NewtonsoftJsonProtocolDependencyInjectionExtensions.AddNewtonsoftJsonProtocol(this TBuilder builder, System.Action! configure) -> TBuilder +~Microsoft.AspNetCore.SignalR.Protocol.NewtonsoftJsonHubProtocol.GetMessageBytes(Microsoft.AspNetCore.SignalR.Protocol.HubMessage message) -> System.ReadOnlyMemory +~Microsoft.AspNetCore.SignalR.Protocol.NewtonsoftJsonHubProtocol.Name.get -> string +~Microsoft.AspNetCore.SignalR.Protocol.NewtonsoftJsonHubProtocol.NewtonsoftJsonHubProtocol(Microsoft.Extensions.Options.IOptions options) -> void +~Microsoft.AspNetCore.SignalR.Protocol.NewtonsoftJsonHubProtocol.PayloadSerializer.get -> Newtonsoft.Json.JsonSerializer +~Microsoft.AspNetCore.SignalR.Protocol.NewtonsoftJsonHubProtocol.TryParseMessage(ref System.Buffers.ReadOnlySequence input, Microsoft.AspNetCore.SignalR.IInvocationBinder binder, out Microsoft.AspNetCore.SignalR.Protocol.HubMessage message) -> bool +~Microsoft.AspNetCore.SignalR.Protocol.NewtonsoftJsonHubProtocol.WriteMessage(Microsoft.AspNetCore.SignalR.Protocol.HubMessage message, System.Buffers.IBufferWriter output) -> void diff --git a/src/SignalR/common/SignalR.Common/src/PublicAPI.Shipped.txt b/src/SignalR/common/SignalR.Common/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/SignalR/common/SignalR.Common/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/SignalR/common/SignalR.Common/src/PublicAPI.Unshipped.txt b/src/SignalR/common/SignalR.Common/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..0328a4f1d2 --- /dev/null +++ b/src/SignalR/common/SignalR.Common/src/PublicAPI.Unshipped.txt @@ -0,0 +1,97 @@ +#nullable enable +Microsoft.AspNetCore.SignalR.HubException +Microsoft.AspNetCore.SignalR.HubException.HubException() -> void +Microsoft.AspNetCore.SignalR.HubException.HubException(System.Runtime.Serialization.SerializationInfo! info, System.Runtime.Serialization.StreamingContext context) -> void +Microsoft.AspNetCore.SignalR.HubException.HubException(string? message) -> void +Microsoft.AspNetCore.SignalR.HubException.HubException(string? message, System.Exception? innerException) -> void +Microsoft.AspNetCore.SignalR.IInvocationBinder +Microsoft.AspNetCore.SignalR.IInvocationBinder.GetParameterTypes(string! methodName) -> System.Collections.Generic.IReadOnlyList! +Microsoft.AspNetCore.SignalR.IInvocationBinder.GetReturnType(string! invocationId) -> System.Type! +Microsoft.AspNetCore.SignalR.IInvocationBinder.GetStreamItemType(string! streamId) -> System.Type! +Microsoft.AspNetCore.SignalR.ISignalRBuilder +Microsoft.AspNetCore.SignalR.ISignalRBuilder.Services.get -> Microsoft.Extensions.DependencyInjection.IServiceCollection! +Microsoft.AspNetCore.SignalR.Protocol.CancelInvocationMessage +Microsoft.AspNetCore.SignalR.Protocol.CancelInvocationMessage.CancelInvocationMessage(string! invocationId) -> void +Microsoft.AspNetCore.SignalR.Protocol.CloseMessage +Microsoft.AspNetCore.SignalR.Protocol.CloseMessage.AllowReconnect.get -> bool +Microsoft.AspNetCore.SignalR.Protocol.CloseMessage.CloseMessage(string? error) -> void +Microsoft.AspNetCore.SignalR.Protocol.CloseMessage.CloseMessage(string? error, bool allowReconnect) -> void +Microsoft.AspNetCore.SignalR.Protocol.CloseMessage.Error.get -> string? +Microsoft.AspNetCore.SignalR.Protocol.CompletionMessage +Microsoft.AspNetCore.SignalR.Protocol.CompletionMessage.CompletionMessage(string! invocationId, string? error, object? result, bool hasResult) -> void +Microsoft.AspNetCore.SignalR.Protocol.CompletionMessage.Error.get -> string? +Microsoft.AspNetCore.SignalR.Protocol.CompletionMessage.HasResult.get -> bool +Microsoft.AspNetCore.SignalR.Protocol.CompletionMessage.Result.get -> object? +Microsoft.AspNetCore.SignalR.Protocol.HandshakeProtocol +Microsoft.AspNetCore.SignalR.Protocol.HandshakeRequestMessage +Microsoft.AspNetCore.SignalR.Protocol.HandshakeRequestMessage.HandshakeRequestMessage(string! protocol, int version) -> void +Microsoft.AspNetCore.SignalR.Protocol.HandshakeRequestMessage.Protocol.get -> string! +Microsoft.AspNetCore.SignalR.Protocol.HandshakeRequestMessage.Version.get -> int +Microsoft.AspNetCore.SignalR.Protocol.HandshakeResponseMessage +Microsoft.AspNetCore.SignalR.Protocol.HandshakeResponseMessage.Error.get -> string? +Microsoft.AspNetCore.SignalR.Protocol.HandshakeResponseMessage.HandshakeResponseMessage(string? error) -> void +Microsoft.AspNetCore.SignalR.Protocol.HubInvocationMessage +Microsoft.AspNetCore.SignalR.Protocol.HubInvocationMessage.Headers.get -> System.Collections.Generic.IDictionary? +Microsoft.AspNetCore.SignalR.Protocol.HubInvocationMessage.Headers.set -> void +Microsoft.AspNetCore.SignalR.Protocol.HubInvocationMessage.HubInvocationMessage(string? invocationId) -> void +Microsoft.AspNetCore.SignalR.Protocol.HubInvocationMessage.InvocationId.get -> string? +Microsoft.AspNetCore.SignalR.Protocol.HubMessage +Microsoft.AspNetCore.SignalR.Protocol.HubMessage.HubMessage() -> void +Microsoft.AspNetCore.SignalR.Protocol.HubMethodInvocationMessage +Microsoft.AspNetCore.SignalR.Protocol.HubMethodInvocationMessage.Arguments.get -> object?[]? +Microsoft.AspNetCore.SignalR.Protocol.HubMethodInvocationMessage.HubMethodInvocationMessage(string? invocationId, string! target, object?[]? arguments) -> void +Microsoft.AspNetCore.SignalR.Protocol.HubMethodInvocationMessage.HubMethodInvocationMessage(string? invocationId, string! target, object?[]? arguments, string![]? streamIds) -> void +Microsoft.AspNetCore.SignalR.Protocol.HubMethodInvocationMessage.StreamIds.get -> string![]? +Microsoft.AspNetCore.SignalR.Protocol.HubMethodInvocationMessage.Target.get -> string! +Microsoft.AspNetCore.SignalR.Protocol.HubProtocolConstants +Microsoft.AspNetCore.SignalR.Protocol.HubProtocolExtensions +Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol +Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol.GetMessageBytes(Microsoft.AspNetCore.SignalR.Protocol.HubMessage! message) -> System.ReadOnlyMemory +Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol.IsVersionSupported(int version) -> bool +Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol.Name.get -> string! +Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol.TransferFormat.get -> Microsoft.AspNetCore.Connections.TransferFormat +Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol.TryParseMessage(ref System.Buffers.ReadOnlySequence input, Microsoft.AspNetCore.SignalR.IInvocationBinder! binder, out Microsoft.AspNetCore.SignalR.Protocol.HubMessage! message) -> bool +Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol.Version.get -> int +Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol.WriteMessage(Microsoft.AspNetCore.SignalR.Protocol.HubMessage! message, System.Buffers.IBufferWriter! output) -> void +Microsoft.AspNetCore.SignalR.Protocol.InvocationBindingFailureMessage +Microsoft.AspNetCore.SignalR.Protocol.InvocationBindingFailureMessage.BindingFailure.get -> System.Runtime.ExceptionServices.ExceptionDispatchInfo! +Microsoft.AspNetCore.SignalR.Protocol.InvocationBindingFailureMessage.InvocationBindingFailureMessage(string! invocationId, string! target, System.Runtime.ExceptionServices.ExceptionDispatchInfo! bindingFailure) -> void +Microsoft.AspNetCore.SignalR.Protocol.InvocationBindingFailureMessage.Target.get -> string! +Microsoft.AspNetCore.SignalR.Protocol.InvocationMessage +Microsoft.AspNetCore.SignalR.Protocol.InvocationMessage.InvocationMessage(string! target, object?[]? arguments) -> void +Microsoft.AspNetCore.SignalR.Protocol.InvocationMessage.InvocationMessage(string? invocationId, string! target, object?[]? arguments) -> void +Microsoft.AspNetCore.SignalR.Protocol.InvocationMessage.InvocationMessage(string? invocationId, string! target, object?[]? arguments, string![]? streamIds) -> void +Microsoft.AspNetCore.SignalR.Protocol.PingMessage +Microsoft.AspNetCore.SignalR.Protocol.StreamBindingFailureMessage +Microsoft.AspNetCore.SignalR.Protocol.StreamBindingFailureMessage.BindingFailure.get -> System.Runtime.ExceptionServices.ExceptionDispatchInfo! +Microsoft.AspNetCore.SignalR.Protocol.StreamBindingFailureMessage.Id.get -> string! +Microsoft.AspNetCore.SignalR.Protocol.StreamBindingFailureMessage.StreamBindingFailureMessage(string! id, System.Runtime.ExceptionServices.ExceptionDispatchInfo! bindingFailure) -> void +Microsoft.AspNetCore.SignalR.Protocol.StreamInvocationMessage +Microsoft.AspNetCore.SignalR.Protocol.StreamInvocationMessage.StreamInvocationMessage(string! invocationId, string! target, object![]! arguments) -> void +Microsoft.AspNetCore.SignalR.Protocol.StreamInvocationMessage.StreamInvocationMessage(string! invocationId, string! target, object![]! arguments, string![]! streamIds) -> void +Microsoft.AspNetCore.SignalR.Protocol.StreamItemMessage +Microsoft.AspNetCore.SignalR.Protocol.StreamItemMessage.Item.get -> object? +Microsoft.AspNetCore.SignalR.Protocol.StreamItemMessage.StreamItemMessage(string! invocationId, object? item) -> void +const Microsoft.AspNetCore.SignalR.Protocol.HubProtocolConstants.CancelInvocationMessageType = 5 -> int +const Microsoft.AspNetCore.SignalR.Protocol.HubProtocolConstants.CloseMessageType = 7 -> int +const Microsoft.AspNetCore.SignalR.Protocol.HubProtocolConstants.CompletionMessageType = 3 -> int +const Microsoft.AspNetCore.SignalR.Protocol.HubProtocolConstants.InvocationMessageType = 1 -> int +const Microsoft.AspNetCore.SignalR.Protocol.HubProtocolConstants.PingMessageType = 6 -> int +const Microsoft.AspNetCore.SignalR.Protocol.HubProtocolConstants.StreamInvocationMessageType = 4 -> int +const Microsoft.AspNetCore.SignalR.Protocol.HubProtocolConstants.StreamItemMessageType = 2 -> int +override Microsoft.AspNetCore.SignalR.Protocol.CompletionMessage.ToString() -> string! +override Microsoft.AspNetCore.SignalR.Protocol.InvocationMessage.ToString() -> string! +override Microsoft.AspNetCore.SignalR.Protocol.StreamInvocationMessage.ToString() -> string! +override Microsoft.AspNetCore.SignalR.Protocol.StreamItemMessage.ToString() -> string! +static Microsoft.AspNetCore.SignalR.Protocol.CompletionMessage.Empty(string! invocationId) -> Microsoft.AspNetCore.SignalR.Protocol.CompletionMessage! +static Microsoft.AspNetCore.SignalR.Protocol.CompletionMessage.WithError(string! invocationId, string! error) -> Microsoft.AspNetCore.SignalR.Protocol.CompletionMessage! +static Microsoft.AspNetCore.SignalR.Protocol.CompletionMessage.WithResult(string! invocationId, object! payload) -> Microsoft.AspNetCore.SignalR.Protocol.CompletionMessage! +static Microsoft.AspNetCore.SignalR.Protocol.HandshakeProtocol.GetSuccessfulHandshake(Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol! protocol) -> System.ReadOnlySpan +static Microsoft.AspNetCore.SignalR.Protocol.HandshakeProtocol.TryParseRequestMessage(ref System.Buffers.ReadOnlySequence buffer, out Microsoft.AspNetCore.SignalR.Protocol.HandshakeRequestMessage? requestMessage) -> bool +static Microsoft.AspNetCore.SignalR.Protocol.HandshakeProtocol.TryParseResponseMessage(ref System.Buffers.ReadOnlySequence buffer, out Microsoft.AspNetCore.SignalR.Protocol.HandshakeResponseMessage? responseMessage) -> bool +static Microsoft.AspNetCore.SignalR.Protocol.HandshakeProtocol.WriteRequestMessage(Microsoft.AspNetCore.SignalR.Protocol.HandshakeRequestMessage! requestMessage, System.Buffers.IBufferWriter! output) -> void +static Microsoft.AspNetCore.SignalR.Protocol.HandshakeProtocol.WriteResponseMessage(Microsoft.AspNetCore.SignalR.Protocol.HandshakeResponseMessage! responseMessage, System.Buffers.IBufferWriter! output) -> void +static Microsoft.AspNetCore.SignalR.Protocol.HubProtocolExtensions.GetMessageBytes(this Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol! hubProtocol, Microsoft.AspNetCore.SignalR.Protocol.HubMessage! message) -> byte[]! +static readonly Microsoft.AspNetCore.SignalR.Protocol.CloseMessage.Empty -> Microsoft.AspNetCore.SignalR.Protocol.CloseMessage! +static readonly Microsoft.AspNetCore.SignalR.Protocol.HandshakeResponseMessage.Empty -> Microsoft.AspNetCore.SignalR.Protocol.HandshakeResponseMessage! +static readonly Microsoft.AspNetCore.SignalR.Protocol.PingMessage.Instance -> Microsoft.AspNetCore.SignalR.Protocol.PingMessage! diff --git a/src/SignalR/server/Core/src/ClientProxyExtensions.cs b/src/SignalR/server/Core/src/ClientProxyExtensions.cs index 2226006a0b..2f202bcfad 100644 --- a/src/SignalR/server/Core/src/ClientProxyExtensions.cs +++ b/src/SignalR/server/Core/src/ClientProxyExtensions.cs @@ -2,6 +2,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Diagnostics.CodeAnalysis; using System.Threading; using System.Threading.Tasks; @@ -20,6 +21,7 @@ namespace Microsoft.AspNetCore.SignalR /// The name of the method to invoke. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task SendAsync(this IClientProxy clientProxy, string method, CancellationToken cancellationToken = default) { return clientProxy.SendCoreAsync(method, Array.Empty(), cancellationToken); @@ -34,6 +36,7 @@ namespace Microsoft.AspNetCore.SignalR /// The first argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task SendAsync(this IClientProxy clientProxy, string method, object? arg1, CancellationToken cancellationToken = default) { return clientProxy.SendCoreAsync(method, new[] { arg1 }, cancellationToken); @@ -49,6 +52,7 @@ namespace Microsoft.AspNetCore.SignalR /// The second argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task SendAsync(this IClientProxy clientProxy, string method, object? arg1, object? arg2, CancellationToken cancellationToken = default) { return clientProxy.SendCoreAsync(method, new[] { arg1, arg2 }, cancellationToken); @@ -65,6 +69,7 @@ namespace Microsoft.AspNetCore.SignalR /// The third argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task SendAsync(this IClientProxy clientProxy, string method, object? arg1, object? arg2, object? arg3, CancellationToken cancellationToken = default) { return clientProxy.SendCoreAsync(method, new[] { arg1, arg2, arg3 }, cancellationToken); @@ -82,6 +87,7 @@ namespace Microsoft.AspNetCore.SignalR /// The fourth argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task SendAsync(this IClientProxy clientProxy, string method, object? arg1, object? arg2, object? arg3, object? arg4, CancellationToken cancellationToken = default) { return clientProxy.SendCoreAsync(method, new[] { arg1, arg2, arg3, arg4 }, cancellationToken); @@ -100,6 +106,7 @@ namespace Microsoft.AspNetCore.SignalR /// The fifth argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task SendAsync(this IClientProxy clientProxy, string method, object? arg1, object? arg2, object? arg3, object? arg4, object? arg5, CancellationToken cancellationToken = default) { return clientProxy.SendCoreAsync(method, new[] { arg1, arg2, arg3, arg4, arg5 }, cancellationToken); @@ -119,6 +126,7 @@ namespace Microsoft.AspNetCore.SignalR /// The sixth argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task SendAsync(this IClientProxy clientProxy, string method, object? arg1, object? arg2, object? arg3, object? arg4, object? arg5, object? arg6, CancellationToken cancellationToken = default) { return clientProxy.SendCoreAsync(method, new[] { arg1, arg2, arg3, arg4, arg5, arg6 }, cancellationToken); @@ -139,6 +147,7 @@ namespace Microsoft.AspNetCore.SignalR /// The seventh argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task SendAsync(this IClientProxy clientProxy, string method, object? arg1, object? arg2, object? arg3, object? arg4, object? arg5, object? arg6, object? arg7, CancellationToken cancellationToken = default) { return clientProxy.SendCoreAsync(method, new[] { arg1, arg2, arg3, arg4, arg5, arg6, arg7 }, cancellationToken); @@ -160,6 +169,7 @@ namespace Microsoft.AspNetCore.SignalR /// The eigth argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task SendAsync(this IClientProxy clientProxy, string method, object? arg1, object? arg2, object? arg3, object? arg4, object? arg5, object? arg6, object? arg7, object? arg8, CancellationToken cancellationToken = default) { return clientProxy.SendCoreAsync(method, new[] { arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8 }, cancellationToken); @@ -182,6 +192,7 @@ namespace Microsoft.AspNetCore.SignalR /// The ninth argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task SendAsync(this IClientProxy clientProxy, string method, object? arg1, object? arg2, object? arg3, object? arg4, object? arg5, object? arg6, object? arg7, object? arg8, object? arg9, CancellationToken cancellationToken = default) { return clientProxy.SendCoreAsync(method, new[] { arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9 }, cancellationToken); @@ -205,6 +216,7 @@ namespace Microsoft.AspNetCore.SignalR /// The tenth argument. /// The token to monitor for cancellation requests. The default value is . /// A that represents the asynchronous invoke. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task SendAsync(this IClientProxy clientProxy, string method, object? arg1, object? arg2, object? arg3, object? arg4, object? arg5, object? arg6, object? arg7, object? arg8, object? arg9, object? arg10, CancellationToken cancellationToken = default) { return clientProxy.SendCoreAsync(method, new[] { arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10 }, cancellationToken); diff --git a/src/SignalR/server/Core/src/HubConnectionContext.cs b/src/SignalR/server/Core/src/HubConnectionContext.cs index 9f94b6a8b0..88ebde464c 100644 --- a/src/SignalR/server/Core/src/HubConnectionContext.cs +++ b/src/SignalR/server/Core/src/HubConnectionContext.cs @@ -6,6 +6,7 @@ using System.Buffers; using System.Collections.Concurrent; using System.Collections.Generic; using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; using System.IO.Pipelines; using System.Security.Claims; using System.Threading; @@ -146,6 +147,7 @@ namespace Microsoft.AspNetCore.SignalR // Currently used only for streaming methods internal ConcurrentDictionary ActiveRequestCancellationSources { get; } = new ConcurrentDictionary(StringComparer.Ordinal); + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public virtual ValueTask WriteAsync(HubMessage message, CancellationToken cancellationToken = default) { // Try to grab the lock synchronously, if we fail, go to the slower path @@ -182,6 +184,7 @@ namespace Microsoft.AspNetCore.SignalR /// The serialization cache to use. /// The token to monitor for cancellation requests. The default value is . /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public virtual ValueTask WriteAsync(SerializedHubMessage message, CancellationToken cancellationToken = default) { // Try to grab the lock synchronously, if we fail, go to the slower path diff --git a/src/SignalR/server/Core/src/PublicAPI.Shipped.txt b/src/SignalR/server/Core/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/SignalR/server/Core/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/SignalR/server/Core/src/PublicAPI.Unshipped.txt b/src/SignalR/server/Core/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..4db56e16c3 --- /dev/null +++ b/src/SignalR/server/Core/src/PublicAPI.Unshipped.txt @@ -0,0 +1,280 @@ +#nullable enable +Microsoft.AspNetCore.SignalR.ClientProxyExtensions +Microsoft.AspNetCore.SignalR.DefaultHubLifetimeManager +Microsoft.AspNetCore.SignalR.DefaultHubLifetimeManager.DefaultHubLifetimeManager(Microsoft.Extensions.Logging.ILogger!>! logger) -> void +Microsoft.AspNetCore.SignalR.DefaultUserIdProvider +Microsoft.AspNetCore.SignalR.DefaultUserIdProvider.DefaultUserIdProvider() -> void +Microsoft.AspNetCore.SignalR.DynamicHub +Microsoft.AspNetCore.SignalR.DynamicHub.Clients.get -> Microsoft.AspNetCore.SignalR.DynamicHubClients! +Microsoft.AspNetCore.SignalR.DynamicHub.Clients.set -> void +Microsoft.AspNetCore.SignalR.DynamicHub.DynamicHub() -> void +Microsoft.AspNetCore.SignalR.DynamicHubClients +Microsoft.AspNetCore.SignalR.DynamicHubClients.All.get -> dynamic! +Microsoft.AspNetCore.SignalR.DynamicHubClients.AllExcept(System.Collections.Generic.IReadOnlyList! excludedConnectionIds) -> dynamic! +Microsoft.AspNetCore.SignalR.DynamicHubClients.Caller.get -> dynamic! +Microsoft.AspNetCore.SignalR.DynamicHubClients.Client(string! connectionId) -> dynamic! +Microsoft.AspNetCore.SignalR.DynamicHubClients.Clients(System.Collections.Generic.IReadOnlyList! connectionIds) -> dynamic! +Microsoft.AspNetCore.SignalR.DynamicHubClients.DynamicHubClients(Microsoft.AspNetCore.SignalR.IHubCallerClients! clients) -> void +Microsoft.AspNetCore.SignalR.DynamicHubClients.Group(string! groupName) -> dynamic! +Microsoft.AspNetCore.SignalR.DynamicHubClients.GroupExcept(string! groupName, System.Collections.Generic.IReadOnlyList! excludedConnectionIds) -> dynamic! +Microsoft.AspNetCore.SignalR.DynamicHubClients.Groups(System.Collections.Generic.IReadOnlyList! groupNames) -> dynamic! +Microsoft.AspNetCore.SignalR.DynamicHubClients.Others.get -> dynamic! +Microsoft.AspNetCore.SignalR.DynamicHubClients.OthersInGroup(string! groupName) -> dynamic! +Microsoft.AspNetCore.SignalR.DynamicHubClients.User(string! userId) -> dynamic! +Microsoft.AspNetCore.SignalR.DynamicHubClients.Users(System.Collections.Generic.IReadOnlyList! userIds) -> dynamic! +Microsoft.AspNetCore.SignalR.Hub +Microsoft.AspNetCore.SignalR.Hub.Clients.get -> Microsoft.AspNetCore.SignalR.IHubCallerClients! +Microsoft.AspNetCore.SignalR.Hub.Clients.set -> void +Microsoft.AspNetCore.SignalR.Hub.Context.get -> Microsoft.AspNetCore.SignalR.HubCallerContext! +Microsoft.AspNetCore.SignalR.Hub.Context.set -> void +Microsoft.AspNetCore.SignalR.Hub.Dispose() -> void +Microsoft.AspNetCore.SignalR.Hub.Groups.get -> Microsoft.AspNetCore.SignalR.IGroupManager! +Microsoft.AspNetCore.SignalR.Hub.Groups.set -> void +Microsoft.AspNetCore.SignalR.Hub.Hub() -> void +Microsoft.AspNetCore.SignalR.Hub +Microsoft.AspNetCore.SignalR.Hub.Clients.get -> Microsoft.AspNetCore.SignalR.IHubCallerClients! +Microsoft.AspNetCore.SignalR.Hub.Clients.set -> void +Microsoft.AspNetCore.SignalR.Hub.Hub() -> void +Microsoft.AspNetCore.SignalR.HubCallerContext +Microsoft.AspNetCore.SignalR.HubCallerContext.HubCallerContext() -> void +Microsoft.AspNetCore.SignalR.HubClientsExtensions +Microsoft.AspNetCore.SignalR.HubConnectionContext +Microsoft.AspNetCore.SignalR.HubConnectionContext.HubConnectionContext(Microsoft.AspNetCore.Connections.ConnectionContext! connectionContext, Microsoft.AspNetCore.SignalR.HubConnectionContextOptions! contextOptions, Microsoft.Extensions.Logging.ILoggerFactory! loggerFactory) -> void +Microsoft.AspNetCore.SignalR.HubConnectionContext.UserIdentifier.get -> string? +Microsoft.AspNetCore.SignalR.HubConnectionContext.UserIdentifier.set -> void +Microsoft.AspNetCore.SignalR.HubConnectionContextOptions +Microsoft.AspNetCore.SignalR.HubConnectionContextOptions.ClientTimeoutInterval.get -> System.TimeSpan +Microsoft.AspNetCore.SignalR.HubConnectionContextOptions.ClientTimeoutInterval.set -> void +Microsoft.AspNetCore.SignalR.HubConnectionContextOptions.HubConnectionContextOptions() -> void +Microsoft.AspNetCore.SignalR.HubConnectionContextOptions.KeepAliveInterval.get -> System.TimeSpan +Microsoft.AspNetCore.SignalR.HubConnectionContextOptions.KeepAliveInterval.set -> void +Microsoft.AspNetCore.SignalR.HubConnectionContextOptions.MaximumParallelInvocations.get -> int +Microsoft.AspNetCore.SignalR.HubConnectionContextOptions.MaximumParallelInvocations.set -> void +Microsoft.AspNetCore.SignalR.HubConnectionContextOptions.MaximumReceiveMessageSize.get -> long? +Microsoft.AspNetCore.SignalR.HubConnectionContextOptions.MaximumReceiveMessageSize.set -> void +Microsoft.AspNetCore.SignalR.HubConnectionContextOptions.StreamBufferCapacity.get -> int +Microsoft.AspNetCore.SignalR.HubConnectionContextOptions.StreamBufferCapacity.set -> void +Microsoft.AspNetCore.SignalR.HubConnectionHandler +Microsoft.AspNetCore.SignalR.HubConnectionStore +Microsoft.AspNetCore.SignalR.HubConnectionStore.Add(Microsoft.AspNetCore.SignalR.HubConnectionContext! connection) -> void +Microsoft.AspNetCore.SignalR.HubConnectionStore.Count.get -> int +Microsoft.AspNetCore.SignalR.HubConnectionStore.Enumerator +Microsoft.AspNetCore.SignalR.HubConnectionStore.Enumerator.Current.get -> Microsoft.AspNetCore.SignalR.HubConnectionContext! +Microsoft.AspNetCore.SignalR.HubConnectionStore.Enumerator.Dispose() -> void +Microsoft.AspNetCore.SignalR.HubConnectionStore.Enumerator.Enumerator(Microsoft.AspNetCore.SignalR.HubConnectionStore! hubConnectionList) -> void +Microsoft.AspNetCore.SignalR.HubConnectionStore.Enumerator.MoveNext() -> bool +Microsoft.AspNetCore.SignalR.HubConnectionStore.Enumerator.Reset() -> void +Microsoft.AspNetCore.SignalR.HubConnectionStore.GetEnumerator() -> Microsoft.AspNetCore.SignalR.HubConnectionStore.Enumerator +Microsoft.AspNetCore.SignalR.HubConnectionStore.HubConnectionStore() -> void +Microsoft.AspNetCore.SignalR.HubConnectionStore.Remove(Microsoft.AspNetCore.SignalR.HubConnectionContext! connection) -> void +Microsoft.AspNetCore.SignalR.HubConnectionStore.this[string! connectionId].get -> Microsoft.AspNetCore.SignalR.HubConnectionContext? +Microsoft.AspNetCore.SignalR.HubInvocationContext +Microsoft.AspNetCore.SignalR.HubInvocationContext.Context.get -> Microsoft.AspNetCore.SignalR.HubCallerContext! +Microsoft.AspNetCore.SignalR.HubInvocationContext.Hub.get -> Microsoft.AspNetCore.SignalR.Hub! +Microsoft.AspNetCore.SignalR.HubInvocationContext.HubInvocationContext(Microsoft.AspNetCore.SignalR.HubCallerContext! context, System.IServiceProvider! serviceProvider, Microsoft.AspNetCore.SignalR.Hub! hub, System.Reflection.MethodInfo! hubMethod, System.Collections.Generic.IReadOnlyList! hubMethodArguments) -> void +Microsoft.AspNetCore.SignalR.HubInvocationContext.HubInvocationContext(Microsoft.AspNetCore.SignalR.HubCallerContext! context, string! hubMethodName, object?[]! hubMethodArguments) -> void +Microsoft.AspNetCore.SignalR.HubInvocationContext.HubMethod.get -> System.Reflection.MethodInfo! +Microsoft.AspNetCore.SignalR.HubInvocationContext.HubMethodArguments.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.AspNetCore.SignalR.HubInvocationContext.HubMethodName.get -> string! +Microsoft.AspNetCore.SignalR.HubInvocationContext.ServiceProvider.get -> System.IServiceProvider! +Microsoft.AspNetCore.SignalR.HubLifetimeContext +Microsoft.AspNetCore.SignalR.HubLifetimeContext.Context.get -> Microsoft.AspNetCore.SignalR.HubCallerContext! +Microsoft.AspNetCore.SignalR.HubLifetimeContext.Hub.get -> Microsoft.AspNetCore.SignalR.Hub! +Microsoft.AspNetCore.SignalR.HubLifetimeContext.HubLifetimeContext(Microsoft.AspNetCore.SignalR.HubCallerContext! context, System.IServiceProvider! serviceProvider, Microsoft.AspNetCore.SignalR.Hub! hub) -> void +Microsoft.AspNetCore.SignalR.HubLifetimeContext.ServiceProvider.get -> System.IServiceProvider! +Microsoft.AspNetCore.SignalR.HubLifetimeManager +Microsoft.AspNetCore.SignalR.HubLifetimeManager.HubLifetimeManager() -> void +Microsoft.AspNetCore.SignalR.HubMetadata +Microsoft.AspNetCore.SignalR.HubMetadata.HubMetadata(System.Type! hubType) -> void +Microsoft.AspNetCore.SignalR.HubMetadata.HubType.get -> System.Type! +Microsoft.AspNetCore.SignalR.HubMethodNameAttribute +Microsoft.AspNetCore.SignalR.HubMethodNameAttribute.HubMethodNameAttribute(string! name) -> void +Microsoft.AspNetCore.SignalR.HubMethodNameAttribute.Name.get -> string! +Microsoft.AspNetCore.SignalR.HubOptions +Microsoft.AspNetCore.SignalR.HubOptions.ClientTimeoutInterval.get -> System.TimeSpan? +Microsoft.AspNetCore.SignalR.HubOptions.ClientTimeoutInterval.set -> void +Microsoft.AspNetCore.SignalR.HubOptions.EnableDetailedErrors.get -> bool? +Microsoft.AspNetCore.SignalR.HubOptions.EnableDetailedErrors.set -> void +Microsoft.AspNetCore.SignalR.HubOptions.HandshakeTimeout.get -> System.TimeSpan? +Microsoft.AspNetCore.SignalR.HubOptions.HandshakeTimeout.set -> void +Microsoft.AspNetCore.SignalR.HubOptions.HubOptions() -> void +Microsoft.AspNetCore.SignalR.HubOptions.KeepAliveInterval.get -> System.TimeSpan? +Microsoft.AspNetCore.SignalR.HubOptions.KeepAliveInterval.set -> void +Microsoft.AspNetCore.SignalR.HubOptions.MaximumParallelInvocationsPerClient.get -> int +Microsoft.AspNetCore.SignalR.HubOptions.MaximumParallelInvocationsPerClient.set -> void +Microsoft.AspNetCore.SignalR.HubOptions.MaximumReceiveMessageSize.get -> long? +Microsoft.AspNetCore.SignalR.HubOptions.MaximumReceiveMessageSize.set -> void +Microsoft.AspNetCore.SignalR.HubOptions.StreamBufferCapacity.get -> int? +Microsoft.AspNetCore.SignalR.HubOptions.StreamBufferCapacity.set -> void +Microsoft.AspNetCore.SignalR.HubOptions.SupportedProtocols.get -> System.Collections.Generic.IList? +Microsoft.AspNetCore.SignalR.HubOptions.SupportedProtocols.set -> void +Microsoft.AspNetCore.SignalR.HubOptions +Microsoft.AspNetCore.SignalR.HubOptions.HubOptions() -> void +Microsoft.AspNetCore.SignalR.HubOptionsExtensions +Microsoft.AspNetCore.SignalR.HubOptionsSetup +Microsoft.AspNetCore.SignalR.HubOptionsSetup.Configure(Microsoft.AspNetCore.SignalR.HubOptions! options) -> void +Microsoft.AspNetCore.SignalR.HubOptionsSetup.HubOptionsSetup(System.Collections.Generic.IEnumerable! protocols) -> void +Microsoft.AspNetCore.SignalR.HubOptionsSetup +Microsoft.AspNetCore.SignalR.HubOptionsSetup.Configure(Microsoft.AspNetCore.SignalR.HubOptions! options) -> void +Microsoft.AspNetCore.SignalR.IClientProxy +Microsoft.AspNetCore.SignalR.IClientProxy.SendCoreAsync(string! method, object?[]? args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.SignalR.IGroupManager +Microsoft.AspNetCore.SignalR.IGroupManager.AddToGroupAsync(string! connectionId, string! groupName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.SignalR.IGroupManager.RemoveFromGroupAsync(string! connectionId, string! groupName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.SignalR.IHubActivator +Microsoft.AspNetCore.SignalR.IHubActivator.Create() -> THub! +Microsoft.AspNetCore.SignalR.IHubActivator.Release(THub! hub) -> void +Microsoft.AspNetCore.SignalR.IHubCallerClients +Microsoft.AspNetCore.SignalR.IHubCallerClients +Microsoft.AspNetCore.SignalR.IHubCallerClients.Caller.get -> T +Microsoft.AspNetCore.SignalR.IHubCallerClients.Others.get -> T +Microsoft.AspNetCore.SignalR.IHubCallerClients.OthersInGroup(string! groupName) -> T +Microsoft.AspNetCore.SignalR.IHubClients +Microsoft.AspNetCore.SignalR.IHubClients +Microsoft.AspNetCore.SignalR.IHubClients.All.get -> T +Microsoft.AspNetCore.SignalR.IHubClients.AllExcept(System.Collections.Generic.IReadOnlyList! excludedConnectionIds) -> T +Microsoft.AspNetCore.SignalR.IHubClients.Client(string! connectionId) -> T +Microsoft.AspNetCore.SignalR.IHubClients.Clients(System.Collections.Generic.IReadOnlyList! connectionIds) -> T +Microsoft.AspNetCore.SignalR.IHubClients.Group(string! groupName) -> T +Microsoft.AspNetCore.SignalR.IHubClients.GroupExcept(string! groupName, System.Collections.Generic.IReadOnlyList! excludedConnectionIds) -> T +Microsoft.AspNetCore.SignalR.IHubClients.Groups(System.Collections.Generic.IReadOnlyList! groupNames) -> T +Microsoft.AspNetCore.SignalR.IHubClients.User(string! userId) -> T +Microsoft.AspNetCore.SignalR.IHubClients.Users(System.Collections.Generic.IReadOnlyList! userIds) -> T +Microsoft.AspNetCore.SignalR.IHubContext +Microsoft.AspNetCore.SignalR.IHubContext.Clients.get -> Microsoft.AspNetCore.SignalR.IHubClients! +Microsoft.AspNetCore.SignalR.IHubContext.Groups.get -> Microsoft.AspNetCore.SignalR.IGroupManager! +Microsoft.AspNetCore.SignalR.IHubContext +Microsoft.AspNetCore.SignalR.IHubContext.Clients.get -> Microsoft.AspNetCore.SignalR.IHubClients! +Microsoft.AspNetCore.SignalR.IHubContext.Groups.get -> Microsoft.AspNetCore.SignalR.IGroupManager! +Microsoft.AspNetCore.SignalR.IHubFilter +Microsoft.AspNetCore.SignalR.IHubFilter.InvokeMethodAsync(Microsoft.AspNetCore.SignalR.HubInvocationContext! invocationContext, System.Func>! next) -> System.Threading.Tasks.ValueTask +Microsoft.AspNetCore.SignalR.IHubFilter.OnConnectedAsync(Microsoft.AspNetCore.SignalR.HubLifetimeContext! context, System.Func! next) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.SignalR.IHubFilter.OnDisconnectedAsync(Microsoft.AspNetCore.SignalR.HubLifetimeContext! context, System.Exception? exception, System.Func! next) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.SignalR.IHubProtocolResolver +Microsoft.AspNetCore.SignalR.IHubProtocolResolver.AllProtocols.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.AspNetCore.SignalR.IHubProtocolResolver.GetProtocol(string! protocolName, System.Collections.Generic.IReadOnlyList? supportedProtocols) -> Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol? +Microsoft.AspNetCore.SignalR.ISignalRServerBuilder +Microsoft.AspNetCore.SignalR.IUserIdProvider +Microsoft.AspNetCore.SignalR.IUserIdProvider.GetUserId(Microsoft.AspNetCore.SignalR.HubConnectionContext! connection) -> string? +Microsoft.AspNetCore.SignalR.SerializedHubMessage +Microsoft.AspNetCore.SignalR.SerializedHubMessage.GetSerializedMessage(Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol! protocol) -> System.ReadOnlyMemory +Microsoft.AspNetCore.SignalR.SerializedHubMessage.Message.get -> Microsoft.AspNetCore.SignalR.Protocol.HubMessage? +Microsoft.AspNetCore.SignalR.SerializedHubMessage.SerializedHubMessage(Microsoft.AspNetCore.SignalR.Protocol.HubMessage! message) -> void +Microsoft.AspNetCore.SignalR.SerializedHubMessage.SerializedHubMessage(System.Collections.Generic.IReadOnlyList! messages) -> void +Microsoft.AspNetCore.SignalR.SerializedMessage +Microsoft.AspNetCore.SignalR.SerializedMessage.ProtocolName.get -> string! +Microsoft.AspNetCore.SignalR.SerializedMessage.Serialized.get -> System.ReadOnlyMemory +Microsoft.AspNetCore.SignalR.SerializedMessage.SerializedMessage(string! protocolName, System.ReadOnlyMemory serialized) -> void +Microsoft.AspNetCore.SignalR.SignalRConnectionBuilderExtensions +Microsoft.Extensions.DependencyInjection.SignalRDependencyInjectionExtensions +abstract Microsoft.AspNetCore.SignalR.HubCallerContext.Abort() -> void +abstract Microsoft.AspNetCore.SignalR.HubCallerContext.ConnectionAborted.get -> System.Threading.CancellationToken +abstract Microsoft.AspNetCore.SignalR.HubCallerContext.ConnectionId.get -> string! +abstract Microsoft.AspNetCore.SignalR.HubCallerContext.Features.get -> Microsoft.AspNetCore.Http.Features.IFeatureCollection! +abstract Microsoft.AspNetCore.SignalR.HubCallerContext.Items.get -> System.Collections.Generic.IDictionary! +abstract Microsoft.AspNetCore.SignalR.HubCallerContext.User.get -> System.Security.Claims.ClaimsPrincipal? +abstract Microsoft.AspNetCore.SignalR.HubCallerContext.UserIdentifier.get -> string? +abstract Microsoft.AspNetCore.SignalR.HubLifetimeManager.AddToGroupAsync(string! connectionId, string! groupName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +abstract Microsoft.AspNetCore.SignalR.HubLifetimeManager.OnConnectedAsync(Microsoft.AspNetCore.SignalR.HubConnectionContext! connection) -> System.Threading.Tasks.Task! +abstract Microsoft.AspNetCore.SignalR.HubLifetimeManager.OnDisconnectedAsync(Microsoft.AspNetCore.SignalR.HubConnectionContext! connection) -> System.Threading.Tasks.Task! +abstract Microsoft.AspNetCore.SignalR.HubLifetimeManager.RemoveFromGroupAsync(string! connectionId, string! groupName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +abstract Microsoft.AspNetCore.SignalR.HubLifetimeManager.SendAllAsync(string! methodName, object?[]? args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +abstract Microsoft.AspNetCore.SignalR.HubLifetimeManager.SendAllExceptAsync(string! methodName, object?[]? args, System.Collections.Generic.IReadOnlyList! excludedConnectionIds, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +abstract Microsoft.AspNetCore.SignalR.HubLifetimeManager.SendConnectionAsync(string! connectionId, string! methodName, object?[]? args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +abstract Microsoft.AspNetCore.SignalR.HubLifetimeManager.SendConnectionsAsync(System.Collections.Generic.IReadOnlyList! connectionIds, string! methodName, object?[]? args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +abstract Microsoft.AspNetCore.SignalR.HubLifetimeManager.SendGroupAsync(string! groupName, string! methodName, object?[]? args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +abstract Microsoft.AspNetCore.SignalR.HubLifetimeManager.SendGroupExceptAsync(string! groupName, string! methodName, object?[]? args, System.Collections.Generic.IReadOnlyList! excludedConnectionIds, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +abstract Microsoft.AspNetCore.SignalR.HubLifetimeManager.SendGroupsAsync(System.Collections.Generic.IReadOnlyList! groupNames, string! methodName, object?[]? args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +abstract Microsoft.AspNetCore.SignalR.HubLifetimeManager.SendUserAsync(string! userId, string! methodName, object?[]? args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +abstract Microsoft.AspNetCore.SignalR.HubLifetimeManager.SendUsersAsync(System.Collections.Generic.IReadOnlyList! userIds, string! methodName, object?[]? args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.SignalR.DefaultHubLifetimeManager.AddToGroupAsync(string! connectionId, string! groupName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.SignalR.DefaultHubLifetimeManager.OnConnectedAsync(Microsoft.AspNetCore.SignalR.HubConnectionContext! connection) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.SignalR.DefaultHubLifetimeManager.OnDisconnectedAsync(Microsoft.AspNetCore.SignalR.HubConnectionContext! connection) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.SignalR.DefaultHubLifetimeManager.RemoveFromGroupAsync(string! connectionId, string! groupName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.SignalR.DefaultHubLifetimeManager.SendAllAsync(string! methodName, object?[]? args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.SignalR.DefaultHubLifetimeManager.SendAllExceptAsync(string! methodName, object?[]? args, System.Collections.Generic.IReadOnlyList! excludedConnectionIds, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.SignalR.DefaultHubLifetimeManager.SendConnectionAsync(string! connectionId, string! methodName, object?[]? args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.SignalR.DefaultHubLifetimeManager.SendConnectionsAsync(System.Collections.Generic.IReadOnlyList! connectionIds, string! methodName, object?[]? args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.SignalR.DefaultHubLifetimeManager.SendGroupAsync(string! groupName, string! methodName, object?[]? args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.SignalR.DefaultHubLifetimeManager.SendGroupExceptAsync(string! groupName, string! methodName, object?[]? args, System.Collections.Generic.IReadOnlyList! excludedConnectionIds, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.SignalR.DefaultHubLifetimeManager.SendGroupsAsync(System.Collections.Generic.IReadOnlyList! groupNames, string! methodName, object?[]? args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.SignalR.DefaultHubLifetimeManager.SendUserAsync(string! userId, string! methodName, object?[]? args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.SignalR.DefaultHubLifetimeManager.SendUsersAsync(System.Collections.Generic.IReadOnlyList! userIds, string! methodName, object?[]? args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.SignalR.HubConnectionHandler.OnConnectedAsync(Microsoft.AspNetCore.Connections.ConnectionContext! connection) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.SignalR.ClientProxyExtensions.SendAsync(this Microsoft.AspNetCore.SignalR.IClientProxy! clientProxy, string! method, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.SignalR.ClientProxyExtensions.SendAsync(this Microsoft.AspNetCore.SignalR.IClientProxy! clientProxy, string! method, object? arg1, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.SignalR.ClientProxyExtensions.SendAsync(this Microsoft.AspNetCore.SignalR.IClientProxy! clientProxy, string! method, object? arg1, object? arg2, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.SignalR.ClientProxyExtensions.SendAsync(this Microsoft.AspNetCore.SignalR.IClientProxy! clientProxy, string! method, object? arg1, object? arg2, object? arg3, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.SignalR.ClientProxyExtensions.SendAsync(this Microsoft.AspNetCore.SignalR.IClientProxy! clientProxy, string! method, object? arg1, object? arg2, object? arg3, object? arg4, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.SignalR.ClientProxyExtensions.SendAsync(this Microsoft.AspNetCore.SignalR.IClientProxy! clientProxy, string! method, object? arg1, object? arg2, object? arg3, object? arg4, object? arg5, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.SignalR.ClientProxyExtensions.SendAsync(this Microsoft.AspNetCore.SignalR.IClientProxy! clientProxy, string! method, object? arg1, object? arg2, object? arg3, object? arg4, object? arg5, object? arg6, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.SignalR.ClientProxyExtensions.SendAsync(this Microsoft.AspNetCore.SignalR.IClientProxy! clientProxy, string! method, object? arg1, object? arg2, object? arg3, object? arg4, object? arg5, object? arg6, object? arg7, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.SignalR.ClientProxyExtensions.SendAsync(this Microsoft.AspNetCore.SignalR.IClientProxy! clientProxy, string! method, object? arg1, object? arg2, object? arg3, object? arg4, object? arg5, object? arg6, object? arg7, object? arg8, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.SignalR.ClientProxyExtensions.SendAsync(this Microsoft.AspNetCore.SignalR.IClientProxy! clientProxy, string! method, object? arg1, object? arg2, object? arg3, object? arg4, object? arg5, object? arg6, object? arg7, object? arg8, object? arg9, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.SignalR.ClientProxyExtensions.SendAsync(this Microsoft.AspNetCore.SignalR.IClientProxy! clientProxy, string! method, object? arg1, object? arg2, object? arg3, object? arg4, object? arg5, object? arg6, object? arg7, object? arg8, object? arg9, object? arg10, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.AllExcept(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, System.Collections.Generic.IEnumerable! excludedConnectionIds) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.AllExcept(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! excludedConnectionId1) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.AllExcept(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! excludedConnectionId1, string! excludedConnectionId2) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.AllExcept(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! excludedConnectionId1, string! excludedConnectionId2, string! excludedConnectionId3) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.AllExcept(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! excludedConnectionId1, string! excludedConnectionId2, string! excludedConnectionId3, string! excludedConnectionId4) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.AllExcept(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! excludedConnectionId1, string! excludedConnectionId2, string! excludedConnectionId3, string! excludedConnectionId4, string! excludedConnectionId5) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.AllExcept(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! excludedConnectionId1, string! excludedConnectionId2, string! excludedConnectionId3, string! excludedConnectionId4, string! excludedConnectionId5, string! excludedConnectionId6) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.AllExcept(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! excludedConnectionId1, string! excludedConnectionId2, string! excludedConnectionId3, string! excludedConnectionId4, string! excludedConnectionId5, string! excludedConnectionId6, string! excludedConnectionId7) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.AllExcept(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! excludedConnectionId1, string! excludedConnectionId2, string! excludedConnectionId3, string! excludedConnectionId4, string! excludedConnectionId5, string! excludedConnectionId6, string! excludedConnectionId7, string! excludedConnectionId8) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.Clients(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, System.Collections.Generic.IEnumerable! connectionIds) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.Clients(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! connection1) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.Clients(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! connection1, string! connection2) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.Clients(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! connection1, string! connection2, string! connection3) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.Clients(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! connection1, string! connection2, string! connection3, string! connection4) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.Clients(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! connection1, string! connection2, string! connection3, string! connection4, string! connection5) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.Clients(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! connection1, string! connection2, string! connection3, string! connection4, string! connection5, string! connection6) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.Clients(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! connection1, string! connection2, string! connection3, string! connection4, string! connection5, string! connection6, string! connection7) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.Clients(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! connection1, string! connection2, string! connection3, string! connection4, string! connection5, string! connection6, string! connection7, string! connection8) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.GroupExcept(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! groupName, System.Collections.Generic.IEnumerable! excludedConnectionIds) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.GroupExcept(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! groupName, string! excludedConnectionId1) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.GroupExcept(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! groupName, string! excludedConnectionId1, string! excludedConnectionId2) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.GroupExcept(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! groupName, string! excludedConnectionId1, string! excludedConnectionId2, string! excludedConnectionId3) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.GroupExcept(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! groupName, string! excludedConnectionId1, string! excludedConnectionId2, string! excludedConnectionId3, string! excludedConnectionId4) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.GroupExcept(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! groupName, string! excludedConnectionId1, string! excludedConnectionId2, string! excludedConnectionId3, string! excludedConnectionId4, string! excludedConnectionId5) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.GroupExcept(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! groupName, string! excludedConnectionId1, string! excludedConnectionId2, string! excludedConnectionId3, string! excludedConnectionId4, string! excludedConnectionId5, string! excludedConnectionId6) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.GroupExcept(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! groupName, string! excludedConnectionId1, string! excludedConnectionId2, string! excludedConnectionId3, string! excludedConnectionId4, string! excludedConnectionId5, string! excludedConnectionId6, string! excludedConnectionId7) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.GroupExcept(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! groupName, string! excludedConnectionId1, string! excludedConnectionId2, string! excludedConnectionId3, string! excludedConnectionId4, string! excludedConnectionId5, string! excludedConnectionId6, string! excludedConnectionId7, string! excludedConnectionId8) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.Groups(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, System.Collections.Generic.IEnumerable! groupNames) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.Groups(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! group1) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.Groups(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! group1, string! group2) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.Groups(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! group1, string! group2, string! group3) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.Groups(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! group1, string! group2, string! group3, string! group4) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.Groups(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! group1, string! group2, string! group3, string! group4, string! group5) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.Groups(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! group1, string! group2, string! group3, string! group4, string! group5, string! group6) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.Groups(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! group1, string! group2, string! group3, string! group4, string! group5, string! group6, string! group7) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.Groups(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! group1, string! group2, string! group3, string! group4, string! group5, string! group6, string! group7, string! group8) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.Users(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, System.Collections.Generic.IEnumerable! userIds) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.Users(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! user1) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.Users(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! user1, string! user2) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.Users(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! user1, string! user2, string! user3) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.Users(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! user1, string! user2, string! user3, string! user4) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.Users(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! user1, string! user2, string! user3, string! user4, string! user5) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.Users(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! user1, string! user2, string! user3, string! user4, string! user5, string! user6) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.Users(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! user1, string! user2, string! user3, string! user4, string! user5, string! user6, string! user7) -> T +static Microsoft.AspNetCore.SignalR.HubClientsExtensions.Users(this Microsoft.AspNetCore.SignalR.IHubClients! hubClients, string! user1, string! user2, string! user3, string! user4, string! user5, string! user6, string! user7, string! user8) -> T +static Microsoft.AspNetCore.SignalR.HubOptionsExtensions.AddFilter(this Microsoft.AspNetCore.SignalR.HubOptions! options, Microsoft.AspNetCore.SignalR.IHubFilter! hubFilter) -> void +static Microsoft.AspNetCore.SignalR.HubOptionsExtensions.AddFilter(this Microsoft.AspNetCore.SignalR.HubOptions! options, System.Type! filterType) -> void +static Microsoft.AspNetCore.SignalR.HubOptionsExtensions.AddFilter(this Microsoft.AspNetCore.SignalR.HubOptions! options) -> void +static Microsoft.AspNetCore.SignalR.SignalRConnectionBuilderExtensions.UseHub(this Microsoft.AspNetCore.Connections.IConnectionBuilder! connectionBuilder) -> Microsoft.AspNetCore.Connections.IConnectionBuilder! +static Microsoft.Extensions.DependencyInjection.SignalRDependencyInjectionExtensions.AddSignalRCore(this Microsoft.Extensions.DependencyInjection.IServiceCollection! services) -> Microsoft.AspNetCore.SignalR.ISignalRServerBuilder! +virtual Microsoft.AspNetCore.SignalR.DefaultUserIdProvider.GetUserId(Microsoft.AspNetCore.SignalR.HubConnectionContext! connection) -> string? +virtual Microsoft.AspNetCore.SignalR.Hub.Dispose(bool disposing) -> void +virtual Microsoft.AspNetCore.SignalR.Hub.OnConnectedAsync() -> System.Threading.Tasks.Task! +virtual Microsoft.AspNetCore.SignalR.Hub.OnDisconnectedAsync(System.Exception? exception) -> System.Threading.Tasks.Task! +virtual Microsoft.AspNetCore.SignalR.HubConnectionContext.Abort() -> void +virtual Microsoft.AspNetCore.SignalR.HubConnectionContext.ConnectionAborted.get -> System.Threading.CancellationToken +virtual Microsoft.AspNetCore.SignalR.HubConnectionContext.ConnectionId.get -> string! +virtual Microsoft.AspNetCore.SignalR.HubConnectionContext.Features.get -> Microsoft.AspNetCore.Http.Features.IFeatureCollection! +virtual Microsoft.AspNetCore.SignalR.HubConnectionContext.Items.get -> System.Collections.Generic.IDictionary! +virtual Microsoft.AspNetCore.SignalR.HubConnectionContext.Protocol.get -> Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol! +virtual Microsoft.AspNetCore.SignalR.HubConnectionContext.Protocol.set -> void +virtual Microsoft.AspNetCore.SignalR.HubConnectionContext.User.get -> System.Security.Claims.ClaimsPrincipal? +virtual Microsoft.AspNetCore.SignalR.HubConnectionContext.WriteAsync(Microsoft.AspNetCore.SignalR.Protocol.HubMessage! message, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.ValueTask +virtual Microsoft.AspNetCore.SignalR.HubConnectionContext.WriteAsync(Microsoft.AspNetCore.SignalR.SerializedHubMessage! message, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.ValueTask +~Microsoft.AspNetCore.SignalR.HubConnectionHandler.HubConnectionHandler(Microsoft.AspNetCore.SignalR.HubLifetimeManager! lifetimeManager, Microsoft.AspNetCore.SignalR.IHubProtocolResolver! protocolResolver, Microsoft.Extensions.Options.IOptions! globalHubOptions, Microsoft.Extensions.Options.IOptions!>! hubOptions, Microsoft.Extensions.Logging.ILoggerFactory! loggerFactory, Microsoft.AspNetCore.SignalR.IUserIdProvider! userIdProvider, Microsoft.Extensions.DependencyInjection.IServiceScopeFactory! serviceScopeFactory) -> void +~Microsoft.AspNetCore.SignalR.HubOptionsSetup.HubOptionsSetup(Microsoft.Extensions.Options.IOptions! options) -> void diff --git a/src/SignalR/server/SignalR/src/PublicAPI.Shipped.txt b/src/SignalR/server/SignalR/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/SignalR/server/SignalR/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/SignalR/server/SignalR/src/PublicAPI.Unshipped.txt b/src/SignalR/server/SignalR/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..b3fb31f676 --- /dev/null +++ b/src/SignalR/server/SignalR/src/PublicAPI.Unshipped.txt @@ -0,0 +1,14 @@ +#nullable enable +Microsoft.AspNetCore.Builder.HubEndpointConventionBuilder +Microsoft.AspNetCore.Builder.HubEndpointRouteBuilderExtensions +Microsoft.AspNetCore.Builder.IHubEndpointConventionBuilder +Microsoft.AspNetCore.SignalR.GetHttpContextExtensions +Microsoft.Extensions.DependencyInjection.SignalRDependencyInjectionExtensions +~Microsoft.AspNetCore.Builder.HubEndpointConventionBuilder.Add(System.Action convention) -> void +~static Microsoft.AspNetCore.Builder.HubEndpointRouteBuilderExtensions.MapHub(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern) -> Microsoft.AspNetCore.Builder.HubEndpointConventionBuilder +~static Microsoft.AspNetCore.Builder.HubEndpointRouteBuilderExtensions.MapHub(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, System.Action configureOptions) -> Microsoft.AspNetCore.Builder.HubEndpointConventionBuilder +~static Microsoft.AspNetCore.SignalR.GetHttpContextExtensions.GetHttpContext(this Microsoft.AspNetCore.SignalR.HubCallerContext connection) -> Microsoft.AspNetCore.Http.HttpContext +~static Microsoft.AspNetCore.SignalR.GetHttpContextExtensions.GetHttpContext(this Microsoft.AspNetCore.SignalR.HubConnectionContext connection) -> Microsoft.AspNetCore.Http.HttpContext +~static Microsoft.Extensions.DependencyInjection.SignalRDependencyInjectionExtensions.AddHubOptions(this Microsoft.AspNetCore.SignalR.ISignalRServerBuilder signalrBuilder, System.Action> configure) -> Microsoft.AspNetCore.SignalR.ISignalRServerBuilder +~static Microsoft.Extensions.DependencyInjection.SignalRDependencyInjectionExtensions.AddSignalR(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) -> Microsoft.AspNetCore.SignalR.ISignalRServerBuilder +~static Microsoft.Extensions.DependencyInjection.SignalRDependencyInjectionExtensions.AddSignalR(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) -> Microsoft.AspNetCore.SignalR.ISignalRServerBuilder diff --git a/src/SignalR/server/StackExchangeRedis/src/PublicAPI.Shipped.txt b/src/SignalR/server/StackExchangeRedis/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/SignalR/server/StackExchangeRedis/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/SignalR/server/StackExchangeRedis/src/PublicAPI.Unshipped.txt b/src/SignalR/server/StackExchangeRedis/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..2179ac040f --- /dev/null +++ b/src/SignalR/server/StackExchangeRedis/src/PublicAPI.Unshipped.txt @@ -0,0 +1,29 @@ +#nullable enable +Microsoft.AspNetCore.SignalR.StackExchangeRedis.RedisHubLifetimeManager.Dispose() -> void +Microsoft.AspNetCore.SignalR.StackExchangeRedis.RedisOptions +Microsoft.AspNetCore.SignalR.StackExchangeRedis.RedisOptions.RedisOptions() -> void +Microsoft.Extensions.DependencyInjection.StackExchangeRedisDependencyInjectionExtensions +~Microsoft.AspNetCore.SignalR.StackExchangeRedis.RedisHubLifetimeManager +~Microsoft.AspNetCore.SignalR.StackExchangeRedis.RedisHubLifetimeManager.RedisHubLifetimeManager(Microsoft.Extensions.Logging.ILogger> logger, Microsoft.Extensions.Options.IOptions options, Microsoft.AspNetCore.SignalR.IHubProtocolResolver hubProtocolResolver) -> void +~Microsoft.AspNetCore.SignalR.StackExchangeRedis.RedisHubLifetimeManager.RedisHubLifetimeManager(Microsoft.Extensions.Logging.ILogger> logger, Microsoft.Extensions.Options.IOptions options, Microsoft.AspNetCore.SignalR.IHubProtocolResolver hubProtocolResolver, Microsoft.Extensions.Options.IOptions globalHubOptions, Microsoft.Extensions.Options.IOptions> hubOptions) -> void +~Microsoft.AspNetCore.SignalR.StackExchangeRedis.RedisOptions.Configuration.get -> StackExchange.Redis.ConfigurationOptions +~Microsoft.AspNetCore.SignalR.StackExchangeRedis.RedisOptions.Configuration.set -> void +~Microsoft.AspNetCore.SignalR.StackExchangeRedis.RedisOptions.ConnectionFactory.get -> System.Func> +~Microsoft.AspNetCore.SignalR.StackExchangeRedis.RedisOptions.ConnectionFactory.set -> void +~override Microsoft.AspNetCore.SignalR.StackExchangeRedis.RedisHubLifetimeManager.AddToGroupAsync(string connectionId, string groupName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.SignalR.StackExchangeRedis.RedisHubLifetimeManager.OnConnectedAsync(Microsoft.AspNetCore.SignalR.HubConnectionContext connection) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.SignalR.StackExchangeRedis.RedisHubLifetimeManager.OnDisconnectedAsync(Microsoft.AspNetCore.SignalR.HubConnectionContext connection) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.SignalR.StackExchangeRedis.RedisHubLifetimeManager.RemoveFromGroupAsync(string connectionId, string groupName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.SignalR.StackExchangeRedis.RedisHubLifetimeManager.SendAllAsync(string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.SignalR.StackExchangeRedis.RedisHubLifetimeManager.SendAllExceptAsync(string methodName, object[] args, System.Collections.Generic.IReadOnlyList excludedConnectionIds, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.SignalR.StackExchangeRedis.RedisHubLifetimeManager.SendConnectionAsync(string connectionId, string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.SignalR.StackExchangeRedis.RedisHubLifetimeManager.SendConnectionsAsync(System.Collections.Generic.IReadOnlyList connectionIds, string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.SignalR.StackExchangeRedis.RedisHubLifetimeManager.SendGroupAsync(string groupName, string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.SignalR.StackExchangeRedis.RedisHubLifetimeManager.SendGroupExceptAsync(string groupName, string methodName, object[] args, System.Collections.Generic.IReadOnlyList excludedConnectionIds, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.SignalR.StackExchangeRedis.RedisHubLifetimeManager.SendGroupsAsync(System.Collections.Generic.IReadOnlyList groupNames, string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.SignalR.StackExchangeRedis.RedisHubLifetimeManager.SendUserAsync(string userId, string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.SignalR.StackExchangeRedis.RedisHubLifetimeManager.SendUsersAsync(System.Collections.Generic.IReadOnlyList userIds, string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.Extensions.DependencyInjection.StackExchangeRedisDependencyInjectionExtensions.AddStackExchangeRedis(this Microsoft.AspNetCore.SignalR.ISignalRServerBuilder signalrBuilder) -> Microsoft.AspNetCore.SignalR.ISignalRServerBuilder +~static Microsoft.Extensions.DependencyInjection.StackExchangeRedisDependencyInjectionExtensions.AddStackExchangeRedis(this Microsoft.AspNetCore.SignalR.ISignalRServerBuilder signalrBuilder, System.Action configure) -> Microsoft.AspNetCore.SignalR.ISignalRServerBuilder +~static Microsoft.Extensions.DependencyInjection.StackExchangeRedisDependencyInjectionExtensions.AddStackExchangeRedis(this Microsoft.AspNetCore.SignalR.ISignalRServerBuilder signalrBuilder, string redisConnectionString) -> Microsoft.AspNetCore.SignalR.ISignalRServerBuilder +~static Microsoft.Extensions.DependencyInjection.StackExchangeRedisDependencyInjectionExtensions.AddStackExchangeRedis(this Microsoft.AspNetCore.SignalR.ISignalRServerBuilder signalrBuilder, string redisConnectionString, System.Action configure) -> Microsoft.AspNetCore.SignalR.ISignalRServerBuilder From 848f42df8e25f51ff9e7783541ba63a9cfde189a Mon Sep 17 00:00:00 2001 From: Kevin Pilch Date: Thu, 10 Sep 2020 11:45:01 -0700 Subject: [PATCH 073/187] Add public API baselines for SiteExtensions, Testing, WebEncoders (#25654) --- AspNetCore.sln | 102 +++++ .../src/PublicAPI.Shipped.txt | 1 + .../src/PublicAPI.Unshipped.txt | 6 + .../Sdk/HostingStartup/PublicAPI.Shipped.txt | 1 + .../HostingStartup/PublicAPI.Unshipped.txt | 4 + src/Testing/src/AssemblyTestLog.cs | 7 + src/Testing/src/CultureReplacer.cs | 2 + src/Testing/src/HttpClientSlim.cs | 7 +- src/Testing/src/LoggedTest/LoggedTestBase.cs | 3 + src/Testing/src/PublicAPI.Shipped.txt | 1 + src/Testing/src/PublicAPI.Unshipped.txt | 372 ++++++++++++++++++ src/Testing/src/TaskExtensions.cs | 3 + src/WebEncoders/src/PublicAPI.Shipped.txt | 1 + src/WebEncoders/src/PublicAPI.Unshipped.txt | 35 ++ 14 files changed, 544 insertions(+), 1 deletion(-) create mode 100644 src/SiteExtensions/Microsoft.Web.Xdt.Extensions/src/PublicAPI.Shipped.txt create mode 100644 src/SiteExtensions/Microsoft.Web.Xdt.Extensions/src/PublicAPI.Unshipped.txt create mode 100644 src/SiteExtensions/Sdk/HostingStartup/PublicAPI.Shipped.txt create mode 100644 src/SiteExtensions/Sdk/HostingStartup/PublicAPI.Unshipped.txt create mode 100644 src/Testing/src/PublicAPI.Shipped.txt create mode 100644 src/Testing/src/PublicAPI.Unshipped.txt create mode 100644 src/WebEncoders/src/PublicAPI.Shipped.txt create mode 100644 src/WebEncoders/src/PublicAPI.Unshipped.txt diff --git a/AspNetCore.sln b/AspNetCore.sln index 0d81350874..28551367a7 100644 --- a/AspNetCore.sln +++ b/AspNetCore.sln @@ -1523,6 +1523,26 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Loggin EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.AzureAppServices.Tests", "src\Logging.AzureAppServices\test\Microsoft.Extensions.Logging.AzureAppServices.Tests.csproj", "{43E3B132-2486-44A3-92C6-39E39724FAFD}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SiteExtensions", "SiteExtensions", "{DFC4F588-B4B4-484B-AB93-B36721374AD3}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "LoggingAggregate", "LoggingAggregate", "{48FF1D87-5066-4294-B802-2D1B478C6EB6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.AzureAppServices.SiteExtension", "src\SiteExtensions\LoggingAggregate\src\Microsoft.AspNetCore.AzureAppServices.SiteExtension\Microsoft.AspNetCore.AzureAppServices.SiteExtension.csproj", "{563A3FFA-32DA-4ADA-891C-E00897BD919E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.AzureAppServices.SiteExtension.Tests", "src\SiteExtensions\LoggingAggregate\test\Microsoft.AspNetCore.AzureAppServices.SiteExtension.Tests\Microsoft.AspNetCore.AzureAppServices.SiteExtension.Tests.csproj", "{DC5DE087-5C93-4441-9D62-1743A50E5086}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LB", "src\SiteExtensions\LoggingBranch\LB.csproj", "{F00CE8C1-5715-4683-A8E5-C467B712AD46}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Microsoft.Web.Xdt.Extensions", "Microsoft.Web.Xdt.Extensions", "{56B45580-B089-424E-A847-A6115D591950}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Web.Xdt.Extensions", "src\SiteExtensions\Microsoft.Web.Xdt.Extensions\src\Microsoft.Web.Xdt.Extensions.csproj", "{4382555A-E4CD-4DFC-B59B-408FD4E93530}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Web.Xdt.Extensions.Tests", "src\SiteExtensions\Microsoft.Web.Xdt.Extensions\tests\Microsoft.Web.Xdt.Extensions.Tests.csproj", "{545751D5-71FC-4889-A3A0-BBD731DBA18A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sdk", "Sdk", "{E83B0BCC-A8E0-4FBD-BE51-9A533C9CB972}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HostingStartup", "src\SiteExtensions\Sdk\HostingStartup\HostingStartup.csproj", "{5D6F99C5-D292-4459-B8BD-8E4AD42E1B21}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -7291,6 +7311,78 @@ Global {43E3B132-2486-44A3-92C6-39E39724FAFD}.Release|x64.Build.0 = Release|Any CPU {43E3B132-2486-44A3-92C6-39E39724FAFD}.Release|x86.ActiveCfg = Release|Any CPU {43E3B132-2486-44A3-92C6-39E39724FAFD}.Release|x86.Build.0 = Release|Any CPU + {563A3FFA-32DA-4ADA-891C-E00897BD919E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {563A3FFA-32DA-4ADA-891C-E00897BD919E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {563A3FFA-32DA-4ADA-891C-E00897BD919E}.Debug|x64.ActiveCfg = Debug|Any CPU + {563A3FFA-32DA-4ADA-891C-E00897BD919E}.Debug|x64.Build.0 = Debug|Any CPU + {563A3FFA-32DA-4ADA-891C-E00897BD919E}.Debug|x86.ActiveCfg = Debug|Any CPU + {563A3FFA-32DA-4ADA-891C-E00897BD919E}.Debug|x86.Build.0 = Debug|Any CPU + {563A3FFA-32DA-4ADA-891C-E00897BD919E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {563A3FFA-32DA-4ADA-891C-E00897BD919E}.Release|Any CPU.Build.0 = Release|Any CPU + {563A3FFA-32DA-4ADA-891C-E00897BD919E}.Release|x64.ActiveCfg = Release|Any CPU + {563A3FFA-32DA-4ADA-891C-E00897BD919E}.Release|x64.Build.0 = Release|Any CPU + {563A3FFA-32DA-4ADA-891C-E00897BD919E}.Release|x86.ActiveCfg = Release|Any CPU + {563A3FFA-32DA-4ADA-891C-E00897BD919E}.Release|x86.Build.0 = Release|Any CPU + {DC5DE087-5C93-4441-9D62-1743A50E5086}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DC5DE087-5C93-4441-9D62-1743A50E5086}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DC5DE087-5C93-4441-9D62-1743A50E5086}.Debug|x64.ActiveCfg = Debug|Any CPU + {DC5DE087-5C93-4441-9D62-1743A50E5086}.Debug|x64.Build.0 = Debug|Any CPU + {DC5DE087-5C93-4441-9D62-1743A50E5086}.Debug|x86.ActiveCfg = Debug|Any CPU + {DC5DE087-5C93-4441-9D62-1743A50E5086}.Debug|x86.Build.0 = Debug|Any CPU + {DC5DE087-5C93-4441-9D62-1743A50E5086}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DC5DE087-5C93-4441-9D62-1743A50E5086}.Release|Any CPU.Build.0 = Release|Any CPU + {DC5DE087-5C93-4441-9D62-1743A50E5086}.Release|x64.ActiveCfg = Release|Any CPU + {DC5DE087-5C93-4441-9D62-1743A50E5086}.Release|x64.Build.0 = Release|Any CPU + {DC5DE087-5C93-4441-9D62-1743A50E5086}.Release|x86.ActiveCfg = Release|Any CPU + {DC5DE087-5C93-4441-9D62-1743A50E5086}.Release|x86.Build.0 = Release|Any CPU + {F00CE8C1-5715-4683-A8E5-C467B712AD46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F00CE8C1-5715-4683-A8E5-C467B712AD46}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F00CE8C1-5715-4683-A8E5-C467B712AD46}.Debug|x64.ActiveCfg = Debug|Any CPU + {F00CE8C1-5715-4683-A8E5-C467B712AD46}.Debug|x64.Build.0 = Debug|Any CPU + {F00CE8C1-5715-4683-A8E5-C467B712AD46}.Debug|x86.ActiveCfg = Debug|Any CPU + {F00CE8C1-5715-4683-A8E5-C467B712AD46}.Debug|x86.Build.0 = Debug|Any CPU + {F00CE8C1-5715-4683-A8E5-C467B712AD46}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F00CE8C1-5715-4683-A8E5-C467B712AD46}.Release|Any CPU.Build.0 = Release|Any CPU + {F00CE8C1-5715-4683-A8E5-C467B712AD46}.Release|x64.ActiveCfg = Release|Any CPU + {F00CE8C1-5715-4683-A8E5-C467B712AD46}.Release|x64.Build.0 = Release|Any CPU + {F00CE8C1-5715-4683-A8E5-C467B712AD46}.Release|x86.ActiveCfg = Release|Any CPU + {F00CE8C1-5715-4683-A8E5-C467B712AD46}.Release|x86.Build.0 = Release|Any CPU + {4382555A-E4CD-4DFC-B59B-408FD4E93530}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4382555A-E4CD-4DFC-B59B-408FD4E93530}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4382555A-E4CD-4DFC-B59B-408FD4E93530}.Debug|x64.ActiveCfg = Debug|Any CPU + {4382555A-E4CD-4DFC-B59B-408FD4E93530}.Debug|x64.Build.0 = Debug|Any CPU + {4382555A-E4CD-4DFC-B59B-408FD4E93530}.Debug|x86.ActiveCfg = Debug|Any CPU + {4382555A-E4CD-4DFC-B59B-408FD4E93530}.Debug|x86.Build.0 = Debug|Any CPU + {4382555A-E4CD-4DFC-B59B-408FD4E93530}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4382555A-E4CD-4DFC-B59B-408FD4E93530}.Release|Any CPU.Build.0 = Release|Any CPU + {4382555A-E4CD-4DFC-B59B-408FD4E93530}.Release|x64.ActiveCfg = Release|Any CPU + {4382555A-E4CD-4DFC-B59B-408FD4E93530}.Release|x64.Build.0 = Release|Any CPU + {4382555A-E4CD-4DFC-B59B-408FD4E93530}.Release|x86.ActiveCfg = Release|Any CPU + {4382555A-E4CD-4DFC-B59B-408FD4E93530}.Release|x86.Build.0 = Release|Any CPU + {545751D5-71FC-4889-A3A0-BBD731DBA18A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {545751D5-71FC-4889-A3A0-BBD731DBA18A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {545751D5-71FC-4889-A3A0-BBD731DBA18A}.Debug|x64.ActiveCfg = Debug|Any CPU + {545751D5-71FC-4889-A3A0-BBD731DBA18A}.Debug|x64.Build.0 = Debug|Any CPU + {545751D5-71FC-4889-A3A0-BBD731DBA18A}.Debug|x86.ActiveCfg = Debug|Any CPU + {545751D5-71FC-4889-A3A0-BBD731DBA18A}.Debug|x86.Build.0 = Debug|Any CPU + {545751D5-71FC-4889-A3A0-BBD731DBA18A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {545751D5-71FC-4889-A3A0-BBD731DBA18A}.Release|Any CPU.Build.0 = Release|Any CPU + {545751D5-71FC-4889-A3A0-BBD731DBA18A}.Release|x64.ActiveCfg = Release|Any CPU + {545751D5-71FC-4889-A3A0-BBD731DBA18A}.Release|x64.Build.0 = Release|Any CPU + {545751D5-71FC-4889-A3A0-BBD731DBA18A}.Release|x86.ActiveCfg = Release|Any CPU + {545751D5-71FC-4889-A3A0-BBD731DBA18A}.Release|x86.Build.0 = Release|Any CPU + {5D6F99C5-D292-4459-B8BD-8E4AD42E1B21}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5D6F99C5-D292-4459-B8BD-8E4AD42E1B21}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5D6F99C5-D292-4459-B8BD-8E4AD42E1B21}.Debug|x64.ActiveCfg = Debug|Any CPU + {5D6F99C5-D292-4459-B8BD-8E4AD42E1B21}.Debug|x64.Build.0 = Debug|Any CPU + {5D6F99C5-D292-4459-B8BD-8E4AD42E1B21}.Debug|x86.ActiveCfg = Debug|Any CPU + {5D6F99C5-D292-4459-B8BD-8E4AD42E1B21}.Debug|x86.Build.0 = Debug|Any CPU + {5D6F99C5-D292-4459-B8BD-8E4AD42E1B21}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5D6F99C5-D292-4459-B8BD-8E4AD42E1B21}.Release|Any CPU.Build.0 = Release|Any CPU + {5D6F99C5-D292-4459-B8BD-8E4AD42E1B21}.Release|x64.ActiveCfg = Release|Any CPU + {5D6F99C5-D292-4459-B8BD-8E4AD42E1B21}.Release|x64.Build.0 = Release|Any CPU + {5D6F99C5-D292-4459-B8BD-8E4AD42E1B21}.Release|x86.ActiveCfg = Release|Any CPU + {5D6F99C5-D292-4459-B8BD-8E4AD42E1B21}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -8054,6 +8146,16 @@ Global {3EAB9890-2C01-444C-ACA0-D77B29CDE08B} = {017429CC-C5FB-48B4-9C46-034E29EE2F06} {3E29454A-C4DC-44B7-AF0A-A782AD2E73BC} = {3EAB9890-2C01-444C-ACA0-D77B29CDE08B} {43E3B132-2486-44A3-92C6-39E39724FAFD} = {3EAB9890-2C01-444C-ACA0-D77B29CDE08B} + {DFC4F588-B4B4-484B-AB93-B36721374AD3} = {017429CC-C5FB-48B4-9C46-034E29EE2F06} + {48FF1D87-5066-4294-B802-2D1B478C6EB6} = {DFC4F588-B4B4-484B-AB93-B36721374AD3} + {563A3FFA-32DA-4ADA-891C-E00897BD919E} = {48FF1D87-5066-4294-B802-2D1B478C6EB6} + {DC5DE087-5C93-4441-9D62-1743A50E5086} = {48FF1D87-5066-4294-B802-2D1B478C6EB6} + {F00CE8C1-5715-4683-A8E5-C467B712AD46} = {DFC4F588-B4B4-484B-AB93-B36721374AD3} + {56B45580-B089-424E-A847-A6115D591950} = {DFC4F588-B4B4-484B-AB93-B36721374AD3} + {4382555A-E4CD-4DFC-B59B-408FD4E93530} = {56B45580-B089-424E-A847-A6115D591950} + {545751D5-71FC-4889-A3A0-BBD731DBA18A} = {56B45580-B089-424E-A847-A6115D591950} + {E83B0BCC-A8E0-4FBD-BE51-9A533C9CB972} = {DFC4F588-B4B4-484B-AB93-B36721374AD3} + {5D6F99C5-D292-4459-B8BD-8E4AD42E1B21} = {E83B0BCC-A8E0-4FBD-BE51-9A533C9CB972} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {3E8720B3-DBDD-498C-B383-2CC32A054E8F} diff --git a/src/SiteExtensions/Microsoft.Web.Xdt.Extensions/src/PublicAPI.Shipped.txt b/src/SiteExtensions/Microsoft.Web.Xdt.Extensions/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/SiteExtensions/Microsoft.Web.Xdt.Extensions/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/SiteExtensions/Microsoft.Web.Xdt.Extensions/src/PublicAPI.Unshipped.txt b/src/SiteExtensions/Microsoft.Web.Xdt.Extensions/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..91232839de --- /dev/null +++ b/src/SiteExtensions/Microsoft.Web.Xdt.Extensions/src/PublicAPI.Unshipped.txt @@ -0,0 +1,6 @@ +#nullable enable +Microsoft.Web.Xdt.Extensions.InsertOrAppendAttribute +Microsoft.Web.Xdt.Extensions.InsertOrAppendAttribute.InsertOrAppendAttribute() -> void +override Microsoft.Web.Xdt.Extensions.InsertOrAppendAttribute.Apply() -> void +~Microsoft.Web.Xdt.Extensions.InsertOrAppendAttribute.AttributeName.get -> string +~Microsoft.Web.Xdt.Extensions.InsertOrAppendAttribute.GetArgumentValue(string name) -> string diff --git a/src/SiteExtensions/Sdk/HostingStartup/PublicAPI.Shipped.txt b/src/SiteExtensions/Sdk/HostingStartup/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/SiteExtensions/Sdk/HostingStartup/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/SiteExtensions/Sdk/HostingStartup/PublicAPI.Unshipped.txt b/src/SiteExtensions/Sdk/HostingStartup/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..3e35270583 --- /dev/null +++ b/src/SiteExtensions/Sdk/HostingStartup/PublicAPI.Unshipped.txt @@ -0,0 +1,4 @@ +#nullable enable +Program +Program.Program() -> void +static Program.Main() -> void diff --git a/src/Testing/src/AssemblyTestLog.cs b/src/Testing/src/AssemblyTestLog.cs index f5a5314a85..cd773ea611 100644 --- a/src/Testing/src/AssemblyTestLog.cs +++ b/src/Testing/src/AssemblyTestLog.cs @@ -5,6 +5,7 @@ using System; using System.Collections.Generic; using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; using System.IO; using System.Linq; using System.Reflection; @@ -52,9 +53,11 @@ namespace Microsoft.AspNetCore.Testing _serviceProvider = serviceProvider; } + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public IDisposable StartTestLog(ITestOutputHelper output, string className, out ILoggerFactory loggerFactory, [CallerMemberName] string testName = null) => StartTestLog(output, className, out loggerFactory, LogLevel.Debug, testName); + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public IDisposable StartTestLog(ITestOutputHelper output, string className, out ILoggerFactory loggerFactory, LogLevel minLogLevel, [CallerMemberName] string testName = null) => StartTestLog(output, className, out loggerFactory, minLogLevel, out var _, out var _, testName); @@ -84,15 +87,19 @@ namespace Microsoft.AspNetCore.Testing }); } + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public ILoggerFactory CreateLoggerFactory(ITestOutputHelper output, string className, [CallerMemberName] string testName = null, DateTimeOffset? logStart = null) => CreateLoggerFactory(output, className, LogLevel.Trace, testName, logStart); + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public ILoggerFactory CreateLoggerFactory(ITestOutputHelper output, string className, LogLevel minLogLevel, [CallerMemberName] string testName = null, DateTimeOffset? logStart = null) => CreateLoggerServices(output, className, minLogLevel, out var _, out var _, testName, logStart).GetRequiredService(); + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public IServiceProvider CreateLoggerServices(ITestOutputHelper output, string className, LogLevel minLogLevel, out string normalizedTestName, [CallerMemberName] string testName = null, DateTimeOffset? logStart = null) => CreateLoggerServices(output, className, minLogLevel, out normalizedTestName, out var _, testName, logStart); + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public IServiceProvider CreateLoggerServices(ITestOutputHelper output, string className, LogLevel minLogLevel, out string normalizedTestName, out string logOutputDirectory, [CallerMemberName] string testName = null, DateTimeOffset? logStart = null) { normalizedTestName = string.Empty; diff --git a/src/Testing/src/CultureReplacer.cs b/src/Testing/src/CultureReplacer.cs index 51e35e8354..e44b374982 100644 --- a/src/Testing/src/CultureReplacer.cs +++ b/src/Testing/src/CultureReplacer.cs @@ -2,6 +2,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Threading; using Xunit; @@ -21,6 +22,7 @@ namespace Microsoft.AspNetCore.Testing // We want to be able to find issues where the InvariantCulture is used, but a specific culture should be. // // UICulture => Language + [SuppressMessage("ApiDesign", "RS0027:Public API with optional parameter(s) should have the most parameters amongst its public overloads", Justification = "Required to maintain compatibility")] public CultureReplacer(string culture = _defaultCultureName, string uiCulture = _defaultUICultureName) : this(new CultureInfo(culture), new CultureInfo(uiCulture)) { diff --git a/src/Testing/src/HttpClientSlim.cs b/src/Testing/src/HttpClientSlim.cs index 135d6a0152..de8199bc3e 100644 --- a/src/Testing/src/HttpClientSlim.cs +++ b/src/Testing/src/HttpClientSlim.cs @@ -1,7 +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. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.IO; using System.Net; @@ -20,9 +21,11 @@ namespace Microsoft.AspNetCore.Testing /// public static class HttpClientSlim { + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static async Task GetStringAsync(string requestUri, bool validateCertificate = true) => await GetStringAsync(new Uri(requestUri), validateCertificate).ConfigureAwait(false); + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static async Task GetStringAsync(Uri requestUri, bool validateCertificate = true) { return await RetryRequest(async () => @@ -61,9 +64,11 @@ namespace Microsoft.AspNetCore.Testing return authority; } + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static async Task PostAsync(string requestUri, HttpContent content, bool validateCertificate = true) => await PostAsync(new Uri(requestUri), content, validateCertificate).ConfigureAwait(false); + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static async Task PostAsync(Uri requestUri, HttpContent content, bool validateCertificate = true) { return await RetryRequest(async () => diff --git a/src/Testing/src/LoggedTest/LoggedTestBase.cs b/src/Testing/src/LoggedTest/LoggedTestBase.cs index aa48eb8d51..d8d1567623 100644 --- a/src/Testing/src/LoggedTest/LoggedTestBase.cs +++ b/src/Testing/src/LoggedTest/LoggedTestBase.cs @@ -3,6 +3,7 @@ // See the LICENSE file in the project root for more information. using System; +using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; @@ -48,9 +49,11 @@ namespace Microsoft.AspNetCore.Testing public void AddTestLogging(IServiceCollection services) => services.AddSingleton(LoggerFactory); // For back compat + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public IDisposable StartLog(out ILoggerFactory loggerFactory, [CallerMemberName] string testName = null) => StartLog(out loggerFactory, LogLevel.Debug, testName); // For back compat + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public IDisposable StartLog(out ILoggerFactory loggerFactory, LogLevel minLogLevel, [CallerMemberName] string testName = null) { return AssemblyTestLog.ForAssembly(GetType().GetTypeInfo().Assembly).StartTestLog(TestOutputHelper, GetType().FullName, out loggerFactory, minLogLevel, testName); diff --git a/src/Testing/src/PublicAPI.Shipped.txt b/src/Testing/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/Testing/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Testing/src/PublicAPI.Unshipped.txt b/src/Testing/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..335b8434f9 --- /dev/null +++ b/src/Testing/src/PublicAPI.Unshipped.txt @@ -0,0 +1,372 @@ +#nullable enable +Microsoft.AspNetCore.Testing.AspNetTestAssemblyRunner +Microsoft.AspNetCore.Testing.AspNetTestCollectionRunner +Microsoft.AspNetCore.Testing.AspNetTestFramework +Microsoft.AspNetCore.Testing.AspNetTestFrameworkExecutor +Microsoft.AspNetCore.Testing.AssemblyFixtureAttribute +Microsoft.AspNetCore.Testing.AssemblyTestLog +Microsoft.AspNetCore.Testing.AssemblyTestLog.Dispose() -> void +Microsoft.AspNetCore.Testing.CollectDumpAttribute +Microsoft.AspNetCore.Testing.CollectDumpAttribute.CollectDumpAttribute() -> void +Microsoft.AspNetCore.Testing.ConditionalFactAttribute +Microsoft.AspNetCore.Testing.ConditionalFactAttribute.ConditionalFactAttribute() -> void +Microsoft.AspNetCore.Testing.ConditionalTheoryAttribute +Microsoft.AspNetCore.Testing.ConditionalTheoryAttribute.ConditionalTheoryAttribute() -> void +Microsoft.AspNetCore.Testing.CultureReplacer +Microsoft.AspNetCore.Testing.CultureReplacer.Dispose() -> void +Microsoft.AspNetCore.Testing.DockerOnlyAttribute +Microsoft.AspNetCore.Testing.DockerOnlyAttribute.DockerOnlyAttribute() -> void +Microsoft.AspNetCore.Testing.DockerOnlyAttribute.IsMet.get -> bool +Microsoft.AspNetCore.Testing.DumpCollector +Microsoft.AspNetCore.Testing.EnvironmentVariableSkipConditionAttribute +Microsoft.AspNetCore.Testing.EnvironmentVariableSkipConditionAttribute.IsMet.get -> bool +Microsoft.AspNetCore.Testing.EnvironmentVariableSkipConditionAttribute.RunOnMatch.get -> bool +Microsoft.AspNetCore.Testing.EnvironmentVariableSkipConditionAttribute.RunOnMatch.set -> void +Microsoft.AspNetCore.Testing.ExceptionAssert +Microsoft.AspNetCore.Testing.FrameworkSkipConditionAttribute +Microsoft.AspNetCore.Testing.FrameworkSkipConditionAttribute.FrameworkSkipConditionAttribute(Microsoft.AspNetCore.Testing.RuntimeFrameworks excludedFrameworks) -> void +Microsoft.AspNetCore.Testing.FrameworkSkipConditionAttribute.IsMet.get -> bool +Microsoft.AspNetCore.Testing.HelixQueues +Microsoft.AspNetCore.Testing.HttpClientSlim +Microsoft.AspNetCore.Testing.ILoggedTest +Microsoft.AspNetCore.Testing.ITestCondition +Microsoft.AspNetCore.Testing.ITestCondition.IsMet.get -> bool +Microsoft.AspNetCore.Testing.ITestMethodLifecycle +Microsoft.AspNetCore.Testing.LoggedTest +Microsoft.AspNetCore.Testing.LoggedTestBase +Microsoft.AspNetCore.Testing.MaximumOSVersionAttribute +Microsoft.AspNetCore.Testing.MaximumOSVersionAttribute.IsMet.get -> bool +Microsoft.AspNetCore.Testing.MinimumOSVersionAttribute +Microsoft.AspNetCore.Testing.MinimumOSVersionAttribute.IsMet.get -> bool +Microsoft.AspNetCore.Testing.OSSkipConditionAttribute +Microsoft.AspNetCore.Testing.OSSkipConditionAttribute.IsMet.get -> bool +Microsoft.AspNetCore.Testing.OSSkipConditionAttribute.OSSkipConditionAttribute(Microsoft.AspNetCore.Testing.OperatingSystems operatingSystem) -> void +Microsoft.AspNetCore.Testing.OperatingSystems +Microsoft.AspNetCore.Testing.OperatingSystems.Linux = 1 -> Microsoft.AspNetCore.Testing.OperatingSystems +Microsoft.AspNetCore.Testing.OperatingSystems.MacOSX = 2 -> Microsoft.AspNetCore.Testing.OperatingSystems +Microsoft.AspNetCore.Testing.OperatingSystems.Windows = 4 -> Microsoft.AspNetCore.Testing.OperatingSystems +Microsoft.AspNetCore.Testing.QuarantinedTestAttribute +Microsoft.AspNetCore.Testing.QuarantinedTestTraitDiscoverer +Microsoft.AspNetCore.Testing.QuarantinedTestTraitDiscoverer.QuarantinedTestTraitDiscoverer() -> void +Microsoft.AspNetCore.Testing.RepeatAttribute +Microsoft.AspNetCore.Testing.RepeatAttribute.RepeatAttribute(int runCount = 10) -> void +Microsoft.AspNetCore.Testing.RepeatAttribute.RunCount.get -> int +Microsoft.AspNetCore.Testing.RepeatContext +Microsoft.AspNetCore.Testing.RepeatContext.CurrentIteration.get -> int +Microsoft.AspNetCore.Testing.RepeatContext.CurrentIteration.set -> void +Microsoft.AspNetCore.Testing.RepeatContext.Limit.get -> int +Microsoft.AspNetCore.Testing.RepeatContext.RepeatContext(int limit) -> void +Microsoft.AspNetCore.Testing.ReplaceCultureAttribute +Microsoft.AspNetCore.Testing.ReplaceCultureAttribute.ReplaceCultureAttribute() -> void +Microsoft.AspNetCore.Testing.RuntimeFrameworks +Microsoft.AspNetCore.Testing.RuntimeFrameworks.CLR = 2 -> Microsoft.AspNetCore.Testing.RuntimeFrameworks +Microsoft.AspNetCore.Testing.RuntimeFrameworks.CoreCLR = 4 -> Microsoft.AspNetCore.Testing.RuntimeFrameworks +Microsoft.AspNetCore.Testing.RuntimeFrameworks.Mono = 1 -> Microsoft.AspNetCore.Testing.RuntimeFrameworks +Microsoft.AspNetCore.Testing.RuntimeFrameworks.None = 0 -> Microsoft.AspNetCore.Testing.RuntimeFrameworks +Microsoft.AspNetCore.Testing.ShortClassNameAttribute +Microsoft.AspNetCore.Testing.ShortClassNameAttribute.ShortClassNameAttribute() -> void +Microsoft.AspNetCore.Testing.SkipOnCIAttribute +Microsoft.AspNetCore.Testing.SkipOnCIAttribute.IsMet.get -> bool +Microsoft.AspNetCore.Testing.SkipOnHelixAttribute +Microsoft.AspNetCore.Testing.SkipOnHelixAttribute.IsMet.get -> bool +Microsoft.AspNetCore.Testing.SkippedTestCase +Microsoft.AspNetCore.Testing.SkippedTestCase.SkippedTestCase() -> void +Microsoft.AspNetCore.Testing.TaskExtensions +Microsoft.AspNetCore.Testing.TestContext +Microsoft.AspNetCore.Testing.TestFileOutputContext +Microsoft.AspNetCore.Testing.TestFrameworkFileLoggerAttribute +Microsoft.AspNetCore.Testing.TestMethodExtensions +Microsoft.AspNetCore.Testing.TestOutputDirectoryAttribute +Microsoft.AspNetCore.Testing.TestOutputDirectoryAttribute.PreserveExistingLogsInOutput.get -> bool +Microsoft.AspNetCore.Testing.TestPathUtilities +Microsoft.AspNetCore.Testing.TestPathUtilities.TestPathUtilities() -> void +Microsoft.AspNetCore.Testing.TestPlatformHelper +Microsoft.AspNetCore.Testing.Tracing.CollectingEventListener +Microsoft.AspNetCore.Testing.Tracing.CollectingEventListener.CollectingEventListener() -> void +Microsoft.AspNetCore.Testing.Tracing.EventAssert +Microsoft.AspNetCore.Testing.Tracing.EventSourceTestBase +Microsoft.AspNetCore.Testing.Tracing.EventSourceTestBase.Dispose() -> void +Microsoft.AspNetCore.Testing.Tracing.EventSourceTestBase.EventSourceTestBase() -> void +Microsoft.AspNetCore.Testing.WindowsVersions +Microsoft.Extensions.Logging.Testing.BeginScopeContext +Microsoft.Extensions.Logging.Testing.BeginScopeContext.BeginScopeContext() -> void +Microsoft.Extensions.Logging.Testing.ITestSink +Microsoft.Extensions.Logging.Testing.ITestSink.MessageLogged -> System.Action +Microsoft.Extensions.Logging.Testing.ITestSink.ScopeStarted -> System.Action +Microsoft.Extensions.Logging.Testing.LogLevelAttribute +Microsoft.Extensions.Logging.Testing.LogLevelAttribute.LogLevel.get -> Microsoft.Extensions.Logging.LogLevel +Microsoft.Extensions.Logging.Testing.LogLevelAttribute.LogLevelAttribute(Microsoft.Extensions.Logging.LogLevel logLevel) -> void +Microsoft.Extensions.Logging.Testing.LogValuesAssert +Microsoft.Extensions.Logging.Testing.TestLogger +Microsoft.Extensions.Logging.Testing.TestLogger.IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel) -> bool +Microsoft.Extensions.Logging.Testing.TestLogger +Microsoft.Extensions.Logging.Testing.TestLogger.IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel) -> bool +Microsoft.Extensions.Logging.Testing.TestLoggerFactory +Microsoft.Extensions.Logging.Testing.TestLoggerFactory.Dispose() -> void +Microsoft.Extensions.Logging.Testing.TestLoggerProvider +Microsoft.Extensions.Logging.Testing.TestLoggerProvider.Dispose() -> void +Microsoft.Extensions.Logging.Testing.TestSink +Microsoft.Extensions.Logging.Testing.TestSink.MessageLogged -> System.Action +Microsoft.Extensions.Logging.Testing.TestSink.ScopeStarted -> System.Action +Microsoft.Extensions.Logging.Testing.WriteContext +Microsoft.Extensions.Logging.Testing.WriteContext.EventId.get -> Microsoft.Extensions.Logging.EventId +Microsoft.Extensions.Logging.Testing.WriteContext.EventId.set -> void +Microsoft.Extensions.Logging.Testing.WriteContext.LogLevel.get -> Microsoft.Extensions.Logging.LogLevel +Microsoft.Extensions.Logging.Testing.WriteContext.LogLevel.set -> void +Microsoft.Extensions.Logging.Testing.WriteContext.WriteContext() -> void +Microsoft.Extensions.Logging.Testing.XunitLogger +Microsoft.Extensions.Logging.Testing.XunitLogger.IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel) -> bool +Microsoft.Extensions.Logging.Testing.XunitLoggerProvider +Microsoft.Extensions.Logging.Testing.XunitLoggerProvider.Dispose() -> void +Microsoft.Extensions.Logging.XunitLoggerFactoryExtensions +static Microsoft.AspNetCore.Testing.SkipOnCIAttribute.OnAzdo() -> bool +static Microsoft.AspNetCore.Testing.SkipOnCIAttribute.OnCI() -> bool +static Microsoft.AspNetCore.Testing.SkipOnCIAttribute.OnHelix() -> bool +static Microsoft.AspNetCore.Testing.SkipOnHelixAttribute.OnHelix() -> bool +static Microsoft.AspNetCore.Testing.TestPlatformHelper.IsLinux.get -> bool +static Microsoft.AspNetCore.Testing.TestPlatformHelper.IsMac.get -> bool +static Microsoft.AspNetCore.Testing.TestPlatformHelper.IsMono.get -> bool +static Microsoft.AspNetCore.Testing.TestPlatformHelper.IsWindows.get -> bool +virtual Microsoft.AspNetCore.Testing.LoggedTestBase.Dispose() -> void +~Microsoft.AspNetCore.Testing.AspNetTestAssemblyRunner.AspNetTestAssemblyRunner(Xunit.Abstractions.ITestAssembly testAssembly, System.Collections.Generic.IEnumerable testCases, Xunit.Abstractions.IMessageSink diagnosticMessageSink, Xunit.Abstractions.IMessageSink executionMessageSink, Xunit.Abstractions.ITestFrameworkExecutionOptions executionOptions) -> void +~Microsoft.AspNetCore.Testing.AspNetTestCollectionRunner.AspNetTestCollectionRunner(System.Collections.Generic.Dictionary assemblyFixtureMappings, Xunit.Abstractions.ITestCollection testCollection, System.Collections.Generic.IEnumerable testCases, Xunit.Abstractions.IMessageSink diagnosticMessageSink, Xunit.Sdk.IMessageBus messageBus, Xunit.Sdk.ITestCaseOrderer testCaseOrderer, Xunit.Sdk.ExceptionAggregator aggregator, System.Threading.CancellationTokenSource cancellationTokenSource) -> void +~Microsoft.AspNetCore.Testing.AspNetTestFramework.AspNetTestFramework(Xunit.Abstractions.IMessageSink messageSink) -> void +~Microsoft.AspNetCore.Testing.AspNetTestFrameworkExecutor.AspNetTestFrameworkExecutor(System.Reflection.AssemblyName assemblyName, Xunit.Abstractions.ISourceInformationProvider sourceInformationProvider, Xunit.Abstractions.IMessageSink diagnosticMessageSink) -> void +~Microsoft.AspNetCore.Testing.AssemblyFixtureAttribute.AssemblyFixtureAttribute(System.Type fixtureType) -> void +~Microsoft.AspNetCore.Testing.AssemblyFixtureAttribute.FixtureType.get -> System.Type +~Microsoft.AspNetCore.Testing.AssemblyTestLog.CreateLoggerFactory(Xunit.Abstractions.ITestOutputHelper output, string className, Microsoft.Extensions.Logging.LogLevel minLogLevel, string testName = null, System.DateTimeOffset? logStart = null) -> Microsoft.Extensions.Logging.ILoggerFactory +~Microsoft.AspNetCore.Testing.AssemblyTestLog.CreateLoggerFactory(Xunit.Abstractions.ITestOutputHelper output, string className, string testName = null, System.DateTimeOffset? logStart = null) -> Microsoft.Extensions.Logging.ILoggerFactory +~Microsoft.AspNetCore.Testing.AssemblyTestLog.CreateLoggerServices(Xunit.Abstractions.ITestOutputHelper output, string className, Microsoft.Extensions.Logging.LogLevel minLogLevel, out string normalizedTestName, out string logOutputDirectory, string testName = null, System.DateTimeOffset? logStart = null) -> System.IServiceProvider +~Microsoft.AspNetCore.Testing.AssemblyTestLog.CreateLoggerServices(Xunit.Abstractions.ITestOutputHelper output, string className, Microsoft.Extensions.Logging.LogLevel minLogLevel, out string normalizedTestName, string testName = null, System.DateTimeOffset? logStart = null) -> System.IServiceProvider +~Microsoft.AspNetCore.Testing.AssemblyTestLog.StartTestLog(Xunit.Abstractions.ITestOutputHelper output, string className, out Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.Extensions.Logging.LogLevel minLogLevel, string testName = null) -> System.IDisposable +~Microsoft.AspNetCore.Testing.AssemblyTestLog.StartTestLog(Xunit.Abstractions.ITestOutputHelper output, string className, out Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, string testName = null) -> System.IDisposable +~Microsoft.AspNetCore.Testing.CollectDumpAttribute.OnTestEndAsync(Microsoft.AspNetCore.Testing.TestContext context, System.Exception exception, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Testing.CollectDumpAttribute.OnTestStartAsync(Microsoft.AspNetCore.Testing.TestContext context, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Testing.CultureReplacer.CultureReplacer(System.Globalization.CultureInfo culture, System.Globalization.CultureInfo uiCulture) -> void +~Microsoft.AspNetCore.Testing.CultureReplacer.CultureReplacer(string culture = "en-GB", string uiCulture = "en-US") -> void +~Microsoft.AspNetCore.Testing.DockerOnlyAttribute.SkipReason.get -> string +~Microsoft.AspNetCore.Testing.EnvironmentVariableSkipConditionAttribute.EnvironmentVariableSkipConditionAttribute(string variableName, params string[] values) -> void +~Microsoft.AspNetCore.Testing.EnvironmentVariableSkipConditionAttribute.SkipReason.get -> string +~Microsoft.AspNetCore.Testing.FrameworkSkipConditionAttribute.SkipReason.get -> string +~Microsoft.AspNetCore.Testing.FrameworkSkipConditionAttribute.SkipReason.set -> void +~Microsoft.AspNetCore.Testing.ILoggedTest.Initialize(Microsoft.AspNetCore.Testing.TestContext context, System.Reflection.MethodInfo methodInfo, object[] testMethodArguments, Xunit.Abstractions.ITestOutputHelper testOutputHelper) -> void +~Microsoft.AspNetCore.Testing.ILoggedTest.Logger.get -> Microsoft.Extensions.Logging.ILogger +~Microsoft.AspNetCore.Testing.ILoggedTest.LoggerFactory.get -> Microsoft.Extensions.Logging.ILoggerFactory +~Microsoft.AspNetCore.Testing.ILoggedTest.StartLog(out Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.Extensions.Logging.LogLevel minLogLevel, string testName) -> System.IDisposable +~Microsoft.AspNetCore.Testing.ILoggedTest.TestOutputHelper.get -> Xunit.Abstractions.ITestOutputHelper +~Microsoft.AspNetCore.Testing.ITestCondition.SkipReason.get -> string +~Microsoft.AspNetCore.Testing.ITestMethodLifecycle.OnTestEndAsync(Microsoft.AspNetCore.Testing.TestContext context, System.Exception exception, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Testing.ITestMethodLifecycle.OnTestStartAsync(Microsoft.AspNetCore.Testing.TestContext context, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Testing.LoggedTest.LoggedTest(Xunit.Abstractions.ITestOutputHelper output = null) -> void +~Microsoft.AspNetCore.Testing.LoggedTest.TestSink.get -> Microsoft.Extensions.Logging.Testing.ITestSink +~Microsoft.AspNetCore.Testing.LoggedTest.TestSink.set -> void +~Microsoft.AspNetCore.Testing.LoggedTestBase.AddTestLogging(Microsoft.Extensions.DependencyInjection.IServiceCollection services) -> void +~Microsoft.AspNetCore.Testing.LoggedTestBase.Context.get -> Microsoft.AspNetCore.Testing.TestContext +~Microsoft.AspNetCore.Testing.LoggedTestBase.LoggedTestBase(Xunit.Abstractions.ITestOutputHelper output = null) -> void +~Microsoft.AspNetCore.Testing.LoggedTestBase.Logger.get -> Microsoft.Extensions.Logging.ILogger +~Microsoft.AspNetCore.Testing.LoggedTestBase.Logger.set -> void +~Microsoft.AspNetCore.Testing.LoggedTestBase.LoggerFactory.get -> Microsoft.Extensions.Logging.ILoggerFactory +~Microsoft.AspNetCore.Testing.LoggedTestBase.LoggerFactory.set -> void +~Microsoft.AspNetCore.Testing.LoggedTestBase.ResolvedLogOutputDirectory.get -> string +~Microsoft.AspNetCore.Testing.LoggedTestBase.ResolvedLogOutputDirectory.set -> void +~Microsoft.AspNetCore.Testing.LoggedTestBase.ResolvedTestMethodName.get -> string +~Microsoft.AspNetCore.Testing.LoggedTestBase.ResolvedTestMethodName.set -> void +~Microsoft.AspNetCore.Testing.LoggedTestBase.StartLog(out Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.Extensions.Logging.LogLevel minLogLevel, string testName = null) -> System.IDisposable +~Microsoft.AspNetCore.Testing.LoggedTestBase.StartLog(out Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, string testName = null) -> System.IDisposable +~Microsoft.AspNetCore.Testing.LoggedTestBase.TestOutputHelper.get -> Xunit.Abstractions.ITestOutputHelper +~Microsoft.AspNetCore.Testing.LoggedTestBase.TestOutputHelper.set -> void +~Microsoft.AspNetCore.Testing.MaximumOSVersionAttribute.MaximumOSVersionAttribute(Microsoft.AspNetCore.Testing.OperatingSystems operatingSystem, string maxVersion) -> void +~Microsoft.AspNetCore.Testing.MaximumOSVersionAttribute.SkipReason.get -> string +~Microsoft.AspNetCore.Testing.MaximumOSVersionAttribute.SkipReason.set -> void +~Microsoft.AspNetCore.Testing.MinimumOSVersionAttribute.MinimumOSVersionAttribute(Microsoft.AspNetCore.Testing.OperatingSystems operatingSystem, string minVersion) -> void +~Microsoft.AspNetCore.Testing.MinimumOSVersionAttribute.SkipReason.get -> string +~Microsoft.AspNetCore.Testing.MinimumOSVersionAttribute.SkipReason.set -> void +~Microsoft.AspNetCore.Testing.OSSkipConditionAttribute.OSSkipConditionAttribute(Microsoft.AspNetCore.Testing.OperatingSystems operatingSystem, params string[] versions) -> void +~Microsoft.AspNetCore.Testing.OSSkipConditionAttribute.SkipReason.get -> string +~Microsoft.AspNetCore.Testing.OSSkipConditionAttribute.SkipReason.set -> void +~Microsoft.AspNetCore.Testing.QuarantinedTestAttribute.QuarantinedTestAttribute(string reason = null) -> void +~Microsoft.AspNetCore.Testing.QuarantinedTestAttribute.Reason.get -> string +~Microsoft.AspNetCore.Testing.QuarantinedTestTraitDiscoverer.GetTraits(Xunit.Abstractions.IAttributeInfo traitAttribute) -> System.Collections.Generic.IEnumerable> +~Microsoft.AspNetCore.Testing.ReplaceCultureAttribute.Culture.get -> System.Globalization.CultureInfo +~Microsoft.AspNetCore.Testing.ReplaceCultureAttribute.ReplaceCultureAttribute(string currentCulture, string currentUICulture) -> void +~Microsoft.AspNetCore.Testing.ReplaceCultureAttribute.UICulture.get -> System.Globalization.CultureInfo +~Microsoft.AspNetCore.Testing.SkipOnCIAttribute.IssueUrl.get -> string +~Microsoft.AspNetCore.Testing.SkipOnCIAttribute.SkipOnCIAttribute(string issueUrl = "") -> void +~Microsoft.AspNetCore.Testing.SkipOnCIAttribute.SkipReason.get -> string +~Microsoft.AspNetCore.Testing.SkipOnHelixAttribute.IssueUrl.get -> string +~Microsoft.AspNetCore.Testing.SkipOnHelixAttribute.Queues.get -> string +~Microsoft.AspNetCore.Testing.SkipOnHelixAttribute.Queues.set -> void +~Microsoft.AspNetCore.Testing.SkipOnHelixAttribute.SkipOnHelixAttribute(string issueUrl) -> void +~Microsoft.AspNetCore.Testing.SkipOnHelixAttribute.SkipReason.get -> string +~Microsoft.AspNetCore.Testing.SkippedTestCase.SkippedTestCase(string skipReason, Xunit.Abstractions.IMessageSink diagnosticMessageSink, Xunit.Sdk.TestMethodDisplay defaultMethodDisplay, Xunit.Sdk.TestMethodDisplayOptions defaultMethodDisplayOptions, Xunit.Abstractions.ITestMethod testMethod, object[] testMethodArguments = null) -> void +~Microsoft.AspNetCore.Testing.TestContext.ConstructorArguments.get -> object[] +~Microsoft.AspNetCore.Testing.TestContext.FileOutput.get -> Microsoft.AspNetCore.Testing.TestFileOutputContext +~Microsoft.AspNetCore.Testing.TestContext.MethodArguments.get -> object[] +~Microsoft.AspNetCore.Testing.TestContext.Output.get -> Xunit.Abstractions.ITestOutputHelper +~Microsoft.AspNetCore.Testing.TestContext.TestClass.get -> System.Type +~Microsoft.AspNetCore.Testing.TestContext.TestContext(System.Type testClass, object[] constructorArguments, System.Reflection.MethodInfo testMethod, object[] methodArguments, Xunit.Abstractions.ITestOutputHelper output) -> void +~Microsoft.AspNetCore.Testing.TestContext.TestMethod.get -> System.Reflection.MethodInfo +~Microsoft.AspNetCore.Testing.TestFileOutputContext.AssemblyOutputDirectory.get -> string +~Microsoft.AspNetCore.Testing.TestFileOutputContext.GetUniqueFileName(string prefix, string extension) -> string +~Microsoft.AspNetCore.Testing.TestFileOutputContext.TestClassName.get -> string +~Microsoft.AspNetCore.Testing.TestFileOutputContext.TestClassOutputDirectory.get -> string +~Microsoft.AspNetCore.Testing.TestFileOutputContext.TestFileOutputContext(Microsoft.AspNetCore.Testing.TestContext parent) -> void +~Microsoft.AspNetCore.Testing.TestFileOutputContext.TestName.get -> string +~Microsoft.AspNetCore.Testing.TestFrameworkFileLoggerAttribute.TestFrameworkFileLoggerAttribute(string preserveExistingLogsInOutput, string tfm, string baseDirectory = null) -> void +~Microsoft.AspNetCore.Testing.TestOutputDirectoryAttribute.BaseDirectory.get -> string +~Microsoft.AspNetCore.Testing.TestOutputDirectoryAttribute.TargetFramework.get -> string +~Microsoft.AspNetCore.Testing.TestOutputDirectoryAttribute.TestOutputDirectoryAttribute(string preserveExistingLogsInOutput, string targetFramework, string baseDirectory = null) -> void +~Microsoft.AspNetCore.Testing.Tracing.CollectingEventListener.CollectFrom(System.Diagnostics.Tracing.EventSource eventSource) -> void +~Microsoft.AspNetCore.Testing.Tracing.CollectingEventListener.CollectFrom(string eventSourceName) -> void +~Microsoft.AspNetCore.Testing.Tracing.CollectingEventListener.GetEventsWritten() -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Testing.Tracing.EventAssert.EventAssert(int expectedId, string expectedName, System.Diagnostics.Tracing.EventLevel expectedLevel) -> void +~Microsoft.AspNetCore.Testing.Tracing.EventAssert.Payload(string name, System.Action asserter) -> Microsoft.AspNetCore.Testing.Tracing.EventAssert +~Microsoft.AspNetCore.Testing.Tracing.EventAssert.Payload(string name, object expectedValue) -> Microsoft.AspNetCore.Testing.Tracing.EventAssert +~Microsoft.AspNetCore.Testing.Tracing.EventSourceTestBase.CollectFrom(System.Diagnostics.Tracing.EventSource eventSource) -> void +~Microsoft.AspNetCore.Testing.Tracing.EventSourceTestBase.CollectFrom(string eventSourceName) -> void +~Microsoft.AspNetCore.Testing.Tracing.EventSourceTestBase.GetEvents() -> System.Collections.Generic.IReadOnlyList +~Microsoft.Extensions.Logging.Testing.BeginScopeContext.LoggerName.get -> string +~Microsoft.Extensions.Logging.Testing.BeginScopeContext.LoggerName.set -> void +~Microsoft.Extensions.Logging.Testing.BeginScopeContext.Scope.get -> object +~Microsoft.Extensions.Logging.Testing.BeginScopeContext.Scope.set -> void +~Microsoft.Extensions.Logging.Testing.ITestSink.Begin(Microsoft.Extensions.Logging.Testing.BeginScopeContext context) -> void +~Microsoft.Extensions.Logging.Testing.ITestSink.BeginEnabled.get -> System.Func +~Microsoft.Extensions.Logging.Testing.ITestSink.BeginEnabled.set -> void +~Microsoft.Extensions.Logging.Testing.ITestSink.Scopes.get -> System.Collections.Concurrent.IProducerConsumerCollection +~Microsoft.Extensions.Logging.Testing.ITestSink.Scopes.set -> void +~Microsoft.Extensions.Logging.Testing.ITestSink.Write(Microsoft.Extensions.Logging.Testing.WriteContext context) -> void +~Microsoft.Extensions.Logging.Testing.ITestSink.WriteEnabled.get -> System.Func +~Microsoft.Extensions.Logging.Testing.ITestSink.WriteEnabled.set -> void +~Microsoft.Extensions.Logging.Testing.ITestSink.Writes.get -> System.Collections.Concurrent.IProducerConsumerCollection +~Microsoft.Extensions.Logging.Testing.ITestSink.Writes.set -> void +~Microsoft.Extensions.Logging.Testing.TestLogger.BeginScope(TState state) -> System.IDisposable +~Microsoft.Extensions.Logging.Testing.TestLogger.Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception exception, System.Func formatter) -> void +~Microsoft.Extensions.Logging.Testing.TestLogger.Name.get -> string +~Microsoft.Extensions.Logging.Testing.TestLogger.Name.set -> void +~Microsoft.Extensions.Logging.Testing.TestLogger.TestLogger(string name, Microsoft.Extensions.Logging.Testing.ITestSink sink, System.Func filter) -> void +~Microsoft.Extensions.Logging.Testing.TestLogger.TestLogger(string name, Microsoft.Extensions.Logging.Testing.ITestSink sink, bool enabled) -> void +~Microsoft.Extensions.Logging.Testing.TestLogger.BeginScope(TState state) -> System.IDisposable +~Microsoft.Extensions.Logging.Testing.TestLogger.Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception exception, System.Func formatter) -> void +~Microsoft.Extensions.Logging.Testing.TestLogger.TestLogger(Microsoft.Extensions.Logging.Testing.TestLoggerFactory factory) -> void +~Microsoft.Extensions.Logging.Testing.TestLoggerFactory.AddProvider(Microsoft.Extensions.Logging.ILoggerProvider provider) -> void +~Microsoft.Extensions.Logging.Testing.TestLoggerFactory.CreateLogger(string name) -> Microsoft.Extensions.Logging.ILogger +~Microsoft.Extensions.Logging.Testing.TestLoggerFactory.TestLoggerFactory(Microsoft.Extensions.Logging.Testing.ITestSink sink, bool enabled) -> void +~Microsoft.Extensions.Logging.Testing.TestLoggerProvider.CreateLogger(string categoryName) -> Microsoft.Extensions.Logging.ILogger +~Microsoft.Extensions.Logging.Testing.TestLoggerProvider.TestLoggerProvider(Microsoft.Extensions.Logging.Testing.ITestSink sink) -> void +~Microsoft.Extensions.Logging.Testing.TestSink.Begin(Microsoft.Extensions.Logging.Testing.BeginScopeContext context) -> void +~Microsoft.Extensions.Logging.Testing.TestSink.BeginEnabled.get -> System.Func +~Microsoft.Extensions.Logging.Testing.TestSink.BeginEnabled.set -> void +~Microsoft.Extensions.Logging.Testing.TestSink.Scopes.get -> System.Collections.Concurrent.IProducerConsumerCollection +~Microsoft.Extensions.Logging.Testing.TestSink.Scopes.set -> void +~Microsoft.Extensions.Logging.Testing.TestSink.TestSink(System.Func writeEnabled = null, System.Func beginEnabled = null) -> void +~Microsoft.Extensions.Logging.Testing.TestSink.Write(Microsoft.Extensions.Logging.Testing.WriteContext context) -> void +~Microsoft.Extensions.Logging.Testing.TestSink.WriteEnabled.get -> System.Func +~Microsoft.Extensions.Logging.Testing.TestSink.WriteEnabled.set -> void +~Microsoft.Extensions.Logging.Testing.TestSink.Writes.get -> System.Collections.Concurrent.IProducerConsumerCollection +~Microsoft.Extensions.Logging.Testing.TestSink.Writes.set -> void +~Microsoft.Extensions.Logging.Testing.WriteContext.Exception.get -> System.Exception +~Microsoft.Extensions.Logging.Testing.WriteContext.Exception.set -> void +~Microsoft.Extensions.Logging.Testing.WriteContext.Formatter.get -> System.Func +~Microsoft.Extensions.Logging.Testing.WriteContext.Formatter.set -> void +~Microsoft.Extensions.Logging.Testing.WriteContext.LoggerName.get -> string +~Microsoft.Extensions.Logging.Testing.WriteContext.LoggerName.set -> void +~Microsoft.Extensions.Logging.Testing.WriteContext.Message.get -> string +~Microsoft.Extensions.Logging.Testing.WriteContext.Scope.get -> object +~Microsoft.Extensions.Logging.Testing.WriteContext.Scope.set -> void +~Microsoft.Extensions.Logging.Testing.WriteContext.State.get -> object +~Microsoft.Extensions.Logging.Testing.WriteContext.State.set -> void +~Microsoft.Extensions.Logging.Testing.XunitLogger.BeginScope(TState state) -> System.IDisposable +~Microsoft.Extensions.Logging.Testing.XunitLogger.Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception exception, System.Func formatter) -> void +~Microsoft.Extensions.Logging.Testing.XunitLogger.XunitLogger(Xunit.Abstractions.ITestOutputHelper output, string category, Microsoft.Extensions.Logging.LogLevel minLogLevel, System.DateTimeOffset? logStart) -> void +~Microsoft.Extensions.Logging.Testing.XunitLoggerProvider.CreateLogger(string categoryName) -> Microsoft.Extensions.Logging.ILogger +~Microsoft.Extensions.Logging.Testing.XunitLoggerProvider.XunitLoggerProvider(Xunit.Abstractions.ITestOutputHelper output) -> void +~Microsoft.Extensions.Logging.Testing.XunitLoggerProvider.XunitLoggerProvider(Xunit.Abstractions.ITestOutputHelper output, Microsoft.Extensions.Logging.LogLevel minLevel) -> void +~Microsoft.Extensions.Logging.Testing.XunitLoggerProvider.XunitLoggerProvider(Xunit.Abstractions.ITestOutputHelper output, Microsoft.Extensions.Logging.LogLevel minLevel, System.DateTimeOffset? logStart) -> void +~const Microsoft.AspNetCore.Testing.HelixQueues.Centos7Amd64 = "Centos.7.Amd64.Open" -> string +~const Microsoft.AspNetCore.Testing.HelixQueues.Debian8Amd64 = "Debian.8.Amd64.Open" -> string +~const Microsoft.AspNetCore.Testing.HelixQueues.Debian9Amd64 = "Debian.9.Amd64.Open" -> string +~const Microsoft.AspNetCore.Testing.HelixQueues.Fedora27Amd64 = "Fedora.27.Amd64.Open" -> string +~const Microsoft.AspNetCore.Testing.HelixQueues.Fedora28Amd64 = "Fedora.28.Amd64.Open" -> string +~const Microsoft.AspNetCore.Testing.HelixQueues.Redhat7Amd64 = "Redhat.7.Amd64.Open" -> string +~const Microsoft.AspNetCore.Testing.HelixQueues.Ubuntu1604Amd64 = "Ubuntu.1604.Amd64.Open" -> string +~const Microsoft.AspNetCore.Testing.HelixQueues.Ubuntu1810Amd64 = "Ubuntu.1810.Amd64.Open" -> string +~const Microsoft.AspNetCore.Testing.HelixQueues.Windows10Amd64 = "Windows.10.Amd64.ClientRS4.VS2017.Open" -> string +~const Microsoft.AspNetCore.Testing.HelixQueues.macOS1012Amd64 = "OSX.1012.Amd64.Open" -> string +~const Microsoft.AspNetCore.Testing.Tracing.EventSourceTestBase.CollectionName = "Microsoft.AspNetCore.Testing.Tracing.EventSourceTestCollection" -> string +~const Microsoft.AspNetCore.Testing.WindowsVersions.Win10 = "10.0" -> string +~const Microsoft.AspNetCore.Testing.WindowsVersions.Win10_19H1 = "10.0.18362" -> string +~const Microsoft.AspNetCore.Testing.WindowsVersions.Win10_19H2 = "10.0.18363" -> string +~const Microsoft.AspNetCore.Testing.WindowsVersions.Win10_20H1 = "10.0.19033" -> string +~const Microsoft.AspNetCore.Testing.WindowsVersions.Win10_RS4 = "10.0.17134" -> string +~const Microsoft.AspNetCore.Testing.WindowsVersions.Win10_RS5 = "10.0.17763" -> string +~const Microsoft.AspNetCore.Testing.WindowsVersions.Win2008R2 = "6.1" -> string +~const Microsoft.AspNetCore.Testing.WindowsVersions.Win7 = "6.1" -> string +~const Microsoft.AspNetCore.Testing.WindowsVersions.Win8 = "6.2" -> string +~const Microsoft.AspNetCore.Testing.WindowsVersions.Win81 = "6.3" -> string +~override Microsoft.AspNetCore.Testing.AspNetTestAssemblyRunner.AfterTestAssemblyStartingAsync() -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Testing.AspNetTestAssemblyRunner.BeforeTestAssemblyFinishedAsync() -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Testing.AspNetTestAssemblyRunner.RunTestCollectionAsync(Xunit.Sdk.IMessageBus messageBus, Xunit.Abstractions.ITestCollection testCollection, System.Collections.Generic.IEnumerable testCases, System.Threading.CancellationTokenSource cancellationTokenSource) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Testing.AspNetTestCollectionRunner.AfterTestCollectionStartingAsync() -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Testing.AspNetTestCollectionRunner.BeforeTestCollectionFinishedAsync() -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Testing.AspNetTestCollectionRunner.RunTestClassAsync(Xunit.Abstractions.ITestClass testClass, Xunit.Abstractions.IReflectionTypeInfo class, System.Collections.Generic.IEnumerable testCases) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Testing.AspNetTestFramework.CreateExecutor(System.Reflection.AssemblyName assemblyName) -> Xunit.Abstractions.ITestFrameworkExecutor +~override Microsoft.AspNetCore.Testing.AspNetTestFrameworkExecutor.RunTestCases(System.Collections.Generic.IEnumerable testCases, Xunit.Abstractions.IMessageSink executionMessageSink, Xunit.Abstractions.ITestFrameworkExecutionOptions executionOptions) -> void +~override Microsoft.AspNetCore.Testing.LoggedTest.Initialize(Microsoft.AspNetCore.Testing.TestContext context, System.Reflection.MethodInfo methodInfo, object[] testMethodArguments, Xunit.Abstractions.ITestOutputHelper testOutputHelper) -> void +~override Microsoft.AspNetCore.Testing.ReplaceCultureAttribute.After(System.Reflection.MethodInfo methodUnderTest) -> void +~override Microsoft.AspNetCore.Testing.ReplaceCultureAttribute.Before(System.Reflection.MethodInfo methodUnderTest) -> void +~override Microsoft.AspNetCore.Testing.SkippedTestCase.Deserialize(Xunit.Abstractions.IXunitSerializationInfo data) -> void +~override Microsoft.AspNetCore.Testing.SkippedTestCase.GetSkipReason(Xunit.Abstractions.IAttributeInfo factAttribute) -> string +~override Microsoft.AspNetCore.Testing.SkippedTestCase.Serialize(Xunit.Abstractions.IXunitSerializationInfo data) -> void +~override Microsoft.AspNetCore.Testing.Tracing.CollectingEventListener.OnEventSourceCreated(System.Diagnostics.Tracing.EventSource eventSource) -> void +~override Microsoft.AspNetCore.Testing.Tracing.CollectingEventListener.OnEventWritten(System.Diagnostics.Tracing.EventWrittenEventArgs eventData) -> void +~static Microsoft.AspNetCore.Testing.AssemblyTestLog.Create(System.Reflection.Assembly assembly, string baseDirectory) -> Microsoft.AspNetCore.Testing.AssemblyTestLog +~static Microsoft.AspNetCore.Testing.AssemblyTestLog.Create(string assemblyName, string baseDirectory) -> Microsoft.AspNetCore.Testing.AssemblyTestLog +~static Microsoft.AspNetCore.Testing.AssemblyTestLog.ForAssembly(System.Reflection.Assembly assembly) -> Microsoft.AspNetCore.Testing.AssemblyTestLog +~static Microsoft.AspNetCore.Testing.CultureReplacer.DefaultCulture.get -> System.Globalization.CultureInfo +~static Microsoft.AspNetCore.Testing.CultureReplacer.DefaultCultureName.get -> string +~static Microsoft.AspNetCore.Testing.CultureReplacer.DefaultUICultureName.get -> string +~static Microsoft.AspNetCore.Testing.DumpCollector.Collect(System.Diagnostics.Process process, string fileName) -> void +~static Microsoft.AspNetCore.Testing.ExceptionAssert.Throws(System.Action testCode) -> TException +~static Microsoft.AspNetCore.Testing.ExceptionAssert.Throws(System.Action testCode, string exceptionMessage) -> TException +~static Microsoft.AspNetCore.Testing.ExceptionAssert.Throws(System.Func testCode, string exceptionMessage) -> TException +~static Microsoft.AspNetCore.Testing.ExceptionAssert.ThrowsArgument(System.Action testCode, string paramName, string exceptionMessage) -> System.ArgumentException +~static Microsoft.AspNetCore.Testing.ExceptionAssert.ThrowsArgumentAsync(System.Func testCode, string paramName, string exceptionMessage) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Testing.ExceptionAssert.ThrowsArgumentNull(System.Action testCode, string paramName) -> System.ArgumentNullException +~static Microsoft.AspNetCore.Testing.ExceptionAssert.ThrowsArgumentNullOrEmpty(System.Action testCode, string paramName) -> System.ArgumentException +~static Microsoft.AspNetCore.Testing.ExceptionAssert.ThrowsArgumentNullOrEmptyAsync(System.Func testCode, string paramName) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Testing.ExceptionAssert.ThrowsArgumentNullOrEmptyString(System.Action testCode, string paramName) -> System.ArgumentException +~static Microsoft.AspNetCore.Testing.ExceptionAssert.ThrowsArgumentNullOrEmptyStringAsync(System.Func testCode, string paramName) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Testing.ExceptionAssert.ThrowsArgumentOutOfRange(System.Action testCode, string paramName, string exceptionMessage, object actualValue = null) -> System.ArgumentOutOfRangeException +~static Microsoft.AspNetCore.Testing.ExceptionAssert.ThrowsAsync(System.Func testCode, string exceptionMessage) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Testing.HttpClientSlim.GetSocket(System.Uri requestUri) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Testing.HttpClientSlim.GetStringAsync(System.Uri requestUri, bool validateCertificate = true) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Testing.HttpClientSlim.GetStringAsync(string requestUri, bool validateCertificate = true) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Testing.HttpClientSlim.PostAsync(System.Uri requestUri, System.Net.Http.HttpContent content, bool validateCertificate = true) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Testing.HttpClientSlim.PostAsync(string requestUri, System.Net.Http.HttpContent content, bool validateCertificate = true) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Testing.RepeatContext.Current.get -> Microsoft.AspNetCore.Testing.RepeatContext +~static Microsoft.AspNetCore.Testing.SkipOnCIAttribute.GetIfOnAzdo() -> string +~static Microsoft.AspNetCore.Testing.SkipOnCIAttribute.GetTargetHelixQueue() -> string +~static Microsoft.AspNetCore.Testing.SkipOnHelixAttribute.GetTargetHelixQueue() -> string +~static Microsoft.AspNetCore.Testing.TaskExtensions.TimeoutAfter(this System.Threading.Tasks.Task task, System.TimeSpan timeout, string filePath = null, int lineNumber = 0) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Testing.TaskExtensions.TimeoutAfter(this System.Threading.Tasks.Task task, System.TimeSpan timeout, string filePath = null, int lineNumber = 0) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Testing.TestFileOutputContext.GetAssemblyBaseDirectory(System.Reflection.Assembly assembly, string baseDirectory = null) -> string +~static Microsoft.AspNetCore.Testing.TestFileOutputContext.GetOutputDirectory(System.Reflection.Assembly assembly) -> string +~static Microsoft.AspNetCore.Testing.TestFileOutputContext.GetPreserveExistingLogsInOutput(System.Reflection.Assembly assembly) -> bool +~static Microsoft.AspNetCore.Testing.TestFileOutputContext.GetTestClassName(System.Type type) -> string +~static Microsoft.AspNetCore.Testing.TestFileOutputContext.GetTestMethodName(System.Reflection.MethodInfo method, object[] arguments) -> string +~static Microsoft.AspNetCore.Testing.TestFileOutputContext.RemoveIllegalFileChars(string s) -> string +~static Microsoft.AspNetCore.Testing.TestMethodExtensions.EvaluateSkipConditions(this Xunit.Abstractions.ITestMethod testMethod) -> string +~static Microsoft.AspNetCore.Testing.TestPathUtilities.GetSolutionRootDirectory(string solution) -> string +~static Microsoft.AspNetCore.Testing.Tracing.EventAssert.Collection(System.Collections.Generic.IEnumerable events, params Microsoft.AspNetCore.Testing.Tracing.EventAssert[] asserts) -> void +~static Microsoft.AspNetCore.Testing.Tracing.EventAssert.Event(int id, string name, System.Diagnostics.Tracing.EventLevel level) -> Microsoft.AspNetCore.Testing.Tracing.EventAssert +~static Microsoft.Extensions.Logging.Testing.LogValuesAssert.Contains(System.Collections.Generic.IEnumerable> expectedValues, System.Collections.Generic.IEnumerable> actualValues) -> void +~static Microsoft.Extensions.Logging.Testing.LogValuesAssert.Contains(string key, object value, System.Collections.Generic.IEnumerable> actualValues) -> void +~static Microsoft.Extensions.Logging.Testing.TestSink.EnableWithTypeName(Microsoft.Extensions.Logging.Testing.BeginScopeContext context) -> bool +~static Microsoft.Extensions.Logging.Testing.TestSink.EnableWithTypeName(Microsoft.Extensions.Logging.Testing.WriteContext context) -> bool +~static Microsoft.Extensions.Logging.XunitLoggerFactoryExtensions.AddXunit(this Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Xunit.Abstractions.ITestOutputHelper output) -> Microsoft.Extensions.Logging.ILoggerFactory +~static Microsoft.Extensions.Logging.XunitLoggerFactoryExtensions.AddXunit(this Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Xunit.Abstractions.ITestOutputHelper output, Microsoft.Extensions.Logging.LogLevel minLevel) -> Microsoft.Extensions.Logging.ILoggerFactory +~static Microsoft.Extensions.Logging.XunitLoggerFactoryExtensions.AddXunit(this Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Xunit.Abstractions.ITestOutputHelper output, Microsoft.Extensions.Logging.LogLevel minLevel, System.DateTimeOffset? logStart) -> Microsoft.Extensions.Logging.ILoggerFactory +~static Microsoft.Extensions.Logging.XunitLoggerFactoryExtensions.AddXunit(this Microsoft.Extensions.Logging.ILoggingBuilder builder, Xunit.Abstractions.ITestOutputHelper output) -> Microsoft.Extensions.Logging.ILoggingBuilder +~static Microsoft.Extensions.Logging.XunitLoggerFactoryExtensions.AddXunit(this Microsoft.Extensions.Logging.ILoggingBuilder builder, Xunit.Abstractions.ITestOutputHelper output, Microsoft.Extensions.Logging.LogLevel minLevel) -> Microsoft.Extensions.Logging.ILoggingBuilder +~static Microsoft.Extensions.Logging.XunitLoggerFactoryExtensions.AddXunit(this Microsoft.Extensions.Logging.ILoggingBuilder builder, Xunit.Abstractions.ITestOutputHelper output, Microsoft.Extensions.Logging.LogLevel minLevel, System.DateTimeOffset? logStart) -> Microsoft.Extensions.Logging.ILoggingBuilder +~virtual Microsoft.AspNetCore.Testing.LoggedTestBase.Initialize(Microsoft.AspNetCore.Testing.TestContext context, System.Reflection.MethodInfo methodInfo, object[] testMethodArguments, Xunit.Abstractions.ITestOutputHelper testOutputHelper) -> void diff --git a/src/Testing/src/TaskExtensions.cs b/src/Testing/src/TaskExtensions.cs index f99bf7361a..a927b44ee2 100644 --- a/src/Testing/src/TaskExtensions.cs +++ b/src/Testing/src/TaskExtensions.cs @@ -3,6 +3,7 @@ using System; using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; using System.Runtime.CompilerServices; using System.Threading; using System.Threading.Tasks; @@ -11,6 +12,7 @@ namespace Microsoft.AspNetCore.Testing { public static class TaskExtensions { + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static async Task TimeoutAfter(this Task task, TimeSpan timeout, [CallerFilePath] string filePath = null, [CallerLineNumber] int lineNumber = default) @@ -34,6 +36,7 @@ namespace Microsoft.AspNetCore.Testing } } + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static async Task TimeoutAfter(this Task task, TimeSpan timeout, [CallerFilePath] string filePath = null, [CallerLineNumber] int lineNumber = default) diff --git a/src/WebEncoders/src/PublicAPI.Shipped.txt b/src/WebEncoders/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/WebEncoders/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/WebEncoders/src/PublicAPI.Unshipped.txt b/src/WebEncoders/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..782ac82396 --- /dev/null +++ b/src/WebEncoders/src/PublicAPI.Unshipped.txt @@ -0,0 +1,35 @@ +#nullable enable +Microsoft.Extensions.DependencyInjection.EncoderServiceCollectionExtensions +Microsoft.Extensions.WebEncoders.Testing.HtmlTestEncoder +Microsoft.Extensions.WebEncoders.Testing.HtmlTestEncoder.HtmlTestEncoder() -> void +Microsoft.Extensions.WebEncoders.Testing.JavaScriptTestEncoder +Microsoft.Extensions.WebEncoders.Testing.JavaScriptTestEncoder.JavaScriptTestEncoder() -> void +Microsoft.Extensions.WebEncoders.Testing.UrlTestEncoder +Microsoft.Extensions.WebEncoders.Testing.UrlTestEncoder.UrlTestEncoder() -> void +Microsoft.Extensions.WebEncoders.WebEncoderOptions +Microsoft.Extensions.WebEncoders.WebEncoderOptions.TextEncoderSettings.get -> System.Text.Encodings.Web.TextEncoderSettings? +Microsoft.Extensions.WebEncoders.WebEncoderOptions.TextEncoderSettings.set -> void +Microsoft.Extensions.WebEncoders.WebEncoderOptions.WebEncoderOptions() -> void +override Microsoft.Extensions.WebEncoders.Testing.HtmlTestEncoder.Encode(System.IO.TextWriter! output, char[]! value, int startIndex, int characterCount) -> void +override Microsoft.Extensions.WebEncoders.Testing.HtmlTestEncoder.Encode(System.IO.TextWriter! output, string! value, int startIndex, int characterCount) -> void +override Microsoft.Extensions.WebEncoders.Testing.HtmlTestEncoder.Encode(string! value) -> string! +override Microsoft.Extensions.WebEncoders.Testing.HtmlTestEncoder.FindFirstCharacterToEncode(char* text, int textLength) -> int +override Microsoft.Extensions.WebEncoders.Testing.HtmlTestEncoder.MaxOutputCharactersPerInputCharacter.get -> int +override Microsoft.Extensions.WebEncoders.Testing.HtmlTestEncoder.TryEncodeUnicodeScalar(int unicodeScalar, char* buffer, int bufferLength, out int numberOfCharactersWritten) -> bool +override Microsoft.Extensions.WebEncoders.Testing.HtmlTestEncoder.WillEncode(int unicodeScalar) -> bool +override Microsoft.Extensions.WebEncoders.Testing.JavaScriptTestEncoder.Encode(System.IO.TextWriter! output, char[]! value, int startIndex, int characterCount) -> void +override Microsoft.Extensions.WebEncoders.Testing.JavaScriptTestEncoder.Encode(System.IO.TextWriter! output, string! value, int startIndex, int characterCount) -> void +override Microsoft.Extensions.WebEncoders.Testing.JavaScriptTestEncoder.Encode(string! value) -> string! +override Microsoft.Extensions.WebEncoders.Testing.JavaScriptTestEncoder.FindFirstCharacterToEncode(char* text, int textLength) -> int +override Microsoft.Extensions.WebEncoders.Testing.JavaScriptTestEncoder.MaxOutputCharactersPerInputCharacter.get -> int +override Microsoft.Extensions.WebEncoders.Testing.JavaScriptTestEncoder.TryEncodeUnicodeScalar(int unicodeScalar, char* buffer, int bufferLength, out int numberOfCharactersWritten) -> bool +override Microsoft.Extensions.WebEncoders.Testing.JavaScriptTestEncoder.WillEncode(int unicodeScalar) -> bool +override Microsoft.Extensions.WebEncoders.Testing.UrlTestEncoder.Encode(System.IO.TextWriter! output, char[]! value, int startIndex, int characterCount) -> void +override Microsoft.Extensions.WebEncoders.Testing.UrlTestEncoder.Encode(System.IO.TextWriter! output, string! value, int startIndex, int characterCount) -> void +override Microsoft.Extensions.WebEncoders.Testing.UrlTestEncoder.Encode(string! value) -> string! +override Microsoft.Extensions.WebEncoders.Testing.UrlTestEncoder.FindFirstCharacterToEncode(char* text, int textLength) -> int +override Microsoft.Extensions.WebEncoders.Testing.UrlTestEncoder.MaxOutputCharactersPerInputCharacter.get -> int +override Microsoft.Extensions.WebEncoders.Testing.UrlTestEncoder.TryEncodeUnicodeScalar(int unicodeScalar, char* buffer, int bufferLength, out int numberOfCharactersWritten) -> bool +override Microsoft.Extensions.WebEncoders.Testing.UrlTestEncoder.WillEncode(int unicodeScalar) -> bool +static Microsoft.Extensions.DependencyInjection.EncoderServiceCollectionExtensions.AddWebEncoders(this Microsoft.Extensions.DependencyInjection.IServiceCollection! services) -> Microsoft.Extensions.DependencyInjection.IServiceCollection! +static Microsoft.Extensions.DependencyInjection.EncoderServiceCollectionExtensions.AddWebEncoders(this Microsoft.Extensions.DependencyInjection.IServiceCollection! services, System.Action! setupAction) -> Microsoft.Extensions.DependencyInjection.IServiceCollection! From 09160a779f45643a2e0cc66db2398ece5d02362b Mon Sep 17 00:00:00 2001 From: Pranav K Date: Thu, 10 Sep 2020 11:54:00 -0700 Subject: [PATCH 074/187] Use JsonSerializerDefaults instead of specifying individual options (#25747) This lets MVC use the defaults as specified by System.Text.Json. Right now, these defaults are identical to the two properties that were removed. However this allows MVC to pick up new S.T.J defaults in 6.0 including when users attempt to use a 6.0 versioned package with 5.0 --- src/Mvc/Mvc.Core/src/JsonOptions.cs | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/Mvc/Mvc.Core/src/JsonOptions.cs b/src/Mvc/Mvc.Core/src/JsonOptions.cs index cdc5168a07..dfce0ea4d5 100644 --- a/src/Mvc/Mvc.Core/src/JsonOptions.cs +++ b/src/Mvc/Mvc.Core/src/JsonOptions.cs @@ -12,20 +12,12 @@ namespace Microsoft.AspNetCore.Mvc /// Gets the used by and /// . /// - public JsonSerializerOptions JsonSerializerOptions { get; } = new JsonSerializerOptions + public JsonSerializerOptions JsonSerializerOptions { get; } = new JsonSerializerOptions(JsonSerializerDefaults.Web) { // Limit the object graph we'll consume to a fixed depth. This prevents stackoverflow exceptions // from deserialization errors that might occur from deeply nested objects. // This value is the same for model binding and Json.Net's serialization. MaxDepth = MvcOptions.DefaultMaxModelBindingRecursionDepth, - - // We're using case-insensitive because there's a TON of code that there that does uses JSON.NET's default - // settings (preserve case) - including the WebAPIClient. This worked when we were using JSON.NET + camel casing - // because JSON.NET is case-insensitive by default. - PropertyNameCaseInsensitive = true, - - // Use camel casing for properties - PropertyNamingPolicy = JsonNamingPolicy.CamelCase, }; } } From 0811b3cb75a6f6182a2403a58215782651382a4d Mon Sep 17 00:00:00 2001 From: Pranav K Date: Thu, 10 Sep 2020 11:55:37 -0700 Subject: [PATCH 075/187] Point to the correct directory for SDK test assets (#25734) This ends up building SDK's test assets as part of a regular build which ends up failing in a clean build. --- eng/Build.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Build.props b/eng/Build.props index 497ba8f4f8..1333471df2 100644 --- a/eng/Build.props +++ b/eng/Build.props @@ -25,7 +25,7 @@ $(RepoRoot)src\Installers\**\*.*proj; $(RepoRoot)src\SignalR\clients\ts\**\node_modules\**\*.*proj; $(RepoRoot)src\Components\Web.JS\node_modules\**\*.*proj; - $(RepoRoot)src\Components\WebAssembly\Build\testassets\**\*.csproj; + $(RepoRoot)src\Components\WebAssembly\Sdk\testassets\**\*.csproj; $(RepoRoot)src\ProjectTemplates\Web.ProjectTemplates\content\**\*.csproj; $(RepoRoot)src\ProjectTemplates\Web.ProjectTemplates\content\**\*.fsproj; $(RepoRoot)src\ProjectTemplates\Web.Spa.ProjectTemplates\content\**\*.csproj; From 3692e122ffdf282001da9e2b5f0395688832071a Mon Sep 17 00:00:00 2001 From: Kevin Pilch Date: Thu, 10 Sep 2020 13:27:09 -0700 Subject: [PATCH 076/187] Add Public API baselines for Razor (#25637) --- src/ObjectPool/src/PublicAPI.Shipped.txt | 1 + src/ObjectPool/src/PublicAPI.Unshipped.txt | 50 + .../src/PublicAPI.Shipped.txt | 1 + .../src/PublicAPI.Unshipped.txt | 81 + .../src/PublicAPI.Shipped.txt | 1 + .../src/PublicAPI.Unshipped.txt | 1621 +++++++++++++++++ .../src/PublicAPI.Shipped.txt | 1 + .../src/PublicAPI.Unshipped.txt | 26 + .../Razor.Runtime/src/PublicAPI.Shipped.txt | 1 + .../Razor.Runtime/src/PublicAPI.Unshipped.txt | 215 +++ src/Razor/Razor/src/PublicAPI.Shipped.txt | 1 + src/Razor/Razor/src/PublicAPI.Unshipped.txt | 166 ++ 12 files changed, 2165 insertions(+) create mode 100644 src/ObjectPool/src/PublicAPI.Shipped.txt create mode 100644 src/ObjectPool/src/PublicAPI.Unshipped.txt create mode 100644 src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/src/PublicAPI.Shipped.txt create mode 100644 src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/src/PublicAPI.Unshipped.txt create mode 100644 src/Razor/Microsoft.AspNetCore.Razor.Language/src/PublicAPI.Shipped.txt create mode 100644 src/Razor/Microsoft.AspNetCore.Razor.Language/src/PublicAPI.Unshipped.txt create mode 100644 src/Razor/Microsoft.CodeAnalysis.Razor/src/PublicAPI.Shipped.txt create mode 100644 src/Razor/Microsoft.CodeAnalysis.Razor/src/PublicAPI.Unshipped.txt create mode 100644 src/Razor/Razor.Runtime/src/PublicAPI.Shipped.txt create mode 100644 src/Razor/Razor.Runtime/src/PublicAPI.Unshipped.txt create mode 100644 src/Razor/Razor/src/PublicAPI.Shipped.txt create mode 100644 src/Razor/Razor/src/PublicAPI.Unshipped.txt diff --git a/src/ObjectPool/src/PublicAPI.Shipped.txt b/src/ObjectPool/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/ObjectPool/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/ObjectPool/src/PublicAPI.Unshipped.txt b/src/ObjectPool/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..ad0bc4997b --- /dev/null +++ b/src/ObjectPool/src/PublicAPI.Unshipped.txt @@ -0,0 +1,50 @@ +#nullable enable +Microsoft.Extensions.ObjectPool.DefaultObjectPool +Microsoft.Extensions.ObjectPool.DefaultObjectPool.DefaultObjectPool(Microsoft.Extensions.ObjectPool.IPooledObjectPolicy! policy) -> void +Microsoft.Extensions.ObjectPool.DefaultObjectPool.DefaultObjectPool(Microsoft.Extensions.ObjectPool.IPooledObjectPolicy! policy, int maximumRetained) -> void +Microsoft.Extensions.ObjectPool.DefaultObjectPoolProvider +Microsoft.Extensions.ObjectPool.DefaultObjectPoolProvider.DefaultObjectPoolProvider() -> void +Microsoft.Extensions.ObjectPool.DefaultObjectPoolProvider.MaximumRetained.get -> int +Microsoft.Extensions.ObjectPool.DefaultObjectPoolProvider.MaximumRetained.set -> void +Microsoft.Extensions.ObjectPool.DefaultPooledObjectPolicy +Microsoft.Extensions.ObjectPool.DefaultPooledObjectPolicy.DefaultPooledObjectPolicy() -> void +Microsoft.Extensions.ObjectPool.IPooledObjectPolicy +Microsoft.Extensions.ObjectPool.IPooledObjectPolicy.Create() -> T +Microsoft.Extensions.ObjectPool.IPooledObjectPolicy.Return(T obj) -> bool +Microsoft.Extensions.ObjectPool.LeakTrackingObjectPool +Microsoft.Extensions.ObjectPool.LeakTrackingObjectPool.LeakTrackingObjectPool(Microsoft.Extensions.ObjectPool.ObjectPool! inner) -> void +Microsoft.Extensions.ObjectPool.LeakTrackingObjectPoolProvider +Microsoft.Extensions.ObjectPool.LeakTrackingObjectPoolProvider.LeakTrackingObjectPoolProvider(Microsoft.Extensions.ObjectPool.ObjectPoolProvider! inner) -> void +Microsoft.Extensions.ObjectPool.ObjectPool +Microsoft.Extensions.ObjectPool.ObjectPool +Microsoft.Extensions.ObjectPool.ObjectPool.ObjectPool() -> void +Microsoft.Extensions.ObjectPool.ObjectPoolProvider +Microsoft.Extensions.ObjectPool.ObjectPoolProvider.Create() -> Microsoft.Extensions.ObjectPool.ObjectPool! +Microsoft.Extensions.ObjectPool.ObjectPoolProvider.ObjectPoolProvider() -> void +Microsoft.Extensions.ObjectPool.ObjectPoolProviderExtensions +Microsoft.Extensions.ObjectPool.PooledObjectPolicy +Microsoft.Extensions.ObjectPool.PooledObjectPolicy.PooledObjectPolicy() -> void +Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy +Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.InitialCapacity.get -> int +Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.InitialCapacity.set -> void +Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.MaximumRetainedCapacity.get -> int +Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.MaximumRetainedCapacity.set -> void +Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.StringBuilderPooledObjectPolicy() -> void +abstract Microsoft.Extensions.ObjectPool.ObjectPool.Get() -> T! +abstract Microsoft.Extensions.ObjectPool.ObjectPool.Return(T! obj) -> void +abstract Microsoft.Extensions.ObjectPool.ObjectPoolProvider.Create(Microsoft.Extensions.ObjectPool.IPooledObjectPolicy! policy) -> Microsoft.Extensions.ObjectPool.ObjectPool! +abstract Microsoft.Extensions.ObjectPool.PooledObjectPolicy.Create() -> T +abstract Microsoft.Extensions.ObjectPool.PooledObjectPolicy.Return(T obj) -> bool +override Microsoft.Extensions.ObjectPool.DefaultObjectPool.Get() -> T! +override Microsoft.Extensions.ObjectPool.DefaultObjectPool.Return(T! obj) -> void +override Microsoft.Extensions.ObjectPool.DefaultObjectPoolProvider.Create(Microsoft.Extensions.ObjectPool.IPooledObjectPolicy! policy) -> Microsoft.Extensions.ObjectPool.ObjectPool! +override Microsoft.Extensions.ObjectPool.DefaultPooledObjectPolicy.Create() -> T! +override Microsoft.Extensions.ObjectPool.DefaultPooledObjectPolicy.Return(T! obj) -> bool +override Microsoft.Extensions.ObjectPool.LeakTrackingObjectPool.Get() -> T! +override Microsoft.Extensions.ObjectPool.LeakTrackingObjectPool.Return(T! obj) -> void +override Microsoft.Extensions.ObjectPool.LeakTrackingObjectPoolProvider.Create(Microsoft.Extensions.ObjectPool.IPooledObjectPolicy! policy) -> Microsoft.Extensions.ObjectPool.ObjectPool! +override Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Create() -> System.Text.StringBuilder! +override Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder! obj) -> bool +static Microsoft.Extensions.ObjectPool.ObjectPool.Create(Microsoft.Extensions.ObjectPool.IPooledObjectPolicy? policy = null) -> Microsoft.Extensions.ObjectPool.ObjectPool! +static Microsoft.Extensions.ObjectPool.ObjectPoolProviderExtensions.CreateStringBuilderPool(this Microsoft.Extensions.ObjectPool.ObjectPoolProvider! provider) -> Microsoft.Extensions.ObjectPool.ObjectPool! +static Microsoft.Extensions.ObjectPool.ObjectPoolProviderExtensions.CreateStringBuilderPool(this Microsoft.Extensions.ObjectPool.ObjectPoolProvider! provider, int initialCapacity, int maximumRetainedCapacity) -> Microsoft.Extensions.ObjectPool.ObjectPool! diff --git a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/src/PublicAPI.Shipped.txt b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/src/PublicAPI.Unshipped.txt b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..163cddf342 --- /dev/null +++ b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/src/PublicAPI.Unshipped.txt @@ -0,0 +1,81 @@ +#nullable enable +Microsoft.AspNetCore.Mvc.Razor.Extensions.IInjectTargetExtension +Microsoft.AspNetCore.Mvc.Razor.Extensions.IViewComponentTagHelperTargetExtension +Microsoft.AspNetCore.Mvc.Razor.Extensions.InjectDirective +Microsoft.AspNetCore.Mvc.Razor.Extensions.InjectIntermediateNode +Microsoft.AspNetCore.Mvc.Razor.Extensions.InjectIntermediateNode.InjectIntermediateNode() -> void +Microsoft.AspNetCore.Mvc.Razor.Extensions.InjectTargetExtension +Microsoft.AspNetCore.Mvc.Razor.Extensions.InjectTargetExtension.InjectTargetExtension() -> void +Microsoft.AspNetCore.Mvc.Razor.Extensions.ModelDirective +Microsoft.AspNetCore.Mvc.Razor.Extensions.ModelExpressionPass +Microsoft.AspNetCore.Mvc.Razor.Extensions.ModelExpressionPass.ModelExpressionPass() -> void +Microsoft.AspNetCore.Mvc.Razor.Extensions.MvcViewDocumentClassifierPass +Microsoft.AspNetCore.Mvc.Razor.Extensions.MvcViewDocumentClassifierPass.MvcViewDocumentClassifierPass() -> void +Microsoft.AspNetCore.Mvc.Razor.Extensions.PageDirective +Microsoft.AspNetCore.Mvc.Razor.Extensions.PagesPropertyInjectionPass +Microsoft.AspNetCore.Mvc.Razor.Extensions.PagesPropertyInjectionPass.PagesPropertyInjectionPass() -> void +Microsoft.AspNetCore.Mvc.Razor.Extensions.RazorExtensions +Microsoft.AspNetCore.Mvc.Razor.Extensions.RazorPageDocumentClassifierPass +Microsoft.AspNetCore.Mvc.Razor.Extensions.RazorPageDocumentClassifierPass.RazorPageDocumentClassifierPass() -> void +Microsoft.AspNetCore.Mvc.Razor.Extensions.TagHelperDescriptorExtensions +Microsoft.AspNetCore.Mvc.Razor.Extensions.ViewComponentTagHelperConventions +Microsoft.AspNetCore.Mvc.Razor.Extensions.ViewComponentTagHelperDescriptorProvider +Microsoft.AspNetCore.Mvc.Razor.Extensions.ViewComponentTagHelperDescriptorProvider.Order.get -> int +Microsoft.AspNetCore.Mvc.Razor.Extensions.ViewComponentTagHelperDescriptorProvider.Order.set -> void +Microsoft.AspNetCore.Mvc.Razor.Extensions.ViewComponentTagHelperDescriptorProvider.ViewComponentTagHelperDescriptorProvider() -> void +Microsoft.AspNetCore.Mvc.Razor.Extensions.ViewComponentTagHelperIntermediateNode +Microsoft.AspNetCore.Mvc.Razor.Extensions.ViewComponentTagHelperIntermediateNode.ViewComponentTagHelperIntermediateNode() -> void +Microsoft.AspNetCore.Mvc.Razor.Extensions.ViewComponentTagHelperMetadata +Microsoft.AspNetCore.Mvc.Razor.Extensions.ViewComponentTagHelperPass +Microsoft.AspNetCore.Mvc.Razor.Extensions.ViewComponentTagHelperPass.ViewComponentTagHelperPass() -> void +override Microsoft.AspNetCore.Mvc.Razor.Extensions.ViewComponentTagHelperPass.Order.get -> int +~Microsoft.AspNetCore.Mvc.Razor.Extensions.IInjectTargetExtension.WriteInjectProperty(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Mvc.Razor.Extensions.InjectIntermediateNode node) -> void +~Microsoft.AspNetCore.Mvc.Razor.Extensions.IViewComponentTagHelperTargetExtension.WriteViewComponentTagHelper(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Mvc.Razor.Extensions.ViewComponentTagHelperIntermediateNode node) -> void +~Microsoft.AspNetCore.Mvc.Razor.Extensions.InjectIntermediateNode.MemberName.get -> string +~Microsoft.AspNetCore.Mvc.Razor.Extensions.InjectIntermediateNode.MemberName.set -> void +~Microsoft.AspNetCore.Mvc.Razor.Extensions.InjectIntermediateNode.TypeName.get -> string +~Microsoft.AspNetCore.Mvc.Razor.Extensions.InjectIntermediateNode.TypeName.set -> void +~Microsoft.AspNetCore.Mvc.Razor.Extensions.InjectTargetExtension.WriteInjectProperty(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Mvc.Razor.Extensions.InjectIntermediateNode node) -> void +~Microsoft.AspNetCore.Mvc.Razor.Extensions.PageDirective.DirectiveNode.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode +~Microsoft.AspNetCore.Mvc.Razor.Extensions.PageDirective.RouteTemplate.get -> string +~Microsoft.AspNetCore.Mvc.Razor.Extensions.ViewComponentTagHelperDescriptorProvider.Execute(Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorProviderContext context) -> void +~Microsoft.AspNetCore.Mvc.Razor.Extensions.ViewComponentTagHelperIntermediateNode.ClassName.get -> string +~Microsoft.AspNetCore.Mvc.Razor.Extensions.ViewComponentTagHelperIntermediateNode.ClassName.set -> void +~Microsoft.AspNetCore.Mvc.Razor.Extensions.ViewComponentTagHelperIntermediateNode.TagHelper.get -> Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor +~Microsoft.AspNetCore.Mvc.Razor.Extensions.ViewComponentTagHelperIntermediateNode.TagHelper.set -> void +~override Microsoft.AspNetCore.Mvc.Razor.Extensions.InjectIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Mvc.Razor.Extensions.InjectIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Mvc.Razor.Extensions.InjectIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Mvc.Razor.Extensions.InjectIntermediateNode.WriteNode(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTarget target, Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context) -> void +~override Microsoft.AspNetCore.Mvc.Razor.Extensions.ModelExpressionPass.ExecuteCore(Microsoft.AspNetCore.Razor.Language.RazorCodeDocument codeDocument, Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode documentNode) -> void +~override Microsoft.AspNetCore.Mvc.Razor.Extensions.MvcViewDocumentClassifierPass.DocumentKind.get -> string +~override Microsoft.AspNetCore.Mvc.Razor.Extensions.MvcViewDocumentClassifierPass.IsMatch(Microsoft.AspNetCore.Razor.Language.RazorCodeDocument codeDocument, Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode documentNode) -> bool +~override Microsoft.AspNetCore.Mvc.Razor.Extensions.MvcViewDocumentClassifierPass.OnDocumentStructureCreated(Microsoft.AspNetCore.Razor.Language.RazorCodeDocument codeDocument, Microsoft.AspNetCore.Razor.Language.Intermediate.NamespaceDeclarationIntermediateNode namespace, Microsoft.AspNetCore.Razor.Language.Intermediate.ClassDeclarationIntermediateNode class, Microsoft.AspNetCore.Razor.Language.Intermediate.MethodDeclarationIntermediateNode method) -> void +~override Microsoft.AspNetCore.Mvc.Razor.Extensions.PagesPropertyInjectionPass.ExecuteCore(Microsoft.AspNetCore.Razor.Language.RazorCodeDocument codeDocument, Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode documentNode) -> void +~override Microsoft.AspNetCore.Mvc.Razor.Extensions.RazorPageDocumentClassifierPass.DocumentKind.get -> string +~override Microsoft.AspNetCore.Mvc.Razor.Extensions.RazorPageDocumentClassifierPass.IsMatch(Microsoft.AspNetCore.Razor.Language.RazorCodeDocument codeDocument, Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode documentNode) -> bool +~override Microsoft.AspNetCore.Mvc.Razor.Extensions.RazorPageDocumentClassifierPass.OnDocumentStructureCreated(Microsoft.AspNetCore.Razor.Language.RazorCodeDocument codeDocument, Microsoft.AspNetCore.Razor.Language.Intermediate.NamespaceDeclarationIntermediateNode namespace, Microsoft.AspNetCore.Razor.Language.Intermediate.ClassDeclarationIntermediateNode class, Microsoft.AspNetCore.Razor.Language.Intermediate.MethodDeclarationIntermediateNode method) -> void +~override Microsoft.AspNetCore.Mvc.Razor.Extensions.ViewComponentTagHelperIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Mvc.Razor.Extensions.ViewComponentTagHelperIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Mvc.Razor.Extensions.ViewComponentTagHelperIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Mvc.Razor.Extensions.ViewComponentTagHelperIntermediateNode.WriteNode(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTarget target, Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context) -> void +~override Microsoft.AspNetCore.Mvc.Razor.Extensions.ViewComponentTagHelperPass.ExecuteCore(Microsoft.AspNetCore.Razor.Language.RazorCodeDocument codeDocument, Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode documentNode) -> void +~static Microsoft.AspNetCore.Mvc.Razor.Extensions.InjectDirective.Register(Microsoft.AspNetCore.Razor.Language.IRazorEngineBuilder builder) -> Microsoft.AspNetCore.Razor.Language.IRazorEngineBuilder +~static Microsoft.AspNetCore.Mvc.Razor.Extensions.InjectDirective.Register(Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder builder) -> Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder +~static Microsoft.AspNetCore.Mvc.Razor.Extensions.ModelDirective.GetModelType(Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode document) -> string +~static Microsoft.AspNetCore.Mvc.Razor.Extensions.ModelDirective.Register(Microsoft.AspNetCore.Razor.Language.IRazorEngineBuilder builder) -> Microsoft.AspNetCore.Razor.Language.IRazorEngineBuilder +~static Microsoft.AspNetCore.Mvc.Razor.Extensions.ModelDirective.Register(Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder builder) -> Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder +~static Microsoft.AspNetCore.Mvc.Razor.Extensions.PageDirective.Register(Microsoft.AspNetCore.Razor.Language.IRazorEngineBuilder builder) -> Microsoft.AspNetCore.Razor.Language.IRazorEngineBuilder +~static Microsoft.AspNetCore.Mvc.Razor.Extensions.PageDirective.Register(Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder builder) -> Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder +~static Microsoft.AspNetCore.Mvc.Razor.Extensions.PageDirective.TryGetPageDirective(Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode documentNode, out Microsoft.AspNetCore.Mvc.Razor.Extensions.PageDirective pageDirective) -> bool +~static Microsoft.AspNetCore.Mvc.Razor.Extensions.RazorExtensions.Register(Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder builder) -> void +~static Microsoft.AspNetCore.Mvc.Razor.Extensions.TagHelperDescriptorExtensions.GetViewComponentName(this Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor tagHelper) -> string +~static Microsoft.AspNetCore.Mvc.Razor.Extensions.TagHelperDescriptorExtensions.IsViewComponentKind(this Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor tagHelper) -> bool +~static readonly Microsoft.AspNetCore.Mvc.Razor.Extensions.InjectDirective.Directive -> Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor +~static readonly Microsoft.AspNetCore.Mvc.Razor.Extensions.ModelDirective.Directive -> Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor +~static readonly Microsoft.AspNetCore.Mvc.Razor.Extensions.MvcViewDocumentClassifierPass.MvcViewDocumentKind -> string +~static readonly Microsoft.AspNetCore.Mvc.Razor.Extensions.PageDirective.Directive -> Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor +~static readonly Microsoft.AspNetCore.Mvc.Razor.Extensions.RazorPageDocumentClassifierPass.RazorPageDocumentKind -> string +~static readonly Microsoft.AspNetCore.Mvc.Razor.Extensions.RazorPageDocumentClassifierPass.RouteTemplateKey -> string +~static readonly Microsoft.AspNetCore.Mvc.Razor.Extensions.ViewComponentTagHelperConventions.Kind -> string +~static readonly Microsoft.AspNetCore.Mvc.Razor.Extensions.ViewComponentTagHelperMetadata.Name -> string diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/src/PublicAPI.Shipped.txt b/src/Razor/Microsoft.AspNetCore.Razor.Language/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/src/PublicAPI.Unshipped.txt b/src/Razor/Microsoft.AspNetCore.Razor.Language/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..585d72ed4f --- /dev/null +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/src/PublicAPI.Unshipped.txt @@ -0,0 +1,1621 @@ +#nullable enable +Microsoft.AspNetCore.Razor.Language.AllowedChildTagDescriptor +Microsoft.AspNetCore.Razor.Language.AllowedChildTagDescriptor.AllowedChildTagDescriptor() -> void +Microsoft.AspNetCore.Razor.Language.AllowedChildTagDescriptor.HasErrors.get -> bool +Microsoft.AspNetCore.Razor.Language.AllowedChildTagDescriptorBuilder +Microsoft.AspNetCore.Razor.Language.AllowedChildTagDescriptorBuilder.AllowedChildTagDescriptorBuilder() -> void +Microsoft.AspNetCore.Razor.Language.AssemblyExtension +Microsoft.AspNetCore.Razor.Language.AttributeStructure +Microsoft.AspNetCore.Razor.Language.AttributeStructure.DoubleQuotes = 0 -> Microsoft.AspNetCore.Razor.Language.AttributeStructure +Microsoft.AspNetCore.Razor.Language.AttributeStructure.Minimized = 3 -> Microsoft.AspNetCore.Razor.Language.AttributeStructure +Microsoft.AspNetCore.Razor.Language.AttributeStructure.NoQuotes = 2 -> Microsoft.AspNetCore.Razor.Language.AttributeStructure +Microsoft.AspNetCore.Razor.Language.AttributeStructure.SingleQuotes = 1 -> Microsoft.AspNetCore.Razor.Language.AttributeStructure +Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor +Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.CaseSensitive.get -> bool +Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.CaseSensitive.set -> void +Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.HasErrors.get -> bool +Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.HasIndexer.get -> bool +Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.HasIndexer.set -> void +Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.IsBooleanProperty.get -> bool +Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.IsBooleanProperty.set -> void +Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.IsEnum.get -> bool +Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.IsEnum.set -> void +Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.IsIndexerBooleanProperty.get -> bool +Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.IsIndexerBooleanProperty.set -> void +Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.IsIndexerStringProperty.get -> bool +Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.IsIndexerStringProperty.set -> void +Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.IsStringProperty.get -> bool +Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.IsStringProperty.set -> void +Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilder +Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilder.BoundAttributeDescriptorBuilder() -> void +Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilderExtensions +Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorExtensions +Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor +Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor.CaseSensitive.get -> bool +Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor.CaseSensitive.set -> void +Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor.HasErrors.get -> bool +Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor.IsBooleanProperty.get -> bool +Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor.IsBooleanProperty.set -> void +Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor.IsEnum.get -> bool +Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor.IsEnum.set -> void +Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor.IsStringProperty.get -> bool +Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor.IsStringProperty.set -> void +Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptorBuilder +Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptorBuilder.BoundAttributeParameterDescriptorBuilder() -> void +Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext +Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext.CodeRenderingContext() -> void +Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTarget +Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTarget.CodeTarget() -> void +Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTargetBuilder +Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTargetBuilder.CodeTargetBuilder() -> void +Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeWriter +Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeWriter.CodeWriter() -> void +Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeWriter.CurrentIndent.get -> int +Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeWriter.CurrentIndent.set -> void +Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeWriter.Length.get -> int +Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeWriter.Location.get -> Microsoft.AspNetCore.Razor.Language.SourceLocation +Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeWriter.this[int index].get -> char +Microsoft.AspNetCore.Razor.Language.CodeGeneration.DesignTimeNodeWriter +Microsoft.AspNetCore.Razor.Language.CodeGeneration.DesignTimeNodeWriter.DesignTimeNodeWriter() -> void +Microsoft.AspNetCore.Razor.Language.CodeGeneration.DocumentWriter +Microsoft.AspNetCore.Razor.Language.CodeGeneration.DocumentWriter.DocumentWriter() -> void +Microsoft.AspNetCore.Razor.Language.CodeGeneration.ICodeTargetExtension +Microsoft.AspNetCore.Razor.Language.CodeGeneration.IntermediateNodeWriter +Microsoft.AspNetCore.Razor.Language.CodeGeneration.IntermediateNodeWriter.IntermediateNodeWriter() -> void +Microsoft.AspNetCore.Razor.Language.CodeGeneration.LinePragma +Microsoft.AspNetCore.Razor.Language.CodeGeneration.LinePragma.EndLineIndex.get -> int +Microsoft.AspNetCore.Razor.Language.CodeGeneration.LinePragma.Equals(Microsoft.AspNetCore.Razor.Language.CodeGeneration.LinePragma other) -> bool +Microsoft.AspNetCore.Razor.Language.CodeGeneration.LinePragma.LineCount.get -> int +Microsoft.AspNetCore.Razor.Language.CodeGeneration.LinePragma.StartLineIndex.get -> int +Microsoft.AspNetCore.Razor.Language.CodeGeneration.RuntimeNodeWriter +Microsoft.AspNetCore.Razor.Language.CodeGeneration.RuntimeNodeWriter.RuntimeNodeWriter() -> void +Microsoft.AspNetCore.Razor.Language.Components.ComponentCodeDirective +Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor +Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor.DirectiveDescriptor() -> void +Microsoft.AspNetCore.Razor.Language.DirectiveDescriptorBuilderExtensions +Microsoft.AspNetCore.Razor.Language.DirectiveKind +Microsoft.AspNetCore.Razor.Language.DirectiveKind.CodeBlock = 2 -> Microsoft.AspNetCore.Razor.Language.DirectiveKind +Microsoft.AspNetCore.Razor.Language.DirectiveKind.RazorBlock = 1 -> Microsoft.AspNetCore.Razor.Language.DirectiveKind +Microsoft.AspNetCore.Razor.Language.DirectiveKind.SingleLine = 0 -> Microsoft.AspNetCore.Razor.Language.DirectiveKind +Microsoft.AspNetCore.Razor.Language.DirectiveTokenDescriptor +Microsoft.AspNetCore.Razor.Language.DirectiveTokenDescriptor.DirectiveTokenDescriptor() -> void +Microsoft.AspNetCore.Razor.Language.DirectiveTokenKind +Microsoft.AspNetCore.Razor.Language.DirectiveTokenKind.Attribute = 4 -> Microsoft.AspNetCore.Razor.Language.DirectiveTokenKind +Microsoft.AspNetCore.Razor.Language.DirectiveTokenKind.Boolean = 5 -> Microsoft.AspNetCore.Razor.Language.DirectiveTokenKind +Microsoft.AspNetCore.Razor.Language.DirectiveTokenKind.Member = 2 -> Microsoft.AspNetCore.Razor.Language.DirectiveTokenKind +Microsoft.AspNetCore.Razor.Language.DirectiveTokenKind.Namespace = 1 -> Microsoft.AspNetCore.Razor.Language.DirectiveTokenKind +Microsoft.AspNetCore.Razor.Language.DirectiveTokenKind.String = 3 -> Microsoft.AspNetCore.Razor.Language.DirectiveTokenKind +Microsoft.AspNetCore.Razor.Language.DirectiveTokenKind.Type = 0 -> Microsoft.AspNetCore.Razor.Language.DirectiveTokenKind +Microsoft.AspNetCore.Razor.Language.DirectiveUsage +Microsoft.AspNetCore.Razor.Language.DirectiveUsage.FileScopedMultipleOccurring = 2 -> Microsoft.AspNetCore.Razor.Language.DirectiveUsage +Microsoft.AspNetCore.Razor.Language.DirectiveUsage.FileScopedSinglyOccurring = 1 -> Microsoft.AspNetCore.Razor.Language.DirectiveUsage +Microsoft.AspNetCore.Razor.Language.DirectiveUsage.Unrestricted = 0 -> Microsoft.AspNetCore.Razor.Language.DirectiveUsage +Microsoft.AspNetCore.Razor.Language.DocumentClassifierPassBase +Microsoft.AspNetCore.Razor.Language.DocumentClassifierPassBase.DocumentClassifierPassBase() -> void +Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperBodyIntermediateNode +Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperBodyIntermediateNode.DefaultTagHelperBodyIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperBodyIntermediateNode.TagMode.get -> Microsoft.AspNetCore.Razor.Language.TagMode +Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperBodyIntermediateNode.TagMode.set -> void +Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperCreateIntermediateNode +Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperCreateIntermediateNode.DefaultTagHelperCreateIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperExecuteIntermediateNode +Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperExecuteIntermediateNode.DefaultTagHelperExecuteIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperHtmlAttributeIntermediateNode +Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperHtmlAttributeIntermediateNode.AttributeStructure.get -> Microsoft.AspNetCore.Razor.Language.AttributeStructure +Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperHtmlAttributeIntermediateNode.AttributeStructure.set -> void +Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperHtmlAttributeIntermediateNode.DefaultTagHelperHtmlAttributeIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperPropertyIntermediateNode +Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperPropertyIntermediateNode.AttributeStructure.get -> Microsoft.AspNetCore.Razor.Language.AttributeStructure +Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperPropertyIntermediateNode.AttributeStructure.set -> void +Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperPropertyIntermediateNode.DefaultTagHelperPropertyIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperPropertyIntermediateNode.IsIndexerNameMatch.get -> bool +Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperPropertyIntermediateNode.IsIndexerNameMatch.set -> void +Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperRuntimeIntermediateNode +Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperRuntimeIntermediateNode.DefaultTagHelperRuntimeIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Extensions.FunctionsDirective +Microsoft.AspNetCore.Razor.Language.Extensions.FunctionsDirectivePass +Microsoft.AspNetCore.Razor.Language.Extensions.FunctionsDirectivePass.FunctionsDirectivePass() -> void +Microsoft.AspNetCore.Razor.Language.Extensions.IDefaultTagHelperTargetExtension +Microsoft.AspNetCore.Razor.Language.Extensions.ISectionTargetExtension +Microsoft.AspNetCore.Razor.Language.Extensions.ITemplateTargetExtension +Microsoft.AspNetCore.Razor.Language.Extensions.InheritsDirective +Microsoft.AspNetCore.Razor.Language.Extensions.InheritsDirectivePass +Microsoft.AspNetCore.Razor.Language.Extensions.InheritsDirectivePass.InheritsDirectivePass() -> void +Microsoft.AspNetCore.Razor.Language.Extensions.NamespaceDirective +Microsoft.AspNetCore.Razor.Language.Extensions.RazorCompiledItemMetadataAttributeIntermediateNode +Microsoft.AspNetCore.Razor.Language.Extensions.RazorCompiledItemMetadataAttributeIntermediateNode.RazorCompiledItemMetadataAttributeIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Extensions.SectionDirective +Microsoft.AspNetCore.Razor.Language.Extensions.SectionDirectivePass +Microsoft.AspNetCore.Razor.Language.Extensions.SectionDirectivePass.SectionDirectivePass() -> void +Microsoft.AspNetCore.Razor.Language.Extensions.SectionIntermediateNode +Microsoft.AspNetCore.Razor.Language.Extensions.SectionIntermediateNode.SectionIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Extensions.SectionTargetExtension +Microsoft.AspNetCore.Razor.Language.Extensions.SectionTargetExtension.SectionTargetExtension() -> void +Microsoft.AspNetCore.Razor.Language.Extensions.TemplateIntermediateNode +Microsoft.AspNetCore.Razor.Language.Extensions.TemplateIntermediateNode.TemplateIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Extensions.TemplateTargetExtension +Microsoft.AspNetCore.Razor.Language.Extensions.TemplateTargetExtension.TemplateTargetExtension() -> void +Microsoft.AspNetCore.Razor.Language.FileKinds +Microsoft.AspNetCore.Razor.Language.HtmlConventions +Microsoft.AspNetCore.Razor.Language.IConfigureRazorCodeGenerationOptionsFeature +Microsoft.AspNetCore.Razor.Language.IConfigureRazorCodeGenerationOptionsFeature.Order.get -> int +Microsoft.AspNetCore.Razor.Language.IConfigureRazorParserOptionsFeature +Microsoft.AspNetCore.Razor.Language.IConfigureRazorParserOptionsFeature.Order.get -> int +Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder +Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder.Kind.get -> Microsoft.AspNetCore.Razor.Language.DirectiveKind +Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder.Usage.get -> Microsoft.AspNetCore.Razor.Language.DirectiveUsage +Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder.Usage.set -> void +Microsoft.AspNetCore.Razor.Language.IImportProjectFeature +Microsoft.AspNetCore.Razor.Language.IRazorCSharpLoweringPhase +Microsoft.AspNetCore.Razor.Language.IRazorCodeGenerationOptionsFeature +Microsoft.AspNetCore.Razor.Language.IRazorDirectiveClassifierPass +Microsoft.AspNetCore.Razor.Language.IRazorDirectiveClassifierPass.Order.get -> int +Microsoft.AspNetCore.Razor.Language.IRazorDirectiveClassifierPhase +Microsoft.AspNetCore.Razor.Language.IRazorDirectiveFeature +Microsoft.AspNetCore.Razor.Language.IRazorDocumentClassifierPass +Microsoft.AspNetCore.Razor.Language.IRazorDocumentClassifierPass.Order.get -> int +Microsoft.AspNetCore.Razor.Language.IRazorDocumentClassifierPhase +Microsoft.AspNetCore.Razor.Language.IRazorEngineBuilder +Microsoft.AspNetCore.Razor.Language.IRazorEngineBuilder.DesignTime.get -> bool +Microsoft.AspNetCore.Razor.Language.IRazorEngineFeature +Microsoft.AspNetCore.Razor.Language.IRazorEnginePhase +Microsoft.AspNetCore.Razor.Language.IRazorFeature +Microsoft.AspNetCore.Razor.Language.IRazorIntermediateNodeLoweringPhase +Microsoft.AspNetCore.Razor.Language.IRazorOptimizationPass +Microsoft.AspNetCore.Razor.Language.IRazorOptimizationPass.Order.get -> int +Microsoft.AspNetCore.Razor.Language.IRazorOptimizationPhase +Microsoft.AspNetCore.Razor.Language.IRazorParserOptionsFeature +Microsoft.AspNetCore.Razor.Language.IRazorParsingPhase +Microsoft.AspNetCore.Razor.Language.IRazorProjectEngineFeature +Microsoft.AspNetCore.Razor.Language.IRazorTagHelperBinderPhase +Microsoft.AspNetCore.Razor.Language.IRazorTargetExtensionFeature +Microsoft.AspNetCore.Razor.Language.ITagHelperDescriptorProvider +Microsoft.AspNetCore.Razor.Language.ITagHelperDescriptorProvider.Order.get -> int +Microsoft.AspNetCore.Razor.Language.ITagHelperFeature +Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpCodeAttributeValueIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpCodeAttributeValueIntermediateNode.CSharpCodeAttributeValueIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpCodeIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpCodeIntermediateNode.CSharpCodeIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpExpressionAttributeValueIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpExpressionAttributeValueIntermediateNode.CSharpExpressionAttributeValueIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpExpressionIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpExpressionIntermediateNode.CSharpExpressionIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.ClassDeclarationIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.ClassDeclarationIntermediateNode.ClassDeclarationIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.CommonAnnotations +Microsoft.AspNetCore.Razor.Language.Intermediate.CommonAnnotations.DefaultTagHelperExtension +Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentAttributeIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentAttributeIntermediateNode.AttributeStructure.get -> Microsoft.AspNetCore.Razor.Language.AttributeStructure +Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentAttributeIntermediateNode.AttributeStructure.set -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentAttributeIntermediateNode.ComponentAttributeIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentChildContentIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentChildContentIntermediateNode.ComponentChildContentIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentChildContentIntermediateNode.IsParameterized.get -> bool +Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentIntermediateNode.ComponentIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentTypeArgumentIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentTypeInferenceMethodIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentTypeInferenceMethodIntermediateNode.ComponentTypeInferenceMethodIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.DirectiveIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.DirectiveIntermediateNode.DirectiveIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.DirectiveTokenIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.DirectiveTokenIntermediateNode.DirectiveTokenIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode.DocumentIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNodeExtensions +Microsoft.AspNetCore.Razor.Language.Intermediate.ExtensionIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.ExtensionIntermediateNode.ExtensionIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.FieldDeclarationIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.FieldDeclarationIntermediateNode.FieldDeclarationIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeIntermediateNode.HtmlAttributeIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeValueIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeValueIntermediateNode.HtmlAttributeValueIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlContentIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlContentIntermediateNode.HtmlContentIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode.HasDiagnostics.get -> bool +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode.IntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode.Source.get -> Microsoft.AspNetCore.Razor.Language.SourceSpan? +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode.Source.set -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection.Clear() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection.Count.get -> int +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection.Enumerator +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection.Enumerator.Dispose() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection.Enumerator.MoveNext() -> bool +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection.Enumerator.Reset() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection.GetEnumerator() -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection.Enumerator +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection.IntermediateNodeCollection() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection.IsReadOnly.get -> bool +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection.RemoveAt(int index) -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeExtensions +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter.IntermediateNodeFormatter() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeReference +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeReference.Remove() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.IntermediateNodeVisitor() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeWalker +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeWalker.IntermediateNodeWalker() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateToken +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateToken.IntermediateToken() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateToken.IsCSharp.get -> bool +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateToken.IsHtml.get -> bool +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateToken.Kind.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.TokenKind +Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateToken.Kind.set -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.MalformedDirectiveIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.MalformedDirectiveIntermediateNode.MalformedDirectiveIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.MarkupBlockIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.MarkupBlockIntermediateNode.MarkupBlockIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.MarkupElementIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.MarkupElementIntermediateNode.MarkupElementIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.MemberDeclarationIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.MemberDeclarationIntermediateNode.MemberDeclarationIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.MethodDeclarationIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.MethodDeclarationIntermediateNode.MethodDeclarationIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.MethodParameter +Microsoft.AspNetCore.Razor.Language.Intermediate.MethodParameter.MethodParameter() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.NamespaceDeclarationIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.NamespaceDeclarationIntermediateNode.NamespaceDeclarationIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.PropertyDeclarationIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.PropertyDeclarationIntermediateNode.PropertyDeclarationIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.ReferenceCaptureIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.ReferenceCaptureIntermediateNode.IsComponentCapture.get -> bool +Microsoft.AspNetCore.Razor.Language.Intermediate.SetKeyIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.SplatIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.SplatIntermediateNode.SplatIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperBodyIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperBodyIntermediateNode.TagHelperBodyIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeIntermediateNode.AttributeStructure.get -> Microsoft.AspNetCore.Razor.Language.AttributeStructure +Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeIntermediateNode.AttributeStructure.set -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeIntermediateNode.IsIndexerNameMatch.get -> bool +Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeIntermediateNode.IsIndexerNameMatch.set -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeIntermediateNode.TagHelperDirectiveAttributeIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeParameterIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeParameterIntermediateNode.AttributeStructure.get -> Microsoft.AspNetCore.Razor.Language.AttributeStructure +Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeParameterIntermediateNode.AttributeStructure.set -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeParameterIntermediateNode.IsIndexerNameMatch.get -> bool +Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeParameterIntermediateNode.IsIndexerNameMatch.set -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeParameterIntermediateNode.TagHelperDirectiveAttributeParameterIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperHtmlAttributeIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperHtmlAttributeIntermediateNode.AttributeStructure.get -> Microsoft.AspNetCore.Razor.Language.AttributeStructure +Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperHtmlAttributeIntermediateNode.AttributeStructure.set -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperHtmlAttributeIntermediateNode.TagHelperHtmlAttributeIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperIntermediateNode.TagHelperIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperIntermediateNode.TagMode.get -> Microsoft.AspNetCore.Razor.Language.TagMode +Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperIntermediateNode.TagMode.set -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperPropertyIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperPropertyIntermediateNode.AttributeStructure.get -> Microsoft.AspNetCore.Razor.Language.AttributeStructure +Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperPropertyIntermediateNode.AttributeStructure.set -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperPropertyIntermediateNode.IsIndexerNameMatch.get -> bool +Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperPropertyIntermediateNode.IsIndexerNameMatch.set -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperPropertyIntermediateNode.TagHelperPropertyIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.TokenKind +Microsoft.AspNetCore.Razor.Language.Intermediate.TokenKind.CSharp = 1 -> Microsoft.AspNetCore.Razor.Language.Intermediate.TokenKind +Microsoft.AspNetCore.Razor.Language.Intermediate.TokenKind.Html = 2 -> Microsoft.AspNetCore.Razor.Language.Intermediate.TokenKind +Microsoft.AspNetCore.Razor.Language.Intermediate.TokenKind.Unknown = 0 -> Microsoft.AspNetCore.Razor.Language.Intermediate.TokenKind +Microsoft.AspNetCore.Razor.Language.Intermediate.TypeParameter +Microsoft.AspNetCore.Razor.Language.Intermediate.TypeParameter.TypeParameter() -> void +Microsoft.AspNetCore.Razor.Language.Intermediate.UsingDirectiveIntermediateNode +Microsoft.AspNetCore.Razor.Language.Intermediate.UsingDirectiveIntermediateNode.UsingDirectiveIntermediateNode() -> void +Microsoft.AspNetCore.Razor.Language.IntermediateNodePassBase +Microsoft.AspNetCore.Razor.Language.IntermediateNodePassBase.IntermediateNodePassBase() -> void +Microsoft.AspNetCore.Razor.Language.ItemCollection +Microsoft.AspNetCore.Razor.Language.ItemCollection.Clear() -> void +Microsoft.AspNetCore.Razor.Language.ItemCollection.Count.get -> int +Microsoft.AspNetCore.Razor.Language.ItemCollection.IsReadOnly.get -> bool +Microsoft.AspNetCore.Razor.Language.ItemCollection.ItemCollection() -> void +Microsoft.AspNetCore.Razor.Language.ProvideRazorExtensionInitializerAttribute +Microsoft.AspNetCore.Razor.Language.RazorCSharpDocument +Microsoft.AspNetCore.Razor.Language.RazorCSharpDocument.RazorCSharpDocument() -> void +Microsoft.AspNetCore.Razor.Language.RazorCodeDocument +Microsoft.AspNetCore.Razor.Language.RazorCodeDocument.RazorCodeDocument() -> void +Microsoft.AspNetCore.Razor.Language.RazorCodeDocumentExtensions +Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions +Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions.RazorCodeGenerationOptions() -> void +Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptionsBuilder +Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptionsBuilder.RazorCodeGenerationOptionsBuilder() -> void +Microsoft.AspNetCore.Razor.Language.RazorConfiguration +Microsoft.AspNetCore.Razor.Language.RazorConfiguration.RazorConfiguration() -> void +Microsoft.AspNetCore.Razor.Language.RazorDiagnostic +Microsoft.AspNetCore.Razor.Language.RazorDiagnostic.RazorDiagnostic() -> void +Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection +Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection.Clear() -> void +Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection.Count.get -> int +Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection.Enumerator +Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection.Enumerator.Dispose() -> void +Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection.Enumerator.MoveNext() -> bool +Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection.Enumerator.Reset() -> void +Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection.GetEnumerator() -> Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection.Enumerator +Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection.IsReadOnly.get -> bool +Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection.RazorDiagnosticCollection() -> void +Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection.RemoveAt(int index) -> void +Microsoft.AspNetCore.Razor.Language.RazorDiagnosticDescriptor +Microsoft.AspNetCore.Razor.Language.RazorDiagnosticDescriptor.Severity.get -> Microsoft.AspNetCore.Razor.Language.RazorDiagnosticSeverity +Microsoft.AspNetCore.Razor.Language.RazorDiagnosticSeverity +Microsoft.AspNetCore.Razor.Language.RazorDiagnosticSeverity.Error = 3 -> Microsoft.AspNetCore.Razor.Language.RazorDiagnosticSeverity +Microsoft.AspNetCore.Razor.Language.RazorDiagnosticSeverity.Warning = 2 -> Microsoft.AspNetCore.Razor.Language.RazorDiagnosticSeverity +Microsoft.AspNetCore.Razor.Language.RazorEngine +Microsoft.AspNetCore.Razor.Language.RazorEngine.RazorEngine() -> void +Microsoft.AspNetCore.Razor.Language.RazorEngineBuilderExtensions +Microsoft.AspNetCore.Razor.Language.RazorEngineFeatureBase +Microsoft.AspNetCore.Razor.Language.RazorEngineFeatureBase.RazorEngineFeatureBase() -> void +Microsoft.AspNetCore.Razor.Language.RazorEngineFeatureBase.ThrowForMissingDocumentDependency(TDocumentDependency value) -> void +Microsoft.AspNetCore.Razor.Language.RazorEngineFeatureBase.ThrowForMissingFeatureDependency(TEngineDependency value) -> void +Microsoft.AspNetCore.Razor.Language.RazorEnginePhaseBase +Microsoft.AspNetCore.Razor.Language.RazorEnginePhaseBase.GetRequiredFeature() -> T +Microsoft.AspNetCore.Razor.Language.RazorEnginePhaseBase.RazorEnginePhaseBase() -> void +Microsoft.AspNetCore.Razor.Language.RazorEnginePhaseBase.ThrowForMissingDocumentDependency(TDocumentDependency value) -> void +Microsoft.AspNetCore.Razor.Language.RazorEnginePhaseBase.ThrowForMissingFeatureDependency(TEngineDependency value) -> void +Microsoft.AspNetCore.Razor.Language.RazorExtension +Microsoft.AspNetCore.Razor.Language.RazorExtension.RazorExtension() -> void +Microsoft.AspNetCore.Razor.Language.RazorExtensionInitializer +Microsoft.AspNetCore.Razor.Language.RazorExtensionInitializer.RazorExtensionInitializer() -> void +Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion +Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion.Major.get -> int +Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion.Minor.get -> int +Microsoft.AspNetCore.Razor.Language.RazorParserOptions +Microsoft.AspNetCore.Razor.Language.RazorParserOptions.RazorParserOptions() -> void +Microsoft.AspNetCore.Razor.Language.RazorParserOptionsBuilder +Microsoft.AspNetCore.Razor.Language.RazorParserOptionsBuilder.RazorParserOptionsBuilder() -> void +Microsoft.AspNetCore.Razor.Language.RazorProject +Microsoft.AspNetCore.Razor.Language.RazorProject.RazorProject() -> void +Microsoft.AspNetCore.Razor.Language.RazorProjectEngine +Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.RazorProjectEngine() -> void +Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder +Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder.RazorProjectEngineBuilder() -> void +Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilderExtensions +Microsoft.AspNetCore.Razor.Language.RazorProjectEngineFeatureBase +Microsoft.AspNetCore.Razor.Language.RazorProjectEngineFeatureBase.RazorProjectEngineFeatureBase() -> void +Microsoft.AspNetCore.Razor.Language.RazorProjectFileSystem +Microsoft.AspNetCore.Razor.Language.RazorProjectFileSystem.RazorProjectFileSystem() -> void +Microsoft.AspNetCore.Razor.Language.RazorProjectItem +Microsoft.AspNetCore.Razor.Language.RazorProjectItem.RazorProjectItem() -> void +Microsoft.AspNetCore.Razor.Language.RazorSourceDocument +Microsoft.AspNetCore.Razor.Language.RazorSourceDocument.RazorSourceDocument() -> void +Microsoft.AspNetCore.Razor.Language.RazorSourceDocumentProperties +Microsoft.AspNetCore.Razor.Language.RazorSourceDocumentProperties.RazorSourceDocumentProperties() -> void +Microsoft.AspNetCore.Razor.Language.RazorSourceLineCollection +Microsoft.AspNetCore.Razor.Language.RazorSourceLineCollection.RazorSourceLineCollection() -> void +Microsoft.AspNetCore.Razor.Language.RazorSyntaxTree +Microsoft.AspNetCore.Razor.Language.RazorSyntaxTree.RazorSyntaxTree() -> void +Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor +Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.CaseSensitive.get -> bool +Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.CaseSensitive.set -> void +Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.HasErrors.get -> bool +Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.NameComparison.get -> Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.NameComparisonMode +Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.NameComparison.set -> void +Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.NameComparisonMode +Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.NameComparisonMode.FullMatch = 0 -> Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.NameComparisonMode +Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.NameComparisonMode.PrefixMatch = 1 -> Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.NameComparisonMode +Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.RequiredAttributeDescriptor() -> void +Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.ValueComparison.get -> Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.ValueComparisonMode +Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.ValueComparison.set -> void +Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.ValueComparisonMode +Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.ValueComparisonMode.FullMatch = 1 -> Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.ValueComparisonMode +Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.ValueComparisonMode.None = 0 -> Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.ValueComparisonMode +Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.ValueComparisonMode.PrefixMatch = 2 -> Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.ValueComparisonMode +Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.ValueComparisonMode.SuffixMatch = 3 -> Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.ValueComparisonMode +Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptorBuilder +Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptorBuilder.RequiredAttributeDescriptorBuilder() -> void +Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptorBuilderExtensions +Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptorExtensions +Microsoft.AspNetCore.Razor.Language.SourceChange +Microsoft.AspNetCore.Razor.Language.SourceChange.IsDelete.get -> bool +Microsoft.AspNetCore.Razor.Language.SourceChange.IsInsert.get -> bool +Microsoft.AspNetCore.Razor.Language.SourceChange.IsReplace.get -> bool +Microsoft.AspNetCore.Razor.Language.SourceChange.Span.get -> Microsoft.AspNetCore.Razor.Language.SourceSpan +Microsoft.AspNetCore.Razor.Language.SourceLocation +Microsoft.AspNetCore.Razor.Language.SourceLocation.AbsoluteIndex.get -> int +Microsoft.AspNetCore.Razor.Language.SourceLocation.AbsoluteIndex.set -> void +Microsoft.AspNetCore.Razor.Language.SourceLocation.CharacterIndex.get -> int +Microsoft.AspNetCore.Razor.Language.SourceLocation.CharacterIndex.set -> void +Microsoft.AspNetCore.Razor.Language.SourceLocation.Equals(Microsoft.AspNetCore.Razor.Language.SourceLocation other) -> bool +Microsoft.AspNetCore.Razor.Language.SourceLocation.LineIndex.get -> int +Microsoft.AspNetCore.Razor.Language.SourceLocation.LineIndex.set -> void +Microsoft.AspNetCore.Razor.Language.SourceLocation.SourceLocation(int absoluteIndex, int lineIndex, int characterIndex) -> void +Microsoft.AspNetCore.Razor.Language.SourceMapping +Microsoft.AspNetCore.Razor.Language.SourceMapping.GeneratedSpan.get -> Microsoft.AspNetCore.Razor.Language.SourceSpan +Microsoft.AspNetCore.Razor.Language.SourceMapping.OriginalSpan.get -> Microsoft.AspNetCore.Razor.Language.SourceSpan +Microsoft.AspNetCore.Razor.Language.SourceMapping.SourceMapping(Microsoft.AspNetCore.Razor.Language.SourceSpan originalSpan, Microsoft.AspNetCore.Razor.Language.SourceSpan generatedSpan) -> void +Microsoft.AspNetCore.Razor.Language.SourceSpan +Microsoft.AspNetCore.Razor.Language.SourceSpan.AbsoluteIndex.get -> int +Microsoft.AspNetCore.Razor.Language.SourceSpan.CharacterIndex.get -> int +Microsoft.AspNetCore.Razor.Language.SourceSpan.Equals(Microsoft.AspNetCore.Razor.Language.SourceSpan other) -> bool +Microsoft.AspNetCore.Razor.Language.SourceSpan.Length.get -> int +Microsoft.AspNetCore.Razor.Language.SourceSpan.LineIndex.get -> int +Microsoft.AspNetCore.Razor.Language.SourceSpan.SourceSpan(Microsoft.AspNetCore.Razor.Language.SourceLocation location, int contentLength) -> void +Microsoft.AspNetCore.Razor.Language.SourceSpan.SourceSpan(int absoluteIndex, int length) -> void +Microsoft.AspNetCore.Razor.Language.SourceSpan.SourceSpan(int absoluteIndex, int lineIndex, int characterIndex, int length) -> void +Microsoft.AspNetCore.Razor.Language.TagHelperBinding +Microsoft.AspNetCore.Razor.Language.TagHelperBinding.IsAttributeMatch.get -> bool +Microsoft.AspNetCore.Razor.Language.TagHelperConventions +Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor +Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.CaseSensitive.get -> bool +Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.CaseSensitive.set -> void +Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.HasErrors.get -> bool +Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilder +Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilder.TagHelperDescriptorBuilder() -> void +Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilderExtensions +Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorExtensions +Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorProviderContext +Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorProviderContext.TagHelperDescriptorProviderContext() -> void +Microsoft.AspNetCore.Razor.Language.TagHelperDocumentContext +Microsoft.AspNetCore.Razor.Language.TagHelperDocumentContext.TagHelperDocumentContext() -> void +Microsoft.AspNetCore.Razor.Language.TagHelperMetadata +Microsoft.AspNetCore.Razor.Language.TagHelperMetadata.Common +Microsoft.AspNetCore.Razor.Language.TagHelperMetadata.Runtime +Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptor +Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptor.CaseSensitive.get -> bool +Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptor.CaseSensitive.set -> void +Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptor.HasErrors.get -> bool +Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptor.TagMatchingRuleDescriptor() -> void +Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptor.TagStructure.get -> Microsoft.AspNetCore.Razor.Language.TagStructure +Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptor.TagStructure.set -> void +Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptorBuilder +Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptorBuilder.TagMatchingRuleDescriptorBuilder() -> void +Microsoft.AspNetCore.Razor.Language.TagMode +Microsoft.AspNetCore.Razor.Language.TagMode.SelfClosing = 1 -> Microsoft.AspNetCore.Razor.Language.TagMode +Microsoft.AspNetCore.Razor.Language.TagMode.StartTagAndEndTag = 0 -> Microsoft.AspNetCore.Razor.Language.TagMode +Microsoft.AspNetCore.Razor.Language.TagMode.StartTagOnly = 2 -> Microsoft.AspNetCore.Razor.Language.TagMode +Microsoft.AspNetCore.Razor.Language.TagStructure +Microsoft.AspNetCore.Razor.Language.TagStructure.NormalOrSelfClosing = 1 -> Microsoft.AspNetCore.Razor.Language.TagStructure +Microsoft.AspNetCore.Razor.Language.TagStructure.Unspecified = 0 -> Microsoft.AspNetCore.Razor.Language.TagStructure +Microsoft.AspNetCore.Razor.Language.TagStructure.WithoutEndTag = 2 -> Microsoft.AspNetCore.Razor.Language.TagStructure +abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilder.IsDictionary.get -> bool +abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilder.IsDictionary.set -> void +abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilder.IsEnum.get -> bool +abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilder.IsEnum.set -> void +abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptorBuilder.IsEnum.get -> bool +abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptorBuilder.IsEnum.set -> void +abstract Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor.Kind.get -> Microsoft.AspNetCore.Razor.Language.DirectiveKind +abstract Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor.Usage.get -> Microsoft.AspNetCore.Razor.Language.DirectiveUsage +abstract Microsoft.AspNetCore.Razor.Language.DirectiveTokenDescriptor.Kind.get -> Microsoft.AspNetCore.Razor.Language.DirectiveTokenKind +abstract Microsoft.AspNetCore.Razor.Language.DirectiveTokenDescriptor.Optional.get -> bool +abstract Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions.DesignTime.get -> bool +abstract Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions.IndentSize.get -> int +abstract Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions.IndentWithTabs.get -> bool +abstract Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions.SuppressChecksum.get -> bool +abstract Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptionsBuilder.DesignTime.get -> bool +abstract Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptionsBuilder.IndentSize.get -> int +abstract Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptionsBuilder.IndentSize.set -> void +abstract Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptionsBuilder.IndentWithTabs.get -> bool +abstract Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptionsBuilder.IndentWithTabs.set -> void +abstract Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptionsBuilder.SuppressChecksum.get -> bool +abstract Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptionsBuilder.SuppressChecksum.set -> void +abstract Microsoft.AspNetCore.Razor.Language.RazorDiagnostic.Severity.get -> Microsoft.AspNetCore.Razor.Language.RazorDiagnosticSeverity +abstract Microsoft.AspNetCore.Razor.Language.RazorDiagnostic.Span.get -> Microsoft.AspNetCore.Razor.Language.SourceSpan +abstract Microsoft.AspNetCore.Razor.Language.RazorParserOptions.DesignTime.get -> bool +abstract Microsoft.AspNetCore.Razor.Language.RazorParserOptions.ParseLeadingDirectives.get -> bool +abstract Microsoft.AspNetCore.Razor.Language.RazorParserOptionsBuilder.DesignTime.get -> bool +abstract Microsoft.AspNetCore.Razor.Language.RazorParserOptionsBuilder.ParseLeadingDirectives.get -> bool +abstract Microsoft.AspNetCore.Razor.Language.RazorParserOptionsBuilder.ParseLeadingDirectives.set -> void +abstract Microsoft.AspNetCore.Razor.Language.RazorProjectItem.Exists.get -> bool +abstract Microsoft.AspNetCore.Razor.Language.RazorSourceDocument.Length.get -> int +abstract Microsoft.AspNetCore.Razor.Language.RazorSourceDocument.this[int position].get -> char +abstract Microsoft.AspNetCore.Razor.Language.RazorSourceLineCollection.Count.get -> int +abstract Microsoft.AspNetCore.Razor.Language.RazorSourceLineCollection.GetLineLength(int index) -> int +abstract Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptorBuilder.NameComparisonMode.get -> Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.NameComparisonMode +abstract Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptorBuilder.NameComparisonMode.set -> void +abstract Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptorBuilder.ValueComparisonMode.get -> Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.ValueComparisonMode +abstract Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptorBuilder.ValueComparisonMode.set -> void +abstract Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilder.Reset() -> void +abstract Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptorBuilder.TagStructure.get -> Microsoft.AspNetCore.Razor.Language.TagStructure +abstract Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptorBuilder.TagStructure.set -> void +override Microsoft.AspNetCore.Razor.Language.AllowedChildTagDescriptor.GetHashCode() -> int +override Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.GetHashCode() -> int +override Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor.GetHashCode() -> int +override Microsoft.AspNetCore.Razor.Language.CodeGeneration.LinePragma.GetHashCode() -> int +override Microsoft.AspNetCore.Razor.Language.DocumentClassifierPassBase.OnInitialized() -> void +override Microsoft.AspNetCore.Razor.Language.RazorConfiguration.GetHashCode() -> int +override Microsoft.AspNetCore.Razor.Language.RazorDiagnosticDescriptor.GetHashCode() -> int +override Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion.GetHashCode() -> int +override Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.GetHashCode() -> int +override Microsoft.AspNetCore.Razor.Language.SourceChange.GetHashCode() -> int +override Microsoft.AspNetCore.Razor.Language.SourceLocation.GetHashCode() -> int +override Microsoft.AspNetCore.Razor.Language.SourceMapping.GetHashCode() -> int +override Microsoft.AspNetCore.Razor.Language.SourceSpan.GetHashCode() -> int +override Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.GetHashCode() -> int +override Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptor.GetHashCode() -> int +override abstract Microsoft.AspNetCore.Razor.Language.RazorDiagnostic.GetHashCode() -> int +static Microsoft.AspNetCore.Razor.Language.SourceLocation.FromSpan(Microsoft.AspNetCore.Razor.Language.SourceSpan? span) -> Microsoft.AspNetCore.Razor.Language.SourceLocation +static Microsoft.AspNetCore.Razor.Language.SourceLocation.operator !=(Microsoft.AspNetCore.Razor.Language.SourceLocation left, Microsoft.AspNetCore.Razor.Language.SourceLocation right) -> bool +static Microsoft.AspNetCore.Razor.Language.SourceLocation.operator ==(Microsoft.AspNetCore.Razor.Language.SourceLocation left, Microsoft.AspNetCore.Razor.Language.SourceLocation right) -> bool +static Microsoft.AspNetCore.Razor.Language.SourceSpan.operator !=(Microsoft.AspNetCore.Razor.Language.SourceSpan left, Microsoft.AspNetCore.Razor.Language.SourceSpan right) -> bool +static Microsoft.AspNetCore.Razor.Language.SourceSpan.operator ==(Microsoft.AspNetCore.Razor.Language.SourceSpan left, Microsoft.AspNetCore.Razor.Language.SourceSpan right) -> bool +static readonly Microsoft.AspNetCore.Razor.Language.IntermediateNodePassBase.DefaultFeatureOrder -> int +static readonly Microsoft.AspNetCore.Razor.Language.SourceLocation.Undefined -> Microsoft.AspNetCore.Razor.Language.SourceLocation +static readonly Microsoft.AspNetCore.Razor.Language.SourceLocation.Zero -> Microsoft.AspNetCore.Razor.Language.SourceLocation +static readonly Microsoft.AspNetCore.Razor.Language.SourceSpan.Undefined -> Microsoft.AspNetCore.Razor.Language.SourceSpan +virtual Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext.AddLinePragma(Microsoft.AspNetCore.Razor.Language.CodeGeneration.LinePragma linePragma) -> void +virtual Microsoft.AspNetCore.Razor.Language.IntermediateNodePassBase.Order.get -> int +virtual Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions.OmitMinimizedComponentAttributeValues.get -> bool +virtual Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions.SuppressMetadataAttributes.get -> bool +virtual Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions.SuppressMetadataAttributes.set -> void +virtual Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions.SuppressNullabilityEnforcement.get -> bool +virtual Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions.SuppressPrimaryMethodBody.get -> bool +virtual Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions.SuppressPrimaryMethodBody.set -> void +virtual Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptionsBuilder.OmitMinimizedComponentAttributeValues.get -> bool +virtual Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptionsBuilder.OmitMinimizedComponentAttributeValues.set -> void +virtual Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptionsBuilder.SetDesignTime(bool designTime) -> void +virtual Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptionsBuilder.SuppressMetadataAttributes.get -> bool +virtual Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptionsBuilder.SuppressMetadataAttributes.set -> void +virtual Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptionsBuilder.SuppressNullabilityEnforcement.get -> bool +virtual Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptionsBuilder.SuppressNullabilityEnforcement.set -> void +virtual Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptionsBuilder.SuppressPrimaryMethodBody.get -> bool +virtual Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptionsBuilder.SuppressPrimaryMethodBody.set -> void +virtual Microsoft.AspNetCore.Razor.Language.RazorEngineFeatureBase.OnInitialized() -> void +virtual Microsoft.AspNetCore.Razor.Language.RazorEnginePhaseBase.OnIntialized() -> void +virtual Microsoft.AspNetCore.Razor.Language.RazorParserOptionsBuilder.SetDesignTime(bool designTime) -> void +virtual Microsoft.AspNetCore.Razor.Language.RazorProjectEngineFeatureBase.OnInitialized() -> void +virtual Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilder.CaseSensitive.get -> bool +virtual Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilder.CaseSensitive.set -> void +virtual Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorProviderContext.ExcludeHidden.get -> bool +virtual Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorProviderContext.ExcludeHidden.set -> void +virtual Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorProviderContext.IncludeDocumentation.get -> bool +virtual Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorProviderContext.IncludeDocumentation.set -> void +~Microsoft.AspNetCore.Razor.Language.AllowedChildTagDescriptor.Diagnostics.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Razor.Language.AllowedChildTagDescriptor.Diagnostics.set -> void +~Microsoft.AspNetCore.Razor.Language.AllowedChildTagDescriptor.DisplayName.get -> string +~Microsoft.AspNetCore.Razor.Language.AllowedChildTagDescriptor.DisplayName.set -> void +~Microsoft.AspNetCore.Razor.Language.AllowedChildTagDescriptor.Equals(Microsoft.AspNetCore.Razor.Language.AllowedChildTagDescriptor other) -> bool +~Microsoft.AspNetCore.Razor.Language.AllowedChildTagDescriptor.Name.get -> string +~Microsoft.AspNetCore.Razor.Language.AllowedChildTagDescriptor.Name.set -> void +~Microsoft.AspNetCore.Razor.Language.AssemblyExtension.Assembly.get -> System.Reflection.Assembly +~Microsoft.AspNetCore.Razor.Language.AssemblyExtension.AssemblyExtension(string extensionName, System.Reflection.Assembly assembly) -> void +~Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.BoundAttributeDescriptor(string kind) -> void +~Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.Diagnostics.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.Diagnostics.set -> void +~Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.DisplayName.get -> string +~Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.DisplayName.set -> void +~Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.Documentation.get -> string +~Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.Documentation.set -> void +~Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.Equals(Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor other) -> bool +~Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.IndexerNamePrefix.get -> string +~Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.IndexerNamePrefix.set -> void +~Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.IndexerTypeName.get -> string +~Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.IndexerTypeName.set -> void +~Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.Kind.get -> string +~Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.Metadata.get -> System.Collections.Generic.IReadOnlyDictionary +~Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.Metadata.set -> void +~Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.Name.get -> string +~Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.Name.set -> void +~Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.TypeName.get -> string +~Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.TypeName.set -> void +~Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor.BoundAttributeParameterDescriptor(string kind) -> void +~Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor.Diagnostics.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor.Diagnostics.set -> void +~Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor.DisplayName.get -> string +~Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor.DisplayName.set -> void +~Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor.Documentation.get -> string +~Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor.Documentation.set -> void +~Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor.Equals(Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor other) -> bool +~Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor.Kind.get -> string +~Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor.Metadata.get -> System.Collections.Generic.IReadOnlyDictionary +~Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor.Metadata.set -> void +~Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor.Name.get -> string +~Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor.Name.set -> void +~Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor.TypeName.get -> string +~Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor.TypeName.set -> void +~Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeWriter.GenerateCode() -> string +~Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeWriter.NewLine.get -> string +~Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeWriter.NewLine.set -> void +~Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeWriter.Write(string value) -> Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeWriter +~Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeWriter.Write(string value, int startIndex, int count) -> Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeWriter +~Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeWriter.WriteLine() -> Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeWriter +~Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeWriter.WriteLine(string value) -> Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeWriter +~Microsoft.AspNetCore.Razor.Language.CodeGeneration.LinePragma.FilePath.get -> string +~Microsoft.AspNetCore.Razor.Language.CodeGeneration.LinePragma.LinePragma(int startLineIndex, int lineCount, string filePath) -> void +~Microsoft.AspNetCore.Razor.Language.CodeGeneration.RuntimeNodeWriter.TemplateTypeName.get -> string +~Microsoft.AspNetCore.Razor.Language.CodeGeneration.RuntimeNodeWriter.TemplateTypeName.set -> void +~Microsoft.AspNetCore.Razor.Language.DocumentClassifierPassBase.TargetExtensions.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperBodyIntermediateNode.DefaultTagHelperBodyIntermediateNode(Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperBodyIntermediateNode bodyNode) -> void +~Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperBodyIntermediateNode.TagName.get -> string +~Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperBodyIntermediateNode.TagName.set -> void +~Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperCreateIntermediateNode.FieldName.get -> string +~Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperCreateIntermediateNode.FieldName.set -> void +~Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperCreateIntermediateNode.TagHelper.get -> Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor +~Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperCreateIntermediateNode.TagHelper.set -> void +~Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperCreateIntermediateNode.TypeName.get -> string +~Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperCreateIntermediateNode.TypeName.set -> void +~Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperHtmlAttributeIntermediateNode.AttributeName.get -> string +~Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperHtmlAttributeIntermediateNode.AttributeName.set -> void +~Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperHtmlAttributeIntermediateNode.DefaultTagHelperHtmlAttributeIntermediateNode(Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperHtmlAttributeIntermediateNode htmlAttributeNode) -> void +~Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperPropertyIntermediateNode.AttributeName.get -> string +~Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperPropertyIntermediateNode.AttributeName.set -> void +~Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperPropertyIntermediateNode.BoundAttribute.get -> Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor +~Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperPropertyIntermediateNode.BoundAttribute.set -> void +~Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperPropertyIntermediateNode.DefaultTagHelperPropertyIntermediateNode(Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperPropertyIntermediateNode propertyNode) -> void +~Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperPropertyIntermediateNode.FieldName.get -> string +~Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperPropertyIntermediateNode.FieldName.set -> void +~Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperPropertyIntermediateNode.PropertyName.get -> string +~Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperPropertyIntermediateNode.PropertyName.set -> void +~Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperPropertyIntermediateNode.TagHelper.get -> Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor +~Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperPropertyIntermediateNode.TagHelper.set -> void +~Microsoft.AspNetCore.Razor.Language.Extensions.IDefaultTagHelperTargetExtension.WriteTagHelperBody(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperBodyIntermediateNode node) -> void +~Microsoft.AspNetCore.Razor.Language.Extensions.IDefaultTagHelperTargetExtension.WriteTagHelperCreate(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperCreateIntermediateNode node) -> void +~Microsoft.AspNetCore.Razor.Language.Extensions.IDefaultTagHelperTargetExtension.WriteTagHelperExecute(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperExecuteIntermediateNode node) -> void +~Microsoft.AspNetCore.Razor.Language.Extensions.IDefaultTagHelperTargetExtension.WriteTagHelperHtmlAttribute(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperHtmlAttributeIntermediateNode node) -> void +~Microsoft.AspNetCore.Razor.Language.Extensions.IDefaultTagHelperTargetExtension.WriteTagHelperProperty(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperPropertyIntermediateNode node) -> void +~Microsoft.AspNetCore.Razor.Language.Extensions.IDefaultTagHelperTargetExtension.WriteTagHelperRuntime(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperRuntimeIntermediateNode node) -> void +~Microsoft.AspNetCore.Razor.Language.Extensions.ISectionTargetExtension.WriteSection(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Extensions.SectionIntermediateNode node) -> void +~Microsoft.AspNetCore.Razor.Language.Extensions.ITemplateTargetExtension.WriteTemplate(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Extensions.TemplateIntermediateNode node) -> void +~Microsoft.AspNetCore.Razor.Language.Extensions.RazorCompiledItemMetadataAttributeIntermediateNode.Key.get -> string +~Microsoft.AspNetCore.Razor.Language.Extensions.RazorCompiledItemMetadataAttributeIntermediateNode.Key.set -> void +~Microsoft.AspNetCore.Razor.Language.Extensions.RazorCompiledItemMetadataAttributeIntermediateNode.Value.get -> string +~Microsoft.AspNetCore.Razor.Language.Extensions.RazorCompiledItemMetadataAttributeIntermediateNode.Value.set -> void +~Microsoft.AspNetCore.Razor.Language.Extensions.SectionIntermediateNode.SectionName.get -> string +~Microsoft.AspNetCore.Razor.Language.Extensions.SectionIntermediateNode.SectionName.set -> void +~Microsoft.AspNetCore.Razor.Language.Extensions.SectionTargetExtension.SectionMethodName.get -> string +~Microsoft.AspNetCore.Razor.Language.Extensions.SectionTargetExtension.SectionMethodName.set -> void +~Microsoft.AspNetCore.Razor.Language.Extensions.SectionTargetExtension.WriteSection(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Extensions.SectionIntermediateNode node) -> void +~Microsoft.AspNetCore.Razor.Language.Extensions.TemplateTargetExtension.TemplateTypeName.get -> string +~Microsoft.AspNetCore.Razor.Language.Extensions.TemplateTargetExtension.TemplateTypeName.set -> void +~Microsoft.AspNetCore.Razor.Language.Extensions.TemplateTargetExtension.WriteTemplate(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Extensions.TemplateIntermediateNode node) -> void +~Microsoft.AspNetCore.Razor.Language.IConfigureRazorCodeGenerationOptionsFeature.Configure(Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptionsBuilder options) -> void +~Microsoft.AspNetCore.Razor.Language.IConfigureRazorParserOptionsFeature.Configure(Microsoft.AspNetCore.Razor.Language.RazorParserOptionsBuilder options) -> void +~Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder.Build() -> Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor +~Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder.Description.get -> string +~Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder.Description.set -> void +~Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder.Directive.get -> string +~Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder.DisplayName.get -> string +~Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder.DisplayName.set -> void +~Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder.Tokens.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Razor.Language.IImportProjectFeature.GetImports(Microsoft.AspNetCore.Razor.Language.RazorProjectItem projectItem) -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Razor.Language.IRazorCodeGenerationOptionsFeature.GetOptions() -> Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions +~Microsoft.AspNetCore.Razor.Language.IRazorDirectiveClassifierPass.Execute(Microsoft.AspNetCore.Razor.Language.RazorCodeDocument codeDocument, Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode documentNode) -> void +~Microsoft.AspNetCore.Razor.Language.IRazorDirectiveFeature.Directives.get -> System.Collections.Generic.ICollection +~Microsoft.AspNetCore.Razor.Language.IRazorDocumentClassifierPass.Execute(Microsoft.AspNetCore.Razor.Language.RazorCodeDocument codeDocument, Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode documentNode) -> void +~Microsoft.AspNetCore.Razor.Language.IRazorEngineBuilder.Build() -> Microsoft.AspNetCore.Razor.Language.RazorEngine +~Microsoft.AspNetCore.Razor.Language.IRazorEngineBuilder.Features.get -> System.Collections.Generic.ICollection +~Microsoft.AspNetCore.Razor.Language.IRazorEngineBuilder.Phases.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Razor.Language.IRazorEngineFeature.Engine.get -> Microsoft.AspNetCore.Razor.Language.RazorEngine +~Microsoft.AspNetCore.Razor.Language.IRazorEngineFeature.Engine.set -> void +~Microsoft.AspNetCore.Razor.Language.IRazorEnginePhase.Engine.get -> Microsoft.AspNetCore.Razor.Language.RazorEngine +~Microsoft.AspNetCore.Razor.Language.IRazorEnginePhase.Engine.set -> void +~Microsoft.AspNetCore.Razor.Language.IRazorEnginePhase.Execute(Microsoft.AspNetCore.Razor.Language.RazorCodeDocument codeDocument) -> void +~Microsoft.AspNetCore.Razor.Language.IRazorOptimizationPass.Execute(Microsoft.AspNetCore.Razor.Language.RazorCodeDocument codeDocument, Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode documentNode) -> void +~Microsoft.AspNetCore.Razor.Language.IRazorParserOptionsFeature.GetOptions() -> Microsoft.AspNetCore.Razor.Language.RazorParserOptions +~Microsoft.AspNetCore.Razor.Language.IRazorProjectEngineFeature.ProjectEngine.get -> Microsoft.AspNetCore.Razor.Language.RazorProjectEngine +~Microsoft.AspNetCore.Razor.Language.IRazorProjectEngineFeature.ProjectEngine.set -> void +~Microsoft.AspNetCore.Razor.Language.IRazorTargetExtensionFeature.TargetExtensions.get -> System.Collections.Generic.ICollection +~Microsoft.AspNetCore.Razor.Language.ITagHelperDescriptorProvider.Execute(Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorProviderContext context) -> void +~Microsoft.AspNetCore.Razor.Language.ITagHelperFeature.GetDescriptors() -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpCodeAttributeValueIntermediateNode.Prefix.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpCodeAttributeValueIntermediateNode.Prefix.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpExpressionAttributeValueIntermediateNode.Prefix.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpExpressionAttributeValueIntermediateNode.Prefix.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ClassDeclarationIntermediateNode.BaseType.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.ClassDeclarationIntermediateNode.BaseType.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ClassDeclarationIntermediateNode.ClassName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.ClassDeclarationIntermediateNode.ClassName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ClassDeclarationIntermediateNode.Interfaces.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Razor.Language.Intermediate.ClassDeclarationIntermediateNode.Interfaces.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ClassDeclarationIntermediateNode.Modifiers.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Razor.Language.Intermediate.ClassDeclarationIntermediateNode.TypeParameters.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Razor.Language.Intermediate.ClassDeclarationIntermediateNode.TypeParameters.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentAttributeIntermediateNode.AttributeName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentAttributeIntermediateNode.AttributeName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentAttributeIntermediateNode.BoundAttribute.get -> Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentAttributeIntermediateNode.BoundAttribute.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentAttributeIntermediateNode.ComponentAttributeIntermediateNode(Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeIntermediateNode directiveAttributeNode) -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentAttributeIntermediateNode.ComponentAttributeIntermediateNode(Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeParameterIntermediateNode directiveAttributeParameterNode) -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentAttributeIntermediateNode.ComponentAttributeIntermediateNode(Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperHtmlAttributeIntermediateNode attributeNode) -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentAttributeIntermediateNode.ComponentAttributeIntermediateNode(Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperPropertyIntermediateNode propertyNode) -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentAttributeIntermediateNode.GloballyQualifiedTypeName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentAttributeIntermediateNode.GloballyQualifiedTypeName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentAttributeIntermediateNode.PropertyName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentAttributeIntermediateNode.PropertyName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentAttributeIntermediateNode.TagHelper.get -> Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentAttributeIntermediateNode.TagHelper.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentAttributeIntermediateNode.TryParseEventCallbackTypeArgument(out string argument) -> bool +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentAttributeIntermediateNode.TypeName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentAttributeIntermediateNode.TypeName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentChildContentIntermediateNode.AttributeName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentChildContentIntermediateNode.BoundAttribute.get -> Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentChildContentIntermediateNode.BoundAttribute.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentChildContentIntermediateNode.ParameterName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentChildContentIntermediateNode.ParameterName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentChildContentIntermediateNode.TypeName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentChildContentIntermediateNode.TypeName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentIntermediateNode.Attributes.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentIntermediateNode.Captures.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentIntermediateNode.ChildContentParameterName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentIntermediateNode.ChildContentParameterName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentIntermediateNode.ChildContents.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentIntermediateNode.Component.get -> Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentIntermediateNode.Component.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentIntermediateNode.SetKeys.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentIntermediateNode.Splats.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentIntermediateNode.TagName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentIntermediateNode.TagName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentIntermediateNode.TypeArguments.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentIntermediateNode.TypeInferenceNode.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentTypeInferenceMethodIntermediateNode +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentIntermediateNode.TypeInferenceNode.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentIntermediateNode.TypeName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentIntermediateNode.TypeName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentTypeArgumentIntermediateNode.BoundAttribute.get -> Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentTypeArgumentIntermediateNode.BoundAttribute.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentTypeArgumentIntermediateNode.ComponentTypeArgumentIntermediateNode(Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperPropertyIntermediateNode propertyNode) -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentTypeArgumentIntermediateNode.TagHelper.get -> Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentTypeArgumentIntermediateNode.TagHelper.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentTypeArgumentIntermediateNode.TypeParameterName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentTypeInferenceMethodIntermediateNode.Component.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentIntermediateNode +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentTypeInferenceMethodIntermediateNode.Component.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentTypeInferenceMethodIntermediateNode.FullTypeName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentTypeInferenceMethodIntermediateNode.MethodName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentTypeInferenceMethodIntermediateNode.MethodName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.DirectiveIntermediateNode.Directive.get -> Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor +~Microsoft.AspNetCore.Razor.Language.Intermediate.DirectiveIntermediateNode.Directive.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.DirectiveIntermediateNode.DirectiveName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.DirectiveIntermediateNode.DirectiveName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.DirectiveIntermediateNode.Tokens.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Razor.Language.Intermediate.DirectiveTokenIntermediateNode.Content.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.DirectiveTokenIntermediateNode.Content.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.DirectiveTokenIntermediateNode.DirectiveToken.get -> Microsoft.AspNetCore.Razor.Language.DirectiveTokenDescriptor +~Microsoft.AspNetCore.Razor.Language.Intermediate.DirectiveTokenIntermediateNode.DirectiveToken.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode.DocumentKind.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode.DocumentKind.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode.Options.get -> Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions +~Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode.Options.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode.Target.get -> Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTarget +~Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode.Target.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ExtensionIntermediateNode.ReportMissingCodeTargetExtension(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context) -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.FieldDeclarationIntermediateNode.FieldName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.FieldDeclarationIntermediateNode.FieldName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.FieldDeclarationIntermediateNode.FieldType.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.FieldDeclarationIntermediateNode.FieldType.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.FieldDeclarationIntermediateNode.Modifiers.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Razor.Language.Intermediate.FieldDeclarationIntermediateNode.SuppressWarnings.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeIntermediateNode.AttributeName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeIntermediateNode.AttributeName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeIntermediateNode.AttributeNameExpression.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpExpressionIntermediateNode +~Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeIntermediateNode.AttributeNameExpression.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeIntermediateNode.EventUpdatesAttributeName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeIntermediateNode.EventUpdatesAttributeName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeIntermediateNode.Prefix.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeIntermediateNode.Prefix.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeIntermediateNode.Suffix.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeIntermediateNode.Suffix.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeValueIntermediateNode.Prefix.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeValueIntermediateNode.Prefix.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.IExtensionIntermediateNodeVisitor +~Microsoft.AspNetCore.Razor.Language.Intermediate.IExtensionIntermediateNodeVisitor.VisitExtension(TNode node) -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode.Annotations.get -> Microsoft.AspNetCore.Razor.Language.ItemCollection +~Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode.Diagnostics.get -> Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection +~Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection.Add(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode item) -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection.AddRange(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection items) -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection.AddRange(System.Collections.Generic.IEnumerable items) -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection.Contains(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode item) -> bool +~Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection.CopyTo(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode[] array, int arrayIndex) -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection.Enumerator.Current.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode +~Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection.Enumerator.Enumerator(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection collection) -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection.IndexOf(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode item) -> int +~Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection.Insert(int index, Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode item) -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection.Remove(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode item) -> bool +~Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection.this[int index].get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode +~Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection.this[int index].set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeReference.Deconstruct(out Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode parent, out Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode node) -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeReference.InsertAfter(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode node) -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeReference +~Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeReference.InsertAfter(System.Collections.Generic.IEnumerable nodes) -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeReference.InsertBefore(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode node) -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeReference +~Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeReference.InsertBefore(System.Collections.Generic.IEnumerable nodes) -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeReference.IntermediateNodeReference(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode parent, Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode node) -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeReference.Node.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode +~Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeReference.Parent.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode +~Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeReference.Replace(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode node) -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeReference +~Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeWalker.Ancestors.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeWalker.Parent.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode +~Microsoft.AspNetCore.Razor.Language.Intermediate.MalformedDirectiveIntermediateNode.Directive.get -> Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor +~Microsoft.AspNetCore.Razor.Language.Intermediate.MalformedDirectiveIntermediateNode.Directive.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.MalformedDirectiveIntermediateNode.DirectiveName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.MalformedDirectiveIntermediateNode.DirectiveName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.MalformedDirectiveIntermediateNode.Tokens.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Razor.Language.Intermediate.MarkupBlockIntermediateNode.Content.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.MarkupBlockIntermediateNode.Content.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.MarkupElementIntermediateNode.Attributes.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Razor.Language.Intermediate.MarkupElementIntermediateNode.Body.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Razor.Language.Intermediate.MarkupElementIntermediateNode.Captures.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Razor.Language.Intermediate.MarkupElementIntermediateNode.SetKeys.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Razor.Language.Intermediate.MarkupElementIntermediateNode.TagName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.MarkupElementIntermediateNode.TagName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.MethodDeclarationIntermediateNode.MethodName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.MethodDeclarationIntermediateNode.MethodName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.MethodDeclarationIntermediateNode.Modifiers.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Razor.Language.Intermediate.MethodDeclarationIntermediateNode.Parameters.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Razor.Language.Intermediate.MethodDeclarationIntermediateNode.ReturnType.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.MethodDeclarationIntermediateNode.ReturnType.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.MethodParameter.Modifiers.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Razor.Language.Intermediate.MethodParameter.ParameterName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.MethodParameter.ParameterName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.MethodParameter.TypeName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.MethodParameter.TypeName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.NamespaceDeclarationIntermediateNode.Content.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.NamespaceDeclarationIntermediateNode.Content.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.PropertyDeclarationIntermediateNode.Modifiers.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Razor.Language.Intermediate.PropertyDeclarationIntermediateNode.PropertyName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.PropertyDeclarationIntermediateNode.PropertyName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.PropertyDeclarationIntermediateNode.PropertyType.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.PropertyDeclarationIntermediateNode.PropertyType.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ReferenceCaptureIntermediateNode.ComponentCaptureTypeName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.ReferenceCaptureIntermediateNode.ComponentCaptureTypeName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ReferenceCaptureIntermediateNode.FieldTypeName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.ReferenceCaptureIntermediateNode.IdentifierToken.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateToken +~Microsoft.AspNetCore.Razor.Language.Intermediate.ReferenceCaptureIntermediateNode.ReferenceCaptureIntermediateNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateToken identifierToken) -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ReferenceCaptureIntermediateNode.ReferenceCaptureIntermediateNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateToken identifierToken, string componentCaptureTypeName) -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.ReferenceCaptureIntermediateNode.TypeName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.SetKeyIntermediateNode.KeyValueToken.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateToken +~Microsoft.AspNetCore.Razor.Language.Intermediate.SetKeyIntermediateNode.SetKeyIntermediateNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateToken keyValueToken) -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeIntermediateNode.AttributeName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeIntermediateNode.AttributeName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeIntermediateNode.BoundAttribute.get -> Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeIntermediateNode.BoundAttribute.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeIntermediateNode.OriginalAttributeName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeIntermediateNode.OriginalAttributeName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeIntermediateNode.TagHelper.get -> Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeIntermediateNode.TagHelper.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeParameterIntermediateNode.AttributeName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeParameterIntermediateNode.AttributeName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeParameterIntermediateNode.AttributeNameWithoutParameter.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeParameterIntermediateNode.AttributeNameWithoutParameter.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeParameterIntermediateNode.BoundAttribute.get -> Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeParameterIntermediateNode.BoundAttribute.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeParameterIntermediateNode.BoundAttributeParameter.get -> Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeParameterIntermediateNode.BoundAttributeParameter.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeParameterIntermediateNode.OriginalAttributeName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeParameterIntermediateNode.OriginalAttributeName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeParameterIntermediateNode.TagHelper.get -> Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeParameterIntermediateNode.TagHelper.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperHtmlAttributeIntermediateNode.AttributeName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperHtmlAttributeIntermediateNode.AttributeName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperIntermediateNode.Body.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperBodyIntermediateNode +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperIntermediateNode.HtmlAttributes.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperIntermediateNode.Properties.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperIntermediateNode.TagHelpers.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperIntermediateNode.TagName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperIntermediateNode.TagName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperPropertyIntermediateNode.AttributeName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperPropertyIntermediateNode.AttributeName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperPropertyIntermediateNode.BoundAttribute.get -> Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperPropertyIntermediateNode.BoundAttribute.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperPropertyIntermediateNode.TagHelper.get -> Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor +~Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperPropertyIntermediateNode.TagHelper.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.TypeParameter.ParameterName.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.TypeParameter.ParameterName.set -> void +~Microsoft.AspNetCore.Razor.Language.Intermediate.UsingDirectiveIntermediateNode.Content.get -> string +~Microsoft.AspNetCore.Razor.Language.Intermediate.UsingDirectiveIntermediateNode.Content.set -> void +~Microsoft.AspNetCore.Razor.Language.IntermediateNodePassBase.Execute(Microsoft.AspNetCore.Razor.Language.RazorCodeDocument codeDocument, Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode documentNode) -> void +~Microsoft.AspNetCore.Razor.Language.ItemCollection.Add(System.Collections.Generic.KeyValuePair item) -> void +~Microsoft.AspNetCore.Razor.Language.ItemCollection.Add(object key, object value) -> void +~Microsoft.AspNetCore.Razor.Language.ItemCollection.Contains(System.Collections.Generic.KeyValuePair item) -> bool +~Microsoft.AspNetCore.Razor.Language.ItemCollection.CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) -> void +~Microsoft.AspNetCore.Razor.Language.ItemCollection.GetEnumerator() -> System.Collections.Generic.IEnumerator> +~Microsoft.AspNetCore.Razor.Language.ItemCollection.Remove(System.Collections.Generic.KeyValuePair item) -> bool +~Microsoft.AspNetCore.Razor.Language.ItemCollection.this[object key].get -> object +~Microsoft.AspNetCore.Razor.Language.ItemCollection.this[object key].set -> void +~Microsoft.AspNetCore.Razor.Language.ProvideRazorExtensionInitializerAttribute.ExtensionName.get -> string +~Microsoft.AspNetCore.Razor.Language.ProvideRazorExtensionInitializerAttribute.InitializerType.get -> System.Type +~Microsoft.AspNetCore.Razor.Language.ProvideRazorExtensionInitializerAttribute.ProvideRazorExtensionInitializerAttribute(string extensionName, System.Type initializerType) -> void +~Microsoft.AspNetCore.Razor.Language.RazorDiagnostic.GetMessage() -> string +~Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection.Add(Microsoft.AspNetCore.Razor.Language.RazorDiagnostic item) -> void +~Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection.AddRange(Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection items) -> void +~Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection.AddRange(System.Collections.Generic.IEnumerable items) -> void +~Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection.Contains(Microsoft.AspNetCore.Razor.Language.RazorDiagnostic item) -> bool +~Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection.CopyTo(Microsoft.AspNetCore.Razor.Language.RazorDiagnostic[] array, int arrayIndex) -> void +~Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection.Enumerator.Current.get -> Microsoft.AspNetCore.Razor.Language.RazorDiagnostic +~Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection.Enumerator.Enumerator(Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection collection) -> void +~Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection.IndexOf(Microsoft.AspNetCore.Razor.Language.RazorDiagnostic item) -> int +~Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection.Insert(int index, Microsoft.AspNetCore.Razor.Language.RazorDiagnostic item) -> void +~Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection.Remove(Microsoft.AspNetCore.Razor.Language.RazorDiagnostic item) -> bool +~Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection.this[int index].get -> Microsoft.AspNetCore.Razor.Language.RazorDiagnostic +~Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection.this[int index].set -> void +~Microsoft.AspNetCore.Razor.Language.RazorDiagnosticDescriptor.Equals(Microsoft.AspNetCore.Razor.Language.RazorDiagnosticDescriptor other) -> bool +~Microsoft.AspNetCore.Razor.Language.RazorDiagnosticDescriptor.GetMessageFormat() -> string +~Microsoft.AspNetCore.Razor.Language.RazorDiagnosticDescriptor.Id.get -> string +~Microsoft.AspNetCore.Razor.Language.RazorDiagnosticDescriptor.RazorDiagnosticDescriptor(string id, System.Func messageFormat, Microsoft.AspNetCore.Razor.Language.RazorDiagnosticSeverity severity) -> void +~Microsoft.AspNetCore.Razor.Language.RazorEngineFeatureBase.Engine.get -> Microsoft.AspNetCore.Razor.Language.RazorEngine +~Microsoft.AspNetCore.Razor.Language.RazorEngineFeatureBase.Engine.set -> void +~Microsoft.AspNetCore.Razor.Language.RazorEngineFeatureBase.GetRequiredFeature() -> TFeature +~Microsoft.AspNetCore.Razor.Language.RazorEnginePhaseBase.Engine.get -> Microsoft.AspNetCore.Razor.Language.RazorEngine +~Microsoft.AspNetCore.Razor.Language.RazorEnginePhaseBase.Engine.set -> void +~Microsoft.AspNetCore.Razor.Language.RazorEnginePhaseBase.Execute(Microsoft.AspNetCore.Razor.Language.RazorCodeDocument codeDocument) -> void +~Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion.CompareTo(Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion other) -> int +~Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion.Equals(Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion other) -> bool +~Microsoft.AspNetCore.Razor.Language.RazorProject.FindHierarchicalItems(string path, string fileName) -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.EngineFeatures.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.Phases.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Razor.Language.RazorProjectItem.CombinedPath.get -> string +~Microsoft.AspNetCore.Razor.Language.RazorProjectItem.Extension.get -> string +~Microsoft.AspNetCore.Razor.Language.RazorProjectItem.FileName.get -> string +~Microsoft.AspNetCore.Razor.Language.RazorProjectItem.FilePathWithoutExtension.get -> string +~Microsoft.AspNetCore.Razor.Language.RazorSourceDocumentProperties.FilePath.get -> string +~Microsoft.AspNetCore.Razor.Language.RazorSourceDocumentProperties.RazorSourceDocumentProperties(string filePath, string relativePath) -> void +~Microsoft.AspNetCore.Razor.Language.RazorSourceDocumentProperties.RelativePath.get -> string +~Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.Diagnostics.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.Diagnostics.set -> void +~Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.DisplayName.get -> string +~Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.DisplayName.set -> void +~Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.Equals(Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor other) -> bool +~Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.Metadata.get -> System.Collections.Generic.IReadOnlyDictionary +~Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.Metadata.set -> void +~Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.Name.get -> string +~Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.Name.set -> void +~Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.Value.get -> string +~Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.Value.set -> void +~Microsoft.AspNetCore.Razor.Language.SourceChange.Equals(Microsoft.AspNetCore.Razor.Language.SourceChange other) -> bool +~Microsoft.AspNetCore.Razor.Language.SourceChange.NewText.get -> string +~Microsoft.AspNetCore.Razor.Language.SourceChange.SourceChange(Microsoft.AspNetCore.Razor.Language.SourceSpan span, string newText) -> void +~Microsoft.AspNetCore.Razor.Language.SourceChange.SourceChange(int absoluteIndex, int length, string newText) -> void +~Microsoft.AspNetCore.Razor.Language.SourceLocation.FilePath.get -> string +~Microsoft.AspNetCore.Razor.Language.SourceLocation.FilePath.set -> void +~Microsoft.AspNetCore.Razor.Language.SourceLocation.SourceLocation(string filePath, int absoluteIndex, int lineIndex, int characterIndex) -> void +~Microsoft.AspNetCore.Razor.Language.SourceMapping.Equals(Microsoft.AspNetCore.Razor.Language.SourceMapping other) -> bool +~Microsoft.AspNetCore.Razor.Language.SourceSpan.FilePath.get -> string +~Microsoft.AspNetCore.Razor.Language.SourceSpan.SourceSpan(string filePath, int absoluteIndex, int lineIndex, int characterIndex, int length) -> void +~Microsoft.AspNetCore.Razor.Language.TagHelperBinding.Attributes.get -> System.Collections.Generic.IReadOnlyList> +~Microsoft.AspNetCore.Razor.Language.TagHelperBinding.Descriptors.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Razor.Language.TagHelperBinding.GetBoundRules(Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor descriptor) -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Razor.Language.TagHelperBinding.Mappings.get -> System.Collections.Generic.IReadOnlyDictionary> +~Microsoft.AspNetCore.Razor.Language.TagHelperBinding.ParentTagName.get -> string +~Microsoft.AspNetCore.Razor.Language.TagHelperBinding.TagHelperPrefix.get -> string +~Microsoft.AspNetCore.Razor.Language.TagHelperBinding.TagName.get -> string +~Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.AllowedChildTags.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.AllowedChildTags.set -> void +~Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.AssemblyName.get -> string +~Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.AssemblyName.set -> void +~Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.BoundAttributes.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.BoundAttributes.set -> void +~Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.Diagnostics.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.Diagnostics.set -> void +~Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.DisplayName.get -> string +~Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.DisplayName.set -> void +~Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.Documentation.get -> string +~Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.Documentation.set -> void +~Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.Equals(Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor other) -> bool +~Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.Kind.get -> string +~Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.Metadata.get -> System.Collections.Generic.IReadOnlyDictionary +~Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.Metadata.set -> void +~Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.Name.get -> string +~Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.Name.set -> void +~Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.TagHelperDescriptor(string kind) -> void +~Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.TagMatchingRules.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.TagMatchingRules.set -> void +~Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.TagOutputHint.get -> string +~Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.TagOutputHint.set -> void +~Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptor.Attributes.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptor.Attributes.set -> void +~Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptor.Diagnostics.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptor.Diagnostics.set -> void +~Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptor.Equals(Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptor other) -> bool +~Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptor.ParentTag.get -> string +~Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptor.ParentTag.set -> void +~Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptor.TagName.get -> string +~Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptor.TagName.set -> void +~abstract Microsoft.AspNetCore.Razor.Language.AllowedChildTagDescriptorBuilder.Diagnostics.get -> Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection +~abstract Microsoft.AspNetCore.Razor.Language.AllowedChildTagDescriptorBuilder.DisplayName.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.AllowedChildTagDescriptorBuilder.DisplayName.set -> void +~abstract Microsoft.AspNetCore.Razor.Language.AllowedChildTagDescriptorBuilder.Name.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.AllowedChildTagDescriptorBuilder.Name.set -> void +~abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilder.Diagnostics.get -> Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection +~abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilder.DisplayName.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilder.DisplayName.set -> void +~abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilder.Documentation.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilder.Documentation.set -> void +~abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilder.IndexerAttributeNamePrefix.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilder.IndexerAttributeNamePrefix.set -> void +~abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilder.IndexerValueTypeName.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilder.IndexerValueTypeName.set -> void +~abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilder.Metadata.get -> System.Collections.Generic.IDictionary +~abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilder.Name.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilder.Name.set -> void +~abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilder.TypeName.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilder.TypeName.set -> void +~abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptorBuilder.Diagnostics.get -> Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection +~abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptorBuilder.DisplayName.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptorBuilder.DisplayName.set -> void +~abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptorBuilder.Documentation.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptorBuilder.Documentation.set -> void +~abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptorBuilder.Metadata.get -> System.Collections.Generic.IDictionary +~abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptorBuilder.Name.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptorBuilder.Name.set -> void +~abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptorBuilder.TypeName.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptorBuilder.TypeName.set -> void +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext.AddSourceMappingFor(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode node) -> void +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext.Ancestors.get -> System.Collections.Generic.IEnumerable +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext.CodeWriter.get -> Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeWriter +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext.Diagnostics.get -> Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext.DocumentKind.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext.Items.get -> Microsoft.AspNetCore.Razor.Language.ItemCollection +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext.NodeWriter.get -> Microsoft.AspNetCore.Razor.Language.CodeGeneration.IntermediateNodeWriter +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext.Options.get -> Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext.Parent.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext.RenderChildren(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode node) -> void +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext.RenderChildren(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode node, Microsoft.AspNetCore.Razor.Language.CodeGeneration.IntermediateNodeWriter writer) -> void +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext.RenderNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode node) -> void +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext.RenderNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode node, Microsoft.AspNetCore.Razor.Language.CodeGeneration.IntermediateNodeWriter writer) -> void +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext.SourceDocument.get -> Microsoft.AspNetCore.Razor.Language.RazorSourceDocument +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTarget.CreateNodeWriter() -> Microsoft.AspNetCore.Razor.Language.CodeGeneration.IntermediateNodeWriter +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTarget.GetExtension() -> TExtension +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTarget.HasExtension() -> bool +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTargetBuilder.Build() -> Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTarget +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTargetBuilder.CodeDocument.get -> Microsoft.AspNetCore.Razor.Language.RazorCodeDocument +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTargetBuilder.Options.get -> Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTargetBuilder.TargetExtensions.get -> System.Collections.Generic.ICollection +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.DocumentWriter.WriteDocument(Microsoft.AspNetCore.Razor.Language.RazorCodeDocument codeDocument, Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode documentNode) -> Microsoft.AspNetCore.Razor.Language.RazorCSharpDocument +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.IntermediateNodeWriter.BeginWriterScope(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, string writer) -> void +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.IntermediateNodeWriter.EndWriterScope(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context) -> void +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.IntermediateNodeWriter.WriteCSharpCode(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpCodeIntermediateNode node) -> void +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.IntermediateNodeWriter.WriteCSharpCodeAttributeValue(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpCodeAttributeValueIntermediateNode node) -> void +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.IntermediateNodeWriter.WriteCSharpExpression(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpExpressionIntermediateNode node) -> void +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.IntermediateNodeWriter.WriteCSharpExpressionAttributeValue(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpExpressionAttributeValueIntermediateNode node) -> void +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.IntermediateNodeWriter.WriteHtmlAttribute(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeIntermediateNode node) -> void +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.IntermediateNodeWriter.WriteHtmlAttributeValue(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeValueIntermediateNode node) -> void +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.IntermediateNodeWriter.WriteHtmlContent(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlContentIntermediateNode node) -> void +~abstract Microsoft.AspNetCore.Razor.Language.CodeGeneration.IntermediateNodeWriter.WriteUsingDirective(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.UsingDirectiveIntermediateNode node) -> void +~abstract Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor.Description.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor.Directive.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor.DisplayName.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor.Tokens.get -> System.Collections.Generic.IReadOnlyList +~abstract Microsoft.AspNetCore.Razor.Language.DocumentClassifierPassBase.DocumentKind.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.DocumentClassifierPassBase.IsMatch(Microsoft.AspNetCore.Razor.Language.RazorCodeDocument codeDocument, Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode documentNode) -> bool +~abstract Microsoft.AspNetCore.Razor.Language.Intermediate.ExtensionIntermediateNode.WriteNode(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTarget target, Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context) -> void +~abstract Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~abstract Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~abstract Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter.WriteChildren(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection children) -> void +~abstract Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter.WriteContent(string content) -> void +~abstract Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter.WriteProperty(string key, string value) -> void +~abstract Microsoft.AspNetCore.Razor.Language.IntermediateNodePassBase.ExecuteCore(Microsoft.AspNetCore.Razor.Language.RazorCodeDocument codeDocument, Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode documentNode) -> void +~abstract Microsoft.AspNetCore.Razor.Language.RazorCSharpDocument.Diagnostics.get -> System.Collections.Generic.IReadOnlyList +~abstract Microsoft.AspNetCore.Razor.Language.RazorCSharpDocument.GeneratedCode.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.RazorCSharpDocument.Options.get -> Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions +~abstract Microsoft.AspNetCore.Razor.Language.RazorCSharpDocument.SourceMappings.get -> System.Collections.Generic.IReadOnlyList +~abstract Microsoft.AspNetCore.Razor.Language.RazorCodeDocument.Imports.get -> System.Collections.Generic.IReadOnlyList +~abstract Microsoft.AspNetCore.Razor.Language.RazorCodeDocument.Items.get -> Microsoft.AspNetCore.Razor.Language.ItemCollection +~abstract Microsoft.AspNetCore.Razor.Language.RazorCodeDocument.Source.get -> Microsoft.AspNetCore.Razor.Language.RazorSourceDocument +~abstract Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptionsBuilder.Build() -> Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions +~abstract Microsoft.AspNetCore.Razor.Language.RazorConfiguration.ConfigurationName.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.RazorConfiguration.Extensions.get -> System.Collections.Generic.IReadOnlyList +~abstract Microsoft.AspNetCore.Razor.Language.RazorConfiguration.LanguageVersion.get -> Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion +~abstract Microsoft.AspNetCore.Razor.Language.RazorDiagnostic.Equals(Microsoft.AspNetCore.Razor.Language.RazorDiagnostic other) -> bool +~abstract Microsoft.AspNetCore.Razor.Language.RazorDiagnostic.GetMessage(System.IFormatProvider formatProvider) -> string +~abstract Microsoft.AspNetCore.Razor.Language.RazorDiagnostic.Id.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.RazorEngine.Features.get -> System.Collections.Generic.IReadOnlyList +~abstract Microsoft.AspNetCore.Razor.Language.RazorEngine.Phases.get -> System.Collections.Generic.IReadOnlyList +~abstract Microsoft.AspNetCore.Razor.Language.RazorEngine.Process(Microsoft.AspNetCore.Razor.Language.RazorCodeDocument document) -> void +~abstract Microsoft.AspNetCore.Razor.Language.RazorEnginePhaseBase.ExecuteCore(Microsoft.AspNetCore.Razor.Language.RazorCodeDocument codeDocument) -> void +~abstract Microsoft.AspNetCore.Razor.Language.RazorExtension.ExtensionName.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.RazorExtensionInitializer.Initialize(Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder builder) -> void +~abstract Microsoft.AspNetCore.Razor.Language.RazorParserOptions.Directives.get -> System.Collections.Generic.IReadOnlyCollection +~abstract Microsoft.AspNetCore.Razor.Language.RazorParserOptionsBuilder.Build() -> Microsoft.AspNetCore.Razor.Language.RazorParserOptions +~abstract Microsoft.AspNetCore.Razor.Language.RazorParserOptionsBuilder.Directives.get -> System.Collections.Generic.ICollection +~abstract Microsoft.AspNetCore.Razor.Language.RazorProject.EnumerateItems(string basePath) -> System.Collections.Generic.IEnumerable +~abstract Microsoft.AspNetCore.Razor.Language.RazorProject.GetItem(string path) -> Microsoft.AspNetCore.Razor.Language.RazorProjectItem +~abstract Microsoft.AspNetCore.Razor.Language.RazorProject.GetItem(string path, string fileKind) -> Microsoft.AspNetCore.Razor.Language.RazorProjectItem +~abstract Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.Configuration.get -> Microsoft.AspNetCore.Razor.Language.RazorConfiguration +~abstract Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.CreateCodeDocumentCore(Microsoft.AspNetCore.Razor.Language.RazorProjectItem projectItem) -> Microsoft.AspNetCore.Razor.Language.RazorCodeDocument +~abstract Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.CreateCodeDocumentDesignTimeCore(Microsoft.AspNetCore.Razor.Language.RazorProjectItem projectItem) -> Microsoft.AspNetCore.Razor.Language.RazorCodeDocument +~abstract Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.Engine.get -> Microsoft.AspNetCore.Razor.Language.RazorEngine +~abstract Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.FileSystem.get -> Microsoft.AspNetCore.Razor.Language.RazorProjectFileSystem +~abstract Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.ProcessCore(Microsoft.AspNetCore.Razor.Language.RazorCodeDocument codeDocument) -> void +~abstract Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.ProjectFeatures.get -> System.Collections.Generic.IReadOnlyList +~abstract Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder.Build() -> Microsoft.AspNetCore.Razor.Language.RazorProjectEngine +~abstract Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder.Configuration.get -> Microsoft.AspNetCore.Razor.Language.RazorConfiguration +~abstract Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder.Features.get -> System.Collections.Generic.ICollection +~abstract Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder.FileSystem.get -> Microsoft.AspNetCore.Razor.Language.RazorProjectFileSystem +~abstract Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder.Phases.get -> System.Collections.Generic.IList +~abstract Microsoft.AspNetCore.Razor.Language.RazorProjectItem.BasePath.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.RazorProjectItem.FilePath.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.RazorProjectItem.PhysicalPath.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.RazorProjectItem.Read() -> System.IO.Stream +~abstract Microsoft.AspNetCore.Razor.Language.RazorSourceDocument.CopyTo(int sourceIndex, char[] destination, int destinationIndex, int count) -> void +~abstract Microsoft.AspNetCore.Razor.Language.RazorSourceDocument.Encoding.get -> System.Text.Encoding +~abstract Microsoft.AspNetCore.Razor.Language.RazorSourceDocument.FilePath.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.RazorSourceDocument.GetChecksum() -> byte[] +~abstract Microsoft.AspNetCore.Razor.Language.RazorSourceDocument.Lines.get -> Microsoft.AspNetCore.Razor.Language.RazorSourceLineCollection +~abstract Microsoft.AspNetCore.Razor.Language.RazorSyntaxTree.Diagnostics.get -> System.Collections.Generic.IReadOnlyList +~abstract Microsoft.AspNetCore.Razor.Language.RazorSyntaxTree.Options.get -> Microsoft.AspNetCore.Razor.Language.RazorParserOptions +~abstract Microsoft.AspNetCore.Razor.Language.RazorSyntaxTree.Source.get -> Microsoft.AspNetCore.Razor.Language.RazorSourceDocument +~abstract Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptorBuilder.Diagnostics.get -> Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection +~abstract Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptorBuilder.Name.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptorBuilder.Name.set -> void +~abstract Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptorBuilder.Value.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptorBuilder.Value.set -> void +~abstract Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilder.AllowChildTag(System.Action configure) -> void +~abstract Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilder.AllowedChildTags.get -> System.Collections.Generic.IReadOnlyList +~abstract Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilder.AssemblyName.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilder.BindAttribute(System.Action configure) -> void +~abstract Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilder.BoundAttributes.get -> System.Collections.Generic.IReadOnlyList +~abstract Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilder.Build() -> Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor +~abstract Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilder.Diagnostics.get -> Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection +~abstract Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilder.DisplayName.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilder.DisplayName.set -> void +~abstract Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilder.Documentation.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilder.Documentation.set -> void +~abstract Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilder.Kind.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilder.Metadata.get -> System.Collections.Generic.IDictionary +~abstract Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilder.Name.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilder.TagMatchingRule(System.Action configure) -> void +~abstract Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilder.TagMatchingRules.get -> System.Collections.Generic.IReadOnlyList +~abstract Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilder.TagOutputHint.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilder.TagOutputHint.set -> void +~abstract Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorProviderContext.Items.get -> Microsoft.AspNetCore.Razor.Language.ItemCollection +~abstract Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorProviderContext.Results.get -> System.Collections.Generic.ICollection +~abstract Microsoft.AspNetCore.Razor.Language.TagHelperDocumentContext.Prefix.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.TagHelperDocumentContext.TagHelpers.get -> System.Collections.Generic.IReadOnlyList +~abstract Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptorBuilder.Attribute(System.Action configure) -> void +~abstract Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptorBuilder.Attributes.get -> System.Collections.Generic.IReadOnlyList +~abstract Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptorBuilder.Diagnostics.get -> Microsoft.AspNetCore.Razor.Language.RazorDiagnosticCollection +~abstract Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptorBuilder.ParentTag.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptorBuilder.ParentTag.set -> void +~abstract Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptorBuilder.TagName.get -> string +~abstract Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptorBuilder.TagName.set -> void +~override Microsoft.AspNetCore.Razor.Language.AllowedChildTagDescriptor.Equals(object obj) -> bool +~override Microsoft.AspNetCore.Razor.Language.AllowedChildTagDescriptor.ToString() -> string +~override Microsoft.AspNetCore.Razor.Language.AssemblyExtension.ExtensionName.get -> string +~override Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.Equals(object obj) -> bool +~override Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.ToString() -> string +~override Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor.Equals(object obj) -> bool +~override Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor.ToString() -> string +~override Microsoft.AspNetCore.Razor.Language.CodeGeneration.DesignTimeNodeWriter.BeginWriterScope(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, string writer) -> void +~override Microsoft.AspNetCore.Razor.Language.CodeGeneration.DesignTimeNodeWriter.EndWriterScope(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context) -> void +~override Microsoft.AspNetCore.Razor.Language.CodeGeneration.DesignTimeNodeWriter.WriteCSharpCode(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpCodeIntermediateNode node) -> void +~override Microsoft.AspNetCore.Razor.Language.CodeGeneration.DesignTimeNodeWriter.WriteCSharpCodeAttributeValue(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpCodeAttributeValueIntermediateNode node) -> void +~override Microsoft.AspNetCore.Razor.Language.CodeGeneration.DesignTimeNodeWriter.WriteCSharpExpression(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpExpressionIntermediateNode node) -> void +~override Microsoft.AspNetCore.Razor.Language.CodeGeneration.DesignTimeNodeWriter.WriteCSharpExpressionAttributeValue(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpExpressionAttributeValueIntermediateNode node) -> void +~override Microsoft.AspNetCore.Razor.Language.CodeGeneration.DesignTimeNodeWriter.WriteHtmlAttribute(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeIntermediateNode node) -> void +~override Microsoft.AspNetCore.Razor.Language.CodeGeneration.DesignTimeNodeWriter.WriteHtmlAttributeValue(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeValueIntermediateNode node) -> void +~override Microsoft.AspNetCore.Razor.Language.CodeGeneration.DesignTimeNodeWriter.WriteHtmlContent(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlContentIntermediateNode node) -> void +~override Microsoft.AspNetCore.Razor.Language.CodeGeneration.DesignTimeNodeWriter.WriteUsingDirective(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.UsingDirectiveIntermediateNode node) -> void +~override Microsoft.AspNetCore.Razor.Language.CodeGeneration.LinePragma.Equals(object obj) -> bool +~override Microsoft.AspNetCore.Razor.Language.CodeGeneration.LinePragma.ToString() -> string +~override Microsoft.AspNetCore.Razor.Language.CodeGeneration.RuntimeNodeWriter.BeginWriterScope(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, string writer) -> void +~override Microsoft.AspNetCore.Razor.Language.CodeGeneration.RuntimeNodeWriter.EndWriterScope(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context) -> void +~override Microsoft.AspNetCore.Razor.Language.CodeGeneration.RuntimeNodeWriter.WriteCSharpCode(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpCodeIntermediateNode node) -> void +~override Microsoft.AspNetCore.Razor.Language.CodeGeneration.RuntimeNodeWriter.WriteCSharpCodeAttributeValue(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpCodeAttributeValueIntermediateNode node) -> void +~override Microsoft.AspNetCore.Razor.Language.CodeGeneration.RuntimeNodeWriter.WriteCSharpExpression(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpExpressionIntermediateNode node) -> void +~override Microsoft.AspNetCore.Razor.Language.CodeGeneration.RuntimeNodeWriter.WriteCSharpExpressionAttributeValue(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpExpressionAttributeValueIntermediateNode node) -> void +~override Microsoft.AspNetCore.Razor.Language.CodeGeneration.RuntimeNodeWriter.WriteHtmlAttribute(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeIntermediateNode node) -> void +~override Microsoft.AspNetCore.Razor.Language.CodeGeneration.RuntimeNodeWriter.WriteHtmlAttributeValue(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeValueIntermediateNode node) -> void +~override Microsoft.AspNetCore.Razor.Language.CodeGeneration.RuntimeNodeWriter.WriteHtmlContent(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlContentIntermediateNode node) -> void +~override Microsoft.AspNetCore.Razor.Language.CodeGeneration.RuntimeNodeWriter.WriteUsingDirective(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.UsingDirectiveIntermediateNode node) -> void +~override Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperBodyIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperBodyIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperBodyIntermediateNode.WriteNode(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTarget target, Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context) -> void +~override Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperCreateIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperCreateIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperCreateIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperCreateIntermediateNode.WriteNode(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTarget target, Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context) -> void +~override Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperExecuteIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperExecuteIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperExecuteIntermediateNode.WriteNode(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTarget target, Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context) -> void +~override Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperHtmlAttributeIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperHtmlAttributeIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperHtmlAttributeIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperHtmlAttributeIntermediateNode.WriteNode(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTarget target, Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context) -> void +~override Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperPropertyIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperPropertyIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperPropertyIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperPropertyIntermediateNode.WriteNode(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTarget target, Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context) -> void +~override Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperRuntimeIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperRuntimeIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Extensions.DefaultTagHelperRuntimeIntermediateNode.WriteNode(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTarget target, Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context) -> void +~override Microsoft.AspNetCore.Razor.Language.Extensions.RazorCompiledItemMetadataAttributeIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Extensions.RazorCompiledItemMetadataAttributeIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Extensions.RazorCompiledItemMetadataAttributeIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Extensions.RazorCompiledItemMetadataAttributeIntermediateNode.WriteNode(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTarget target, Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context) -> void +~override Microsoft.AspNetCore.Razor.Language.Extensions.SectionIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Extensions.SectionIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Extensions.SectionIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Extensions.SectionIntermediateNode.WriteNode(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTarget target, Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context) -> void +~override Microsoft.AspNetCore.Razor.Language.Extensions.TemplateIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Extensions.TemplateIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Extensions.TemplateIntermediateNode.WriteNode(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTarget target, Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpCodeAttributeValueIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpCodeAttributeValueIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpCodeAttributeValueIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpCodeIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpCodeIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpCodeIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpExpressionAttributeValueIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpExpressionAttributeValueIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpExpressionAttributeValueIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpExpressionIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpExpressionIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpExpressionIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.ClassDeclarationIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.ClassDeclarationIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.ClassDeclarationIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentAttributeIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentAttributeIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentAttributeIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentChildContentIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentChildContentIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentChildContentIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentTypeArgumentIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentTypeArgumentIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentTypeArgumentIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentTypeInferenceMethodIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentTypeInferenceMethodIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentTypeInferenceMethodIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.DirectiveIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.DirectiveIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.DirectiveIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.DirectiveTokenIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.DirectiveTokenIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.DirectiveTokenIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.FieldDeclarationIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.FieldDeclarationIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.FieldDeclarationIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeValueIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeValueIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeValueIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlContentIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlContentIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlContentIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeWalker.VisitDefault(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode node) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateToken.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateToken.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateToken.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.MalformedDirectiveIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.MalformedDirectiveIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.MalformedDirectiveIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.MarkupBlockIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.MarkupBlockIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.MarkupBlockIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.MarkupElementIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.MarkupElementIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.MarkupElementIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.MethodDeclarationIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.MethodDeclarationIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.MethodDeclarationIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.NamespaceDeclarationIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.NamespaceDeclarationIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.NamespaceDeclarationIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.PropertyDeclarationIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.PropertyDeclarationIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.ReferenceCaptureIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.ReferenceCaptureIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.ReferenceCaptureIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.SetKeyIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.SetKeyIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.SetKeyIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.SplatIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.SplatIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.SplatIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperBodyIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperBodyIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeParameterIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeParameterIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeParameterIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperHtmlAttributeIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperHtmlAttributeIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperHtmlAttributeIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperPropertyIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperPropertyIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperPropertyIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.UsingDirectiveIntermediateNode.Accept(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~override Microsoft.AspNetCore.Razor.Language.Intermediate.UsingDirectiveIntermediateNode.Children.get -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~override Microsoft.AspNetCore.Razor.Language.Intermediate.UsingDirectiveIntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~override Microsoft.AspNetCore.Razor.Language.RazorConfiguration.Equals(object obj) -> bool +~override Microsoft.AspNetCore.Razor.Language.RazorDiagnostic.Equals(object obj) -> bool +~override Microsoft.AspNetCore.Razor.Language.RazorDiagnostic.ToString() -> string +~override Microsoft.AspNetCore.Razor.Language.RazorDiagnosticDescriptor.Equals(object obj) -> bool +~override Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion.ToString() -> string +~override Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.Equals(object obj) -> bool +~override Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor.ToString() -> string +~override Microsoft.AspNetCore.Razor.Language.SourceChange.Equals(object obj) -> bool +~override Microsoft.AspNetCore.Razor.Language.SourceChange.ToString() -> string +~override Microsoft.AspNetCore.Razor.Language.SourceLocation.Equals(object obj) -> bool +~override Microsoft.AspNetCore.Razor.Language.SourceLocation.ToString() -> string +~override Microsoft.AspNetCore.Razor.Language.SourceMapping.Equals(object obj) -> bool +~override Microsoft.AspNetCore.Razor.Language.SourceMapping.ToString() -> string +~override Microsoft.AspNetCore.Razor.Language.SourceSpan.Equals(object obj) -> bool +~override Microsoft.AspNetCore.Razor.Language.SourceSpan.ToString() -> string +~override Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.Equals(object obj) -> bool +~override Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.ToString() -> string +~override Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptor.Equals(object obj) -> bool +~override sealed Microsoft.AspNetCore.Razor.Language.DocumentClassifierPassBase.ExecuteCore(Microsoft.AspNetCore.Razor.Language.RazorCodeDocument codeDocument, Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode documentNode) -> void +~static Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilderExtensions.AsDictionary(this Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilder builder, string attributeNamePrefix, string valueTypeName) -> void +~static Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilderExtensions.GetPropertyName(this Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilder builder) -> string +~static Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilderExtensions.GetPropertyName(this Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptorBuilder builder) -> string +~static Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilderExtensions.IsDirectiveAttribute(this Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilder builder) -> bool +~static Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilderExtensions.SetPropertyName(this Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilder builder, string propertyName) -> void +~static Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilderExtensions.SetPropertyName(this Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptorBuilder builder, string propertyName) -> void +~static Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorExtensions.GetPropertyName(this Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor attribute) -> string +~static Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorExtensions.GetPropertyName(this Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor parameter) -> string +~static Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorExtensions.IsDefaultKind(this Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor attribute) -> bool +~static Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorExtensions.IsDefaultKind(this Microsoft.AspNetCore.Razor.Language.BoundAttributeParameterDescriptor parameter) -> bool +~static Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorExtensions.IsDirectiveAttribute(this Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor attribute) -> bool +~static Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTarget.CreateDefault(Microsoft.AspNetCore.Razor.Language.RazorCodeDocument codeDocument, Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions options) -> Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTarget +~static Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTarget.CreateDefault(Microsoft.AspNetCore.Razor.Language.RazorCodeDocument codeDocument, Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions options, System.Action configure) -> Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTarget +~static Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTarget.CreateEmpty(Microsoft.AspNetCore.Razor.Language.RazorCodeDocument codeDocument, Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions options, System.Action configure) -> Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTarget +~static Microsoft.AspNetCore.Razor.Language.CodeGeneration.DocumentWriter.CreateDefault(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTarget codeTarget, Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions options) -> Microsoft.AspNetCore.Razor.Language.CodeGeneration.DocumentWriter +~static Microsoft.AspNetCore.Razor.Language.Components.ComponentCodeDirective.Register(Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder builder) -> void +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor.CreateCodeBlockDirective(string directive) -> Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor.CreateCodeBlockDirective(string directive, System.Action configure) -> Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor.CreateDirective(string directive, Microsoft.AspNetCore.Razor.Language.DirectiveKind kind) -> Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor.CreateDirective(string directive, Microsoft.AspNetCore.Razor.Language.DirectiveKind kind, System.Action configure) -> Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor.CreateRazorBlockDirective(string directive) -> Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor.CreateRazorBlockDirective(string directive, System.Action configure) -> Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor.CreateSingleLineDirective(string directive) -> Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor.CreateSingleLineDirective(string directive, System.Action configure) -> Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptorBuilderExtensions.AddAttributeToken(this Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder builder) -> Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptorBuilderExtensions.AddAttributeToken(this Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder builder, string name, string description) -> Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptorBuilderExtensions.AddBooleanToken(this Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder builder) -> Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptorBuilderExtensions.AddBooleanToken(this Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder builder, string name, string description) -> Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptorBuilderExtensions.AddMemberToken(this Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder builder) -> Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptorBuilderExtensions.AddMemberToken(this Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder builder, string name, string description) -> Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptorBuilderExtensions.AddNamespaceToken(this Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder builder) -> Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptorBuilderExtensions.AddNamespaceToken(this Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder builder, string name, string description) -> Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptorBuilderExtensions.AddOptionalAttributeToken(this Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder builder) -> Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptorBuilderExtensions.AddOptionalAttributeToken(this Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder builder, string name, string description) -> Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptorBuilderExtensions.AddOptionalMemberToken(this Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder builder) -> Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptorBuilderExtensions.AddOptionalMemberToken(this Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder builder, string name, string description) -> Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptorBuilderExtensions.AddOptionalNamespaceToken(this Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder builder) -> Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptorBuilderExtensions.AddOptionalNamespaceToken(this Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder builder, string name, string description) -> Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptorBuilderExtensions.AddOptionalStringToken(this Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder builder) -> Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptorBuilderExtensions.AddOptionalStringToken(this Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder builder, string name, string description) -> Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptorBuilderExtensions.AddOptionalTypeToken(this Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder builder) -> Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptorBuilderExtensions.AddOptionalTypeToken(this Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder builder, string name, string description) -> Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptorBuilderExtensions.AddStringToken(this Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder builder) -> Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptorBuilderExtensions.AddStringToken(this Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder builder, string name, string description) -> Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptorBuilderExtensions.AddTypeToken(this Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder builder) -> Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder +~static Microsoft.AspNetCore.Razor.Language.DirectiveDescriptorBuilderExtensions.AddTypeToken(this Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder builder, string name, string description) -> Microsoft.AspNetCore.Razor.Language.IDirectiveDescriptorBuilder +~static Microsoft.AspNetCore.Razor.Language.DirectiveTokenDescriptor.CreateToken(Microsoft.AspNetCore.Razor.Language.DirectiveTokenKind kind) -> Microsoft.AspNetCore.Razor.Language.DirectiveTokenDescriptor +~static Microsoft.AspNetCore.Razor.Language.DirectiveTokenDescriptor.CreateToken(Microsoft.AspNetCore.Razor.Language.DirectiveTokenKind kind, bool optional) -> Microsoft.AspNetCore.Razor.Language.DirectiveTokenDescriptor +~static Microsoft.AspNetCore.Razor.Language.DirectiveTokenDescriptor.CreateToken(Microsoft.AspNetCore.Razor.Language.DirectiveTokenKind kind, bool optional, string name, string description) -> Microsoft.AspNetCore.Razor.Language.DirectiveTokenDescriptor +~static Microsoft.AspNetCore.Razor.Language.Extensions.FunctionsDirective.Register(Microsoft.AspNetCore.Razor.Language.IRazorEngineBuilder builder) -> void +~static Microsoft.AspNetCore.Razor.Language.Extensions.FunctionsDirective.Register(Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder builder) -> void +~static Microsoft.AspNetCore.Razor.Language.Extensions.InheritsDirective.Register(Microsoft.AspNetCore.Razor.Language.IRazorEngineBuilder builder) -> void +~static Microsoft.AspNetCore.Razor.Language.Extensions.InheritsDirective.Register(Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder builder) -> void +~static Microsoft.AspNetCore.Razor.Language.Extensions.NamespaceDirective.Register(Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder builder) -> Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder +~static Microsoft.AspNetCore.Razor.Language.Extensions.SectionDirective.Register(Microsoft.AspNetCore.Razor.Language.IRazorEngineBuilder builder) -> void +~static Microsoft.AspNetCore.Razor.Language.Extensions.SectionDirective.Register(Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder builder) -> void +~static Microsoft.AspNetCore.Razor.Language.FileKinds.GetComponentFileKindFromFilePath(string filePath) -> string +~static Microsoft.AspNetCore.Razor.Language.FileKinds.GetFileKindFromFilePath(string filePath) -> string +~static Microsoft.AspNetCore.Razor.Language.FileKinds.IsComponent(string fileKind) -> bool +~static Microsoft.AspNetCore.Razor.Language.FileKinds.IsComponentImport(string fileKind) -> bool +~static Microsoft.AspNetCore.Razor.Language.HtmlConventions.ToHtmlCase(string name) -> string +~static Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNodeExtensions.FindDescendantReferences(this Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode document) -> System.Collections.Generic.IReadOnlyList +~static Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNodeExtensions.FindDirectiveReferences(this Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode node, Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor directive) -> System.Collections.Generic.IReadOnlyList +~static Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNodeExtensions.FindPrimaryClass(this Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode node) -> Microsoft.AspNetCore.Razor.Language.Intermediate.ClassDeclarationIntermediateNode +~static Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNodeExtensions.FindPrimaryMethod(this Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode node) -> Microsoft.AspNetCore.Razor.Language.Intermediate.MethodDeclarationIntermediateNode +~static Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNodeExtensions.FindPrimaryNamespace(this Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode node) -> Microsoft.AspNetCore.Razor.Language.Intermediate.NamespaceDeclarationIntermediateNode +~static Microsoft.AspNetCore.Razor.Language.Intermediate.ExtensionIntermediateNode.AcceptExtensionNode(TNode node, Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor visitor) -> void +~static Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeExtensions.FindDescendantNodes(this Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode node) -> System.Collections.Generic.IReadOnlyList +~static Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeExtensions.GetAllDiagnostics(this Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode node) -> System.Collections.Generic.IReadOnlyList +~static Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeExtensions.IsImported(this Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode node) -> bool +~static Microsoft.AspNetCore.Razor.Language.RazorCSharpDocument.Create(string generatedCode, Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions options, System.Collections.Generic.IEnumerable diagnostics) -> Microsoft.AspNetCore.Razor.Language.RazorCSharpDocument +~static Microsoft.AspNetCore.Razor.Language.RazorCSharpDocument.Create(string generatedCode, Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions options, System.Collections.Generic.IEnumerable diagnostics, System.Collections.Generic.IEnumerable sourceMappings, System.Collections.Generic.IEnumerable linePragmas) -> Microsoft.AspNetCore.Razor.Language.RazorCSharpDocument +~static Microsoft.AspNetCore.Razor.Language.RazorCodeDocument.Create(Microsoft.AspNetCore.Razor.Language.RazorSourceDocument source) -> Microsoft.AspNetCore.Razor.Language.RazorCodeDocument +~static Microsoft.AspNetCore.Razor.Language.RazorCodeDocument.Create(Microsoft.AspNetCore.Razor.Language.RazorSourceDocument source, System.Collections.Generic.IEnumerable imports) -> Microsoft.AspNetCore.Razor.Language.RazorCodeDocument +~static Microsoft.AspNetCore.Razor.Language.RazorCodeDocument.Create(Microsoft.AspNetCore.Razor.Language.RazorSourceDocument source, System.Collections.Generic.IEnumerable imports, Microsoft.AspNetCore.Razor.Language.RazorParserOptions parserOptions, Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions codeGenerationOptions) -> Microsoft.AspNetCore.Razor.Language.RazorCodeDocument +~static Microsoft.AspNetCore.Razor.Language.RazorCodeDocumentExtensions.GetCSharpDocument(this Microsoft.AspNetCore.Razor.Language.RazorCodeDocument document) -> Microsoft.AspNetCore.Razor.Language.RazorCSharpDocument +~static Microsoft.AspNetCore.Razor.Language.RazorCodeDocumentExtensions.GetCodeGenerationOptions(this Microsoft.AspNetCore.Razor.Language.RazorCodeDocument document) -> Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions +~static Microsoft.AspNetCore.Razor.Language.RazorCodeDocumentExtensions.GetCssScope(this Microsoft.AspNetCore.Razor.Language.RazorCodeDocument document) -> string +~static Microsoft.AspNetCore.Razor.Language.RazorCodeDocumentExtensions.GetDocumentIntermediateNode(this Microsoft.AspNetCore.Razor.Language.RazorCodeDocument document) -> Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode +~static Microsoft.AspNetCore.Razor.Language.RazorCodeDocumentExtensions.GetFileKind(this Microsoft.AspNetCore.Razor.Language.RazorCodeDocument document) -> string +~static Microsoft.AspNetCore.Razor.Language.RazorCodeDocumentExtensions.GetImportSyntaxTrees(this Microsoft.AspNetCore.Razor.Language.RazorCodeDocument document) -> System.Collections.Generic.IReadOnlyList +~static Microsoft.AspNetCore.Razor.Language.RazorCodeDocumentExtensions.GetParserOptions(this Microsoft.AspNetCore.Razor.Language.RazorCodeDocument document) -> Microsoft.AspNetCore.Razor.Language.RazorParserOptions +~static Microsoft.AspNetCore.Razor.Language.RazorCodeDocumentExtensions.GetSyntaxTree(this Microsoft.AspNetCore.Razor.Language.RazorCodeDocument document) -> Microsoft.AspNetCore.Razor.Language.RazorSyntaxTree +~static Microsoft.AspNetCore.Razor.Language.RazorCodeDocumentExtensions.GetTagHelperContext(this Microsoft.AspNetCore.Razor.Language.RazorCodeDocument document) -> Microsoft.AspNetCore.Razor.Language.TagHelperDocumentContext +~static Microsoft.AspNetCore.Razor.Language.RazorCodeDocumentExtensions.SetCSharpDocument(this Microsoft.AspNetCore.Razor.Language.RazorCodeDocument document, Microsoft.AspNetCore.Razor.Language.RazorCSharpDocument csharp) -> void +~static Microsoft.AspNetCore.Razor.Language.RazorCodeDocumentExtensions.SetCodeGenerationOptions(this Microsoft.AspNetCore.Razor.Language.RazorCodeDocument document, Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions codeGenerationOptions) -> void +~static Microsoft.AspNetCore.Razor.Language.RazorCodeDocumentExtensions.SetCssScope(this Microsoft.AspNetCore.Razor.Language.RazorCodeDocument document, string cssScope) -> void +~static Microsoft.AspNetCore.Razor.Language.RazorCodeDocumentExtensions.SetDocumentIntermediateNode(this Microsoft.AspNetCore.Razor.Language.RazorCodeDocument document, Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode documentNode) -> void +~static Microsoft.AspNetCore.Razor.Language.RazorCodeDocumentExtensions.SetFileKind(this Microsoft.AspNetCore.Razor.Language.RazorCodeDocument document, string fileKind) -> void +~static Microsoft.AspNetCore.Razor.Language.RazorCodeDocumentExtensions.SetImportSyntaxTrees(this Microsoft.AspNetCore.Razor.Language.RazorCodeDocument document, System.Collections.Generic.IReadOnlyList syntaxTrees) -> void +~static Microsoft.AspNetCore.Razor.Language.RazorCodeDocumentExtensions.SetParserOptions(this Microsoft.AspNetCore.Razor.Language.RazorCodeDocument document, Microsoft.AspNetCore.Razor.Language.RazorParserOptions parserOptions) -> void +~static Microsoft.AspNetCore.Razor.Language.RazorCodeDocumentExtensions.SetSyntaxTree(this Microsoft.AspNetCore.Razor.Language.RazorCodeDocument document, Microsoft.AspNetCore.Razor.Language.RazorSyntaxTree syntaxTree) -> void +~static Microsoft.AspNetCore.Razor.Language.RazorCodeDocumentExtensions.SetTagHelperContext(this Microsoft.AspNetCore.Razor.Language.RazorCodeDocument document, Microsoft.AspNetCore.Razor.Language.TagHelperDocumentContext context) -> void +~static Microsoft.AspNetCore.Razor.Language.RazorCodeDocumentExtensions.TryComputeNamespace(this Microsoft.AspNetCore.Razor.Language.RazorCodeDocument document, bool fallbackToRootNamespace, out string namespace) -> bool +~static Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions.Create(System.Action configure) -> Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions +~static Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions.CreateDefault() -> Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions +~static Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions.CreateDesignTime(System.Action configure) -> Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions +~static Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions.CreateDesignTimeDefault() -> Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions +~static Microsoft.AspNetCore.Razor.Language.RazorConfiguration.Create(Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion languageVersion, string configurationName, System.Collections.Generic.IEnumerable extensions) -> Microsoft.AspNetCore.Razor.Language.RazorConfiguration +~static Microsoft.AspNetCore.Razor.Language.RazorDiagnostic.Create(Microsoft.AspNetCore.Razor.Language.RazorDiagnosticDescriptor descriptor, Microsoft.AspNetCore.Razor.Language.SourceSpan span) -> Microsoft.AspNetCore.Razor.Language.RazorDiagnostic +~static Microsoft.AspNetCore.Razor.Language.RazorDiagnostic.Create(Microsoft.AspNetCore.Razor.Language.RazorDiagnosticDescriptor descriptor, Microsoft.AspNetCore.Razor.Language.SourceSpan span, params object[] args) -> Microsoft.AspNetCore.Razor.Language.RazorDiagnostic +~static Microsoft.AspNetCore.Razor.Language.RazorEngine.Create() -> Microsoft.AspNetCore.Razor.Language.RazorEngine +~static Microsoft.AspNetCore.Razor.Language.RazorEngine.Create(System.Action configure) -> Microsoft.AspNetCore.Razor.Language.RazorEngine +~static Microsoft.AspNetCore.Razor.Language.RazorEngine.CreateDesignTime() -> Microsoft.AspNetCore.Razor.Language.RazorEngine +~static Microsoft.AspNetCore.Razor.Language.RazorEngine.CreateDesignTime(System.Action configure) -> Microsoft.AspNetCore.Razor.Language.RazorEngine +~static Microsoft.AspNetCore.Razor.Language.RazorEngine.CreateDesignTimeEmpty(System.Action configure) -> Microsoft.AspNetCore.Razor.Language.RazorEngine +~static Microsoft.AspNetCore.Razor.Language.RazorEngine.CreateEmpty(System.Action configure) -> Microsoft.AspNetCore.Razor.Language.RazorEngine +~static Microsoft.AspNetCore.Razor.Language.RazorEngineBuilderExtensions.AddDirective(this Microsoft.AspNetCore.Razor.Language.IRazorEngineBuilder builder, Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor directive) -> Microsoft.AspNetCore.Razor.Language.IRazorEngineBuilder +~static Microsoft.AspNetCore.Razor.Language.RazorEngineBuilderExtensions.AddTargetExtension(this Microsoft.AspNetCore.Razor.Language.IRazorEngineBuilder builder, Microsoft.AspNetCore.Razor.Language.CodeGeneration.ICodeTargetExtension extension) -> Microsoft.AspNetCore.Razor.Language.IRazorEngineBuilder +~static Microsoft.AspNetCore.Razor.Language.RazorEngineBuilderExtensions.ConfigureClass(this Microsoft.AspNetCore.Razor.Language.IRazorEngineBuilder builder, System.Action configureClass) -> Microsoft.AspNetCore.Razor.Language.IRazorEngineBuilder +~static Microsoft.AspNetCore.Razor.Language.RazorEngineBuilderExtensions.SetBaseType(this Microsoft.AspNetCore.Razor.Language.IRazorEngineBuilder builder, string baseType) -> Microsoft.AspNetCore.Razor.Language.IRazorEngineBuilder +~static Microsoft.AspNetCore.Razor.Language.RazorEngineBuilderExtensions.SetNamespace(this Microsoft.AspNetCore.Razor.Language.IRazorEngineBuilder builder, string namespaceName) -> Microsoft.AspNetCore.Razor.Language.IRazorEngineBuilder +~static Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion.Parse(string languageVersion) -> Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion +~static Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion.TryParse(string languageVersion, out Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion version) -> bool +~static Microsoft.AspNetCore.Razor.Language.RazorParserOptions.Create(System.Action configure) -> Microsoft.AspNetCore.Razor.Language.RazorParserOptions +~static Microsoft.AspNetCore.Razor.Language.RazorParserOptions.Create(System.Action configure, string fileKind) -> Microsoft.AspNetCore.Razor.Language.RazorParserOptions +~static Microsoft.AspNetCore.Razor.Language.RazorParserOptions.CreateDefault() -> Microsoft.AspNetCore.Razor.Language.RazorParserOptions +~static Microsoft.AspNetCore.Razor.Language.RazorParserOptions.CreateDesignTime(System.Action configure) -> Microsoft.AspNetCore.Razor.Language.RazorParserOptions +~static Microsoft.AspNetCore.Razor.Language.RazorParserOptions.CreateDesignTime(System.Action configure, string fileKind) -> Microsoft.AspNetCore.Razor.Language.RazorParserOptions +~static Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.Create(Microsoft.AspNetCore.Razor.Language.RazorConfiguration configuration, Microsoft.AspNetCore.Razor.Language.RazorProjectFileSystem fileSystem) -> Microsoft.AspNetCore.Razor.Language.RazorProjectEngine +~static Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.Create(Microsoft.AspNetCore.Razor.Language.RazorConfiguration configuration, Microsoft.AspNetCore.Razor.Language.RazorProjectFileSystem fileSystem, System.Action configure) -> Microsoft.AspNetCore.Razor.Language.RazorProjectEngine +~static Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilderExtensions.AddDefaultImports(this Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder builder, params string[] imports) -> Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder +~static Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilderExtensions.AddDirective(this Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder builder, Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor directive) -> Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder +~static Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilderExtensions.AddDirective(this Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder builder, Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor directive, params string[] fileKinds) -> Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder +~static Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilderExtensions.AddTargetExtension(this Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder builder, Microsoft.AspNetCore.Razor.Language.CodeGeneration.ICodeTargetExtension extension) -> Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder +~static Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilderExtensions.ConfigureClass(this Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder builder, System.Action configureClass) -> Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder +~static Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilderExtensions.SetBaseType(this Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder builder, string baseType) -> Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder +~static Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilderExtensions.SetImportFeature(this Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder builder, Microsoft.AspNetCore.Razor.Language.IImportProjectFeature feature) -> void +~static Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilderExtensions.SetNamespace(this Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder builder, string namespaceName) -> Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder +~static Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilderExtensions.SetRootNamespace(this Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder builder, string rootNamespace) -> Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder +~static Microsoft.AspNetCore.Razor.Language.RazorProjectFileSystem.Create(string rootDirectoryPath) -> Microsoft.AspNetCore.Razor.Language.RazorProjectFileSystem +~static Microsoft.AspNetCore.Razor.Language.RazorSourceDocument.Create(string content, Microsoft.AspNetCore.Razor.Language.RazorSourceDocumentProperties properties) -> Microsoft.AspNetCore.Razor.Language.RazorSourceDocument +~static Microsoft.AspNetCore.Razor.Language.RazorSourceDocument.Create(string content, System.Text.Encoding encoding, Microsoft.AspNetCore.Razor.Language.RazorSourceDocumentProperties properties) -> Microsoft.AspNetCore.Razor.Language.RazorSourceDocument +~static Microsoft.AspNetCore.Razor.Language.RazorSourceDocument.Create(string content, string fileName) -> Microsoft.AspNetCore.Razor.Language.RazorSourceDocument +~static Microsoft.AspNetCore.Razor.Language.RazorSourceDocument.Create(string content, string fileName, System.Text.Encoding encoding) -> Microsoft.AspNetCore.Razor.Language.RazorSourceDocument +~static Microsoft.AspNetCore.Razor.Language.RazorSourceDocument.ReadFrom(Microsoft.AspNetCore.Razor.Language.RazorProjectItem projectItem) -> Microsoft.AspNetCore.Razor.Language.RazorSourceDocument +~static Microsoft.AspNetCore.Razor.Language.RazorSourceDocument.ReadFrom(System.IO.Stream stream, System.Text.Encoding encoding, Microsoft.AspNetCore.Razor.Language.RazorSourceDocumentProperties properties) -> Microsoft.AspNetCore.Razor.Language.RazorSourceDocument +~static Microsoft.AspNetCore.Razor.Language.RazorSourceDocument.ReadFrom(System.IO.Stream stream, string fileName) -> Microsoft.AspNetCore.Razor.Language.RazorSourceDocument +~static Microsoft.AspNetCore.Razor.Language.RazorSourceDocument.ReadFrom(System.IO.Stream stream, string fileName, System.Text.Encoding encoding) -> Microsoft.AspNetCore.Razor.Language.RazorSourceDocument +~static Microsoft.AspNetCore.Razor.Language.RazorSyntaxTree.Parse(Microsoft.AspNetCore.Razor.Language.RazorSourceDocument source) -> Microsoft.AspNetCore.Razor.Language.RazorSyntaxTree +~static Microsoft.AspNetCore.Razor.Language.RazorSyntaxTree.Parse(Microsoft.AspNetCore.Razor.Language.RazorSourceDocument source, Microsoft.AspNetCore.Razor.Language.RazorParserOptions options) -> Microsoft.AspNetCore.Razor.Language.RazorSyntaxTree +~static Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptorExtensions.IsDirectiveAttribute(this Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptor descriptor) -> bool +~static Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilder.Create(string kind, string name, string assemblyName) -> Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilder +~static Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilder.Create(string name, string assemblyName) -> Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilder +~static Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilderExtensions.GetTypeName(this Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilder builder) -> string +~static Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilderExtensions.SetTypeName(this Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorBuilder builder, string typeName) -> void +~static Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorExtensions.GetTypeName(this Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor tagHelper) -> string +~static Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorExtensions.IsComponentOrChildContentTagHelper(this Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor tagHelper) -> bool +~static Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorExtensions.IsDefaultKind(this Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor tagHelper) -> bool +~static Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorExtensions.KindUsesDefaultTagHelperRuntime(this Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor tagHelper) -> bool +~static Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorProviderContext.Create() -> Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorProviderContext +~static Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorProviderContext.Create(System.Collections.Generic.ICollection results) -> Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorProviderContext +~static Microsoft.AspNetCore.Razor.Language.TagHelperDocumentContext.Create(string prefix, System.Collections.Generic.IEnumerable tagHelpers) -> Microsoft.AspNetCore.Razor.Language.TagHelperDocumentContext +~static readonly Microsoft.AspNetCore.Razor.Language.Components.ComponentCodeDirective.Directive -> Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor +~static readonly Microsoft.AspNetCore.Razor.Language.Extensions.FunctionsDirective.Directive -> Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor +~static readonly Microsoft.AspNetCore.Razor.Language.Extensions.InheritsDirective.Directive -> Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor +~static readonly Microsoft.AspNetCore.Razor.Language.Extensions.NamespaceDirective.Directive -> Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor +~static readonly Microsoft.AspNetCore.Razor.Language.Extensions.SectionDirective.Directive -> Microsoft.AspNetCore.Razor.Language.DirectiveDescriptor +~static readonly Microsoft.AspNetCore.Razor.Language.Extensions.SectionTargetExtension.DefaultSectionMethodName -> string +~static readonly Microsoft.AspNetCore.Razor.Language.Extensions.TemplateTargetExtension.DefaultTemplateTypeName -> string +~static readonly Microsoft.AspNetCore.Razor.Language.FileKinds.Component -> string +~static readonly Microsoft.AspNetCore.Razor.Language.FileKinds.ComponentImport -> string +~static readonly Microsoft.AspNetCore.Razor.Language.FileKinds.Legacy -> string +~static readonly Microsoft.AspNetCore.Razor.Language.Intermediate.CommonAnnotations.DefaultTagHelperExtension.TagHelperField -> object +~static readonly Microsoft.AspNetCore.Razor.Language.Intermediate.CommonAnnotations.Imported -> object +~static readonly Microsoft.AspNetCore.Razor.Language.Intermediate.CommonAnnotations.PrimaryClass -> object +~static readonly Microsoft.AspNetCore.Razor.Language.Intermediate.CommonAnnotations.PrimaryMethod -> object +~static readonly Microsoft.AspNetCore.Razor.Language.Intermediate.CommonAnnotations.PrimaryNamespace -> object +~static readonly Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection.ReadOnly -> Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeCollection +~static readonly Microsoft.AspNetCore.Razor.Language.RazorConfiguration.Default -> Microsoft.AspNetCore.Razor.Language.RazorConfiguration +~static readonly Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion.Experimental -> Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion +~static readonly Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion.Latest -> Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion +~static readonly Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion.Version_1_0 -> Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion +~static readonly Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion.Version_1_1 -> Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion +~static readonly Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion.Version_2_0 -> Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion +~static readonly Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion.Version_2_1 -> Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion +~static readonly Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion.Version_3_0 -> Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion +~static readonly Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion.Version_5_0 -> Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion +~static readonly Microsoft.AspNetCore.Razor.Language.TagHelperConventions.ComponentKind -> string +~static readonly Microsoft.AspNetCore.Razor.Language.TagHelperConventions.DefaultKind -> string +~static readonly Microsoft.AspNetCore.Razor.Language.TagHelperMetadata.Common.ClassifyAttributesOnly -> string +~static readonly Microsoft.AspNetCore.Razor.Language.TagHelperMetadata.Common.PropertyName -> string +~static readonly Microsoft.AspNetCore.Razor.Language.TagHelperMetadata.Common.TypeName -> string +~static readonly Microsoft.AspNetCore.Razor.Language.TagHelperMetadata.Runtime.Name -> string +~virtual Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.BoundAttributeParameters.get -> System.Collections.Generic.IReadOnlyList +~virtual Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptor.BoundAttributeParameters.set -> void +~virtual Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilder.BindAttributeParameter(System.Action configure) -> void +~virtual Microsoft.AspNetCore.Razor.Language.BoundAttributeDescriptorBuilder.BoundAttributeParameters.get -> System.Collections.Generic.IReadOnlyList +~virtual Microsoft.AspNetCore.Razor.Language.CodeGeneration.IntermediateNodeWriter.WriteComponent(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.CodeGeneration.IntermediateNodeWriter.WriteComponentAttribute(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentAttributeIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.CodeGeneration.IntermediateNodeWriter.WriteComponentChildContent(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentChildContentIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.CodeGeneration.IntermediateNodeWriter.WriteComponentTypeArgument(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentTypeArgumentIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.CodeGeneration.IntermediateNodeWriter.WriteComponentTypeInferenceMethod(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentTypeInferenceMethodIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.CodeGeneration.IntermediateNodeWriter.WriteMarkupBlock(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.MarkupBlockIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.CodeGeneration.IntermediateNodeWriter.WriteMarkupElement(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.MarkupElementIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.CodeGeneration.IntermediateNodeWriter.WriteReferenceCapture(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.ReferenceCaptureIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.CodeGeneration.IntermediateNodeWriter.WriteSetKey(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.SetKeyIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.CodeGeneration.IntermediateNodeWriter.WriteSplat(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeRenderingContext context, Microsoft.AspNetCore.Razor.Language.Intermediate.SplatIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.CodeGeneration.RuntimeNodeWriter.BeginWriteAttributeMethod.get -> string +~virtual Microsoft.AspNetCore.Razor.Language.CodeGeneration.RuntimeNodeWriter.BeginWriteAttributeMethod.set -> void +~virtual Microsoft.AspNetCore.Razor.Language.CodeGeneration.RuntimeNodeWriter.EndWriteAttributeMethod.get -> string +~virtual Microsoft.AspNetCore.Razor.Language.CodeGeneration.RuntimeNodeWriter.EndWriteAttributeMethod.set -> void +~virtual Microsoft.AspNetCore.Razor.Language.CodeGeneration.RuntimeNodeWriter.PopWriterMethod.get -> string +~virtual Microsoft.AspNetCore.Razor.Language.CodeGeneration.RuntimeNodeWriter.PopWriterMethod.set -> void +~virtual Microsoft.AspNetCore.Razor.Language.CodeGeneration.RuntimeNodeWriter.PushWriterMethod.get -> string +~virtual Microsoft.AspNetCore.Razor.Language.CodeGeneration.RuntimeNodeWriter.PushWriterMethod.set -> void +~virtual Microsoft.AspNetCore.Razor.Language.CodeGeneration.RuntimeNodeWriter.WriteAttributeValueMethod.get -> string +~virtual Microsoft.AspNetCore.Razor.Language.CodeGeneration.RuntimeNodeWriter.WriteAttributeValueMethod.set -> void +~virtual Microsoft.AspNetCore.Razor.Language.CodeGeneration.RuntimeNodeWriter.WriteCSharpExpressionMethod.get -> string +~virtual Microsoft.AspNetCore.Razor.Language.CodeGeneration.RuntimeNodeWriter.WriteCSharpExpressionMethod.set -> void +~virtual Microsoft.AspNetCore.Razor.Language.CodeGeneration.RuntimeNodeWriter.WriteHtmlContentMethod.get -> string +~virtual Microsoft.AspNetCore.Razor.Language.CodeGeneration.RuntimeNodeWriter.WriteHtmlContentMethod.set -> void +~virtual Microsoft.AspNetCore.Razor.Language.DirectiveTokenDescriptor.Description.get -> string +~virtual Microsoft.AspNetCore.Razor.Language.DirectiveTokenDescriptor.Name.get -> string +~virtual Microsoft.AspNetCore.Razor.Language.DocumentClassifierPassBase.ConfigureTarget(Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTargetBuilder builder) -> void +~virtual Microsoft.AspNetCore.Razor.Language.DocumentClassifierPassBase.CreateTarget(Microsoft.AspNetCore.Razor.Language.RazorCodeDocument codeDocument, Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions options) -> Microsoft.AspNetCore.Razor.Language.CodeGeneration.CodeTarget +~virtual Microsoft.AspNetCore.Razor.Language.DocumentClassifierPassBase.OnDocumentStructureCreated(Microsoft.AspNetCore.Razor.Language.RazorCodeDocument codeDocument, Microsoft.AspNetCore.Razor.Language.Intermediate.NamespaceDeclarationIntermediateNode namespace, Microsoft.AspNetCore.Razor.Language.Intermediate.ClassDeclarationIntermediateNode class, Microsoft.AspNetCore.Razor.Language.Intermediate.MethodDeclarationIntermediateNode method) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode.FormatNode(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeFormatter formatter) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.Visit(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitCSharpCode(Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpCodeIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitCSharpCodeAttributeValue(Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpCodeAttributeValueIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitCSharpExpression(Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpExpressionIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitCSharpExpressionAttributeValue(Microsoft.AspNetCore.Razor.Language.Intermediate.CSharpExpressionAttributeValueIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitClassDeclaration(Microsoft.AspNetCore.Razor.Language.Intermediate.ClassDeclarationIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitComponent(Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitComponentAttribute(Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentAttributeIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitComponentChildContent(Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentChildContentIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitComponentTypeArgument(Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentTypeArgumentIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitComponentTypeInferenceMethod(Microsoft.AspNetCore.Razor.Language.Intermediate.ComponentTypeInferenceMethodIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitDefault(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitDirective(Microsoft.AspNetCore.Razor.Language.Intermediate.DirectiveIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitDirectiveToken(Microsoft.AspNetCore.Razor.Language.Intermediate.DirectiveTokenIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitDocument(Microsoft.AspNetCore.Razor.Language.Intermediate.DocumentIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitExtension(Microsoft.AspNetCore.Razor.Language.Intermediate.ExtensionIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitFieldDeclaration(Microsoft.AspNetCore.Razor.Language.Intermediate.FieldDeclarationIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitHtml(Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlContentIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitHtmlAttribute(Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitHtmlAttributeValue(Microsoft.AspNetCore.Razor.Language.Intermediate.HtmlAttributeValueIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitMalformedDirective(Microsoft.AspNetCore.Razor.Language.Intermediate.MalformedDirectiveIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitMarkupBlock(Microsoft.AspNetCore.Razor.Language.Intermediate.MarkupBlockIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitMarkupElement(Microsoft.AspNetCore.Razor.Language.Intermediate.MarkupElementIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitMethodDeclaration(Microsoft.AspNetCore.Razor.Language.Intermediate.MethodDeclarationIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitNamespaceDeclaration(Microsoft.AspNetCore.Razor.Language.Intermediate.NamespaceDeclarationIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitPropertyDeclaration(Microsoft.AspNetCore.Razor.Language.Intermediate.PropertyDeclarationIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitReferenceCapture(Microsoft.AspNetCore.Razor.Language.Intermediate.ReferenceCaptureIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitSetKey(Microsoft.AspNetCore.Razor.Language.Intermediate.SetKeyIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitSplat(Microsoft.AspNetCore.Razor.Language.Intermediate.SplatIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitTagHelper(Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitTagHelperBody(Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperBodyIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitTagHelperDirectiveAttribute(Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitTagHelperDirectiveAttributeParameter(Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperDirectiveAttributeParameterIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitTagHelperHtmlAttribute(Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperHtmlAttributeIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitTagHelperProperty(Microsoft.AspNetCore.Razor.Language.Intermediate.TagHelperPropertyIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitToken(Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateToken node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateNodeVisitor.VisitUsingDirective(Microsoft.AspNetCore.Razor.Language.Intermediate.UsingDirectiveIntermediateNode node) -> void +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateToken.Content.get -> string +~virtual Microsoft.AspNetCore.Razor.Language.Intermediate.IntermediateToken.Content.set -> void +~virtual Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptions.RootNamespace.get -> string +~virtual Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptionsBuilder.Configuration.get -> Microsoft.AspNetCore.Razor.Language.RazorConfiguration +~virtual Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptionsBuilder.FileKind.get -> string +~virtual Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptionsBuilder.RootNamespace.get -> string +~virtual Microsoft.AspNetCore.Razor.Language.RazorCodeGenerationOptionsBuilder.RootNamespace.set -> void +~virtual Microsoft.AspNetCore.Razor.Language.RazorConfiguration.Equals(Microsoft.AspNetCore.Razor.Language.RazorConfiguration other) -> bool +~virtual Microsoft.AspNetCore.Razor.Language.RazorParserOptions.Version.get -> Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion +~virtual Microsoft.AspNetCore.Razor.Language.RazorParserOptionsBuilder.Configuration.get -> Microsoft.AspNetCore.Razor.Language.RazorConfiguration +~virtual Microsoft.AspNetCore.Razor.Language.RazorParserOptionsBuilder.FileKind.get -> string +~virtual Microsoft.AspNetCore.Razor.Language.RazorParserOptionsBuilder.LanguageVersion.get -> Microsoft.AspNetCore.Razor.Language.RazorLanguageVersion +~virtual Microsoft.AspNetCore.Razor.Language.RazorProject.FindHierarchicalItems(string basePath, string path, string fileName) -> System.Collections.Generic.IEnumerable +~virtual Microsoft.AspNetCore.Razor.Language.RazorProject.NormalizeAndEnsureValidPath(string path) -> string +~virtual Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.Process(Microsoft.AspNetCore.Razor.Language.RazorProjectItem projectItem) -> Microsoft.AspNetCore.Razor.Language.RazorCodeDocument +~virtual Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.Process(Microsoft.AspNetCore.Razor.Language.RazorSourceDocument source, string fileKind, System.Collections.Generic.IReadOnlyList importSources, System.Collections.Generic.IReadOnlyList tagHelpers) -> Microsoft.AspNetCore.Razor.Language.RazorCodeDocument +~virtual Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.ProcessDeclarationOnly(Microsoft.AspNetCore.Razor.Language.RazorProjectItem projectItem) -> Microsoft.AspNetCore.Razor.Language.RazorCodeDocument +~virtual Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.ProcessDeclarationOnly(Microsoft.AspNetCore.Razor.Language.RazorSourceDocument source, string fileKind, System.Collections.Generic.IReadOnlyList importSources, System.Collections.Generic.IReadOnlyList tagHelpers) -> Microsoft.AspNetCore.Razor.Language.RazorCodeDocument +~virtual Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.ProcessDesignTime(Microsoft.AspNetCore.Razor.Language.RazorProjectItem projectItem) -> Microsoft.AspNetCore.Razor.Language.RazorCodeDocument +~virtual Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.ProcessDesignTime(Microsoft.AspNetCore.Razor.Language.RazorSourceDocument source, string fileKind, System.Collections.Generic.IReadOnlyList importSources, System.Collections.Generic.IReadOnlyList tagHelpers) -> Microsoft.AspNetCore.Razor.Language.RazorCodeDocument +~virtual Microsoft.AspNetCore.Razor.Language.RazorProjectEngineFeatureBase.ProjectEngine.get -> Microsoft.AspNetCore.Razor.Language.RazorProjectEngine +~virtual Microsoft.AspNetCore.Razor.Language.RazorProjectEngineFeatureBase.ProjectEngine.set -> void +~virtual Microsoft.AspNetCore.Razor.Language.RazorProjectItem.CssScope.get -> string +~virtual Microsoft.AspNetCore.Razor.Language.RazorProjectItem.FileKind.get -> string +~virtual Microsoft.AspNetCore.Razor.Language.RazorProjectItem.RelativePhysicalPath.get -> string +~virtual Microsoft.AspNetCore.Razor.Language.RazorSourceDocument.GetChecksumAlgorithm() -> string +~virtual Microsoft.AspNetCore.Razor.Language.RazorSourceDocument.GetFilePathForDisplay() -> string +~virtual Microsoft.AspNetCore.Razor.Language.RazorSourceDocument.RelativePath.get -> string +~virtual Microsoft.AspNetCore.Razor.Language.RequiredAttributeDescriptorBuilder.Metadata.get -> System.Collections.Generic.IDictionary +~virtual Microsoft.AspNetCore.Razor.Language.TagHelperDescriptor.GetAllDiagnostics() -> System.Collections.Generic.IEnumerable +~virtual Microsoft.AspNetCore.Razor.Language.TagMatchingRuleDescriptor.GetAllDiagnostics() -> System.Collections.Generic.IEnumerable diff --git a/src/Razor/Microsoft.CodeAnalysis.Razor/src/PublicAPI.Shipped.txt b/src/Razor/Microsoft.CodeAnalysis.Razor/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/Razor/Microsoft.CodeAnalysis.Razor/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Razor/Microsoft.CodeAnalysis.Razor/src/PublicAPI.Unshipped.txt b/src/Razor/Microsoft.CodeAnalysis.Razor/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..00665d6458 --- /dev/null +++ b/src/Razor/Microsoft.CodeAnalysis.Razor/src/PublicAPI.Unshipped.txt @@ -0,0 +1,26 @@ +#nullable enable +Microsoft.CodeAnalysis.Razor.CompilationTagHelperFeature +Microsoft.CodeAnalysis.Razor.CompilationTagHelperFeature.CompilationTagHelperFeature() -> void +Microsoft.CodeAnalysis.Razor.CompilerFeatures +Microsoft.CodeAnalysis.Razor.DefaultMetadataReferenceFeature +Microsoft.CodeAnalysis.Razor.DefaultMetadataReferenceFeature.DefaultMetadataReferenceFeature() -> void +Microsoft.CodeAnalysis.Razor.DefaultTagHelperDescriptorProvider +Microsoft.CodeAnalysis.Razor.DefaultTagHelperDescriptorProvider.DefaultTagHelperDescriptorProvider() -> void +Microsoft.CodeAnalysis.Razor.DefaultTagHelperDescriptorProvider.Order.get -> int +Microsoft.CodeAnalysis.Razor.DefaultTagHelperDescriptorProvider.Order.set -> void +Microsoft.CodeAnalysis.Razor.IMetadataReferenceFeature +Microsoft.CodeAnalysis.Razor.RazorLanguage +Microsoft.CodeAnalysis.Razor.RazorProjectEngineBuilderExtensions +Microsoft.CodeAnalysis.Razor.TagHelperDescriptorProviderContextExtensions +~Microsoft.CodeAnalysis.Razor.CompilationTagHelperFeature.GetDescriptors() -> System.Collections.Generic.IReadOnlyList +~Microsoft.CodeAnalysis.Razor.DefaultMetadataReferenceFeature.References.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.CodeAnalysis.Razor.DefaultMetadataReferenceFeature.References.set -> void +~Microsoft.CodeAnalysis.Razor.DefaultTagHelperDescriptorProvider.Execute(Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorProviderContext context) -> void +~Microsoft.CodeAnalysis.Razor.IMetadataReferenceFeature.References.get -> System.Collections.Generic.IReadOnlyList +~const Microsoft.CodeAnalysis.Razor.RazorLanguage.ContentType = "RazorCSharp" -> string +~const Microsoft.CodeAnalysis.Razor.RazorLanguage.CoreContentType = "RazorCoreCSharp" -> string +~const Microsoft.CodeAnalysis.Razor.RazorLanguage.Name = "Razor" -> string +~static Microsoft.CodeAnalysis.Razor.CompilerFeatures.Register(Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder builder) -> void +~static Microsoft.CodeAnalysis.Razor.RazorProjectEngineBuilderExtensions.SetCSharpLanguageVersion(this Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder builder, Microsoft.CodeAnalysis.CSharp.LanguageVersion csharpLanguageVersion) -> Microsoft.AspNetCore.Razor.Language.RazorProjectEngineBuilder +~static Microsoft.CodeAnalysis.Razor.TagHelperDescriptorProviderContextExtensions.GetCompilation(this Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorProviderContext context) -> Microsoft.CodeAnalysis.Compilation +~static Microsoft.CodeAnalysis.Razor.TagHelperDescriptorProviderContextExtensions.SetCompilation(this Microsoft.AspNetCore.Razor.Language.TagHelperDescriptorProviderContext context, Microsoft.CodeAnalysis.Compilation compilation) -> void diff --git a/src/Razor/Razor.Runtime/src/PublicAPI.Shipped.txt b/src/Razor/Razor.Runtime/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/Razor/Razor.Runtime/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Razor/Razor.Runtime/src/PublicAPI.Unshipped.txt b/src/Razor/Razor.Runtime/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..901a05076c --- /dev/null +++ b/src/Razor/Razor.Runtime/src/PublicAPI.Unshipped.txt @@ -0,0 +1,215 @@ +#nullable enable +Microsoft.AspNetCore.Razor.Hosting.IRazorSourceChecksumMetadata +Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItem +Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItem.RazorCompiledItem() -> void +Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemAttribute +Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemExtensions +Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemLoader +Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemLoader.RazorCompiledItemLoader() -> void +Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemMetadataAttribute +Microsoft.AspNetCore.Razor.Hosting.RazorConfigurationNameAttribute +Microsoft.AspNetCore.Razor.Hosting.RazorExtensionAssemblyNameAttribute +Microsoft.AspNetCore.Razor.Hosting.RazorLanguageVersionAttribute +Microsoft.AspNetCore.Razor.Hosting.RazorSourceChecksumAttribute +Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext +Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext.ChildContentRetrieved.get -> bool +Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner +Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner.TagHelperRunner() -> void +Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperScopeManager +Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent.DefaultTagHelperContent() -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute.DictionaryAttributePrefixSet.get -> bool (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute.HtmlAttributeNameAttribute() -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNotBoundAttribute (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNotBoundAttribute.HtmlAttributeNotBoundAttribute() -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute.HtmlTargetElementAttribute() -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute.TagStructure.get -> Microsoft.AspNetCore.Razor.TagHelpers.TagStructure (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute.TagStructure.set -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.ITagHelper (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.ITagHelperComponent (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.ITagHelperComponent.Order.get -> int (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.NullHtmlEncoder (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.OutputElementHintAttribute (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.ReadOnlyTagHelperAttributeList (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.ReadOnlyTagHelperAttributeList.ReadOnlyTagHelperAttributeList() -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.RestrictChildrenAttribute (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.TagHelper (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.TagHelper.TagHelper() -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute.ValueStyle.get -> Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList.Clear() -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList.RemoveAt(int index) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList.TagHelperAttributeList() -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperComponent (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperComponent.TagHelperComponent() -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.TagHelperContent() -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.IsContentModified.get -> bool (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.SuppressOutput() -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.TagMode.get -> Microsoft.AspNetCore.Razor.TagHelpers.TagMode (forwarded, contained in Microsoft.AspNetCore.Razor) +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.TagMode.set -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +abstract Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.IsEmptyOrWhiteSpace.get -> bool (forwarded, contained in Microsoft.AspNetCore.Razor) +abstract Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.IsModified.get -> bool (forwarded, contained in Microsoft.AspNetCore.Razor) +abstract Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.Reinitialize() -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +override Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent.IsEmptyOrWhiteSpace.get -> bool (forwarded, contained in Microsoft.AspNetCore.Razor) +override Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent.IsModified.get -> bool (forwarded, contained in Microsoft.AspNetCore.Razor) +override Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent.Reinitialize() -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +override Microsoft.AspNetCore.Razor.TagHelpers.NullHtmlEncoder.FindFirstCharacterToEncode(char* text, int textLength) -> int (forwarded, contained in Microsoft.AspNetCore.Razor) +override Microsoft.AspNetCore.Razor.TagHelpers.NullHtmlEncoder.MaxOutputCharactersPerInputCharacter.get -> int (forwarded, contained in Microsoft.AspNetCore.Razor) +override Microsoft.AspNetCore.Razor.TagHelpers.NullHtmlEncoder.TryEncodeUnicodeScalar(int unicodeScalar, char* buffer, int bufferLength, out int numberOfCharactersWritten) -> bool (forwarded, contained in Microsoft.AspNetCore.Razor) +override Microsoft.AspNetCore.Razor.TagHelpers.NullHtmlEncoder.WillEncode(int unicodeScalar) -> bool (forwarded, contained in Microsoft.AspNetCore.Razor) +override Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute.GetHashCode() -> int (forwarded, contained in Microsoft.AspNetCore.Razor) +virtual Microsoft.AspNetCore.Razor.TagHelpers.TagHelper.Order.get -> int (forwarded, contained in Microsoft.AspNetCore.Razor) +virtual Microsoft.AspNetCore.Razor.TagHelpers.TagHelperComponent.Order.get -> int (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.Hosting.IRazorSourceChecksumMetadata.Checksum.get -> string +~Microsoft.AspNetCore.Razor.Hosting.IRazorSourceChecksumMetadata.ChecksumAlgorithm.get -> string +~Microsoft.AspNetCore.Razor.Hosting.IRazorSourceChecksumMetadata.Identifier.get -> string +~Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemAttribute.Identifier.get -> string +~Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemAttribute.Kind.get -> string +~Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemAttribute.RazorCompiledItemAttribute(System.Type type, string kind, string identifier) -> void +~Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemAttribute.Type.get -> System.Type +~Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemLoader.LoadAttributes(System.Reflection.Assembly assembly) -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemMetadataAttribute.Key.get -> string +~Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemMetadataAttribute.RazorCompiledItemMetadataAttribute(string key, string value) -> void +~Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemMetadataAttribute.Value.get -> string +~Microsoft.AspNetCore.Razor.Hosting.RazorConfigurationNameAttribute.ConfigurationName.get -> string +~Microsoft.AspNetCore.Razor.Hosting.RazorConfigurationNameAttribute.RazorConfigurationNameAttribute(string configurationName) -> void +~Microsoft.AspNetCore.Razor.Hosting.RazorExtensionAssemblyNameAttribute.AssemblyName.get -> string +~Microsoft.AspNetCore.Razor.Hosting.RazorExtensionAssemblyNameAttribute.ExtensionName.get -> string +~Microsoft.AspNetCore.Razor.Hosting.RazorExtensionAssemblyNameAttribute.RazorExtensionAssemblyNameAttribute(string extensionName, string assemblyName) -> void +~Microsoft.AspNetCore.Razor.Hosting.RazorLanguageVersionAttribute.LanguageVersion.get -> string +~Microsoft.AspNetCore.Razor.Hosting.RazorLanguageVersionAttribute.RazorLanguageVersionAttribute(string languageVersion) -> void +~Microsoft.AspNetCore.Razor.Hosting.RazorSourceChecksumAttribute.Checksum.get -> string +~Microsoft.AspNetCore.Razor.Hosting.RazorSourceChecksumAttribute.ChecksumAlgorithm.get -> string +~Microsoft.AspNetCore.Razor.Hosting.RazorSourceChecksumAttribute.Identifier.get -> string +~Microsoft.AspNetCore.Razor.Hosting.RazorSourceChecksumAttribute.RazorSourceChecksumAttribute(string checksumAlgorithm, string checksum, string identifier) -> void +~Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext.Add(Microsoft.AspNetCore.Razor.TagHelpers.ITagHelper tagHelper) -> void +~Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext.AddHtmlAttribute(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) -> void +~Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext.AddHtmlAttribute(string name, object value, Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle valueStyle) -> void +~Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext.AddTagHelperAttribute(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) -> void +~Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext.AddTagHelperAttribute(string name, object value, Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle valueStyle) -> void +~Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext.Context.get -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext +~Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext.Items.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext.Output.get -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput +~Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext.Reinitialize(string tagName, Microsoft.AspNetCore.Razor.TagHelpers.TagMode tagMode, System.Collections.Generic.IDictionary items, string uniqueId, System.Func executeChildContentAsync) -> void +~Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext.SetOutputContentAsync() -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext.TagHelperExecutionContext(string tagName, Microsoft.AspNetCore.Razor.TagHelpers.TagMode tagMode, System.Collections.Generic.IDictionary items, string uniqueId, System.Func executeChildContentAsync, System.Action startTagHelperWritingScope, System.Func endTagHelperWritingScope) -> void +~Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext.TagHelpers.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner.RunAsync(Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext executionContext) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperScopeManager.Begin(string tagName, Microsoft.AspNetCore.Razor.TagHelpers.TagMode tagMode, string uniqueId, System.Func executeChildContentAsync) -> Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext +~Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperScopeManager.End() -> Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext +~Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperScopeManager.TagHelperScopeManager(System.Action startTagHelperWritingScope, System.Func endTagHelperWritingScope) -> void +~Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute.DictionaryAttributePrefix.get -> string (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute.DictionaryAttributePrefix.set -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute.HtmlAttributeNameAttribute(string name) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute.Name.get -> string (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute.Attributes.get -> string (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute.Attributes.set -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute.HtmlTargetElementAttribute(string tag) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute.ParentTag.get -> string (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute.ParentTag.set -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute.Tag.get -> string (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.ITagHelperComponent.Init(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.ITagHelperComponent.ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> System.Threading.Tasks.Task (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.OutputElementHintAttribute.OutputElement.get -> string (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.OutputElementHintAttribute.OutputElementHintAttribute(string outputElement) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.ReadOnlyTagHelperAttributeList.ContainsName(string name) -> bool (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.ReadOnlyTagHelperAttributeList.IndexOfName(string name) -> int (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.ReadOnlyTagHelperAttributeList.ReadOnlyTagHelperAttributeList(System.Collections.Generic.IList attributes) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.ReadOnlyTagHelperAttributeList.TryGetAttribute(string name, out Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) -> bool (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.ReadOnlyTagHelperAttributeList.TryGetAttributes(string name, out System.Collections.Generic.IReadOnlyList attributes) -> bool (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.ReadOnlyTagHelperAttributeList.this[string name].get -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.RestrictChildrenAttribute.ChildTags.get -> System.Collections.Generic.IEnumerable (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.RestrictChildrenAttribute.RestrictChildrenAttribute(string childTag, params string[] childTags) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute.CopyTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder destination) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute.Equals(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute other) -> bool (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute.MoveTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder destination) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute.Name.get -> string (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute.TagHelperAttribute(string name) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute.TagHelperAttribute(string name, object value) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute.TagHelperAttribute(string name, object value, Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle valueStyle) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute.Value.get -> object (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute.WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList.Add(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList.Add(string name, object value) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList.Insert(int index, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList.Remove(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) -> bool (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList.RemoveAll(string name) -> bool (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList.SetAttribute(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList.SetAttribute(string name, object value) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList.TagHelperAttributeList(System.Collections.Generic.IEnumerable attributes) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList.TagHelperAttributeList(System.Collections.Generic.List attributes) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList.this[int index].get -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList.this[int index].set -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.AppendFormat(System.IFormatProvider provider, string format, params object[] args) -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.AppendFormat(string format, params object[] args) -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.SetContent(string unencoded) -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.SetHtmlContent(Microsoft.AspNetCore.Html.IHtmlContent htmlContent) -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.SetHtmlContent(string encoded) -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext.AllAttributes.get -> Microsoft.AspNetCore.Razor.TagHelpers.ReadOnlyTagHelperAttributeList (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext.Items.get -> System.Collections.Generic.IDictionary (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext.Reinitialize(System.Collections.Generic.IDictionary items, string uniqueId) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext.Reinitialize(string tagName, System.Collections.Generic.IDictionary items, string uniqueId) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext.TagHelperContext(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList allAttributes, System.Collections.Generic.IDictionary items, string uniqueId) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext.TagHelperContext(string tagName, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList allAttributes, System.Collections.Generic.IDictionary items, string uniqueId) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext.TagName.get -> string (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext.UniqueId.get -> string (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.Attributes.get -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.Content.get -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.Content.set -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.GetChildContentAsync() -> System.Threading.Tasks.Task (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.GetChildContentAsync(System.Text.Encodings.Web.HtmlEncoder encoder) -> System.Threading.Tasks.Task (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.GetChildContentAsync(bool useCachedResult) -> System.Threading.Tasks.Task (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.GetChildContentAsync(bool useCachedResult, System.Text.Encodings.Web.HtmlEncoder encoder) -> System.Threading.Tasks.Task (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.PostContent.get -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.PostElement.get -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.PreContent.get -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.PreElement.get -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.Reinitialize(string tagName, Microsoft.AspNetCore.Razor.TagHelpers.TagMode tagMode) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.TagHelperOutput(string tagName, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList attributes, System.Func> getChildContentAsync) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.TagName.get -> string (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.TagName.set -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~abstract Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItem.Identifier.get -> string +~abstract Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItem.Kind.get -> string +~abstract Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItem.Metadata.get -> System.Collections.Generic.IReadOnlyList +~abstract Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItem.Type.get -> System.Type +~abstract Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.Append(string unencoded) -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent (forwarded, contained in Microsoft.AspNetCore.Razor) +~abstract Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.AppendHtml(Microsoft.AspNetCore.Html.IHtmlContent htmlContent) -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent (forwarded, contained in Microsoft.AspNetCore.Razor) +~abstract Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.AppendHtml(string encoded) -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent (forwarded, contained in Microsoft.AspNetCore.Razor) +~abstract Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.Clear() -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent (forwarded, contained in Microsoft.AspNetCore.Razor) +~abstract Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.CopyTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder destination) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~abstract Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.GetContent() -> string (forwarded, contained in Microsoft.AspNetCore.Razor) +~abstract Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.GetContent(System.Text.Encodings.Web.HtmlEncoder encoder) -> string (forwarded, contained in Microsoft.AspNetCore.Razor) +~abstract Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.MoveTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder destination) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~abstract Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~const Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute.ElementCatchAllTarget = "*" -> string (forwarded, contained in Microsoft.AspNetCore.Razor) +~override Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent.Append(string unencoded) -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent (forwarded, contained in Microsoft.AspNetCore.Razor) +~override Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent.AppendHtml(Microsoft.AspNetCore.Html.IHtmlContent htmlContent) -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent (forwarded, contained in Microsoft.AspNetCore.Razor) +~override Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent.AppendHtml(string encoded) -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent (forwarded, contained in Microsoft.AspNetCore.Razor) +~override Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent.Clear() -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent (forwarded, contained in Microsoft.AspNetCore.Razor) +~override Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent.CopyTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder destination) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~override Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent.GetContent() -> string (forwarded, contained in Microsoft.AspNetCore.Razor) +~override Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent.GetContent(System.Text.Encodings.Web.HtmlEncoder encoder) -> string (forwarded, contained in Microsoft.AspNetCore.Razor) +~override Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent.MoveTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder destination) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~override Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent.WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~override Microsoft.AspNetCore.Razor.TagHelpers.NullHtmlEncoder.Encode(System.IO.TextWriter output, char[] value, int startIndex, int characterCount) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~override Microsoft.AspNetCore.Razor.TagHelpers.NullHtmlEncoder.Encode(System.IO.TextWriter output, string value, int startIndex, int characterCount) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~override Microsoft.AspNetCore.Razor.TagHelpers.NullHtmlEncoder.Encode(string value) -> string (forwarded, contained in Microsoft.AspNetCore.Razor) +~override Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute.Equals(object obj) -> bool (forwarded, contained in Microsoft.AspNetCore.Razor) +~static Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemExtensions.GetChecksumMetadata(this Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItem item) -> System.Collections.Generic.IReadOnlyList +~static Microsoft.AspNetCore.Razor.TagHelpers.NullHtmlEncoder.Default.get -> Microsoft.AspNetCore.Razor.TagHelpers.NullHtmlEncoder (forwarded, contained in Microsoft.AspNetCore.Razor) +~static Microsoft.AspNetCore.Razor.TagHelpers.ReadOnlyTagHelperAttributeList.NameEquals(string name, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) -> bool (forwarded, contained in Microsoft.AspNetCore.Razor) +~virtual Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemLoader.CreateItem(Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemAttribute attribute) -> Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItem +~virtual Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemLoader.LoadItems(System.Reflection.Assembly assembly) -> System.Collections.Generic.IReadOnlyList +~virtual Microsoft.AspNetCore.Razor.TagHelpers.TagHelper.Init(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~virtual Microsoft.AspNetCore.Razor.TagHelpers.TagHelper.Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~virtual Microsoft.AspNetCore.Razor.TagHelpers.TagHelper.ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> System.Threading.Tasks.Task (forwarded, contained in Microsoft.AspNetCore.Razor) +~virtual Microsoft.AspNetCore.Razor.TagHelpers.TagHelperComponent.Init(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~virtual Microsoft.AspNetCore.Razor.TagHelpers.TagHelperComponent.Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> void (forwarded, contained in Microsoft.AspNetCore.Razor) +~virtual Microsoft.AspNetCore.Razor.TagHelpers.TagHelperComponent.ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> System.Threading.Tasks.Task (forwarded, contained in Microsoft.AspNetCore.Razor) diff --git a/src/Razor/Razor/src/PublicAPI.Shipped.txt b/src/Razor/Razor/src/PublicAPI.Shipped.txt new file mode 100644 index 0000000000..7dc5c58110 --- /dev/null +++ b/src/Razor/Razor/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Razor/Razor/src/PublicAPI.Unshipped.txt b/src/Razor/Razor/src/PublicAPI.Unshipped.txt new file mode 100644 index 0000000000..1629f23814 --- /dev/null +++ b/src/Razor/Razor/src/PublicAPI.Unshipped.txt @@ -0,0 +1,166 @@ +#nullable enable +Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent +Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent.DefaultTagHelperContent() -> void +Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute +Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute.DictionaryAttributePrefixSet.get -> bool +Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute.HtmlAttributeNameAttribute() -> void +Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNotBoundAttribute +Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNotBoundAttribute.HtmlAttributeNotBoundAttribute() -> void +Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle +Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes = 0 -> Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle +Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.Minimized = 3 -> Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle +Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.NoQuotes = 2 -> Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle +Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.SingleQuotes = 1 -> Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle +Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute +Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute.HtmlTargetElementAttribute() -> void +Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute.TagStructure.get -> Microsoft.AspNetCore.Razor.TagHelpers.TagStructure +Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute.TagStructure.set -> void +Microsoft.AspNetCore.Razor.TagHelpers.ITagHelper +Microsoft.AspNetCore.Razor.TagHelpers.ITagHelperComponent +Microsoft.AspNetCore.Razor.TagHelpers.ITagHelperComponent.Order.get -> int +Microsoft.AspNetCore.Razor.TagHelpers.NullHtmlEncoder +Microsoft.AspNetCore.Razor.TagHelpers.OutputElementHintAttribute +Microsoft.AspNetCore.Razor.TagHelpers.ReadOnlyTagHelperAttributeList +Microsoft.AspNetCore.Razor.TagHelpers.ReadOnlyTagHelperAttributeList.ReadOnlyTagHelperAttributeList() -> void +Microsoft.AspNetCore.Razor.TagHelpers.RestrictChildrenAttribute +Microsoft.AspNetCore.Razor.TagHelpers.TagHelper +Microsoft.AspNetCore.Razor.TagHelpers.TagHelper.TagHelper() -> void +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute.ValueStyle.get -> Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList.Clear() -> void +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList.RemoveAt(int index) -> void +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList.TagHelperAttributeList() -> void +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperComponent +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperComponent.TagHelperComponent() -> void +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.TagHelperContent() -> void +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.IsContentModified.get -> bool +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.SuppressOutput() -> void +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.TagMode.get -> Microsoft.AspNetCore.Razor.TagHelpers.TagMode +Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.TagMode.set -> void +Microsoft.AspNetCore.Razor.TagHelpers.TagMode +Microsoft.AspNetCore.Razor.TagHelpers.TagMode.SelfClosing = 1 -> Microsoft.AspNetCore.Razor.TagHelpers.TagMode +Microsoft.AspNetCore.Razor.TagHelpers.TagMode.StartTagAndEndTag = 0 -> Microsoft.AspNetCore.Razor.TagHelpers.TagMode +Microsoft.AspNetCore.Razor.TagHelpers.TagMode.StartTagOnly = 2 -> Microsoft.AspNetCore.Razor.TagHelpers.TagMode +Microsoft.AspNetCore.Razor.TagHelpers.TagStructure +Microsoft.AspNetCore.Razor.TagHelpers.TagStructure.NormalOrSelfClosing = 1 -> Microsoft.AspNetCore.Razor.TagHelpers.TagStructure +Microsoft.AspNetCore.Razor.TagHelpers.TagStructure.Unspecified = 0 -> Microsoft.AspNetCore.Razor.TagHelpers.TagStructure +Microsoft.AspNetCore.Razor.TagHelpers.TagStructure.WithoutEndTag = 2 -> Microsoft.AspNetCore.Razor.TagHelpers.TagStructure +abstract Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.IsEmptyOrWhiteSpace.get -> bool +abstract Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.IsModified.get -> bool +abstract Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.Reinitialize() -> void +override Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent.IsEmptyOrWhiteSpace.get -> bool +override Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent.IsModified.get -> bool +override Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent.Reinitialize() -> void +override Microsoft.AspNetCore.Razor.TagHelpers.NullHtmlEncoder.FindFirstCharacterToEncode(char* text, int textLength) -> int +override Microsoft.AspNetCore.Razor.TagHelpers.NullHtmlEncoder.MaxOutputCharactersPerInputCharacter.get -> int +override Microsoft.AspNetCore.Razor.TagHelpers.NullHtmlEncoder.TryEncodeUnicodeScalar(int unicodeScalar, char* buffer, int bufferLength, out int numberOfCharactersWritten) -> bool +override Microsoft.AspNetCore.Razor.TagHelpers.NullHtmlEncoder.WillEncode(int unicodeScalar) -> bool +override Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute.GetHashCode() -> int +virtual Microsoft.AspNetCore.Razor.TagHelpers.TagHelper.Order.get -> int +virtual Microsoft.AspNetCore.Razor.TagHelpers.TagHelperComponent.Order.get -> int +~Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute.DictionaryAttributePrefix.get -> string +~Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute.DictionaryAttributePrefix.set -> void +~Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute.HtmlAttributeNameAttribute(string name) -> void +~Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute.Name.get -> string +~Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute.Attributes.get -> string +~Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute.Attributes.set -> void +~Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute.HtmlTargetElementAttribute(string tag) -> void +~Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute.ParentTag.get -> string +~Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute.ParentTag.set -> void +~Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute.Tag.get -> string +~Microsoft.AspNetCore.Razor.TagHelpers.ITagHelperComponent.Init(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context) -> void +~Microsoft.AspNetCore.Razor.TagHelpers.ITagHelperComponent.ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Razor.TagHelpers.OutputElementHintAttribute.OutputElement.get -> string +~Microsoft.AspNetCore.Razor.TagHelpers.OutputElementHintAttribute.OutputElementHintAttribute(string outputElement) -> void +~Microsoft.AspNetCore.Razor.TagHelpers.ReadOnlyTagHelperAttributeList.ContainsName(string name) -> bool +~Microsoft.AspNetCore.Razor.TagHelpers.ReadOnlyTagHelperAttributeList.IndexOfName(string name) -> int +~Microsoft.AspNetCore.Razor.TagHelpers.ReadOnlyTagHelperAttributeList.ReadOnlyTagHelperAttributeList(System.Collections.Generic.IList attributes) -> void +~Microsoft.AspNetCore.Razor.TagHelpers.ReadOnlyTagHelperAttributeList.TryGetAttribute(string name, out Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) -> bool +~Microsoft.AspNetCore.Razor.TagHelpers.ReadOnlyTagHelperAttributeList.TryGetAttributes(string name, out System.Collections.Generic.IReadOnlyList attributes) -> bool +~Microsoft.AspNetCore.Razor.TagHelpers.ReadOnlyTagHelperAttributeList.this[string name].get -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute +~Microsoft.AspNetCore.Razor.TagHelpers.RestrictChildrenAttribute.ChildTags.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Razor.TagHelpers.RestrictChildrenAttribute.RestrictChildrenAttribute(string childTag, params string[] childTags) -> void +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute.CopyTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder destination) -> void +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute.Equals(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute other) -> bool +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute.MoveTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder destination) -> void +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute.Name.get -> string +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute.TagHelperAttribute(string name) -> void +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute.TagHelperAttribute(string name, object value) -> void +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute.TagHelperAttribute(string name, object value, Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle valueStyle) -> void +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute.Value.get -> object +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute.WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) -> void +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList.Add(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) -> void +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList.Add(string name, object value) -> void +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList.Insert(int index, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) -> void +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList.Remove(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) -> bool +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList.RemoveAll(string name) -> bool +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList.SetAttribute(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) -> void +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList.SetAttribute(string name, object value) -> void +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList.TagHelperAttributeList(System.Collections.Generic.IEnumerable attributes) -> void +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList.TagHelperAttributeList(System.Collections.Generic.List attributes) -> void +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList.this[int index].get -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList.this[int index].set -> void +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.AppendFormat(System.IFormatProvider provider, string format, params object[] args) -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.AppendFormat(string format, params object[] args) -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.SetContent(string unencoded) -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.SetHtmlContent(Microsoft.AspNetCore.Html.IHtmlContent htmlContent) -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.SetHtmlContent(string encoded) -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext.AllAttributes.get -> Microsoft.AspNetCore.Razor.TagHelpers.ReadOnlyTagHelperAttributeList +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext.Items.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext.Reinitialize(System.Collections.Generic.IDictionary items, string uniqueId) -> void +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext.Reinitialize(string tagName, System.Collections.Generic.IDictionary items, string uniqueId) -> void +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext.TagHelperContext(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList allAttributes, System.Collections.Generic.IDictionary items, string uniqueId) -> void +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext.TagHelperContext(string tagName, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList allAttributes, System.Collections.Generic.IDictionary items, string uniqueId) -> void +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext.TagName.get -> string +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext.UniqueId.get -> string +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.Attributes.get -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.Content.get -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.Content.set -> void +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.GetChildContentAsync() -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.GetChildContentAsync(System.Text.Encodings.Web.HtmlEncoder encoder) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.GetChildContentAsync(bool useCachedResult) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.GetChildContentAsync(bool useCachedResult, System.Text.Encodings.Web.HtmlEncoder encoder) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.PostContent.get -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.PostElement.get -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.PreContent.get -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.PreElement.get -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.Reinitialize(string tagName, Microsoft.AspNetCore.Razor.TagHelpers.TagMode tagMode) -> void +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.TagHelperOutput(string tagName, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList attributes, System.Func> getChildContentAsync) -> void +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.TagName.get -> string +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.TagName.set -> void +~Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput.WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) -> void +~abstract Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.Append(string unencoded) -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent +~abstract Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.AppendHtml(Microsoft.AspNetCore.Html.IHtmlContent htmlContent) -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent +~abstract Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.AppendHtml(string encoded) -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent +~abstract Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.Clear() -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent +~abstract Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.CopyTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder destination) -> void +~abstract Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.GetContent() -> string +~abstract Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.GetContent(System.Text.Encodings.Web.HtmlEncoder encoder) -> string +~abstract Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.MoveTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder destination) -> void +~abstract Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent.WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) -> void +~const Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute.ElementCatchAllTarget = "*" -> string +~override Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent.Append(string unencoded) -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent +~override Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent.AppendHtml(Microsoft.AspNetCore.Html.IHtmlContent htmlContent) -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent +~override Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent.AppendHtml(string encoded) -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent +~override Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent.Clear() -> Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent +~override Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent.CopyTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder destination) -> void +~override Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent.GetContent() -> string +~override Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent.GetContent(System.Text.Encodings.Web.HtmlEncoder encoder) -> string +~override Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent.MoveTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder destination) -> void +~override Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent.WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) -> void +~override Microsoft.AspNetCore.Razor.TagHelpers.NullHtmlEncoder.Encode(System.IO.TextWriter output, char[] value, int startIndex, int characterCount) -> void +~override Microsoft.AspNetCore.Razor.TagHelpers.NullHtmlEncoder.Encode(System.IO.TextWriter output, string value, int startIndex, int characterCount) -> void +~override Microsoft.AspNetCore.Razor.TagHelpers.NullHtmlEncoder.Encode(string value) -> string +~override Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute.Equals(object obj) -> bool +~static Microsoft.AspNetCore.Razor.TagHelpers.NullHtmlEncoder.Default.get -> Microsoft.AspNetCore.Razor.TagHelpers.NullHtmlEncoder +~static Microsoft.AspNetCore.Razor.TagHelpers.ReadOnlyTagHelperAttributeList.NameEquals(string name, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) -> bool +~virtual Microsoft.AspNetCore.Razor.TagHelpers.TagHelper.Init(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context) -> void +~virtual Microsoft.AspNetCore.Razor.TagHelpers.TagHelper.Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> void +~virtual Microsoft.AspNetCore.Razor.TagHelpers.TagHelper.ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Razor.TagHelpers.TagHelperComponent.Init(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context) -> void +~virtual Microsoft.AspNetCore.Razor.TagHelpers.TagHelperComponent.Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> void +~virtual Microsoft.AspNetCore.Razor.TagHelpers.TagHelperComponent.ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) -> System.Threading.Tasks.Task From cc0665cb6f12b1905a3dd3135c747e51db41a9a4 Mon Sep 17 00:00:00 2001 From: Ken Egozi Date: Thu, 10 Sep 2020 15:02:21 -0700 Subject: [PATCH 077/187] TypeReference usage clarification (#25719) This change makes TypeReference usage a little bit easier - Marking it abstract make it so that usages cannot "forget" subclassing (or omitting the { } part). Previously the error message would be confusing as the supertype would be Object. - Removing the instanceof check and relying on exception since instantiating TypeReference without a type parameter (new TypeReference() ) *is* exceptional as it goes against the intention of this class altogether. - Added some clarification to the javadoc regarding intended usage, and a link to prior art for further reading. --- .../com/microsoft/signalr/TypeReference.java | 30 +++++++++++++------ 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/TypeReference.java b/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/TypeReference.java index 24213e663b..4bbe32e929 100644 --- a/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/TypeReference.java +++ b/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/TypeReference.java @@ -3,36 +3,48 @@ package com.microsoft.signalr; +import java.lang.ClassCastException; import java.lang.reflect.Type; import java.lang.reflect.ParameterizedType; + /** - * A utility for getting a Java Type from a literal Class. + * A utility for getting a Java Type from a literal generic Class. */ -public class TypeReference { +public abstract class TypeReference { private final Type type; /** * Creates a new instance of {@link TypeReference}. * - * To get the Type of Class Foo, use the following syntax: + * This class implements Super Type Tokens (Gafter's Gadget) as a way to get a reference to generic types in + * spite of type erasure since, sadly, {@code Foo.class} is not valid Java. + * + * To get the Type of Class {@code Foo}, use the following syntax: *
{@code
-     * Type fooType = (new TypeReference() { }).getType();
+     * Type fooBarType = (new TypeReference>() { }).getType();
      * }
+ * + * To get the Type of class Foo, use a regular Type Token: + *
{@code
+     * Type fooType = Foo.class;
+     * }
+ * + * @see Super Type Tokens */ public TypeReference() { - Type superclass = getClass().getGenericSuperclass(); - if (superclass instanceof Class) { - throw new RuntimeException("Missing type parameter."); + try { + this.type = ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]; + } catch (ClassCastException ex) { + throw new RuntimeException("TypeReference must be instantiated with a type parameter such as (new TypeReference>() {})."); } - this.type = ((ParameterizedType) superclass).getActualTypeArguments()[0]; } /** * Gets the referenced type. * @return The Type encapsulated by this TypeReference - */ + */ public Type getType() { return this.type; } From fa2a5076e4bb822bf238c9542f9440de8bfbf548 Mon Sep 17 00:00:00 2001 From: Zachary Becknell Date: Thu, 10 Sep 2020 18:10:47 -0400 Subject: [PATCH 078/187] Add option to specify hostname in BrowserRefreshServer (#25572) * Add option to specify hostName for refresh server * Update env variable name per suggestion Co-authored-by: Pranav K Co-authored-by: Pranav K --- src/Tools/dotnet-watch/src/BrowserRefreshServer.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Tools/dotnet-watch/src/BrowserRefreshServer.cs b/src/Tools/dotnet-watch/src/BrowserRefreshServer.cs index e0bd940cca..7ff3952d28 100644 --- a/src/Tools/dotnet-watch/src/BrowserRefreshServer.cs +++ b/src/Tools/dotnet-watch/src/BrowserRefreshServer.cs @@ -33,11 +33,13 @@ namespace Microsoft.DotNet.Watcher.Tools public async ValueTask StartAsync(CancellationToken cancellationToken) { + var hostName = Environment.GetEnvironmentVariable("DOTNET_WATCH_AUTO_RELOAD_WS_HOSTNAME") ?? "127.0.0.1"; + _refreshServer = new HostBuilder() .ConfigureWebHost(builder => { builder.UseKestrel(); - builder.UseUrls("http://127.0.0.1:0"); + builder.UseUrls($"http://{hostName}:0"); builder.Configure(app => { @@ -100,7 +102,7 @@ namespace Microsoft.DotNet.Watcher.Tools { _refreshServer.Dispose(); } - + _taskCompletionSource.TrySetResult(); } } From 690c7173146129d0e595d0dd075cbaa27ed84ebd Mon Sep 17 00:00:00 2001 From: Pranav K Date: Thu, 10 Sep 2020 15:12:17 -0700 Subject: [PATCH 079/187] Update to latest SDK (#25421) * React to platform compatibility analyzer warnings * React to new warnings * Add platform compatibility attributes --- eng/targets/CSharp.Common.targets | 3 + global.json | 4 +- .../Ignitor/src/CancellableOperation.cs | 2 +- .../CircuitGracefulTerminationTests.cs | 2 +- .../src/DataProtectionBuilderExtensions.cs | 6 + .../src/KeyManagement/XmlKeyManager.cs | 7 ++ ...Microsoft.AspNetCore.DataProtection.csproj | 4 +- .../src/RegistryPolicyResolver.cs | 2 + .../src/Repositories/RegistryXmlRepository.cs | 2 + .../src/XmlEncryption/DpapiNGXmlEncryptor.cs | 2 + .../src/XmlEncryption/DpapiXmlEncryptor.cs | 2 + .../src/Properties/AssemblyInfo.cs | 2 + .../HeaderDictionaryTypeExtensionsTest.cs | 4 +- .../UnitTests/Template/TemplateParserTests.cs | 2 +- .../BuildIntrospectionTest.cs | 2 +- .../Negotiate/src/NegotiateHandler.cs | 2 +- ...Microsoft.AspNetCore.Server.HttpSys.csproj | 3 + .../src/WebHostBuilderHttpSysExtensions.cs | 5 +- .../Microsoft.AspNetCore.Server.IIS.csproj | 5 +- ...ft.AspNetCore.Server.IISIntegration.csproj | 3 + ...tCore.Server.IntegrationTesting.IIS.csproj | 2 + src/Servers/Kestrel/stress/Program.cs | 2 +- .../CertificateManager.cs | 2 + .../WindowsCertificateManager.cs | 2 + src/Shared/PlatformAttributes.cs | 107 ++++++++++++++++++ .../runtime/Http2/HPackIntegerTest.cs | 3 +- .../src/Internal/HttpConnectionDispatcher.cs | 2 +- 27 files changed, 169 insertions(+), 15 deletions(-) create mode 100644 src/Shared/PlatformAttributes.cs diff --git a/eng/targets/CSharp.Common.targets b/eng/targets/CSharp.Common.targets index 2d9deb5890..c9ef556f4d 100644 --- a/eng/targets/CSharp.Common.targets +++ b/eng/targets/CSharp.Common.targets @@ -13,6 +13,9 @@ $(NoWarn);RS0041 + + + $(NoWarn);CA1416 (TaskContinuationOptions.RunContinuationsAsynchronously); + Completion = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); Completion.Task.ContinueWith( (task, state) => { diff --git a/src/Components/test/E2ETest/ServerExecutionTests/CircuitGracefulTerminationTests.cs b/src/Components/test/E2ETest/ServerExecutionTests/CircuitGracefulTerminationTests.cs index 69c20cb970..eb3340427e 100644 --- a/src/Components/test/E2ETest/ServerExecutionTests/CircuitGracefulTerminationTests.cs +++ b/src/Components/test/E2ETest/ServerExecutionTests/CircuitGracefulTerminationTests.cs @@ -47,7 +47,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests Browser.MountTestComponent(); Browser.Equal("Current count: 0", () => Browser.FindElement(By.TagName("p")).Text); - GracefulDisconnectCompletionSource = new TaskCompletionSource(TaskContinuationOptions.RunContinuationsAsynchronously); + GracefulDisconnectCompletionSource = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); Sink = _serverFixture.Host.Services.GetRequiredService(); Messages = new List<(Extensions.Logging.LogLevel level, string eventIdName)>(); Sink.MessageLogged += Log; diff --git a/src/DataProtection/DataProtection/src/DataProtectionBuilderExtensions.cs b/src/DataProtection/DataProtection/src/DataProtectionBuilderExtensions.cs index 7789ca074f..e6618bd535 100644 --- a/src/DataProtection/DataProtection/src/DataProtectionBuilderExtensions.cs +++ b/src/DataProtection/DataProtection/src/DataProtectionBuilderExtensions.cs @@ -4,6 +4,7 @@ using System; using System.ComponentModel; using System.IO; +using System.Runtime.Versioning; using System.Security.Cryptography.X509Certificates; using Microsoft.AspNetCore.Cryptography; using Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption; @@ -223,6 +224,7 @@ namespace Microsoft.AspNetCore.DataProtection /// The . /// The location in the registry where keys should be stored. /// A reference to the after this operation has completed. + [SupportedOSPlatform("windows")] public static IDataProtectionBuilder PersistKeysToRegistry(this IDataProtectionBuilder builder, RegistryKey registryKey) { if (builder == null) @@ -356,6 +358,7 @@ namespace Microsoft.AspNetCore.DataProtection /// /// This API is only supported on Windows platforms. /// + [SupportedOSPlatform("windows")] public static IDataProtectionBuilder ProtectKeysWithDpapi(this IDataProtectionBuilder builder) { if (builder == null) @@ -378,6 +381,7 @@ namespace Microsoft.AspNetCore.DataProtection /// /// This API is only supported on Windows platforms. /// + [SupportedOSPlatform("windows")] public static IDataProtectionBuilder ProtectKeysWithDpapi(this IDataProtectionBuilder builder, bool protectToLocalMachine) { if (builder == null) @@ -408,6 +412,7 @@ namespace Microsoft.AspNetCore.DataProtection /// See https://msdn.microsoft.com/en-us/library/windows/desktop/hh706794(v=vs.85).aspx /// for more information on DPAPI-NG. This API is only supported on Windows 8 / Windows Server 2012 and higher. /// + [SupportedOSPlatform("windows")] public static IDataProtectionBuilder ProtectKeysWithDpapiNG(this IDataProtectionBuilder builder) { if (builder == null) @@ -435,6 +440,7 @@ namespace Microsoft.AspNetCore.DataProtection /// and arguments. /// This API is only supported on Windows 8 / Windows Server 2012 and higher. /// + [SupportedOSPlatform("windows")] public static IDataProtectionBuilder ProtectKeysWithDpapiNG(this IDataProtectionBuilder builder, string protectionDescriptorRule, DpapiNGProtectionDescriptorFlags flags) { if (builder == null) diff --git a/src/DataProtection/DataProtection/src/KeyManagement/XmlKeyManager.cs b/src/DataProtection/DataProtection/src/KeyManagement/XmlKeyManager.cs index 736005ecf7..094832e43c 100644 --- a/src/DataProtection/DataProtection/src/KeyManagement/XmlKeyManager.cs +++ b/src/DataProtection/DataProtection/src/KeyManagement/XmlKeyManager.cs @@ -7,6 +7,7 @@ using System.Diagnostics; using System.Globalization; using System.Linq; using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; using System.Threading; using System.Xml; using System.Xml.Linq; @@ -500,6 +501,8 @@ namespace Microsoft.AspNetCore.DataProtection.KeyManagement { if (OSVersionUtil.IsWindows()) { + Debug.Assert(RuntimeInformation.IsOSPlatform(OSPlatform.Windows)); // Hint for the platform compatibility analyzer. + // If the user profile is available, we can protect using DPAPI. // Probe to see if protecting to local user is available, and use it as the default if so. encryptor = new DpapiXmlEncryptor( @@ -523,10 +526,14 @@ namespace Microsoft.AspNetCore.DataProtection.KeyManagement RegistryKey regKeyStorageKey = null; if (OSVersionUtil.IsWindows()) { + Debug.Assert(RuntimeInformation.IsOSPlatform(OSPlatform.Windows)); // Hint for the platform compatibility analyzer. regKeyStorageKey = RegistryXmlRepository.DefaultRegistryKey; } if (regKeyStorageKey != null) { + Debug.Assert(RuntimeInformation.IsOSPlatform(OSPlatform.Windows)); // Hint for the platform compatibility analyzer. + regKeyStorageKey = RegistryXmlRepository.DefaultRegistryKey; + // If the user profile isn't available, we can protect using DPAPI (to machine). encryptor = new DpapiXmlEncryptor(protectToLocalMachine: true, loggerFactory: _loggerFactory); repository = new RegistryXmlRepository(regKeyStorageKey, _loggerFactory); diff --git a/src/DataProtection/DataProtection/src/Microsoft.AspNetCore.DataProtection.csproj b/src/DataProtection/DataProtection/src/Microsoft.AspNetCore.DataProtection.csproj index 8f16e33480..520a9f4745 100644 --- a/src/DataProtection/DataProtection/src/Microsoft.AspNetCore.DataProtection.csproj +++ b/src/DataProtection/DataProtection/src/Microsoft.AspNetCore.DataProtection.csproj @@ -1,4 +1,4 @@ - + ASP.NET Core logic to protect and unprotect data, similar to DPAPI. @@ -14,6 +14,8 @@ + diff --git a/src/DataProtection/DataProtection/src/RegistryPolicyResolver.cs b/src/DataProtection/DataProtection/src/RegistryPolicyResolver.cs index d3357fa34d..b1ec26ff12 100644 --- a/src/DataProtection/DataProtection/src/RegistryPolicyResolver.cs +++ b/src/DataProtection/DataProtection/src/RegistryPolicyResolver.cs @@ -6,6 +6,7 @@ using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Reflection; +using System.Runtime.Versioning; using Microsoft.AspNetCore.Cryptography; using Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel; using Microsoft.AspNetCore.DataProtection.Internal; @@ -17,6 +18,7 @@ namespace Microsoft.AspNetCore.DataProtection /// /// A type which allows reading policy from the system registry. /// + [SupportedOSPlatform("windows")] internal sealed class RegistryPolicyResolver: IRegistryPolicyResolver { private readonly Func _getPolicyRegKey; diff --git a/src/DataProtection/DataProtection/src/Repositories/RegistryXmlRepository.cs b/src/DataProtection/DataProtection/src/Repositories/RegistryXmlRepository.cs index 7692d1ccb5..28a7cbec23 100644 --- a/src/DataProtection/DataProtection/src/Repositories/RegistryXmlRepository.cs +++ b/src/DataProtection/DataProtection/src/Repositories/RegistryXmlRepository.cs @@ -5,6 +5,7 @@ using System; using System.Collections.Generic; using System.Globalization; using System.Linq; +using System.Runtime.Versioning; using System.Security.Principal; using System.Xml.Linq; using Microsoft.Extensions.Logging; @@ -15,6 +16,7 @@ namespace Microsoft.AspNetCore.DataProtection.Repositories /// /// An XML repository backed by the Windows registry. /// + [SupportedOSPlatform("windows")] public class RegistryXmlRepository : IXmlRepository { private static readonly Lazy _defaultRegistryKeyLazy = new Lazy(GetDefaultHklmStorageKey); diff --git a/src/DataProtection/DataProtection/src/XmlEncryption/DpapiNGXmlEncryptor.cs b/src/DataProtection/DataProtection/src/XmlEncryption/DpapiNGXmlEncryptor.cs index f5162496bb..edd3afd493 100644 --- a/src/DataProtection/DataProtection/src/XmlEncryption/DpapiNGXmlEncryptor.cs +++ b/src/DataProtection/DataProtection/src/XmlEncryption/DpapiNGXmlEncryptor.cs @@ -3,6 +3,7 @@ using System; using System.Globalization; +using System.Runtime.Versioning; using System.Security.Principal; using System.Xml.Linq; using Microsoft.AspNetCore.Cryptography; @@ -18,6 +19,7 @@ namespace Microsoft.AspNetCore.DataProtection.XmlEncryption /// /// This API is only supported on Windows 8 / Windows Server 2012 and higher. /// + [SupportedOSPlatform("windows")] public sealed class DpapiNGXmlEncryptor : IXmlEncryptor { private readonly ILogger _logger; diff --git a/src/DataProtection/DataProtection/src/XmlEncryption/DpapiXmlEncryptor.cs b/src/DataProtection/DataProtection/src/XmlEncryption/DpapiXmlEncryptor.cs index d7fa2d7b1b..cd842f1acd 100644 --- a/src/DataProtection/DataProtection/src/XmlEncryption/DpapiXmlEncryptor.cs +++ b/src/DataProtection/DataProtection/src/XmlEncryption/DpapiXmlEncryptor.cs @@ -2,6 +2,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Runtime.Versioning; using System.Security.Principal; using System.Xml.Linq; using Microsoft.AspNetCore.Cryptography; @@ -16,6 +17,7 @@ namespace Microsoft.AspNetCore.DataProtection.XmlEncryption /// /// This API is only supported on Windows platforms. /// + [SupportedOSPlatform("windows")] public sealed class DpapiXmlEncryptor : IXmlEncryptor { private readonly ILogger _logger; diff --git a/src/Hosting/WindowsServices/src/Properties/AssemblyInfo.cs b/src/Hosting/WindowsServices/src/Properties/AssemblyInfo.cs index 63d95d6dfb..6e6ee3ba7f 100644 --- a/src/Hosting/WindowsServices/src/Properties/AssemblyInfo.cs +++ b/src/Hosting/WindowsServices/src/Properties/AssemblyInfo.cs @@ -2,5 +2,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System.Runtime.CompilerServices; +using System.Runtime.Versioning; [assembly: InternalsVisibleTo("Microsoft.AspNetCore.Hosting.WindowsServices.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")] +[assembly: SupportedOSPlatform("windows")] \ No newline at end of file diff --git a/src/Http/Http.Extensions/test/HeaderDictionaryTypeExtensionsTest.cs b/src/Http/Http.Extensions/test/HeaderDictionaryTypeExtensionsTest.cs index 06c0d967e6..2ca3c36e27 100644 --- a/src/Http/Http.Extensions/test/HeaderDictionaryTypeExtensionsTest.cs +++ b/src/Http/Http.Extensions/test/HeaderDictionaryTypeExtensionsTest.cs @@ -162,7 +162,7 @@ namespace Microsoft.AspNetCore.Http.Headers { public static bool TryParse(string value, out TestHeaderValue result) { - if (string.Equals("valid", value)) + if (string.Equals("valid", value, StringComparison.Ordinal)) { result = new TestHeaderValue(); return true; @@ -176,7 +176,7 @@ namespace Microsoft.AspNetCore.Http.Headers var results = new List(); foreach (var value in values) { - if (string.Equals("valid", value)) + if (string.Equals("valid", value, StringComparison.Ordinal)) { results.Add(new TestHeaderValue()); } diff --git a/src/Http/Routing/test/UnitTests/Template/TemplateParserTests.cs b/src/Http/Routing/test/UnitTests/Template/TemplateParserTests.cs index f5f36332e6..2ac022c212 100644 --- a/src/Http/Routing/test/UnitTests/Template/TemplateParserTests.cs +++ b/src/Http/Routing/test/UnitTests/Template/TemplateParserTests.cs @@ -896,7 +896,7 @@ namespace Microsoft.AspNetCore.Routing.Template.Tests foreach (var xconstraint in x.InlineConstraints) { if (!y.InlineConstraints.Any( - c => string.Equals(c.Constraint, xconstraint.Constraint))) + c => string.Equals(c.Constraint, xconstraint.Constraint, StringComparison.Ordinal))) { return false; } diff --git a/src/Razor/Microsoft.NET.Sdk.Razor/integrationtests/BuildIntrospectionTest.cs b/src/Razor/Microsoft.NET.Sdk.Razor/integrationtests/BuildIntrospectionTest.cs index de73ff376a..c857f59ee4 100644 --- a/src/Razor/Microsoft.NET.Sdk.Razor/integrationtests/BuildIntrospectionTest.cs +++ b/src/Razor/Microsoft.NET.Sdk.Razor/integrationtests/BuildIntrospectionTest.cs @@ -257,7 +257,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests Assert.BuildOutputContainsLine(result, $"RazorTasksPath: {expected}"); } - [ConditionalFact] + [ConditionalFact(Skip = "https://github.com/dotnet/aspnetcore/issues/24427")] [OSSkipCondition(OperatingSystems.Linux | OperatingSystems.MacOSX)] [InitializeTestProject("SimpleMvc")] public async Task IntrospectRazorTasksDllPath_DesktopMsBuild() diff --git a/src/Security/Authentication/Negotiate/src/NegotiateHandler.cs b/src/Security/Authentication/Negotiate/src/NegotiateHandler.cs index 0ef6697857..179a85ed0b 100644 --- a/src/Security/Authentication/Negotiate/src/NegotiateHandler.cs +++ b/src/Security/Authentication/Negotiate/src/NegotiateHandler.cs @@ -315,7 +315,7 @@ namespace Microsoft.AspNetCore.Authentication.Negotiate // things like ClaimsTransformation run per request. var identity = _negotiateState.GetIdentity(); ClaimsPrincipal user; - if (identity is WindowsIdentity winIdentity) + if (OperatingSystem.IsWindows() && identity is WindowsIdentity winIdentity) { user = new WindowsPrincipal(winIdentity); Response.RegisterForDispose(winIdentity); diff --git a/src/Servers/HttpSys/src/Microsoft.AspNetCore.Server.HttpSys.csproj b/src/Servers/HttpSys/src/Microsoft.AspNetCore.Server.HttpSys.csproj index 72b994fff3..0ab19cbe78 100644 --- a/src/Servers/HttpSys/src/Microsoft.AspNetCore.Server.HttpSys.csproj +++ b/src/Servers/HttpSys/src/Microsoft.AspNetCore.Server.HttpSys.csproj @@ -9,6 +9,9 @@ true aspnetcore;weblistener;httpsys false + + + $(NoWarn);CA1416 diff --git a/src/Servers/HttpSys/src/WebHostBuilderHttpSysExtensions.cs b/src/Servers/HttpSys/src/WebHostBuilderHttpSysExtensions.cs index f7c2b9445f..72ac78b014 100644 --- a/src/Servers/HttpSys/src/WebHostBuilderHttpSysExtensions.cs +++ b/src/Servers/HttpSys/src/WebHostBuilderHttpSysExtensions.cs @@ -2,6 +2,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Runtime.Versioning; using Microsoft.AspNetCore.Hosting.Server; using Microsoft.AspNetCore.Server.HttpSys; using Microsoft.Extensions.DependencyInjection; @@ -11,7 +12,7 @@ namespace Microsoft.AspNetCore.Hosting { /// /// Provides extensions method to use Http.sys as the server for the web host. - /// + /// public static class WebHostBuilderHttpSysExtensions { /// @@ -23,6 +24,7 @@ namespace Microsoft.AspNetCore.Hosting /// /// A reference to the parameter object. /// + [SupportedOSPlatform("windows")] public static IWebHostBuilder UseHttpSys(this IWebHostBuilder hostBuilder) { return hostBuilder.ConfigureServices(services => { @@ -52,6 +54,7 @@ namespace Microsoft.AspNetCore.Hosting /// /// A reference to the parameter object. /// + [SupportedOSPlatform("windows")] public static IWebHostBuilder UseHttpSys(this IWebHostBuilder hostBuilder, Action options) { return hostBuilder.UseHttpSys().ConfigureServices(services => diff --git a/src/Servers/IIS/IIS/src/Microsoft.AspNetCore.Server.IIS.csproj b/src/Servers/IIS/IIS/src/Microsoft.AspNetCore.Server.IIS.csproj index d262f5cd0b..5727a00650 100644 --- a/src/Servers/IIS/IIS/src/Microsoft.AspNetCore.Server.IIS.csproj +++ b/src/Servers/IIS/IIS/src/Microsoft.AspNetCore.Server.IIS.csproj @@ -11,12 +11,15 @@ true $(DefaultNetCoreTargetFramework) false + + + $(NoWarn);CA1416 - + diff --git a/src/Servers/IIS/IISIntegration/src/Microsoft.AspNetCore.Server.IISIntegration.csproj b/src/Servers/IIS/IISIntegration/src/Microsoft.AspNetCore.Server.IISIntegration.csproj index addaf56ff2..0c1e8fb171 100644 --- a/src/Servers/IIS/IISIntegration/src/Microsoft.AspNetCore.Server.IISIntegration.csproj +++ b/src/Servers/IIS/IISIntegration/src/Microsoft.AspNetCore.Server.IISIntegration.csproj @@ -9,6 +9,9 @@ aspnetcore;iis true false + + + $(NoWarn);CA1416 diff --git a/src/Servers/IIS/IntegrationTesting.IIS/src/Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj b/src/Servers/IIS/IntegrationTesting.IIS/src/Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj index d98aab50da..148e9db98e 100644 --- a/src/Servers/IIS/IntegrationTesting.IIS/src/Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj +++ b/src/Servers/IIS/IntegrationTesting.IIS/src/Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj @@ -20,6 +20,8 @@ about this structure --> $(NoWarn);NU5100 + + $(NoWarn);CA1416 diff --git a/src/Servers/Kestrel/stress/Program.cs b/src/Servers/Kestrel/stress/Program.cs index c962d5bfd7..2a07813d71 100644 --- a/src/Servers/Kestrel/stress/Program.cs +++ b/src/Servers/Kestrel/stress/Program.cs @@ -646,7 +646,7 @@ public class Program { await stream.WriteAsync(new byte[] { 1, 2, 3 }); - var tcs = new TaskCompletionSource(TaskContinuationOptions.RunContinuationsAsynchronously); + var tcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); using (_cancellationToken.Register(() => tcs.SetResult(true))) { await tcs.Task.ConfigureAwait(false); diff --git a/src/Shared/CertificateGeneration/CertificateManager.cs b/src/Shared/CertificateGeneration/CertificateManager.cs index b5c0d0088e..8ad2e14749 100644 --- a/src/Shared/CertificateGeneration/CertificateManager.cs +++ b/src/Shared/CertificateGeneration/CertificateManager.cs @@ -28,7 +28,9 @@ namespace Microsoft.AspNetCore.Certificates.Generation public const int RSAMinimumKeySizeInBits = 2048; public static CertificateManager Instance { get; } = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? +#pragma warning disable CA1416 // Validate platform compatibility new WindowsCertificateManager() : +#pragma warning restore CA1416 // Validate platform compatibility RuntimeInformation.IsOSPlatform(OSPlatform.OSX) ? new MacOSCertificateManager() as CertificateManager : new UnixCertificateManager(); diff --git a/src/Shared/CertificateGeneration/WindowsCertificateManager.cs b/src/Shared/CertificateGeneration/WindowsCertificateManager.cs index cbeed665d2..e9fe0ef2e1 100644 --- a/src/Shared/CertificateGeneration/WindowsCertificateManager.cs +++ b/src/Shared/CertificateGeneration/WindowsCertificateManager.cs @@ -1,11 +1,13 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Runtime.Versioning; using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; namespace Microsoft.AspNetCore.Certificates.Generation { + [SupportedOSPlatform("windows")] internal class WindowsCertificateManager : CertificateManager { private const int UserCancelledErrorCode = 1223; diff --git a/src/Shared/PlatformAttributes.cs b/src/Shared/PlatformAttributes.cs new file mode 100644 index 0000000000..0d44154118 --- /dev/null +++ b/src/Shared/PlatformAttributes.cs @@ -0,0 +1,107 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +// Copied from https://raw.githubusercontent.com/dotnet/runtime/b45ee9d37afec0c88141053e86ccf71c6f283000/src/libraries/System.Private.CoreLib/src/System/Runtime/Versioning/PlatformAttributes.cs + +#nullable enable +namespace System.Runtime.Versioning +{ + /// + /// Base type for all platform-specific API attributes. + /// +#pragma warning disable CS3015 // Type has no accessible constructors which use only CLS-compliant types +#if SYSTEM_PRIVATE_CORELIB + public +#else + internal +#endif + abstract class OSPlatformAttribute : Attribute +#pragma warning restore CS3015 + { + private protected OSPlatformAttribute(string platformName) + { + PlatformName = platformName; + } + public string PlatformName { get; } + } + + /// + /// Records the platform that the project targeted. + /// + [AttributeUsage(AttributeTargets.Assembly, + AllowMultiple = false, Inherited = false)] +#if SYSTEM_PRIVATE_CORELIB + public +#else + internal +#endif + sealed class TargetPlatformAttribute : OSPlatformAttribute + { + public TargetPlatformAttribute(string platformName) : base(platformName) + { + } + } + + /// + /// Records the operating system (and minimum version) that supports an API. Multiple attributes can be + /// applied to indicate support on multiple operating systems. + /// + /// + /// Callers can apply a + /// or use guards to prevent calls to APIs on unsupported operating systems. + /// + /// A given platform should only be specified once. + /// + [AttributeUsage(AttributeTargets.Assembly | + AttributeTargets.Class | + AttributeTargets.Constructor | + AttributeTargets.Enum | + AttributeTargets.Event | + AttributeTargets.Field | + AttributeTargets.Method | + AttributeTargets.Module | + AttributeTargets.Property | + AttributeTargets.Struct, + AllowMultiple = true, Inherited = false)] +#if SYSTEM_PRIVATE_CORELIB + public +#else + internal +#endif + sealed class SupportedOSPlatformAttribute : OSPlatformAttribute + { + public SupportedOSPlatformAttribute (string platformName) : base(platformName) + { + } + } + + /// + /// Marks APIs that were removed in a given operating system version. + /// + /// + /// Primarily used by OS bindings to indicate APIs that are only available in + /// earlier versions. + /// + [AttributeUsage(AttributeTargets.Assembly | + AttributeTargets.Class | + AttributeTargets.Constructor | + AttributeTargets.Enum | + AttributeTargets.Event | + AttributeTargets.Field | + AttributeTargets.Method | + AttributeTargets.Module | + AttributeTargets.Property | + AttributeTargets.Struct, + AllowMultiple = true, Inherited = false)] +#if SYSTEM_PRIVATE_CORELIB + public +#else + internal +#endif + sealed class UnsupportedOSPlatformAttribute : OSPlatformAttribute + { + public UnsupportedOSPlatformAttribute(string platformName) : base(platformName) + { + } + } +} \ No newline at end of file diff --git a/src/Shared/test/Shared.Tests/runtime/Http2/HPackIntegerTest.cs b/src/Shared/test/Shared.Tests/runtime/Http2/HPackIntegerTest.cs index 98938a776b..704dad8ac4 100644 --- a/src/Shared/test/Shared.Tests/runtime/Http2/HPackIntegerTest.cs +++ b/src/Shared/test/Shared.Tests/runtime/Http2/HPackIntegerTest.cs @@ -55,12 +55,13 @@ namespace System.Net.Http.Unit.Tests.HPack public void IntegerEncoderDecoderRoundtrips() { IntegerDecoder decoder = new IntegerDecoder(); + Span integerBytes = stackalloc byte[5]; for (int i = 0; i < 2048; ++i) { for (int prefixLength = 1; prefixLength <= 8; ++prefixLength) { - Span integerBytes = stackalloc byte[5]; + integerBytes.Clear(); Assert.True(IntegerEncoder.Encode(i, prefixLength, integerBytes, out int length)); bool decodeResult = decoder.BeginTryDecode(integerBytes[0], prefixLength, out int intResult); diff --git a/src/SignalR/common/Http.Connections/src/Internal/HttpConnectionDispatcher.cs b/src/SignalR/common/Http.Connections/src/Internal/HttpConnectionDispatcher.cs index d20503d63e..7134abc1f9 100644 --- a/src/SignalR/common/Http.Connections/src/Internal/HttpConnectionDispatcher.cs +++ b/src/SignalR/common/Http.Connections/src/Internal/HttpConnectionDispatcher.cs @@ -580,7 +580,7 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal if (oldContext.User.Identity is WindowsIdentity windowsIdentity) { var skipFirstIdentity = false; - if (oldContext.User is WindowsPrincipal) + if (OperatingSystem.IsWindows() && oldContext.User is WindowsPrincipal) { // We want to explicitly create a WindowsPrincipal instead of a ClaimsPrincipal // so methods that WindowsPrincipal overrides like 'IsInRole', work as expected. From 36f8642f0b49c502ca6afaaf7d4beecc5744f1ce Mon Sep 17 00:00:00 2001 From: Pranav K Date: Thu, 10 Sep 2020 15:14:30 -0700 Subject: [PATCH 080/187] Use T? for unconstrained nullable types (#25261) * Use T? for unconstrained nullable types * Apply suggestions from code review --- src/Components/Components/src/BindConverter.cs | 6 +++--- .../Components/src/EventCallbackOfT.cs | 4 ++-- src/Components/Components/src/ParameterView.cs | 5 ++--- src/Components/Server/src/Circuits/CircuitId.cs | 3 +-- src/Components/Web/src/Forms/InputBase.cs | 16 ++++++---------- src/Components/Web/src/Forms/InputDate.cs | 10 ++++++---- src/Components/Web/src/Forms/InputExtensions.cs | 2 +- src/Components/Web/src/Forms/InputFile.cs | 5 +++++ .../Forms/InputFile/RemoteBrowserFileStream.cs | 5 +++-- src/Components/Web/src/Forms/InputNumber.cs | 4 ++-- src/Components/Web/src/Forms/InputRadio.cs | 4 +--- src/Components/Web/src/Forms/InputRadioGroup.cs | 2 +- src/Components/Web/src/Forms/InputSelect.cs | 2 +- .../src/IJSInProcessRuntime.cs | 6 +++--- .../Implementation/JSInProcessObjectReference.cs | 1 - .../src/JSInProcessRuntime.cs | 9 +++++---- .../Microsoft.JSInterop/src/JSRuntime.cs | 2 +- .../src/JSRuntimeExtensions.cs | 6 +++--- .../Microsoft.JSInterop/test/JSRuntimeTest.cs | 3 +++ 19 files changed, 49 insertions(+), 46 deletions(-) diff --git a/src/Components/Components/src/BindConverter.cs b/src/Components/Components/src/BindConverter.cs index 223681ad0d..4c72cb7285 100644 --- a/src/Components/Components/src/BindConverter.cs +++ b/src/Components/Components/src/BindConverter.cs @@ -25,8 +25,8 @@ namespace Microsoft.AspNetCore.Components private delegate object? BindFormatter(T value, CultureInfo? culture); private delegate object BindFormatterWithFormat(T value, CultureInfo? culture, string format); - internal delegate bool BindParser(object? obj, CultureInfo? culture, out T value); - internal delegate bool BindParserWithFormat(object? obj, CultureInfo? culture, string? format, out T value); + internal delegate bool BindParser(object? obj, CultureInfo? culture, [MaybeNullWhen(false)] out T value); + internal delegate bool BindParserWithFormat(object? obj, CultureInfo? culture, string? format, [MaybeNullWhen(false)] out T value); /// /// Formats the provided as a . @@ -1276,7 +1276,7 @@ namespace Microsoft.AspNetCore.Components /// The to use for conversion. /// The converted value. /// true if conversion is successful, otherwise false. - public static bool TryConvertTo(object? obj, CultureInfo? culture, out T value) + public static bool TryConvertTo(object? obj, CultureInfo? culture, [MaybeNullWhen(false)] out T value) { var converter = ParserDelegateCache.Get(); return converter(obj, culture, out value); diff --git a/src/Components/Components/src/EventCallbackOfT.cs b/src/Components/Components/src/EventCallbackOfT.cs index 23f7888826..e228d8e31e 100644 --- a/src/Components/Components/src/EventCallbackOfT.cs +++ b/src/Components/Components/src/EventCallbackOfT.cs @@ -46,11 +46,11 @@ namespace Microsoft.AspNetCore.Components /// /// The argument. /// A which completes asynchronously once event processing has completed. - public Task InvokeAsync(TValue arg) + public Task InvokeAsync(TValue? arg) { if (Receiver == null) { - return EventCallbackWorkItem.InvokeAsync(Delegate, arg); + return EventCallbackWorkItem.InvokeAsync(Delegate, arg); } return Receiver.HandleEventAsync(new EventCallbackWorkItem(Delegate), arg); diff --git a/src/Components/Components/src/ParameterView.cs b/src/Components/Components/src/ParameterView.cs index f68fb60573..b58e92e9c0 100644 --- a/src/Components/Components/src/ParameterView.cs +++ b/src/Components/Components/src/ParameterView.cs @@ -88,9 +88,8 @@ namespace Microsoft.AspNetCore.Components /// The type of the value. /// The name of the parameter. /// The parameter value if found; otherwise the default value for the specified type. - [return: MaybeNull] - public TValue GetValueOrDefault(string parameterName) - => GetValueOrDefault(parameterName, default!); + public TValue? GetValueOrDefault(string parameterName) + => GetValueOrDefault(parameterName, default); /// /// Gets the value of the parameter with the specified name, or a specified default value diff --git a/src/Components/Server/src/Circuits/CircuitId.cs b/src/Components/Server/src/Circuits/CircuitId.cs index 3d63d2fdb4..90240b620b 100644 --- a/src/Components/Server/src/Circuits/CircuitId.cs +++ b/src/Components/Server/src/Circuits/CircuitId.cs @@ -2,7 +2,6 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; -using System.Diagnostics.CodeAnalysis; using System.Runtime.InteropServices; using System.Security.Cryptography; @@ -29,7 +28,7 @@ namespace Microsoft.AspNetCore.Components.Server.Circuits public string Secret { get; } - public bool Equals([AllowNull] CircuitId other) + public bool Equals(CircuitId other) { // We want to use a fixed time equality comparison for a *real* comparisons. // The only use case for Secret being null is with a default struct value, diff --git a/src/Components/Web/src/Forms/InputBase.cs b/src/Components/Web/src/Forms/InputBase.cs index 08fd03c92a..d7793583d2 100644 --- a/src/Components/Web/src/Forms/InputBase.cs +++ b/src/Components/Web/src/Forms/InputBase.cs @@ -35,10 +35,8 @@ namespace Microsoft.AspNetCore.Components.Forms /// /// @bind-Value="model.PropertyName" /// - [AllowNull] - [MaybeNull] [Parameter] - public TValue Value { get; set; } = default; + public TValue? Value { get; set; } /// /// Gets or sets a callback that updates the bound value. @@ -69,17 +67,15 @@ namespace Microsoft.AspNetCore.Components.Forms /// /// Gets or sets the current value of the input. /// - [AllowNull] - protected TValue CurrentValue + protected TValue? CurrentValue { - [return: MaybeNull] - get => Value!; + get => Value; set { var hasChanged = !EqualityComparer.Default.Equals(value, Value); if (hasChanged) { - Value = value!; + Value = value; _ = ValueChanged.InvokeAsync(Value); EditContext.NotifyFieldChanged(FieldIdentifier); } @@ -148,7 +144,7 @@ namespace Microsoft.AspNetCore.Components.Forms /// /// The value to format. /// A string representation of the value. - protected virtual string? FormatValueAsString([AllowNull] TValue value) + protected virtual string? FormatValueAsString(TValue? value) => value?.ToString(); /// @@ -159,7 +155,7 @@ namespace Microsoft.AspNetCore.Components.Forms /// An instance of . /// If the value could not be parsed, provides a validation error message. /// True if the value could be parsed; otherwise false. - protected abstract bool TryParseValueFromString(string? value, [MaybeNull] out TValue result, [NotNullWhen(false)] out string? validationErrorMessage); + protected abstract bool TryParseValueFromString(string? value, [MaybeNullWhen(false)] out TValue result, [NotNullWhen(false)] out string? validationErrorMessage); /// /// Gets a string that indicates the status of the field being edited. This will include diff --git a/src/Components/Web/src/Forms/InputDate.cs b/src/Components/Web/src/Forms/InputDate.cs index 4372646c7b..9b180f76e2 100644 --- a/src/Components/Web/src/Forms/InputDate.cs +++ b/src/Components/Web/src/Forms/InputDate.cs @@ -2,6 +2,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Globalization; using Microsoft.AspNetCore.Components.Rendering; @@ -34,7 +35,7 @@ namespace Microsoft.AspNetCore.Components.Forms } /// - protected override string FormatValueAsString([AllowNull] TValue value) + protected override string FormatValueAsString(TValue? value) { switch (value) { @@ -48,7 +49,7 @@ namespace Microsoft.AspNetCore.Components.Forms } /// - protected override bool TryParseValueFromString(string? value, [MaybeNull] out TValue result, [NotNullWhen(false)] out string? validationErrorMessage) + protected override bool TryParseValueFromString(string? value, [MaybeNullWhen(false)] out TValue result, [NotNullWhen(false)] out string? validationErrorMessage) { // Unwrap nullable types. We don't have to deal with receiving empty values for nullable // types here, because the underlying InputBase already covers that. @@ -70,6 +71,7 @@ namespace Microsoft.AspNetCore.Components.Forms if (success) { + Debug.Assert(result != null); validationErrorMessage = null; return true; } @@ -80,7 +82,7 @@ namespace Microsoft.AspNetCore.Components.Forms } } - static bool TryParseDateTime(string? value, [MaybeNullWhen(false)] out TValue result) + private static bool TryParseDateTime(string? value, [MaybeNullWhen(false)] out TValue result) { var success = BindConverter.TryConvertToDateTime(value, CultureInfo.InvariantCulture, DateFormat, out var parsedValue); if (success) @@ -95,7 +97,7 @@ namespace Microsoft.AspNetCore.Components.Forms } } - static bool TryParseDateTimeOffset(string? value, [MaybeNullWhen(false)] out TValue result) + private static bool TryParseDateTimeOffset(string? value, [MaybeNullWhen(false)] out TValue result) { var success = BindConverter.TryConvertToDateTimeOffset(value, CultureInfo.InvariantCulture, DateFormat, out var parsedValue); if (success) diff --git a/src/Components/Web/src/Forms/InputExtensions.cs b/src/Components/Web/src/Forms/InputExtensions.cs index 748af5c78e..e0991b5cb3 100644 --- a/src/Components/Web/src/Forms/InputExtensions.cs +++ b/src/Components/Web/src/Forms/InputExtensions.cs @@ -9,7 +9,7 @@ namespace Microsoft.AspNetCore.Components.Forms { internal static class InputExtensions { - public static bool TryParseSelectableValueFromString(this InputBase input, string? value, [MaybeNull] out TValue result, [NotNullWhen(false)] out string? validationErrorMessage) + public static bool TryParseSelectableValueFromString(this InputBase input, string? value, [MaybeNullWhen(false)] out TValue result, [NotNullWhen(false)] out string? validationErrorMessage) { try { diff --git a/src/Components/Web/src/Forms/InputFile.cs b/src/Components/Web/src/Forms/InputFile.cs index ada1a96f10..7eb6546d4a 100644 --- a/src/Components/Web/src/Forms/InputFile.cs +++ b/src/Components/Web/src/Forms/InputFile.cs @@ -73,6 +73,11 @@ namespace Microsoft.AspNetCore.Components.Forms { var imageFile = await JSRuntime.InvokeAsync(InputFileInterop.ToImageFile, _inputFileElement, file.Id, format, maxWidth, maxHeight); + if (imageFile is null) + { + throw new InvalidOperationException("ToImageFile returned an unexpected null result."); + } + imageFile.Owner = this; return imageFile; diff --git a/src/Components/Web/src/Forms/InputFile/RemoteBrowserFileStream.cs b/src/Components/Web/src/Forms/InputFile/RemoteBrowserFileStream.cs index 8f712ad3de..2616ecef0c 100644 --- a/src/Components/Web/src/Forms/InputFile/RemoteBrowserFileStream.cs +++ b/src/Components/Web/src/Forms/InputFile/RemoteBrowserFileStream.cs @@ -4,6 +4,7 @@ using System; using System.Buffers; using System.IO.Pipelines; +using System.Text.Json; using System.Threading; using System.Threading.Tasks; using Microsoft.JSInterop; @@ -64,10 +65,10 @@ namespace Microsoft.AspNetCore.Components.Forms offset, segmentSize); - if (bytes.Length != segmentSize) + if (bytes is null || bytes.Length != segmentSize) { throw new InvalidOperationException( - $"A segment with size {bytes.Length} bytes was received, but {segmentSize} bytes were expected."); + $"A segment with size {bytes?.Length ?? 0} bytes was received, but {segmentSize} bytes were expected."); } bytes.CopyTo(pipeBuffer); diff --git a/src/Components/Web/src/Forms/InputNumber.cs b/src/Components/Web/src/Forms/InputNumber.cs index 51ac2c5241..7c51654a85 100644 --- a/src/Components/Web/src/Forms/InputNumber.cs +++ b/src/Components/Web/src/Forms/InputNumber.cs @@ -55,7 +55,7 @@ namespace Microsoft.AspNetCore.Components.Forms } /// - protected override bool TryParseValueFromString(string? value, [MaybeNull] out TValue result, [NotNullWhen(false)] out string? validationErrorMessage) + protected override bool TryParseValueFromString(string? value, [MaybeNullWhen(false)] out TValue result, [NotNullWhen(false)] out string? validationErrorMessage) { if (BindConverter.TryConvertTo(value, CultureInfo.InvariantCulture, out result)) { @@ -74,7 +74,7 @@ namespace Microsoft.AspNetCore.Components.Forms /// /// The value to format. /// A string representation of the value. - protected override string? FormatValueAsString([AllowNull] TValue value) + protected override string? FormatValueAsString(TValue? value) { // Avoiding a cast to IFormattable to avoid boxing. switch (value) diff --git a/src/Components/Web/src/Forms/InputRadio.cs b/src/Components/Web/src/Forms/InputRadio.cs index 4a4ad46dc3..77df88376f 100644 --- a/src/Components/Web/src/Forms/InputRadio.cs +++ b/src/Components/Web/src/Forms/InputRadio.cs @@ -27,10 +27,8 @@ namespace Microsoft.AspNetCore.Components.Forms /// /// Gets or sets the value of this input. /// - [AllowNull] - [MaybeNull] [Parameter] - public TValue Value { get; set; } = default; + public TValue? Value { get; set; } /// /// Gets or sets the name of the parent input radio group. diff --git a/src/Components/Web/src/Forms/InputRadioGroup.cs b/src/Components/Web/src/Forms/InputRadioGroup.cs index 661bd91e24..8d5e663a42 100644 --- a/src/Components/Web/src/Forms/InputRadioGroup.cs +++ b/src/Components/Web/src/Forms/InputRadioGroup.cs @@ -52,7 +52,7 @@ namespace Microsoft.AspNetCore.Components.Forms } /// - protected override bool TryParseValueFromString(string? value, [MaybeNull] out TValue result, [NotNullWhen(false)] out string? validationErrorMessage) + protected override bool TryParseValueFromString(string? value, [MaybeNullWhen(false)] out TValue result, [NotNullWhen(false)] out string? validationErrorMessage) => this.TryParseSelectableValueFromString(value, out result, out validationErrorMessage); } } diff --git a/src/Components/Web/src/Forms/InputSelect.cs b/src/Components/Web/src/Forms/InputSelect.cs index b7d5dd7025..1a77ff8372 100644 --- a/src/Components/Web/src/Forms/InputSelect.cs +++ b/src/Components/Web/src/Forms/InputSelect.cs @@ -29,7 +29,7 @@ namespace Microsoft.AspNetCore.Components.Forms } /// - protected override bool TryParseValueFromString(string? value, [MaybeNull] out TValue result, [NotNullWhen(false)] out string? validationErrorMessage) + protected override bool TryParseValueFromString(string? value, [MaybeNullWhen(false)] out TValue result, [NotNullWhen(false)] out string? validationErrorMessage) => this.TryParseSelectableValueFromString(value, out result, out validationErrorMessage); } } diff --git a/src/JSInterop/Microsoft.JSInterop/src/IJSInProcessRuntime.cs b/src/JSInterop/Microsoft.JSInterop/src/IJSInProcessRuntime.cs index d1ccd639db..37b8f37f3a 100644 --- a/src/JSInterop/Microsoft.JSInterop/src/IJSInProcessRuntime.cs +++ b/src/JSInterop/Microsoft.JSInterop/src/IJSInProcessRuntime.cs @@ -11,10 +11,10 @@ namespace Microsoft.JSInterop /// /// Invokes the specified JavaScript function synchronously. /// - /// The JSON-serializable return type. + /// The JSON-serializable return type. /// An identifier for the function to invoke. For example, the value "someScope.someFunction" will invoke the function window.someScope.someFunction. /// JSON-serializable arguments. - /// An instance of obtained by JSON-deserializing the return value. - T Invoke(string identifier, params object?[]? args); + /// An instance of obtained by JSON-deserializing the return value. + TResult Invoke(string identifier, params object?[]? args); } } diff --git a/src/JSInterop/Microsoft.JSInterop/src/Implementation/JSInProcessObjectReference.cs b/src/JSInterop/Microsoft.JSInterop/src/Implementation/JSInProcessObjectReference.cs index 6867c98c78..1f48b8c896 100644 --- a/src/JSInterop/Microsoft.JSInterop/src/Implementation/JSInProcessObjectReference.cs +++ b/src/JSInterop/Microsoft.JSInterop/src/Implementation/JSInProcessObjectReference.cs @@ -23,7 +23,6 @@ namespace Microsoft.JSInterop.Implementation } /// - [return: MaybeNull] public TValue Invoke(string identifier, params object?[]? args) { ThrowIfDisposed(); diff --git a/src/JSInterop/Microsoft.JSInterop/src/JSInProcessRuntime.cs b/src/JSInterop/Microsoft.JSInterop/src/JSInProcessRuntime.cs index 44b35f6d3f..e2263333f2 100644 --- a/src/JSInterop/Microsoft.JSInterop/src/JSInProcessRuntime.cs +++ b/src/JSInterop/Microsoft.JSInterop/src/JSInProcessRuntime.cs @@ -23,7 +23,6 @@ namespace Microsoft.JSInterop id => new JSInProcessObjectReference(this, id))); } - [return: MaybeNull] internal TValue Invoke(string identifier, long targetInstanceId, params object?[]? args) { var resultJson = InvokeJS( @@ -32,12 +31,15 @@ namespace Microsoft.JSInterop JSCallResultTypeHelper.FromGeneric(), targetInstanceId); + // While the result of deserialization could be null, we're making a + // quality of life decision and letting users explicitly determine if they expect + // null by specifying TValue? as the expected return type. if (resultJson is null) { - return default; + return default!; } - return JsonSerializer.Deserialize(resultJson, JsonSerializerOptions); + return JsonSerializer.Deserialize(resultJson, JsonSerializerOptions)!; } /// @@ -47,7 +49,6 @@ namespace Microsoft.JSInterop /// An identifier for the function to invoke. For example, the value "someScope.someFunction" will invoke the function window.someScope.someFunction. /// JSON-serializable arguments. /// An instance of obtained by JSON-deserializing the return value. - [return: MaybeNull] public TValue Invoke(string identifier, params object?[]? args) => Invoke(identifier, 0, args); diff --git a/src/JSInterop/Microsoft.JSInterop/src/JSRuntime.cs b/src/JSInterop/Microsoft.JSInterop/src/JSRuntime.cs index 7d37460e55..d6f95fe126 100644 --- a/src/JSInterop/Microsoft.JSInterop/src/JSRuntime.cs +++ b/src/JSInterop/Microsoft.JSInterop/src/JSRuntime.cs @@ -102,7 +102,7 @@ namespace Microsoft.JSInterop { var taskId = Interlocked.Increment(ref _nextPendingTaskId); var tcs = new TaskCompletionSource(); - if (cancellationToken != default) + if (cancellationToken.CanBeCanceled) { _cancellationRegistrations[taskId] = cancellationToken.Register(() => { diff --git a/src/JSInterop/Microsoft.JSInterop/src/JSRuntimeExtensions.cs b/src/JSInterop/Microsoft.JSInterop/src/JSRuntimeExtensions.cs index 354eddbbf6..68ab076a66 100644 --- a/src/JSInterop/Microsoft.JSInterop/src/JSRuntimeExtensions.cs +++ b/src/JSInterop/Microsoft.JSInterop/src/JSRuntimeExtensions.cs @@ -41,7 +41,7 @@ namespace Microsoft.JSInterop /// An identifier for the function to invoke. For example, the value "someScope.someFunction" will invoke the function window.someScope.someFunction. /// JSON-serializable arguments. /// An instance of obtained by JSON-deserializing the return value. - public static ValueTask InvokeAsync(this IJSRuntime jsRuntime, string identifier, params object[] args) + public static ValueTask InvokeAsync(this IJSRuntime jsRuntime, string identifier, params object?[]? args) { if (jsRuntime is null) { @@ -63,7 +63,7 @@ namespace Microsoft.JSInterop /// /// JSON-serializable arguments. /// An instance of obtained by JSON-deserializing the return value. - public static ValueTask InvokeAsync(this IJSRuntime jsRuntime, string identifier, CancellationToken cancellationToken, params object[] args) + public static ValueTask InvokeAsync(this IJSRuntime jsRuntime, string identifier, CancellationToken cancellationToken, params object?[]? args) { if (jsRuntime is null) { @@ -102,7 +102,7 @@ namespace Microsoft.JSInterop /// The duration after which to cancel the async operation. Overrides default timeouts (). /// JSON-serializable arguments. /// A that represents the asynchronous invocation operation. - public static async ValueTask InvokeAsync(this IJSRuntime jsRuntime, string identifier, TimeSpan timeout, params object[] args) + public static async ValueTask InvokeAsync(this IJSRuntime jsRuntime, string identifier, TimeSpan timeout, params object?[]? args) { if (jsRuntime is null) { diff --git a/src/JSInterop/Microsoft.JSInterop/test/JSRuntimeTest.cs b/src/JSInterop/Microsoft.JSInterop/test/JSRuntimeTest.cs index 543b872ab7..86de6ca371 100644 --- a/src/JSInterop/Microsoft.JSInterop/test/JSRuntimeTest.cs +++ b/src/JSInterop/Microsoft.JSInterop/test/JSRuntimeTest.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.Linq; using System.Text; using System.Text.Json; @@ -145,6 +146,7 @@ namespace Microsoft.JSInterop ref reader); Assert.True(task.IsCompleted); var poco = task.Result; + Debug.Assert(poco != null); Assert.Equal(10, poco.Id); Assert.Equal("Test", poco.Name); } @@ -167,6 +169,7 @@ namespace Microsoft.JSInterop ref reader); Assert.True(task.IsCompleted); var poco = task.Result; + Debug.Assert(poco != null); Assert.Equal(10, poco.Id); Assert.Equal("Test", poco.Name); } From 18d261b20c2e7f23ebd1971a8ce2fa701be757e0 Mon Sep 17 00:00:00 2001 From: Pranav K Date: Thu, 10 Sep 2020 15:15:11 -0700 Subject: [PATCH 081/187] Use T? for unconstrained nullable types (#25772) --- .../src/AuthenticationProperties.cs | 5 ++--- src/Http/Headers/src/BaseHeaderParser.cs | 5 ++--- src/Http/Headers/src/CacheControlHeaderValue.cs | 2 +- .../Headers/src/ContentDispositionHeaderValue.cs | 2 +- src/Http/Headers/src/ContentRangeHeaderValue.cs | 2 +- src/Http/Headers/src/EntityTagHeaderValue.cs | 4 ++-- src/Http/Headers/src/GenericHeaderParser.cs | 5 ++--- src/Http/Headers/src/HttpHeaderParser.cs | 5 ++--- src/Http/Headers/src/MediaTypeHeaderValue.cs | 4 ++-- src/Http/Headers/src/NameValueHeaderValue.cs | 4 ++-- .../Headers/src/RangeConditionHeaderValue.cs | 2 +- src/Http/Headers/src/RangeHeaderValue.cs | 2 +- src/Http/Headers/src/SetCookieHeaderValue.cs | 4 ++-- .../Headers/src/StringWithQualityHeaderValue.cs | 4 ++-- .../src/HttpResponseJsonExtensions.cs | 8 ++++---- .../test/HttpResponseJsonExtensionsTests.cs | 2 +- src/Http/Http.Features/src/FeatureCollection.cs | 6 ++---- src/Http/Http.Features/src/FeatureReference.cs | 13 +++++-------- src/Http/Http.Features/src/FeatureReferences.cs | 16 +++++++--------- src/Http/Http/src/Builder/ApplicationBuilder.cs | 4 +--- 20 files changed, 43 insertions(+), 56 deletions(-) diff --git a/src/Http/Authentication.Abstractions/src/AuthenticationProperties.cs b/src/Http/Authentication.Abstractions/src/AuthenticationProperties.cs index 28afa3a7de..3195bfe0ec 100644 --- a/src/Http/Authentication.Abstractions/src/AuthenticationProperties.cs +++ b/src/Http/Authentication.Abstractions/src/AuthenticationProperties.cs @@ -144,8 +144,7 @@ namespace Microsoft.AspNetCore.Authentication /// Parameter type. /// Parameter key. /// Retrieved value or the default value if the property is not set. - [return: MaybeNull] - public T GetParameter(string key) + public T? GetParameter(string key) => Parameters.TryGetValue(key, out var obj) && obj is T value ? value : default; /// @@ -154,7 +153,7 @@ namespace Microsoft.AspNetCore.Authentication /// Parameter type. /// Parameter key. /// Value to set. - public void SetParameter(string key, [MaybeNull] T value) + public void SetParameter(string key, T value) => Parameters[key] = value; /// diff --git a/src/Http/Headers/src/BaseHeaderParser.cs b/src/Http/Headers/src/BaseHeaderParser.cs index 4e80787878..9400a13aef 100644 --- a/src/Http/Headers/src/BaseHeaderParser.cs +++ b/src/Http/Headers/src/BaseHeaderParser.cs @@ -1,7 +1,6 @@ // 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. -using System.Diagnostics.CodeAnalysis; using Microsoft.Extensions.Primitives; namespace Microsoft.Net.Http.Headers @@ -13,9 +12,9 @@ namespace Microsoft.Net.Http.Headers { } - protected abstract int GetParsedValueLength(StringSegment value, int startIndex, [MaybeNull] out T parsedValue); + protected abstract int GetParsedValueLength(StringSegment value, int startIndex, out T? parsedValue); - public sealed override bool TryParseValue(StringSegment value, ref int index, [MaybeNull] out T parsedValue) + public sealed override bool TryParseValue(StringSegment value, ref int index, out T? parsedValue) { parsedValue = default; diff --git a/src/Http/Headers/src/CacheControlHeaderValue.cs b/src/Http/Headers/src/CacheControlHeaderValue.cs index 14a59b2422..e2e8b37c17 100644 --- a/src/Http/Headers/src/CacheControlHeaderValue.cs +++ b/src/Http/Headers/src/CacheControlHeaderValue.cs @@ -32,7 +32,7 @@ namespace Microsoft.Net.Http.Headers // Cache-Control headers, only one instance of CacheControlHeaderValue is created (if all headers contain valid // values, otherwise we may have multiple strings containing the invalid values). private static readonly HttpHeaderParser Parser - = new GenericHeaderParser(true, GetCacheControlLength!); + = new GenericHeaderParser(true, GetCacheControlLength); private static readonly Action CheckIsValidTokenAction = CheckIsValidToken; diff --git a/src/Http/Headers/src/ContentDispositionHeaderValue.cs b/src/Http/Headers/src/ContentDispositionHeaderValue.cs index 3e629d10cb..f7ea2047d7 100644 --- a/src/Http/Headers/src/ContentDispositionHeaderValue.cs +++ b/src/Http/Headers/src/ContentDispositionHeaderValue.cs @@ -27,7 +27,7 @@ namespace Microsoft.Net.Http.Headers private static readonly char[] SingleQuote = new char[] { '\'' }; private static readonly HttpHeaderParser Parser - = new GenericHeaderParser(false, GetDispositionTypeLength!); + = new GenericHeaderParser(false, GetDispositionTypeLength); // Use list instead of dictionary since we may have multiple parameters with the same name. private ObjectCollection? _parameters; diff --git a/src/Http/Headers/src/ContentRangeHeaderValue.cs b/src/Http/Headers/src/ContentRangeHeaderValue.cs index 1c9a7a55b7..1cbdb698ab 100644 --- a/src/Http/Headers/src/ContentRangeHeaderValue.cs +++ b/src/Http/Headers/src/ContentRangeHeaderValue.cs @@ -13,7 +13,7 @@ namespace Microsoft.Net.Http.Headers public class ContentRangeHeaderValue { private static readonly HttpHeaderParser Parser - = new GenericHeaderParser(false, GetContentRangeLength!); + = new GenericHeaderParser(false, GetContentRangeLength); private StringSegment _unit; private long? _from; diff --git a/src/Http/Headers/src/EntityTagHeaderValue.cs b/src/Http/Headers/src/EntityTagHeaderValue.cs index a468eeb5dc..1d07735c49 100644 --- a/src/Http/Headers/src/EntityTagHeaderValue.cs +++ b/src/Http/Headers/src/EntityTagHeaderValue.cs @@ -14,13 +14,13 @@ namespace Microsoft.Net.Http.Headers // Note that the ETag header does not allow a * but we're not that strict: We allow both '*' and ETag values in a single value. // We can't guarantee that a single parsed value will be used directly in an ETag header. private static readonly HttpHeaderParser SingleValueParser - = new GenericHeaderParser(false, GetEntityTagLength!); + = new GenericHeaderParser(false, GetEntityTagLength); // Note that if multiple ETag values are allowed (e.g. 'If-Match', 'If-None-Match'), according to the RFC // the value must either be '*' or a list of ETag values. It's not allowed to have both '*' and a list of // ETag values. We're not that strict: We allow both '*' and ETag values in a list. If the server sends such // an invalid list, we want to be able to represent it using the corresponding header property. private static readonly HttpHeaderParser MultipleValueParser - = new GenericHeaderParser(true, GetEntityTagLength!); + = new GenericHeaderParser(true, GetEntityTagLength); private static EntityTagHeaderValue? AnyType; diff --git a/src/Http/Headers/src/GenericHeaderParser.cs b/src/Http/Headers/src/GenericHeaderParser.cs index 53a5777448..1d4499e0b6 100644 --- a/src/Http/Headers/src/GenericHeaderParser.cs +++ b/src/Http/Headers/src/GenericHeaderParser.cs @@ -2,14 +2,13 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; -using System.Diagnostics.CodeAnalysis; using Microsoft.Extensions.Primitives; namespace Microsoft.Net.Http.Headers { internal sealed class GenericHeaderParser : BaseHeaderParser { - internal delegate int GetParsedValueLengthDelegate(StringSegment value, int startIndex, [MaybeNull] out T parsedValue); + internal delegate int GetParsedValueLengthDelegate(StringSegment value, int startIndex, out T? parsedValue); private GetParsedValueLengthDelegate _getParsedValueLength; @@ -24,7 +23,7 @@ namespace Microsoft.Net.Http.Headers _getParsedValueLength = getParsedValueLength; } - protected override int GetParsedValueLength(StringSegment value, int startIndex, [MaybeNull] out T parsedValue) + protected override int GetParsedValueLength(StringSegment value, int startIndex, out T? parsedValue) { return _getParsedValueLength(value, startIndex, out parsedValue); } diff --git a/src/Http/Headers/src/HttpHeaderParser.cs b/src/Http/Headers/src/HttpHeaderParser.cs index addb5479f8..942b470680 100644 --- a/src/Http/Headers/src/HttpHeaderParser.cs +++ b/src/Http/Headers/src/HttpHeaderParser.cs @@ -28,10 +28,9 @@ namespace Microsoft.Net.Http.Headers // pointing to the next non-whitespace character after a delimiter. E.g. if called with a start index of 0 // for string "value , second_value", then after the call completes, 'index' must point to 's', i.e. the first // non-whitespace after the separator ','. - public abstract bool TryParseValue(StringSegment value, ref int index, [MaybeNull] out T parsedValue); + public abstract bool TryParseValue(StringSegment value, ref int index, out T? parsedValue); - [return: MaybeNull] - public T ParseValue(StringSegment value, ref int index) + public T? ParseValue(StringSegment value, ref int index) { // Index may be value.Length (e.g. both 0). This may be allowed for some headers (e.g. Accept but not // allowed by others (e.g. Content-Length). The parser has to decide if this is valid or not. diff --git a/src/Http/Headers/src/MediaTypeHeaderValue.cs b/src/Http/Headers/src/MediaTypeHeaderValue.cs index 87ca778a7c..af2bba6e22 100644 --- a/src/Http/Headers/src/MediaTypeHeaderValue.cs +++ b/src/Http/Headers/src/MediaTypeHeaderValue.cs @@ -30,9 +30,9 @@ namespace Microsoft.Net.Http.Headers private static readonly char[] PeriodCharacterArray = new char[] { PeriodCharacter }; private static readonly HttpHeaderParser SingleValueParser - = new GenericHeaderParser(false, GetMediaTypeLength!); + = new GenericHeaderParser(false, GetMediaTypeLength); private static readonly HttpHeaderParser MultipleValueParser - = new GenericHeaderParser(true, GetMediaTypeLength!); + = new GenericHeaderParser(true, GetMediaTypeLength); // Use a collection instead of a dictionary since we may have multiple parameters with the same name. private ObjectCollection? _parameters; diff --git a/src/Http/Headers/src/NameValueHeaderValue.cs b/src/Http/Headers/src/NameValueHeaderValue.cs index 9ef6283cd9..462fbc11c7 100644 --- a/src/Http/Headers/src/NameValueHeaderValue.cs +++ b/src/Http/Headers/src/NameValueHeaderValue.cs @@ -17,9 +17,9 @@ namespace Microsoft.Net.Http.Headers public class NameValueHeaderValue { private static readonly HttpHeaderParser SingleValueParser - = new GenericHeaderParser(false, GetNameValueLength!); + = new GenericHeaderParser(false, GetNameValueLength); internal static readonly HttpHeaderParser MultipleValueParser - = new GenericHeaderParser(true, GetNameValueLength!); + = new GenericHeaderParser(true, GetNameValueLength); private StringSegment _name; private StringSegment _value; diff --git a/src/Http/Headers/src/RangeConditionHeaderValue.cs b/src/Http/Headers/src/RangeConditionHeaderValue.cs index ebe21f59b8..55e9cefda9 100644 --- a/src/Http/Headers/src/RangeConditionHeaderValue.cs +++ b/src/Http/Headers/src/RangeConditionHeaderValue.cs @@ -11,7 +11,7 @@ namespace Microsoft.Net.Http.Headers public class RangeConditionHeaderValue { private static readonly HttpHeaderParser Parser - = new GenericHeaderParser(false, GetRangeConditionLength!); + = new GenericHeaderParser(false, GetRangeConditionLength); private DateTimeOffset? _lastModified; private EntityTagHeaderValue? _entityTag; diff --git a/src/Http/Headers/src/RangeHeaderValue.cs b/src/Http/Headers/src/RangeHeaderValue.cs index 8247c3ff60..a022c056ec 100644 --- a/src/Http/Headers/src/RangeHeaderValue.cs +++ b/src/Http/Headers/src/RangeHeaderValue.cs @@ -13,7 +13,7 @@ namespace Microsoft.Net.Http.Headers public class RangeHeaderValue { private static readonly HttpHeaderParser Parser - = new GenericHeaderParser(false, GetRangeLength!); + = new GenericHeaderParser(false, GetRangeLength); private StringSegment _unit; private ICollection? _ranges; diff --git a/src/Http/Headers/src/SetCookieHeaderValue.cs b/src/Http/Headers/src/SetCookieHeaderValue.cs index 2360cf0daa..1afee5760f 100644 --- a/src/Http/Headers/src/SetCookieHeaderValue.cs +++ b/src/Http/Headers/src/SetCookieHeaderValue.cs @@ -33,9 +33,9 @@ namespace Microsoft.Net.Http.Headers private const string ExpiresDateFormat = "r"; private static readonly HttpHeaderParser SingleValueParser - = new GenericHeaderParser(false, GetSetCookieLength!); + = new GenericHeaderParser(false, GetSetCookieLength); private static readonly HttpHeaderParser MultipleValueParser - = new GenericHeaderParser(true, GetSetCookieLength!); + = new GenericHeaderParser(true, GetSetCookieLength); private StringSegment _name; private StringSegment _value; diff --git a/src/Http/Headers/src/StringWithQualityHeaderValue.cs b/src/Http/Headers/src/StringWithQualityHeaderValue.cs index 18fe33975c..1bb3003004 100644 --- a/src/Http/Headers/src/StringWithQualityHeaderValue.cs +++ b/src/Http/Headers/src/StringWithQualityHeaderValue.cs @@ -13,9 +13,9 @@ namespace Microsoft.Net.Http.Headers public class StringWithQualityHeaderValue { private static readonly HttpHeaderParser SingleValueParser - = new GenericHeaderParser(false, GetStringWithQualityLength!); + = new GenericHeaderParser(false, GetStringWithQualityLength); private static readonly HttpHeaderParser MultipleValueParser - = new GenericHeaderParser(true, GetStringWithQualityLength!); + = new GenericHeaderParser(true, GetStringWithQualityLength); private StringSegment _value; private double? _quality; diff --git a/src/Http/Http.Extensions/src/HttpResponseJsonExtensions.cs b/src/Http/Http.Extensions/src/HttpResponseJsonExtensions.cs index 802bb7f85d..b35c4f2b32 100644 --- a/src/Http/Http.Extensions/src/HttpResponseJsonExtensions.cs +++ b/src/Http/Http.Extensions/src/HttpResponseJsonExtensions.cs @@ -28,7 +28,7 @@ namespace Microsoft.AspNetCore.Http [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task WriteAsJsonAsync( this HttpResponse response, - [AllowNull] TValue value, + TValue value, CancellationToken cancellationToken = default) { return response.WriteAsJsonAsync(value, options: null, contentType: null, cancellationToken); @@ -47,7 +47,7 @@ namespace Microsoft.AspNetCore.Http [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task WriteAsJsonAsync( this HttpResponse response, - [AllowNull] TValue value, + TValue value, JsonSerializerOptions? options, CancellationToken cancellationToken = default) { @@ -68,7 +68,7 @@ namespace Microsoft.AspNetCore.Http [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task WriteAsJsonAsync( this HttpResponse response, - [AllowNull] TValue value, + TValue value, JsonSerializerOptions? options, string? contentType, CancellationToken cancellationToken = default) @@ -81,7 +81,7 @@ namespace Microsoft.AspNetCore.Http options ??= ResolveSerializerOptions(response.HttpContext); response.ContentType = contentType ?? JsonConstants.JsonContentTypeWithCharset; - return JsonSerializer.SerializeAsync(response.Body, value!, options, cancellationToken); + return JsonSerializer.SerializeAsync(response.Body, value, options, cancellationToken); } /// diff --git a/src/Http/Http.Extensions/test/HttpResponseJsonExtensionsTests.cs b/src/Http/Http.Extensions/test/HttpResponseJsonExtensionsTests.cs index 44def401e8..d0118166b0 100644 --- a/src/Http/Http.Extensions/test/HttpResponseJsonExtensionsTests.cs +++ b/src/Http/Http.Extensions/test/HttpResponseJsonExtensionsTests.cs @@ -44,7 +44,7 @@ namespace Microsoft.AspNetCore.Http.Extensions.Tests context.Response.Body = body; // Act - await context.Response.WriteAsJsonAsync(value: null); + await context.Response.WriteAsJsonAsync(value: null); // Assert Assert.Equal(JsonConstants.JsonContentTypeWithCharset, context.Response.ContentType); diff --git a/src/Http/Http.Features/src/FeatureCollection.cs b/src/Http/Http.Features/src/FeatureCollection.cs index b5f70b7c4e..d46a1e38e5 100644 --- a/src/Http/Http.Features/src/FeatureCollection.cs +++ b/src/Http/Http.Features/src/FeatureCollection.cs @@ -4,7 +4,6 @@ using System; using System.Collections; using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using System.Linq; namespace Microsoft.AspNetCore.Http.Features @@ -94,10 +93,9 @@ namespace Microsoft.AspNetCore.Http.Features } } - [return: MaybeNull] - public TFeature Get() + public TFeature? Get() { - return (TFeature)this[typeof(TFeature)]; + return (TFeature?)this[typeof(TFeature)]; } public void Set(TFeature instance) diff --git a/src/Http/Http.Features/src/FeatureReference.cs b/src/Http/Http.Features/src/FeatureReference.cs index 516fb70e90..f93e92885a 100644 --- a/src/Http/Http.Features/src/FeatureReference.cs +++ b/src/Http/Http.Features/src/FeatureReference.cs @@ -1,31 +1,28 @@ // 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. -using System.Diagnostics.CodeAnalysis; - namespace Microsoft.AspNetCore.Http.Features { public struct FeatureReference { - private T _feature; + private T? _feature; private int _revision; - private FeatureReference(T feature, int revision) + private FeatureReference(T? feature, int revision) { _feature = feature; _revision = revision; } - public static readonly FeatureReference Default = new FeatureReference(default(T)!, -1); + public static readonly FeatureReference Default = new FeatureReference(default(T), -1); - [return: MaybeNull] - public T Fetch(IFeatureCollection features) + public T? Fetch(IFeatureCollection features) { if (_revision == features.Revision) { return _feature; } - _feature = (T)features[typeof(T)]!; + _feature = (T)features[typeof(T)]; _revision = features.Revision; return _feature; } diff --git a/src/Http/Http.Features/src/FeatureReferences.cs b/src/Http/Http.Features/src/FeatureReferences.cs index 84bf46974c..b263b3d160 100644 --- a/src/Http/Http.Features/src/FeatureReferences.cs +++ b/src/Http/Http.Features/src/FeatureReferences.cs @@ -2,7 +2,6 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; -using System.Diagnostics.CodeAnalysis; using System.Runtime.CompilerServices; namespace Microsoft.AspNetCore.Http.Features @@ -37,8 +36,7 @@ namespace Microsoft.AspNetCore.Http.Features // be able to pass ref values that "dot through" the TCache struct memory, // if it was a Property then that getter would return a copy of the memory // preventing the use of "ref" - [AllowNull, MaybeNull] - public TCache Cache; + public TCache? Cache; // Careful with modifications to the Fetch method; it is carefully constructed for inlining // See: https://github.com/aspnet/HttpAbstractions/pull/704 @@ -61,10 +59,10 @@ namespace Microsoft.AspNetCore.Http.Features // // Generally Fetch is called at a ratio > x4 of UpdateCached so this is a large gain [MethodImpl(MethodImplOptions.AggressiveInlining)] - public TFeature Fetch( - [AllowNull, MaybeNull] ref TFeature cached, + public TFeature? Fetch( + ref TFeature? cached, TState state, - Func factory) where TFeature : class? + Func factory) where TFeature : class? { var flush = false; var revision = Collection?.Revision ?? ContextDisposed(); @@ -80,7 +78,7 @@ namespace Microsoft.AspNetCore.Http.Features } // Update and cache clearing logic, when the fast-path in Fetch isn't applicable - private TFeature UpdateCached(ref TFeature cached, TState state, Func factory, int revision, bool flush) where TFeature : class? + private TFeature? UpdateCached(ref TFeature? cached, TState state, Func factory, int revision, bool flush) where TFeature : class? { if (flush) { @@ -108,8 +106,8 @@ namespace Microsoft.AspNetCore.Http.Features return cached; } - public TFeature Fetch([AllowNull, MaybeNull] ref TFeature cached, Func factory) - where TFeature : class? => Fetch(ref cached!, Collection, factory); + public TFeature? Fetch(ref TFeature? cached, Func factory) + where TFeature : class? => Fetch(ref cached, Collection, factory); private static int ContextDisposed() { diff --git a/src/Http/Http/src/Builder/ApplicationBuilder.cs b/src/Http/Http/src/Builder/ApplicationBuilder.cs index f7cc65897c..552312fcaa 100644 --- a/src/Http/Http/src/Builder/ApplicationBuilder.cs +++ b/src/Http/Http/src/Builder/ApplicationBuilder.cs @@ -3,7 +3,6 @@ using System; using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; @@ -58,8 +57,7 @@ namespace Microsoft.AspNetCore.Builder public IDictionary Properties { get; } - [return: MaybeNull] - private T GetProperty(string key) + private T? GetProperty(string key) { return Properties.TryGetValue(key, out var value) ? (T)value : default(T); } From ce475cb00f49d47cea698b38acbde7a7ff5e6828 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 10 Sep 2020 22:48:26 +0000 Subject: [PATCH 082/187] [release/5.0-rc2] Update dependencies from dotnet/arcade dotnet/runtime (#25777) [release/5.0-rc2] Update dependencies from dotnet/arcade dotnet/runtime --- eng/Version.Details.xml | 276 +++++++++--------- eng/Versions.props | 134 ++++----- eng/common/internal/Directory.Build.props | 2 +- eng/common/post-build/publish-using-darc.ps1 | 9 +- .../channels/generic-internal-channel.yml | 4 +- .../channels/generic-public-channel.yml | 2 +- .../templates/post-build/post-build.yml | 2 +- eng/common/tools.ps1 | 10 + global.json | 4 +- 9 files changed, 226 insertions(+), 217 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 2762d0ee9c..dd5e32f2b4 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -45,289 +45,289 @@ https://github.com/dotnet/efcore 69ce8af8c2b7ac90fc54798ea206d3770fb8db43 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/runtime - 482494f9ecc9a630599278b80893841462c90a5b + cead74acd39b1351b1668e440f6c7e220c216240 - + https://github.com/dotnet/arcade - fd104228e5b97494a4ab0896a979b69928257ef9 + 91470b0b14ba016c1fb78211b12775287c17b34e - + https://github.com/dotnet/arcade - fd104228e5b97494a4ab0896a979b69928257ef9 + 91470b0b14ba016c1fb78211b12775287c17b34e - + https://github.com/dotnet/arcade - fd104228e5b97494a4ab0896a979b69928257ef9 + 91470b0b14ba016c1fb78211b12775287c17b34e https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index dd2e93f989..283ba54c9b 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -64,74 +64,74 @@ 3.8.0-2.20403.2 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 - 5.0.0-rc.2.20458.14 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20458.14 + 5.0.0-rc.2.20460.7 3.2.0 @@ -144,7 +144,7 @@ 5.0.0-rc.2.20459.6 5.0.0-rc.2.20459.6 - 5.0.0-beta.20452.19 + 5.0.0-beta.20459.8 + diff --git a/eng/common/post-build/publish-using-darc.ps1 b/eng/common/post-build/publish-using-darc.ps1 index 95b113b33b..650b13b089 100644 --- a/eng/common/post-build/publish-using-darc.ps1 +++ b/eng/common/post-build/publish-using-darc.ps1 @@ -8,7 +8,7 @@ param( [Parameter(Mandatory=$false)][string] $EnableSourceLinkValidation, [Parameter(Mandatory=$false)][string] $EnableSigningValidation, [Parameter(Mandatory=$false)][string] $EnableNugetValidation, - [Parameter(Mandatory=$true)][string] $PublishInstallersAndChecksums, + [Parameter(Mandatory=$false)][string] $PublishInstallersAndChecksums, [Parameter(Mandatory=$false)][string] $ArtifactsPublishingAdditionalParameters, [Parameter(Mandatory=$false)][string] $SigningValidationAdditionalParameters ) @@ -16,7 +16,7 @@ param( try { . $PSScriptRoot\post-build-utils.ps1 # Hard coding darc version till the next arcade-services roll out, cos this version has required API changes for darc add-build-to-channel - . $PSScriptRoot\..\darc-init.ps1 -darcVersion "1.1.0-beta.20418.1" + $darc = Get-Darc "1.1.0-beta.20418.1" $optionalParams = [System.Collections.ArrayList]::new() @@ -29,7 +29,7 @@ try { $optionalParams.Add("--no-wait") | Out-Null } - if ("true" -eq $PublishInstallersAndChecksums) { + if ("false" -ne $PublishInstallersAndChecksums) { $optionalParams.Add("--publish-installers-and-checksums") | Out-Null } @@ -50,12 +50,11 @@ try { } } - & darc add-build-to-channel ` + & $darc add-build-to-channel ` --id $buildId ` --publishing-infra-version $PublishingInfraVersion ` --default-channels ` --source-branch master ` - --publish-installers-and-checksums ` --azdev-pat $AzdoToken ` --bar-uri $MaestroApiEndPoint ` --password $MaestroToken ` diff --git a/eng/common/templates/post-build/channels/generic-internal-channel.yml b/eng/common/templates/post-build/channels/generic-internal-channel.yml index 59eb93a407..7ae5255921 100644 --- a/eng/common/templates/post-build/channels/generic-internal-channel.yml +++ b/eng/common/templates/post-build/channels/generic-internal-channel.yml @@ -4,7 +4,7 @@ parameters: artifactsPublishingAdditionalParameters: '' dependsOn: - Validate - publishInstallersAndChecksums: false + publishInstallersAndChecksums: true symbolPublishingAdditionalParameters: '' stageName: '' channelName: '' @@ -158,7 +158,7 @@ stages: /p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/' /p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts/' /p:Configuration=Release - /p:PublishInstallersAndChecksums=true + /p:PublishInstallersAndChecksums=${{ parameters.publishInstallersAndChecksums }} /p:ChecksumsTargetStaticFeed=$(InternalChecksumsBlobFeedUrl) /p:ChecksumsAzureAccountKey=$(InternalChecksumsBlobFeedKey) /p:InstallersTargetStaticFeed=$(InternalInstallersBlobFeedUrl) diff --git a/eng/common/templates/post-build/channels/generic-public-channel.yml b/eng/common/templates/post-build/channels/generic-public-channel.yml index 7e80a621a3..6cf39dbb29 100644 --- a/eng/common/templates/post-build/channels/generic-public-channel.yml +++ b/eng/common/templates/post-build/channels/generic-public-channel.yml @@ -4,7 +4,7 @@ parameters: artifactsPublishingAdditionalParameters: '' dependsOn: - Validate - publishInstallersAndChecksums: false + publishInstallersAndChecksums: true symbolPublishingAdditionalParameters: '' stageName: '' channelName: '' diff --git a/eng/common/templates/post-build/post-build.yml b/eng/common/templates/post-build/post-build.yml index 630a99d4dd..df06f5371e 100644 --- a/eng/common/templates/post-build/post-build.yml +++ b/eng/common/templates/post-build/post-build.yml @@ -19,7 +19,7 @@ parameters: enableSigningValidation: true enableSymbolValidation: false enableNugetValidation: true - publishInstallersAndChecksums: false + publishInstallersAndChecksums: true SDLValidationParameters: enable: false continueOnError: false diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index daca90c0b6..37a3a3d680 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -718,6 +718,16 @@ function IsWindowsPlatform() { return [environment]::OSVersion.Platform -eq [PlatformID]::Win32NT } +function Get-Darc($version) { + $darcPath = "$TempDir\darc\$(New-Guid)" + if ($version -ne $null) { + & $PSScriptRoot\darc-init.ps1 -toolpath $darcPath -darcVersion $version | Out-Host + } else { + & $PSScriptRoot\darc-init.ps1 -toolpath $darcPath | Out-Host + } + return "$darcPath\darc.exe" +} + . $PSScriptRoot\pipeline-logging-functions.ps1 $RepoRoot = Resolve-Path (Join-Path $PSScriptRoot '..\..') diff --git a/global.json b/global.json index ca240fa07a..97c6ea58f3 100644 --- a/global.json +++ b/global.json @@ -30,7 +30,7 @@ }, "msbuild-sdks": { "Yarn.MSBuild": "1.15.2", - "Microsoft.DotNet.Arcade.Sdk": "5.0.0-beta.20452.19", - "Microsoft.DotNet.Helix.Sdk": "5.0.0-beta.20452.19" + "Microsoft.DotNet.Arcade.Sdk": "5.0.0-beta.20459.8", + "Microsoft.DotNet.Helix.Sdk": "5.0.0-beta.20459.8" } } From 5aa4a7cd41d722b5a063c48251b383a19493d1dc Mon Sep 17 00:00:00 2001 From: Pranav K Date: Thu, 10 Sep 2020 16:30:55 -0700 Subject: [PATCH 083/187] Avoid using PATH to find dotnet.exe in RazorSDK tasks (#25750) This pattern is pretty identical to what we have in other SDKs. It allows using the SDK when dotnet isn't in the path such as the https://github.com/dotnet/aspnetcore/issues/25746. Fixes #14432 --- .../src/DotnetToolTask.cs | 32 ++++++++++++------- .../src/Microsoft.NET.Sdk.Razor.csproj | 2 +- ...osoft.NET.Sdk.Razor.CodeGeneration.targets | 4 +++ .../Microsoft.NET.Sdk.Razor.Component.targets | 2 ++ .../Microsoft.NET.Sdk.Razor.ScopedCss.targets | 4 ++- .../Sdk.Razor.CurrentVersion.targets | 6 ++++ 6 files changed, 36 insertions(+), 14 deletions(-) diff --git a/src/Razor/Microsoft.NET.Sdk.Razor/src/DotnetToolTask.cs b/src/Razor/Microsoft.NET.Sdk.Razor/src/DotnetToolTask.cs index 9a660fb1bf..7aee011260 100644 --- a/src/Razor/Microsoft.NET.Sdk.Razor/src/DotnetToolTask.cs +++ b/src/Razor/Microsoft.NET.Sdk.Razor/src/DotnetToolTask.cs @@ -10,7 +10,6 @@ using System.Threading; using Microsoft.AspNetCore.Razor.Tools; using Microsoft.Build.Framework; using Microsoft.Build.Utilities; -using Microsoft.Extensions.CommandLineUtils; namespace Microsoft.AspNetCore.Razor.Tasks { @@ -19,6 +18,7 @@ namespace Microsoft.AspNetCore.Razor.Tasks // From https://github.com/dotnet/corefx/blob/29cd6a0b0ac2993cee23ebaf36ca3d4bce6dd75f/src/System.IO.Pipes/ref/System.IO.Pipes.cs#L93. // Using the enum value directly as this option is not available in netstandard. private const PipeOptions PipeOptionCurrentUserOnly = (PipeOptions)536870912; + private string _dotnetPath; private CancellationTokenSource _razorServerCts; @@ -40,7 +40,7 @@ namespace Microsoft.AspNetCore.Razor.Tasks public string PipeName { get; set; } - protected override string ToolName => "dotnet"; + protected override string ToolName => Path.GetDirectoryName(DotNetPath); // If we're debugging then make all of the stdout gets logged in MSBuild protected override MessageImportance StandardOutputLoggingImportance => DebugTool ? MessageImportance.High : base.StandardOutputLoggingImportance; @@ -49,17 +49,25 @@ namespace Microsoft.AspNetCore.Razor.Tasks internal abstract string Command { get; } - protected override string GenerateFullPathToTool() - { -#if NETSTANDARD2_0 - if (!string.IsNullOrEmpty(DotNetMuxer.MuxerPath)) - { - return DotNetMuxer.MuxerPath; - } -#endif + protected override string GenerateFullPathToTool() => DotNetPath; - // use PATH to find dotnet - return ToolExe; + private string DotNetPath + { + get + { + if (!string.IsNullOrEmpty(_dotnetPath)) + { + return _dotnetPath; + } + + _dotnetPath = Environment.GetEnvironmentVariable("DOTNET_HOST_PATH"); + if (string.IsNullOrEmpty(_dotnetPath)) + { + throw new InvalidOperationException("DOTNET_HOST_PATH is not set"); + } + + return _dotnetPath; + } } protected override string GenerateCommandLineCommands() diff --git a/src/Razor/Microsoft.NET.Sdk.Razor/src/Microsoft.NET.Sdk.Razor.csproj b/src/Razor/Microsoft.NET.Sdk.Razor/src/Microsoft.NET.Sdk.Razor.csproj index 8225d2b220..75c4d79dc7 100644 --- a/src/Razor/Microsoft.NET.Sdk.Razor/src/Microsoft.NET.Sdk.Razor.csproj +++ b/src/Razor/Microsoft.NET.Sdk.Razor/src/Microsoft.NET.Sdk.Razor.csproj @@ -49,7 +49,7 @@ Shared\Client.cs - + diff --git a/src/Razor/Microsoft.NET.Sdk.Razor/src/build/netstandard2.0/Microsoft.NET.Sdk.Razor.CodeGeneration.targets b/src/Razor/Microsoft.NET.Sdk.Razor/src/build/netstandard2.0/Microsoft.NET.Sdk.Razor.CodeGeneration.targets index 99a7c037b8..76c4bba7c9 100644 --- a/src/Razor/Microsoft.NET.Sdk.Razor/src/build/netstandard2.0/Microsoft.NET.Sdk.Razor.CodeGeneration.targets +++ b/src/Razor/Microsoft.NET.Sdk.Razor/src/build/netstandard2.0/Microsoft.NET.Sdk.Razor.CodeGeneration.targets @@ -98,6 +98,8 @@ Copyright (c) .NET Foundation. All rights reserved. Debug="$(_RazorDebugTagHelperTask)" DebugTool="$(_RazorDebugTagHelperTool)" ToolAssembly="$(_RazorSdkToolAssembly)" + ToolExe="$(_RazorSdkDotNetHostFileName)" + ToolPath="$(_RazorSdkDotNetHostDirectory)" UseServer="$(UseRazorBuildServer)" ForceServer="$(_RazorForceBuildServer)" PipeName="$(_RazorBuildServerPipeName)" @@ -149,6 +151,8 @@ Copyright (c) .NET Foundation. All rights reserved. Debug="$(_RazorDebugGenerateCodeTask)" DebugTool="$(_RazorDebugGenerateCodeTool)" ToolAssembly="$(_RazorSdkToolAssembly)" + ToolExe="$(_RazorSdkDotNetHostFileName)" + ToolPath="$(_RazorSdkDotNetHostDirectory)" UseServer="$(UseRazorBuildServer)" ForceServer="$(_RazorForceBuildServer)" PipeName="$(_RazorBuildServerPipeName)" diff --git a/src/Razor/Microsoft.NET.Sdk.Razor/src/build/netstandard2.0/Microsoft.NET.Sdk.Razor.Component.targets b/src/Razor/Microsoft.NET.Sdk.Razor/src/build/netstandard2.0/Microsoft.NET.Sdk.Razor.Component.targets index 8f1ceefb01..dd64c02b3d 100644 --- a/src/Razor/Microsoft.NET.Sdk.Razor/src/build/netstandard2.0/Microsoft.NET.Sdk.Razor.Component.targets +++ b/src/Razor/Microsoft.NET.Sdk.Razor/src/build/netstandard2.0/Microsoft.NET.Sdk.Razor.Component.targets @@ -107,6 +107,8 @@ Copyright (c) .NET Foundation. All rights reserved. + ToolAssembly="$(_RazorSdkToolAssembly)" + ToolExe="$(_RazorSdkDotNetHostFileName)" + ToolPath="$(_RazorSdkDotNetHostDirectory)"> diff --git a/src/Razor/Microsoft.NET.Sdk.Razor/src/build/netstandard2.0/Sdk.Razor.CurrentVersion.targets b/src/Razor/Microsoft.NET.Sdk.Razor/src/build/netstandard2.0/Sdk.Razor.CurrentVersion.targets index 116ec84e5d..0a9b778e6f 100644 --- a/src/Razor/Microsoft.NET.Sdk.Razor/src/build/netstandard2.0/Sdk.Razor.CurrentVersion.targets +++ b/src/Razor/Microsoft.NET.Sdk.Razor/src/build/netstandard2.0/Sdk.Razor.CurrentVersion.targets @@ -36,6 +36,12 @@ Copyright (c) .NET Foundation. All rights reserved. <_RazorSdkToolAssembly>$(RazorSdkDirectoryRoot)tools\rzc.dll + + <_RazorSdkDotNetHostDirectory>$(NetCoreRoot) + <_RazorSdkDotNetHostFileName>dotnet + <_RazorSdkDotNetHostFileName Condition="'$(OS)' == 'Windows_NT'">dotnet.exe + + <_TargetingNETCoreApp30OrLater Condition=" '$(TargetFrameworkIdentifier)' == '.NETCoreApp' AND From 327d55d01cd51432d25c6107475fcd8bf9626ea7 Mon Sep 17 00:00:00 2001 From: Stephen Halter Date: Thu, 10 Sep 2020 18:14:08 -0700 Subject: [PATCH 084/187] Prevent ODE when response body isn't reset (#25779) --- .../Http/src/Internal/DefaultHttpResponse.cs | 8 +--- .../test/Internal/DefaultHttpResponseTests.cs | 37 +++++++++++++++++++ 2 files changed, 39 insertions(+), 6 deletions(-) diff --git a/src/Http/Http/src/Internal/DefaultHttpResponse.cs b/src/Http/Http/src/Internal/DefaultHttpResponse.cs index 167cd10c40..6caa939444 100644 --- a/src/Http/Http/src/Internal/DefaultHttpResponse.cs +++ b/src/Http/Http/src/Internal/DefaultHttpResponse.cs @@ -70,21 +70,17 @@ namespace Microsoft.AspNetCore.Http set { var otherFeature = _features.Collection.Get(); + if (otherFeature is StreamResponseBodyFeature streamFeature && streamFeature.PriorFeature != null && object.ReferenceEquals(value, streamFeature.PriorFeature.Stream)) { // They're reverting the stream back to the prior one. Revert the whole feature. _features.Collection.Set(streamFeature.PriorFeature); - // CompleteAsync is registered with HttpResponse.OnCompleted and there's no way to unregister it. - // Prevent it from running by marking as disposed. - streamFeature.Dispose(); return; } - var feature = new StreamResponseBodyFeature(value, otherFeature); - OnCompleted(feature.CompleteAsync); - _features.Collection.Set(feature); + _features.Collection.Set(new StreamResponseBodyFeature(value, otherFeature)); } } diff --git a/src/Http/Http/test/Internal/DefaultHttpResponseTests.cs b/src/Http/Http/test/Internal/DefaultHttpResponseTests.cs index fe9b92a908..ea34114879 100644 --- a/src/Http/Http/test/Internal/DefaultHttpResponseTests.cs +++ b/src/Http/Http/test/Internal/DefaultHttpResponseTests.cs @@ -73,6 +73,43 @@ namespace Microsoft.AspNetCore.Http Assert.NotNull(bodyPipe); } + [Fact] + public void ReplacingResponseBody_DoesNotCreateOnCompletedRegistration() + { + var features = new FeatureCollection(); + + var originalStream = new FlushAsyncCheckStream(); + var replacementStream = new FlushAsyncCheckStream(); + + var responseBodyMock = new Mock(); + responseBodyMock.Setup(o => o.Stream).Returns(originalStream); + features.Set(responseBodyMock.Object); + + var responseMock = new Mock(); + features.Set(responseMock.Object); + + var context = new DefaultHttpContext(features); + + Assert.Same(originalStream, context.Response.Body); + Assert.Same(responseBodyMock.Object, context.Features.Get()); + + context.Response.Body = replacementStream; + + Assert.Same(replacementStream, context.Response.Body); + Assert.NotSame(responseBodyMock.Object, context.Features.Get()); + + context.Response.Body = originalStream; + + Assert.Same(originalStream, context.Response.Body); + Assert.Same(responseBodyMock.Object, context.Features.Get()); + + // The real issue was not that an OnCompleted registration existed, but that it would previously flush + // the original response body in the OnCompleted callback after the response body was disposed. + // However, since now there's no longer an OnCompleted registration at all, it's easier to verify that. + // https://github.com/dotnet/aspnetcore/issues/25342 + responseMock.Verify(m => m.OnCompleted(It.IsAny>(), It.IsAny()), Times.Never); + } + [Fact] public async Task ResponseStart_CallsFeatureIfSet() { From 970d0f5d00c539501eeb48f98be7e0348a88d354 Mon Sep 17 00:00:00 2001 From: Brennan Date: Thu, 10 Sep 2020 18:22:14 -0700 Subject: [PATCH 085/187] [SignalR] Copy cookies from negotiate to WebSockets (#24572) --- .../FunctionalTests/HubConnectionTests.cs | 28 +++++++++++++++++++ .../Client/test/FunctionalTests/Startup.cs | 12 ++++++++ .../src/HttpConnection.Log.cs | 8 ++++++ .../src/HttpConnection.cs | 17 +++++++---- 4 files changed, 60 insertions(+), 5 deletions(-) diff --git a/src/SignalR/clients/csharp/Client/test/FunctionalTests/HubConnectionTests.cs b/src/SignalR/clients/csharp/Client/test/FunctionalTests/HubConnectionTests.cs index 1e1de9abe4..216a39b1c2 100644 --- a/src/SignalR/clients/csharp/Client/test/FunctionalTests/HubConnectionTests.cs +++ b/src/SignalR/clients/csharp/Client/test/FunctionalTests/HubConnectionTests.cs @@ -1721,6 +1721,34 @@ namespace Microsoft.AspNetCore.SignalR.Client.FunctionalTests } } + [ConditionalFact] + [WebSocketsSupportedCondition] + public async Task CookiesFromNegotiateAreAppliedToWebSockets() + { + await using (var server = await StartServer()) + { + var hubConnection = new HubConnectionBuilder() + .WithLoggerFactory(LoggerFactory) + .WithUrl(server.Url + "/default", HttpTransportType.WebSockets) + .Build(); + try + { + await hubConnection.StartAsync().OrTimeout(); + var cookieValue = await hubConnection.InvokeAsync(nameof(TestHub.GetCookieValue), "fromNegotiate").OrTimeout(); + Assert.Equal("a value", cookieValue); + } + catch (Exception ex) + { + LoggerFactory.CreateLogger().LogError(ex, "{ExceptionType} from test", ex.GetType().FullName); + throw; + } + finally + { + await hubConnection.DisposeAsync().OrTimeout(); + } + } + } + [Fact] public async Task CheckHttpConnectionFeatures() { diff --git a/src/SignalR/clients/csharp/Client/test/FunctionalTests/Startup.cs b/src/SignalR/clients/csharp/Client/test/FunctionalTests/Startup.cs index 14a7d7016f..23bf2e3035 100644 --- a/src/SignalR/clients/csharp/Client/test/FunctionalTests/Startup.cs +++ b/src/SignalR/clients/csharp/Client/test/FunctionalTests/Startup.cs @@ -65,6 +65,18 @@ namespace Microsoft.AspNetCore.SignalR.Client.FunctionalTests app.UseAuthentication(); app.UseAuthorization(); + app.Use(next => + { + return context => + { + if (context.Request.Path.Value.EndsWith("/negotiate")) + { + context.Response.Cookies.Append("fromNegotiate", "a value"); + } + return next(context); + }; + }); + app.UseEndpoints(endpoints => { endpoints.MapHub("/default"); diff --git a/src/SignalR/clients/csharp/Http.Connections.Client/src/HttpConnection.Log.cs b/src/SignalR/clients/csharp/Http.Connections.Client/src/HttpConnection.Log.cs index 74b3de2e71..9169f5f745 100644 --- a/src/SignalR/clients/csharp/Http.Connections.Client/src/HttpConnection.Log.cs +++ b/src/SignalR/clients/csharp/Http.Connections.Client/src/HttpConnection.Log.cs @@ -69,6 +69,9 @@ namespace Microsoft.AspNetCore.Http.Connections.Client private static readonly Action _serverSentEventsNotSupportedByBrowser = LoggerMessage.Define(LogLevel.Debug, new EventId(19, "ServerSentEventsNotSupportedByBrowser"), "Skipping ServerSentEvents because they are not supported by the browser."); + private static readonly Action _cookiesNotSupported = + LoggerMessage.Define(LogLevel.Trace, new EventId(20, "CookiesNotSupported"), "Cookies are not supported on this platform."); + public static void Starting(ILogger logger) { _starting(logger, null); @@ -175,6 +178,11 @@ namespace Microsoft.AspNetCore.Http.Connections.Client { _serverSentEventsNotSupportedByBrowser(logger, null); } + + public static void CookiesNotSupported(ILogger logger) + { + _cookiesNotSupported(logger, null); + } } } } diff --git a/src/SignalR/clients/csharp/Http.Connections.Client/src/HttpConnection.cs b/src/SignalR/clients/csharp/Http.Connections.Client/src/HttpConnection.cs index ecd2c30b8b..1af8f917f8 100644 --- a/src/SignalR/clients/csharp/Http.Connections.Client/src/HttpConnection.cs +++ b/src/SignalR/clients/csharp/Http.Connections.Client/src/HttpConnection.cs @@ -154,7 +154,6 @@ namespace Microsoft.AspNetCore.Http.Connections.Client _isRunningInBrowser = Utils.IsRunningInBrowser(); - if (httpConnectionOptions.Transports == HttpTransportType.ServerSentEvents && _isRunningInBrowser) { throw new ArgumentException("ServerSentEvents can not be the only transport specified when running in the browser.", nameof(httpConnectionOptions)); @@ -537,13 +536,21 @@ namespace Microsoft.AspNetCore.Http.Connections.Client httpClientHandler.Proxy = _httpConnectionOptions.Proxy; } - // Only access HttpClientHandler.ClientCertificates and HttpClientHandler.CookieContainer - // if the user has configured those options - // Some variants of Mono do not support client certs or cookies and will throw NotImplementedException - if (_httpConnectionOptions.Cookies.Count > 0) + try { + // On supported platforms, we need to pass the cookie container to the http client + // so that we can capture any cookies from the negotiate response and give them to WebSockets. httpClientHandler.CookieContainer = _httpConnectionOptions.Cookies; } + // Some variants of Mono do not support client certs or cookies and will throw NotImplementedException or NotSupportedException + // Also WASM doesn't support some settings in the browser + catch (Exception ex) when (ex is NotSupportedException || ex is NotImplementedException) + { + Log.CookiesNotSupported(_logger); + } + + // Only access HttpClientHandler.ClientCertificates + // if the user has configured those options // https://github.com/aspnet/SignalR/issues/2232 var clientCertificates = _httpConnectionOptions.ClientCertificates; if (clientCertificates?.Count > 0) From c18f74d61767f0f6da007e2a98df36d6874ec999 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 11 Sep 2020 01:31:45 +0000 Subject: [PATCH 086/187] [release/5.0-rc2] Update dependencies from dotnet/efcore dotnet/runtime (#25791) [release/5.0-rc2] Update dependencies from dotnet/efcore dotnet/runtime --- eng/Version.Details.xml | 296 ++++++++++++++++++++-------------------- eng/Versions.props | 148 ++++++++++---------- 2 files changed, 222 insertions(+), 222 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index dd5e32f2b4..699e009338 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -13,309 +13,309 @@ https://github.com/dotnet/blazor cc449601d638ffaab58ae9487f0fd010bb178a12 - + https://github.com/dotnet/efcore - 69ce8af8c2b7ac90fc54798ea206d3770fb8db43 + b41005bcbe352d387b534743d4a5bef570d9b590 - + https://github.com/dotnet/efcore - 69ce8af8c2b7ac90fc54798ea206d3770fb8db43 + b41005bcbe352d387b534743d4a5bef570d9b590 - + https://github.com/dotnet/efcore - 69ce8af8c2b7ac90fc54798ea206d3770fb8db43 + b41005bcbe352d387b534743d4a5bef570d9b590 - + https://github.com/dotnet/efcore - 69ce8af8c2b7ac90fc54798ea206d3770fb8db43 + b41005bcbe352d387b534743d4a5bef570d9b590 - + https://github.com/dotnet/efcore - 69ce8af8c2b7ac90fc54798ea206d3770fb8db43 + b41005bcbe352d387b534743d4a5bef570d9b590 - + https://github.com/dotnet/efcore - 69ce8af8c2b7ac90fc54798ea206d3770fb8db43 + b41005bcbe352d387b534743d4a5bef570d9b590 - + https://github.com/dotnet/efcore - 69ce8af8c2b7ac90fc54798ea206d3770fb8db43 + b41005bcbe352d387b534743d4a5bef570d9b590 - + https://github.com/dotnet/efcore - 69ce8af8c2b7ac90fc54798ea206d3770fb8db43 + b41005bcbe352d387b534743d4a5bef570d9b590 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 - + https://github.com/dotnet/runtime - cead74acd39b1351b1668e440f6c7e220c216240 + 3802520ce6951111092039fe5b365985d9677708 https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 283ba54c9b..09d1829e24 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -64,85 +64,85 @@ 3.8.0-2.20403.2 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.10 3.2.0 - 5.0.0-rc.2.20459.6 - 5.0.0-rc.2.20459.6 - 5.0.0-rc.2.20459.6 - 5.0.0-rc.2.20459.6 - 5.0.0-rc.2.20459.6 - 5.0.0-rc.2.20459.6 - 5.0.0-rc.2.20459.6 - 5.0.0-rc.2.20459.6 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.7 5.0.0-beta.20459.8 From 118d6b2986b9f1cc26448492f52e59c4405f15e4 Mon Sep 17 00:00:00 2001 From: Sayed Ibrahim Hashimi Date: Thu, 10 Sep 2020 21:46:32 -0400 Subject: [PATCH 087/187] Updating titles in project templates because in Visual Studio the (#25630) templates will be showing the templates directly in the New Project Dialog instead in the One ASP.NET dialog. In this PR I have updated the English titles. For localized strings we will need to get those from the localization team. I believe we are not setup for that to be automated here. I think we should merge the English strings because they are the most used, and for other locales we will show the old localized names for now. If it's difficult to get those localized, I can work with @phenning to see if we can localize those files this time. --- .../content/EmptyWeb-CSharp/.template.config/en/strings.json | 2 +- .../EmptyWeb-CSharp/.template.config/vs-2017.3.host.json | 2 +- .../content/EmptyWeb-FSharp/.template.config/en/strings.json | 2 +- .../EmptyWeb-FSharp/.template.config/vs-2017.3.host.json | 2 +- .../content/GrpcService-CSharp/.template.config/en/strings.json | 2 +- .../GrpcService-CSharp/.template.config/vs-2017.3.host.json | 2 +- .../RazorPagesWeb-CSharp/.template.config/en/strings.json | 2 +- .../RazorPagesWeb-CSharp/.template.config/vs-2017.3.host.json | 2 +- .../content/StarterWeb-CSharp/.template.config/en/strings.json | 2 +- .../StarterWeb-CSharp/.template.config/vs-2017.3.host.json | 2 +- .../content/WebApi-CSharp/.template.config/en/strings.json | 2 +- .../content/WebApi-CSharp/.template.config/vs-2017.3.host.json | 2 +- .../content/WebApi-FSharp/.template.config/en/strings.json | 2 +- .../content/WebApi-FSharp/.template.config/vs-2017.3.host.json | 2 +- .../content/Angular-CSharp/.template.config/en/strings.json | 2 +- .../content/Angular-CSharp/.template.config/vs-2017.3.host.json | 2 +- .../content/React-CSharp/.template.config/en/strings.json | 2 +- .../content/React-CSharp/.template.config/vs-2017.3.host.json | 2 +- .../content/ReactRedux-CSharp/.template.config/en/strings.json | 2 +- .../ReactRedux-CSharp/.template.config/vs-2017.3.host.json | 2 +- 20 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/en/strings.json b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/en/strings.json index a4f99a9bc2..7bdf8df924 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/en/strings.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/en/strings.json @@ -1,7 +1,7 @@ { "version": "1.0.0.0", "strings": { - "name": "Empty", + "name": "ASP.NET Core Empty", "description": "An empty project template for creating an ASP.NET Core application. This template does not have any content in it." } } \ No newline at end of file diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/vs-2017.3.host.json b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/vs-2017.3.host.json index a4dca6b104..6718a8c95e 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/vs-2017.3.host.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/vs-2017.3.host.json @@ -1,7 +1,7 @@ { "$schema": "http://json.schemastore.org/vs-2017.3.host", "name": { - "text": "Empty", + "text": "ASP.NET Core Empty", "package": "{0CD94836-1526-4E85-87D3-FB5274C5AFC9}", "id": "1011" }, diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/.template.config/en/strings.json b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/.template.config/en/strings.json index a4f99a9bc2..7bdf8df924 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/.template.config/en/strings.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/.template.config/en/strings.json @@ -1,7 +1,7 @@ { "version": "1.0.0.0", "strings": { - "name": "Empty", + "name": "ASP.NET Core Empty", "description": "An empty project template for creating an ASP.NET Core application. This template does not have any content in it." } } \ No newline at end of file diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/.template.config/vs-2017.3.host.json b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/.template.config/vs-2017.3.host.json index 8c47ac37b9..7f20f69ad8 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/.template.config/vs-2017.3.host.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/.template.config/vs-2017.3.host.json @@ -1,7 +1,7 @@ { "$schema": "http://json.schemastore.org/vs-2017.3.host", "name": { - "text": "Empty", + "text": "ASP.NET Core Empty", "package": "{0CD94836-1526-4E85-87D3-FB5274C5AFC9}", "id": "1011" }, diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/.template.config/en/strings.json b/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/.template.config/en/strings.json index b732b471d4..05dbb20aa4 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/.template.config/en/strings.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/.template.config/en/strings.json @@ -1,7 +1,7 @@ { "version": "1.0.0.0", "strings": { - "name": "gRPC Service", + "name": "ASP.NET Core gRPC Service", "description": "A project template for creating a gRPC ASP.NET Core service." } } \ No newline at end of file diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/.template.config/vs-2017.3.host.json b/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/.template.config/vs-2017.3.host.json index 4ae9d5d722..86de494c16 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/.template.config/vs-2017.3.host.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/.template.config/vs-2017.3.host.json @@ -1,7 +1,7 @@ { "$schema": "http://json.schemastore.org/vs-2017.3.host", "name": { - "text": "gRPC Service", + "text": "ASP.NET Core gRPC Service", "package": "{0CD94836-1526-4E85-87D3-FB5274C5AFC9}", "id": "1027" }, diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/en/strings.json b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/en/strings.json index 7372441def..57428cdb80 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/en/strings.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/en/strings.json @@ -1,7 +1,7 @@ { "version": "1.0.0.0", "strings": { - "name": "Web Application", + "name": "ASP.NET Core Web App", "description": "A project template for creating an ASP.NET Core application with example ASP.NET Razor Pages content." } } \ No newline at end of file diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/vs-2017.3.host.json b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/vs-2017.3.host.json index 8ee1e7b877..779df6d197 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/vs-2017.3.host.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/vs-2017.3.host.json @@ -1,7 +1,7 @@ { "$schema": "http://json.schemastore.org/vs-2017.3.host", "name": { - "text": "Web Application", + "text": "ASP.NET Core Web App", "package": "{0CD94836-1526-4E85-87D3-FB5274C5AFC9}", "id": "1017" }, diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/en/strings.json b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/en/strings.json index 73131cff4c..8ac3d0d783 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/en/strings.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/en/strings.json @@ -1,7 +1,7 @@ { "version": "1.0.0.0", "strings": { - "name": "Web Application (Model-View-Controller)", + "name": "ASP.NET Core Web App (Model-View-Controller)", "description": "A project template for creating an ASP.NET Core application with example ASP.NET Core MVC Views and Controllers. This template can also be used for RESTful HTTP services." } } \ No newline at end of file diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/vs-2017.3.host.json b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/vs-2017.3.host.json index 98149ec9ba..098b1e5e62 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/vs-2017.3.host.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/vs-2017.3.host.json @@ -1,7 +1,7 @@ { "$schema": "http://json.schemastore.org/vs-2017.3.host", "name": { - "text": "Web Application (Model-View-Controller)", + "text": "ASP.NET Core Web App (Model-View-Controller)", "package": "{0CD94836-1526-4E85-87D3-FB5274C5AFC9}", "id": "1015" }, diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/en/strings.json b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/en/strings.json index 9d10e71706..a81d06e5c8 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/en/strings.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/en/strings.json @@ -1,7 +1,7 @@ { "version": "1.0.0.0", "strings": { - "name": "API", + "name": "ASP.NET Core Web API", "description": "A project template for creating an ASP.NET Core application with an example Controller for a RESTful HTTP service. This template can also be used for ASP.NET Core MVC Views and Controllers." } } \ No newline at end of file diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/vs-2017.3.host.json b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/vs-2017.3.host.json index e2241ce31a..b740c174da 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/vs-2017.3.host.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/vs-2017.3.host.json @@ -1,7 +1,7 @@ { "$schema": "http://json.schemastore.org/vs-2017.3.host", "name": { - "text": "API", + "text": "ASP.NET Core Web API", "package": "{0CD94836-1526-4E85-87D3-FB5274C5AFC9}", "id": "1013" }, diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/.template.config/en/strings.json b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/.template.config/en/strings.json index 9d10e71706..a81d06e5c8 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/.template.config/en/strings.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/.template.config/en/strings.json @@ -1,7 +1,7 @@ { "version": "1.0.0.0", "strings": { - "name": "API", + "name": "ASP.NET Core Web API", "description": "A project template for creating an ASP.NET Core application with an example Controller for a RESTful HTTP service. This template can also be used for ASP.NET Core MVC Views and Controllers." } } \ No newline at end of file diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/.template.config/vs-2017.3.host.json b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/.template.config/vs-2017.3.host.json index c8ed19b9a0..d4a9b9058b 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/.template.config/vs-2017.3.host.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/.template.config/vs-2017.3.host.json @@ -1,7 +1,7 @@ { "$schema": "http://json.schemastore.org/vs-2017.3.host", "name": { - "text": "API", + "text": "ASP.NET Core Web API", "package": "{0CD94836-1526-4E85-87D3-FB5274C5AFC9}", "id": "1013" }, diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/en/strings.json b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/en/strings.json index a993f86deb..3fc350ed59 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/en/strings.json +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/en/strings.json @@ -1,7 +1,7 @@ { "version": "1.0.0.0", "strings": { - "name": "Angular", + "name": "ASP.NET Core with Angular", "description": "A project template for creating an ASP.NET Core application with Angular" } } \ No newline at end of file diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/vs-2017.3.host.json b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/vs-2017.3.host.json index 8e5e4ccc0c..de9473c367 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/vs-2017.3.host.json +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/vs-2017.3.host.json @@ -1,7 +1,7 @@ { "$schema": "http://json.schemastore.org/vs-2017.3.host", "name": { - "text": "Angular", + "text": "ASP.NET Core with Angular", "package": "{0CD94836-1526-4E85-87D3-FB5274C5AFC9}", "id": "1100" }, diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/en/strings.json b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/en/strings.json index fd5d6d4e58..8dbaae11f6 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/en/strings.json +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/en/strings.json @@ -1,7 +1,7 @@ { "version": "1.0.0.0", "strings": { - "name": "React.js", + "name": "ASP.NET Core with React.js", "description": "A project template for creating an ASP.NET Core application with React.js" } } \ No newline at end of file diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/vs-2017.3.host.json b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/vs-2017.3.host.json index fddabc6a25..ded765abe5 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/vs-2017.3.host.json +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/vs-2017.3.host.json @@ -1,7 +1,7 @@ { "$schema": "http://json.schemastore.org/vs-2017.3.host", "name": { - "text": "React.js", + "text": "ASP.NET Core with React.js", "package": "{0CD94836-1526-4E85-87D3-FB5274C5AFC9}", "id": "1500" }, diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/.template.config/en/strings.json b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/.template.config/en/strings.json index 1642995d41..10ecb9afea 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/.template.config/en/strings.json +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/.template.config/en/strings.json @@ -1,7 +1,7 @@ { "version": "1.0.0.0", "strings": { - "name": "React.js and Redux", + "name": "ASP.NET Core with React.js and Redux", "description": "A project template for creating an ASP.NET Core application with React.js and Redux" } } \ No newline at end of file diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/.template.config/vs-2017.3.host.json b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/.template.config/vs-2017.3.host.json index dbe1caf166..b628bc947e 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/.template.config/vs-2017.3.host.json +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/.template.config/vs-2017.3.host.json @@ -1,7 +1,7 @@ { "$schema": "http://json.schemastore.org/vs-2017.3.host", "name": { - "text": "React.js and Redux", + "text": "ASP.NET Core with React.js and Redux", "package": "{0CD94836-1526-4E85-87D3-FB5274C5AFC9}", "id": "1400" }, From 11b85eb7e277d288def26b3b325a5f1c53733e17 Mon Sep 17 00:00:00 2001 From: Chris Ross Date: Thu, 10 Sep 2020 19:36:42 -0700 Subject: [PATCH 088/187] Add Windows.10.Amd64.Server20H1.Open helix queue (#25627) --- eng/targets/Helix.Common.props | 1 + .../test/FunctionalTests/Diagnostics.FunctionalTests.csproj | 1 + 2 files changed, 2 insertions(+) diff --git a/eng/targets/Helix.Common.props b/eng/targets/Helix.Common.props index d68970f8dc..029f75990e 100644 --- a/eng/targets/Helix.Common.props +++ b/eng/targets/Helix.Common.props @@ -29,6 +29,7 @@ + diff --git a/src/Middleware/Diagnostics/test/FunctionalTests/Diagnostics.FunctionalTests.csproj b/src/Middleware/Diagnostics/test/FunctionalTests/Diagnostics.FunctionalTests.csproj index b7caf9c87e..20ca9cd1dc 100644 --- a/src/Middleware/Diagnostics/test/FunctionalTests/Diagnostics.FunctionalTests.csproj +++ b/src/Middleware/Diagnostics/test/FunctionalTests/Diagnostics.FunctionalTests.csproj @@ -5,6 +5,7 @@ false Diagnostics.FunctionalTests true + Windows.10.Amd64.Server20H1.Open From 7a74a1bb682b4a94e1dc6b2d6a654c6d6140517e Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 11 Sep 2020 04:23:10 +0000 Subject: [PATCH 089/187] [release/5.0-rc2] Update dependencies from dotnet/efcore (#25800) [release/5.0-rc2] Update dependencies from dotnet/efcore --- eng/Version.Details.xml | 32 ++++++++++++++++---------------- eng/Versions.props | 16 ++++++++-------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 699e009338..304d6f5889 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -13,37 +13,37 @@ https://github.com/dotnet/blazor cc449601d638ffaab58ae9487f0fd010bb178a12 - + https://github.com/dotnet/efcore - b41005bcbe352d387b534743d4a5bef570d9b590 + 663750651e1d8b60375f5237660ab50b6249904c - + https://github.com/dotnet/efcore - b41005bcbe352d387b534743d4a5bef570d9b590 + 663750651e1d8b60375f5237660ab50b6249904c - + https://github.com/dotnet/efcore - b41005bcbe352d387b534743d4a5bef570d9b590 + 663750651e1d8b60375f5237660ab50b6249904c - + https://github.com/dotnet/efcore - b41005bcbe352d387b534743d4a5bef570d9b590 + 663750651e1d8b60375f5237660ab50b6249904c - + https://github.com/dotnet/efcore - b41005bcbe352d387b534743d4a5bef570d9b590 + 663750651e1d8b60375f5237660ab50b6249904c - + https://github.com/dotnet/efcore - b41005bcbe352d387b534743d4a5bef570d9b590 + 663750651e1d8b60375f5237660ab50b6249904c - + https://github.com/dotnet/efcore - b41005bcbe352d387b534743d4a5bef570d9b590 + 663750651e1d8b60375f5237660ab50b6249904c - + https://github.com/dotnet/efcore - b41005bcbe352d387b534743d4a5bef570d9b590 + 663750651e1d8b60375f5237660ab50b6249904c https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 09d1829e24..eca7e58d17 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -135,14 +135,14 @@ 3.2.0 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 - 5.0.0-rc.2.20460.7 + 5.0.0-rc.2.20460.9 + 5.0.0-rc.2.20460.9 + 5.0.0-rc.2.20460.9 + 5.0.0-rc.2.20460.9 + 5.0.0-rc.2.20460.9 + 5.0.0-rc.2.20460.9 + 5.0.0-rc.2.20460.9 + 5.0.0-rc.2.20460.9 5.0.0-beta.20459.8 From 5f04dfc3ef7a66a4f9fef133b84299e4f561e187 Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Thu, 10 Sep 2020 23:08:16 -0700 Subject: [PATCH 090/187] Bundle latest 2.2 and 3.1 site extension packages (#25778) - part of dotnet/aspnetcore-internal#3676 --- eng/Versions.props | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/Versions.props b/eng/Versions.props index eca7e58d17..1601c9e7ba 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -241,8 +241,8 @@ 6.7.1 2.1.1 - 2.2.0 - 3.1.7-servicing-20372-13 + 2.2.5 + 3.1.8-servicing-20421-6 $(MicrosoftAspNetCoreAzureAppServicesSiteExtension31PackageVersion) $(MicrosoftAspNetCoreAzureAppServicesSiteExtension31PackageVersion) From f9a18fdb15bc03277cdc08226990a2549795b90b Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 11 Sep 2020 07:06:12 +0000 Subject: [PATCH 091/187] [release/5.0-rc2] Update dependencies from dotnet/runtime dotnet/efcore (#25804) [release/5.0-rc2] Update dependencies from dotnet/runtime dotnet/efcore --- eng/Version.Details.xml | 296 ++++++++++++++++++++-------------------- eng/Versions.props | 148 ++++++++++---------- 2 files changed, 222 insertions(+), 222 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 304d6f5889..79b9127adc 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -13,309 +13,309 @@ https://github.com/dotnet/blazor cc449601d638ffaab58ae9487f0fd010bb178a12 - + https://github.com/dotnet/efcore - 663750651e1d8b60375f5237660ab50b6249904c + 0daa1c6e6056ec9f873fdb4bf611521f058fd7a4 - + https://github.com/dotnet/efcore - 663750651e1d8b60375f5237660ab50b6249904c + 0daa1c6e6056ec9f873fdb4bf611521f058fd7a4 - + https://github.com/dotnet/efcore - 663750651e1d8b60375f5237660ab50b6249904c + 0daa1c6e6056ec9f873fdb4bf611521f058fd7a4 - + https://github.com/dotnet/efcore - 663750651e1d8b60375f5237660ab50b6249904c + 0daa1c6e6056ec9f873fdb4bf611521f058fd7a4 - + https://github.com/dotnet/efcore - 663750651e1d8b60375f5237660ab50b6249904c + 0daa1c6e6056ec9f873fdb4bf611521f058fd7a4 - + https://github.com/dotnet/efcore - 663750651e1d8b60375f5237660ab50b6249904c + 0daa1c6e6056ec9f873fdb4bf611521f058fd7a4 - + https://github.com/dotnet/efcore - 663750651e1d8b60375f5237660ab50b6249904c + 0daa1c6e6056ec9f873fdb4bf611521f058fd7a4 - + https://github.com/dotnet/efcore - 663750651e1d8b60375f5237660ab50b6249904c + 0daa1c6e6056ec9f873fdb4bf611521f058fd7a4 - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f - + https://github.com/dotnet/runtime - 3802520ce6951111092039fe5b365985d9677708 + e3a1128fc78c2836c899bc5099d7e0261888f08f https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 1601c9e7ba..d5f6f5e457 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -64,85 +64,85 @@ 3.8.0-2.20403.2 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.15 3.2.0 - 5.0.0-rc.2.20460.9 - 5.0.0-rc.2.20460.9 - 5.0.0-rc.2.20460.9 - 5.0.0-rc.2.20460.9 - 5.0.0-rc.2.20460.9 - 5.0.0-rc.2.20460.9 - 5.0.0-rc.2.20460.9 - 5.0.0-rc.2.20460.9 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.10 5.0.0-beta.20459.8 From e03d8e7613f70f7e5afe99268b762d28a9ec5bd6 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 11 Sep 2020 08:27:44 +0000 Subject: [PATCH 092/187] Update dependencies from https://github.com/dotnet/efcore build 20200910.11 (#25808) [release/5.0-rc2] Update dependencies from dotnet/efcore --- eng/Version.Details.xml | 32 ++++++++++++++++---------------- eng/Versions.props | 16 ++++++++-------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 79b9127adc..0bcf8f42ea 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -13,37 +13,37 @@ https://github.com/dotnet/blazor cc449601d638ffaab58ae9487f0fd010bb178a12 - + https://github.com/dotnet/efcore - 0daa1c6e6056ec9f873fdb4bf611521f058fd7a4 + 883a9e9ca8db6196d16a55c1e40e9fe7df62ff97 - + https://github.com/dotnet/efcore - 0daa1c6e6056ec9f873fdb4bf611521f058fd7a4 + 883a9e9ca8db6196d16a55c1e40e9fe7df62ff97 - + https://github.com/dotnet/efcore - 0daa1c6e6056ec9f873fdb4bf611521f058fd7a4 + 883a9e9ca8db6196d16a55c1e40e9fe7df62ff97 - + https://github.com/dotnet/efcore - 0daa1c6e6056ec9f873fdb4bf611521f058fd7a4 + 883a9e9ca8db6196d16a55c1e40e9fe7df62ff97 - + https://github.com/dotnet/efcore - 0daa1c6e6056ec9f873fdb4bf611521f058fd7a4 + 883a9e9ca8db6196d16a55c1e40e9fe7df62ff97 - + https://github.com/dotnet/efcore - 0daa1c6e6056ec9f873fdb4bf611521f058fd7a4 + 883a9e9ca8db6196d16a55c1e40e9fe7df62ff97 - + https://github.com/dotnet/efcore - 0daa1c6e6056ec9f873fdb4bf611521f058fd7a4 + 883a9e9ca8db6196d16a55c1e40e9fe7df62ff97 - + https://github.com/dotnet/efcore - 0daa1c6e6056ec9f873fdb4bf611521f058fd7a4 + 883a9e9ca8db6196d16a55c1e40e9fe7df62ff97 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index d5f6f5e457..a518717ba8 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -135,14 +135,14 @@ 3.2.0 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 - 5.0.0-rc.2.20460.10 + 5.0.0-rc.2.20460.11 + 5.0.0-rc.2.20460.11 + 5.0.0-rc.2.20460.11 + 5.0.0-rc.2.20460.11 + 5.0.0-rc.2.20460.11 + 5.0.0-rc.2.20460.11 + 5.0.0-rc.2.20460.11 + 5.0.0-rc.2.20460.11 5.0.0-beta.20459.8 From 59714980c9c0900d4f31479feac3a98e1cdc6233 Mon Sep 17 00:00:00 2001 From: JC Aguilera Date: Fri, 11 Sep 2020 09:05:25 -0700 Subject: [PATCH 093/187] Condition VS.Redist.* to PostBuildSign (#25793) --- .azure/pipelines/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azure/pipelines/ci.yml b/.azure/pipelines/ci.yml index a7dc48c128..b705f9c565 100644 --- a/.azure/pipelines/ci.yml +++ b/.azure/pipelines/ci.yml @@ -218,7 +218,7 @@ stages: displayName: Build Installers # A few files must also go to the VS package feed. - - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), ne(variables['PostBuildSign'], 'true')) }}: - task: NuGetCommand@2 displayName: Push Visual Studio packages inputs: From a7d129cc972ab247d9b08a0755b332605d2f3c42 Mon Sep 17 00:00:00 2001 From: Brennan Date: Fri, 11 Sep 2020 09:21:02 -0700 Subject: [PATCH 094/187] Send CloseMessage in more cases (#25693) * Send CloseMessage in more cases * fb --- .../FunctionalTests/HubConnectionTests.cs | 26 ++++++++++++++----- .../server/Core/src/HubConnectionContext.cs | 15 +++++++---- .../server/Core/src/HubConnectionHandler.cs | 2 +- .../SignalR/test/HubConnectionHandlerTests.cs | 23 ++++++++-------- 4 files changed, 43 insertions(+), 23 deletions(-) diff --git a/src/SignalR/clients/csharp/Client/test/FunctionalTests/HubConnectionTests.cs b/src/SignalR/clients/csharp/Client/test/FunctionalTests/HubConnectionTests.cs index 216a39b1c2..17e41b4db9 100644 --- a/src/SignalR/clients/csharp/Client/test/FunctionalTests/HubConnectionTests.cs +++ b/src/SignalR/clients/csharp/Client/test/FunctionalTests/HubConnectionTests.cs @@ -1349,7 +1349,11 @@ namespace Microsoft.AspNetCore.SignalR.Client.FunctionalTests }; var protocol = HubProtocols[protocolName]; - await using (var server = await StartServer(write => write.EventId.Name == "FailedWritingMessage")) + await using (var server = await StartServer(write => + { + return write.EventId.Name == "FailedWritingMessage" || write.EventId.Name == "ReceivedCloseWithError" + || write.EventId.Name == "ShutdownWithError"; + })) { var connection = CreateHubConnection(server.Url, "/default", HttpTransportType.WebSockets, protocol, LoggerFactory); var closedTcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); @@ -1361,9 +1365,12 @@ namespace Microsoft.AspNetCore.SignalR.Client.FunctionalTests var result = connection.InvokeAsync(nameof(TestHub.CallWithUnserializableObject)); // The connection should close. - Assert.Null(await closedTcs.Task.OrTimeout()); + var exception = await closedTcs.Task.OrTimeout(); + Assert.Contains("Connection closed with an error.", exception.Message); - await Assert.ThrowsAsync(() => result).OrTimeout(); + var hubException = await Assert.ThrowsAsync(() => result).OrTimeout(); + Assert.Contains("Connection closed with an error.", hubException.Message); + Assert.Contains(exceptionSubstring, hubException.Message); } catch (Exception ex) { @@ -1396,7 +1403,11 @@ namespace Microsoft.AspNetCore.SignalR.Client.FunctionalTests }; var protocol = HubProtocols[protocolName]; - await using (var server = await StartServer(write => write.EventId.Name == "FailedWritingMessage")) + await using (var server = await StartServer(write => + { + return write.EventId.Name == "FailedWritingMessage" || write.EventId.Name == "ReceivedCloseWithError" + || write.EventId.Name == "ShutdownWithError"; + })) { var connection = CreateHubConnection(server.Url, "/default", HttpTransportType.LongPolling, protocol, LoggerFactory); var closedTcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); @@ -1408,9 +1419,12 @@ namespace Microsoft.AspNetCore.SignalR.Client.FunctionalTests var result = connection.InvokeAsync(nameof(TestHub.GetUnserializableObject)).OrTimeout(); // The connection should close. - Assert.Null(await closedTcs.Task.OrTimeout()); + var exception = await closedTcs.Task.OrTimeout(); + Assert.Contains("Connection closed with an error.", exception.Message); - await Assert.ThrowsAsync(() => result).OrTimeout(); + var hubException = await Assert.ThrowsAsync(() => result).OrTimeout(); + Assert.Contains("Connection closed with an error.", hubException.Message); + Assert.Contains(exceptionSubstring, hubException.Message); } catch (Exception ex) { diff --git a/src/SignalR/server/Core/src/HubConnectionContext.cs b/src/SignalR/server/Core/src/HubConnectionContext.cs index 88ebde464c..08913ae139 100644 --- a/src/SignalR/server/Core/src/HubConnectionContext.cs +++ b/src/SignalR/server/Core/src/HubConnectionContext.cs @@ -149,14 +149,19 @@ namespace Microsoft.AspNetCore.SignalR [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public virtual ValueTask WriteAsync(HubMessage message, CancellationToken cancellationToken = default) + { + return WriteAsync(message, ignoreAbort: false, cancellationToken); + } + + internal ValueTask WriteAsync(HubMessage message, bool ignoreAbort, CancellationToken cancellationToken = default) { // Try to grab the lock synchronously, if we fail, go to the slower path if (!_writeLock.Wait(0)) { - return new ValueTask(WriteSlowAsync(message, cancellationToken)); + return new ValueTask(WriteSlowAsync(message, ignoreAbort, cancellationToken)); } - if (_connectionAborted) + if (_connectionAborted && !ignoreAbort) { _writeLock.Release(); return default; @@ -275,14 +280,14 @@ namespace Microsoft.AspNetCore.SignalR } } - private async Task WriteSlowAsync(HubMessage message, CancellationToken cancellationToken) + private async Task WriteSlowAsync(HubMessage message, bool ignoreAbort, CancellationToken cancellationToken) { // Failed to get the lock immediately when entering WriteAsync so await until it is available await _writeLock.WaitAsync(cancellationToken); try { - if (_connectionAborted) + if (_connectionAborted && !ignoreAbort) { return; } @@ -304,7 +309,7 @@ namespace Microsoft.AspNetCore.SignalR private async Task WriteSlowAsync(SerializedHubMessage message, CancellationToken cancellationToken) { // Failed to get the lock immediately when entering WriteAsync so await until it is available - await _writeLock.WaitAsync(); + await _writeLock.WaitAsync(cancellationToken); try { diff --git a/src/SignalR/server/Core/src/HubConnectionHandler.cs b/src/SignalR/server/Core/src/HubConnectionHandler.cs index d2d77e0fe6..a16f42f490 100644 --- a/src/SignalR/server/Core/src/HubConnectionHandler.cs +++ b/src/SignalR/server/Core/src/HubConnectionHandler.cs @@ -226,7 +226,7 @@ namespace Microsoft.AspNetCore.SignalR try { - await connection.WriteAsync(closeMessage); + await connection.WriteAsync(closeMessage, ignoreAbort: true); } catch (Exception ex) { diff --git a/src/SignalR/server/SignalR/test/HubConnectionHandlerTests.cs b/src/SignalR/server/SignalR/test/HubConnectionHandlerTests.cs index 862cde22d4..609a2550ae 100644 --- a/src/SignalR/server/SignalR/test/HubConnectionHandlerTests.cs +++ b/src/SignalR/server/SignalR/test/HubConnectionHandlerTests.cs @@ -155,6 +155,9 @@ namespace Microsoft.AspNetCore.SignalR.Tests await client.SendInvocationAsync(nameof(AbortHub.Kill)).OrTimeout(); + var close = Assert.IsType(await client.ReadAsync().OrTimeout()); + Assert.False(close.AllowReconnect); + await connectionHandlerTask.OrTimeout(); Assert.Null(client.TryRead()); @@ -955,15 +958,18 @@ namespace Microsoft.AspNetCore.SignalR.Tests { var connectionHandlerTask = await client.ConnectAsync(connectionHandler); - var invokeTask = client.InvokeAsync(nameof(MethodHub.BlockingMethod)); + await client.SendInvocationAsync(nameof(MethodHub.BlockingMethod)).OrTimeout(); client.Connection.Abort(); + var closeMessage = Assert.IsType(await client.ReadAsync().OrTimeout()); + Assert.False(closeMessage.AllowReconnect); + // If this completes then the server has completed the connection await connectionHandlerTask.OrTimeout(); // Nothing written to connection because it was closed - Assert.False(invokeTask.IsCompleted); + Assert.Null(client.TryRead()); } } } @@ -1019,16 +1025,11 @@ namespace Microsoft.AspNetCore.SignalR.Tests // kill the connection client.Dispose(); + var message = Assert.IsType(client.TryRead()); + Assert.True(message.AllowReconnect); + // Ensure the client channel is empty - var message = client.TryRead(); - switch (message) - { - case CloseMessage close: - break; - default: - Assert.Null(message); - break; - } + Assert.Null(client.TryRead()); await connectionHandlerTask.OrTimeout(); } From 2ab6436cdd6f4d77adf68e55d11326fafadb8099 Mon Sep 17 00:00:00 2001 From: Brennan Date: Fri, 11 Sep 2020 09:21:18 -0700 Subject: [PATCH 095/187] Set ShutdownTimeout in Kestrel tests (#25743) --- .../Kestrel/shared/test/TransportTestHelpers/TestServer.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Servers/Kestrel/shared/test/TransportTestHelpers/TestServer.cs b/src/Servers/Kestrel/shared/test/TransportTestHelpers/TestServer.cs index f24b116ae9..a95568d28b 100644 --- a/src/Servers/Kestrel/shared/test/TransportTestHelpers/TestServer.cs +++ b/src/Servers/Kestrel/shared/test/TransportTestHelpers/TestServer.cs @@ -101,6 +101,13 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests .UseSetting(WebHostDefaults.ShutdownTimeoutKey, TestConstants.DefaultTimeout.TotalSeconds.ToString()) .Configure(app => { app.Run(_app); }); }) + .ConfigureServices(services => + { + services.Configure(option => + { + option.ShutdownTimeout = TestConstants.DefaultTimeout; + }); + }) .Build(); _host.Start(); From c32089a5e2ea55aacaacb416a76002d9235dcdc8 Mon Sep 17 00:00:00 2001 From: Brennan Date: Fri, 11 Sep 2020 09:23:08 -0700 Subject: [PATCH 096/187] Add SignalR Client on WASM smoke test (#25526) * Add SignalR Client on WASM smoke test * Move test into BasicTestApp Co-authored-by: Steve Sanderson --- .../test/E2ETest/Tests/SignalRClientTest.cs | 51 +++++++++++++++++++ .../BasicTestApp/BasicTestApp.csproj | 1 + .../test/testassets/BasicTestApp/Index.razor | 1 + .../BasicTestApp/SignalRClientComponent.razor | 51 +++++++++++++++++++ .../test/testassets/TestServer/ChatHub.cs | 16 ++++++ .../test/testassets/TestServer/CorsStartup.cs | 4 +- 6 files changed, 123 insertions(+), 1 deletion(-) create mode 100644 src/Components/test/E2ETest/Tests/SignalRClientTest.cs create mode 100644 src/Components/test/testassets/BasicTestApp/SignalRClientComponent.razor create mode 100644 src/Components/test/testassets/TestServer/ChatHub.cs diff --git a/src/Components/test/E2ETest/Tests/SignalRClientTest.cs b/src/Components/test/E2ETest/Tests/SignalRClientTest.cs new file mode 100644 index 0000000000..aa4e82bb1d --- /dev/null +++ b/src/Components/test/E2ETest/Tests/SignalRClientTest.cs @@ -0,0 +1,51 @@ +// 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. + +using System; +using System.Linq; +using BasicTestApp; +using Microsoft.AspNetCore.Components.E2ETest.Infrastructure; +using Microsoft.AspNetCore.Components.E2ETest.Infrastructure.ServerFixtures; +using Microsoft.AspNetCore.E2ETesting; +using OpenQA.Selenium; +using TestServer; +using Xunit; +using Xunit.Abstractions; + +namespace Microsoft.AspNetCore.Components.E2ETest.Tests +{ + public class SignalRClientTest : ServerTestBase>, + IClassFixture> + { + private readonly ServerFixture _apiServerFixture; + + public SignalRClientTest( + BrowserFixture browserFixture, + DevHostServerFixture devHostServerFixture, + BasicTestAppServerSiteFixture apiServerFixture, + ITestOutputHelper output) + : base(browserFixture, devHostServerFixture, output) + { + _serverFixture.PathBase = "/subdir"; + _apiServerFixture = apiServerFixture; + } + + protected override void InitializeAsyncCore() + { + Navigate(ServerPathBase); + Browser.MountTestComponent(); + Browser.Exists(By.Id("signalr-client")); + } + + [Fact] + public void SignalRClientWorks() + { + Browser.FindElement(By.Id("hub-url")).SendKeys( + new Uri(_apiServerFixture.RootUri, "/subdir/chathub").AbsoluteUri); + Browser.FindElement(By.Id("hub-connect")).Click(); + + Browser.Equal("SignalR Client: Echo", + () => Browser.FindElements(By.CssSelector("li")).FirstOrDefault()?.Text); + } + } +} diff --git a/src/Components/test/testassets/BasicTestApp/BasicTestApp.csproj b/src/Components/test/testassets/BasicTestApp/BasicTestApp.csproj index 13f08442bf..58d604dda8 100644 --- a/src/Components/test/testassets/BasicTestApp/BasicTestApp.csproj +++ b/src/Components/test/testassets/BasicTestApp/BasicTestApp.csproj @@ -16,6 +16,7 @@ + diff --git a/src/Components/test/testassets/BasicTestApp/Index.razor b/src/Components/test/testassets/BasicTestApp/Index.razor index d73fb75fbf..99379de0bd 100644 --- a/src/Components/test/testassets/BasicTestApp/Index.razor +++ b/src/Components/test/testassets/BasicTestApp/Index.razor @@ -80,6 +80,7 @@ + diff --git a/src/Components/test/testassets/BasicTestApp/SignalRClientComponent.razor b/src/Components/test/testassets/BasicTestApp/SignalRClientComponent.razor new file mode 100644 index 0000000000..3f0869ee2d --- /dev/null +++ b/src/Components/test/testassets/BasicTestApp/SignalRClientComponent.razor @@ -0,0 +1,51 @@ +@using Microsoft.AspNetCore.SignalR.Client + +

SignalR Client

+ +

This shows that the SignalR client can be used on WebAssembly.

+ +

+ Hub URL: + + +

+ +
Connected: @IsConnected
+ +
    + @foreach (var message in messages) + { +
  • @message
  • + } +
+ +@code { + private string hubUrl; + private HubConnection hubConnection; + private List messages = new List(); + + protected async Task Connect() + { + hubConnection = new HubConnectionBuilder() + .WithUrl(hubUrl) + .Build(); + + hubConnection.On("ReceiveMessage", (user, message) => + { + var encodedMsg = $"{user}: {message}"; + messages.Add(encodedMsg); + StateHasChanged(); + }); + + await hubConnection.StartAsync(); + await hubConnection.SendAsync("SendMessage", "SignalR Client", "Echo"); + } + + public bool IsConnected => + hubConnection != null && hubConnection.State == HubConnectionState.Connected; + + public ValueTask DisposeAsync() + { + return hubConnection.DisposeAsync(); + } +} diff --git a/src/Components/test/testassets/TestServer/ChatHub.cs b/src/Components/test/testassets/TestServer/ChatHub.cs new file mode 100644 index 0000000000..770f2dcaa9 --- /dev/null +++ b/src/Components/test/testassets/TestServer/ChatHub.cs @@ -0,0 +1,16 @@ +// 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. + +using System.Threading.Tasks; +using Microsoft.AspNetCore.SignalR; + +namespace TestServer +{ + public class ChatHub : Hub + { + public async Task SendMessage(string user, string message) + { + await Clients.All.SendAsync("ReceiveMessage", user, message); + } + } +} diff --git a/src/Components/test/testassets/TestServer/CorsStartup.cs b/src/Components/test/testassets/TestServer/CorsStartup.cs index 8674037117..7459d9fb86 100644 --- a/src/Components/test/testassets/TestServer/CorsStartup.cs +++ b/src/Components/test/testassets/TestServer/CorsStartup.cs @@ -18,6 +18,7 @@ namespace TestServer // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { + services.AddSignalR(); services.AddMvc(); services.AddCors(options => { @@ -50,10 +51,11 @@ namespace TestServer app.UseRouting(); - app.UseCors(); + app.UseCors("AllowAll"); app.UseEndpoints(endpoints => { + endpoints.MapHub("/chathub"); endpoints.MapControllers(); endpoints.MapFallbackToFile("index.html"); }); From 84962660a33a6a2791fd819928cbce7b7f38db1b Mon Sep 17 00:00:00 2001 From: William Godbe Date: Fri, 11 Sep 2020 10:11:10 -0700 Subject: [PATCH 097/187] Strip duplicates from BuiltProjectOutputGroupOutput (#25785) --- .../src/Microsoft.AspNetCore.App.Runtime.csproj | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj b/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj index 096f7df9da..950bf61449 100644 --- a/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj +++ b/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj @@ -281,21 +281,22 @@ This package is an internal implementation of the .NET Core SDK and is not meant - - + + - + - + - - %(BuiltProjectOutputGroupOutput.Identity) + + %(BuildOutputFiles.Identity) - - + + + From 77be06a894306a435a5b199a4a986957dca8db91 Mon Sep 17 00:00:00 2001 From: William Godbe Date: Fri, 11 Sep 2020 10:11:29 -0700 Subject: [PATCH 098/187] Support primitive type/classes in HubConnection.on() (#25773) * Support primitive type/classes in HubConnection.on() * Small refactor * Spacing --- .../com/microsoft/signalr/HubConnection.java | 84 +++++++------------ .../java/com/microsoft/signalr/Utils.java | 14 ++++ .../microsoft/signalr/HubConnectionTest.java | 28 +++---- 3 files changed, 60 insertions(+), 66 deletions(-) diff --git a/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/HubConnection.java b/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/HubConnection.java index e67bdacc88..25b6139127 100644 --- a/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/HubConnection.java +++ b/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/HubConnection.java @@ -751,12 +751,7 @@ public class HubConnection implements AutoCloseable { // run continuations on a separate thread Subject pendingCall = irq.getPendingCall(); pendingCall.subscribe(result -> { - // Primitive types can't be cast with the Class cast function - if (returnClass.isPrimitive()) { - subject.onSuccess((T)result); - } else { - subject.onSuccess((T)returnClass.cast(result)); - } + subject.onSuccess(Utils.cast(returnClass, result)); }, error -> subject.onError(error)); // Make sure the actual send is after setting up the callbacks otherwise there is a race @@ -813,12 +808,7 @@ public class HubConnection implements AutoCloseable { ReplaySubject subject = ReplaySubject.create(); Subject pendingCall = irq.getPendingCall(); pendingCall.subscribe(result -> { - // Primitive types can't be cast with the Class cast function - if (returnClass.isPrimitive()) { - subject.onNext((T)result); - } else { - subject.onNext((T)returnClass.cast(result)); - } + subject.onNext(Utils.cast(returnClass, result)); }, error -> subject.onError(error), () -> subject.onComplete()); @@ -907,7 +897,7 @@ public class HubConnection implements AutoCloseable { * @return A {@link Subscription} that can be disposed to unsubscribe from the hub method. */ public Subscription on(String target, Action1 callback, Class param1) { - ActionBase action = params -> callback.invoke(param1.cast(params[0])); + ActionBase action = params -> callback.invoke(Utils.cast(param1, params[0])); return registerHandler(target, action, param1); } @@ -926,7 +916,7 @@ public class HubConnection implements AutoCloseable { */ public Subscription on(String target, Action2 callback, Class param1, Class param2) { ActionBase action = params -> { - callback.invoke(param1.cast(params[0]), param2.cast(params[1])); + callback.invoke(Utils.cast(param1, params[0]), Utils.cast(param2, params[1])); }; return registerHandler(target, action, param1, param2); } @@ -948,7 +938,7 @@ public class HubConnection implements AutoCloseable { public Subscription on(String target, Action3 callback, Class param1, Class param2, Class param3) { ActionBase action = params -> { - callback.invoke(param1.cast(params[0]), param2.cast(params[1]), param3.cast(params[2])); + callback.invoke(Utils.cast(param1, params[0]), Utils.cast(param2, params[1]), Utils.cast(param3, params[2])); }; return registerHandler(target, action, param1, param2, param3); } @@ -972,7 +962,8 @@ public class HubConnection implements AutoCloseable { public Subscription on(String target, Action4 callback, Class param1, Class param2, Class param3, Class param4) { ActionBase action = params -> { - callback.invoke(param1.cast(params[0]), param2.cast(params[1]), param3.cast(params[2]), param4.cast(params[3])); + callback.invoke(Utils.cast(param1, params[0]), Utils.cast(param2, params[1]), Utils.cast(param3, params[2]), + Utils.cast(param4, params[3])); }; return registerHandler(target, action, param1, param2, param3, param4); } @@ -998,8 +989,8 @@ public class HubConnection implements AutoCloseable { public Subscription on(String target, Action5 callback, Class param1, Class param2, Class param3, Class param4, Class param5) { ActionBase action = params -> { - callback.invoke(param1.cast(params[0]), param2.cast(params[1]), param3.cast(params[2]), param4.cast(params[3]), - param5.cast(params[4])); + callback.invoke(Utils.cast(param1, params[0]), Utils.cast(param2, params[1]), Utils.cast(param3, params[2]), + Utils.cast(param4, params[3]), Utils.cast(param5, params[4])); }; return registerHandler(target, action, param1, param2, param3, param4, param5); } @@ -1027,8 +1018,8 @@ public class HubConnection implements AutoCloseable { public Subscription on(String target, Action6 callback, Class param1, Class param2, Class param3, Class param4, Class param5, Class param6) { ActionBase action = params -> { - callback.invoke(param1.cast(params[0]), param2.cast(params[1]), param3.cast(params[2]), param4.cast(params[3]), - param5.cast(params[4]), param6.cast(params[5])); + callback.invoke(Utils.cast(param1, params[0]), Utils.cast(param2, params[1]), Utils.cast(param3, params[2]), + Utils.cast(param4, params[3]), Utils.cast(param5, params[4]), Utils.cast(param6, params[5])); }; return registerHandler(target, action, param1, param2, param3, param4, param5, param6); } @@ -1058,8 +1049,8 @@ public class HubConnection implements AutoCloseable { public Subscription on(String target, Action7 callback, Class param1, Class param2, Class param3, Class param4, Class param5, Class param6, Class param7) { ActionBase action = params -> { - callback.invoke(param1.cast(params[0]), param2.cast(params[1]), param3.cast(params[2]), param4.cast(params[3]), - param5.cast(params[4]), param6.cast(params[5]), param7.cast(params[6])); + callback.invoke(Utils.cast(param1, params[0]), Utils.cast(param2, params[1]), Utils.cast(param3, params[2]), + Utils.cast(param4, params[3]), Utils.cast(param5, params[4]), Utils.cast(param6, params[5]), Utils.cast(param7, params[6])); }; return registerHandler(target, action, param1, param2, param3, param4, param5, param6, param7); } @@ -1091,8 +1082,9 @@ public class HubConnection implements AutoCloseable { public Subscription on(String target, Action8 callback, Class param1, Class param2, Class param3, Class param4, Class param5, Class param6, Class param7, Class param8) { ActionBase action = params -> { - callback.invoke(param1.cast(params[0]), param2.cast(params[1]), param3.cast(params[2]), param4.cast(params[3]), - param5.cast(params[4]), param6.cast(params[5]), param7.cast(params[6]), param8.cast(params[7])); + callback.invoke(Utils.cast(param1, params[0]), Utils.cast(param2, params[1]), Utils.cast(param3, params[2]), + Utils.cast(param4, params[3]), Utils.cast(param5, params[4]), Utils.cast(param6, params[5]), Utils.cast(param7, params[6]), + Utils.cast(param8, params[7])); }; return registerHandler(target, action, param1, param2, param3, param4, param5, param6, param7, param8); } @@ -1108,9 +1100,10 @@ public class HubConnection implements AutoCloseable { * @param The first argument type. * @return A {@link Subscription} that can be disposed to unsubscribe from the hub method. */ - @SuppressWarnings("unchecked") public Subscription on(String target, Action1 callback, Type param1) { - ActionBase action = params -> callback.invoke((T1)Utils.typeToClass(param1).cast(params[0])); + ActionBase action = params -> { + callback.invoke(Utils.cast(param1, params[0])); + }; return registerHandler(target, action, param1); } @@ -1127,10 +1120,9 @@ public class HubConnection implements AutoCloseable { * @param The second parameter type. * @return A {@link Subscription} that can be disposed to unsubscribe from the hub method. */ - @SuppressWarnings("unchecked") public Subscription on(String target, Action2 callback, Type param1, Type param2) { ActionBase action = params -> { - callback.invoke((T1)Utils.typeToClass(param1).cast(params[0]), (T2)Utils.typeToClass(param2).cast(params[1])); + callback.invoke(Utils.cast(param1, params[0]), Utils.cast(param2, params[1])); }; return registerHandler(target, action, param1, param2); } @@ -1150,12 +1142,10 @@ public class HubConnection implements AutoCloseable { * @param The third parameter type. * @return A {@link Subscription} that can be disposed to unsubscribe from the hub method. */ - @SuppressWarnings("unchecked") public Subscription on(String target, Action3 callback, Type param1, Type param2, Type param3) { ActionBase action = params -> { - callback.invoke((T1)Utils.typeToClass(param1).cast(params[0]), (T2)Utils.typeToClass(param2).cast(params[1]), - (T3)Utils.typeToClass(param3).cast(params[2])); + callback.invoke(Utils.cast(param1, params[0]), Utils.cast(param2, params[1]), Utils.cast(param3, params[2])); }; return registerHandler(target, action, param1, param2, param3); } @@ -1177,12 +1167,11 @@ public class HubConnection implements AutoCloseable { * @param The fourth parameter type. * @return A {@link Subscription} that can be disposed to unsubscribe from the hub method. */ - @SuppressWarnings("unchecked") public Subscription on(String target, Action4 callback, Type param1, Type param2, Type param3, Type param4) { ActionBase action = params -> { - callback.invoke((T1)Utils.typeToClass(param1).cast(params[0]), (T2)Utils.typeToClass(param2).cast(params[1]), - (T3)Utils.typeToClass(param3).cast(params[2]), (T4)Utils.typeToClass(param4).cast(params[3])); + callback.invoke(Utils.cast(param1, params[0]), Utils.cast(param2, params[1]), Utils.cast(param3, params[2]), + Utils.cast(param4, params[3])); }; return registerHandler(target, action, param1, param2, param3, param4); } @@ -1206,13 +1195,11 @@ public class HubConnection implements AutoCloseable { * @param The fifth parameter type. * @return A {@link Subscription} that can be disposed to unsubscribe from the hub method. */ - @SuppressWarnings("unchecked") public Subscription on(String target, Action5 callback, Type param1, Type param2, Type param3, Type param4, Type param5) { ActionBase action = params -> { - callback.invoke((T1)Utils.typeToClass(param1).cast(params[0]), (T2)Utils.typeToClass(param2).cast(params[1]), - (T3)Utils.typeToClass(param3).cast(params[2]), (T4)Utils.typeToClass(param4).cast(params[3]), - (T5)Utils.typeToClass(param5).cast(params[4])); + callback.invoke(Utils.cast(param1, params[0]), Utils.cast(param2, params[1]), Utils.cast(param3, params[2]), + Utils.cast(param4, params[3]), Utils.cast(param5, params[4])); }; return registerHandler(target, action, param1, param2, param3, param4, param5); } @@ -1238,13 +1225,11 @@ public class HubConnection implements AutoCloseable { * @param The sixth parameter type. * @return A {@link Subscription} that can be disposed to unsubscribe from the hub method. */ - @SuppressWarnings("unchecked") public Subscription on(String target, Action6 callback, Type param1, Type param2, Type param3, Type param4, Type param5, Type param6) { ActionBase action = params -> { - callback.invoke((T1)Utils.typeToClass(param1).cast(params[0]), (T2)Utils.typeToClass(param2).cast(params[1]), - (T3)Utils.typeToClass(param3).cast(params[2]), (T4)Utils.typeToClass(param4).cast(params[3]), - (T5)Utils.typeToClass(param5).cast(params[4]), (T6)Utils.typeToClass(param6).cast(params[5])); + callback.invoke(Utils.cast(param1, params[0]), Utils.cast(param2, params[1]), Utils.cast(param3, params[2]), + Utils.cast(param4, params[3]), Utils.cast(param5, params[4]), Utils.cast(param6, params[5])); }; return registerHandler(target, action, param1, param2, param3, param4, param5, param6); } @@ -1272,14 +1257,11 @@ public class HubConnection implements AutoCloseable { * @param The seventh parameter type. * @return A {@link Subscription} that can be disposed to unsubscribe from the hub method. */ - @SuppressWarnings("unchecked") public Subscription on(String target, Action7 callback, Type param1, Type param2, Type param3, Type param4, Type param5, Type param6, Type param7) { ActionBase action = params -> { - callback.invoke((T1)Utils.typeToClass(param1).cast(params[0]), (T2)Utils.typeToClass(param2).cast(params[1]), - (T3)Utils.typeToClass(param3).cast(params[2]), (T4)Utils.typeToClass(param4).cast(params[3]), - (T5)Utils.typeToClass(param5).cast(params[4]), (T6)Utils.typeToClass(param6).cast(params[5]), - (T7)Utils.typeToClass(param7).cast(params[6])); + callback.invoke(Utils.cast(param1, params[0]), Utils.cast(param2, params[1]), Utils.cast(param3, params[2]), + Utils.cast(param4, params[3]), Utils.cast(param5, params[4]), Utils.cast(param6, params[5]), Utils.cast(param7, params[6])); }; return registerHandler(target, action, param1, param2, param3, param4, param5, param6, param7); } @@ -1309,15 +1291,13 @@ public class HubConnection implements AutoCloseable { * @param The eighth parameter type. * @return A {@link Subscription} that can be disposed to unsubscribe from the hub method. */ - @SuppressWarnings("unchecked") public Subscription on(String target, Action8 callback, Type param1, Type param2, Type param3, Type param4, Type param5, Type param6, Type param7, Type param8) { ActionBase action = params -> { - callback.invoke((T1)Utils.typeToClass(param1).cast(params[0]), (T2)Utils.typeToClass(param2).cast(params[1]), - (T3)Utils.typeToClass(param3).cast(params[2]), (T4)Utils.typeToClass(param4).cast(params[3]), - (T5)Utils.typeToClass(param5).cast(params[4]), (T6)Utils.typeToClass(param6).cast(params[5]), - (T7)Utils.typeToClass(param7).cast(params[6]), (T8)Utils.typeToClass(param8).cast(params[7])); + callback.invoke(Utils.cast(param1, params[0]), Utils.cast(param2, params[1]), Utils.cast(param3, params[2]), + Utils.cast(param4, params[3]), Utils.cast(param5, params[4]), Utils.cast(param6, params[5]), Utils.cast(param7, params[6]), + Utils.cast(param8, params[7])); }; return registerHandler(target, action, param1, param2, param3, param4, param5, param6, param7, param8); } diff --git a/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/Utils.java b/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/Utils.java index 45fc99d32f..6bbfd288e6 100644 --- a/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/Utils.java +++ b/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/Utils.java @@ -43,4 +43,18 @@ class Utils { throw new UnsupportedOperationException("Cannot handle type class: " + type.getClass()); } } + + @SuppressWarnings("unchecked") + public static T cast(Class returnClass, Object obj) { + // Primitive types can't be cast with the Class cast function + if (returnClass.isPrimitive()) { + return (T) obj; + } else { + return (T)returnClass.cast(obj); + } + } + + public static T cast(Type returnType, Object obj) { + return cast(typeToClass(returnType), obj); + } } \ No newline at end of file diff --git a/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/HubConnectionTest.java b/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/HubConnectionTest.java index 655bd807c0..de8db977a9 100644 --- a/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/HubConnectionTest.java +++ b/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/HubConnectionTest.java @@ -1959,7 +1959,7 @@ class HubConnectionTest { value1.set(param1); value2.set(param2); - }, String.class, Double.class); + }, String.class, double.class); hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); mockTransport.receiveMessage("{\"type\":1,\"target\":\"inc\",\"arguments\":[\"Hello World\", 12]}" + RECORD_SEPARATOR); @@ -1967,7 +1967,7 @@ class HubConnectionTest { // Confirming that our handler was called and the correct message was passed in. assertEquals("Hello World", value1.get()); - assertEquals(Double.valueOf(12), value2.get()); + assertEquals(12d, value2.get().doubleValue()); } @Test @@ -2054,7 +2054,7 @@ class HubConnectionTest { value3.set(param3); value4.set(param4); value5.set(param5); - }, String.class, String.class, String.class, Boolean.class, Double.class); + }, String.class, String.class, String.class, boolean.class, double.class); hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); mockTransport.receiveMessage("{\"type\":1,\"target\":\"inc\",\"arguments\":[\"A\", \"B\", \"C\",true,12 ]}" + RECORD_SEPARATOR); @@ -2063,8 +2063,8 @@ class HubConnectionTest { assertEquals("A", value1.get()); assertEquals("B", value2.get()); assertEquals("C", value3.get()); - assertTrue(value4.get()); - assertEquals(Double.valueOf(12), value5.get()); + assertTrue(value4.get().booleanValue()); + assertEquals(12d, value5.get().doubleValue()); } @Test @@ -2093,7 +2093,7 @@ class HubConnectionTest { value4.set(param4); value5.set(param5); value6.set(param6); - }, String.class, String.class, String.class, Boolean.class, Double.class, String.class); + }, String.class, String.class, String.class, boolean.class, double.class, String.class); hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); mockTransport.receiveMessage("{\"type\":1,\"target\":\"inc\",\"arguments\":[\"A\", \"B\", \"C\",true,12,\"D\"]}" + RECORD_SEPARATOR); @@ -2102,8 +2102,8 @@ class HubConnectionTest { assertEquals("A", value1.get()); assertEquals("B", value2.get()); assertEquals("C", value3.get()); - assertTrue(value4.get()); - assertEquals(Double.valueOf(12), value5.get()); + assertTrue(value4.get().booleanValue()); + assertEquals(12d, value5.get().doubleValue()); assertEquals("D", value6.get()); } @@ -2136,7 +2136,7 @@ class HubConnectionTest { value5.set(param5); value6.set(param6); value7.set(param7); - }, String.class, String.class, String.class, Boolean.class, Double.class, String.class, String.class); + }, String.class, String.class, String.class, boolean.class, double.class, String.class, String.class); hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); mockTransport.receiveMessage("{\"type\":1,\"target\":\"inc\",\"arguments\":[\"A\", \"B\", \"C\",true,12,\"D\",\"E\"]}" + RECORD_SEPARATOR); @@ -2145,8 +2145,8 @@ class HubConnectionTest { assertEquals("A", value1.get()); assertEquals("B", value2.get()); assertEquals("C", value3.get()); - assertTrue(value4.get()); - assertEquals(Double.valueOf(12), value5.get()); + assertTrue(value4.get().booleanValue()); + assertEquals(12d, value5.get().doubleValue()); assertEquals("D", value6.get()); assertEquals("E", value7.get()); } @@ -2183,7 +2183,7 @@ class HubConnectionTest { value6.set(param6); value7.set(param7); value8.set(param8); - }, String.class, String.class, String.class, Boolean.class, Double.class, String.class, String.class, String.class); + }, String.class, String.class, String.class, boolean.class, double.class, String.class, String.class, String.class); hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); mockTransport.receiveMessage("{\"type\":1,\"target\":\"inc\",\"arguments\":[\"A\", \"B\", \"C\",true,12,\"D\",\"E\",\"F\"]}" + RECORD_SEPARATOR); @@ -2191,8 +2191,8 @@ class HubConnectionTest { assertEquals("A", value1.get()); assertEquals("B", value2.get()); assertEquals("C", value3.get()); - assertTrue(value4.get()); - assertEquals(Double.valueOf(12), value5.get()); + assertTrue(value4.get().booleanValue()); + assertEquals(12d, value5.get().doubleValue()); assertEquals("D", value6.get()); assertEquals("E", value7.get()); assertEquals("F", value8.get()); From f7a76173e4d3870860e20a5445206e2eb309e088 Mon Sep 17 00:00:00 2001 From: William Godbe Date: Fri, 11 Sep 2020 10:26:49 -0700 Subject: [PATCH 099/187] Re-enable Helix tests for signalR java client (#25783) * Re-enable Helix tests for signalR java client * Change path to test results --- .../java/signalr/test/signalr.client.java.Tests.javaproj | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/SignalR/clients/java/signalr/test/signalr.client.java.Tests.javaproj b/src/SignalR/clients/java/signalr/test/signalr.client.java.Tests.javaproj index a3f8bee075..3962aeb47b 100644 --- a/src/SignalR/clients/java/signalr/test/signalr.client.java.Tests.javaproj +++ b/src/SignalR/clients/java/signalr/test/signalr.client.java.Tests.javaproj @@ -6,8 +6,6 @@ true true - - false $(OutputPath) true @@ -37,8 +35,7 @@ - - + @@ -52,8 +49,8 @@ - - + + From 83e31342a1a4481cafaa847c83d3283cd3bb25fd Mon Sep 17 00:00:00 2001 From: Brennan Date: Fri, 11 Sep 2020 10:53:45 -0700 Subject: [PATCH 100/187] [Kestrel] Deflake app abort test (#25484) * [Kestrel] Deflake app abort test * better * fb --- .../test/InMemory.FunctionalTests/ResponseTests.cs | 13 ++++++++----- .../Buffers.MemoryPool/DiagnosticMemoryPool.cs | 2 ++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/Servers/Kestrel/test/InMemory.FunctionalTests/ResponseTests.cs b/src/Servers/Kestrel/test/InMemory.FunctionalTests/ResponseTests.cs index f686865253..ec1d90072a 100644 --- a/src/Servers/Kestrel/test/InMemory.FunctionalTests/ResponseTests.cs +++ b/src/Servers/Kestrel/test/InMemory.FunctionalTests/ResponseTests.cs @@ -2555,24 +2555,27 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests [Fact] [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/24164")] + [Repeat(100)] public async Task AppAbortViaIConnectionLifetimeFeatureIsLogged() { var testContext = new TestServiceContext(LoggerFactory); - await using (var server = new TestServer(httpContext => + var closeTaskTcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + + await using (var server = new TestServer(async httpContext => { + var closeTask = await closeTaskTcs.Task.DefaultTimeout(); var feature = httpContext.Features.Get(); feature.Abort(); // Ensure the response doesn't get flush before the abort is observed. - var tcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); - feature.ConnectionClosed.Register(() => tcs.TrySetResult()); - - return tcs.Task; + await closeTask; }, testContext)) { using (var connection = server.CreateConnection()) { + closeTaskTcs.SetResult(connection.TransportConnection.WaitForCloseTask); + await connection.Send( "GET / HTTP/1.1", "Host:", diff --git a/src/Shared/Buffers.MemoryPool/DiagnosticMemoryPool.cs b/src/Shared/Buffers.MemoryPool/DiagnosticMemoryPool.cs index 2e2857ba41..2432af6ee2 100644 --- a/src/Shared/Buffers.MemoryPool/DiagnosticMemoryPool.cs +++ b/src/Shared/Buffers.MemoryPool/DiagnosticMemoryPool.cs @@ -131,6 +131,8 @@ namespace System.Buffers { SetAllBlocksReturned(); } + + _pool.Dispose(); } } From 9eb9de6c8c089853c4041885c2230a7ac0acda1b Mon Sep 17 00:00:00 2001 From: Brennan Date: Fri, 11 Sep 2020 11:44:00 -0700 Subject: [PATCH 101/187] [Java] Catch errors from user callbacks (#25513) * [Java] Catch errors from user callbacks * test logger * rebase * fb --- .../com/microsoft/signalr/HubConnection.java | 6 ++- .../clients/java/signalr/test/build.gradle | 2 +- .../microsoft/signalr/HubConnectionTest.java | 32 +++++++++++++ .../com/microsoft/signalr/TestLogger.java | 45 +++++++++++++++++++ 4 files changed, 83 insertions(+), 2 deletions(-) create mode 100644 src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/TestLogger.java diff --git a/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/HubConnection.java b/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/HubConnection.java index 25b6139127..8ff26762f6 100644 --- a/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/HubConnection.java +++ b/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/HubConnection.java @@ -223,7 +223,11 @@ public class HubConnection implements AutoCloseable { List handlers = this.handlers.get(invocationMessage.getTarget()); if (handlers != null) { for (InvocationHandler handler : handlers) { - handler.getAction().invoke(invocationMessage.getArguments()); + try { + handler.getAction().invoke(invocationMessage.getArguments()); + } catch (Exception e) { + logger.error("Invoking client side method '{}' failed:", invocationMessage.getTarget(), e); + } } } else { logger.warn("Failed to find handler for '{}' method.", invocationMessage.getTarget()); diff --git a/src/SignalR/clients/java/signalr/test/build.gradle b/src/SignalR/clients/java/signalr/test/build.gradle index 75a451b929..2fefd54f64 100644 --- a/src/SignalR/clients/java/signalr/test/build.gradle +++ b/src/SignalR/clients/java/signalr/test/build.gradle @@ -5,7 +5,7 @@ dependencies { compile 'org.junit.jupiter:junit-jupiter-params:5.3.1' runtime 'org.junit.jupiter:junit-jupiter-engine:5.3.1' implementation 'com.google.code.gson:gson:2.8.5' - testCompile 'org.slf4j:slf4j-jdk14:1.7.25' + compile 'ch.qos.logback:logback-classic:1.2.3' implementation project(':core') implementation project(':messagepack') compile project(':messagepack') diff --git a/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/HubConnectionTest.java b/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/HubConnectionTest.java index de8db977a9..5839dd2f66 100644 --- a/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/HubConnectionTest.java +++ b/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/HubConnectionTest.java @@ -18,6 +18,7 @@ import java.util.concurrent.atomic.AtomicReference; import org.junit.jupiter.api.Test; +import ch.qos.logback.classic.spi.ILoggingEvent; import io.reactivex.Completable; import io.reactivex.Observable; import io.reactivex.Single; @@ -2565,6 +2566,37 @@ class HubConnectionTest { assertEquals((short) 5, (short) person.getT()); } + @Test + public void throwFromOnHandlerRunsAllHandlers() { + AtomicReference value1 = new AtomicReference<>(); + AtomicReference value2 = new AtomicReference<>(); + + try (TestLogger logger = new TestLogger()) { + MockTransport mockTransport = new MockTransport(); + HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); + + hubConnection.on("inc", (param1) -> { + value1.set(param1); + throw new RuntimeException("throw from on handler"); + }, String.class); + hubConnection.on("inc", (param1) -> { + value2.set(param1); + }, String.class); + + hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + mockTransport.receiveMessage("{\"type\":1,\"target\":\"inc\",\"arguments\":[\"Hello World\"]}" + RECORD_SEPARATOR); + + // Confirming that our handler was called and the correct message was passed in. + assertEquals("Hello World", value1.get()); + assertEquals("Hello World", value2.get()); + + hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait(); + + ILoggingEvent log = logger.assertLog("Invoking client side method 'inc' failed:"); + assertEquals("throw from on handler", log.getThrowableProxy().getMessage()); + } + } + @Test public void receiveHandshakeResponseAndMessage() { AtomicReference value = new AtomicReference(0.0); diff --git a/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/TestLogger.java b/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/TestLogger.java new file mode 100644 index 0000000000..2bc1a58eae --- /dev/null +++ b/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/TestLogger.java @@ -0,0 +1,45 @@ +// 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. + +package com.microsoft.signalr; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.slf4j.LoggerFactory; + +import ch.qos.logback.classic.Logger; +import ch.qos.logback.classic.spi.ILoggingEvent; +import ch.qos.logback.core.read.ListAppender; + +class TestLogger implements AutoCloseable { + private Logger logger; + private ListAppender appender; + + public TestLogger() { + this("com.microsoft.signalr.HubConnection"); + } + + public TestLogger(String category) { + this.logger = (Logger)LoggerFactory.getLogger(category); + this.appender = new ListAppender(); + this.appender.start(); + this.logger.addAppender(this.appender); + } + + public ILoggingEvent assertLog(String logMessage) { + for (ILoggingEvent log : appender.list) { + if (log.getFormattedMessage().startsWith(logMessage)) { + return log; + } + } + + assertTrue(false, String.format("Log message '%s' not found", logMessage)); + return null; + } + + @Override + public void close() { + this.logger.detachAppender(this.appender); + } + +} \ No newline at end of file From a1276de34de7dcf3c0ce9801690542a922fd16e8 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 11 Sep 2020 20:46:42 +0000 Subject: [PATCH 102/187] [release/5.0-rc2] Update dependencies from dotnet/runtime dotnet/efcore (#25816) [release/5.0-rc2] Update dependencies from dotnet/runtime dotnet/efcore --- eng/Version.Details.xml | 296 ++++++++++++++++++++-------------------- eng/Versions.props | 148 ++++++++++---------- 2 files changed, 222 insertions(+), 222 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 0bcf8f42ea..f90f6549d7 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -13,309 +13,309 @@ https://github.com/dotnet/blazor cc449601d638ffaab58ae9487f0fd010bb178a12 - + https://github.com/dotnet/efcore - 883a9e9ca8db6196d16a55c1e40e9fe7df62ff97 + 844587e14662b8d4178cc99899d90a4e387e43a9 - + https://github.com/dotnet/efcore - 883a9e9ca8db6196d16a55c1e40e9fe7df62ff97 + 844587e14662b8d4178cc99899d90a4e387e43a9 - + https://github.com/dotnet/efcore - 883a9e9ca8db6196d16a55c1e40e9fe7df62ff97 + 844587e14662b8d4178cc99899d90a4e387e43a9 - + https://github.com/dotnet/efcore - 883a9e9ca8db6196d16a55c1e40e9fe7df62ff97 + 844587e14662b8d4178cc99899d90a4e387e43a9 - + https://github.com/dotnet/efcore - 883a9e9ca8db6196d16a55c1e40e9fe7df62ff97 + 844587e14662b8d4178cc99899d90a4e387e43a9 - + https://github.com/dotnet/efcore - 883a9e9ca8db6196d16a55c1e40e9fe7df62ff97 + 844587e14662b8d4178cc99899d90a4e387e43a9 - + https://github.com/dotnet/efcore - 883a9e9ca8db6196d16a55c1e40e9fe7df62ff97 + 844587e14662b8d4178cc99899d90a4e387e43a9 - + https://github.com/dotnet/efcore - 883a9e9ca8db6196d16a55c1e40e9fe7df62ff97 + 844587e14662b8d4178cc99899d90a4e387e43a9 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime - e3a1128fc78c2836c899bc5099d7e0261888f08f + 7d39776332446d8a84f5d542c80d264fa1cadbe7 https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index a518717ba8..bb6023c253 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -64,85 +64,85 @@ 3.8.0-2.20403.2 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 - 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20460.15 + 5.0.0-rc.2.20461.4 3.2.0 - 5.0.0-rc.2.20460.11 - 5.0.0-rc.2.20460.11 - 5.0.0-rc.2.20460.11 - 5.0.0-rc.2.20460.11 - 5.0.0-rc.2.20460.11 - 5.0.0-rc.2.20460.11 - 5.0.0-rc.2.20460.11 - 5.0.0-rc.2.20460.11 + 5.0.0-rc.2.20461.1 + 5.0.0-rc.2.20461.1 + 5.0.0-rc.2.20461.1 + 5.0.0-rc.2.20461.1 + 5.0.0-rc.2.20461.1 + 5.0.0-rc.2.20461.1 + 5.0.0-rc.2.20461.1 + 5.0.0-rc.2.20461.1 5.0.0-beta.20459.8 From 3932156a95011c9101ef956bcb2d9081f3909d48 Mon Sep 17 00:00:00 2001 From: Stephen Halter Date: Fri, 11 Sep 2020 13:57:23 -0700 Subject: [PATCH 103/187] Improve Http1ContentLengthMessageBody's reset logic (#25799) --- .../Http/Http1ContentLengthMessageBody.cs | 91 ++++++++++++++----- .../src/Internal/Http/Http1MessageBody.cs | 2 +- .../Kestrel/Core/test/MessageBodyTests.cs | 33 +++++++ 3 files changed, 103 insertions(+), 23 deletions(-) diff --git a/src/Servers/Kestrel/Core/src/Internal/Http/Http1ContentLengthMessageBody.cs b/src/Servers/Kestrel/Core/src/Internal/Http/Http1ContentLengthMessageBody.cs index 728ce3337c..04cfe0214d 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Http/Http1ContentLengthMessageBody.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Http/Http1ContentLengthMessageBody.cs @@ -2,6 +2,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Diagnostics; using System.IO.Pipelines; using System.Threading; using System.Threading.Tasks; @@ -9,6 +10,8 @@ using Microsoft.AspNetCore.Connections; namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http { + using BadHttpRequestException = Microsoft.AspNetCore.Http.BadHttpRequestException; + internal sealed class Http1ContentLengthMessageBody : Http1MessageBody { private ReadResult _readResult; @@ -18,6 +21,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http private bool _isReading; private int _userCanceled; private bool _finalAdvanceCalled; + private bool _cannotResetInputPipe; public Http1ContentLengthMessageBody(bool keepAlive, long contentLength, Http1Connection context) : base(context) @@ -35,15 +39,19 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http public override async ValueTask ReadAsyncInternal(CancellationToken cancellationToken = default) { - if (_isReading) - { - throw new InvalidOperationException("Reading is already in progress."); - } + VerifyIsNotReading(); if (_readCompleted) { _isReading = true; - return new ReadResult(_readResult.Buffer, Interlocked.Exchange(ref _userCanceled, 0) == 1, _readResult.IsCompleted); + return new ReadResult(_readResult.Buffer, Interlocked.Exchange(ref _userCanceled, 0) == 1, isCompleted: true); + } + + // The issue is that TryRead can get a canceled read result + // which is unknown to StartTimingReadAsync. + if (_context.RequestTimedOut) + { + KestrelBadHttpRequestException.Throw(RequestRejectionReason.RequestBodyTimeout); } TryStart(); @@ -54,12 +62,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http // We internally track an int for that. while (true) { - // The issue is that TryRead can get a canceled read result - // which is unknown to StartTimingReadAsync. - if (_context.RequestTimedOut) - { - KestrelBadHttpRequestException.Throw(RequestRejectionReason.RequestBodyTimeout); - } try { @@ -76,10 +78,14 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http void ResetReadingState() { - _isReading = false; // Reset the timing read here for the next call to read. StopTimingRead(0); - _context.Input.AdvanceTo(_readResult.Buffer.Start); + + if (!_cannotResetInputPipe) + { + _isReading = false; + _context.Input.AdvanceTo(_readResult.Buffer.Start); + } } if (_context.RequestTimedOut) @@ -95,7 +101,10 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http } // Ignore the canceled readResult if it wasn't canceled by the user. - if (!_readResult.IsCanceled || Interlocked.Exchange(ref _userCanceled, 0) == 1) + // Normally we do not return a canceled ReadResult unless CancelPendingRead was called on the request body PipeReader itself, + // but if the last call to AdvanceTo examined data it did not consume, we cannot reset the state of the Input pipe. + // https://github.com/dotnet/aspnetcore/issues/19476 + if (!_readResult.IsCanceled || Interlocked.Exchange(ref _userCanceled, 0) == 1 || _cannotResetInputPipe) { var returnedReadResultLength = CreateReadResultFromConnectionReadResult(); @@ -124,18 +133,20 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http public override bool TryReadInternal(out ReadResult readResult) { - if (_isReading) - { - throw new InvalidOperationException("Reading is already in progress."); - } + VerifyIsNotReading(); if (_readCompleted) { _isReading = true; - readResult = new ReadResult(_readResult.Buffer, Interlocked.Exchange(ref _userCanceled, 0) == 1, _readResult.IsCompleted); + readResult = new ReadResult(_readResult.Buffer, Interlocked.Exchange(ref _userCanceled, 0) == 1, isCompleted: true); return true; } + if (_context.RequestTimedOut) + { + KestrelBadHttpRequestException.Throw(RequestRejectionReason.RequestBodyTimeout); + } + TryStart(); // The while(true) because we don't want to return a canceled ReadResult if the user themselves didn't cancel it. @@ -147,7 +158,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http return false; } - if (!_readResult.IsCanceled || Interlocked.Exchange(ref _userCanceled, 0) == 1) + if (!_readResult.IsCanceled || Interlocked.Exchange(ref _userCanceled, 0) == 1 || _cannotResetInputPipe) { break; } @@ -157,7 +168,15 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http if (_readResult.IsCompleted) { - _context.Input.AdvanceTo(_readResult.Buffer.Start); + if (_cannotResetInputPipe) + { + _isReading = true; + } + else + { + _context.Input.AdvanceTo(_readResult.Buffer.Start); + } + ThrowUnexpectedEndOfRequestContent(); } @@ -214,7 +233,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http if (_readCompleted) { // If the old stored _readResult was canceled, it's already been observed. Do not store a canceled read result permanently. - _readResult = new ReadResult(_readResult.Buffer.Slice(consumed, _readResult.Buffer.End), isCanceled: false, _readCompleted); + _readResult = new ReadResult(_readResult.Buffer.Slice(consumed, _readResult.Buffer.End), isCanceled: false, isCompleted: true); if (!_finalAdvanceCalled && _readResult.Buffer.Length == 0) { @@ -226,6 +245,10 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http return; } + // If consumed != examined, we cannot reset _context.Input back to a non-reading state after the next call to ReadAsync + // simply by calling _context.Input.AdvanceTo(_readResult.Buffer.Start) because the DefaultPipeReader will complain that + // "The examined position cannot be less than the previously examined position." + _cannotResetInputPipe = !consumed.Equals(examined); _unexaminedInputLength -= TrackConsumedAndExaminedBytes(_readResult, consumed, examined); _context.Input.AdvanceTo(consumed, examined); } @@ -255,5 +278,29 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http Complete(null); return Task.CompletedTask; } + + [StackTraceHidden] + private void VerifyIsNotReading() + { + if (!_isReading) + { + return; + } + + if (_cannotResetInputPipe) + { + if (_readResult.IsCompleted) + { + KestrelBadHttpRequestException.Throw(RequestRejectionReason.UnexpectedEndOfRequestContent); + } + + if (_context.RequestTimedOut) + { + KestrelBadHttpRequestException.Throw(RequestRejectionReason.RequestBodyTimeout); + } + } + + throw new InvalidOperationException("Reading is already in progress."); + } } } diff --git a/src/Servers/Kestrel/Core/src/Internal/Http/Http1MessageBody.cs b/src/Servers/Kestrel/Core/src/Internal/Http/Http1MessageBody.cs index d6d7794198..34427d3f56 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Http/Http1MessageBody.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Http/Http1MessageBody.cs @@ -89,7 +89,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http AdvanceTo(result.Buffer.End); } while (!result.IsCompleted); } - catch (Microsoft.AspNetCore.Http.BadHttpRequestException ex) + catch (BadHttpRequestException ex) { _context.SetBadRequestState(ex); } diff --git a/src/Servers/Kestrel/Core/test/MessageBodyTests.cs b/src/Servers/Kestrel/Core/test/MessageBodyTests.cs index ff1280a3f4..e274458386 100644 --- a/src/Servers/Kestrel/Core/test/MessageBodyTests.cs +++ b/src/Servers/Kestrel/Core/test/MessageBodyTests.cs @@ -1226,6 +1226,39 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests input.Application.Output.Complete(); +#pragma warning disable CS0618 // Type or member is obsolete + var ex0 = Assert.Throws(() => reader.TryRead(out var readResult)); + var ex1 = Assert.Throws(() => reader.TryRead(out var readResult)); + var ex2 = await Assert.ThrowsAsync(() => reader.ReadAsync().AsTask()); + var ex3 = await Assert.ThrowsAsync(() => reader.ReadAsync().AsTask()); +#pragma warning restore CS0618 // Type or member is obsolete + + Assert.Equal(RequestRejectionReason.UnexpectedEndOfRequestContent, ex0.Reason); + Assert.Equal(RequestRejectionReason.UnexpectedEndOfRequestContent, ex1.Reason); + Assert.Equal(RequestRejectionReason.UnexpectedEndOfRequestContent, ex2.Reason); + Assert.Equal(RequestRejectionReason.UnexpectedEndOfRequestContent, ex3.Reason); + + await body.StopAsync(); + } + } + + [Fact] + public async Task UnexpectedEndOfRequestContentIsRepeatedlyThrownForContentLengthBodyAfterExaminingButNotConsumingBytes() + { + using (var input = new TestInput()) + { + var body = Http1MessageBody.For(HttpVersion.Http11, new HttpRequestHeaders { HeaderContentLength = "5" }, input.Http1Connection); + var reader = new HttpRequestPipeReader(); + reader.StartAcceptingReads(body); + + await input.Application.Output.WriteAsync(new byte[] { 0 }); + + var readResult = await reader.ReadAsync(); + + reader.AdvanceTo(readResult.Buffer.Start, readResult.Buffer.End); + + input.Application.Output.Complete(); + #pragma warning disable CS0618 // Type or member is obsolete var ex0 = Assert.Throws(() => reader.TryRead(out var readResult)); var ex1 = Assert.Throws(() => reader.TryRead(out var readResult)); From 004cd1a9d97476c5c461ade2f0acdb23b30e33f3 Mon Sep 17 00:00:00 2001 From: Pranav K Date: Fri, 11 Sep 2020 14:32:02 -0700 Subject: [PATCH 104/187] PR feedback for platform compatibility update (#25815) * PR feedback for platform compatibility update Follow up to https://github.com/dotnet/aspnetcore/pull/25421 * Add SupportedOSPlatform attributes to a few more DataProtection API * Update the SDK to rc2 * Clean up warning suppression in CertificateManager * React to nit feedbacks Fixes https://github.com/dotnet/aspnetcore/issues/25781 * Apply suggestions from code review --- global.json | 4 ++-- .../AuthenticatedEncryptorFactory.cs | 7 ++++++- .../CngCbcAuthenticatedEncryptorFactory.cs | 9 ++++++++- .../CngGcmAuthenticatedEncryptorFactory.cs | 7 +++++++ .../CngCbcAuthenticatedEncryptorConfiguration.cs | 2 ++ .../CngCbcAuthenticatedEncryptorDescriptor.cs | 2 ++ ...CngCbcAuthenticatedEncryptorDescriptorDeserializer.cs | 2 ++ .../CngGcmAuthenticatedEncryptorConfiguration.cs | 2 ++ .../CngGcmAuthenticatedEncryptorDescriptor.cs | 3 ++- ...CngGcmAuthenticatedEncryptorDescriptorDeserializer.cs | 2 ++ .../src/DataProtectionBuilderExtensions.cs | 2 ++ .../src/EphemeralDataProtectionProvider.cs | 4 ++++ .../src/Microsoft.AspNetCore.DataProtection.csproj | 2 +- src/Shared/PlatformAttributes.cs | 4 ---- 14 files changed, 42 insertions(+), 10 deletions(-) diff --git a/global.json b/global.json index 97c6ea58f3..4c2009c713 100644 --- a/global.json +++ b/global.json @@ -1,9 +1,9 @@ { "sdk": { - "version": "5.0.100-rc.1.20429.2" + "version": "5.0.100-rc.1.20452.10" }, "tools": { - "dotnet": "5.0.100-rc.1.20429.2", + "dotnet": "5.0.100-rc.1.20452.10", "runtimes": { "dotnet/x64": [ "2.1.18", diff --git a/src/DataProtection/DataProtection/src/AuthenticatedEncryption/AuthenticatedEncryptorFactory.cs b/src/DataProtection/DataProtection/src/AuthenticatedEncryption/AuthenticatedEncryptorFactory.cs index f9be1e1994..698ab5e524 100644 --- a/src/DataProtection/DataProtection/src/AuthenticatedEncryption/AuthenticatedEncryptorFactory.cs +++ b/src/DataProtection/DataProtection/src/AuthenticatedEncryption/AuthenticatedEncryptorFactory.cs @@ -1,7 +1,9 @@ -// 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. using System; +using System.Diagnostics; +using System.Runtime.InteropServices; using System.Security.Cryptography; using Microsoft.AspNetCore.Cryptography; using Microsoft.AspNetCore.Cryptography.Cng; @@ -52,6 +54,8 @@ namespace Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption throw new PlatformNotSupportedException(Resources.Platform_WindowsRequiredForGcm); } + Debug.Assert(RuntimeInformation.IsOSPlatform(OSPlatform.Windows)); + var configuration = new CngGcmAuthenticatedEncryptorConfiguration() { EncryptionAlgorithm = GetBCryptAlgorithmNameFromEncryptionAlgorithm(authenticatedConfiguration.EncryptionAlgorithm), @@ -64,6 +68,7 @@ namespace Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption { if (OSVersionUtil.IsWindows()) { + Debug.Assert(RuntimeInformation.IsOSPlatform(OSPlatform.Windows)); // CNG preferred over managed implementations if running on Windows var configuration = new CngCbcAuthenticatedEncryptorConfiguration() { diff --git a/src/DataProtection/DataProtection/src/AuthenticatedEncryption/CngCbcAuthenticatedEncryptorFactory.cs b/src/DataProtection/DataProtection/src/AuthenticatedEncryption/CngCbcAuthenticatedEncryptorFactory.cs index 1ccc76d501..4800ec574e 100644 --- a/src/DataProtection/DataProtection/src/AuthenticatedEncryption/CngCbcAuthenticatedEncryptorFactory.cs +++ b/src/DataProtection/DataProtection/src/AuthenticatedEncryption/CngCbcAuthenticatedEncryptorFactory.cs @@ -1,7 +1,10 @@ -// 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. using System; +using System.Diagnostics; +using System.Runtime.InteropServices; +using System.Runtime.Versioning; using Microsoft.AspNetCore.Cryptography; using Microsoft.AspNetCore.Cryptography.Cng; using Microsoft.AspNetCore.Cryptography.SafeHandles; @@ -32,9 +35,11 @@ namespace Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption return null; } + Debug.Assert(RuntimeInformation.IsOSPlatform(OSPlatform.Windows)); return CreateAuthenticatedEncryptorInstance(descriptor.MasterKey, descriptor.Configuration); } + [SupportedOSPlatform("windows")] internal CbcAuthenticatedEncryptor CreateAuthenticatedEncryptorInstance( ISecret secret, CngCbcAuthenticatedEncryptorConfiguration configuration) @@ -51,6 +56,7 @@ namespace Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption hmacAlgorithmHandle: GetHmacAlgorithmHandle(configuration)); } + [SupportedOSPlatform("windows")] private BCryptAlgorithmHandle GetHmacAlgorithmHandle(CngCbcAuthenticatedEncryptorConfiguration configuration) { // basic argument checking @@ -84,6 +90,7 @@ namespace Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption return algorithmHandle; } + [SupportedOSPlatform("windows")] private BCryptAlgorithmHandle GetSymmetricBlockCipherAlgorithmHandle(CngCbcAuthenticatedEncryptorConfiguration configuration) { // basic argument checking diff --git a/src/DataProtection/DataProtection/src/AuthenticatedEncryption/CngGcmAuthenticatedEncryptorFactory.cs b/src/DataProtection/DataProtection/src/AuthenticatedEncryption/CngGcmAuthenticatedEncryptorFactory.cs index 947ab4b56c..e949ce9c41 100644 --- a/src/DataProtection/DataProtection/src/AuthenticatedEncryption/CngGcmAuthenticatedEncryptorFactory.cs +++ b/src/DataProtection/DataProtection/src/AuthenticatedEncryption/CngGcmAuthenticatedEncryptorFactory.cs @@ -2,6 +2,9 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Diagnostics; +using System.Runtime.InteropServices; +using System.Runtime.Versioning; using Microsoft.AspNetCore.Cryptography; using Microsoft.AspNetCore.Cryptography.Cng; using Microsoft.AspNetCore.Cryptography.SafeHandles; @@ -32,9 +35,12 @@ namespace Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption return null; } + Debug.Assert(RuntimeInformation.IsOSPlatform(OSPlatform.Windows)); + return CreateAuthenticatedEncryptorInstance(descriptor.MasterKey, descriptor.Configuration); } + [SupportedOSPlatform("windows")] internal GcmAuthenticatedEncryptor CreateAuthenticatedEncryptorInstance( ISecret secret, CngGcmAuthenticatedEncryptorConfiguration configuration) @@ -50,6 +56,7 @@ namespace Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption symmetricAlgorithmKeySizeInBytes: (uint)(configuration.EncryptionAlgorithmKeySize / 8)); } + [SupportedOSPlatform("windows")] private BCryptAlgorithmHandle GetSymmetricBlockCipherAlgorithmHandle(CngGcmAuthenticatedEncryptorConfiguration configuration) { // basic argument checking diff --git a/src/DataProtection/DataProtection/src/AuthenticatedEncryption/ConfigurationModel/CngCbcAuthenticatedEncryptorConfiguration.cs b/src/DataProtection/DataProtection/src/AuthenticatedEncryption/ConfigurationModel/CngCbcAuthenticatedEncryptorConfiguration.cs index 1c23957db2..d0622a4f1a 100644 --- a/src/DataProtection/DataProtection/src/AuthenticatedEncryption/ConfigurationModel/CngCbcAuthenticatedEncryptorConfiguration.cs +++ b/src/DataProtection/DataProtection/src/AuthenticatedEncryption/ConfigurationModel/CngCbcAuthenticatedEncryptorConfiguration.cs @@ -1,6 +1,7 @@ // 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. +using System.Runtime.Versioning; using Microsoft.AspNetCore.Cryptography; using Microsoft.Extensions.Logging.Abstractions; @@ -10,6 +11,7 @@ namespace Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.Configurat /// Represents a configured authenticated encryption mechanism which uses /// Windows CNG algorithms in CBC encryption + HMAC authentication modes. /// + [SupportedOSPlatform("windows")] public sealed class CngCbcAuthenticatedEncryptorConfiguration : AlgorithmConfiguration, IInternalAlgorithmConfiguration { /// diff --git a/src/DataProtection/DataProtection/src/AuthenticatedEncryption/ConfigurationModel/CngCbcAuthenticatedEncryptorDescriptor.cs b/src/DataProtection/DataProtection/src/AuthenticatedEncryption/ConfigurationModel/CngCbcAuthenticatedEncryptorDescriptor.cs index 0003f948ae..2147688366 100644 --- a/src/DataProtection/DataProtection/src/AuthenticatedEncryption/ConfigurationModel/CngCbcAuthenticatedEncryptorDescriptor.cs +++ b/src/DataProtection/DataProtection/src/AuthenticatedEncryption/ConfigurationModel/CngCbcAuthenticatedEncryptorDescriptor.cs @@ -2,6 +2,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Runtime.Versioning; using System.Xml.Linq; namespace Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel @@ -10,6 +11,7 @@ namespace Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.Configurat /// A descriptor which can create an authenticated encryption system based upon the /// configuration provided by an object. /// + [SupportedOSPlatform("windows")] public sealed class CngCbcAuthenticatedEncryptorDescriptor : IAuthenticatedEncryptorDescriptor { public CngCbcAuthenticatedEncryptorDescriptor(CngCbcAuthenticatedEncryptorConfiguration configuration, ISecret masterKey) diff --git a/src/DataProtection/DataProtection/src/AuthenticatedEncryption/ConfigurationModel/CngCbcAuthenticatedEncryptorDescriptorDeserializer.cs b/src/DataProtection/DataProtection/src/AuthenticatedEncryption/ConfigurationModel/CngCbcAuthenticatedEncryptorDescriptorDeserializer.cs index 534604839a..ae428e0ce2 100644 --- a/src/DataProtection/DataProtection/src/AuthenticatedEncryption/ConfigurationModel/CngCbcAuthenticatedEncryptorDescriptorDeserializer.cs +++ b/src/DataProtection/DataProtection/src/AuthenticatedEncryption/ConfigurationModel/CngCbcAuthenticatedEncryptorDescriptorDeserializer.cs @@ -2,6 +2,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Runtime.Versioning; using System.Xml.Linq; namespace Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel @@ -10,6 +11,7 @@ namespace Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.Configurat /// A class that can deserialize an that represents the serialized version /// of an . /// + [SupportedOSPlatform("windows")] public sealed class CngCbcAuthenticatedEncryptorDescriptorDeserializer : IAuthenticatedEncryptorDescriptorDeserializer { /// diff --git a/src/DataProtection/DataProtection/src/AuthenticatedEncryption/ConfigurationModel/CngGcmAuthenticatedEncryptorConfiguration.cs b/src/DataProtection/DataProtection/src/AuthenticatedEncryption/ConfigurationModel/CngGcmAuthenticatedEncryptorConfiguration.cs index d9c1f84718..fa39bcc260 100644 --- a/src/DataProtection/DataProtection/src/AuthenticatedEncryption/ConfigurationModel/CngGcmAuthenticatedEncryptorConfiguration.cs +++ b/src/DataProtection/DataProtection/src/AuthenticatedEncryption/ConfigurationModel/CngGcmAuthenticatedEncryptorConfiguration.cs @@ -1,6 +1,7 @@ // 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. +using System.Runtime.Versioning; using Microsoft.AspNetCore.Cryptography; using Microsoft.Extensions.Logging.Abstractions; @@ -10,6 +11,7 @@ namespace Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.Configurat /// Represents a configured authenticated encryption mechanism which uses /// Windows CNG algorithms in GCM encryption + authentication modes. /// + [SupportedOSPlatform("windows")] public sealed class CngGcmAuthenticatedEncryptorConfiguration : AlgorithmConfiguration, IInternalAlgorithmConfiguration { /// diff --git a/src/DataProtection/DataProtection/src/AuthenticatedEncryption/ConfigurationModel/CngGcmAuthenticatedEncryptorDescriptor.cs b/src/DataProtection/DataProtection/src/AuthenticatedEncryption/ConfigurationModel/CngGcmAuthenticatedEncryptorDescriptor.cs index 28c0103a95..a2184c0e62 100644 --- a/src/DataProtection/DataProtection/src/AuthenticatedEncryption/ConfigurationModel/CngGcmAuthenticatedEncryptorDescriptor.cs +++ b/src/DataProtection/DataProtection/src/AuthenticatedEncryption/ConfigurationModel/CngGcmAuthenticatedEncryptorDescriptor.cs @@ -2,8 +2,8 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Runtime.Versioning; using System.Xml.Linq; -using Microsoft.Extensions.Logging; namespace Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel { @@ -11,6 +11,7 @@ namespace Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.Configurat /// A descriptor which can create an authenticated encryption system based upon the /// configuration provided by an object. /// + [SupportedOSPlatform("windows")] public sealed class CngGcmAuthenticatedEncryptorDescriptor : IAuthenticatedEncryptorDescriptor { public CngGcmAuthenticatedEncryptorDescriptor(CngGcmAuthenticatedEncryptorConfiguration configuration, ISecret masterKey) diff --git a/src/DataProtection/DataProtection/src/AuthenticatedEncryption/ConfigurationModel/CngGcmAuthenticatedEncryptorDescriptorDeserializer.cs b/src/DataProtection/DataProtection/src/AuthenticatedEncryption/ConfigurationModel/CngGcmAuthenticatedEncryptorDescriptorDeserializer.cs index 0981fb55af..b46c61e459 100644 --- a/src/DataProtection/DataProtection/src/AuthenticatedEncryption/ConfigurationModel/CngGcmAuthenticatedEncryptorDescriptorDeserializer.cs +++ b/src/DataProtection/DataProtection/src/AuthenticatedEncryption/ConfigurationModel/CngGcmAuthenticatedEncryptorDescriptorDeserializer.cs @@ -2,6 +2,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Runtime.Versioning; using System.Xml.Linq; namespace Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel @@ -10,6 +11,7 @@ namespace Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.Configurat /// A class that can deserialize an that represents the serialized version /// of an . /// + [SupportedOSPlatform("windows")] public sealed class CngGcmAuthenticatedEncryptorDescriptorDeserializer : IAuthenticatedEncryptorDescriptorDeserializer { diff --git a/src/DataProtection/DataProtection/src/DataProtectionBuilderExtensions.cs b/src/DataProtection/DataProtection/src/DataProtectionBuilderExtensions.cs index e6618bd535..bc10fc166e 100644 --- a/src/DataProtection/DataProtection/src/DataProtectionBuilderExtensions.cs +++ b/src/DataProtection/DataProtection/src/DataProtectionBuilderExtensions.cs @@ -529,6 +529,7 @@ namespace Microsoft.AspNetCore.DataProtection /// This API is only available on Windows. /// [EditorBrowsable(EditorBrowsableState.Advanced)] + [SupportedOSPlatform("windows")] public static IDataProtectionBuilder UseCustomCryptographicAlgorithms(this IDataProtectionBuilder builder, CngCbcAuthenticatedEncryptorConfiguration configuration) { if (builder == null) @@ -557,6 +558,7 @@ namespace Microsoft.AspNetCore.DataProtection /// This API is only available on Windows. /// [EditorBrowsable(EditorBrowsableState.Advanced)] + [SupportedOSPlatform("windows")] public static IDataProtectionBuilder UseCustomCryptographicAlgorithms(this IDataProtectionBuilder builder, CngGcmAuthenticatedEncryptorConfiguration configuration) { if (builder == null) diff --git a/src/DataProtection/DataProtection/src/EphemeralDataProtectionProvider.cs b/src/DataProtection/DataProtection/src/EphemeralDataProtectionProvider.cs index 587b0ebfd4..70860e3b06 100644 --- a/src/DataProtection/DataProtection/src/EphemeralDataProtectionProvider.cs +++ b/src/DataProtection/DataProtection/src/EphemeralDataProtectionProvider.cs @@ -2,6 +2,8 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Diagnostics; +using System.Runtime.InteropServices; using Microsoft.AspNetCore.Cryptography.Cng; using Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption; using Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel; @@ -102,6 +104,8 @@ namespace Microsoft.AspNetCore.DataProtection var configuration = new T(); if (configuration is CngGcmAuthenticatedEncryptorConfiguration) { + Debug.Assert(RuntimeInformation.IsOSPlatform(OSPlatform.Windows)); + var descriptor = (CngGcmAuthenticatedEncryptorDescriptor)new T().CreateNewDescriptor(); return new CngGcmAuthenticatedEncryptorFactory(loggerFactory) .CreateAuthenticatedEncryptorInstance( diff --git a/src/DataProtection/DataProtection/src/Microsoft.AspNetCore.DataProtection.csproj b/src/DataProtection/DataProtection/src/Microsoft.AspNetCore.DataProtection.csproj index 520a9f4745..ad035d5c67 100644 --- a/src/DataProtection/DataProtection/src/Microsoft.AspNetCore.DataProtection.csproj +++ b/src/DataProtection/DataProtection/src/Microsoft.AspNetCore.DataProtection.csproj @@ -15,7 +15,7 @@ + Condition="'$(TargetFramework)' != '$(DefaultNetCoreTargetFramework)'" /> diff --git a/src/Shared/PlatformAttributes.cs b/src/Shared/PlatformAttributes.cs index 0d44154118..253014480d 100644 --- a/src/Shared/PlatformAttributes.cs +++ b/src/Shared/PlatformAttributes.cs @@ -78,10 +78,6 @@ namespace System.Runtime.Versioning /// /// Marks APIs that were removed in a given operating system version. /// - /// - /// Primarily used by OS bindings to indicate APIs that are only available in - /// earlier versions. - /// [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Constructor | From c1b0fb576585e0a0b77057a393c27bf879f9830a Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 11 Sep 2020 22:59:01 +0000 Subject: [PATCH 105/187] Update dependencies from https://github.com/dotnet/efcore build 20200911.2 (#25824) [release/5.0-rc2] Update dependencies from dotnet/efcore --- eng/Version.Details.xml | 32 ++++++++++++++++---------------- eng/Versions.props | 16 ++++++++-------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index f90f6549d7..3b0d3910a7 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -13,37 +13,37 @@ https://github.com/dotnet/blazor cc449601d638ffaab58ae9487f0fd010bb178a12 - + https://github.com/dotnet/efcore - 844587e14662b8d4178cc99899d90a4e387e43a9 + 3eeb676b39ac74802ad1e806d0956df14a7955e8 - + https://github.com/dotnet/efcore - 844587e14662b8d4178cc99899d90a4e387e43a9 + 3eeb676b39ac74802ad1e806d0956df14a7955e8 - + https://github.com/dotnet/efcore - 844587e14662b8d4178cc99899d90a4e387e43a9 + 3eeb676b39ac74802ad1e806d0956df14a7955e8 - + https://github.com/dotnet/efcore - 844587e14662b8d4178cc99899d90a4e387e43a9 + 3eeb676b39ac74802ad1e806d0956df14a7955e8 - + https://github.com/dotnet/efcore - 844587e14662b8d4178cc99899d90a4e387e43a9 + 3eeb676b39ac74802ad1e806d0956df14a7955e8 - + https://github.com/dotnet/efcore - 844587e14662b8d4178cc99899d90a4e387e43a9 + 3eeb676b39ac74802ad1e806d0956df14a7955e8 - + https://github.com/dotnet/efcore - 844587e14662b8d4178cc99899d90a4e387e43a9 + 3eeb676b39ac74802ad1e806d0956df14a7955e8 - + https://github.com/dotnet/efcore - 844587e14662b8d4178cc99899d90a4e387e43a9 + 3eeb676b39ac74802ad1e806d0956df14a7955e8 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index bb6023c253..4fb3070112 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -135,14 +135,14 @@ 3.2.0 - 5.0.0-rc.2.20461.1 - 5.0.0-rc.2.20461.1 - 5.0.0-rc.2.20461.1 - 5.0.0-rc.2.20461.1 - 5.0.0-rc.2.20461.1 - 5.0.0-rc.2.20461.1 - 5.0.0-rc.2.20461.1 - 5.0.0-rc.2.20461.1 + 5.0.0-rc.2.20461.2 + 5.0.0-rc.2.20461.2 + 5.0.0-rc.2.20461.2 + 5.0.0-rc.2.20461.2 + 5.0.0-rc.2.20461.2 + 5.0.0-rc.2.20461.2 + 5.0.0-rc.2.20461.2 + 5.0.0-rc.2.20461.2 5.0.0-beta.20459.8 From b5515a8dac36f1b4d44062f5d3167a00cd884b15 Mon Sep 17 00:00:00 2001 From: Chris Ross Date: Fri, 11 Sep 2020 11:40:25 -0700 Subject: [PATCH 106/187] IIS: Identify if a request has a body (#25381) --- .../Core/IISHttpContext.FeatureCollection.cs | 3 + .../IIS/src/Core/IISHttpContext.Features.cs | 16 + .../IIS/IIS/src/Core/IISHttpContext.cs | 17 + .../Inprocess/Http2Tests.cs | 348 ++++++++++++++++++ .../testassets/InProcessWebSite/Helpers.cs | 20 + .../testassets/InProcessWebSite/Startup.cs | 72 +++- 6 files changed, 474 insertions(+), 2 deletions(-) create mode 100644 src/Servers/IIS/IIS/test/Common.FunctionalTests/Inprocess/Http2Tests.cs create mode 100644 src/Servers/IIS/IIS/test/testassets/InProcessWebSite/Helpers.cs diff --git a/src/Servers/IIS/IIS/src/Core/IISHttpContext.FeatureCollection.cs b/src/Servers/IIS/IIS/src/Core/IISHttpContext.FeatureCollection.cs index b7dafbcdfa..1fab0f694a 100644 --- a/src/Servers/IIS/IIS/src/Core/IISHttpContext.FeatureCollection.cs +++ b/src/Servers/IIS/IIS/src/Core/IISHttpContext.FeatureCollection.cs @@ -24,6 +24,7 @@ namespace Microsoft.AspNetCore.Server.IIS.Core { internal partial class IISHttpContext : IFeatureCollection, IHttpRequestFeature, + IHttpRequestBodyDetectionFeature, IHttpResponseFeature, IHttpResponseBodyFeature, IHttpUpgradeFeature, @@ -141,6 +142,8 @@ namespace Microsoft.AspNetCore.Server.IIS.Core set => RequestBody = value; } + bool IHttpRequestBodyDetectionFeature.CanHaveBody => RequestCanHaveBody; + int IHttpResponseFeature.StatusCode { get => StatusCode; diff --git a/src/Servers/IIS/IIS/src/Core/IISHttpContext.Features.cs b/src/Servers/IIS/IIS/src/Core/IISHttpContext.Features.cs index e918e18f84..96ba463889 100644 --- a/src/Servers/IIS/IIS/src/Core/IISHttpContext.Features.cs +++ b/src/Servers/IIS/IIS/src/Core/IISHttpContext.Features.cs @@ -9,6 +9,7 @@ namespace Microsoft.AspNetCore.Server.IIS.Core internal partial class IISHttpContext { private static readonly Type IHttpRequestFeatureType = typeof(global::Microsoft.AspNetCore.Http.Features.IHttpRequestFeature); + private static readonly Type IHttpRequestBodyDetectionFeature = typeof(global::Microsoft.AspNetCore.Http.Features.IHttpRequestBodyDetectionFeature); private static readonly Type IHttpResponseFeatureType = typeof(global::Microsoft.AspNetCore.Http.Features.IHttpResponseFeature); private static readonly Type IHttpResponseBodyFeatureType = typeof(global::Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature); private static readonly Type IHttpRequestIdentifierFeatureType = typeof(global::Microsoft.AspNetCore.Http.Features.IHttpRequestIdentifierFeature); @@ -32,6 +33,7 @@ namespace Microsoft.AspNetCore.Server.IIS.Core private static readonly Type IHttpResetFeature = typeof(global::Microsoft.AspNetCore.Http.Features.IHttpResetFeature); private object _currentIHttpRequestFeature; + private object _currentIHttpRequestBodyDetectionFeature; private object _currentIHttpResponseFeature; private object _currentIHttpResponseBodyFeature; private object _currentIHttpRequestIdentifierFeature; @@ -56,6 +58,7 @@ namespace Microsoft.AspNetCore.Server.IIS.Core private void Initialize() { _currentIHttpRequestFeature = this; + _currentIHttpRequestBodyDetectionFeature = this; _currentIHttpResponseFeature = this; _currentIHttpResponseBodyFeature = this; _currentIHttpUpgradeFeature = this; @@ -77,6 +80,10 @@ namespace Microsoft.AspNetCore.Server.IIS.Core { return _currentIHttpRequestFeature; } + if (key == IHttpRequestBodyDetectionFeature) + { + return _currentIHttpRequestBodyDetectionFeature; + } if (key == IHttpResponseFeatureType) { return _currentIHttpResponseFeature; @@ -174,6 +181,11 @@ namespace Microsoft.AspNetCore.Server.IIS.Core _currentIHttpRequestFeature = feature; return; } + if (key == IHttpRequestBodyDetectionFeature) + { + _currentIHttpRequestBodyDetectionFeature = feature; + return; + } if (key == IHttpResponseFeatureType) { _currentIHttpResponseFeature = feature; @@ -284,6 +296,10 @@ namespace Microsoft.AspNetCore.Server.IIS.Core { yield return new KeyValuePair(IHttpRequestFeatureType, _currentIHttpRequestFeature as global::Microsoft.AspNetCore.Http.Features.IHttpRequestFeature); } + if (_currentIHttpRequestBodyDetectionFeature != null) + { + yield return new KeyValuePair(IHttpRequestBodyDetectionFeature, _currentIHttpRequestBodyDetectionFeature as global::Microsoft.AspNetCore.Http.Features.IHttpRequestBodyDetectionFeature); + } if (_currentIHttpResponseFeature != null) { yield return new KeyValuePair(IHttpResponseFeatureType, _currentIHttpResponseFeature as global::Microsoft.AspNetCore.Http.Features.IHttpResponseFeature); diff --git a/src/Servers/IIS/IIS/src/Core/IISHttpContext.cs b/src/Servers/IIS/IIS/src/Core/IISHttpContext.cs index cded2c724f..17796ae354 100644 --- a/src/Servers/IIS/IIS/src/Core/IISHttpContext.cs +++ b/src/Servers/IIS/IIS/src/Core/IISHttpContext.cs @@ -108,6 +108,7 @@ namespace Microsoft.AspNetCore.Server.IIS.Core public string TraceIdentifier { get; set; } public ClaimsPrincipal User { get; set; } internal WindowsPrincipal WindowsUser { get; set; } + internal bool RequestCanHaveBody { get; private set; } public Stream RequestBody { get; set; } public Stream ResponseBody { get; set; } public PipeWriter ResponsePipeWrapper { get; set; } @@ -165,6 +166,8 @@ namespace Microsoft.AspNetCore.Server.IIS.Core RequestHeaders = new RequestHeaders(this); HttpResponseHeaders = new HeaderCollection(); ResponseHeaders = HttpResponseHeaders; + // Request headers can be modified by the app, read these first. + RequestCanHaveBody = CheckRequestCanHaveBody(); if (_options.ForwardWindowsAuthentication) { @@ -250,6 +253,20 @@ namespace Microsoft.AspNetCore.Server.IIS.Core internal IISHttpServer Server => _server; + private bool CheckRequestCanHaveBody() + { + // Http/1.x requests with bodies require either a Content-Length or Transfer-Encoding header. + // Note Http.Sys adds the Transfer-Encoding: chunked header to HTTP/2 requests with bodies for back compat. + // Transfer-Encoding takes priority over Content-Length. + string transferEncoding = RequestHeaders[HttpKnownHeaderNames.TransferEncoding]; + if (string.Equals("chunked", transferEncoding?.Trim(), StringComparison.OrdinalIgnoreCase)) + { + return true; + } + + return RequestHeaders.ContentLength.GetValueOrDefault() > 0; + } + private async Task InitializeResponse(bool flushHeaders) { await FireOnStarting(); diff --git a/src/Servers/IIS/IIS/test/Common.FunctionalTests/Inprocess/Http2Tests.cs b/src/Servers/IIS/IIS/test/Common.FunctionalTests/Inprocess/Http2Tests.cs new file mode 100644 index 0000000000..d6371821a1 --- /dev/null +++ b/src/Servers/IIS/IIS/test/Common.FunctionalTests/Inprocess/Http2Tests.cs @@ -0,0 +1,348 @@ +// 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. + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http; +using System.Text; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Http2Cat; +using Microsoft.AspNetCore.Server.IIS.FunctionalTests.Utilities; +using Microsoft.AspNetCore.Server.IntegrationTesting.Common; +using Microsoft.AspNetCore.Server.IntegrationTesting.IIS; +using Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2; +using Microsoft.AspNetCore.Testing; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; +using Microsoft.Net.Http.Headers; +using Xunit; + +namespace Microsoft.AspNetCore.Server.IIS.FunctionalTests.InProcess +{ + [Collection(PublishedSitesCollection.Name)] + public class Http2Tests : IISFunctionalTestBase + { + // TODO: Remove when the regression is fixed. + // https://github.com/dotnet/aspnetcore/issues/23164#issuecomment-652646163 + private static readonly Version Win10_Regressed_DataFrame = new Version(10, 0, 20145, 0); + + public static readonly IEnumerable> Headers = new[] + { + new KeyValuePair(HeaderNames.Method, "GET"), + new KeyValuePair(HeaderNames.Scheme, "https"), + new KeyValuePair(HeaderNames.Authority, "localhost:443"), + new KeyValuePair("user-agent", "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:54.0) Gecko/20100101 Firefox/54.0"), + new KeyValuePair("accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"), + new KeyValuePair("accept-language", "en-US,en;q=0.5"), + new KeyValuePair("accept-encoding", "gzip, deflate, br"), + new KeyValuePair("upgrade-insecure-requests", "1"), + }; + + public Http2Tests(PublishedSitesFixture fixture) : base(fixture) + { + } + + [ConditionalTheory] + [InlineData("GET")] + [InlineData("HEAD")] + [InlineData("PATCH")] + [InlineData("DELETE")] + [InlineData("CUSTOM")] + [MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win10, SkipReason = "Http2 requires Win10")] + public async Task Http2_MethodsRequestWithoutData_Success(string method) + { + var deploymentParameters = GetHttpsDeploymentParameters(); + var deploymentResult = await DeployAsync(deploymentParameters); + + await new HostBuilder() + .UseHttp2Cat(deploymentResult.ApplicationBaseUri, async h2Connection => + { + await h2Connection.InitializeConnectionAsync(); + + h2Connection.Logger.LogInformation("Initialized http2 connection. Starting stream 1."); + + var headers = new[] + { + new KeyValuePair(HeaderNames.Method, method), + new KeyValuePair(HeaderNames.Path, "/Http2_MethodsRequestWithoutData_Success"), + new KeyValuePair(HeaderNames.Scheme, "https"), + new KeyValuePair(HeaderNames.Authority, "localhost:443"), + }; + + await h2Connection.StartStreamAsync(1, headers, endStream: true); + + await h2Connection.ReceiveHeadersAsync(1, decodedHeaders => + { + Assert.Equal("200", decodedHeaders[HeaderNames.Status]); + }); + + var dataFrame = await h2Connection.ReceiveFrameAsync(); + if (Environment.OSVersion.Version >= Win10_Regressed_DataFrame) + { + // TODO: Remove when the regression is fixed. + // https://github.com/dotnet/aspnetcore/issues/23164#issuecomment-652646163 + Http2Utilities.VerifyDataFrame(dataFrame, 1, endOfStream: false, length: 0); + + dataFrame = await h2Connection.ReceiveFrameAsync(); + } + Http2Utilities.VerifyDataFrame(dataFrame, 1, endOfStream: true, length: 0); + + h2Connection.Logger.LogInformation("Connection stopped."); + }) + .Build().RunAsync(); + } + + [ConditionalTheory] + [InlineData("POST")] + [InlineData("PUT")] + [MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win10, SkipReason = "Http2 requires Win10")] + public async Task Http2_PostRequestWithoutData_LengthRequired(string method) + { + var deploymentParameters = GetHttpsDeploymentParameters(); + var deploymentResult = await DeployAsync(deploymentParameters); + + await new HostBuilder() + .UseHttp2Cat(deploymentResult.ApplicationBaseUri, async h2Connection => + { + await h2Connection.InitializeConnectionAsync(); + + h2Connection.Logger.LogInformation("Initialized http2 connection. Starting stream 1."); + + var headers = new[] + { + new KeyValuePair(HeaderNames.Method, method), + new KeyValuePair(HeaderNames.Path, "/"), + new KeyValuePair(HeaderNames.Scheme, "https"), + new KeyValuePair(HeaderNames.Authority, "localhost:443"), + }; + + await h2Connection.StartStreamAsync(1, headers, endStream: true); + + await h2Connection.ReceiveHeadersAsync(1, decodedHeaders => + { + Assert.Equal("411", decodedHeaders[HeaderNames.Status]); + }); + + var dataFrame = await h2Connection.ReceiveFrameAsync(); + Http2Utilities.VerifyDataFrame(dataFrame, 1, endOfStream: false, length: 344); + dataFrame = await h2Connection.ReceiveFrameAsync(); + Http2Utilities.VerifyDataFrame(dataFrame, 1, endOfStream: true, length: 0); + + h2Connection.Logger.LogInformation("Connection stopped."); + }) + .Build().RunAsync(); + } + + [ConditionalTheory] + [InlineData("GET")] + // [InlineData("HEAD")] Reset with code HTTP_1_1_REQUIRED + [InlineData("POST")] + [InlineData("PUT")] + [InlineData("PATCH")] + [InlineData("DELETE")] + [InlineData("CUSTOM")] + [MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win10_20H1, SkipReason = "Http2 requires Win10, and older versions of Win10 send some odd empty data frames.")] + public async Task Http2_RequestWithDataAndContentLength_Success(string method) + { + var deploymentParameters = GetHttpsDeploymentParameters(); + var deploymentResult = await DeployAsync(deploymentParameters); + + await new HostBuilder() + .UseHttp2Cat(deploymentResult.ApplicationBaseUri, async h2Connection => + { + await h2Connection.InitializeConnectionAsync(); + + h2Connection.Logger.LogInformation("Initialized http2 connection. Starting stream 1."); + + var headers = new[] + { + new KeyValuePair(HeaderNames.Method, method), + new KeyValuePair(HeaderNames.Path, "/Http2_RequestWithDataAndContentLength_Success"), + new KeyValuePair(HeaderNames.Scheme, "https"), + new KeyValuePair(HeaderNames.Authority, "localhost:443"), + new KeyValuePair(HeaderNames.ContentLength, "11"), + }; + + await h2Connection.StartStreamAsync(1, headers, endStream: false); + + await h2Connection.SendDataAsync(1, Encoding.UTF8.GetBytes("Hello World"), endStream: true); + + // Http.Sys no longer sends a window update here on later versions. + if (Environment.OSVersion.Version < new Version(10, 0, 19041, 0)) + { + var windowUpdate = await h2Connection.ReceiveFrameAsync(); + Assert.Equal(Http2FrameType.WINDOW_UPDATE, windowUpdate.Type); + } + + await h2Connection.ReceiveHeadersAsync(1, decodedHeaders => + { + Assert.Equal("200", decodedHeaders[HeaderNames.Status]); + }); + + var dataFrame = await h2Connection.ReceiveFrameAsync(); + Assert.Equal(Http2FrameType.DATA, dataFrame.Type); + Assert.Equal(1, dataFrame.StreamId); + + // Some versions send an empty data frame first. + if (dataFrame.PayloadLength == 0) + { + Assert.False(dataFrame.DataEndStream); + dataFrame = await h2Connection.ReceiveFrameAsync(); + Assert.Equal(Http2FrameType.DATA, dataFrame.Type); + Assert.Equal(1, dataFrame.StreamId); + } + + Assert.Equal(11, dataFrame.PayloadLength); + Assert.Equal("Hello World", Encoding.UTF8.GetString(dataFrame.Payload.Span)); + + if (!dataFrame.DataEndStream) + { + dataFrame = await h2Connection.ReceiveFrameAsync(); + Http2Utilities.VerifyDataFrame(dataFrame, 1, endOfStream: true, length: 0); + } + + h2Connection.Logger.LogInformation("Connection stopped."); + }) + .Build().RunAsync(); + } + + [ConditionalTheory] + [InlineData("GET")] + // [InlineData("HEAD")] Reset with code HTTP_1_1_REQUIRED + [InlineData("POST")] + [InlineData("PUT")] + [InlineData("PATCH")] + [InlineData("DELETE")] + [InlineData("CUSTOM")] + [MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win10_20H1, SkipReason = "Http2 requires Win10, and older versions of Win10 send some odd empty data frames.")] + public async Task Http2_RequestWithDataAndNoContentLength_Success(string method) + { + var deploymentParameters = GetHttpsDeploymentParameters(); + var deploymentResult = await DeployAsync(deploymentParameters); + + await new HostBuilder() + .UseHttp2Cat(deploymentResult.ApplicationBaseUri, async h2Connection => + { + await h2Connection.InitializeConnectionAsync(); + + h2Connection.Logger.LogInformation("Initialized http2 connection. Starting stream 1."); + + var headers = new[] + { + new KeyValuePair(HeaderNames.Method, method), + new KeyValuePair(HeaderNames.Path, "/Http2_RequestWithDataAndNoContentLength_Success"), + new KeyValuePair(HeaderNames.Scheme, "https"), + new KeyValuePair(HeaderNames.Authority, "localhost:443"), + }; + + await h2Connection.StartStreamAsync(1, headers, endStream: false); + + await h2Connection.SendDataAsync(1, Encoding.UTF8.GetBytes("Hello World"), endStream: true); + + // Http.Sys no longer sends a window update here on later versions. + if (Environment.OSVersion.Version < new Version(10, 0, 19041, 0)) + { + var windowUpdate = await h2Connection.ReceiveFrameAsync(); + Assert.Equal(Http2FrameType.WINDOW_UPDATE, windowUpdate.Type); + } + + await h2Connection.ReceiveHeadersAsync(1, decodedHeaders => + { + Assert.Equal("200", decodedHeaders[HeaderNames.Status]); + }); + + var dataFrame = await h2Connection.ReceiveFrameAsync(); + Assert.Equal(Http2FrameType.DATA, dataFrame.Type); + Assert.Equal(1, dataFrame.StreamId); + + // Some versions send an empty data frame first. + if (dataFrame.PayloadLength == 0) + { + Assert.False(dataFrame.DataEndStream); + dataFrame = await h2Connection.ReceiveFrameAsync(); + Assert.Equal(Http2FrameType.DATA, dataFrame.Type); + Assert.Equal(1, dataFrame.StreamId); + } + + Assert.Equal(11, dataFrame.PayloadLength); + Assert.Equal("Hello World", Encoding.UTF8.GetString(dataFrame.Payload.Span)); + + if (!dataFrame.DataEndStream) + { + dataFrame = await h2Connection.ReceiveFrameAsync(); + Http2Utilities.VerifyDataFrame(dataFrame, 1, endOfStream: true, length: 0); + } + + h2Connection.Logger.LogInformation("Connection stopped."); + }) + .Build().RunAsync(); + } + + [ConditionalFact] + [MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win10_20H1, SkipReason = "Http2 requires Win10, and older versions of Win10 send some odd empty data frames.")] + public async Task Http2_ResponseWithData_Success() + { + var deploymentParameters = GetHttpsDeploymentParameters(); + var deploymentResult = await DeployAsync(deploymentParameters); + + await new HostBuilder() + .UseHttp2Cat(deploymentResult.ApplicationBaseUri, async h2Connection => + { + await h2Connection.InitializeConnectionAsync(); + + h2Connection.Logger.LogInformation("Initialized http2 connection. Starting stream 1."); + + await h2Connection.StartStreamAsync(1, GetHeaders("/Http2_ResponseWithData_Success"), endStream: true); + + await h2Connection.ReceiveHeadersAsync(1, decodedHeaders => + { + Assert.Equal("200", decodedHeaders[HeaderNames.Status]); + }); + + var dataFrame = await h2Connection.ReceiveFrameAsync(); + Assert.Equal(Http2FrameType.DATA, dataFrame.Type); + Assert.Equal(1, dataFrame.StreamId); + + // Some versions send an empty data frame first. + if (dataFrame.PayloadLength == 0) + { + Assert.False(dataFrame.DataEndStream); + dataFrame = await h2Connection.ReceiveFrameAsync(); + Assert.Equal(Http2FrameType.DATA, dataFrame.Type); + Assert.Equal(1, dataFrame.StreamId); + } + + Assert.Equal(11, dataFrame.PayloadLength); + Assert.Equal("Hello World", Encoding.UTF8.GetString(dataFrame.Payload.Span)); + + if (!dataFrame.DataEndStream) + { + dataFrame = await h2Connection.ReceiveFrameAsync(); + Http2Utilities.VerifyDataFrame(dataFrame, 1, endOfStream: true, length: 0); + } + + h2Connection.Logger.LogInformation("Connection stopped."); + }) + .Build().RunAsync(); + } + + private static List> GetHeaders(string path) + { + var headers = Headers.ToList(); + + var kvp = new KeyValuePair(HeaderNames.Path, path); + headers.Add(kvp); + return headers; + } + + private IISDeploymentParameters GetHttpsDeploymentParameters() + { + var port = TestPortHelper.GetNextSSLPort(); + var deploymentParameters = Fixture.GetBaseDeploymentParameters(); + deploymentParameters.ApplicationBaseUriHint = $"https://localhost:{port}/"; + deploymentParameters.AddHttpsToServerConfig(); + return deploymentParameters; + } + } +} diff --git a/src/Servers/IIS/IIS/test/testassets/InProcessWebSite/Helpers.cs b/src/Servers/IIS/IIS/test/testassets/InProcessWebSite/Helpers.cs new file mode 100644 index 0000000000..4b7dd0b81f --- /dev/null +++ b/src/Servers/IIS/IIS/test/testassets/InProcessWebSite/Helpers.cs @@ -0,0 +1,20 @@ +// 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. + +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http.Features; + +namespace TestSite +{ + public static class Helpers + { + internal static bool? CanHaveBody(this HttpRequest request) + { +#if FORWARDCOMPAT + return null; +#else + return request.HttpContext.Features.Get()?.CanHaveBody; +#endif + } + } +} diff --git a/src/Servers/IIS/IIS/test/testassets/InProcessWebSite/Startup.cs b/src/Servers/IIS/IIS/test/testassets/InProcessWebSite/Startup.cs index 0d23030f82..7f963a7a52 100644 --- a/src/Servers/IIS/IIS/test/testassets/InProcessWebSite/Startup.cs +++ b/src/Servers/IIS/IIS/test/testassets/InProcessWebSite/Startup.cs @@ -28,7 +28,6 @@ using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Primitives; using Microsoft.Net.Http.Headers; using Xunit; -using HttpFeatures = Microsoft.AspNetCore.Http.Features; namespace TestSite { @@ -470,6 +469,9 @@ namespace TestSite private async Task ReadRequestBody(HttpContext ctx) { +#if !FORWARDCOMPAT + Assert.True(ctx.Request.CanHaveBody()); +#endif var readBuffer = new byte[1]; var result = await ctx.Request.Body.ReadAsync(readBuffer, 0, 1); while (result != 0) @@ -480,6 +482,9 @@ namespace TestSite private async Task ReadRequestBodyLarger(HttpContext ctx) { +#if !FORWARDCOMPAT + Assert.True(ctx.Request.CanHaveBody()); +#endif var readBuffer = new byte[4096]; var result = await ctx.Request.Body.ReadAsync(readBuffer, 0, 4096); while (result != 0) @@ -515,6 +520,9 @@ namespace TestSite private async Task ReadFullBody(HttpContext ctx) { +#if !FORWARDCOMPAT + Assert.True(ctx.Request.CanHaveBody()); +#endif await ReadRequestBody(ctx); ctx.Response.ContentLength = 9; await ctx.Response.WriteAsync("Completed"); @@ -530,6 +538,9 @@ namespace TestSite private async Task ReadAndWriteEcho(HttpContext ctx) { +#if !FORWARDCOMPAT + Assert.True(ctx.Request.CanHaveBody()); +#endif var readBuffer = new byte[4096]; var result = await ctx.Request.Body.ReadAsync(readBuffer, 0, readBuffer.Length); while (result != 0) @@ -540,6 +551,9 @@ namespace TestSite } private async Task ReadAndFlushEcho(HttpContext ctx) { +#if !FORWARDCOMPAT + Assert.True(ctx.Request.CanHaveBody()); +#endif var readBuffer = new byte[4096]; var result = await ctx.Request.Body.ReadAsync(readBuffer, 0, readBuffer.Length); while (result != 0) @@ -552,6 +566,9 @@ namespace TestSite private async Task ReadAndWriteEchoLines(HttpContext ctx) { +#if !FORWARDCOMPAT + Assert.True(ctx.Request.CanHaveBody()); +#endif if (ctx.Request.Headers.TryGetValue("Response-Content-Type", out var contentType)) { ctx.Response.ContentType = contentType; @@ -581,6 +598,7 @@ namespace TestSite #else var feature = ctx.Features.Get(); feature.DisableBuffering(); + Assert.True(ctx.Request.CanHaveBody()); #endif if (ctx.Request.Headers.TryGetValue("Response-Content-Type", out var contentType)) @@ -605,6 +623,9 @@ namespace TestSite private async Task ReadPartialBody(HttpContext ctx) { +#if !FORWARDCOMPAT + Assert.True(ctx.Request.CanHaveBody()); +#endif var data = new byte[5]; var count = 0; do @@ -655,6 +676,9 @@ namespace TestSite private async Task ReadAndWriteCopyToAsync(HttpContext ctx) { +#if !FORWARDCOMPAT + Assert.True(ctx.Request.CanHaveBody()); +#endif await ctx.Request.Body.CopyToAsync(ctx.Response.Body); } @@ -1313,6 +1337,10 @@ namespace TestSite var feature = httpContext.Features.Get(); Assert.NotNull(feature); +#if !FORWARDCOMPAT + Assert.True(httpContext.Request.CanHaveBody()); +#endif + var read = await httpContext.Request.Body.ReadAsync(new byte[10], 0, 10); Assert.Equal(10, read); @@ -1454,6 +1482,46 @@ namespace TestSite await Assert.ThrowsAsync(() => readTask); } + public Task Http2_MethodsRequestWithoutData_Success(HttpContext httpContext) + { + Assert.Equal("HTTP/2", httpContext.Request.Protocol); +#if !FORWARDCOMPAT + Assert.False(httpContext.Request.CanHaveBody()); +#endif + Assert.Null(httpContext.Request.ContentLength); + Assert.False(httpContext.Request.Headers.ContainsKey(HeaderNames.TransferEncoding)); + return Task.CompletedTask; + } + + public Task Http2_RequestWithDataAndContentLength_Success(HttpContext httpContext) + { + Assert.Equal("HTTP/2", httpContext.Request.Protocol); +#if !FORWARDCOMPAT + Assert.True(httpContext.Request.CanHaveBody()); +#endif + Assert.Equal(11, httpContext.Request.ContentLength); + Assert.False(httpContext.Request.Headers.ContainsKey(HeaderNames.TransferEncoding)); + return httpContext.Request.Body.CopyToAsync(httpContext.Response.Body); + } + + public Task Http2_RequestWithDataAndNoContentLength_Success(HttpContext httpContext) + { + Assert.Equal("HTTP/2", httpContext.Request.Protocol); +#if !FORWARDCOMPAT + Assert.True(httpContext.Request.CanHaveBody()); +#endif + Assert.Null(httpContext.Request.ContentLength); + // The client didn't send this header, Http.Sys added it for back compat with HTTP/1.1. + Assert.Equal("chunked", httpContext.Request.Headers[HeaderNames.TransferEncoding]); + return httpContext.Request.Body.CopyToAsync(httpContext.Response.Body); + } + + public Task Http2_ResponseWithData_Success(HttpContext httpContext) + { + Assert.Equal("HTTP/2", httpContext.Request.Protocol); + return httpContext.Response.WriteAsync("Hello World"); + } + public Task IncreaseRequestLimit(HttpContext httpContext) { var maxRequestBodySizeFeature = httpContext.Features.Get(); @@ -1498,5 +1566,5 @@ namespace TestSite HeaderNames.ContentEncoding, HeaderNames.ContentType, HeaderNames.ContentRange, HeaderNames.Trailer }; #endif + } } -} From 326507bb01f589439bf5d69fac35d222b1624e43 Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Fri, 11 Sep 2020 19:17:28 -0700 Subject: [PATCH 107/187] Correct `$(SharedFxVersion)` and `$(TargetingPackVersion)` values (#25790) * Correct `$(SharedFxVersion)` and `$(TargetingPackVersion)` values - Ensure `$(SharedFxVersion)` doesn't change in `$(NoSemVer20)` projects - Ignore current project's `$(VersionSuffix)` in `$(TargetingPackVersion)` - Never assume `$(AspNetCoreBaselineVersion)` matches released targeting pack - Stabilize both versions correctly - Use these properties more widely - Remove other mechanisms to get the same values - Reduce use of the `_GetPackageVersionInfo` target - Reduce use of `$(SharedFxVersion)` for the targeting pack nits: - Correct comments about old RTMVersions.csproj project - Fix or remove a few other comments * Do not pass package filenames on Helix command Lines - remove parsing of these command-line arguments from `RuntestOptions` - instead craft the names using passed `$(SharedFxVersion)` - restore `$(DotNetRuntimeSourceFeedKey)` on Helix command line - lost somewhere along the line - correct argument count in runtests.sh - treated 11th argument as both Helix timeout and feed credential - count was messed up somewhere alone the line nits: - update C# syntax in `RuntestOptions` e.g. remove unused `public` setters - sort and group properties and their assignments --- Directory.Build.targets | 12 ++-- eng/Dependencies.props | 2 +- eng/Version.Details.xml | 2 +- eng/Versions.props | 4 +- eng/helix/content/RunTests/RunTestsOptions.cs | 67 +++++++++---------- eng/helix/content/runtests.cmd | 10 +-- eng/helix/content/runtests.sh | 8 +-- eng/targets/Helix.targets | 16 ++--- .../Microsoft.AspNetCore.App.UnitTests.csproj | 18 +---- .../InteropWebsite/Directory.Build.targets | 4 +- .../Infrastructure/GenerateTestProps.targets | 26 +------ .../Infrastructure/GenerateTestProps.targets | 26 +------ .../LoggingBranch/Directory.Build.targets | 4 -- src/SiteExtensions/Sdk/SiteExtension.targets | 4 +- 14 files changed, 66 insertions(+), 137 deletions(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index 58171d37f4..96c4576add 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -36,13 +36,15 @@ $(VersionPrefix)-$(VersionSuffix.Replace('.','-')) $(Version) - $(SiteExtensionPackageVersion) + $(PackageVersion) + $(VersionPrefix) + $(Product) $(SharedFxVersion) Shared Framework - $(TargetingPackVersionPrefix) - $(TargetingPackVersionPrefix)-$(VersionSuffix) + $(SharedFxVersion) + $(TargetingPackVersionPrefix) - $(Product) $(PackageVersion) Shared Framework + $(SiteExtensionPackageVersion) @@ -156,7 +158,7 @@ $(SharedFxVersion) $(SharedFxVersion) - $(SharedFxVersion) + $(TargetingPackVersion) diff --git a/eng/Dependencies.props b/eng/Dependencies.props index c242829120..5fc48ea2c3 100644 --- a/eng/Dependencies.props +++ b/eng/Dependencies.props @@ -73,7 +73,7 @@ and are generated based on the last package release. - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 3b0d3910a7..7e411bdb58 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -241,7 +241,7 @@ https://github.com/dotnet/runtime 7d39776332446d8a84f5d542c80d264fa1cadbe7 - + https://github.com/dotnet/runtime 7d39776332446d8a84f5d542c80d264fa1cadbe7 diff --git a/eng/Versions.props b/eng/Versions.props index 4fb3070112..ba647ca824 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -118,7 +118,7 @@ 5.0.0-rc.2.20461.4 5.0.0-rc.2.20461.4 5.0.0-rc.2.20461.4 - + 5.0.0-rc.2.20461.4 5.0.0-rc.2.20461.4 5.0.0-rc.2.20461.4 @@ -170,7 +170,7 @@ runtime packages for everything else. This is not an issue for assemblies available in Microsoft.NETCore.App.Ref or Microsoft.Extensions.Internal.Transport because it is next to impossible we would service those packages. - System.Security.AccessControl should only be referenced in Dependencies.props and RTMVersions.csproj. Because + System.Security.AccessControl should only be referenced in Dependencies.props and RepoTasks.csproj. Because it's a transitive reference, we reship the ref/ assembly in Microsoft.AspNetCore.App.Ref. dotnet/runtime ships the implementation assemblies in Microsoft.NETCore.App.Runtime.* packages. diff --git a/eng/helix/content/RunTests/RunTestsOptions.cs b/eng/helix/content/RunTests/RunTestsOptions.cs index bd611ef46e..13bd50a80f 100644 --- a/eng/helix/content/RunTests/RunTestsOptions.cs +++ b/eng/helix/content/RunTests/RunTestsOptions.cs @@ -46,16 +46,6 @@ namespace RunTests description: "The version of the EF tool to use") { Argument = new Argument(), Required = true }, - new Option( - aliases: new string[] { "--aspnetruntime" }, - description: "The path to the aspnet runtime nupkg to install") - { Argument = new Argument(), Required = true }, - - new Option( - aliases: new string[] { "--aspnetref" }, - description: "The path to the aspnet ref nupkg to install") - { Argument = new Argument(), Required = true }, - new Option( aliases: new string[] { "--helixTimeout" }, description: "The timeout duration of the Helix job") @@ -63,34 +53,41 @@ namespace RunTests }; var parseResult = command.Parse(args); - var options = new RunTestsOptions(); - options.Target = parseResult.ValueForOption("--target"); - options.RuntimeVersion = parseResult.ValueForOption("--runtime"); - options.HelixQueue = parseResult.ValueForOption("--queue"); - options.Architecture = parseResult.ValueForOption("--arch"); - options.Quarantined = parseResult.ValueForOption("--quarantined"); - options.EfVersion = parseResult.ValueForOption("--ef"); - options.AspNetRuntime = parseResult.ValueForOption("--aspnetruntime"); - options.AspNetRef = parseResult.ValueForOption("--aspnetref"); - options.Timeout = TimeSpan.Parse(parseResult.ValueForOption("--helixTimeout")); - options.HELIX_WORKITEM_ROOT = Environment.GetEnvironmentVariable("HELIX_WORKITEM_ROOT"); - options.Path = Environment.GetEnvironmentVariable("PATH"); - options.DotnetRoot = Environment.GetEnvironmentVariable("DOTNET_ROOT"); + var sharedFxVersion = parseResult.ValueForOption("--runtime"); + var options = new RunTestsOptions + { + Architecture = parseResult.ValueForOption("--arch"), + EfVersion = parseResult.ValueForOption("--ef"), + HelixQueue = parseResult.ValueForOption("--queue"), + Quarantined = parseResult.ValueForOption("--quarantined"), + RuntimeVersion = sharedFxVersion, + Target = parseResult.ValueForOption("--target"), + Timeout = TimeSpan.Parse(parseResult.ValueForOption("--helixTimeout")), + + // When targeting pack builds, it has exactly the same version as the shared framework. + AspNetRef = $"Microsoft.AspNetCore.App.Ref.{sharedFxVersion}.nupkg", + AspNetRuntime = $"Microsoft.AspNetCore.App.Runtime.win-x64.{sharedFxVersion}.nupkg", + + DotnetRoot = Environment.GetEnvironmentVariable("DOTNET_ROOT"), + HELIX_WORKITEM_ROOT = Environment.GetEnvironmentVariable("HELIX_WORKITEM_ROOT"), + Path = Environment.GetEnvironmentVariable("PATH"), + }; + return options; } - public string Target { get; set;} - public string SdkVersion { get; set;} - public string RuntimeVersion { get; set;} - public string AspNetRuntime { get; set;} - public string AspNetRef { get; set;} - public string HelixQueue { get; set;} - public string Architecture { get; set;} - public bool Quarantined { get; set;} - public string EfVersion { get; set;} - public string HELIX_WORKITEM_ROOT { get; set;} - public string DotnetRoot { get; set; } + public string Architecture { get; private set; } + public string EfVersion { get; private set; } + public string HelixQueue { get; private set; } + public bool Quarantined { get; private set; } + public string RuntimeVersion { get; private set; } + public string Target { get; private set; } + public TimeSpan Timeout { get; private set; } + + public string AspNetRef { get; private set; } + public string AspNetRuntime { get; private set; } + public string HELIX_WORKITEM_ROOT { get; private set; } + public string DotnetRoot { get; private set; } public string Path { get; set; } - public TimeSpan Timeout { get; set; } } } diff --git a/eng/helix/content/runtests.cmd b/eng/helix/content/runtests.cmd index 1016d25aad..e8091960aa 100644 --- a/eng/helix/content/runtests.cmd +++ b/eng/helix/content/runtests.cmd @@ -10,12 +10,8 @@ set $queue=%5 set $arch=%6 set $quarantined=%7 set $ef=%8 -set $aspnetruntime=%9 -REM Batch only supports up to 9 arguments using the %# syntax, need to shift to get more -shift -set $aspnetref=%9 -shift set $helixTimeout=%9 +REM Batch only supports up to 9 arguments using the %# syntax, need to shift to get more shift set $feedCred=%9 @@ -40,8 +36,8 @@ set exit_code=0 echo "Restore: dotnet restore RunTests\RunTests.csproj --ignore-failed-sources" dotnet restore RunTests\RunTests.csproj --ignore-failed-sources -echo "Running tests: dotnet run --no-restore --project RunTests\RunTests.csproj -- --target %$target% --runtime %$aspRuntimeVersion% --queue %$queue% --arch %$arch% --quarantined %$quarantined% --ef %$ef% --aspnetruntime %$aspnetruntime% --aspnetref %$aspnetref% --helixTimeout %$helixTimeout%" -dotnet run --no-restore --project RunTests\RunTests.csproj -- --target %$target% --runtime %$aspRuntimeVersion% --queue %$queue% --arch %$arch% --quarantined %$quarantined% --ef %$ef% --aspnetruntime %$aspnetruntime% --aspnetref %$aspnetref% --helixTimeout %$helixTimeout% +echo "Running tests: dotnet run --no-restore --project RunTests\RunTests.csproj -- --target %$target% --runtime %$aspRuntimeVersion% --queue %$queue% --arch %$arch% --quarantined %$quarantined% --ef %$ef% --helixTimeout %$helixTimeout%" +dotnet run --no-restore --project RunTests\RunTests.csproj -- --target %$target% --runtime %$aspRuntimeVersion% --queue %$queue% --arch %$arch% --quarantined %$quarantined% --ef %$ef% --helixTimeout %$helixTimeout% if errorlevel neq 0 ( set exit_code=%errorlevel% ) diff --git a/eng/helix/content/runtests.sh b/eng/helix/content/runtests.sh index 713f51cab9..2458a7bcfb 100644 --- a/eng/helix/content/runtests.sh +++ b/eng/helix/content/runtests.sh @@ -36,14 +36,14 @@ InstallDotNet $DOTNET_ROOT $dotnet_sdk_version "" "" true || { Write-PipelineTelemetryError -Category 'InitializeToolset' -Message "dotnet-install.sh failed (exit code '$exit_code')." >&2 ExitWithExitCode $exit_code } -if [[ -z "${11:-}" ]]; then +if [[ -z "${10:-}" ]]; then InstallDotNet $DOTNET_ROOT $dotnet_runtime_version "" dotnet true || { exit_code=$? Write-PipelineTelemetryError -Category 'InitializeToolset' -Message "dotnet-install.sh failed (exit code '$exit_code')." >&2 ExitWithExitCode $exit_code } else - InstallDotNet $DOTNET_ROOT $dotnet_runtime_version "" dotnet true https://dotnetclimsrc.blob.core.windows.net/dotnet ${11} || { + InstallDotNet $DOTNET_ROOT $dotnet_runtime_version "" dotnet true https://dotnetclimsrc.blob.core.windows.net/dotnet ${10} || { exit_code=$? Write-PipelineTelemetryError -Category 'InitializeToolset' -Message "dotnet-install.sh failed (exit code '$exit_code')." >&2 ExitWithExitCode $exit_code @@ -65,8 +65,8 @@ exit_code=0 echo "Restore: $DOTNET_ROOT/dotnet restore RunTests/RunTests.csproj --ignore-failed-sources" $DOTNET_ROOT/dotnet restore RunTests/RunTests.csproj --ignore-failed-sources -echo "Running tests: $DOTNET_ROOT/dotnet run --no-restore --project RunTests/RunTests.csproj -- --target $1 --runtime $4 --queue $5 --arch $6 --quarantined $7 --ef $8 --aspnetruntime $9 --aspnetref ${10} --helixTimeout ${11}" -$DOTNET_ROOT/dotnet run --no-restore --project RunTests/RunTests.csproj -- --target $1 --runtime $4 --queue $5 --arch $6 --quarantined $7 --ef $8 --aspnetruntime $9 --aspnetref ${10} --helixTimeout ${11} +echo "Running tests: $DOTNET_ROOT/dotnet run --no-restore --project RunTests/RunTests.csproj -- --target $1 --runtime $4 --queue $5 --arch $6 --quarantined $7 --ef $8 --helixTimeout $9" +$DOTNET_ROOT/dotnet run --no-restore --project RunTests/RunTests.csproj -- --target $1 --runtime $4 --queue $5 --arch $6 --quarantined $7 --ef $8 --helixTimeout $9 exit_code=$? echo "Finished tests...exit_code=$exit_code" diff --git a/eng/targets/Helix.targets b/eng/targets/Helix.targets index 706c407778..ca580d1ed5 100644 --- a/eng/targets/Helix.targets +++ b/eng/targets/Helix.targets @@ -106,14 +106,8 @@ Usage: dotnet msbuild /t:Helix src/MyTestProject.csproj - - + @@ -139,8 +133,12 @@ Usage: dotnet msbuild /t:Helix src/MyTestProject.csproj $(TargetFileName) @(HelixPreCommand) @(HelixPostCommand) - call runtests.cmd $(TargetFileName) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppRuntimeVersion) $(SharedFxVersion) $(_HelixFriendlyNameTargetQueue) $(TargetArchitecture) $(RunQuarantinedTests) $(DotnetEfPackageVersion) Microsoft.AspNetCore.App.Runtime.win-x64.$(SharedFxVersion).nupkg Microsoft.AspNetCore.App.Ref.$(SharedFxVersion).nupkg $(HelixTimeout) - ./runtests.sh $(TargetFileName) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppRuntimeVersion) $(SharedFxVersion) $(_HelixFriendlyNameTargetQueue) $(TargetArchitecture) $(RunQuarantinedTests) $(DotnetEfPackageVersion) Microsoft.AspNetCore.App.Runtime.win-x64.$(SharedFxVersion).nupkg Microsoft.AspNetCore.App.Ref.$(SharedFxVersion).nupkg $(HelixTimeout) + + call runtests.cmd $(TargetFileName) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppRuntimeVersion) $(SharedFxVersion) $(_HelixFriendlyNameTargetQueue) $(TargetArchitecture) $(RunQuarantinedTests) $(DotnetEfPackageVersion) $(HelixTimeout) $(DotNetRuntimeSourceFeedKey) + ./runtests.sh $(TargetFileName) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppRuntimeVersion) $(SharedFxVersion) $(_HelixFriendlyNameTargetQueue) $(TargetArchitecture) $(RunQuarantinedTests) $(DotnetEfPackageVersion) $(HelixTimeout) $(DotNetRuntimeSourceFeedKey) $(HelixCommand) $(HelixTimeout) diff --git a/src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj b/src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj index 2d55f9cd50..c40284c6df 100644 --- a/src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj +++ b/src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj @@ -70,20 +70,6 @@ - - - - - - - - - - <_Parameter1>TargetingPackDependencies @@ -119,12 +105,12 @@ <_Parameter1>RuntimePackageVersion - <_Parameter2>@(_RuntimePackageVersionInfo->'%(PackageVersion)') + <_Parameter2>$(SharedFxVersion) <_Parameter1>TargetingPackVersion - <_Parameter2>@(_TargetingPackVersionInfo->'%(PackageVersion)') + <_Parameter2>$(TargetingPackVersion) diff --git a/src/Grpc/test/testassets/InteropWebsite/Directory.Build.targets b/src/Grpc/test/testassets/InteropWebsite/Directory.Build.targets index 2f889b40ea..9feb89c407 100644 --- a/src/Grpc/test/testassets/InteropWebsite/Directory.Build.targets +++ b/src/Grpc/test/testassets/InteropWebsite/Directory.Build.targets @@ -4,8 +4,6 @@ $(RestoreAdditionalProjectSources);$(ArtifactsShippingPackagesDir) - $(TargetingPackVersion) - $(AspNetCoreBaselineVersion) @@ -18,7 +16,7 @@ RuntimePackNamePatterns="Microsoft.AspNetCore.App.Runtime.**RID**" DefaultRuntimeFrameworkVersion="$(SharedFxVersion)" LatestRuntimeFrameworkVersion="$(SharedFxVersion)" - TargetingPackVersion="$(MicrosoftAspNetCoreAppRefPackageVersion)" + TargetingPackVersion="$(TargetingPackVersion)" RuntimePackRuntimeIdentifiers="$(SupportedRuntimeIdentifiers)" /> diff --git a/src/ProjectTemplates/BlazorTemplates.Tests/Infrastructure/GenerateTestProps.targets b/src/ProjectTemplates/BlazorTemplates.Tests/Infrastructure/GenerateTestProps.targets index 10ce80aec3..ed8f3b941b 100644 --- a/src/ProjectTemplates/BlazorTemplates.Tests/Infrastructure/GenerateTestProps.targets +++ b/src/ProjectTemplates/BlazorTemplates.Tests/Infrastructure/GenerateTestProps.targets @@ -3,28 +3,6 @@ BeforeTargets="CoreCompile" DependsOnTargets="PrepareForTest" Condition="$(DesignTimeBuild) != true"> - - - - - - - - - %(_TargetingPackVersionInfo.PackageVersion) - $(TargetingPackVersionPrefix) - - - - - - - RestoreAdditionalProjectSources=$([MSBuild]::Escape("$(RestoreAdditionalProjectSources);$(ArtifactsShippingPackagesDir);$(ArtifactsNonShippingPackagesDir)")); @@ -33,8 +11,8 @@ MicrosoftNETCoreAppRefPackageVersion=$(MicrosoftNETCoreAppRefPackageVersion); MicrosoftNETCorePlatformsPackageVersion=$(MicrosoftNETCorePlatformsPackageVersion); MicrosoftNETSdkRazorPackageVersion=$(MicrosoftNETSdkRazorPackageVersion); - MicrosoftAspNetCoreAppRefPackageVersion=$(MicrosoftAspNetCoreAppRefPackageVersion); - MicrosoftAspNetCoreAppRuntimePackageVersion=@(_RuntimePackageVersionInfo->'%(PackageVersion)'); + MicrosoftAspNetCoreAppRefPackageVersion=$(TargetingPackVersion); + MicrosoftAspNetCoreAppRuntimePackageVersion=$(SharedFxVersion); SupportedRuntimeIdentifiers=$(SupportedRuntimeIdentifiers.Trim()); DefaultNetCoreTargetFramework=$(DefaultNetCoreTargetFramework); RepoRoot=$(RepoRoot); diff --git a/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets b/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets index 10ce80aec3..ed8f3b941b 100644 --- a/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets +++ b/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets @@ -3,28 +3,6 @@ BeforeTargets="CoreCompile" DependsOnTargets="PrepareForTest" Condition="$(DesignTimeBuild) != true"> - - - - - - - - - %(_TargetingPackVersionInfo.PackageVersion) - $(TargetingPackVersionPrefix) - - - - - - - RestoreAdditionalProjectSources=$([MSBuild]::Escape("$(RestoreAdditionalProjectSources);$(ArtifactsShippingPackagesDir);$(ArtifactsNonShippingPackagesDir)")); @@ -33,8 +11,8 @@ MicrosoftNETCoreAppRefPackageVersion=$(MicrosoftNETCoreAppRefPackageVersion); MicrosoftNETCorePlatformsPackageVersion=$(MicrosoftNETCorePlatformsPackageVersion); MicrosoftNETSdkRazorPackageVersion=$(MicrosoftNETSdkRazorPackageVersion); - MicrosoftAspNetCoreAppRefPackageVersion=$(MicrosoftAspNetCoreAppRefPackageVersion); - MicrosoftAspNetCoreAppRuntimePackageVersion=@(_RuntimePackageVersionInfo->'%(PackageVersion)'); + MicrosoftAspNetCoreAppRefPackageVersion=$(TargetingPackVersion); + MicrosoftAspNetCoreAppRuntimePackageVersion=$(SharedFxVersion); SupportedRuntimeIdentifiers=$(SupportedRuntimeIdentifiers.Trim()); DefaultNetCoreTargetFramework=$(DefaultNetCoreTargetFramework); RepoRoot=$(RepoRoot); diff --git a/src/SiteExtensions/LoggingBranch/Directory.Build.targets b/src/SiteExtensions/LoggingBranch/Directory.Build.targets index bc9e13c2e2..ea37d8fa42 100644 --- a/src/SiteExtensions/LoggingBranch/Directory.Build.targets +++ b/src/SiteExtensions/LoggingBranch/Directory.Build.targets @@ -2,10 +2,6 @@ - - $(PackageVersion) - - diff --git a/src/SiteExtensions/Sdk/SiteExtension.targets b/src/SiteExtensions/Sdk/SiteExtension.targets index 792d83e090..e11ead7af3 100644 --- a/src/SiteExtensions/Sdk/SiteExtension.targets +++ b/src/SiteExtensions/Sdk/SiteExtension.targets @@ -85,7 +85,7 @@ HostingStartupPackageName=%(_HostingStartupPackageReference.Identity); HostingStartupPackageVersion=%(_HostingStartupPackageReference.Version); RuntimeFrameworkVersion=$(HostingStartupRuntimeFrameworkVersion); - MicrosoftAspNetCoreAppPackageVersion=$(MicrosoftAspNetCoreAppPackageVersion); + MicrosoftAspNetCoreAppPackageVersion=$(SharedFxVersion); UseAppHost=false; NoBuild=false; RestoreAdditionalProjectSources=$(_RsRestoreSources)" /> @@ -97,7 +97,7 @@ HostingStartupPackageName=%(_HostingStartupPackageReference.Identity); HostingStartupPackageVersion=%(_HostingStartupPackageReference.Version); RuntimeFrameworkVersion=$(HostingStartupRuntimeFrameworkVersion); - MicrosoftAspNetCoreAppPackageVersion=$(MicrosoftAspNetCoreAppPackageVersion); + MicrosoftAspNetCoreAppPackageVersion=$(SharedFxVersion); UseAppHost=false; NoBuild=false; IncludeMainProjectInDepsFile=false" /> From 340ee727150b51928be4fc48c23a5f4d3970cf88 Mon Sep 17 00:00:00 2001 From: James Newton-King Date: Sat, 12 Sep 2020 15:23:16 +1200 Subject: [PATCH 108/187] Update gRPC version in template to 2.32.0-pre1 (#25587) * Update gRPC version in template to 2.32.0-pre1 * Log server timeout detail * Only run interop tests on windows queues Co-authored-by: John Luo --- eng/Versions.props | 10 +++++----- src/Grpc/test/InteropTests/InteropTests.cs | 17 ++++++++++++++++- .../test/InteropTests/InteropTests.csproj | 2 ++ .../testassets/InteropClient/InteropClient.cs | 19 ++----------------- .../test/testassets/InteropWebsite/Startup.cs | 3 +++ 5 files changed, 28 insertions(+), 23 deletions(-) diff --git a/eng/Versions.props b/eng/Versions.props index ba647ca824..a873bd8966 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -251,11 +251,11 @@ 4.2.1 2.3.0 4.2.1 - 3.10.0 - 2.27.0 - 2.27.0 - 2.27.0 - 2.27.0 + 3.13.0 + 2.32.0-pre1 + 2.32.0-pre1 + 2.32.0-pre1 + 2.32.0-pre1 4.0.4 4.0.4 4.0.4 diff --git a/src/Grpc/test/InteropTests/InteropTests.cs b/src/Grpc/test/InteropTests/InteropTests.cs index 839292ab4b..040ccc9391 100644 --- a/src/Grpc/test/InteropTests/InteropTests.cs +++ b/src/Grpc/test/InteropTests/InteropTests.cs @@ -90,7 +90,22 @@ namespace InteropTests { using (var serverProcess = new WebsiteProcess(_serverPath, _output)) { - await serverProcess.WaitForReady().TimeoutAfter(DefaultTimeout); + try + { + await serverProcess.WaitForReady().TimeoutAfter(DefaultTimeout); + } + catch (Exception ex) + { + var errorMessage = $@"Error while running server process. + +Server ready: {serverProcess.IsReady} + +Server process output: +====================================== +{serverProcess.GetOutput()} +======================================"; + throw new InvalidOperationException(errorMessage, ex); + } using (var clientProcess = new ClientProcess(_output, _clientPath, serverProcess.ServerPort, name)) { diff --git a/src/Grpc/test/InteropTests/InteropTests.csproj b/src/Grpc/test/InteropTests/InteropTests.csproj index bcbd1fc4b6..335944a448 100644 --- a/src/Grpc/test/InteropTests/InteropTests.csproj +++ b/src/Grpc/test/InteropTests/InteropTests.csproj @@ -3,6 +3,8 @@ true $(DefaultNetCoreTargetFramework) + true + true diff --git a/src/Grpc/test/testassets/InteropClient/InteropClient.cs b/src/Grpc/test/testassets/InteropClient/InteropClient.cs index 6590d8ae69..2b5cb65196 100644 --- a/src/Grpc/test/testassets/InteropClient/InteropClient.cs +++ b/src/Grpc/test/testassets/InteropClient/InteropClient.cs @@ -168,7 +168,7 @@ namespace InteropTestsClient httpClientHandler.ClientCertificates.Add(cert); } - var httpClient = new HttpClient(new VersionPolicyHandler(httpClientHandler)); + var httpClient = new HttpClient(httpClientHandler); var channel = GrpcChannel.ForAddress($"{scheme}://{options.ServerHost}:{options.ServerPort}", new GrpcChannelOptions { @@ -180,21 +180,6 @@ namespace InteropTestsClient return new GrpcChannelWrapper(channel); } - // TODO(JamesNK): This type can be removed in the future when Grpc.Net.Client sets VersionPolicy automatically. - // https://github.com/grpc/grpc-dotnet/pull/987 - private class VersionPolicyHandler : DelegatingHandler - { - public VersionPolicyHandler(HttpMessageHandler innerHandler) : base(innerHandler) - { - } - - protected override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) - { - request.VersionPolicy = HttpVersionPolicy.RequestVersionOrHigher; - return base.SendAsync(request, cancellationToken); - } - } - private async Task CreateCredentialsAsync(bool? useTestCaOverride = null) { var credentials = ChannelCredentials.Insecure; @@ -875,7 +860,7 @@ namespace InteropTestsClient string keyFile = Environment.GetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS")!; Assert.IsNotNull(keyFile); var jobject = JObject.Parse(File.ReadAllText(keyFile)); - string email = jobject.GetValue("client_email").Value(); + string email = jobject.GetValue("client_email")!.Value()!; Assert.IsTrue(email.Length > 0); // spec requires nonempty client email. return email; } diff --git a/src/Grpc/test/testassets/InteropWebsite/Startup.cs b/src/Grpc/test/testassets/InteropWebsite/Startup.cs index 6f335d6c05..b5e8822ae1 100644 --- a/src/Grpc/test/testassets/InteropWebsite/Startup.cs +++ b/src/Grpc/test/testassets/InteropWebsite/Startup.cs @@ -22,6 +22,7 @@ using Grpc.Testing; using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; +using Microsoft.Net.Http.Headers; namespace InteropTestsWebsite { @@ -44,6 +45,8 @@ namespace InteropTestsWebsite var runtimeVersion = typeof(object).GetTypeInfo().Assembly.GetCustomAttribute()?.InformationalVersion ?? "Unknown"; Console.WriteLine($"NetCoreAppVersion: {runtimeVersion}"); + var aspNetCoreVersion = typeof(HeaderNames).GetTypeInfo().Assembly.GetCustomAttribute()?.InformationalVersion ?? "Unknown"; + Console.WriteLine($"AspNetCoreAppVersion: {aspNetCoreVersion}"); }); app.UseRouting(); From a17842a2e4749c9d9acc0d645049847aab6c9041 Mon Sep 17 00:00:00 2001 From: Javier Calvarro Nelson Date: Tue, 25 Aug 2020 08:53:42 +0200 Subject: [PATCH 109/187] [Mvc] Add support for order in dynamic controller routes (#25073) * Order defaults to 1 same as conventional routes * An incremental order is applied to dynamic routes as they are defined. --- ...ontrollerEndpointRouteBuilderExtensions.cs | 18 +- .../MvcCoreServiceCollectionExtensions.cs | 1 + .../OrderedEndpointsSequenceProvider.cs | 26 +++ .../ControllerActionEndpointDataSource.cs | 41 +++-- .../ControllerActionEndpointDataSourceTest.cs | 4 +- ...azorPagesEndpointRouteBuilderExtensions.cs | 13 +- .../PageActionEndpointDataSource.cs | 32 +++- .../PageActionEndpointDataSourceTest.cs | 4 +- ...rollerActionEndpointDatasourceBenchmark.cs | 5 +- .../RoutingDynamicOrderTest.cs | 165 ++++++++++++++++++ .../Controllers/DynamicOrderController.cs | 30 ++++ .../RoutingWebSite/Pages/DynamicPage.cshtml | 2 +- .../RoutingWebSite/StartupForDynamicOrder.cs | 132 ++++++++++++++ 13 files changed, 425 insertions(+), 48 deletions(-) create mode 100644 src/Mvc/Mvc.Core/src/DependencyInjection/OrderedEndpointsSequenceProvider.cs create mode 100644 src/Mvc/test/Mvc.FunctionalTests/RoutingDynamicOrderTest.cs create mode 100644 src/Mvc/test/WebSites/RoutingWebSite/Controllers/DynamicOrderController.cs create mode 100644 src/Mvc/test/WebSites/RoutingWebSite/StartupForDynamicOrder.cs diff --git a/src/Mvc/Mvc.Core/src/Builder/ControllerEndpointRouteBuilderExtensions.cs b/src/Mvc/Mvc.Core/src/Builder/ControllerEndpointRouteBuilderExtensions.cs index 4defbc5d2a..6c14cca67f 100644 --- a/src/Mvc/Mvc.Core/src/Builder/ControllerEndpointRouteBuilderExtensions.cs +++ b/src/Mvc/Mvc.Core/src/Builder/ControllerEndpointRouteBuilderExtensions.cs @@ -1,4 +1,4 @@ -// 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. using System; @@ -506,18 +506,10 @@ namespace Microsoft.AspNetCore.Builder EnsureControllerServices(endpoints); // Called for side-effect to make sure that the data source is registered. - GetOrCreateDataSource(endpoints).CreateInertEndpoints = true; - - endpoints.Map( - pattern, - context => - { - throw new InvalidOperationException("This endpoint is not expected to be executed directly."); - }) - .Add(b => - { - b.Metadata.Add(new DynamicControllerRouteValueTransformerMetadata(typeof(TTransformer), state)); - }); + var controllerDataSource = GetOrCreateDataSource(endpoints); + + // The data source is just used to share the common order with conventionally routed actions. + controllerDataSource.AddDynamicControllerEndpoint(endpoints, pattern, typeof(TTransformer), state); } private static DynamicControllerMetadata CreateDynamicControllerMetadata(string action, string controller, string area) diff --git a/src/Mvc/Mvc.Core/src/DependencyInjection/MvcCoreServiceCollectionExtensions.cs b/src/Mvc/Mvc.Core/src/DependencyInjection/MvcCoreServiceCollectionExtensions.cs index 82181cd034..4f5593e86a 100644 --- a/src/Mvc/Mvc.Core/src/DependencyInjection/MvcCoreServiceCollectionExtensions.cs +++ b/src/Mvc/Mvc.Core/src/DependencyInjection/MvcCoreServiceCollectionExtensions.cs @@ -269,6 +269,7 @@ namespace Microsoft.Extensions.DependencyInjection // // Endpoint Routing / Endpoints // + services.TryAddSingleton(); services.TryAddSingleton(); services.TryAddSingleton(); services.TryAddSingleton(); diff --git a/src/Mvc/Mvc.Core/src/DependencyInjection/OrderedEndpointsSequenceProvider.cs b/src/Mvc/Mvc.Core/src/DependencyInjection/OrderedEndpointsSequenceProvider.cs new file mode 100644 index 0000000000..132f7dfb6d --- /dev/null +++ b/src/Mvc/Mvc.Core/src/DependencyInjection/OrderedEndpointsSequenceProvider.cs @@ -0,0 +1,26 @@ +// 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. + +namespace Microsoft.AspNetCore.Mvc.Infrastructure +{ + internal class OrderedEndpointsSequenceProvider + { + private object Lock = new object(); + + // In traditional conventional routing setup, the routes defined by a user have a order + // defined by how they are added into the list. We would like to maintain the same order when building + // up the endpoints too. + // + // Start with an order of '1' for conventional routes as attribute routes have a default order of '0'. + // This is for scenarios dealing with migrating existing Router based code to Endpoint Routing world. + private int _current = 1; + + public int GetNext() + { + lock (Lock) + { + return _current++; + } + } + } +} diff --git a/src/Mvc/Mvc.Core/src/Routing/ControllerActionEndpointDataSource.cs b/src/Mvc/Mvc.Core/src/Routing/ControllerActionEndpointDataSource.cs index 8a27c982dc..fb9288b9cf 100644 --- a/src/Mvc/Mvc.Core/src/Routing/ControllerActionEndpointDataSource.cs +++ b/src/Mvc/Mvc.Core/src/Routing/ControllerActionEndpointDataSource.cs @@ -1,4 +1,4 @@ -// 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. using System; @@ -15,27 +15,19 @@ namespace Microsoft.AspNetCore.Mvc.Routing internal class ControllerActionEndpointDataSource : ActionEndpointDataSourceBase { private readonly ActionEndpointFactory _endpointFactory; + private readonly OrderedEndpointsSequenceProvider _orderSequence; private readonly List _routes; - private int _order; - public ControllerActionEndpointDataSource( IActionDescriptorCollectionProvider actions, - ActionEndpointFactory endpointFactory) + ActionEndpointFactory endpointFactory, + OrderedEndpointsSequenceProvider orderSequence) : base(actions) { _endpointFactory = endpointFactory; - + _orderSequence = orderSequence; _routes = new List(); - // In traditional conventional routing setup, the routes defined by a user have a order - // defined by how they are added into the list. We would like to maintain the same order when building - // up the endpoints too. - // - // Start with an order of '1' for conventional routes as attribute routes have a default order of '0'. - // This is for scenarios dealing with migrating existing Router based code to Endpoint Routing world. - _order = 1; - DefaultBuilder = new ControllerActionEndpointConventionBuilder(Lock, Conventions); // IMPORTANT: this needs to be the last thing we do in the constructor. @@ -59,7 +51,7 @@ namespace Microsoft.AspNetCore.Mvc.Routing lock (Lock) { var conventions = new List>(); - _routes.Add(new ConventionalRouteEntry(routeName, pattern, defaults, constraints, dataTokens, _order++, conventions)); + _routes.Add(new ConventionalRouteEntry(routeName, pattern, defaults, constraints, dataTokens, _orderSequence.GetNext(), conventions)); return new ControllerActionEndpointConventionBuilder(Lock, conventions); } } @@ -108,6 +100,27 @@ namespace Microsoft.AspNetCore.Mvc.Routing return endpoints; } + + internal void AddDynamicControllerEndpoint(IEndpointRouteBuilder endpoints, string pattern, Type transformerType, object state) + { + CreateInertEndpoints = true; + lock (Lock) + { + var order = _orderSequence.GetNext(); + + endpoints.Map( + pattern, + context => + { + throw new InvalidOperationException("This endpoint is not expected to be executed directly."); + }) + .Add(b => + { + ((RouteEndpointBuilder)b).Order = order; + b.Metadata.Add(new DynamicControllerRouteValueTransformerMetadata(transformerType, state)); + }); + } + } } } diff --git a/src/Mvc/Mvc.Core/test/Routing/ControllerActionEndpointDataSourceTest.cs b/src/Mvc/Mvc.Core/test/Routing/ControllerActionEndpointDataSourceTest.cs index deb97532ce..6001dab415 100644 --- a/src/Mvc/Mvc.Core/test/Routing/ControllerActionEndpointDataSourceTest.cs +++ b/src/Mvc/Mvc.Core/test/Routing/ControllerActionEndpointDataSourceTest.cs @@ -1,4 +1,4 @@ -// 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. using System; @@ -385,7 +385,7 @@ namespace Microsoft.AspNetCore.Mvc.Routing private protected override ActionEndpointDataSourceBase CreateDataSource(IActionDescriptorCollectionProvider actions, ActionEndpointFactory endpointFactory) { - return new ControllerActionEndpointDataSource(actions, endpointFactory); + return new ControllerActionEndpointDataSource(actions, endpointFactory, new OrderedEndpointsSequenceProvider()); } protected override ActionDescriptor CreateActionDescriptor( diff --git a/src/Mvc/Mvc.RazorPages/src/Builder/RazorPagesEndpointRouteBuilderExtensions.cs b/src/Mvc/Mvc.RazorPages/src/Builder/RazorPagesEndpointRouteBuilderExtensions.cs index a1f48fc00e..bd0c27186b 100644 --- a/src/Mvc/Mvc.RazorPages/src/Builder/RazorPagesEndpointRouteBuilderExtensions.cs +++ b/src/Mvc/Mvc.RazorPages/src/Builder/RazorPagesEndpointRouteBuilderExtensions.cs @@ -337,18 +337,9 @@ namespace Microsoft.AspNetCore.Builder EnsureRazorPagesServices(endpoints); // Called for side-effect to make sure that the data source is registered. - GetOrCreateDataSource(endpoints).CreateInertEndpoints = true; + var dataSource = GetOrCreateDataSource(endpoints); - endpoints.Map( - pattern, - context => - { - throw new InvalidOperationException("This endpoint is not expected to be executed directly."); - }) - .Add(b => - { - b.Metadata.Add(new DynamicPageRouteValueTransformerMetadata(typeof(TTransformer), state)); - }); + dataSource.AddDynamicPageEndpoint(endpoints, pattern, typeof(TTransformer), state); } private static DynamicPageMetadata CreateDynamicPageMetadata(string page, string area) diff --git a/src/Mvc/Mvc.RazorPages/src/Infrastructure/PageActionEndpointDataSource.cs b/src/Mvc/Mvc.RazorPages/src/Infrastructure/PageActionEndpointDataSource.cs index d7501266a4..cefb410c73 100644 --- a/src/Mvc/Mvc.RazorPages/src/Infrastructure/PageActionEndpointDataSource.cs +++ b/src/Mvc/Mvc.RazorPages/src/Infrastructure/PageActionEndpointDataSource.cs @@ -1,4 +1,4 @@ -// 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. using System; @@ -8,18 +8,23 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.Abstractions; using Microsoft.AspNetCore.Mvc.Infrastructure; using Microsoft.AspNetCore.Mvc.Routing; +using Microsoft.AspNetCore.Routing; namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure { internal class PageActionEndpointDataSource : ActionEndpointDataSourceBase { private readonly ActionEndpointFactory _endpointFactory; + private readonly OrderedEndpointsSequenceProvider _orderSequence; - public PageActionEndpointDataSource(IActionDescriptorCollectionProvider actions, ActionEndpointFactory endpointFactory) + public PageActionEndpointDataSource( + IActionDescriptorCollectionProvider actions, + ActionEndpointFactory endpointFactory, + OrderedEndpointsSequenceProvider orderedEndpoints) : base(actions) { _endpointFactory = endpointFactory; - + _orderSequence = orderedEndpoints; DefaultBuilder = new PageActionEndpointConventionBuilder(Lock, Conventions); // IMPORTANT: this needs to be the last thing we do in the constructor. @@ -47,6 +52,27 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure return endpoints; } + + internal void AddDynamicPageEndpoint(IEndpointRouteBuilder endpoints, string pattern, Type transformerType, object state) + { + CreateInertEndpoints = true; + lock (Lock) + { + var order = _orderSequence.GetNext(); + + endpoints.Map( + pattern, + context => + { + throw new InvalidOperationException("This endpoint is not expected to be executed directly."); + }) + .Add(b => + { + ((RouteEndpointBuilder)b).Order = order; + b.Metadata.Add(new DynamicPageRouteValueTransformerMetadata(transformerType, state)); + }); + } + } } } diff --git a/src/Mvc/Mvc.RazorPages/test/Infrastructure/PageActionEndpointDataSourceTest.cs b/src/Mvc/Mvc.RazorPages/test/Infrastructure/PageActionEndpointDataSourceTest.cs index a74d388c7f..291b3a801e 100644 --- a/src/Mvc/Mvc.RazorPages/test/Infrastructure/PageActionEndpointDataSourceTest.cs +++ b/src/Mvc/Mvc.RazorPages/test/Infrastructure/PageActionEndpointDataSourceTest.cs @@ -1,4 +1,4 @@ -// 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. using System; @@ -92,7 +92,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure private protected override ActionEndpointDataSourceBase CreateDataSource(IActionDescriptorCollectionProvider actions, ActionEndpointFactory endpointFactory) { - return new PageActionEndpointDataSource(actions, endpointFactory); + return new PageActionEndpointDataSource(actions, endpointFactory, new OrderedEndpointsSequenceProvider()); } protected override ActionDescriptor CreateActionDescriptor( diff --git a/src/Mvc/benchmarks/Microsoft.AspNetCore.Mvc.Performance/ControllerActionEndpointDatasourceBenchmark.cs b/src/Mvc/benchmarks/Microsoft.AspNetCore.Mvc.Performance/ControllerActionEndpointDatasourceBenchmark.cs index c551bedb2e..8b96502295 100644 --- a/src/Mvc/benchmarks/Microsoft.AspNetCore.Mvc.Performance/ControllerActionEndpointDatasourceBenchmark.cs +++ b/src/Mvc/benchmarks/Microsoft.AspNetCore.Mvc.Performance/ControllerActionEndpointDatasourceBenchmark.cs @@ -1,4 +1,4 @@ -// 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. using System; @@ -110,7 +110,8 @@ namespace Microsoft.AspNetCore.Mvc.Performance { var dataSource = new ControllerActionEndpointDataSource( actionDescriptorCollectionProvider, - new ActionEndpointFactory(new MockRoutePatternTransformer())); + new ActionEndpointFactory(new MockRoutePatternTransformer()), + new OrderedEndpointsSequenceProvider()); return dataSource; } diff --git a/src/Mvc/test/Mvc.FunctionalTests/RoutingDynamicOrderTest.cs b/src/Mvc/test/Mvc.FunctionalTests/RoutingDynamicOrderTest.cs new file mode 100644 index 0000000000..ce0b22f214 --- /dev/null +++ b/src/Mvc/test/Mvc.FunctionalTests/RoutingDynamicOrderTest.cs @@ -0,0 +1,165 @@ +// 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. + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Net.Http.Json; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Mvc.Testing; +using RoutingWebSite; +using Xunit; + +namespace Microsoft.AspNetCore.Mvc.FunctionalTests +{ + public class RoutingDynamicOrderTest : IClassFixture> + { + public RoutingDynamicOrderTest(MvcTestFixture fixture) + { + Factory = fixture.Factories.FirstOrDefault() ?? fixture.WithWebHostBuilder(ConfigureWebHostBuilder); + } + + private static void ConfigureWebHostBuilder(IWebHostBuilder builder) => builder.UseStartup(); + + public WebApplicationFactory Factory { get; } + + [Fact] + public async Task PrefersAttributeRoutesOverDynamicControllerRoutes() + { + var factory = Factory + .WithWebHostBuilder(b => b.UseSetting("Scenario", RoutingWebSite.StartupForDynamicOrder.DynamicOrderScenarios.AttributeRouteDynamicRoute)); + + var client = factory.CreateClient(); + + // Arrange + var url = "http://localhost/attribute-dynamic-order/Controller=Home,Action=Index"; + var request = new HttpRequestMessage(HttpMethod.Get, url); + + // Act + var response = await client.SendAsync(request); + var content = await response.Content.ReadFromJsonAsync(); + + // Assert + Assert.Equal(HttpStatusCode.OK, response.StatusCode); + Assert.Equal("AttributeRouteSlug", content.RouteName); + } + + [Fact] + public async Task DynamicRoutesAreMatchedInDefinitionOrderOverPrecedence() + { + AppContext.SetSwitch("Microsoft.AspNetCore.Routing.UseCorrectCatchAllBehavior", isEnabled: true); + var factory = Factory + .WithWebHostBuilder(b => b.UseSetting("Scenario", RoutingWebSite.StartupForDynamicOrder.DynamicOrderScenarios.MultipleDynamicRoute)); + + var client = factory.CreateClient(); + + // Arrange + var url = "http://localhost/dynamic-order/specific/Controller=Home,Action=Index"; + var request = new HttpRequestMessage(HttpMethod.Get, url); + + // Act + var response = await client.SendAsync(request); + var content = await response.Content.ReadFromJsonAsync(); + + // Assert + Assert.Equal(HttpStatusCode.OK, response.StatusCode); + Assert.True(content.RouteValues.TryGetValue("identifier", out var identifier)); + Assert.Equal("slug", identifier); + } + + [Fact] + public async Task ConventionalRoutesDefinedEarlierWinOverDynamicControllerRoutes() + { + AppContext.SetSwitch("Microsoft.AspNetCore.Routing.UseCorrectCatchAllBehavior", isEnabled: true); + var factory = Factory + .WithWebHostBuilder(b => b.UseSetting("Scenario", RoutingWebSite.StartupForDynamicOrder.DynamicOrderScenarios.ConventionalRouteDynamicRoute)); + + var client = factory.CreateClient(); + + // Arrange + var url = "http://localhost/conventional-dynamic-order-before"; + var request = new HttpRequestMessage(HttpMethod.Get, url); + + // Act + var response = await client.SendAsync(request); + var content = await response.Content.ReadFromJsonAsync(); + + // Assert + Assert.Equal(HttpStatusCode.OK, response.StatusCode); + Assert.False(content.RouteValues.TryGetValue("identifier", out var identifier)); + } + + [Fact] + public async Task ConventionalRoutesDefinedLaterLooseToDynamicControllerRoutes() + { + AppContext.SetSwitch("Microsoft.AspNetCore.Routing.UseCorrectCatchAllBehavior", isEnabled: true); + var factory = Factory + .WithWebHostBuilder(b => b.UseSetting("Scenario", RoutingWebSite.StartupForDynamicOrder.DynamicOrderScenarios.ConventionalRouteDynamicRoute)); + + var client = factory.CreateClient(); + + // Arrange + var url = "http://localhost/conventional-dynamic-order-after"; + var request = new HttpRequestMessage(HttpMethod.Get, url); + + // Act + var response = await client.SendAsync(request); + var content = await response.Content.ReadFromJsonAsync(); + + // Assert + Assert.Equal(HttpStatusCode.OK, response.StatusCode); + Assert.True(content.RouteValues.TryGetValue("identifier", out var identifier)); + Assert.Equal("slug", identifier); + } + + [Fact] + public async Task DynamicPagesDefinedEarlierWinOverDynamicControllers() + { + AppContext.SetSwitch("Microsoft.AspNetCore.Routing.UseCorrectCatchAllBehavior", isEnabled: true); + var factory = Factory + .WithWebHostBuilder(b => b.UseSetting("Scenario", RoutingWebSite.StartupForDynamicOrder.DynamicOrderScenarios.DynamicControllerAndPages)); + + var client = factory.CreateClient(); + // Arrange + var url = "http://localhost/dynamic-order-page-controller-before"; + var request = new HttpRequestMessage(HttpMethod.Get, url); + + // Act + var response = await client.SendAsync(request); + var content = await response.Content.ReadAsStringAsync(); + + // Assert + Assert.Equal(HttpStatusCode.OK, response.StatusCode); + Assert.Equal("Hello from dynamic page: /DynamicPagebefore", content); + } + + [Fact] + public async Task DynamicPagesDefinedLaterLooseOverDynamicControllers() + { + AppContext.SetSwitch("Microsoft.AspNetCore.Routing.UseCorrectCatchAllBehavior", isEnabled: true); + var factory = Factory + .WithWebHostBuilder(b => b.UseSetting("Scenario", RoutingWebSite.StartupForDynamicOrder.DynamicOrderScenarios.DynamicControllerAndPages)); + + var client = factory.CreateClient(); + + // Arrange + var url = "http://localhost/dynamic-order-page-controller-after"; + var request = new HttpRequestMessage(HttpMethod.Get, url); + + // Act + var response = await client.SendAsync(request); + var content = await response.Content.ReadFromJsonAsync(); + + // Assert + Assert.Equal(HttpStatusCode.OK, response.StatusCode); + Assert.True(content.RouteValues.TryGetValue("identifier", out var identifier)); + Assert.Equal("controller", identifier); + } + + private record RouteInfo(string RouteName, IDictionary RouteValues); + } +} diff --git a/src/Mvc/test/WebSites/RoutingWebSite/Controllers/DynamicOrderController.cs b/src/Mvc/test/WebSites/RoutingWebSite/Controllers/DynamicOrderController.cs new file mode 100644 index 0000000000..d58b9fc24c --- /dev/null +++ b/src/Mvc/test/WebSites/RoutingWebSite/Controllers/DynamicOrderController.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; + +namespace Mvc.RoutingWebSite.Controllers +{ + public class DynamicOrderController : Controller + { + private readonly TestResponseGenerator _generator; + + public DynamicOrderController(TestResponseGenerator generator) + { + _generator = generator; + } + + [HttpGet("attribute-dynamic-order/{**slug}", Name = "AttributeRouteSlug")] + public IActionResult Get(string slug) + { + return _generator.Generate(Url.RouteUrl("AttributeRouteSlug", new { slug })); + } + + [HttpGet] + public IActionResult Index() + { + return _generator.Generate(Url.RouteUrl(null, new { controller = "DynamicOrder", action = "Index" })); + } + } +} diff --git a/src/Mvc/test/WebSites/RoutingWebSite/Pages/DynamicPage.cshtml b/src/Mvc/test/WebSites/RoutingWebSite/Pages/DynamicPage.cshtml index f1d271bc62..7580432bcb 100644 --- a/src/Mvc/test/WebSites/RoutingWebSite/Pages/DynamicPage.cshtml +++ b/src/Mvc/test/WebSites/RoutingWebSite/Pages/DynamicPage.cshtml @@ -1,3 +1,3 @@ @page @model RoutingWebSite.Pages.DynamicPageModel -Hello from dynamic page: @Url.Page("") \ No newline at end of file +Hello from dynamic page: @Url.Page("")@RouteData.Values["identifier"] \ No newline at end of file diff --git a/src/Mvc/test/WebSites/RoutingWebSite/StartupForDynamicOrder.cs b/src/Mvc/test/WebSites/RoutingWebSite/StartupForDynamicOrder.cs new file mode 100644 index 0000000000..2d3c96c579 --- /dev/null +++ b/src/Mvc/test/WebSites/RoutingWebSite/StartupForDynamicOrder.cs @@ -0,0 +1,132 @@ +// 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. + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.Infrastructure; +using Microsoft.AspNetCore.Mvc.Routing; +using Microsoft.AspNetCore.Routing; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; + +namespace RoutingWebSite +{ + // For by tests for dynamic routing to pages/controllers + public class StartupForDynamicOrder + { + public static class DynamicOrderScenarios + { + public const string AttributeRouteDynamicRoute = nameof(AttributeRouteDynamicRoute); + public const string MultipleDynamicRoute = nameof(MultipleDynamicRoute); + public const string ConventionalRouteDynamicRoute = nameof(ConventionalRouteDynamicRoute); + public const string DynamicControllerAndPages = nameof(DynamicControllerAndPages); + } + + public IConfiguration Configuration { get; } + + public StartupForDynamicOrder(IConfiguration configuration) + { + Configuration = configuration; + } + + public void ConfigureServices(IServiceCollection services) + { + services + .AddMvc() + .AddNewtonsoftJson() + .SetCompatibilityVersion(CompatibilityVersion.Latest); + + services.AddTransient(); + services.AddScoped(); + services.AddSingleton(); + + // Used by some controllers defined in this project. + services.Configure(options => options.ConstraintMap["slugify"] = typeof(SlugifyParameterTransformer)); + } + + public void Configure(IApplicationBuilder app) + { + var scenario = Configuration.GetValue("Scenario"); + app.UseRouting(); + app.UseEndpoints(endpoints => + { + // Route order definition is important for all these routes: + switch (scenario) + { + case DynamicOrderScenarios.AttributeRouteDynamicRoute: + endpoints.MapDynamicControllerRoute("attribute-dynamic-order/{**slug}", new TransformerState() { Identifier = "slug" }); + endpoints.MapControllers(); + break; + case DynamicOrderScenarios.ConventionalRouteDynamicRoute: + endpoints.MapControllerRoute(null, "{**conventional-dynamic-order-before:regex(^((?!conventional\\-dynamic\\-order\\-after).)*$)}", new { controller = "DynamicOrder", action = "Index" }); + endpoints.MapDynamicControllerRoute("{conventional-dynamic-order}", new TransformerState() { Identifier = "slug" }); + endpoints.MapControllerRoute(null, "conventional-dynamic-order-after", new { controller = "DynamicOrder", action = "Index" }); + break; + case DynamicOrderScenarios.MultipleDynamicRoute: + endpoints.MapDynamicControllerRoute("dynamic-order/{**slug}", new TransformerState() { Identifier = "slug" }); + endpoints.MapDynamicControllerRoute("dynamic-order/specific/{**slug}", new TransformerState() { Identifier = "specific" }); + break; + case DynamicOrderScenarios.DynamicControllerAndPages: + endpoints.MapDynamicPageRoute("{**dynamic-order-page-controller-before:regex(^((?!dynamic\\-order\\-page\\-controller\\-after).)*$)}", new TransformerState() { Identifier = "before", ForPages = true }); + endpoints.MapDynamicControllerRoute("{dynamic-order-page-controller}", new TransformerState() { Identifier = "controller" }); + endpoints.MapDynamicPageRoute("dynamic-order-page-controller-after", new TransformerState() { Identifier = "after", ForPages = true }); + break; + default: + throw new InvalidOperationException("Invalid scenario configuration."); + } + }); + + app.Map("/afterrouting", b => b.Run(c => + { + return c.Response.WriteAsync("Hello from middleware after routing"); + })); + } + + private class TransformerState + { + public string Identifier { get; set; } + public bool ForPages { get; set; } + } + + private class Transformer : DynamicRouteValueTransformer + { + // Turns a format like `controller=Home,action=Index` into an RVD + public override ValueTask TransformAsync(HttpContext httpContext, RouteValueDictionary values) + { + var kvps = ((string)values?["slug"])?.Split("/")?.LastOrDefault()?.Split(",") ?? Array.Empty(); + + // Go to index by default if the route doesn't follow the slug pattern, we want to make sure always match to + // test the order is applied + var state = (TransformerState)State; + var results = new RouteValueDictionary(); + if (!state.ForPages) + { + results["controller"] = "Home"; + results["action"] = "Index"; + } + else + { + results["Page"] = "/DynamicPage"; + } + + foreach (var kvp in kvps) + { + var split = kvp.Split("="); + if (split.Length == 2) + { + results[split[0]] = split[1]; + } + } + + results["identifier"] = ((TransformerState)State).Identifier; + + return new ValueTask(results); + } + } + } +} From b1e1aabc9d0d1de9b907033771e7debcd85e60ad Mon Sep 17 00:00:00 2001 From: Javier Calvarro Nelson Date: Tue, 8 Sep 2020 09:17:26 -0700 Subject: [PATCH 110/187] [Mvc] Fix global state in controller and action endpoint data sources. * Create data sources "per router" instance. * Make a global shared order sequence "per router" for conventional and controller and page routes. * Create DynamicControllerEndpointSelector and DynamicPageEndpointSelector instances per data source. --- ...ontrollerEndpointRouteBuilderExtensions.cs | 73 +++++++- .../MvcCoreServiceCollectionExtensions.cs | 7 +- .../OrderedEndpointsSequenceProvider.cs | 11 +- .../OrderedEndpointsSequenceProviderCache.cs | 18 ++ .../ControllerActionEndpointDataSource.cs | 13 +- ...ntrollerActionEndpointDataSourceFactory.cs | 29 +++ ...ollerActionEndpointDataSourceIdProvider.cs | 17 ++ .../ControllerEndpointDataSourceIdMetadata.cs | 15 ++ .../DynamicControllerEndpointMatcherPolicy.cs | 27 ++- .../DynamicControllerEndpointSelector.cs | 14 +- .../DynamicControllerEndpointSelectorCache.cs | 46 +++++ .../ControllerActionEndpointDataSourceTest.cs | 9 +- ...amicControllerEndpointMatcherPolicyTest.cs | 28 +-- ...azorPagesEndpointRouteBuilderExtensions.cs | 79 +++++++- .../MvcRazorPagesMvcCoreBuilderExtensions.cs | 6 +- .../DynamicPageEndpointMatcherPolicy.cs | 26 ++- .../DynamicPageEndpointSelector.cs | 11 +- .../DynamicPageEndpointSelectorCache.cs | 47 +++++ .../PageActionEndpointDataSource.cs | 12 +- .../PageActionEndpointDataSourceFactory.cs | 30 +++ .../PageActionEndpointDataSourceIdProvider.cs | 17 ++ .../PageEndpointDataSourceIdMetadata.cs | 15 ++ .../DynamicPageEndpointMatcherPolicyTest.cs | 27 +-- .../PageActionEndpointDataSourceTest.cs | 2 +- ...rollerActionEndpointDatasourceBenchmark.cs | 1 + .../RoutingAcrossPipelineBranchesTest.cs | 172 ++++++++++++++++++ .../WebSites/Common/TestResponseGenerator.cs | 2 +- .../Controllers/BranchesController.cs | 29 +++ .../test/WebSites/RoutingWebSite/Program.cs | 2 +- .../RoutingWebSite/StartupForDynamic.cs | 3 + .../StartupRoutingDifferentBranches.cs | 104 +++++++++++ 31 files changed, 792 insertions(+), 100 deletions(-) rename src/Mvc/Mvc.Core/src/{DependencyInjection => Infrastructure}/OrderedEndpointsSequenceProvider.cs (83%) create mode 100644 src/Mvc/Mvc.Core/src/Infrastructure/OrderedEndpointsSequenceProviderCache.cs create mode 100644 src/Mvc/Mvc.Core/src/Routing/ControllerActionEndpointDataSourceFactory.cs create mode 100644 src/Mvc/Mvc.Core/src/Routing/ControllerActionEndpointDataSourceIdProvider.cs create mode 100644 src/Mvc/Mvc.Core/src/Routing/ControllerEndpointDataSourceIdMetadata.cs create mode 100644 src/Mvc/Mvc.Core/src/Routing/DynamicControllerEndpointSelectorCache.cs create mode 100644 src/Mvc/Mvc.RazorPages/src/Infrastructure/DynamicPageEndpointSelectorCache.cs create mode 100644 src/Mvc/Mvc.RazorPages/src/Infrastructure/PageActionEndpointDataSourceFactory.cs create mode 100644 src/Mvc/Mvc.RazorPages/src/Infrastructure/PageActionEndpointDataSourceIdProvider.cs create mode 100644 src/Mvc/Mvc.RazorPages/src/Infrastructure/PageEndpointDataSourceIdMetadata.cs create mode 100644 src/Mvc/test/Mvc.FunctionalTests/RoutingAcrossPipelineBranchesTest.cs create mode 100644 src/Mvc/test/WebSites/RoutingWebSite/Controllers/BranchesController.cs create mode 100644 src/Mvc/test/WebSites/RoutingWebSite/StartupRoutingDifferentBranches.cs diff --git a/src/Mvc/Mvc.Core/src/Builder/ControllerEndpointRouteBuilderExtensions.cs b/src/Mvc/Mvc.Core/src/Builder/ControllerEndpointRouteBuilderExtensions.cs index 6c14cca67f..d2ce072066 100644 --- a/src/Mvc/Mvc.Core/src/Builder/ControllerEndpointRouteBuilderExtensions.cs +++ b/src/Mvc/Mvc.Core/src/Builder/ControllerEndpointRouteBuilderExtensions.cs @@ -5,10 +5,10 @@ using System; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc.Core; +using Microsoft.AspNetCore.Mvc.Infrastructure; using Microsoft.AspNetCore.Mvc.Routing; using Microsoft.AspNetCore.Routing; using Microsoft.AspNetCore.Routing.Constraints; -using Microsoft.AspNetCore.Routing.Patterns; using Microsoft.Extensions.DependencyInjection; namespace Microsoft.AspNetCore.Builder @@ -213,7 +213,9 @@ namespace Microsoft.AspNetCore.Builder EnsureControllerServices(endpoints); // Called for side-effect to make sure that the data source is registered. - GetOrCreateDataSource(endpoints).CreateInertEndpoints = true; + var dataSource = GetOrCreateDataSource(endpoints); + dataSource.CreateInertEndpoints = true; + RegisterInCache(endpoints.ServiceProvider, dataSource); // Maps a fallback endpoint with an empty delegate. This is OK because // we don't expect the delegate to run. @@ -222,6 +224,7 @@ namespace Microsoft.AspNetCore.Builder { // MVC registers a policy that looks for this metadata. b.Metadata.Add(CreateDynamicControllerMetadata(action, controller, area: null)); + b.Metadata.Add(new ControllerEndpointDataSourceIdMetadata(dataSource.DataSourceId)); }); return builder; } @@ -289,7 +292,9 @@ namespace Microsoft.AspNetCore.Builder EnsureControllerServices(endpoints); // Called for side-effect to make sure that the data source is registered. - GetOrCreateDataSource(endpoints).CreateInertEndpoints = true; + var dataSource = GetOrCreateDataSource(endpoints); + dataSource.CreateInertEndpoints = true; + RegisterInCache(endpoints.ServiceProvider, dataSource); // Maps a fallback endpoint with an empty delegate. This is OK because // we don't expect the delegate to run. @@ -298,6 +303,7 @@ namespace Microsoft.AspNetCore.Builder { // MVC registers a policy that looks for this metadata. b.Metadata.Add(CreateDynamicControllerMetadata(action, controller, area: null)); + b.Metadata.Add(new ControllerEndpointDataSourceIdMetadata(dataSource.DataSourceId)); }); return builder; } @@ -357,7 +363,9 @@ namespace Microsoft.AspNetCore.Builder EnsureControllerServices(endpoints); // Called for side-effect to make sure that the data source is registered. - GetOrCreateDataSource(endpoints).CreateInertEndpoints = true; + var dataSource = GetOrCreateDataSource(endpoints); + dataSource.CreateInertEndpoints = true; + RegisterInCache(endpoints.ServiceProvider, dataSource); // Maps a fallback endpoint with an empty delegate. This is OK because // we don't expect the delegate to run. @@ -366,6 +374,7 @@ namespace Microsoft.AspNetCore.Builder { // MVC registers a policy that looks for this metadata. b.Metadata.Add(CreateDynamicControllerMetadata(action, controller, area)); + b.Metadata.Add(new ControllerEndpointDataSourceIdMetadata(dataSource.DataSourceId)); }); return builder; } @@ -435,7 +444,9 @@ namespace Microsoft.AspNetCore.Builder EnsureControllerServices(endpoints); // Called for side-effect to make sure that the data source is registered. - GetOrCreateDataSource(endpoints).CreateInertEndpoints = true; + var dataSource = GetOrCreateDataSource(endpoints); + dataSource.CreateInertEndpoints = true; + RegisterInCache(endpoints.ServiceProvider, dataSource); // Maps a fallback endpoint with an empty delegate. This is OK because // we don't expect the delegate to run. @@ -444,6 +455,7 @@ namespace Microsoft.AspNetCore.Builder { // MVC registers a policy that looks for this metadata. b.Metadata.Add(CreateDynamicControllerMetadata(action, controller, area)); + b.Metadata.Add(new ControllerEndpointDataSourceIdMetadata(dataSource.DataSourceId)); }); return builder; } @@ -507,11 +519,50 @@ namespace Microsoft.AspNetCore.Builder // Called for side-effect to make sure that the data source is registered. var controllerDataSource = GetOrCreateDataSource(endpoints); - + RegisterInCache(endpoints.ServiceProvider, controllerDataSource); + // The data source is just used to share the common order with conventionally routed actions. controllerDataSource.AddDynamicControllerEndpoint(endpoints, pattern, typeof(TTransformer), state); } + /// + /// Adds a specialized to the that will + /// attempt to select a controller action using the route values produced by . + /// + /// The to add the route to. + /// The URL pattern of the route. + /// A state object to provide to the instance. + /// The matching order for the dynamic route. + /// The type of a . + /// + /// + /// This method allows the registration of a and + /// that combine to dynamically select a controller action using custom logic. + /// + /// + /// The instance of will be retrieved from the dependency injection container. + /// Register as transient in ConfigureServices. Using the transient lifetime + /// is required when using . + /// + /// + public static void MapDynamicControllerRoute(this IEndpointRouteBuilder endpoints, string pattern, object state, int order) + where TTransformer : DynamicRouteValueTransformer + { + if (endpoints == null) + { + throw new ArgumentNullException(nameof(endpoints)); + } + + EnsureControllerServices(endpoints); + + // Called for side-effect to make sure that the data source is registered. + var controllerDataSource = GetOrCreateDataSource(endpoints); + RegisterInCache(endpoints.ServiceProvider, controllerDataSource); + + // The data source is just used to share the common order with conventionally routed actions. + controllerDataSource.AddDynamicControllerEndpoint(endpoints, pattern, typeof(TTransformer), state, order); + } + private static DynamicControllerMetadata CreateDynamicControllerMetadata(string action, string controller, string area) { return new DynamicControllerMetadata(new RouteValueDictionary() @@ -539,11 +590,19 @@ namespace Microsoft.AspNetCore.Builder var dataSource = endpoints.DataSources.OfType().FirstOrDefault(); if (dataSource == null) { - dataSource = endpoints.ServiceProvider.GetRequiredService(); + var orderProvider = endpoints.ServiceProvider.GetRequiredService(); + var factory = endpoints.ServiceProvider.GetRequiredService(); + dataSource = factory.Create(orderProvider.GetOrCreateOrderedEndpointsSequenceProvider(endpoints)); endpoints.DataSources.Add(dataSource); } return dataSource; } + + private static void RegisterInCache(IServiceProvider serviceProvider, ControllerActionEndpointDataSource dataSource) + { + var cache = serviceProvider.GetRequiredService(); + cache.AddDataSource(dataSource); + } } } diff --git a/src/Mvc/Mvc.Core/src/DependencyInjection/MvcCoreServiceCollectionExtensions.cs b/src/Mvc/Mvc.Core/src/DependencyInjection/MvcCoreServiceCollectionExtensions.cs index 4f5593e86a..3c9233433f 100644 --- a/src/Mvc/Mvc.Core/src/DependencyInjection/MvcCoreServiceCollectionExtensions.cs +++ b/src/Mvc/Mvc.Core/src/DependencyInjection/MvcCoreServiceCollectionExtensions.cs @@ -269,10 +269,11 @@ namespace Microsoft.Extensions.DependencyInjection // // Endpoint Routing / Endpoints // - services.TryAddSingleton(); - services.TryAddSingleton(); + services.TryAddSingleton(); + services.TryAddSingleton(); + services.TryAddSingleton(); services.TryAddSingleton(); - services.TryAddSingleton(); + services.TryAddSingleton(); services.TryAddEnumerable(ServiceDescriptor.Singleton()); // diff --git a/src/Mvc/Mvc.Core/src/DependencyInjection/OrderedEndpointsSequenceProvider.cs b/src/Mvc/Mvc.Core/src/Infrastructure/OrderedEndpointsSequenceProvider.cs similarity index 83% rename from src/Mvc/Mvc.Core/src/DependencyInjection/OrderedEndpointsSequenceProvider.cs rename to src/Mvc/Mvc.Core/src/Infrastructure/OrderedEndpointsSequenceProvider.cs index 132f7dfb6d..701a5ff2ef 100644 --- a/src/Mvc/Mvc.Core/src/DependencyInjection/OrderedEndpointsSequenceProvider.cs +++ b/src/Mvc/Mvc.Core/src/Infrastructure/OrderedEndpointsSequenceProvider.cs @@ -1,26 +1,23 @@ // 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. +using System.Threading; + namespace Microsoft.AspNetCore.Mvc.Infrastructure { internal class OrderedEndpointsSequenceProvider { - private object Lock = new object(); - // In traditional conventional routing setup, the routes defined by a user have a order // defined by how they are added into the list. We would like to maintain the same order when building // up the endpoints too. // // Start with an order of '1' for conventional routes as attribute routes have a default order of '0'. // This is for scenarios dealing with migrating existing Router based code to Endpoint Routing world. - private int _current = 1; + private int _current = 0; public int GetNext() { - lock (Lock) - { - return _current++; - } + return Interlocked.Increment(ref _current); } } } diff --git a/src/Mvc/Mvc.Core/src/Infrastructure/OrderedEndpointsSequenceProviderCache.cs b/src/Mvc/Mvc.Core/src/Infrastructure/OrderedEndpointsSequenceProviderCache.cs new file mode 100644 index 0000000000..e3795c4bdc --- /dev/null +++ b/src/Mvc/Mvc.Core/src/Infrastructure/OrderedEndpointsSequenceProviderCache.cs @@ -0,0 +1,18 @@ +// 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. + +using System.Collections.Concurrent; +using Microsoft.AspNetCore.Routing; + +namespace Microsoft.AspNetCore.Mvc.Infrastructure +{ + internal class OrderedEndpointsSequenceProviderCache + { + private readonly ConcurrentDictionary _sequenceProviderCache = new(); + + public OrderedEndpointsSequenceProvider GetOrCreateOrderedEndpointsSequenceProvider(IEndpointRouteBuilder endpoints) + { + return _sequenceProviderCache.GetOrAdd(endpoints, new OrderedEndpointsSequenceProvider()); + } + } +} diff --git a/src/Mvc/Mvc.Core/src/Routing/ControllerActionEndpointDataSource.cs b/src/Mvc/Mvc.Core/src/Routing/ControllerActionEndpointDataSource.cs index fb9288b9cf..93a05e2455 100644 --- a/src/Mvc/Mvc.Core/src/Routing/ControllerActionEndpointDataSource.cs +++ b/src/Mvc/Mvc.Core/src/Routing/ControllerActionEndpointDataSource.cs @@ -19,13 +19,17 @@ namespace Microsoft.AspNetCore.Mvc.Routing private readonly List _routes; public ControllerActionEndpointDataSource( + ControllerActionEndpointDataSourceIdProvider dataSourceIdProvider, IActionDescriptorCollectionProvider actions, ActionEndpointFactory endpointFactory, OrderedEndpointsSequenceProvider orderSequence) : base(actions) { _endpointFactory = endpointFactory; + + DataSourceId = dataSourceIdProvider.CreateId(); _orderSequence = orderSequence; + _routes = new List(); DefaultBuilder = new ControllerActionEndpointConventionBuilder(Lock, Conventions); @@ -35,6 +39,8 @@ namespace Microsoft.AspNetCore.Mvc.Routing Subscribe(); } + public int DataSourceId { get; } + public ControllerActionEndpointConventionBuilder DefaultBuilder { get; } // Used to control whether we create 'inert' (non-routable) endpoints for use in dynamic @@ -101,12 +107,12 @@ namespace Microsoft.AspNetCore.Mvc.Routing return endpoints; } - internal void AddDynamicControllerEndpoint(IEndpointRouteBuilder endpoints, string pattern, Type transformerType, object state) + internal void AddDynamicControllerEndpoint(IEndpointRouteBuilder endpoints, string pattern, Type transformerType, object state, int? order = null) { CreateInertEndpoints = true; lock (Lock) { - var order = _orderSequence.GetNext(); + order ??= _orderSequence.GetNext(); endpoints.Map( pattern, @@ -116,8 +122,9 @@ namespace Microsoft.AspNetCore.Mvc.Routing }) .Add(b => { - ((RouteEndpointBuilder)b).Order = order; + ((RouteEndpointBuilder)b).Order = order.Value; b.Metadata.Add(new DynamicControllerRouteValueTransformerMetadata(transformerType, state)); + b.Metadata.Add(new ControllerEndpointDataSourceIdMetadata(DataSourceId)); }); } } diff --git a/src/Mvc/Mvc.Core/src/Routing/ControllerActionEndpointDataSourceFactory.cs b/src/Mvc/Mvc.Core/src/Routing/ControllerActionEndpointDataSourceFactory.cs new file mode 100644 index 0000000000..0bb0d591a5 --- /dev/null +++ b/src/Mvc/Mvc.Core/src/Routing/ControllerActionEndpointDataSourceFactory.cs @@ -0,0 +1,29 @@ +// 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. + +using Microsoft.AspNetCore.Mvc.Routing; + +namespace Microsoft.AspNetCore.Mvc.Infrastructure +{ + internal class ControllerActionEndpointDataSourceFactory + { + private readonly ControllerActionEndpointDataSourceIdProvider _dataSourceIdProvider; + private readonly IActionDescriptorCollectionProvider _actions; + private readonly ActionEndpointFactory _factory; + + public ControllerActionEndpointDataSourceFactory( + ControllerActionEndpointDataSourceIdProvider dataSourceIdProvider, + IActionDescriptorCollectionProvider actions, + ActionEndpointFactory factory) + { + _dataSourceIdProvider = dataSourceIdProvider; + _actions = actions; + _factory = factory; + } + + public ControllerActionEndpointDataSource Create(OrderedEndpointsSequenceProvider orderProvider) + { + return new ControllerActionEndpointDataSource(_dataSourceIdProvider, _actions, _factory, orderProvider); + } + } +} diff --git a/src/Mvc/Mvc.Core/src/Routing/ControllerActionEndpointDataSourceIdProvider.cs b/src/Mvc/Mvc.Core/src/Routing/ControllerActionEndpointDataSourceIdProvider.cs new file mode 100644 index 0000000000..0c9ec72b0d --- /dev/null +++ b/src/Mvc/Mvc.Core/src/Routing/ControllerActionEndpointDataSourceIdProvider.cs @@ -0,0 +1,17 @@ +// 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. + +using System.Threading; + +namespace Microsoft.AspNetCore.Mvc.Routing +{ + internal class ControllerActionEndpointDataSourceIdProvider + { + private int _nextId = 1; + + internal int CreateId() + { + return Interlocked.Increment(ref _nextId); + } + } +} diff --git a/src/Mvc/Mvc.Core/src/Routing/ControllerEndpointDataSourceIdMetadata.cs b/src/Mvc/Mvc.Core/src/Routing/ControllerEndpointDataSourceIdMetadata.cs new file mode 100644 index 0000000000..ab83ea4155 --- /dev/null +++ b/src/Mvc/Mvc.Core/src/Routing/ControllerEndpointDataSourceIdMetadata.cs @@ -0,0 +1,15 @@ +// 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. + +namespace Microsoft.AspNetCore.Mvc.Routing +{ + internal class ControllerEndpointDataSourceIdMetadata + { + public ControllerEndpointDataSourceIdMetadata(int id) + { + Id = id; + } + + public int Id { get; } + } +} diff --git a/src/Mvc/Mvc.Core/src/Routing/DynamicControllerEndpointMatcherPolicy.cs b/src/Mvc/Mvc.Core/src/Routing/DynamicControllerEndpointMatcherPolicy.cs index 5f30a03eb7..bd9425ae5c 100644 --- a/src/Mvc/Mvc.Core/src/Routing/DynamicControllerEndpointMatcherPolicy.cs +++ b/src/Mvc/Mvc.Core/src/Routing/DynamicControllerEndpointMatcherPolicy.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; @@ -15,14 +16,14 @@ namespace Microsoft.AspNetCore.Mvc.Routing { internal class DynamicControllerEndpointMatcherPolicy : MatcherPolicy, IEndpointSelectorPolicy { - private readonly DynamicControllerEndpointSelector _selector; + private readonly DynamicControllerEndpointSelectorCache _selectorCache; private readonly EndpointMetadataComparer _comparer; - public DynamicControllerEndpointMatcherPolicy(DynamicControllerEndpointSelector selector, EndpointMetadataComparer comparer) + public DynamicControllerEndpointMatcherPolicy(DynamicControllerEndpointSelectorCache selectorCache, EndpointMetadataComparer comparer) { - if (selector == null) + if (selectorCache == null) { - throw new ArgumentNullException(nameof(selector)); + throw new ArgumentNullException(nameof(selectorCache)); } if (comparer == null) @@ -30,7 +31,7 @@ namespace Microsoft.AspNetCore.Mvc.Routing throw new ArgumentNullException(nameof(comparer)); } - _selector = selector; + _selectorCache = selectorCache; _comparer = comparer; } @@ -79,6 +80,9 @@ namespace Microsoft.AspNetCore.Mvc.Routing throw new ArgumentNullException(nameof(candidates)); } + // The per-route selector, must be the same for all the endpoints we are dealing with. + DynamicControllerEndpointSelector selector = null; + // There's no real benefit here from trying to avoid the async state machine. // We only execute on nodes that contain a dynamic policy, and thus always have // to await something. @@ -127,7 +131,9 @@ namespace Microsoft.AspNetCore.Mvc.Routing continue; } - var endpoints = _selector.SelectEndpoints(dynamicValues); + selector = ResolveSelector(selector, endpoint); + + var endpoints = selector.SelectEndpoints(dynamicValues); if (endpoints.Count == 0 && dynamicControllerMetadata != null) { // Naving no match for a fallback is a configuration error. We can't really check @@ -172,5 +178,14 @@ namespace Microsoft.AspNetCore.Mvc.Routing candidates.ExpandEndpoint(i, endpoints, _comparer); } } + + private DynamicControllerEndpointSelector ResolveSelector(DynamicControllerEndpointSelector currentSelector, Endpoint endpoint) + { + var selector = _selectorCache.GetEndpointSelector(endpoint); + + Debug.Assert(currentSelector == null || ReferenceEquals(currentSelector, selector)); + + return selector; + } } } diff --git a/src/Mvc/Mvc.Core/src/Routing/DynamicControllerEndpointSelector.cs b/src/Mvc/Mvc.Core/src/Routing/DynamicControllerEndpointSelector.cs index f07b22b94b..6281fc4bc2 100644 --- a/src/Mvc/Mvc.Core/src/Routing/DynamicControllerEndpointSelector.cs +++ b/src/Mvc/Mvc.Core/src/Routing/DynamicControllerEndpointSelector.cs @@ -1,4 +1,4 @@ -// 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. using System; @@ -11,25 +11,15 @@ namespace Microsoft.AspNetCore.Mvc.Routing { internal class DynamicControllerEndpointSelector : IDisposable { - private readonly EndpointDataSource _dataSource; private readonly DataSourceDependentCache> _cache; - public DynamicControllerEndpointSelector(ControllerActionEndpointDataSource dataSource) - : this((EndpointDataSource)dataSource) - { - } - - // Exposed for tests. We need to accept a more specific type in the constructor for DI - // to work. - protected DynamicControllerEndpointSelector(EndpointDataSource dataSource) + public DynamicControllerEndpointSelector(EndpointDataSource dataSource) { if (dataSource == null) { throw new ArgumentNullException(nameof(dataSource)); } - _dataSource = dataSource; - _cache = new DataSourceDependentCache>(dataSource, Initialize); } diff --git a/src/Mvc/Mvc.Core/src/Routing/DynamicControllerEndpointSelectorCache.cs b/src/Mvc/Mvc.Core/src/Routing/DynamicControllerEndpointSelectorCache.cs new file mode 100644 index 0000000000..9d14984312 --- /dev/null +++ b/src/Mvc/Mvc.Core/src/Routing/DynamicControllerEndpointSelectorCache.cs @@ -0,0 +1,46 @@ +// 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. + +using System; +using System.Collections.Concurrent; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Routing; + +namespace Microsoft.AspNetCore.Mvc.Routing +{ + internal class DynamicControllerEndpointSelectorCache + { + private readonly ConcurrentDictionary _dataSourceCache = new(); + private readonly ConcurrentDictionary _endpointSelectorCache = new(); + + public void AddDataSource(ControllerActionEndpointDataSource dataSource) + { + _dataSourceCache.GetOrAdd(dataSource.DataSourceId, dataSource); + } + + // For testing purposes only + internal void AddDataSource(EndpointDataSource dataSource, int key) => + _dataSourceCache.GetOrAdd(key, dataSource); + + public DynamicControllerEndpointSelector GetEndpointSelector(Endpoint endpoint) + { + if (endpoint?.Metadata == null) + { + return null; + } + + var dataSourceId = endpoint.Metadata.GetMetadata(); + return _endpointSelectorCache.GetOrAdd(dataSourceId.Id, key => EnsureDataSource(key)); + } + + private DynamicControllerEndpointSelector EnsureDataSource(int key) + { + if (!_dataSourceCache.TryGetValue(key, out var dataSource)) + { + throw new InvalidOperationException($"Data source with key '{key}' not registered."); + } + + return new DynamicControllerEndpointSelector(dataSource); + } + } +} diff --git a/src/Mvc/Mvc.Core/test/Routing/ControllerActionEndpointDataSourceTest.cs b/src/Mvc/Mvc.Core/test/Routing/ControllerActionEndpointDataSourceTest.cs index 6001dab415..8ee740f2c1 100644 --- a/src/Mvc/Mvc.Core/test/Routing/ControllerActionEndpointDataSourceTest.cs +++ b/src/Mvc/Mvc.Core/test/Routing/ControllerActionEndpointDataSourceTest.cs @@ -245,8 +245,7 @@ namespace Microsoft.AspNetCore.Mvc.Routing var dataSource = (ControllerActionEndpointDataSource)CreateDataSource(mockDescriptorProvider.Object); dataSource.AddRoute("1", "/1/{controller}/{action}/{id?}", null, null, null); dataSource.AddRoute("2", "/2/{controller}/{action}/{id?}", null, null, null); - - + dataSource.DefaultBuilder.Add(b => { if (b.Metadata.OfType().FirstOrDefault()?.AttributeRouteInfo != null) @@ -385,7 +384,11 @@ namespace Microsoft.AspNetCore.Mvc.Routing private protected override ActionEndpointDataSourceBase CreateDataSource(IActionDescriptorCollectionProvider actions, ActionEndpointFactory endpointFactory) { - return new ControllerActionEndpointDataSource(actions, endpointFactory, new OrderedEndpointsSequenceProvider()); + return new ControllerActionEndpointDataSource( + new ControllerActionEndpointDataSourceIdProvider(), + actions, + endpointFactory, + new OrderedEndpointsSequenceProvider()); } protected override ActionDescriptor CreateActionDescriptor( diff --git a/src/Mvc/Mvc.Core/test/Routing/DynamicControllerEndpointMatcherPolicyTest.cs b/src/Mvc/Mvc.Core/test/Routing/DynamicControllerEndpointMatcherPolicyTest.cs index 03dbeab793..44a8232b07 100644 --- a/src/Mvc/Mvc.Core/test/Routing/DynamicControllerEndpointMatcherPolicyTest.cs +++ b/src/Mvc/Mvc.Core/test/Routing/DynamicControllerEndpointMatcherPolicyTest.cs @@ -19,6 +19,7 @@ namespace Microsoft.AspNetCore.Mvc.Routing { public DynamicControllerEndpointMatcherPolicyTest() { + var dataSourceKey = new ControllerEndpointDataSourceIdMetadata(1); var actions = new ActionDescriptor[] { new ControllerActionDescriptor() @@ -59,12 +60,13 @@ namespace Microsoft.AspNetCore.Mvc.Routing new EndpointMetadataCollection(new object[] { new DynamicControllerRouteValueTransformerMetadata(typeof(CustomTransformer), State), + dataSourceKey }), "dynamic"); DataSource = new DefaultEndpointDataSource(ControllerEndpoints); - Selector = new TestDynamicControllerEndpointSelector(DataSource); + SelectorCache = new TestDynamicControllerEndpointSelectorCache(DataSource, 1); var services = new ServiceCollection(); services.AddRouting(); @@ -88,7 +90,7 @@ namespace Microsoft.AspNetCore.Mvc.Routing private Endpoint DynamicEndpoint { get; } - private DynamicControllerEndpointSelector Selector { get; } + private DynamicControllerEndpointSelectorCache SelectorCache { get; } private IServiceProvider Services { get; } @@ -102,7 +104,7 @@ namespace Microsoft.AspNetCore.Mvc.Routing public async Task ApplyAsync_NoMatch() { // Arrange - var policy = new DynamicControllerEndpointMatcherPolicy(Selector, Comparer); + var policy = new DynamicControllerEndpointMatcherPolicy(SelectorCache, Comparer); var endpoints = new[] { DynamicEndpoint, }; var values = new RouteValueDictionary[] { null, }; @@ -132,7 +134,7 @@ namespace Microsoft.AspNetCore.Mvc.Routing public async Task ApplyAsync_HasMatchNoEndpointFound() { // Arrange - var policy = new DynamicControllerEndpointMatcherPolicy(Selector, Comparer); + var policy = new DynamicControllerEndpointMatcherPolicy(SelectorCache, Comparer); var endpoints = new[] { DynamicEndpoint, }; var values = new RouteValueDictionary[] { null, }; @@ -163,7 +165,7 @@ namespace Microsoft.AspNetCore.Mvc.Routing public async Task ApplyAsync_HasMatchFindsEndpoint_WithoutRouteValues() { // Arrange - var policy = new DynamicControllerEndpointMatcherPolicy(Selector, Comparer); + var policy = new DynamicControllerEndpointMatcherPolicy(SelectorCache, Comparer); var endpoints = new[] { DynamicEndpoint, }; var values = new RouteValueDictionary[] { null, }; @@ -209,7 +211,7 @@ namespace Microsoft.AspNetCore.Mvc.Routing public async Task ApplyAsync_ThrowsForTransformerWithInvalidLifetime() { // Arrange - var policy = new DynamicControllerEndpointMatcherPolicy(Selector, Comparer); + var policy = new DynamicControllerEndpointMatcherPolicy(SelectorCache, Comparer); var endpoints = new[] { DynamicEndpoint, }; var values = new RouteValueDictionary[] { new RouteValueDictionary(new { slug = "test", }), }; @@ -240,7 +242,7 @@ namespace Microsoft.AspNetCore.Mvc.Routing public async Task ApplyAsync_HasMatchFindsEndpoint_WithRouteValues() { // Arrange - var policy = new DynamicControllerEndpointMatcherPolicy(Selector, Comparer); + var policy = new DynamicControllerEndpointMatcherPolicy(SelectorCache, Comparer); var endpoints = new[] { DynamicEndpoint, }; var values = new RouteValueDictionary[] { new RouteValueDictionary(new { slug = "test", }), }; @@ -297,7 +299,7 @@ namespace Microsoft.AspNetCore.Mvc.Routing public async Task ApplyAsync_CanDiscardFoundEndpoints() { // Arrange - var policy = new DynamicControllerEndpointMatcherPolicy(Selector, Comparer); + var policy = new DynamicControllerEndpointMatcherPolicy(SelectorCache, Comparer); var endpoints = new[] { DynamicEndpoint, }; var values = new RouteValueDictionary[] { new RouteValueDictionary(new { slug = "test", }), }; @@ -336,7 +338,7 @@ namespace Microsoft.AspNetCore.Mvc.Routing public async Task ApplyAsync_CanReplaceFoundEndpoints() { // Arrange - var policy = new DynamicControllerEndpointMatcherPolicy(Selector, Comparer); + var policy = new DynamicControllerEndpointMatcherPolicy(SelectorCache, Comparer); var endpoints = new[] { DynamicEndpoint, }; var values = new RouteValueDictionary[] { new RouteValueDictionary(new { slug = "test", }), }; @@ -398,7 +400,7 @@ namespace Microsoft.AspNetCore.Mvc.Routing public async Task ApplyAsync_CanExpandTheListOfFoundEndpoints() { // Arrange - var policy = new DynamicControllerEndpointMatcherPolicy(Selector, Comparer); + var policy = new DynamicControllerEndpointMatcherPolicy(SelectorCache, Comparer); var endpoints = new[] { DynamicEndpoint, }; var values = new RouteValueDictionary[] { new RouteValueDictionary(new { slug = "test", }), }; @@ -437,11 +439,11 @@ namespace Microsoft.AspNetCore.Mvc.Routing Assert.Same(ControllerEndpoints[2], candidates[1].Endpoint); } - private class TestDynamicControllerEndpointSelector : DynamicControllerEndpointSelector + private class TestDynamicControllerEndpointSelectorCache : DynamicControllerEndpointSelectorCache { - public TestDynamicControllerEndpointSelector(EndpointDataSource dataSource) - : base(dataSource) + public TestDynamicControllerEndpointSelectorCache(EndpointDataSource dataSource, int key) { + AddDataSource(dataSource, key); } } diff --git a/src/Mvc/Mvc.RazorPages/src/Builder/RazorPagesEndpointRouteBuilderExtensions.cs b/src/Mvc/Mvc.RazorPages/src/Builder/RazorPagesEndpointRouteBuilderExtensions.cs index bd0c27186b..f8258196b8 100644 --- a/src/Mvc/Mvc.RazorPages/src/Builder/RazorPagesEndpointRouteBuilderExtensions.cs +++ b/src/Mvc/Mvc.RazorPages/src/Builder/RazorPagesEndpointRouteBuilderExtensions.cs @@ -5,6 +5,7 @@ using System; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc.ApplicationModels; +using Microsoft.AspNetCore.Mvc.Infrastructure; using Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure; using Microsoft.AspNetCore.Mvc.Routing; using Microsoft.AspNetCore.Routing; @@ -75,7 +76,9 @@ namespace Microsoft.AspNetCore.Builder EnsureRazorPagesServices(endpoints); // Called for side-effect to make sure that the data source is registered. - GetOrCreateDataSource(endpoints).CreateInertEndpoints = true; + var pageDataSource = GetOrCreateDataSource(endpoints); + pageDataSource.CreateInertEndpoints = true; + RegisterInCache(endpoints.ServiceProvider, pageDataSource); // Maps a fallback endpoint with an empty delegate. This is OK because // we don't expect the delegate to run. @@ -84,6 +87,7 @@ namespace Microsoft.AspNetCore.Builder { // MVC registers a policy that looks for this metadata. b.Metadata.Add(CreateDynamicPageMetadata(page, area: null)); + b.Metadata.Add(new PageEndpointDataSourceIdMetadata(pageDataSource.DataSourceId)); }); return builder; } @@ -141,7 +145,9 @@ namespace Microsoft.AspNetCore.Builder EnsureRazorPagesServices(endpoints); // Called for side-effect to make sure that the data source is registered. - GetOrCreateDataSource(endpoints).CreateInertEndpoints = true; + var pageDataSource = GetOrCreateDataSource(endpoints); + pageDataSource.CreateInertEndpoints = true; + RegisterInCache(endpoints.ServiceProvider, pageDataSource); // Maps a fallback endpoint with an empty delegate. This is OK because // we don't expect the delegate to run. @@ -150,6 +156,7 @@ namespace Microsoft.AspNetCore.Builder { // MVC registers a policy that looks for this metadata. b.Metadata.Add(CreateDynamicPageMetadata(page, area: null)); + b.Metadata.Add(new PageEndpointDataSourceIdMetadata(pageDataSource.DataSourceId)); }); return builder; } @@ -199,7 +206,9 @@ namespace Microsoft.AspNetCore.Builder EnsureRazorPagesServices(endpoints); // Called for side-effect to make sure that the data source is registered. - GetOrCreateDataSource(endpoints).CreateInertEndpoints = true; + var pageDataSource = GetOrCreateDataSource(endpoints); + pageDataSource.CreateInertEndpoints = true; + RegisterInCache(endpoints.ServiceProvider, pageDataSource); // Maps a fallback endpoint with an empty delegate. This is OK because // we don't expect the delegate to run. @@ -208,6 +217,7 @@ namespace Microsoft.AspNetCore.Builder { // MVC registers a policy that looks for this metadata. b.Metadata.Add(CreateDynamicPageMetadata(page, area)); + b.Metadata.Add(new PageEndpointDataSourceIdMetadata(pageDataSource.DataSourceId)); }); return builder; } @@ -267,7 +277,9 @@ namespace Microsoft.AspNetCore.Builder EnsureRazorPagesServices(endpoints); // Called for side-effect to make sure that the data source is registered. - GetOrCreateDataSource(endpoints).CreateInertEndpoints = true; + var pageDataSource = GetOrCreateDataSource(endpoints); + pageDataSource.CreateInertEndpoints = true; + RegisterInCache(endpoints.ServiceProvider, pageDataSource); // Maps a fallback endpoint with an empty delegate. This is OK because // we don't expect the delegate to run. @@ -276,6 +288,7 @@ namespace Microsoft.AspNetCore.Builder { // MVC registers a policy that looks for this metadata. b.Metadata.Add(CreateDynamicPageMetadata(page, area)); + b.Metadata.Add(new PageEndpointDataSourceIdMetadata(pageDataSource.DataSourceId)); }); return builder; } @@ -337,9 +350,51 @@ namespace Microsoft.AspNetCore.Builder EnsureRazorPagesServices(endpoints); // Called for side-effect to make sure that the data source is registered. - var dataSource = GetOrCreateDataSource(endpoints); + var pageDataSource = GetOrCreateDataSource(endpoints); + RegisterInCache(endpoints.ServiceProvider, pageDataSource); - dataSource.AddDynamicPageEndpoint(endpoints, pattern, typeof(TTransformer), state); + pageDataSource.AddDynamicPageEndpoint(endpoints, pattern, typeof(TTransformer), state); + } + + /// + /// Adds a specialized to the that will + /// attempt to select a page using the route values produced by . + /// + /// The to add the route to. + /// The URL pattern of the route. + /// A state object to provide to the instance. + /// The matching order for the dynamic route. + /// The type of a . + /// + /// + /// This method allows the registration of a and + /// that combine to dynamically select a page using custom logic. + /// + /// + /// The instance of will be retrieved from the dependency injection container. + /// Register with the desired service lifetime in ConfigureServices. + /// + /// + public static void MapDynamicPageRoute(this IEndpointRouteBuilder endpoints, string pattern, object state, int order) + where TTransformer : DynamicRouteValueTransformer + { + if (endpoints == null) + { + throw new ArgumentNullException(nameof(endpoints)); + } + + if (pattern == null) + { + throw new ArgumentNullException(nameof(pattern)); + } + + EnsureRazorPagesServices(endpoints); + + // Called for side-effect to make sure that the data source is registered. + var pageDataSource = GetOrCreateDataSource(endpoints); + RegisterInCache(endpoints.ServiceProvider, pageDataSource); + + pageDataSource.AddDynamicPageEndpoint(endpoints, pattern, typeof(TTransformer), state, order); } private static DynamicPageMetadata CreateDynamicPageMetadata(string page, string area) @@ -353,7 +408,7 @@ namespace Microsoft.AspNetCore.Builder private static void EnsureRazorPagesServices(IEndpointRouteBuilder endpoints) { - var marker = endpoints.ServiceProvider.GetService(); + var marker = endpoints.ServiceProvider.GetService(); if (marker == null) { throw new InvalidOperationException(Mvc.Core.Resources.FormatUnableToFindServices( @@ -368,11 +423,19 @@ namespace Microsoft.AspNetCore.Builder var dataSource = endpoints.DataSources.OfType().FirstOrDefault(); if (dataSource == null) { - dataSource = endpoints.ServiceProvider.GetRequiredService(); + var orderProviderCache = endpoints.ServiceProvider.GetRequiredService(); + var factory = endpoints.ServiceProvider.GetRequiredService(); + dataSource = factory.Create(orderProviderCache.GetOrCreateOrderedEndpointsSequenceProvider(endpoints)); endpoints.DataSources.Add(dataSource); } return dataSource; } + + private static void RegisterInCache(IServiceProvider serviceProvider, PageActionEndpointDataSource dataSource) + { + var cache = serviceProvider.GetRequiredService(); + cache.AddDataSource(dataSource); + } } } diff --git a/src/Mvc/Mvc.RazorPages/src/DependencyInjection/MvcRazorPagesMvcCoreBuilderExtensions.cs b/src/Mvc/Mvc.RazorPages/src/DependencyInjection/MvcRazorPagesMvcCoreBuilderExtensions.cs index c17c80927a..81e7fbbb30 100644 --- a/src/Mvc/Mvc.RazorPages/src/DependencyInjection/MvcRazorPagesMvcCoreBuilderExtensions.cs +++ b/src/Mvc/Mvc.RazorPages/src/DependencyInjection/MvcRazorPagesMvcCoreBuilderExtensions.cs @@ -89,15 +89,15 @@ namespace Microsoft.Extensions.DependencyInjection // Routing services.TryAddEnumerable(ServiceDescriptor.Singleton()); services.TryAddEnumerable(ServiceDescriptor.Singleton()); - services.TryAddSingleton(); + services.TryAddSingleton(); + services.TryAddSingleton(); // Action description and invocation services.TryAddEnumerable( ServiceDescriptor.Singleton()); services.TryAddEnumerable( ServiceDescriptor.Singleton()); - services.TryAddSingleton(); - services.TryAddSingleton(); + services.TryAddSingleton(); services.TryAddEnumerable(ServiceDescriptor.Singleton()); services.TryAddEnumerable( diff --git a/src/Mvc/Mvc.RazorPages/src/Infrastructure/DynamicPageEndpointMatcherPolicy.cs b/src/Mvc/Mvc.RazorPages/src/Infrastructure/DynamicPageEndpointMatcherPolicy.cs index 337fe3e5f0..eb01da5205 100644 --- a/src/Mvc/Mvc.RazorPages/src/Infrastructure/DynamicPageEndpointMatcherPolicy.cs +++ b/src/Mvc/Mvc.RazorPages/src/Infrastructure/DynamicPageEndpointMatcherPolicy.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; @@ -15,15 +16,15 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure { internal class DynamicPageEndpointMatcherPolicy : MatcherPolicy, IEndpointSelectorPolicy { - private readonly DynamicPageEndpointSelector _selector; + private readonly DynamicPageEndpointSelectorCache _selectorCache; private readonly PageLoader _loader; private readonly EndpointMetadataComparer _comparer; - public DynamicPageEndpointMatcherPolicy(DynamicPageEndpointSelector selector, PageLoader loader, EndpointMetadataComparer comparer) + public DynamicPageEndpointMatcherPolicy(DynamicPageEndpointSelectorCache selectorCache, PageLoader loader, EndpointMetadataComparer comparer) { - if (selector == null) + if (selectorCache == null) { - throw new ArgumentNullException(nameof(selector)); + throw new ArgumentNullException(nameof(selectorCache)); } if (loader == null) @@ -36,7 +37,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure throw new ArgumentNullException(nameof(comparer)); } - _selector = selector; + _selectorCache = selectorCache; _loader = loader; _comparer = comparer; } @@ -86,6 +87,8 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure throw new ArgumentNullException(nameof(candidates)); } + DynamicPageEndpointSelector selector = null; + // There's no real benefit here from trying to avoid the async state machine. // We only execute on nodes that contain a dynamic policy, and thus always have // to await something. @@ -132,7 +135,8 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure continue; } - var endpoints = _selector.SelectEndpoints(dynamicValues); + selector = ResolveSelector(selector, endpoint); + var endpoints = selector.SelectEndpoints(dynamicValues); if (endpoints.Count == 0 && dynamicPageMetadata != null) { // Having no match for a fallback is a configuration error. We can't really check @@ -196,5 +200,15 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure candidates.ExpandEndpoint(i, loadedEndpoints, _comparer); } } + + private DynamicPageEndpointSelector ResolveSelector(DynamicPageEndpointSelector currentSelector, Endpoint endpoint) + { + var selector = _selectorCache.GetEndpointSelector(endpoint); + + Debug.Assert(currentSelector == null || ReferenceEquals(currentSelector, selector)); + + return selector; + } + } } diff --git a/src/Mvc/Mvc.RazorPages/src/Infrastructure/DynamicPageEndpointSelector.cs b/src/Mvc/Mvc.RazorPages/src/Infrastructure/DynamicPageEndpointSelector.cs index b333f2947b..ac8c9af69c 100644 --- a/src/Mvc/Mvc.RazorPages/src/Infrastructure/DynamicPageEndpointSelector.cs +++ b/src/Mvc/Mvc.RazorPages/src/Infrastructure/DynamicPageEndpointSelector.cs @@ -1,4 +1,4 @@ -// 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. using System; @@ -14,14 +14,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure private readonly EndpointDataSource _dataSource; private readonly DataSourceDependentCache> _cache; - public DynamicPageEndpointSelector(PageActionEndpointDataSource dataSource) - : this((EndpointDataSource)dataSource) - { - } - - // Exposed for tests. We need to accept a more specific type in the constructor for DI - // to work. - protected DynamicPageEndpointSelector(EndpointDataSource dataSource) + public DynamicPageEndpointSelector(EndpointDataSource dataSource) { if (dataSource == null) { diff --git a/src/Mvc/Mvc.RazorPages/src/Infrastructure/DynamicPageEndpointSelectorCache.cs b/src/Mvc/Mvc.RazorPages/src/Infrastructure/DynamicPageEndpointSelectorCache.cs new file mode 100644 index 0000000000..5eb8c9ab1f --- /dev/null +++ b/src/Mvc/Mvc.RazorPages/src/Infrastructure/DynamicPageEndpointSelectorCache.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Routing; + +namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure +{ + internal class DynamicPageEndpointSelectorCache + { + private readonly ConcurrentDictionary _dataSourceCache = new(); + private readonly ConcurrentDictionary _endpointSelectorCache = new(); + + public void AddDataSource(PageActionEndpointDataSource dataSource) + { + _dataSourceCache.GetOrAdd(dataSource.DataSourceId, dataSource); + } + + // For testing purposes only + internal void AddDataSource(EndpointDataSource dataSource, int key) => + _dataSourceCache.GetOrAdd(key, dataSource); + + public DynamicPageEndpointSelector GetEndpointSelector(Endpoint endpoint) + { + if (endpoint?.Metadata == null) + { + return null; + } + + var dataSourceId = endpoint.Metadata.GetMetadata(); + return _endpointSelectorCache.GetOrAdd(dataSourceId.Id, key => EnsureDataSource(key)); + } + + private DynamicPageEndpointSelector EnsureDataSource(int key) + { + if (!_dataSourceCache.TryGetValue(key, out var dataSource)) + { + throw new InvalidOperationException($"Data source with key '{key}' not registered."); + } + + return new DynamicPageEndpointSelector(dataSource); + } + } +} diff --git a/src/Mvc/Mvc.RazorPages/src/Infrastructure/PageActionEndpointDataSource.cs b/src/Mvc/Mvc.RazorPages/src/Infrastructure/PageActionEndpointDataSource.cs index cefb410c73..f3ae54a251 100644 --- a/src/Mvc/Mvc.RazorPages/src/Infrastructure/PageActionEndpointDataSource.cs +++ b/src/Mvc/Mvc.RazorPages/src/Infrastructure/PageActionEndpointDataSource.cs @@ -18,11 +18,13 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure private readonly OrderedEndpointsSequenceProvider _orderSequence; public PageActionEndpointDataSource( + PageActionEndpointDataSourceIdProvider dataSourceIdProvider, IActionDescriptorCollectionProvider actions, ActionEndpointFactory endpointFactory, OrderedEndpointsSequenceProvider orderedEndpoints) : base(actions) { + DataSourceId = dataSourceIdProvider.CreateId(); _endpointFactory = endpointFactory; _orderSequence = orderedEndpoints; DefaultBuilder = new PageActionEndpointConventionBuilder(Lock, Conventions); @@ -32,6 +34,8 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure Subscribe(); } + public int DataSourceId { get; } + public PageActionEndpointConventionBuilder DefaultBuilder { get; } // Used to control whether we create 'inert' (non-routable) endpoints for use in dynamic @@ -53,12 +57,12 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure return endpoints; } - internal void AddDynamicPageEndpoint(IEndpointRouteBuilder endpoints, string pattern, Type transformerType, object state) + internal void AddDynamicPageEndpoint(IEndpointRouteBuilder endpoints, string pattern, Type transformerType, object state, int? order = null) { CreateInertEndpoints = true; lock (Lock) { - var order = _orderSequence.GetNext(); + order ??= _orderSequence.GetNext(); endpoints.Map( pattern, @@ -68,11 +72,11 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure }) .Add(b => { - ((RouteEndpointBuilder)b).Order = order; + ((RouteEndpointBuilder)b).Order = order.Value; b.Metadata.Add(new DynamicPageRouteValueTransformerMetadata(transformerType, state)); + b.Metadata.Add(new PageEndpointDataSourceIdMetadata(DataSourceId)); }); } } } } - diff --git a/src/Mvc/Mvc.RazorPages/src/Infrastructure/PageActionEndpointDataSourceFactory.cs b/src/Mvc/Mvc.RazorPages/src/Infrastructure/PageActionEndpointDataSourceFactory.cs new file mode 100644 index 0000000000..275961d192 --- /dev/null +++ b/src/Mvc/Mvc.RazorPages/src/Infrastructure/PageActionEndpointDataSourceFactory.cs @@ -0,0 +1,30 @@ +// 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. + +using Microsoft.AspNetCore.Mvc.Infrastructure; +using Microsoft.AspNetCore.Mvc.Routing; + +namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure +{ + internal class PageActionEndpointDataSourceFactory + { + private readonly PageActionEndpointDataSourceIdProvider _dataSourceIdProvider; + private readonly IActionDescriptorCollectionProvider _actions; + private readonly ActionEndpointFactory _endpointFactory; + + public PageActionEndpointDataSourceFactory( + PageActionEndpointDataSourceIdProvider dataSourceIdProvider, + IActionDescriptorCollectionProvider actions, + ActionEndpointFactory endpointFactory) + { + _dataSourceIdProvider = dataSourceIdProvider; + _actions = actions; + _endpointFactory = endpointFactory; + } + + public PageActionEndpointDataSource Create(OrderedEndpointsSequenceProvider orderProvider) + { + return new PageActionEndpointDataSource(_dataSourceIdProvider, _actions, _endpointFactory, orderProvider); + } + } +} diff --git a/src/Mvc/Mvc.RazorPages/src/Infrastructure/PageActionEndpointDataSourceIdProvider.cs b/src/Mvc/Mvc.RazorPages/src/Infrastructure/PageActionEndpointDataSourceIdProvider.cs new file mode 100644 index 0000000000..23aed3fae1 --- /dev/null +++ b/src/Mvc/Mvc.RazorPages/src/Infrastructure/PageActionEndpointDataSourceIdProvider.cs @@ -0,0 +1,17 @@ +// 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. + +using System.Threading; + +namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure +{ + internal class PageActionEndpointDataSourceIdProvider + { + private int _nextId = 1; + + internal int CreateId() + { + return Interlocked.Increment(ref _nextId); + } + } +} diff --git a/src/Mvc/Mvc.RazorPages/src/Infrastructure/PageEndpointDataSourceIdMetadata.cs b/src/Mvc/Mvc.RazorPages/src/Infrastructure/PageEndpointDataSourceIdMetadata.cs new file mode 100644 index 0000000000..11353b6932 --- /dev/null +++ b/src/Mvc/Mvc.RazorPages/src/Infrastructure/PageEndpointDataSourceIdMetadata.cs @@ -0,0 +1,15 @@ +// 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. + +namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure +{ + internal class PageEndpointDataSourceIdMetadata + { + public PageEndpointDataSourceIdMetadata(int id) + { + Id = id; + } + + public int Id { get; } + } +} diff --git a/src/Mvc/Mvc.RazorPages/test/Infrastructure/DynamicPageEndpointMatcherPolicyTest.cs b/src/Mvc/Mvc.RazorPages/test/Infrastructure/DynamicPageEndpointMatcherPolicyTest.cs index 7781158e04..8273635588 100644 --- a/src/Mvc/Mvc.RazorPages/test/Infrastructure/DynamicPageEndpointMatcherPolicyTest.cs +++ b/src/Mvc/Mvc.RazorPages/test/Infrastructure/DynamicPageEndpointMatcherPolicyTest.cs @@ -51,12 +51,13 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure new EndpointMetadataCollection(new object[] { new DynamicPageRouteValueTransformerMetadata(typeof(CustomTransformer), State), + new PageEndpointDataSourceIdMetadata(1), }), "dynamic"); DataSource = new DefaultEndpointDataSource(PageEndpoints); - Selector = new TestDynamicPageEndpointSelector(DataSource); + SelectorCache = new TestDynamicPageEndpointSelectorCache(DataSource); var services = new ServiceCollection(); services.AddRouting(); @@ -106,7 +107,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure private PageLoader Loader { get; } - private DynamicPageEndpointSelector Selector { get; } + private DynamicPageEndpointSelectorCache SelectorCache { get; } private object State { get; } @@ -120,7 +121,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure public async Task ApplyAsync_NoMatch() { // Arrange - var policy = new DynamicPageEndpointMatcherPolicy(Selector, Loader, Comparer); + var policy = new DynamicPageEndpointMatcherPolicy(SelectorCache, Loader, Comparer); var endpoints = new[] { DynamicEndpoint, }; var values = new RouteValueDictionary[] { null, }; @@ -150,7 +151,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure public async Task ApplyAsync_HasMatchNoEndpointFound() { // Arrange - var policy = new DynamicPageEndpointMatcherPolicy(Selector, Loader, Comparer); + var policy = new DynamicPageEndpointMatcherPolicy(SelectorCache, Loader, Comparer); var endpoints = new[] { DynamicEndpoint, }; var values = new RouteValueDictionary[] { null, }; @@ -181,7 +182,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure public async Task ApplyAsync_HasMatchFindsEndpoint_WithoutRouteValues() { // Arrange - var policy = new DynamicPageEndpointMatcherPolicy(Selector, Loader, Comparer); + var policy = new DynamicPageEndpointMatcherPolicy(SelectorCache, Loader, Comparer); var endpoints = new[] { DynamicEndpoint, }; var values = new RouteValueDictionary[] { null, }; @@ -221,7 +222,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure public async Task ApplyAsync_HasMatchFindsEndpoint_WithRouteValues() { // Arrange - var policy = new DynamicPageEndpointMatcherPolicy(Selector, Loader, Comparer); + var policy = new DynamicPageEndpointMatcherPolicy(SelectorCache, Loader, Comparer); var endpoints = new[] { DynamicEndpoint, }; var values = new RouteValueDictionary[] { new RouteValueDictionary(new { slug = "test", }), }; @@ -272,7 +273,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure public async Task ApplyAsync_Throws_ForTransformersWithInvalidLifetime() { // Arrange - var policy = new DynamicPageEndpointMatcherPolicy(Selector, Loader, Comparer); + var policy = new DynamicPageEndpointMatcherPolicy(SelectorCache, Loader, Comparer); var endpoints = new[] { DynamicEndpoint, }; var values = new RouteValueDictionary[] { new RouteValueDictionary(new { slug = "test", }), }; @@ -302,7 +303,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure public async Task ApplyAsync_CanDiscardFoundEndpoints() { // Arrange - var policy = new DynamicPageEndpointMatcherPolicy(Selector, Loader, Comparer); + var policy = new DynamicPageEndpointMatcherPolicy(SelectorCache, Loader, Comparer); var endpoints = new[] { DynamicEndpoint, }; var values = new RouteValueDictionary[] { new RouteValueDictionary(new { slug = "test", }), }; @@ -340,7 +341,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure public async Task ApplyAsync_CanReplaceFoundEndpoints() { // Arrange - var policy = new DynamicPageEndpointMatcherPolicy(Selector, Loader, Comparer); + var policy = new DynamicPageEndpointMatcherPolicy(SelectorCache, Loader, Comparer); var endpoints = new[] { DynamicEndpoint, }; var values = new RouteValueDictionary[] { new RouteValueDictionary(new { slug = "test", }), }; @@ -400,7 +401,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure public async Task ApplyAsync_CanExpandTheListOfFoundEndpoints() { // Arrange - var policy = new DynamicPageEndpointMatcherPolicy(Selector, Loader, Comparer); + var policy = new DynamicPageEndpointMatcherPolicy(SelectorCache, Loader, Comparer); var endpoints = new[] { DynamicEndpoint, }; var values = new RouteValueDictionary[] { new RouteValueDictionary(new { slug = "test", }), }; @@ -438,11 +439,11 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure Assert.Same(LoadedEndpoints[1], candidates[1].Endpoint); } - private class TestDynamicPageEndpointSelector : DynamicPageEndpointSelector + private class TestDynamicPageEndpointSelectorCache : DynamicPageEndpointSelectorCache { - public TestDynamicPageEndpointSelector(EndpointDataSource dataSource) - : base(dataSource) + public TestDynamicPageEndpointSelectorCache(EndpointDataSource dataSource) { + AddDataSource(dataSource, 1); } } diff --git a/src/Mvc/Mvc.RazorPages/test/Infrastructure/PageActionEndpointDataSourceTest.cs b/src/Mvc/Mvc.RazorPages/test/Infrastructure/PageActionEndpointDataSourceTest.cs index 291b3a801e..2e3ef71e05 100644 --- a/src/Mvc/Mvc.RazorPages/test/Infrastructure/PageActionEndpointDataSourceTest.cs +++ b/src/Mvc/Mvc.RazorPages/test/Infrastructure/PageActionEndpointDataSourceTest.cs @@ -92,7 +92,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure private protected override ActionEndpointDataSourceBase CreateDataSource(IActionDescriptorCollectionProvider actions, ActionEndpointFactory endpointFactory) { - return new PageActionEndpointDataSource(actions, endpointFactory, new OrderedEndpointsSequenceProvider()); + return new PageActionEndpointDataSource(new PageActionEndpointDataSourceIdProvider(), actions, endpointFactory, new OrderedEndpointsSequenceProvider()); } protected override ActionDescriptor CreateActionDescriptor( diff --git a/src/Mvc/benchmarks/Microsoft.AspNetCore.Mvc.Performance/ControllerActionEndpointDatasourceBenchmark.cs b/src/Mvc/benchmarks/Microsoft.AspNetCore.Mvc.Performance/ControllerActionEndpointDatasourceBenchmark.cs index 8b96502295..fc06826ccc 100644 --- a/src/Mvc/benchmarks/Microsoft.AspNetCore.Mvc.Performance/ControllerActionEndpointDatasourceBenchmark.cs +++ b/src/Mvc/benchmarks/Microsoft.AspNetCore.Mvc.Performance/ControllerActionEndpointDatasourceBenchmark.cs @@ -109,6 +109,7 @@ namespace Microsoft.AspNetCore.Mvc.Performance private ControllerActionEndpointDataSource CreateDataSource(IActionDescriptorCollectionProvider actionDescriptorCollectionProvider) { var dataSource = new ControllerActionEndpointDataSource( + new ControllerActionEndpointDataSourceIdProvider(), actionDescriptorCollectionProvider, new ActionEndpointFactory(new MockRoutePatternTransformer()), new OrderedEndpointsSequenceProvider()); diff --git a/src/Mvc/test/Mvc.FunctionalTests/RoutingAcrossPipelineBranchesTest.cs b/src/Mvc/test/Mvc.FunctionalTests/RoutingAcrossPipelineBranchesTest.cs new file mode 100644 index 0000000000..431622df9f --- /dev/null +++ b/src/Mvc/test/Mvc.FunctionalTests/RoutingAcrossPipelineBranchesTest.cs @@ -0,0 +1,172 @@ +// 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. + +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Net.Http.Json; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Mvc.Testing; +using RoutingWebSite; +using Xunit; + +namespace Microsoft.AspNetCore.Mvc.FunctionalTests +{ + public class RoutingAcrossPipelineBranchesTests : IClassFixture> + { + public RoutingAcrossPipelineBranchesTests(MvcTestFixture fixture) + { + Factory = fixture.Factories.FirstOrDefault() ?? fixture.WithWebHostBuilder(ConfigureWebHostBuilder); + } + + private static void ConfigureWebHostBuilder(IWebHostBuilder builder) => builder.UseStartup(); + + public WebApplicationFactory Factory { get; } + + [Fact] + public async Task MatchesConventionalRoutesInTheirBranches() + { + var client = Factory.CreateClient(); + + // Arrange + var subdirRequest = new HttpRequestMessage(HttpMethod.Get, "subdir/literal/Branches/Index/s"); + var commonRequest = new HttpRequestMessage(HttpMethod.Get, "common/Branches/Index/c/literal"); + var defaultRequest = new HttpRequestMessage(HttpMethod.Get, "Branches/literal/Index/d"); + + // Act + var subdirResponse = await client.SendAsync(subdirRequest); + var subdirContent = await subdirResponse.Content.ReadFromJsonAsync(); + + var commonResponse = await client.SendAsync(commonRequest); + var commonContent = await commonResponse.Content.ReadFromJsonAsync(); + + var defaultResponse = await client.SendAsync(defaultRequest); + var defaultContent = await defaultResponse.Content.ReadFromJsonAsync(); + + // Assert + Assert.Equal(HttpStatusCode.OK, subdirResponse.StatusCode); + Assert.True(subdirContent.RouteValues.TryGetValue("subdir", out var subdir)); + Assert.Equal("s", subdir); + + Assert.Equal(HttpStatusCode.OK, commonResponse.StatusCode); + Assert.True(commonContent.RouteValues.TryGetValue("common", out var common)); + Assert.Equal("c", common); + + Assert.Equal(HttpStatusCode.OK, defaultResponse.StatusCode); + Assert.True(defaultContent.RouteValues.TryGetValue("default", out var @default)); + Assert.Equal("d", @default); + } + + [Fact] + public async Task LinkGenerationWorksOnEachBranch() + { + var client = Factory.CreateClient(); + var linkQuery = "?link"; + + // Arrange + var subdirRequest = new HttpRequestMessage(HttpMethod.Get, "subdir/literal/Branches/Index/s" + linkQuery); + var commonRequest = new HttpRequestMessage(HttpMethod.Get, "common/Branches/Index/c/literal" + linkQuery); + var defaultRequest = new HttpRequestMessage(HttpMethod.Get, "Branches/literal/Index/d" + linkQuery); + + // Act + var subdirResponse = await client.SendAsync(subdirRequest); + var subdirContent = await subdirResponse.Content.ReadFromJsonAsync(); + + var commonResponse = await client.SendAsync(commonRequest); + var commonContent = await commonResponse.Content.ReadFromJsonAsync(); + + var defaultResponse = await client.SendAsync(defaultRequest); + var defaultContent = await defaultResponse.Content.ReadFromJsonAsync(); + + // Assert + Assert.Equal(HttpStatusCode.OK, subdirResponse.StatusCode); + Assert.Equal("/subdir/literal/Branches/Index/s", subdirContent.Link); + + Assert.Equal(HttpStatusCode.OK, commonResponse.StatusCode); + Assert.Equal("/common/Branches/Index/c/literal", commonContent.Link); + + Assert.Equal(HttpStatusCode.OK, defaultResponse.StatusCode); + Assert.Equal("/Branches/literal/Index/d", defaultContent.Link); + } + + // This still works because even though each middleware now gets its own data source, + // those data sources still get added to a global collection in IOptions>.DataSources + [Fact] + public async Task LinkGenerationStillWorksAcrossBranches() + { + var client = Factory.CreateClient(); + var linkQuery = "?link"; + + // Arrange + var subdirRequest = new HttpRequestMessage(HttpMethod.Get, "subdir/literal/Branches/Index/s" + linkQuery + "&link_common=c&link_subdir"); + var defaultRequest = new HttpRequestMessage(HttpMethod.Get, "Branches/literal/Index/d" + linkQuery + "&link_subdir=s"); + + // Act + var subdirResponse = await client.SendAsync(subdirRequest); + var subdirContent = await subdirResponse.Content.ReadFromJsonAsync(); + + var defaultResponse = await client.SendAsync(defaultRequest); + var defaultContent = await defaultResponse.Content.ReadFromJsonAsync(); + + // Assert + Assert.Equal(HttpStatusCode.OK, subdirResponse.StatusCode); + // Note that this link and the one below don't account for the path base being in a different branch. + // The recommendation for customers doing link generation across branches will be to always generate absolute + // URIs by explicitly passing the path base to the link generator. + // In the future there are improvements we might be able to do in most common cases to lift this limitation if we receive + // feedback about it. + Assert.Equal("/subdir/Branches/Index/c/literal", subdirContent.Link); + + Assert.Equal(HttpStatusCode.OK, defaultResponse.StatusCode); + Assert.Equal("/literal/Branches/Index/s", defaultContent.Link); + } + + [Fact] + public async Task DoesNotMatchConventionalRoutesDefinedInOtherBranches() + { + var client = Factory.CreateClient(); + + // Arrange + var commonRequest = new HttpRequestMessage(HttpMethod.Get, "common/literal/Branches/Index/s"); + var subdirRequest = new HttpRequestMessage(HttpMethod.Get, "subdir/Branches/Index/c/literal"); + var defaultRequest = new HttpRequestMessage(HttpMethod.Get, "common/Branches/literal/Index/d"); + + // Act + var commonResponse = await client.SendAsync(commonRequest); + + var subdirResponse = await client.SendAsync(subdirRequest); + + var defaultResponse = await client.SendAsync(defaultRequest); + + // Assert + Assert.Equal(HttpStatusCode.NotFound, commonResponse.StatusCode); + Assert.Equal(HttpStatusCode.NotFound, subdirResponse.StatusCode); + Assert.Equal(HttpStatusCode.NotFound, defaultResponse.StatusCode); + } + + [Fact] + public async Task ConventionalAndDynamicRouteOrdersAreScopedPerBranch() + { + var client = Factory.CreateClient(); + + // Arrange + var request = new HttpRequestMessage(HttpMethod.Get, "dynamicattributeorder/dynamic/route/rest"); + + // Act + var response = await client.SendAsync(request); + var content = await response.Content.ReadFromJsonAsync(); + + // Assert + Assert.Equal(HttpStatusCode.OK, response.StatusCode); + Assert.True(content.RouteValues.TryGetValue("action", out var action)); + + // The dynamic route wins because it has Order 1 (scope to that router) and + // has higher precedence. + Assert.Equal("Index", action); + } + + private record RouteInfo(string RouteName, IDictionary RouteValues, string Link); + } +} diff --git a/src/Mvc/test/WebSites/Common/TestResponseGenerator.cs b/src/Mvc/test/WebSites/Common/TestResponseGenerator.cs index e2492fbfec..21d97865c5 100644 --- a/src/Mvc/test/WebSites/Common/TestResponseGenerator.cs +++ b/src/Mvc/test/WebSites/Common/TestResponseGenerator.cs @@ -1,4 +1,4 @@ -// 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. using System; diff --git a/src/Mvc/test/WebSites/RoutingWebSite/Controllers/BranchesController.cs b/src/Mvc/test/WebSites/RoutingWebSite/Controllers/BranchesController.cs new file mode 100644 index 0000000000..847d30dad0 --- /dev/null +++ b/src/Mvc/test/WebSites/RoutingWebSite/Controllers/BranchesController.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; + +namespace Mvc.RoutingWebSite.Controllers +{ + public class BranchesController : Controller + { + private readonly TestResponseGenerator _generator; + + public BranchesController(TestResponseGenerator generator) + { + _generator = generator; + } + + public IActionResult Index() + { + return _generator.Generate(); + } + + [HttpGet("dynamicattributeorder/{some}/{value}/{**slug}", Order = 1)] + public IActionResult Attribute() + { + return _generator.Generate(); + } + } +} diff --git a/src/Mvc/test/WebSites/RoutingWebSite/Program.cs b/src/Mvc/test/WebSites/RoutingWebSite/Program.cs index 83b2991269..a5d1a83121 100644 --- a/src/Mvc/test/WebSites/RoutingWebSite/Program.cs +++ b/src/Mvc/test/WebSites/RoutingWebSite/Program.cs @@ -1,4 +1,4 @@ -// 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. using System.IO; diff --git a/src/Mvc/test/WebSites/RoutingWebSite/StartupForDynamic.cs b/src/Mvc/test/WebSites/RoutingWebSite/StartupForDynamic.cs index 7b22a48dce..92d5522051 100644 --- a/src/Mvc/test/WebSites/RoutingWebSite/StartupForDynamic.cs +++ b/src/Mvc/test/WebSites/RoutingWebSite/StartupForDynamic.cs @@ -7,6 +7,7 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.Infrastructure; using Microsoft.AspNetCore.Mvc.Routing; using Microsoft.AspNetCore.Routing; using Microsoft.Extensions.DependencyInjection; @@ -24,6 +25,8 @@ namespace RoutingWebSite .SetCompatibilityVersion(CompatibilityVersion.Latest); services.AddTransient(); + services.AddScoped(); + services.AddSingleton(); // Used by some controllers defined in this project. services.Configure(options => options.ConstraintMap["slugify"] = typeof(SlugifyParameterTransformer)); diff --git a/src/Mvc/test/WebSites/RoutingWebSite/StartupRoutingDifferentBranches.cs b/src/Mvc/test/WebSites/RoutingWebSite/StartupRoutingDifferentBranches.cs new file mode 100644 index 0000000000..d118d7d12a --- /dev/null +++ b/src/Mvc/test/WebSites/RoutingWebSite/StartupRoutingDifferentBranches.cs @@ -0,0 +1,104 @@ +// 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. + +using System.Threading.Tasks; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.ApplicationModels; +using Microsoft.AspNetCore.Mvc.Infrastructure; +using Microsoft.AspNetCore.Mvc.Routing; +using Microsoft.AspNetCore.Routing; +using Microsoft.Extensions.DependencyInjection; + +namespace RoutingWebSite +{ + public class StartupRoutingDifferentBranches + { + // Set up application services + public void ConfigureServices(IServiceCollection services) + { + var pageRouteTransformerConvention = new PageRouteTransformerConvention(new SlugifyParameterTransformer()); + + services + .AddMvc(ConfigureMvcOptions) + .AddNewtonsoftJson() + .AddRazorPagesOptions(options => + { + options.Conventions.AddPageRoute("/PageRouteTransformer/PageWithConfiguredRoute", "/PageRouteTransformer/NewConventionRoute/{id?}"); + options.Conventions.AddFolderRouteModelConvention("/PageRouteTransformer", model => + { + pageRouteTransformerConvention.Apply(model); + }); + }) + .SetCompatibilityVersion(CompatibilityVersion.Latest); + + ConfigureRoutingServices(services); + + services.AddScoped(); + // This is used by test response generator + services.AddSingleton(); + services.AddSingleton(); + } + + public virtual void Configure(IApplicationBuilder app) + { + app.Map("/subdir", branch => + { + branch.UseRouting(); + + branch.UseEndpoints(endpoints => + { + endpoints.MapRazorPages(); + endpoints.MapControllerRoute(null, "literal/{controller}/{action}/{subdir}"); + endpoints.MapDynamicControllerRoute("literal/dynamic/controller/{**slug}"); + }); + }); + + app.Map("/common", branch => + { + branch.UseRouting(); + + branch.UseEndpoints(endpoints => + { + endpoints.MapControllerRoute(null, "{controller}/{action}/{common}/literal"); + endpoints.MapDynamicControllerRoute("dynamic/controller/literal/{**slug}"); + }); + }); + + app.UseRouting(); + app.UseEndpoints(endpoints => + { + endpoints.MapControllers(); + endpoints.MapDynamicControllerRoute("dynamicattributeorder/dynamic/route/{**slug}"); + endpoints.MapControllerRoute(null, "{controller}/literal/{action}/{default}"); + }); + + app.Run(c => + { + return c.Response.WriteAsync("Hello from middleware after routing"); + }); + } + + protected virtual void ConfigureMvcOptions(MvcOptions options) + { + // Add route token transformer to one controller + options.Conventions.Add(new ControllerRouteTokenTransformerConvention( + typeof(ParameterTransformerController), + new SlugifyParameterTransformer())); + } + + protected virtual void ConfigureRoutingServices(IServiceCollection services) + { + services.AddRouting(options => options.ConstraintMap["slugify"] = typeof(SlugifyParameterTransformer)); + } + } + + public class BranchesTransformer : DynamicRouteValueTransformer + { + public override ValueTask TransformAsync(HttpContext httpContext, RouteValueDictionary values) + { + return new ValueTask(new RouteValueDictionary(new { controller = "Branches", action = "Index" })); + } + } +} From f0c9f60903544b8393b810d44be23c24bf7e71c3 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Sun, 13 Sep 2020 09:26:31 +0000 Subject: [PATCH 111/187] [release/5.0-rc2] Update dependencies from dotnet/runtime dotnet/efcore (#25856) [release/5.0-rc2] Update dependencies from dotnet/runtime dotnet/efcore --- eng/Version.Details.xml | 296 ++++++++++++++++++++-------------------- eng/Versions.props | 148 ++++++++++---------- 2 files changed, 222 insertions(+), 222 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 7e411bdb58..ba57c1d0ca 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -13,309 +13,309 @@ https://github.com/dotnet/blazor cc449601d638ffaab58ae9487f0fd010bb178a12 - + https://github.com/dotnet/efcore - 3eeb676b39ac74802ad1e806d0956df14a7955e8 + 56c241b562cbf75673cfd56dd496d72cfce32dfe - + https://github.com/dotnet/efcore - 3eeb676b39ac74802ad1e806d0956df14a7955e8 + 56c241b562cbf75673cfd56dd496d72cfce32dfe - + https://github.com/dotnet/efcore - 3eeb676b39ac74802ad1e806d0956df14a7955e8 + 56c241b562cbf75673cfd56dd496d72cfce32dfe - + https://github.com/dotnet/efcore - 3eeb676b39ac74802ad1e806d0956df14a7955e8 + 56c241b562cbf75673cfd56dd496d72cfce32dfe - + https://github.com/dotnet/efcore - 3eeb676b39ac74802ad1e806d0956df14a7955e8 + 56c241b562cbf75673cfd56dd496d72cfce32dfe - + https://github.com/dotnet/efcore - 3eeb676b39ac74802ad1e806d0956df14a7955e8 + 56c241b562cbf75673cfd56dd496d72cfce32dfe - + https://github.com/dotnet/efcore - 3eeb676b39ac74802ad1e806d0956df14a7955e8 + 56c241b562cbf75673cfd56dd496d72cfce32dfe - + https://github.com/dotnet/efcore - 3eeb676b39ac74802ad1e806d0956df14a7955e8 + 56c241b562cbf75673cfd56dd496d72cfce32dfe - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 - + https://github.com/dotnet/runtime - 7d39776332446d8a84f5d542c80d264fa1cadbe7 + 54dfce73caac716251ff90e1099c4232f5587e35 https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index a873bd8966..12e34e417a 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -64,85 +64,85 @@ 3.8.0-2.20403.2 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 - 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20461.4 + 5.0.0-rc.2.20462.5 3.2.0 - 5.0.0-rc.2.20461.2 - 5.0.0-rc.2.20461.2 - 5.0.0-rc.2.20461.2 - 5.0.0-rc.2.20461.2 - 5.0.0-rc.2.20461.2 - 5.0.0-rc.2.20461.2 - 5.0.0-rc.2.20461.2 - 5.0.0-rc.2.20461.2 + 5.0.0-rc.2.20462.2 + 5.0.0-rc.2.20462.2 + 5.0.0-rc.2.20462.2 + 5.0.0-rc.2.20462.2 + 5.0.0-rc.2.20462.2 + 5.0.0-rc.2.20462.2 + 5.0.0-rc.2.20462.2 + 5.0.0-rc.2.20462.2 5.0.0-beta.20459.8 From 99496b41a037d29edfec189cf4cf88bc1803bc48 Mon Sep 17 00:00:00 2001 From: Pranav K Date: Sun, 13 Sep 2020 10:01:21 -0700 Subject: [PATCH 112/187] Nullability feedback for public types in Components (#25821) * EventCallback.InvokeAsync can pass a null value * Remove unused BindFormatterWithFormat --- src/Components/Components/src/BindConverter.cs | 1 - src/Components/Components/src/EventCallback.cs | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Components/Components/src/BindConverter.cs b/src/Components/Components/src/BindConverter.cs index 4c72cb7285..56c44ac5dc 100644 --- a/src/Components/Components/src/BindConverter.cs +++ b/src/Components/Components/src/BindConverter.cs @@ -23,7 +23,6 @@ namespace Microsoft.AspNetCore.Components private static readonly object BoxedFalse = false; private delegate object? BindFormatter(T value, CultureInfo? culture); - private delegate object BindFormatterWithFormat(T value, CultureInfo? culture, string format); internal delegate bool BindParser(object? obj, CultureInfo? culture, [MaybeNullWhen(false)] out T value); internal delegate bool BindParserWithFormat(object? obj, CultureInfo? culture, string? format, [MaybeNullWhen(false)] out T value); diff --git a/src/Components/Components/src/EventCallback.cs b/src/Components/Components/src/EventCallback.cs index c053f810ab..03f2fae15e 100644 --- a/src/Components/Components/src/EventCallback.cs +++ b/src/Components/Components/src/EventCallback.cs @@ -51,11 +51,11 @@ namespace Microsoft.AspNetCore.Components /// /// The argument. /// A which completes asynchronously once event processing has completed. - public Task InvokeAsync(object arg) + public Task InvokeAsync(object? arg) { if (Receiver == null) { - return EventCallbackWorkItem.InvokeAsync(Delegate, arg); + return EventCallbackWorkItem.InvokeAsync(Delegate, arg); } return Receiver.HandleEventAsync(new EventCallbackWorkItem(Delegate), arg); From b760d35b54affa964d61a1b2f7c757a6a3569397 Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Sun, 13 Sep 2020 11:40:09 -0700 Subject: [PATCH 113/187] Support override of PlatformManifest.txt content in servicing (#25849) - copied from release/3.1; not sure why this wasn't merged forward - doing now ensures we don't forget if we need to service targeting packs --- .../App.Ref/src/Microsoft.AspNetCore.App.Ref.csproj | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Framework/App.Ref/src/Microsoft.AspNetCore.App.Ref.csproj b/src/Framework/App.Ref/src/Microsoft.AspNetCore.App.Ref.csproj index a3f281107f..26b11b0603 100644 --- a/src/Framework/App.Ref/src/Microsoft.AspNetCore.App.Ref.csproj +++ b/src/Framework/App.Ref/src/Microsoft.AspNetCore.App.Ref.csproj @@ -52,6 +52,9 @@ This package is an internal implementation of the .NET Core SDK and is not meant $(PkgMicrosoft_Extensions_Internal_Transport)\ref\$(TargetFramework)\ + + $(PlatformManifestOutputPath) + $(RepoRoot)eng\PlatformManifest.txt @@ -144,7 +147,7 @@ This package is an internal implementation of the .NET Core SDK and is not meant - + From 8453a07dfa9756e0c268fcf7388db62c53d5080c Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Sun, 13 Sep 2020 11:40:33 -0700 Subject: [PATCH 114/187] Pass `$(MicrosoftNETCoreAppInternalPackageVersion)` to Helix jobs (#25850) - required for servicing, where e.g. `5.0.0` may be ambiguous - also move `%DOTNET_HOME%` into the working directory - reduces build-up in `%HELIX_CORRELATION_PAYLOAD%` and aligns w/ build.sh nit: add more debug output to `runtests.*` --- eng/helix/content/runtests.cmd | 11 +++++++++-- eng/helix/content/runtests.sh | 6 ++++++ eng/targets/Helix.targets | 6 +++--- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/eng/helix/content/runtests.cmd b/eng/helix/content/runtests.cmd index e8091960aa..68bc1bf494 100644 --- a/eng/helix/content/runtests.cmd +++ b/eng/helix/content/runtests.cmd @@ -15,21 +15,28 @@ REM Batch only supports up to 9 arguments using the %# syntax, need to shift to shift set $feedCred=%9 -set DOTNET_HOME=%HELIX_CORRELATION_PAYLOAD%\sdk +set DOTNET_HOME=%CD%\sdk%random% set DOTNET_ROOT=%DOTNET_HOME%\%$arch% set DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 set DOTNET_MULTILEVEL_LOOKUP=0 -set DOTNET_CLI_HOME=%HELIX_CORRELATION_PAYLOAD%\home +set DOTNET_CLI_HOME=%CD%\home%random% set "PATH=%DOTNET_ROOT%;%PATH%;%HELIX_CORRELATION_PAYLOAD%\node\bin" echo Set path to: "%PATH%" +echo. +echo "InstallDotNet %DOTNET_ROOT% %$sdkVersion% %$arch% '' $true '' '' $true" powershell.exe -noLogo -NoProfile -ExecutionPolicy unrestricted -command ". eng\common\tools.ps1; InstallDotNet %DOTNET_ROOT% %$sdkVersion% %$arch% '' $true '' '' $true" +echo. + IF [%$feedCred%] == [] ( + echo "InstallDotNet %DOTNET_ROOT% %$runtimeVersion% %$arch% dotnet $true '' '' $true" powershell.exe -noLogo -NoProfile -ExecutionPolicy unrestricted -command ". eng\common\tools.ps1; InstallDotNet %DOTNET_ROOT% %$runtimeVersion% %$arch% dotnet $true '' '' $true" ) else ( + echo "InstallDotNet %DOTNET_ROOT% %$runtimeVersion% %$arch% dotnet $true https://dotnetclimsrc.blob.core.windows.net/dotnet ... $true" powershell.exe -noLogo -NoProfile -ExecutionPolicy unrestricted -command ". eng\common\tools.ps1; InstallDotNet %DOTNET_ROOT% %$runtimeVersion% %$arch% dotnet $true https://dotnetclimsrc.blob.core.windows.net/dotnet %$feedCred% $true" ) +echo. set exit_code=0 diff --git a/eng/helix/content/runtests.sh b/eng/helix/content/runtests.sh index 2458a7bcfb..f0ca1b76a6 100644 --- a/eng/helix/content/runtests.sh +++ b/eng/helix/content/runtests.sh @@ -31,24 +31,30 @@ YELLOW="\033[0;33m" MAGENTA="\033[0;95m" . eng/common/tools.sh +echo "InstallDotNet $DOTNET_ROOT $dotnet_sdk_version '' '' true" InstallDotNet $DOTNET_ROOT $dotnet_sdk_version "" "" true || { exit_code=$? Write-PipelineTelemetryError -Category 'InitializeToolset' -Message "dotnet-install.sh failed (exit code '$exit_code')." >&2 ExitWithExitCode $exit_code } +echo + if [[ -z "${10:-}" ]]; then + echo "InstallDotNet $DOTNET_ROOT $dotnet_runtime_version '' dotnet true" InstallDotNet $DOTNET_ROOT $dotnet_runtime_version "" dotnet true || { exit_code=$? Write-PipelineTelemetryError -Category 'InitializeToolset' -Message "dotnet-install.sh failed (exit code '$exit_code')." >&2 ExitWithExitCode $exit_code } else + echo "InstallDotNet $DOTNET_ROOT $dotnet_runtime_version '' dotnet true https://dotnetclimsrc.blob.core.windows.net/dotnet ..." InstallDotNet $DOTNET_ROOT $dotnet_runtime_version "" dotnet true https://dotnetclimsrc.blob.core.windows.net/dotnet ${10} || { exit_code=$? Write-PipelineTelemetryError -Category 'InitializeToolset' -Message "dotnet-install.sh failed (exit code '$exit_code')." >&2 ExitWithExitCode $exit_code } fi +echo if [ -e /proc/self/coredump_filter ]; then # Include memory in private and shared file-backed mappings in the dump. diff --git a/eng/targets/Helix.targets b/eng/targets/Helix.targets index ca580d1ed5..c4a943a280 100644 --- a/eng/targets/Helix.targets +++ b/eng/targets/Helix.targets @@ -20,7 +20,7 @@ - + @@ -137,8 +137,8 @@ Usage: dotnet msbuild /t:Helix src/MyTestProject.csproj When the targeting pack builds, it has exactly the same version as the shared framework. Passing SharedFxVersion because that's needed even when the targeting pack isn't building. --> - call runtests.cmd $(TargetFileName) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppRuntimeVersion) $(SharedFxVersion) $(_HelixFriendlyNameTargetQueue) $(TargetArchitecture) $(RunQuarantinedTests) $(DotnetEfPackageVersion) $(HelixTimeout) $(DotNetRuntimeSourceFeedKey) - ./runtests.sh $(TargetFileName) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppRuntimeVersion) $(SharedFxVersion) $(_HelixFriendlyNameTargetQueue) $(TargetArchitecture) $(RunQuarantinedTests) $(DotnetEfPackageVersion) $(HelixTimeout) $(DotNetRuntimeSourceFeedKey) + call runtests.cmd $(TargetFileName) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppInternalPackageVersion) $(SharedFxVersion) $(_HelixFriendlyNameTargetQueue) $(TargetArchitecture) $(RunQuarantinedTests) $(DotnetEfPackageVersion) $(HelixTimeout) $(DotNetRuntimeSourceFeedKey) + ./runtests.sh $(TargetFileName) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppInternalPackageVersion) $(SharedFxVersion) $(_HelixFriendlyNameTargetQueue) $(TargetArchitecture) $(RunQuarantinedTests) $(DotnetEfPackageVersion) $(HelixTimeout) $(DotNetRuntimeSourceFeedKey) $(HelixCommand) $(HelixTimeout) From bfc1ec679202d145492ba1d1a25ff06562eac5aa Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Sun, 13 Sep 2020 14:24:23 -0700 Subject: [PATCH 115/187] Remove package version pinning for ref/ assemblies in servicing (#25851) - dotnet/runtime now keeps `$(AssemblyVersion)` values consistent - remove all use of the System.Security.AccessControl package --- eng/Dependencies.props | 7 ----- eng/Version.Details.xml | 5 ---- eng/Versions.props | 31 --------------------- eng/targets/ResolveReferences.targets | 39 --------------------------- eng/tools/RepoTasks/RepoTasks.csproj | 10 ------- 5 files changed, 92 deletions(-) diff --git a/eng/Dependencies.props b/eng/Dependencies.props index 5fc48ea2c3..cb76d3d15e 100644 --- a/eng/Dependencies.props +++ b/eng/Dependencies.props @@ -73,8 +73,6 @@ and are generated based on the last package release. - - @@ -196,11 +194,6 @@ and are generated based on the last package release. $(%(VersionName)PackageVersion) - $(%(VersionName)V0PackageVersion) - - - - - - https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 - https://github.com/dotnet/runtime 54dfce73caac716251ff90e1099c4232f5587e35 diff --git a/eng/Versions.props b/eng/Versions.props index 12e34e417a..35ba690c48 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -118,8 +118,6 @@ 5.0.0-rc.2.20462.5 5.0.0-rc.2.20462.5 5.0.0-rc.2.20462.5 - - 5.0.0-rc.2.20462.5 5.0.0-rc.2.20462.5 5.0.0-rc.2.20462.5 5.0.0-rc.2.20462.5 @@ -162,36 +160,7 @@ --> $(MicrosoftNETCoreAppRuntimewinx64PackageVersion) - - - $(MicrosoftWin32RegistryPackageVersion.Split('.')[0]).$(MicrosoftWin32RegistryPackageVersion.Split('.')[1]).0 - $(MicrosoftWin32SystemEventsPackageVersion.Split('.')[0]).$(MicrosoftWin32SystemEventsPackageVersion.Split('.')[1]).0 - $(SystemDiagnosticsEventLogPackageVersion.Split('.')[0]).$(SystemDiagnosticsEventLogPackageVersion.Split('.')[1]).0 - $(SystemDrawingCommonPackageVersion.Split('.')[0]).$(SystemDrawingCommonPackageVersion.Split('.')[1]).0 - $(SystemIOPipelinesPackageVersion.Split('.')[0]).$(SystemIOPipelinesPackageVersion.Split('.')[1]).0 - $(SystemSecurityAccessControlPackageVersion.Split('.')[0]).$(SystemSecurityAccessControlPackageVersion.Split('.')[1]).0 - $(SystemSecurityCryptographyCngPackageVersion.Split('.')[0]).$(SystemSecurityCryptographyCngPackageVersion.Split('.')[1]).0 - $(SystemSecurityCryptographyPkcsPackageVersion.Split('.')[0]).$(SystemSecurityCryptographyPkcsPackageVersion.Split('.')[1]).0 - $(SystemSecurityCryptographyXmlPackageVersion.Split('.')[0]).$(SystemSecurityCryptographyXmlPackageVersion.Split('.')[1]).0 - $(SystemSecurityPermissionsPackageVersion.Split('.')[0]).$(SystemSecurityPermissionsPackageVersion.Split('.')[1]).0 - $(SystemSecurityPrincipalWindowsPackageVersion.Split('.')[0]).$(SystemSecurityPrincipalWindowsPackageVersion.Split('.')[1]).0 - $(SystemWindowsExtensionsPackageVersion.Split('.')[0]).$(SystemWindowsExtensionsPackageVersion.Split('.')[1]).0 - 5.0.0-preview.4.20180.4 diff --git a/eng/targets/ResolveReferences.targets b/eng/targets/ResolveReferences.targets index fe8224d198..092d7aec67 100644 --- a/eng/targets/ResolveReferences.targets +++ b/eng/targets/ResolveReferences.targets @@ -253,45 +253,6 @@ Text="Could not resolve this reference. Could not locate the package or project for "%(Reference.Identity)". Did you update baselines and dependencies lists? See docs/ReferenceResolution.md for more details." /> - - - - - - - - - - - - - <_ResolvedCompileFileDefinitionsToChange - HintPath="$([System.String]::new('%(Identity)').Replace('\%(Version)\', '\%(RTMVersion)\').Replace('/%(Version)/', '/%(RTMVersion)/'))" /> - - - <_ResolvedCompileFileDefinitionsToChange Remove="@(_ResolvedCompileFileDefinitionsToChange)" /> - - - <_CompileTfmUsingReferenceAssemblies>false <_CompileTfmUsingReferenceAssemblies diff --git a/eng/tools/RepoTasks/RepoTasks.csproj b/eng/tools/RepoTasks/RepoTasks.csproj index 798c6c9fb3..e71a1d7591 100644 --- a/eng/tools/RepoTasks/RepoTasks.csproj +++ b/eng/tools/RepoTasks/RepoTasks.csproj @@ -36,15 +36,5 @@ $(WiXSdkPath)\Microsoft.Deployment.WindowsInstaller.Package.dll - - - From ab5dfe537465b79a5fe809da149bb1db7354f1f6 Mon Sep 17 00:00:00 2001 From: Pranav K Date: Sun, 13 Sep 2020 14:46:47 -0700 Subject: [PATCH 116/187] Allow dotnet-watch to look for changes to .razor.css files (#25792) Fixes https://github.com/dotnet/aspnetcore/issues/25483 --- .../integrationtests/BuildIntrospectionTest.cs | 12 ++++++++++++ .../netstandard2.0/Sdk.Razor.CurrentVersion.targets | 2 +- .../test/testassets/RazorTest.Introspection.targets | 4 ++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/Razor/Microsoft.NET.Sdk.Razor/integrationtests/BuildIntrospectionTest.cs b/src/Razor/Microsoft.NET.Sdk.Razor/integrationtests/BuildIntrospectionTest.cs index c857f59ee4..ecb82a18d1 100644 --- a/src/Razor/Microsoft.NET.Sdk.Razor/integrationtests/BuildIntrospectionTest.cs +++ b/src/Razor/Microsoft.NET.Sdk.Razor/integrationtests/BuildIntrospectionTest.cs @@ -275,5 +275,17 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests Assert.BuildPassed(result); Assert.BuildOutputContainsLine(result, $"RazorTasksPath: {expected}"); } + + [Fact] + [InitializeTestProject("ComponentApp")] + public async Task IntrospectRazorSdkWatchItems() + { + // Arrange + var result = await DotnetMSBuild("_IntrospectWatchItems"); + + Assert.BuildPassed(result); + Assert.BuildOutputContainsLine(result, "Watch: Index.razor"); + Assert.BuildOutputContainsLine(result, "Watch: Index.razor.css"); + } } } diff --git a/src/Razor/Microsoft.NET.Sdk.Razor/src/build/netstandard2.0/Sdk.Razor.CurrentVersion.targets b/src/Razor/Microsoft.NET.Sdk.Razor/src/build/netstandard2.0/Sdk.Razor.CurrentVersion.targets index 0a9b778e6f..fbb16130b4 100644 --- a/src/Razor/Microsoft.NET.Sdk.Razor/src/build/netstandard2.0/Sdk.Razor.CurrentVersion.targets +++ b/src/Razor/Microsoft.NET.Sdk.Razor/src/build/netstandard2.0/Sdk.Razor.CurrentVersion.targets @@ -877,7 +877,7 @@ Copyright (c) .NET Foundation. All rights reserved. - + diff --git a/src/Razor/test/testassets/RazorTest.Introspection.targets b/src/Razor/test/testassets/RazorTest.Introspection.targets index de0fc9ee3e..c862fa248d 100644 --- a/src/Razor/test/testassets/RazorTest.Introspection.targets +++ b/src/Razor/test/testassets/RazorTest.Introspection.targets @@ -47,6 +47,10 @@ + + + + <_SdkTaskPath>$([System.IO.Path]::GetFullPath('$(RazorSdkBuildTasksAssembly)')) From e3b632894da23ce276925f8afc8e2fc884b55f50 Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Sun, 13 Sep 2020 21:45:23 -0700 Subject: [PATCH 117/187] Fix Helix testing issues with stable versions and local builds (#25865) - include all shipping packages in Helix payloads that need runtime - remove hard-coded `-ci` that broke Helix tests with stable versions or local builds - for local builds, do not assume `$(Configuration)` is Release - support `$(HelixTargetQueues)` property used in RunHelix.ps1 - lost somewhere along the lines; script ran full matrix nits: - clean up redundant addition of runtime and ref/ packages - `@(HelixContent)` additions in `_CreateHelixWorkItem` target are ignored - mention '+' separation of `-HelixQueues` argument to RunHelix.ps1 - allow `$(IsUnitTestProject)` override in case we need it in the future --- Directory.Build.props | 2 +- eng/helix/helix.proj | 3 +- eng/scripts/RunHelix.ps1 | 2 +- eng/targets/Helix.targets | 37 ++++++++----------- .../Microsoft.AspNetCore.App.UnitTests.csproj | 1 - 5 files changed, 19 insertions(+), 26 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 224d84c781..258a01d388 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -13,7 +13,7 @@ true true - false + false true true true diff --git a/eng/helix/helix.proj b/eng/helix/helix.proj index 250b2fb9b2..65e47db274 100644 --- a/eng/helix/helix.proj +++ b/eng/helix/helix.proj @@ -11,7 +11,8 @@ - + + diff --git a/eng/scripts/RunHelix.ps1 b/eng/scripts/RunHelix.ps1 index 2a20580c3a..0bad5574a4 100644 --- a/eng/scripts/RunHelix.ps1 +++ b/eng/scripts/RunHelix.ps1 @@ -6,7 +6,7 @@ .PARAMETER Project The test project to publish and send to Helix. .PARAMETER HelixQueues - Set the Helix queues to use, the list is ';' separated. + Set the Helix queues to use. The list is '+' or ';'-separated. Some supported queues: Ubuntu.1604.Amd64.Open Ubuntu.1804.Amd64.Open diff --git a/eng/targets/Helix.targets b/eng/targets/Helix.targets index c4a943a280..ba28388707 100644 --- a/eng/targets/Helix.targets +++ b/eng/targets/Helix.targets @@ -16,8 +16,17 @@ - - + + + + + + + + + @@ -40,13 +49,10 @@ - + @@ -101,19 +107,6 @@ Usage: dotnet msbuild /t:Helix src/MyTestProject.csproj - - - - - - - - - - - - - <_HelixFriendlyNameTargetQueue>$(HelixTargetQueue) diff --git a/src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj b/src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj index c40284c6df..dc1d583fa0 100644 --- a/src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj +++ b/src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj @@ -5,7 +5,6 @@ Microsoft.AspNetCore true true - true true From 4d5b3159d8d8a0cecc7af69127ba83ac874ad010 Mon Sep 17 00:00:00 2001 From: Epsitha Ananth <47157394+epananth@users.noreply.github.com> Date: Mon, 14 Sep 2020 07:52:32 -0700 Subject: [PATCH 118/187] V3 publishing (#25784) * v3 changes --- .azure/pipelines/ci.yml | 1 + eng/Publishing.props | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/.azure/pipelines/ci.yml b/.azure/pipelines/ci.yml index b705f9c565..3cbd594ec3 100644 --- a/.azure/pipelines/ci.yml +++ b/.azure/pipelines/ci.yml @@ -750,6 +750,7 @@ stages: - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - template: /eng/common/templates/post-build/post-build.yml parameters: + publishingInfraVersion: 3 enableSymbolValidation: false enableSigningValidation: false enableNugetValidation: false diff --git a/eng/Publishing.props b/eng/Publishing.props index 96ff7034d2..f6c6fe21a0 100644 --- a/eng/Publishing.props +++ b/eng/Publishing.props @@ -1,4 +1,8 @@ + + 3 + + $(ArtifactsDir.Substring(0, $([MSBuild]::Subtract($(ArtifactsDir.Length), 1)))) From 472e8297a7b35a5ab3776bd68a8d6aad8ad22d09 Mon Sep 17 00:00:00 2001 From: John Luo Date: Mon, 14 Sep 2020 07:58:03 -0700 Subject: [PATCH 119/187] Update identity web templates (#25834) * Update identity web templates * Do not generate scopeRequiredByApi if not needed --- eng/Dependencies.props | 1 - eng/Versions.props | 5 +++-- .../Web.ProjectTemplates/BlazorServerWeb-CSharp.csproj.in | 1 + .../ComponentsWebAssembly-CSharp.Server.csproj.in | 1 + .../Microsoft.DotNet.Web.ProjectTemplates.csproj | 1 + .../Web.ProjectTemplates/RazorPagesWeb-CSharp.csproj.in | 1 + .../Web.ProjectTemplates/StarterWeb-CSharp.csproj.in | 1 + .../Web.ProjectTemplates/WebApi-CSharp.csproj.in | 1 + .../Server/Controllers/WeatherForecastController.cs | 2 ++ .../content/WebApi-CSharp/.template.config/template.json | 2 +- .../WebApi-CSharp/Controllers/WeatherForecastController.cs | 2 ++ 11 files changed, 14 insertions(+), 4 deletions(-) diff --git a/eng/Dependencies.props b/eng/Dependencies.props index cb76d3d15e..d7d3a004ac 100644 --- a/eng/Dependencies.props +++ b/eng/Dependencies.props @@ -165,7 +165,6 @@ and are generated based on the last package release. - diff --git a/eng/Versions.props b/eng/Versions.props index 35ba690c48..d6d209b8f8 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -231,8 +231,9 @@ 4.0.4 4.0.4 2.1.90 - 0.3.1-preview - 0.3.1-preview + 0.4.0-preview + 0.4.0-preview + 0.4.0-preview $(MessagePackPackageVersion) 4.10.0 0.11.2 diff --git a/src/ProjectTemplates/Web.ProjectTemplates/BlazorServerWeb-CSharp.csproj.in b/src/ProjectTemplates/Web.ProjectTemplates/BlazorServerWeb-CSharp.csproj.in index bfebf3e0f2..bcb72c3a34 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/BlazorServerWeb-CSharp.csproj.in +++ b/src/ProjectTemplates/Web.ProjectTemplates/BlazorServerWeb-CSharp.csproj.in @@ -24,6 +24,7 @@ + diff --git a/src/ProjectTemplates/Web.ProjectTemplates/ComponentsWebAssembly-CSharp.Server.csproj.in b/src/ProjectTemplates/Web.ProjectTemplates/ComponentsWebAssembly-CSharp.Server.csproj.in index c424c7f614..92621f0536 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/ComponentsWebAssembly-CSharp.Server.csproj.in +++ b/src/ProjectTemplates/Web.ProjectTemplates/ComponentsWebAssembly-CSharp.Server.csproj.in @@ -39,6 +39,7 @@ + diff --git a/src/ProjectTemplates/Web.ProjectTemplates/Microsoft.DotNet.Web.ProjectTemplates.csproj b/src/ProjectTemplates/Web.ProjectTemplates/Microsoft.DotNet.Web.ProjectTemplates.csproj index b61cd6f6d3..5cf045364a 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/Microsoft.DotNet.Web.ProjectTemplates.csproj +++ b/src/ProjectTemplates/Web.ProjectTemplates/Microsoft.DotNet.Web.ProjectTemplates.csproj @@ -19,6 +19,7 @@ MicrosoftExtensionsHostingPackageVersion=$(MicrosoftExtensionsHostingPackageVersion); MicrosoftExtensionsHttpPackageVersion=$(MicrosoftExtensionsHttpPackageVersion); MicrosoftIdentityWebPackageVersion=$(MicrosoftIdentityWebPackageVersion); + MicrosoftIdentityWebMicrosoftGraphPackageVersion=$(MicrosoftIdentityWebMicrosoftGraphPackageVersion); MicrosoftIdentityWebUIPackageVersion=$(MicrosoftIdentityWebUIPackageVersion); MicrosoftNETCoreAppRuntimeVersion=$(MicrosoftNETCoreAppRuntimeVersion); SystemNetHttpJsonPackageVersion=$(SystemNetHttpJsonPackageVersion); diff --git a/src/ProjectTemplates/Web.ProjectTemplates/RazorPagesWeb-CSharp.csproj.in b/src/ProjectTemplates/Web.ProjectTemplates/RazorPagesWeb-CSharp.csproj.in index d7d8786b54..58fbc56dd5 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/RazorPagesWeb-CSharp.csproj.in +++ b/src/ProjectTemplates/Web.ProjectTemplates/RazorPagesWeb-CSharp.csproj.in @@ -24,6 +24,7 @@ + diff --git a/src/ProjectTemplates/Web.ProjectTemplates/StarterWeb-CSharp.csproj.in b/src/ProjectTemplates/Web.ProjectTemplates/StarterWeb-CSharp.csproj.in index 2f77d16ec4..bca0f9a08f 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/StarterWeb-CSharp.csproj.in +++ b/src/ProjectTemplates/Web.ProjectTemplates/StarterWeb-CSharp.csproj.in @@ -24,6 +24,7 @@ + diff --git a/src/ProjectTemplates/Web.ProjectTemplates/WebApi-CSharp.csproj.in b/src/ProjectTemplates/Web.ProjectTemplates/WebApi-CSharp.csproj.in index 064078a06d..70dea709af 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/WebApi-CSharp.csproj.in +++ b/src/ProjectTemplates/Web.ProjectTemplates/WebApi-CSharp.csproj.in @@ -10,6 +10,7 @@ + diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Controllers/WeatherForecastController.cs b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Controllers/WeatherForecastController.cs index b2e4339447..3067df19f1 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Controllers/WeatherForecastController.cs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Controllers/WeatherForecastController.cs @@ -36,9 +36,11 @@ namespace ComponentsWebAssembly_CSharp.Server.Controllers }; private readonly ILogger _logger; +#if (OrganizationalAuth || IndividualB2CAuth) // The Web API will only accept tokens 1) for users, and 2) having the "api-scope" scope for this API static readonly string[] scopeRequiredByApi = new string[] { "api-scope" }; +#endif #if (GenerateApi) private readonly IDownstreamWebApi _downstreamWebApi; diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/template.json index 78260944d2..50ec85357d 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/template.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/template.json @@ -104,7 +104,7 @@ "replaces": "api-scope", "defaultValue": "access_as_user", "description": "The API scope the client needs to request to provision an access token. (use with IndividualB2C, SingleOrg)." - }, + }, "TenantId": { "type": "parameter", "datatype": "string", diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/Controllers/WeatherForecastController.cs b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/Controllers/WeatherForecastController.cs index 0cf62870ff..2c725ae0a9 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/Controllers/WeatherForecastController.cs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/Controllers/WeatherForecastController.cs @@ -35,9 +35,11 @@ namespace Company.WebApplication1.Controllers }; private readonly ILogger _logger; +#if (OrganizationalAuth || IndividualB2CAuth) // The Web API will only accept tokens 1) for users, and 2) having the "api-scope" scope for this API static readonly string[] scopeRequiredByApi = new string[] { "api-scope" }; +#endif #if (GenerateApi) private readonly IDownstreamWebApi _downstreamWebApi; From ccbc46c076766e9969765f209575f84f7da64e77 Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Mon, 14 Sep 2020 17:13:49 +0100 Subject: [PATCH 120/187] Fix RCL template to have correct filename for scoped CSS (#25870) --- .../.template.config/template.json | 1 + .../RazorClassLibrary-CSharp/Component1.razor.css | 6 ++++++ .../RazorClassLibrary-CSharp/wwwroot/styles.css | 11 ----------- 3 files changed, 7 insertions(+), 11 deletions(-) create mode 100644 src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/Component1.razor.css delete mode 100644 src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/wwwroot/styles.css diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/.template.config/template.json index 5a6a957a2c..f65801a554 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/.template.config/template.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/.template.config/template.json @@ -33,6 +33,7 @@ "exclude": [ "_Imports.razor", "Component1.razor", + "Component1.razor.css", "ExampleJsInterop.cs", "wwwroot/**" ] diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/Component1.razor.css b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/Component1.razor.css new file mode 100644 index 0000000000..c6afca4042 --- /dev/null +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/Component1.razor.css @@ -0,0 +1,6 @@ +.my-component { + border: 2px dashed red; + padding: 1em; + margin: 1em 0; + background-image: url('background.png'); +} diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/wwwroot/styles.css b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/wwwroot/styles.css deleted file mode 100644 index ebd14018bd..0000000000 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/wwwroot/styles.css +++ /dev/null @@ -1,11 +0,0 @@ -/* - This file is to show how CSS and other static resources (such as images) can be - used from a library project/package. -*/ - -.my-component { - border: 2px dashed red; - padding: 1em; - margin: 1em 0; - background-image: url('background.png'); -} From 6b8ce801e816c33f9f334f5cf9bd6af810176844 Mon Sep 17 00:00:00 2001 From: Brennan Date: Mon, 14 Sep 2020 10:48:50 -0700 Subject: [PATCH 121/187] Revert 2.2 site extension version update (#25879) --- eng/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Versions.props b/eng/Versions.props index d6d209b8f8..b32c193aa6 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -210,7 +210,7 @@ 6.7.1 2.1.1 - 2.2.5 + 2.2.0 3.1.8-servicing-20421-6 $(MicrosoftAspNetCoreAzureAppServicesSiteExtension31PackageVersion) $(MicrosoftAspNetCoreAzureAppServicesSiteExtension31PackageVersion) From 6c29f44a0bd4f19b29d6a68a5b9d8fd7bdc769e6 Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Mon, 14 Sep 2020 11:34:07 -0700 Subject: [PATCH 122/187] Reduce references to Microsoft.AspNetCore.App.Runtime.csproj (#25836) - dotnet-watch builds against runtime in the SDK - other projects build after runtime project due to Ref.csproj reference - but, when the targeting packs aren't building, there's no reason to use Ref.csproj - followup on 76fbd1a2831a and 84962660a33a, reducing parallelism in build --- .../test/Microsoft.AspNetCore.App.UnitTests.csproj | 6 ++++-- src/SiteExtensions/LoggingBranch/LB.csproj | 8 +++++--- src/Tools/dotnet-watch/src/dotnet-watch.csproj | 6 ------ 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj b/src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj index dc1d583fa0..a225c92060 100644 --- a/src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj +++ b/src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj @@ -51,11 +51,13 @@ - + false true - + false true diff --git a/src/SiteExtensions/LoggingBranch/LB.csproj b/src/SiteExtensions/LoggingBranch/LB.csproj index 631f5d56a0..fb4097ceab 100644 --- a/src/SiteExtensions/LoggingBranch/LB.csproj +++ b/src/SiteExtensions/LoggingBranch/LB.csproj @@ -16,7 +16,7 @@ false true false - + $(NoWarn);CS2008 @@ -24,11 +24,13 @@ - + false true - + false true diff --git a/src/Tools/dotnet-watch/src/dotnet-watch.csproj b/src/Tools/dotnet-watch/src/dotnet-watch.csproj index 2975059825..c74d67c0e0 100644 --- a/src/Tools/dotnet-watch/src/dotnet-watch.csproj +++ b/src/Tools/dotnet-watch/src/dotnet-watch.csproj @@ -29,12 +29,6 @@ - - Date: Mon, 14 Sep 2020 12:41:37 -0700 Subject: [PATCH 123/187] Add SkipAnalyzers=true to component declaration compilation (#25736) * Update to latest SDK * React to platform compatibility analyzer warnings * React to new warnings * Add platform compatibility attributes * Add SkipAnalyzers=true to component declaration compilation Fixes https://github.com/dotnet/aspnetcore/issues/25365 * Update eng/Version.Details.xml * Update Versions.props * Update Version.Details.xml * Update Versions.props * Update Version.Details.xml --- eng/Version.Details.xml | 8 ++------ eng/Versions.props | 4 +--- .../Microsoft.NET.Sdk.Razor.Component.targets | 1 + 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 30b3a034bd..b846bb1ce3 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,10 +9,6 @@ --> - - https://github.com/dotnet/blazor - cc449601d638ffaab58ae9487f0fd010bb178a12 - https://github.com/dotnet/efcore 56c241b562cbf75673cfd56dd496d72cfce32dfe @@ -324,9 +320,9 @@ https://github.com/dotnet/arcade 91470b0b14ba016c1fb78211b12775287c17b34e - + https://github.com/dotnet/roslyn - b6a07e61473ed8a804de465f7c1cb5c17f80732d + b446afd34759150c2ea3b86ab794104e12e64db1 diff --git a/eng/Versions.props b/eng/Versions.props index b32c193aa6..6071f0164a 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,7 +62,7 @@ --> - 3.8.0-2.20403.2 + 3.8.0-3.20458.6 5.0.0-rc.2.20462.5 5.0.0-rc.2.20462.5 @@ -130,8 +130,6 @@ 5.0.0-rc.2.20462.5 5.0.0-rc.2.20462.5 - - 3.2.0 5.0.0-rc.2.20462.2 5.0.0-rc.2.20462.2 diff --git a/src/Razor/Microsoft.NET.Sdk.Razor/src/build/netstandard2.0/Microsoft.NET.Sdk.Razor.Component.targets b/src/Razor/Microsoft.NET.Sdk.Razor/src/build/netstandard2.0/Microsoft.NET.Sdk.Razor.Component.targets index dd64c02b3d..da255e3905 100644 --- a/src/Razor/Microsoft.NET.Sdk.Razor/src/build/netstandard2.0/Microsoft.NET.Sdk.Razor.Component.targets +++ b/src/Razor/Microsoft.NET.Sdk.Razor/src/build/netstandard2.0/Microsoft.NET.Sdk.Razor.Component.targets @@ -234,6 +234,7 @@ Copyright (c) .NET Foundation. All rights reserved. ResponseFiles="$(CompilerResponseFile)" RuntimeMetadataVersion="$(RuntimeMetadataVersion)" SharedCompilationId="$(SharedCompilationId)" + SkipAnalyzers="true" SkipCompilerExecution="$(SkipCompilerExecution)" Sources="@(_RazorComponentDeclaration);@(Compile)" SubsystemVersion="$(SubsystemVersion)" From 7f1ca16b5815719239da18890dcebccbce2b9c27 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Mon, 14 Sep 2020 21:48:52 +0000 Subject: [PATCH 124/187] Update dependencies from https://github.com/dotnet/efcore build 20200914.2 (#25876) [release/5.0-rc2] Update dependencies from dotnet/efcore --- eng/Version.Details.xml | 32 ++++++++++++++++---------------- eng/Versions.props | 17 ++++++++--------- 2 files changed, 24 insertions(+), 25 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index b846bb1ce3..150dc39eda 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,37 +9,37 @@ --> - + https://github.com/dotnet/efcore - 56c241b562cbf75673cfd56dd496d72cfce32dfe + e96b1a2b972986c8332faac6ab3b38dd707fec09 - + https://github.com/dotnet/efcore - 56c241b562cbf75673cfd56dd496d72cfce32dfe + e96b1a2b972986c8332faac6ab3b38dd707fec09 - + https://github.com/dotnet/efcore - 56c241b562cbf75673cfd56dd496d72cfce32dfe + e96b1a2b972986c8332faac6ab3b38dd707fec09 - + https://github.com/dotnet/efcore - 56c241b562cbf75673cfd56dd496d72cfce32dfe + e96b1a2b972986c8332faac6ab3b38dd707fec09 - + https://github.com/dotnet/efcore - 56c241b562cbf75673cfd56dd496d72cfce32dfe + e96b1a2b972986c8332faac6ab3b38dd707fec09 - + https://github.com/dotnet/efcore - 56c241b562cbf75673cfd56dd496d72cfce32dfe + e96b1a2b972986c8332faac6ab3b38dd707fec09 - + https://github.com/dotnet/efcore - 56c241b562cbf75673cfd56dd496d72cfce32dfe + e96b1a2b972986c8332faac6ab3b38dd707fec09 - + https://github.com/dotnet/efcore - 56c241b562cbf75673cfd56dd496d72cfce32dfe + e96b1a2b972986c8332faac6ab3b38dd707fec09 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 6071f0164a..4dc0a9ef33 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -131,14 +131,14 @@ 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.2 - 5.0.0-rc.2.20462.2 - 5.0.0-rc.2.20462.2 - 5.0.0-rc.2.20462.2 - 5.0.0-rc.2.20462.2 - 5.0.0-rc.2.20462.2 - 5.0.0-rc.2.20462.2 - 5.0.0-rc.2.20462.2 + 5.0.0-rc.2.20464.2 + 5.0.0-rc.2.20464.2 + 5.0.0-rc.2.20464.2 + 5.0.0-rc.2.20464.2 + 5.0.0-rc.2.20464.2 + 5.0.0-rc.2.20464.2 + 5.0.0-rc.2.20464.2 + 5.0.0-rc.2.20464.2 5.0.0-beta.20459.8 @@ -158,7 +158,6 @@ --> $(MicrosoftNETCoreAppRuntimewinx64PackageVersion) - 5.0.0-preview.4.20180.4 From 45dade2b3621b0b3564041ccdf3063430b25551e Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 15 Sep 2020 00:01:45 +0000 Subject: [PATCH 125/187] Update dependencies from https://github.com/dotnet/efcore build 20200914.4 (#25886) [release/5.0-rc2] Update dependencies from dotnet/efcore --- eng/Version.Details.xml | 32 ++++++++++++++++---------------- eng/Versions.props | 16 ++++++++-------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 150dc39eda..6044352e41 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,37 +9,37 @@ --> - + https://github.com/dotnet/efcore - e96b1a2b972986c8332faac6ab3b38dd707fec09 + 9387ef9b891dc246a7a2bd2c4f76a41e61ebbc00 - + https://github.com/dotnet/efcore - e96b1a2b972986c8332faac6ab3b38dd707fec09 + 9387ef9b891dc246a7a2bd2c4f76a41e61ebbc00 - + https://github.com/dotnet/efcore - e96b1a2b972986c8332faac6ab3b38dd707fec09 + 9387ef9b891dc246a7a2bd2c4f76a41e61ebbc00 - + https://github.com/dotnet/efcore - e96b1a2b972986c8332faac6ab3b38dd707fec09 + 9387ef9b891dc246a7a2bd2c4f76a41e61ebbc00 - + https://github.com/dotnet/efcore - e96b1a2b972986c8332faac6ab3b38dd707fec09 + 9387ef9b891dc246a7a2bd2c4f76a41e61ebbc00 - + https://github.com/dotnet/efcore - e96b1a2b972986c8332faac6ab3b38dd707fec09 + 9387ef9b891dc246a7a2bd2c4f76a41e61ebbc00 - + https://github.com/dotnet/efcore - e96b1a2b972986c8332faac6ab3b38dd707fec09 + 9387ef9b891dc246a7a2bd2c4f76a41e61ebbc00 - + https://github.com/dotnet/efcore - e96b1a2b972986c8332faac6ab3b38dd707fec09 + 9387ef9b891dc246a7a2bd2c4f76a41e61ebbc00 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 4dc0a9ef33..9a7690ff4f 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -131,14 +131,14 @@ 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20464.2 - 5.0.0-rc.2.20464.2 - 5.0.0-rc.2.20464.2 - 5.0.0-rc.2.20464.2 - 5.0.0-rc.2.20464.2 - 5.0.0-rc.2.20464.2 - 5.0.0-rc.2.20464.2 - 5.0.0-rc.2.20464.2 + 5.0.0-rc.2.20464.4 + 5.0.0-rc.2.20464.4 + 5.0.0-rc.2.20464.4 + 5.0.0-rc.2.20464.4 + 5.0.0-rc.2.20464.4 + 5.0.0-rc.2.20464.4 + 5.0.0-rc.2.20464.4 + 5.0.0-rc.2.20464.4 5.0.0-beta.20459.8 From d14e2730155790fc81b898e7336671b50cd934ea Mon Sep 17 00:00:00 2001 From: John Luo Date: Mon, 14 Sep 2020 18:43:42 -0700 Subject: [PATCH 126/187] [5.0.0-rc2] Backport Fix chrome/selenium tests (#25330) (#25840) * Fix chrome/selenium tests (#25330) * Revert "Disable failing/hanging tests due to Chrome/Selenium issue (#25323)" This reverts commit 332f1504128a63431cb67830703922cdeefee525. * Update Selenium to latest * Update API * Try specifying a version * Update Selenium to 4.0.0-beta5 * Disable browser log tests * Fix components e2e tests and disable blazor standalone template test * Disable tests using browser log * Disable template test * Avoid using .NET formatted strings in tests * Annotate BasicTestApp suggesting that it needs the all globalization data * Culture specific formatting relies on the ICU data carried by the OS. This causes issues in our tests if WebAssembly carries a different set than the OS. Instead updating these tests to use hardcoded strings. * Additionally fixing an issue where some projects in the solution were using tasks from the .dotnet SDK rather than the local copy of the SDK. This was causing issues building locally. Co-authored-by: Pranav K --- eng/Versions.props | 6 +-- eng/targets/CSharp.Common.props | 9 +++- ...soft.AspNetCore.Components.E2ETests.csproj | 3 -- .../MultipleRootComponentsTest.cs | 2 +- .../ServerReconnectionTest.cs | 2 +- .../Tests/WebAssemblyAuthenticationTests.cs | 2 +- .../Tests/WebAssemblyICUShardingTest.cs | 20 ++++---- .../E2ETest/Tests/WebAssemblyLazyLoadTest.cs | 2 +- .../Tests/WebAssemblyLocalizationTest.cs | 1 - .../E2ETest/Tests/WebAssemblyLoggingTest.cs | 8 +-- .../BasicTestApp/BasicTestApp.csproj | 3 ++ .../testassets/TestServer/ServerStartup.cs | 2 +- .../BlazorTemplates.Tests.csproj | 4 -- .../BlazorWasmTemplateTest.cs | 4 +- src/Shared/E2ETesting/BrowserFixture.cs | 51 ++++++++++++++----- src/Shared/E2ETesting/selenium-config.json | 6 ++- 16 files changed, 74 insertions(+), 51 deletions(-) diff --git a/eng/Versions.props b/eng/Versions.props index 9a7690ff4f..70a923a445 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -237,10 +237,10 @@ 1.0.2 12.0.2 13.0.4 - 3.12.1 + 4.0.0-alpha05 17.17134.0 - 2.43.0 - 3.12.1 + 85.0.4183.8300 + 4.0.0-alpha05 1.4.0 4.0.0 2.0.593 diff --git a/eng/targets/CSharp.Common.props b/eng/targets/CSharp.Common.props index ff77d1b86a..097769897b 100644 --- a/eng/targets/CSharp.Common.props +++ b/eng/targets/CSharp.Common.props @@ -12,7 +12,12 @@ - + + <_ReferenceLocalRazorSDK + Condition="'$(UsingMicrosoftNETSdkWeb)' == 'true' OR '$(UsingMicrosoftNETSdkBlazorWebAssembly)' == 'true' OR '$(RazorSdkCurrentVersionProps)' != '' OR '$(_RazorSdkImportsMicrosoftNetSdk)' == 'true'">true + + + - true - diff --git a/src/Components/test/E2ETest/ServerExecutionTests/MultipleRootComponentsTest.cs b/src/Components/test/E2ETest/ServerExecutionTests/MultipleRootComponentsTest.cs index 6fc25c2c46..d1bc0ca7ec 100644 --- a/src/Components/test/E2ETest/ServerExecutionTests/MultipleRootComponentsTest.cs +++ b/src/Components/test/E2ETest/ServerExecutionTests/MultipleRootComponentsTest.cs @@ -43,7 +43,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests } } - [Fact] + [Fact(Skip = "Browser logs cannot be retrieved: https://github.com/dotnet/aspnetcore/issues/25803")] public void DoesNotStartMultipleConnections() { Navigate("/multiple-components"); diff --git a/src/Components/test/E2ETest/ServerExecutionTests/ServerReconnectionTest.cs b/src/Components/test/E2ETest/ServerExecutionTests/ServerReconnectionTest.cs index 9b92d33aab..aa8ed996e7 100644 --- a/src/Components/test/E2ETest/ServerExecutionTests/ServerReconnectionTest.cs +++ b/src/Components/test/E2ETest/ServerExecutionTests/ServerReconnectionTest.cs @@ -78,7 +78,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests Browser.False(() => Browser.FindElement(selector).Text == currentValue); } - [Fact] + [Fact(Skip = "Browser logs cannot be retrieved: https://github.com/dotnet/aspnetcore/issues/25803")] public void ErrorsStopTheRenderingProcess() { Browser.FindElement(By.Id("cause-error")).Click(); diff --git a/src/Components/test/E2ETest/Tests/WebAssemblyAuthenticationTests.cs b/src/Components/test/E2ETest/Tests/WebAssemblyAuthenticationTests.cs index 52b25edefc..10a16061f8 100644 --- a/src/Components/test/E2ETest/Tests/WebAssemblyAuthenticationTests.cs +++ b/src/Components/test/E2ETest/Tests/WebAssemblyAuthenticationTests.cs @@ -306,7 +306,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests ValidateLoggedIn(userName); } - [Fact] + [Fact(Skip = "Browser logs cannot be retrieved: https://github.com/dotnet/aspnetcore/issues/25803")] public void CanNotRedirect_To_External_ReturnUrl() { Browser.Navigate().GoToUrl(new Uri(new Uri(Browser.Url), "/authentication/login?returnUrl=https%3A%2F%2Fwww.bing.com").AbsoluteUri); diff --git a/src/Components/test/E2ETest/Tests/WebAssemblyICUShardingTest.cs b/src/Components/test/E2ETest/Tests/WebAssemblyICUShardingTest.cs index f4d06eeda4..1d49906642 100644 --- a/src/Components/test/E2ETest/Tests/WebAssemblyICUShardingTest.cs +++ b/src/Components/test/E2ETest/Tests/WebAssemblyICUShardingTest.cs @@ -1,9 +1,7 @@ // 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. -using System; using System.Globalization; -using System.Linq; using GlobalizationWasmApp; using Microsoft.AspNetCore.Components.E2ETest.Infrastructure; using Microsoft.AspNetCore.Components.E2ETest.Infrastructure.ServerFixtures; @@ -18,7 +16,6 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests // This app covers testing this along with verifying the behavior for fallback culture for localized resources. public class WebAssemblyICUShardingTest : ServerTestBase> { - private readonly DateTime DisplayTime = new DateTime(2020, 09, 02); public WebAssemblyICUShardingTest( BrowserFixture browserFixture, ToggleExecutionModeServerFixture serverFixture, @@ -39,7 +36,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests Assert.Equal(culture.ToString(), cultureDisplay.Text); var dateDisplay = Browser.Exists(By.Id("dateTime")); - Assert.Equal(DisplayTime.ToString(culture), dateDisplay.Text); + Assert.Equal("02/09/2020 00:00:00", dateDisplay.Text); var localizedDisplay = Browser.Exists(By.Id("localizedString")); Assert.Equal("Bonjour!", localizedDisplay.Text); @@ -57,7 +54,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests Assert.Equal(culture.ToString(), cultureDisplay.Text); var dateDisplay = Browser.Exists(By.Id("dateTime")); - Assert.Equal(DisplayTime.ToString(culture), dateDisplay.Text); + Assert.Equal("2020. 9. 2. 오전 12:00:00", dateDisplay.Text); var localizedDisplay = Browser.Exists(By.Id("localizedString")); // The app has a "ko" resx file. This test verifies that we can walk up the culture hierarchy correctly. @@ -76,7 +73,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests Assert.Equal(culture.ToString(), cultureDisplay.Text); var dateDisplay = Browser.Exists(By.Id("dateTime")); - Assert.Equal(DisplayTime.ToString(culture), dateDisplay.Text); + Assert.Equal("02.09.2020 00:00:00", dateDisplay.Text); var localizedDisplay = Browser.Exists(By.Id("localizedString")); Assert.Equal("Hello", localizedDisplay.Text); // No localized resources for this culture. @@ -94,7 +91,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests Assert.Equal(culture.ToString(), cultureDisplay.Text); var dateDisplay = Browser.Exists(By.Id("dateTime")); - Assert.Equal(DisplayTime.ToString(culture), dateDisplay.Text); + Assert.Equal("2/9/2020 12:00:00 ಪೂರ್ವಾಹ್ನ", dateDisplay.Text); var localizedDisplay = Browser.Exists(By.Id("localizedString")); Assert.Equal("ಹಲೋ", localizedDisplay.Text); @@ -105,15 +102,16 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests { // Arrange // This verifies that we complain if the app programtically configures a language. - var expected = "This application's globalization settings requires using the combined globalization data file."; Navigate($"{ServerPathBase}/?culture=fr&dotNetCulture=es", noReload: false); var errorUi = Browser.Exists(By.Id("blazor-error-ui")); Browser.Equal("block", () => errorUi.GetCssValue("display")); - var logs = Browser.GetBrowserLogs(LogLevel.Severe).Select(l => l.Message); - Assert.True(logs.Any(l => l.Contains(expected)), - $"Expected to see globalization error message in the browser logs: {string.Join(Environment.NewLine, logs)}."); + // Browser logs cannot be retrieved: https://github.com/dotnet/aspnetcore/issues/25803" + // var expected = "This application's globalization settings requires using the combined globalization data file."; + // var logs = Browser.GetBrowserLogs(LogLevel.Severe).Select(l => l.Message); + // Assert.True(logs.Any(l => l.Contains(expected)), + // $"Expected to see globalization error message in the browser logs: {string.Join(Environment.NewLine, logs)}."); } private void Initialize(CultureInfo culture) diff --git a/src/Components/test/E2ETest/Tests/WebAssemblyLazyLoadTest.cs b/src/Components/test/E2ETest/Tests/WebAssemblyLazyLoadTest.cs index 8076ae61dc..317bae624b 100644 --- a/src/Components/test/E2ETest/Tests/WebAssemblyLazyLoadTest.cs +++ b/src/Components/test/E2ETest/Tests/WebAssemblyLazyLoadTest.cs @@ -111,7 +111,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests Assert.True(renderedElement.Displayed); } - [Fact] + [Fact(Skip = "Browser logs cannot be retrieved: https://github.com/dotnet/aspnetcore/issues/25803")] public void ThrowsErrorForUnavailableAssemblies() { // Navigate to a page with lazy loaded assemblies for the first time diff --git a/src/Components/test/E2ETest/Tests/WebAssemblyLocalizationTest.cs b/src/Components/test/E2ETest/Tests/WebAssemblyLocalizationTest.cs index 81c99ccf67..e41a665485 100644 --- a/src/Components/test/E2ETest/Tests/WebAssemblyLocalizationTest.cs +++ b/src/Components/test/E2ETest/Tests/WebAssemblyLocalizationTest.cs @@ -2,7 +2,6 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using BasicTestApp; -using Microsoft.AspNetCore.Components.E2ETest; using Microsoft.AspNetCore.Components.E2ETest.Infrastructure; using Microsoft.AspNetCore.Components.E2ETest.Infrastructure.ServerFixtures; using Microsoft.AspNetCore.E2ETesting; diff --git a/src/Components/test/E2ETest/Tests/WebAssemblyLoggingTest.cs b/src/Components/test/E2ETest/Tests/WebAssemblyLoggingTest.cs index c6440eecd8..f659d24942 100644 --- a/src/Components/test/E2ETest/Tests/WebAssemblyLoggingTest.cs +++ b/src/Components/test/E2ETest/Tests/WebAssemblyLoggingTest.cs @@ -32,7 +32,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests Assert.Equal("none", errorUi.GetCssValue("display")); } - [Fact] + [Fact(Skip = "Browser logs cannot be retrieved: https://github.com/dotnet/aspnetcore/issues/25803")] public void LogsSimpleExceptionsUsingLogger() { Browser.FindElement(By.Id("throw-simple-exception")).Click(); @@ -44,7 +44,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests "at BasicTestApp.ErrorComponent.ThrowSimple"); } - [Fact] + [Fact(Skip = "Browser logs cannot be retrieved: https://github.com/dotnet/aspnetcore/issues/25803")] public void LogsInnerExceptionsUsingLogger() { Browser.FindElement(By.Id("throw-inner-exception")).Click(); @@ -57,7 +57,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests "at BasicTestApp.ErrorComponent.ThrowInner"); } - [Fact] + [Fact(Skip = "Browser logs cannot be retrieved: https://github.com/dotnet/aspnetcore/issues/25803")] public void LogsAggregateExceptionsUsingLogger() { Browser.FindElement(By.Id("throw-aggregate-exception")).Click(); @@ -72,7 +72,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests "System.InvalidTimeZoneException: Aggregate exception 3"); } - [Fact] + [Fact(Skip = "Browser logs cannot be retrieved: https://github.com/dotnet/aspnetcore/issues/25803")] public void LogsUsingCustomLogger() { Browser.MountTestComponent(); diff --git a/src/Components/test/testassets/BasicTestApp/BasicTestApp.csproj b/src/Components/test/testassets/BasicTestApp/BasicTestApp.csproj index 58d604dda8..f6f34a7e17 100644 --- a/src/Components/test/testassets/BasicTestApp/BasicTestApp.csproj +++ b/src/Components/test/testassets/BasicTestApp/BasicTestApp.csproj @@ -8,6 +8,9 @@ false + + + true diff --git a/src/Components/test/testassets/TestServer/ServerStartup.cs b/src/Components/test/testassets/TestServer/ServerStartup.cs index 83578c5dcb..bcd6e56e88 100644 --- a/src/Components/test/testassets/TestServer/ServerStartup.cs +++ b/src/Components/test/testassets/TestServer/ServerStartup.cs @@ -19,7 +19,7 @@ namespace TestServer public void ConfigureServices(IServiceCollection services) { services.AddMvc(); - services.AddServerSideBlazor(options => options.DetailedErrors = true); + services.AddServerSideBlazor(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. diff --git a/src/ProjectTemplates/BlazorTemplates.Tests/BlazorTemplates.Tests.csproj b/src/ProjectTemplates/BlazorTemplates.Tests/BlazorTemplates.Tests.csproj index 6a024814c2..2da0e11666 100644 --- a/src/ProjectTemplates/BlazorTemplates.Tests/BlazorTemplates.Tests.csproj +++ b/src/ProjectTemplates/BlazorTemplates.Tests/BlazorTemplates.Tests.csproj @@ -10,10 +10,6 @@ true true - - - true - false true diff --git a/src/ProjectTemplates/BlazorTemplates.Tests/BlazorWasmTemplateTest.cs b/src/ProjectTemplates/BlazorTemplates.Tests/BlazorWasmTemplateTest.cs index a1922ddfe9..fa4c091d54 100644 --- a/src/ProjectTemplates/BlazorTemplates.Tests/BlazorWasmTemplateTest.cs +++ b/src/ProjectTemplates/BlazorTemplates.Tests/BlazorWasmTemplateTest.cs @@ -40,7 +40,7 @@ namespace Templates.Test return InitializeAsync(isolationContext: Guid.NewGuid().ToString()); } - [Fact] + [Fact(Skip = "Certificate issue: https://github.com/dotnet/aspnetcore/issues/25826")] public async Task BlazorWasmStandaloneTemplate_Works() { // Additional arguments are needed. See: https://github.com/dotnet/aspnetcore/issues/24278 @@ -178,7 +178,7 @@ namespace Templates.Test } } - [Fact] + [Fact(Skip = "Certificate issue: https://github.com/dotnet/aspnetcore/issues/25826")] public async Task BlazorWasmHostedPwaTemplate_Works() { // Additional arguments are needed. See: https://github.com/dotnet/aspnetcore/issues/24278 diff --git a/src/Shared/E2ETesting/BrowserFixture.cs b/src/Shared/E2ETesting/BrowserFixture.cs index 557fbf37fc..3e6fa36b67 100644 --- a/src/Shared/E2ETesting/BrowserFixture.cs +++ b/src/Shared/E2ETesting/BrowserFixture.cs @@ -11,7 +11,10 @@ using System.Runtime.InteropServices; using System.Threading.Tasks; using OpenQA.Selenium; using OpenQA.Selenium.Chrome; +using OpenQA.Selenium.Edge; +using OpenQA.Selenium.IE; using OpenQA.Selenium.Remote; +using OpenQA.Selenium.Safari; using Xunit; using Xunit.Abstractions; @@ -234,55 +237,75 @@ namespace Microsoft.AspNetCore.E2ETesting name = $"{name} - {context}"; } - var capabilities = new DesiredCapabilities(); + DriverOptions options; + + switch (sauce.BrowserName.ToLower()) + { + case "chrome": + options = new ChromeOptions(); + break; + case "safari": + options = new SafariOptions(); + break; + case "internet explorer": + options = new InternetExplorerOptions(); + break; + case "microsoftedge": + options = new EdgeOptions(); + break; + default: + throw new InvalidOperationException($"Browser name {sauce.BrowserName} not recognized"); + } // Required config - capabilities.SetCapability("username", sauce.Username); - capabilities.SetCapability("accessKey", sauce.AccessKey); - capabilities.SetCapability("tunnelIdentifier", sauce.TunnelIdentifier); - capabilities.SetCapability("name", name); + options.AddAdditionalOption("username", sauce.Username); + options.AddAdditionalOption("accessKey", sauce.AccessKey); + options.AddAdditionalOption("tunnelIdentifier", sauce.TunnelIdentifier); + options.AddAdditionalOption("name", name); if (!string.IsNullOrEmpty(sauce.BrowserName)) { - capabilities.SetCapability("browserName", sauce.BrowserName); + options.AddAdditionalOption("browserName", sauce.BrowserName); } if (!string.IsNullOrEmpty(sauce.PlatformVersion)) { - capabilities.SetCapability("platformName", sauce.PlatformName); - capabilities.SetCapability("platformVersion", sauce.PlatformVersion); + options.PlatformName = sauce.PlatformName; + options.AddAdditionalOption("platformVersion", sauce.PlatformVersion); } else { // In some cases (like macOS), SauceLabs expects us to set "platform" instead of "platformName". - capabilities.SetCapability("platform", sauce.PlatformName); + options.AddAdditionalOption("platform", sauce.PlatformName); } if (!string.IsNullOrEmpty(sauce.BrowserVersion)) { - capabilities.SetCapability("browserVersion", sauce.BrowserVersion); + options.BrowserVersion = sauce.BrowserVersion; } if (!string.IsNullOrEmpty(sauce.DeviceName)) { - capabilities.SetCapability("deviceName", sauce.DeviceName); + options.AddAdditionalOption("deviceName", sauce.DeviceName); } if (!string.IsNullOrEmpty(sauce.DeviceOrientation)) { - capabilities.SetCapability("deviceOrientation", sauce.DeviceOrientation); + options.AddAdditionalOption("deviceOrientation", sauce.DeviceOrientation); } if (!string.IsNullOrEmpty(sauce.AppiumVersion)) { - capabilities.SetCapability("appiumVersion", sauce.AppiumVersion); + options.AddAdditionalOption("appiumVersion", sauce.AppiumVersion); } if (!string.IsNullOrEmpty(sauce.SeleniumVersion)) { - capabilities.SetCapability("seleniumVersion", sauce.SeleniumVersion); + options.AddAdditionalOption("seleniumVersion", sauce.SeleniumVersion); } + var capabilities = options.ToCapabilities(); + await SauceConnectServer.StartAsync(output); var attempt = 0; diff --git a/src/Shared/E2ETesting/selenium-config.json b/src/Shared/E2ETesting/selenium-config.json index 95c078e2c7..0682e48d32 100644 --- a/src/Shared/E2ETesting/selenium-config.json +++ b/src/Shared/E2ETesting/selenium-config.json @@ -1,6 +1,8 @@ { "drivers": { - "chrome": {} + "chrome": { + "version" : "85.0.4183.87" + } }, - "ignoreExtraDrivers": true + "ignoreExtraDrivers": true } \ No newline at end of file From 38c9fe7437365df25ff5f5cd481e691a5072a460 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 15 Sep 2020 03:33:16 +0000 Subject: [PATCH 127/187] Update dependencies from https://github.com/dotnet/runtime build 20200914.8 (#25895) [release/5.0-rc2] Update dependencies from dotnet/runtime --- eng/Version.Details.xml | 260 ++++++++++++++++++++-------------------- eng/Versions.props | 130 ++++++++++---------- 2 files changed, 195 insertions(+), 195 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 6044352e41..f2209557c5 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -41,272 +41,272 @@ https://github.com/dotnet/efcore 9387ef9b891dc246a7a2bd2c4f76a41e61ebbc00 - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e - + https://github.com/dotnet/runtime - 54dfce73caac716251ff90e1099c4232f5587e35 + 80df3e06b9d9ffe90427a19e706f7165700d7d4e https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 70a923a445..c2c5d3c276 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -64,72 +64,72 @@ 3.8.0-3.20458.6 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 - 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20462.5 + 5.0.0-rc.2.20464.8 5.0.0-rc.2.20464.4 5.0.0-rc.2.20464.4 From 17e04b70b0b0364d11c2007c51a92bfacc5a71b3 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 15 Sep 2020 06:07:47 +0000 Subject: [PATCH 128/187] Update dependencies from https://github.com/dotnet/efcore build 20200914.7 (#25896) [release/5.0-rc2] Update dependencies from dotnet/efcore --- eng/Version.Details.xml | 32 ++++++++++++++++---------------- eng/Versions.props | 16 ++++++++-------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index f2209557c5..e6dcd3cfef 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,37 +9,37 @@ --> - + https://github.com/dotnet/efcore - 9387ef9b891dc246a7a2bd2c4f76a41e61ebbc00 + 90bca99f050b48fddd0f1a62ec386c9cf7de88ea - + https://github.com/dotnet/efcore - 9387ef9b891dc246a7a2bd2c4f76a41e61ebbc00 + 90bca99f050b48fddd0f1a62ec386c9cf7de88ea - + https://github.com/dotnet/efcore - 9387ef9b891dc246a7a2bd2c4f76a41e61ebbc00 + 90bca99f050b48fddd0f1a62ec386c9cf7de88ea - + https://github.com/dotnet/efcore - 9387ef9b891dc246a7a2bd2c4f76a41e61ebbc00 + 90bca99f050b48fddd0f1a62ec386c9cf7de88ea - + https://github.com/dotnet/efcore - 9387ef9b891dc246a7a2bd2c4f76a41e61ebbc00 + 90bca99f050b48fddd0f1a62ec386c9cf7de88ea - + https://github.com/dotnet/efcore - 9387ef9b891dc246a7a2bd2c4f76a41e61ebbc00 + 90bca99f050b48fddd0f1a62ec386c9cf7de88ea - + https://github.com/dotnet/efcore - 9387ef9b891dc246a7a2bd2c4f76a41e61ebbc00 + 90bca99f050b48fddd0f1a62ec386c9cf7de88ea - + https://github.com/dotnet/efcore - 9387ef9b891dc246a7a2bd2c4f76a41e61ebbc00 + 90bca99f050b48fddd0f1a62ec386c9cf7de88ea https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index c2c5d3c276..74ca556b86 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -131,14 +131,14 @@ 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.4 - 5.0.0-rc.2.20464.4 - 5.0.0-rc.2.20464.4 - 5.0.0-rc.2.20464.4 - 5.0.0-rc.2.20464.4 - 5.0.0-rc.2.20464.4 - 5.0.0-rc.2.20464.4 - 5.0.0-rc.2.20464.4 + 5.0.0-rc.2.20464.7 + 5.0.0-rc.2.20464.7 + 5.0.0-rc.2.20464.7 + 5.0.0-rc.2.20464.7 + 5.0.0-rc.2.20464.7 + 5.0.0-rc.2.20464.7 + 5.0.0-rc.2.20464.7 + 5.0.0-rc.2.20464.7 5.0.0-beta.20459.8 From ce76ae75f6d91269d827ad866cfb9524ed0fbeae Mon Sep 17 00:00:00 2001 From: Brennan Date: Tue, 15 Sep 2020 10:20:43 -0700 Subject: [PATCH 129/187] Fix Java packaging (#25838) * Fix Java packaging * fix flaky test --- src/SignalR/clients/java/signalr/core/build.gradle | 6 ++++++ src/SignalR/clients/java/signalr/messagepack/build.gradle | 6 ++++++ .../main/java/com/microsoft/signalr/HubConnectionTest.java | 6 ++++-- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/SignalR/clients/java/signalr/core/build.gradle b/src/SignalR/clients/java/signalr/core/build.gradle index f7bdcb67e9..41b7668da1 100644 --- a/src/SignalR/clients/java/signalr/core/build.gradle +++ b/src/SignalR/clients/java/signalr/core/build.gradle @@ -1,3 +1,8 @@ +plugins { + id 'java' + id 'maven' +} + group 'com.microsoft.signalr' dependencies { @@ -22,6 +27,7 @@ task javadocJar(type: Jar, dependsOn: javadoc) { task generatePOM { pom { project { + artifactId 'signalr' inceptionYear '2018' description 'ASP.NET Core SignalR Client for Java applications' url 'https://github.com/dotnet/aspnetcore' diff --git a/src/SignalR/clients/java/signalr/messagepack/build.gradle b/src/SignalR/clients/java/signalr/messagepack/build.gradle index 7d4d979c11..365d56d383 100644 --- a/src/SignalR/clients/java/signalr/messagepack/build.gradle +++ b/src/SignalR/clients/java/signalr/messagepack/build.gradle @@ -1,3 +1,8 @@ +plugins { + id 'java' + id 'maven' +} + group 'com.microsoft.signalr.messagepack' dependencies { @@ -21,6 +26,7 @@ task javadocJar(type: Jar, dependsOn: javadoc) { task generatePOM { pom { project { + artifactId 'signalr-messagepack' inceptionYear '2020' description 'MessagePack protocol implementation for ASP.NET Core SignalR Client for Java applications' url 'https://github.com/dotnet/aspnetcore' diff --git a/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/HubConnectionTest.java b/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/HubConnectionTest.java index 5839dd2f66..1bb76c93c7 100644 --- a/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/HubConnectionTest.java +++ b/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/HubConnectionTest.java @@ -2974,7 +2974,10 @@ class HubConnectionTest { assertTrue(close.blockingAwait(5, TimeUnit.SECONDS)); return Single.just(new HttpResponse(204, "", TestUtils.emptyByteBuffer)); }) - .on("DELETE", (req) -> Single.just(new HttpResponse(200, "", TestUtils.stringToByteBuffer("")))); + .on("DELETE", (req) -> { + close.onComplete(); + return Single.just(new HttpResponse(200, "", TestUtils.stringToByteBuffer(""))); + }); HubConnection hubConnection = HubConnectionBuilder .create("http://example.com") @@ -2984,7 +2987,6 @@ class HubConnectionTest { hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertTrue(hubConnection.getTransport() instanceof LongPollingTransport); - close.onComplete(); hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); } From f3f7b9f9ed43a8513739eb4609bd0d70bc1348fa Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 15 Sep 2020 21:53:25 +0000 Subject: [PATCH 130/187] Update dependencies from https://github.com/dotnet/efcore build 20200915.2 (#25921) [release/5.0-rc2] Update dependencies from dotnet/efcore --- eng/Version.Details.xml | 32 ++++++++++++++++---------------- eng/Versions.props | 16 ++++++++-------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index e6dcd3cfef..f61df886ff 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,37 +9,37 @@ --> - + https://github.com/dotnet/efcore - 90bca99f050b48fddd0f1a62ec386c9cf7de88ea + 6c3eb882661b50f12e1f4755af8ac62ad5a2f49a - + https://github.com/dotnet/efcore - 90bca99f050b48fddd0f1a62ec386c9cf7de88ea + 6c3eb882661b50f12e1f4755af8ac62ad5a2f49a - + https://github.com/dotnet/efcore - 90bca99f050b48fddd0f1a62ec386c9cf7de88ea + 6c3eb882661b50f12e1f4755af8ac62ad5a2f49a - + https://github.com/dotnet/efcore - 90bca99f050b48fddd0f1a62ec386c9cf7de88ea + 6c3eb882661b50f12e1f4755af8ac62ad5a2f49a - + https://github.com/dotnet/efcore - 90bca99f050b48fddd0f1a62ec386c9cf7de88ea + 6c3eb882661b50f12e1f4755af8ac62ad5a2f49a - + https://github.com/dotnet/efcore - 90bca99f050b48fddd0f1a62ec386c9cf7de88ea + 6c3eb882661b50f12e1f4755af8ac62ad5a2f49a - + https://github.com/dotnet/efcore - 90bca99f050b48fddd0f1a62ec386c9cf7de88ea + 6c3eb882661b50f12e1f4755af8ac62ad5a2f49a - + https://github.com/dotnet/efcore - 90bca99f050b48fddd0f1a62ec386c9cf7de88ea + 6c3eb882661b50f12e1f4755af8ac62ad5a2f49a https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 74ca556b86..f17174eb23 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -131,14 +131,14 @@ 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.7 - 5.0.0-rc.2.20464.7 - 5.0.0-rc.2.20464.7 - 5.0.0-rc.2.20464.7 - 5.0.0-rc.2.20464.7 - 5.0.0-rc.2.20464.7 - 5.0.0-rc.2.20464.7 - 5.0.0-rc.2.20464.7 + 5.0.0-rc.2.20465.2 + 5.0.0-rc.2.20465.2 + 5.0.0-rc.2.20465.2 + 5.0.0-rc.2.20465.2 + 5.0.0-rc.2.20465.2 + 5.0.0-rc.2.20465.2 + 5.0.0-rc.2.20465.2 + 5.0.0-rc.2.20465.2 5.0.0-beta.20459.8 From b7862d51fb407500ceef721f584fde7eb9dc9757 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 16 Sep 2020 02:45:53 +0000 Subject: [PATCH 131/187] [release/5.0-rc2] Update dependencies from dotnet/runtime dotnet/efcore (#25925) [release/5.0-rc2] Update dependencies from dotnet/runtime dotnet/efcore --- eng/Version.Details.xml | 292 ++++++++++++++++++++-------------------- eng/Versions.props | 146 ++++++++++---------- 2 files changed, 219 insertions(+), 219 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index f61df886ff..a55ab93122 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,304 +9,304 @@ --> - + https://github.com/dotnet/efcore - 6c3eb882661b50f12e1f4755af8ac62ad5a2f49a + 95585a83a47e1a73a8fe95ed14b626e238993056 - + https://github.com/dotnet/efcore - 6c3eb882661b50f12e1f4755af8ac62ad5a2f49a + 95585a83a47e1a73a8fe95ed14b626e238993056 - + https://github.com/dotnet/efcore - 6c3eb882661b50f12e1f4755af8ac62ad5a2f49a + 95585a83a47e1a73a8fe95ed14b626e238993056 - + https://github.com/dotnet/efcore - 6c3eb882661b50f12e1f4755af8ac62ad5a2f49a + 95585a83a47e1a73a8fe95ed14b626e238993056 - + https://github.com/dotnet/efcore - 6c3eb882661b50f12e1f4755af8ac62ad5a2f49a + 95585a83a47e1a73a8fe95ed14b626e238993056 - + https://github.com/dotnet/efcore - 6c3eb882661b50f12e1f4755af8ac62ad5a2f49a + 95585a83a47e1a73a8fe95ed14b626e238993056 - + https://github.com/dotnet/efcore - 6c3eb882661b50f12e1f4755af8ac62ad5a2f49a + 95585a83a47e1a73a8fe95ed14b626e238993056 - + https://github.com/dotnet/efcore - 6c3eb882661b50f12e1f4755af8ac62ad5a2f49a + 95585a83a47e1a73a8fe95ed14b626e238993056 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 - + https://github.com/dotnet/runtime - 80df3e06b9d9ffe90427a19e706f7165700d7d4e + acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index f17174eb23..3da3f52fdb 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -64,81 +64,81 @@ 3.8.0-3.20458.6 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 - 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20464.8 + 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.2 - 5.0.0-rc.2.20465.2 - 5.0.0-rc.2.20465.2 - 5.0.0-rc.2.20465.2 - 5.0.0-rc.2.20465.2 - 5.0.0-rc.2.20465.2 - 5.0.0-rc.2.20465.2 - 5.0.0-rc.2.20465.2 + 5.0.0-rc.2.20465.3 + 5.0.0-rc.2.20465.3 + 5.0.0-rc.2.20465.3 + 5.0.0-rc.2.20465.3 + 5.0.0-rc.2.20465.3 + 5.0.0-rc.2.20465.3 + 5.0.0-rc.2.20465.3 + 5.0.0-rc.2.20465.3 5.0.0-beta.20459.8 From 70bc346d25f1e089d1df4dcdcf2368acf3bb4471 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 16 Sep 2020 07:37:25 +0000 Subject: [PATCH 132/187] [release/5.0-rc2] Update dependencies from dotnet/runtime dotnet/efcore (#25937) [release/5.0-rc2] Update dependencies from dotnet/runtime dotnet/efcore --- eng/Version.Details.xml | 292 ++++++++++++++++++++-------------------- eng/Versions.props | 146 ++++++++++---------- 2 files changed, 219 insertions(+), 219 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a55ab93122..fd874e6157 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,304 +9,304 @@ --> - + https://github.com/dotnet/efcore - 95585a83a47e1a73a8fe95ed14b626e238993056 + b7a5617cdc5e703eeaafc74dfa2dedd0d921ff85 - + https://github.com/dotnet/efcore - 95585a83a47e1a73a8fe95ed14b626e238993056 + b7a5617cdc5e703eeaafc74dfa2dedd0d921ff85 - + https://github.com/dotnet/efcore - 95585a83a47e1a73a8fe95ed14b626e238993056 + b7a5617cdc5e703eeaafc74dfa2dedd0d921ff85 - + https://github.com/dotnet/efcore - 95585a83a47e1a73a8fe95ed14b626e238993056 + b7a5617cdc5e703eeaafc74dfa2dedd0d921ff85 - + https://github.com/dotnet/efcore - 95585a83a47e1a73a8fe95ed14b626e238993056 + b7a5617cdc5e703eeaafc74dfa2dedd0d921ff85 - + https://github.com/dotnet/efcore - 95585a83a47e1a73a8fe95ed14b626e238993056 + b7a5617cdc5e703eeaafc74dfa2dedd0d921ff85 - + https://github.com/dotnet/efcore - 95585a83a47e1a73a8fe95ed14b626e238993056 + b7a5617cdc5e703eeaafc74dfa2dedd0d921ff85 - + https://github.com/dotnet/efcore - 95585a83a47e1a73a8fe95ed14b626e238993056 + b7a5617cdc5e703eeaafc74dfa2dedd0d921ff85 - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/runtime - acdf37b56119bd11a52a9b8e4ea1f310d0ef7b82 + e24e67a8dd52a20e5aa07b934ce7790c96808b1b https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 3da3f52fdb..f48dc1e027 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -64,81 +64,81 @@ 3.8.0-3.20458.6 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.3 - 5.0.0-rc.2.20465.3 - 5.0.0-rc.2.20465.3 - 5.0.0-rc.2.20465.3 - 5.0.0-rc.2.20465.3 - 5.0.0-rc.2.20465.3 - 5.0.0-rc.2.20465.3 - 5.0.0-rc.2.20465.3 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20465.4 5.0.0-beta.20459.8 From 06d672f2ca11486ce08d7058c1e574bda7e4bbfb Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Wed, 16 Sep 2020 09:58:08 -0700 Subject: [PATCH 133/187] Update assembly versions when servicing (#24952) - #24540 nit: Fix a comment typo --- Directory.Build.targets | 10 ++++++++-- eng/targets/ResolveReferences.targets | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index 96c4576add..7a13e8860e 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -132,8 +132,14 @@ - - $(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).0.0 + + + $(AspNetCoreMajorMinorVersion).0.0 diff --git a/eng/targets/ResolveReferences.targets b/eng/targets/ResolveReferences.targets index 092d7aec67..df5b0eaa86 100644 --- a/eng/targets/ResolveReferences.targets +++ b/eng/targets/ResolveReferences.targets @@ -47,7 +47,7 @@ Projects should only use the project references instead of baseline package references when: * preparing a new major or minor release (i.e. a non-servicing builds) * when a project is a test or sample project - We don't use project references between components in servicing builds between compontents to preserve the baseline as much as possible. + We don't use project references between components in servicing builds between components to preserve the baseline as much as possible. --> true From 9675fdb4551653dcb0c28998f752736d4b9d68c6 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 16 Sep 2020 22:08:01 +0000 Subject: [PATCH 134/187] [release/5.0-rc2] Update dependencies from dotnet/arcade (#25963) [release/5.0-rc2] Update dependencies from dotnet/arcade - Update create light/light command package drop task - Create output directory --- eng/Version.Details.xml | 12 ++++----- eng/Versions.props | 2 +- .../post-build/sourcelink-validation.ps1 | 26 ++++++++++++++----- eng/common/post-build/symbols-validation.ps1 | 7 +---- global.json | 4 +-- .../SharedFrameworkLib.wixproj | 11 +++----- src/Installers/Windows/Wix.targets | 12 +++------ 7 files changed, 37 insertions(+), 37 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index fd874e6157..7d04021b4f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -308,17 +308,17 @@ https://github.com/dotnet/runtime e24e67a8dd52a20e5aa07b934ce7790c96808b1b - + https://github.com/dotnet/arcade - 91470b0b14ba016c1fb78211b12775287c17b34e + fa0486ddb04a76341d822903c8977fb9fa088d1e - + https://github.com/dotnet/arcade - 91470b0b14ba016c1fb78211b12775287c17b34e + fa0486ddb04a76341d822903c8977fb9fa088d1e - + https://github.com/dotnet/arcade - 91470b0b14ba016c1fb78211b12775287c17b34e + fa0486ddb04a76341d822903c8977fb9fa088d1e https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index f48dc1e027..4166efc1eb 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -140,7 +140,7 @@ 5.0.0-rc.2.20465.4 5.0.0-rc.2.20465.4 - 5.0.0-beta.20459.8 + 5.0.0-beta.20465.7 - + https://github.com/dotnet/efcore - b7a5617cdc5e703eeaafc74dfa2dedd0d921ff85 + d5fd1c5768d5460c4030eac04cdf9668c6241dde - + https://github.com/dotnet/efcore - b7a5617cdc5e703eeaafc74dfa2dedd0d921ff85 + d5fd1c5768d5460c4030eac04cdf9668c6241dde - + https://github.com/dotnet/efcore - b7a5617cdc5e703eeaafc74dfa2dedd0d921ff85 + d5fd1c5768d5460c4030eac04cdf9668c6241dde - + https://github.com/dotnet/efcore - b7a5617cdc5e703eeaafc74dfa2dedd0d921ff85 + d5fd1c5768d5460c4030eac04cdf9668c6241dde - + https://github.com/dotnet/efcore - b7a5617cdc5e703eeaafc74dfa2dedd0d921ff85 + d5fd1c5768d5460c4030eac04cdf9668c6241dde - + https://github.com/dotnet/efcore - b7a5617cdc5e703eeaafc74dfa2dedd0d921ff85 + d5fd1c5768d5460c4030eac04cdf9668c6241dde - + https://github.com/dotnet/efcore - b7a5617cdc5e703eeaafc74dfa2dedd0d921ff85 + d5fd1c5768d5460c4030eac04cdf9668c6241dde - + https://github.com/dotnet/efcore - b7a5617cdc5e703eeaafc74dfa2dedd0d921ff85 + d5fd1c5768d5460c4030eac04cdf9668c6241dde - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 - + https://github.com/dotnet/runtime - e24e67a8dd52a20e5aa07b934ce7790c96808b1b + c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 4166efc1eb..f9a2879f69 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -64,81 +64,81 @@ 3.8.0-3.20458.6 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 - 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20465.7 + 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 - 5.0.0-rc.2.20465.4 + 5.0.0-rc.2.20466.1 + 5.0.0-rc.2.20466.1 + 5.0.0-rc.2.20466.1 + 5.0.0-rc.2.20466.1 + 5.0.0-rc.2.20466.1 + 5.0.0-rc.2.20466.1 + 5.0.0-rc.2.20466.1 + 5.0.0-rc.2.20466.1 5.0.0-beta.20465.7 From 899deacb22ed5144a20b8e32912d0eb05bd8a87f Mon Sep 17 00:00:00 2001 From: Brennan Date: Thu, 17 Sep 2020 11:30:31 -0700 Subject: [PATCH 138/187] Fix SignalR+WebSockets on WASM (#25922) * Fix SignalR+WebSockets on WASM * fb * move stuff * select --- .../test/E2ETest/Tests/SignalRClientTest.cs | 21 ++++- .../BasicTestApp/SignalRClientComponent.razor | 10 ++- .../src/Internal/DefaultTransportFactory.cs | 14 ++- .../src/Internal/WebSocketsTransport.cs | 88 ++++++++++--------- 4 files changed, 86 insertions(+), 47 deletions(-) diff --git a/src/Components/test/E2ETest/Tests/SignalRClientTest.cs b/src/Components/test/E2ETest/Tests/SignalRClientTest.cs index aa4e82bb1d..e5aa385cc1 100644 --- a/src/Components/test/E2ETest/Tests/SignalRClientTest.cs +++ b/src/Components/test/E2ETest/Tests/SignalRClientTest.cs @@ -7,7 +7,9 @@ using BasicTestApp; using Microsoft.AspNetCore.Components.E2ETest.Infrastructure; using Microsoft.AspNetCore.Components.E2ETest.Infrastructure.ServerFixtures; using Microsoft.AspNetCore.E2ETesting; +using Microsoft.AspNetCore.Http.Connections; using OpenQA.Selenium; +using OpenQA.Selenium.Support.UI; using TestServer; using Xunit; using Xunit.Abstractions; @@ -38,13 +40,28 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests } [Fact] - public void SignalRClientWorks() + public void SignalRClientWorksWithLongPolling() { Browser.FindElement(By.Id("hub-url")).SendKeys( new Uri(_apiServerFixture.RootUri, "/subdir/chathub").AbsoluteUri); + var target = new SelectElement(Browser.FindElement(By.Id("transport-type"))); + target.SelectByText("LongPolling"); Browser.FindElement(By.Id("hub-connect")).Click(); - Browser.Equal("SignalR Client: Echo", + Browser.Equal("SignalR Client: Echo LongPolling", + () => Browser.FindElements(By.CssSelector("li")).FirstOrDefault()?.Text); + } + + [Fact] + public void SignalRClientWorksWithWebSockets() + { + Browser.FindElement(By.Id("hub-url")).SendKeys( + new Uri(_apiServerFixture.RootUri, "/subdir/chathub").AbsoluteUri); + var target = new SelectElement(Browser.FindElement(By.Id("transport-type"))); + target.SelectByText("WebSockets"); + Browser.FindElement(By.Id("hub-connect")).Click(); + + Browser.Equal("SignalR Client: Echo WebSockets", () => Browser.FindElements(By.CssSelector("li")).FirstOrDefault()?.Text); } } diff --git a/src/Components/test/testassets/BasicTestApp/SignalRClientComponent.razor b/src/Components/test/testassets/BasicTestApp/SignalRClientComponent.razor index 3f0869ee2d..a8fae272ab 100644 --- a/src/Components/test/testassets/BasicTestApp/SignalRClientComponent.razor +++ b/src/Components/test/testassets/BasicTestApp/SignalRClientComponent.razor @@ -1,4 +1,5 @@ @using Microsoft.AspNetCore.SignalR.Client +@using Microsoft.AspNetCore.Http.Connections

SignalR Client

@@ -7,6 +8,10 @@

Hub URL: +

@@ -21,13 +26,14 @@ @code { private string hubUrl; + private HttpTransportType transportType; private HubConnection hubConnection; private List messages = new List(); protected async Task Connect() { hubConnection = new HubConnectionBuilder() - .WithUrl(hubUrl) + .WithUrl(hubUrl, transportType) .Build(); hubConnection.On("ReceiveMessage", (user, message) => @@ -38,7 +44,7 @@ }); await hubConnection.StartAsync(); - await hubConnection.SendAsync("SendMessage", "SignalR Client", "Echo"); + await hubConnection.SendAsync("SendMessage", "SignalR Client", $"Echo {transportType}"); } public bool IsConnected => diff --git a/src/SignalR/clients/csharp/Http.Connections.Client/src/Internal/DefaultTransportFactory.cs b/src/SignalR/clients/csharp/Http.Connections.Client/src/Internal/DefaultTransportFactory.cs index 6e66673ad9..d6295d992a 100644 --- a/src/SignalR/clients/csharp/Http.Connections.Client/src/Internal/DefaultTransportFactory.cs +++ b/src/SignalR/clients/csharp/Http.Connections.Client/src/Internal/DefaultTransportFactory.cs @@ -39,8 +39,9 @@ namespace Microsoft.AspNetCore.Http.Connections.Client.Internal { return new WebSocketsTransport(_httpConnectionOptions, _loggerFactory, _accessTokenProvider); } - catch (PlatformNotSupportedException) + catch (PlatformNotSupportedException ex) { + Log.TransportNotSupported(_loggerFactory.CreateLogger(), HttpTransportType.WebSockets, ex); _websocketsSupported = false; } } @@ -59,5 +60,16 @@ namespace Microsoft.AspNetCore.Http.Connections.Client.Internal throw new InvalidOperationException("No requested transports available on the server."); } + + private static class Log + { + private static readonly Action _transportNotSupported = + LoggerMessage.Define(LogLevel.Debug, new EventId(1, "TransportNotSupported"), "Transport '{TransportType}' is not supported."); + + public static void TransportNotSupported(ILogger logger, HttpTransportType transportType, Exception ex) + { + _transportNotSupported(logger, transportType, ex); + } + } } } diff --git a/src/SignalR/clients/csharp/Http.Connections.Client/src/Internal/WebSocketsTransport.cs b/src/SignalR/clients/csharp/Http.Connections.Client/src/Internal/WebSocketsTransport.cs index e0b8d08aa0..02c3a9748e 100644 --- a/src/SignalR/clients/csharp/Http.Connections.Client/src/Internal/WebSocketsTransport.cs +++ b/src/SignalR/clients/csharp/Http.Connections.Client/src/Internal/WebSocketsTransport.cs @@ -37,66 +37,70 @@ namespace Microsoft.AspNetCore.Http.Connections.Client.Internal public WebSocketsTransport(HttpConnectionOptions httpConnectionOptions, ILoggerFactory loggerFactory, Func> accessTokenProvider) { _webSocket = new ClientWebSocket(); + _isRunningInBrowser = Utils.IsRunningInBrowser(); - // Full Framework will throw when trying to set the User-Agent header - // So avoid setting it in netstandard2.0 and only set it in netstandard2.1 and higher + // ClientWebSocketOptions throws PNSE when accessing and setting properties + if (!_isRunningInBrowser) + { + // Full Framework will throw when trying to set the User-Agent header + // So avoid setting it in netstandard2.0 and only set it in netstandard2.1 and higher #if !NETSTANDARD2_0 - _webSocket.Options.SetRequestHeader("User-Agent", Constants.UserAgentHeader.ToString()); + _webSocket.Options.SetRequestHeader("User-Agent", Constants.UserAgentHeader.ToString()); #else - // Set an alternative user agent header on Full framework - _webSocket.Options.SetRequestHeader("X-SignalR-User-Agent", Constants.UserAgentHeader.ToString()); + // Set an alternative user agent header on Full framework + _webSocket.Options.SetRequestHeader("X-SignalR-User-Agent", Constants.UserAgentHeader.ToString()); #endif - if (httpConnectionOptions != null) - { - if (httpConnectionOptions.Headers != null) + if (httpConnectionOptions != null) { - foreach (var header in httpConnectionOptions.Headers) + if (httpConnectionOptions.Headers != null) { - _webSocket.Options.SetRequestHeader(header.Key, header.Value); + foreach (var header in httpConnectionOptions.Headers) + { + _webSocket.Options.SetRequestHeader(header.Key, header.Value); + } } + + if (httpConnectionOptions.Cookies != null) + { + _webSocket.Options.Cookies = httpConnectionOptions.Cookies; + } + + if (httpConnectionOptions.ClientCertificates != null) + { + _webSocket.Options.ClientCertificates.AddRange(httpConnectionOptions.ClientCertificates); + } + + if (httpConnectionOptions.Credentials != null) + { + _webSocket.Options.Credentials = httpConnectionOptions.Credentials; + } + + if (httpConnectionOptions.Proxy != null) + { + _webSocket.Options.Proxy = httpConnectionOptions.Proxy; + } + + if (httpConnectionOptions.UseDefaultCredentials != null) + { + _webSocket.Options.UseDefaultCredentials = httpConnectionOptions.UseDefaultCredentials.Value; + } + + httpConnectionOptions.WebSocketConfiguration?.Invoke(_webSocket.Options); } - if (httpConnectionOptions.Cookies != null) - { - _webSocket.Options.Cookies = httpConnectionOptions.Cookies; - } - if (httpConnectionOptions.ClientCertificates != null) - { - _webSocket.Options.ClientCertificates.AddRange(httpConnectionOptions.ClientCertificates); - } - - if (httpConnectionOptions.Credentials != null) - { - _webSocket.Options.Credentials = httpConnectionOptions.Credentials; - } - - if (httpConnectionOptions.Proxy != null) - { - _webSocket.Options.Proxy = httpConnectionOptions.Proxy; - } - - if (httpConnectionOptions.UseDefaultCredentials != null) - { - _webSocket.Options.UseDefaultCredentials = httpConnectionOptions.UseDefaultCredentials.Value; - } - - httpConnectionOptions.WebSocketConfiguration?.Invoke(_webSocket.Options); - - _closeTimeout = httpConnectionOptions.CloseTimeout; + // Set this header so the server auth middleware will set an Unauthorized instead of Redirect status code + // See: https://github.com/aspnet/Security/blob/ff9f145a8e89c9756ea12ff10c6d47f2f7eb345f/src/Microsoft.AspNetCore.Authentication.Cookies/Events/CookieAuthenticationEvents.cs#L42 + _webSocket.Options.SetRequestHeader("X-Requested-With", "XMLHttpRequest"); } - // Set this header so the server auth middleware will set an Unauthorized instead of Redirect status code - // See: https://github.com/aspnet/Security/blob/ff9f145a8e89c9756ea12ff10c6d47f2f7eb345f/src/Microsoft.AspNetCore.Authentication.Cookies/Events/CookieAuthenticationEvents.cs#L42 - _webSocket.Options.SetRequestHeader("X-Requested-With", "XMLHttpRequest"); + _closeTimeout = httpConnectionOptions?.CloseTimeout ?? default; _logger = (loggerFactory ?? NullLoggerFactory.Instance).CreateLogger(); // Ignore the HttpConnectionOptions access token provider. We were given an updated delegate from the HttpConnection. _accessTokenProvider = accessTokenProvider; - - _isRunningInBrowser = Utils.IsRunningInBrowser(); } public async Task StartAsync(Uri url, TransferFormat transferFormat, CancellationToken cancellationToken = default) From 21e9b168c45258f04490504f1bbe364083273f62 Mon Sep 17 00:00:00 2001 From: Pranav K Date: Thu, 17 Sep 2020 13:19:55 -0700 Subject: [PATCH 139/187] Add Swashbuckle to Third-Party-Notices.txt (#26012) --- THIRD-PARTY-NOTICES.txt | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/THIRD-PARTY-NOTICES.txt b/THIRD-PARTY-NOTICES.txt index 2a600a4d6d..f2fdaf4092 100644 --- a/THIRD-PARTY-NOTICES.txt +++ b/THIRD-PARTY-NOTICES.txt @@ -293,3 +293,29 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +License notice for Swashbuckle +=================================== + +The MIT License (MIT) + +Copyright (c) 2016 Richard Morris + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. From 0287b259d8c63b8b206f2fcc26b6e928996e8fee Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 17 Sep 2020 21:15:30 +0000 Subject: [PATCH 140/187] [release/5.0-rc2] Update dependencies from dotnet/efcore dotnet/runtime (#25993) [release/5.0-rc2] Update dependencies from dotnet/efcore dotnet/runtime --- eng/Version.Details.xml | 292 ++++++++++++++++++++-------------------- eng/Versions.props | 146 ++++++++++---------- 2 files changed, 219 insertions(+), 219 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 91c9ac0105..38b1f28c20 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,304 +9,304 @@ --> - + https://github.com/dotnet/efcore - d5fd1c5768d5460c4030eac04cdf9668c6241dde + 5588c482759853e7133057c78924872575a5b336 - + https://github.com/dotnet/efcore - d5fd1c5768d5460c4030eac04cdf9668c6241dde + 5588c482759853e7133057c78924872575a5b336 - + https://github.com/dotnet/efcore - d5fd1c5768d5460c4030eac04cdf9668c6241dde + 5588c482759853e7133057c78924872575a5b336 - + https://github.com/dotnet/efcore - d5fd1c5768d5460c4030eac04cdf9668c6241dde + 5588c482759853e7133057c78924872575a5b336 - + https://github.com/dotnet/efcore - d5fd1c5768d5460c4030eac04cdf9668c6241dde + 5588c482759853e7133057c78924872575a5b336 - + https://github.com/dotnet/efcore - d5fd1c5768d5460c4030eac04cdf9668c6241dde + 5588c482759853e7133057c78924872575a5b336 - + https://github.com/dotnet/efcore - d5fd1c5768d5460c4030eac04cdf9668c6241dde + 5588c482759853e7133057c78924872575a5b336 - + https://github.com/dotnet/efcore - d5fd1c5768d5460c4030eac04cdf9668c6241dde + 5588c482759853e7133057c78924872575a5b336 - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c - + https://github.com/dotnet/runtime - c30d4bb26a7cd49890aa81e32e0dc8a87ae96696 + 80a03cadfeaf1130f7c820e4e360b7973de46f1c https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index f9a2879f69..8800f4c7a2 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -64,81 +64,81 @@ 3.8.0-3.20458.6 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 - 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20466.8 + 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20466.1 - 5.0.0-rc.2.20466.1 - 5.0.0-rc.2.20466.1 - 5.0.0-rc.2.20466.1 - 5.0.0-rc.2.20466.1 - 5.0.0-rc.2.20466.1 - 5.0.0-rc.2.20466.1 - 5.0.0-rc.2.20466.1 + 5.0.0-rc.2.20466.3 + 5.0.0-rc.2.20466.3 + 5.0.0-rc.2.20466.3 + 5.0.0-rc.2.20466.3 + 5.0.0-rc.2.20466.3 + 5.0.0-rc.2.20466.3 + 5.0.0-rc.2.20466.3 + 5.0.0-rc.2.20466.3 5.0.0-beta.20465.7 From 3ee23fb771a8e810defe50fda29296fa9859a92b Mon Sep 17 00:00:00 2001 From: Brennan Date: Thu, 17 Sep 2020 17:59:27 -0700 Subject: [PATCH 141/187] Refactor transient state in Java client (#24219) * Refactor transient state in Java client * some fb * fix nullref * fixup rebase * fb * apply some fb * fix flaky * lock * check previous state --- .../com/microsoft/signalr/HubConnection.java | 746 ++++++++++-------- .../microsoft/signalr/NegotiateResponse.java | 9 + .../microsoft/signalr/HubConnectionTest.java | 118 ++- 3 files changed, 489 insertions(+), 384 deletions(-) diff --git a/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/HubConnection.java b/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/HubConnection.java index 8ff26762f6..cb6a085a4b 100644 --- a/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/HubConnection.java +++ b/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/HubConnection.java @@ -5,7 +5,6 @@ package com.microsoft.signalr; import java.io.StringReader; import java.lang.reflect.Type; -import java.lang.reflect.TypeVariable; import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import java.util.*; @@ -34,39 +33,31 @@ public class HubConnection implements AutoCloseable { private static final List emptyArray = new ArrayList<>(); private static final int MAX_NEGOTIATE_ATTEMPTS = 100; - private String baseUrl; - private Transport transport; - private boolean customTransport = false; - private OnReceiveCallBack callback; private final CallbackMap handlers = new CallbackMap(); - private HubProtocol protocol; - private Boolean handshakeReceived = false; - private HubConnectionState hubConnectionState = HubConnectionState.DISCONNECTED; - private final Lock hubConnectionStateLock = new ReentrantLock(); - private List onClosedCallbackList; + private final HubProtocol protocol; private final boolean skipNegotiate; - private Single accessTokenProvider; - private Single redirectAccessTokenProvider; private final Map headers; - private final Map localHeaders = new HashMap<>(); - private ConnectionState connectionState = null; - private HttpClient httpClient; - private String stopError; - private Timer pingTimer = null; - private final AtomicLong nextServerTimeout = new AtomicLong(); - private final AtomicLong nextPingActivation = new AtomicLong(); - private long keepAliveInterval = 15*1000; - private long serverTimeout = 30*1000; - private long tickRate = 1000; - private CompletableSubject handshakeResponseSubject; - private long handshakeResponseTimeout = 15*1000; - private Map streamMap = new ConcurrentHashMap<>(); - private TransportEnum transportEnum = TransportEnum.ALL; - private String connectionId; private final int negotiateVersion = 1; private final Logger logger = LoggerFactory.getLogger(HubConnection.class); - private ScheduledExecutorService handshakeTimeout = null; - private Completable start; + private final HttpClient httpClient; + private final Transport customTransport; + private final OnReceiveCallBack callback; + private final Single accessTokenProvider; + private final TransportEnum transportEnum; + + // These are all user-settable properties + private String baseUrl; + private List onClosedCallbackList; + private long keepAliveInterval = 15 * 1000; + private long serverTimeout = 30 * 1000; + private long handshakeResponseTimeout = 15 * 1000; + + // Private property, modified for testing + private long tickRate = 1000; + + + // Holds all mutable state other than user-defined handlers and settable properties. + private final ReconnectingConnectionState state; /** * Sets the server timeout interval for the connection. @@ -110,7 +101,11 @@ public class HubConnection implements AutoCloseable { * @return A string representing the the client's connectionId. */ public String getConnectionId() { - return this.connectionId; + ConnectionState state = this.state.getConnectionStateUnsynchronized(true); + if (state != null) { + return state.connectionId; + } + return null; } // For testing purposes @@ -119,16 +114,8 @@ public class HubConnection implements AutoCloseable { } // For testing purposes - Map getStreamMap() { - return this.streamMap; - } - - TransportEnum getTransportEnum() { - return this.transportEnum; - } - Transport getTransport() { - return transport; + return this.state.getConnectionState().transport; } HubConnection(String url, Transport transport, boolean skipNegotiate, HttpClient httpClient, HubProtocol protocol, @@ -138,6 +125,7 @@ public class HubConnection implements AutoCloseable { throw new IllegalArgumentException("A valid url is required."); } + this.state = new ReconnectingConnectionState(this.logger); this.baseUrl = url; this.protocol = protocol; @@ -154,10 +142,14 @@ public class HubConnection implements AutoCloseable { } if (transport != null) { - this.transport = transport; - this.customTransport = true; + this.transportEnum = TransportEnum.ALL; + this.customTransport = transport; } else if (transportEnum != null) { this.transportEnum = transportEnum; + this.customTransport = null; + } else { + this.transportEnum = TransportEnum.ALL; + this.customTransport = null; } if (handshakeResponseTimeout > 0) { @@ -167,124 +159,12 @@ public class HubConnection implements AutoCloseable { this.headers = headers; this.skipNegotiate = skipNegotiate; - this.callback = (payload) -> { - resetServerTimeout(); - if (!handshakeReceived) { - List handshakeByteList = new ArrayList(); - byte curr = payload.get(); - // Add the handshake to handshakeBytes, but not the record separator - while (curr != RECORD_SEPARATOR) { - handshakeByteList.add(curr); - curr = payload.get(); - } - int handshakeLength = handshakeByteList.size() + 1; - byte[] handshakeBytes = new byte[handshakeLength - 1]; - for (int i = 0; i < handshakeLength - 1; i++) { - handshakeBytes[i] = handshakeByteList.get(i); - } - // The handshake will always be a UTF8 Json string - String handshakeResponseString = new String(handshakeBytes, StandardCharsets.UTF_8); - HandshakeResponseMessage handshakeResponse; - try { - handshakeResponse = HandshakeProtocol.parseHandshakeResponse(handshakeResponseString); - } catch (RuntimeException ex) { - RuntimeException exception = new RuntimeException("An invalid handshake response was received from the server.", ex); - handshakeResponseSubject.onError(exception); - throw exception; - } - if (handshakeResponse.getHandshakeError() != null) { - String errorMessage = "Error in handshake " + handshakeResponse.getHandshakeError(); - logger.error(errorMessage); - RuntimeException exception = new RuntimeException(errorMessage); - handshakeResponseSubject.onError(exception); - throw exception; - } - handshakeReceived = true; - handshakeResponseSubject.onComplete(); - - // The payload only contained the handshake response so we can return. - if (!payload.hasRemaining()) { - return; - } - } - - List messages = protocol.parseMessages(payload, connectionState); - - for (HubMessage message : messages) { - logger.debug("Received message of type {}.", message.getMessageType()); - switch (message.getMessageType()) { - case INVOCATION_BINDING_FAILURE: - InvocationBindingFailureMessage msg = (InvocationBindingFailureMessage)message; - logger.error("Failed to bind arguments received in invocation '{}' of '{}'.", msg.getInvocationId(), msg.getTarget(), msg.getException()); - break; - case INVOCATION: - - InvocationMessage invocationMessage = (InvocationMessage) message; - List handlers = this.handlers.get(invocationMessage.getTarget()); - if (handlers != null) { - for (InvocationHandler handler : handlers) { - try { - handler.getAction().invoke(invocationMessage.getArguments()); - } catch (Exception e) { - logger.error("Invoking client side method '{}' failed:", invocationMessage.getTarget(), e); - } - } - } else { - logger.warn("Failed to find handler for '{}' method.", invocationMessage.getTarget()); - } - break; - case CLOSE: - logger.info("Close message received from server."); - CloseMessage closeMessage = (CloseMessage) message; - stop(closeMessage.getError()); - break; - case PING: - // We don't need to do anything in the case of a ping message. - break; - case COMPLETION: - CompletionMessage completionMessage = (CompletionMessage)message; - InvocationRequest irq = connectionState.tryRemoveInvocation(completionMessage.getInvocationId()); - if (irq == null) { - logger.warn("Dropped unsolicited Completion message for invocation '{}'.", completionMessage.getInvocationId()); - continue; - } - irq.complete(completionMessage); - break; - case STREAM_ITEM: - StreamItem streamItem = (StreamItem)message; - InvocationRequest streamInvocationRequest = connectionState.getInvocation(streamItem.getInvocationId()); - if (streamInvocationRequest == null) { - logger.warn("Dropped unsolicited Completion message for invocation '{}'.", streamItem.getInvocationId()); - continue; - } - - streamInvocationRequest.addItem(streamItem); - break; - case STREAM_INVOCATION: - case CANCEL_INVOCATION: - logger.error("This client does not support {} messages.", message.getMessageType()); - - throw new UnsupportedOperationException(String.format("The message type %s is not supported yet.", message.getMessageType())); - } - } - }; + this.callback = (payload) -> ReceiveLoop(payload); } - private void timeoutHandshakeResponse(long timeout, TimeUnit unit) { - handshakeTimeout = Executors.newSingleThreadScheduledExecutor(); - handshakeTimeout.schedule(() -> { - // If onError is called on a completed subject the global error handler is called - if (!(handshakeResponseSubject.hasComplete() || handshakeResponseSubject.hasThrowable())) - { - handshakeResponseSubject.onError( - new TimeoutException("Timed out waiting for the server to respond to the handshake message.")); - } - }, timeout, unit); - } - - private Single handleNegotiate(String url) { + private Single handleNegotiate(String url, Map localHeaders) { HttpRequest request = new HttpRequest(); - request.addHeaders(this.localHeaders); + request.addHeaders(localHeaders); return httpClient.post(Negotiate.resolveNegotiateUrl(url, this.negotiateVersion), request).map((response) -> { if (response.getStatusCode() != 200) { @@ -299,11 +179,7 @@ public class HubConnection implements AutoCloseable { } if (negotiateResponse.getAccessToken() != null) { - this.redirectAccessTokenProvider = Single.just(negotiateResponse.getAccessToken()); - // We know the Single is non blocking in this case - // It's fine to call blockingGet() on it. - String token = this.redirectAccessTokenProvider.blockingGet(); - this.localHeaders.put("Authorization", "Bearer " + token); + localHeaders.put("Authorization", "Bearer " + negotiateResponse.getAccessToken()); } return negotiateResponse; @@ -316,7 +192,7 @@ public class HubConnection implements AutoCloseable { * @return HubConnection state enum. */ public HubConnectionState getConnectionState() { - return hubConnectionState; + return this.state.getHubConnectionState(); } // For testing only @@ -333,7 +209,7 @@ public class HubConnection implements AutoCloseable { throw new IllegalArgumentException("The HubConnection url must be a valid url."); } - if (hubConnectionState != HubConnectionState.DISCONNECTED) { + if (this.state.getHubConnectionState() != HubConnectionState.DISCONNECTED) { throw new IllegalStateException("The HubConnection must be in the disconnected state to change the url."); } @@ -348,46 +224,47 @@ public class HubConnection implements AutoCloseable { public Completable start() { CompletableSubject localStart = CompletableSubject.create(); - hubConnectionStateLock.lock(); + this.state.lock.lock(); try { - if (hubConnectionState != HubConnectionState.DISCONNECTED) { - logger.debug("The connection is in the '{}' state. Waiting for in-progress start to complete or completing this start immediately.", hubConnectionState); - return start; + if (this.state.getHubConnectionState() != HubConnectionState.DISCONNECTED) { + logger.debug("The connection is in the '{}' state. Waiting for in-progress start to complete or completing this start immediately.", this.state.getHubConnectionState()); + return this.state.getConnectionStateUnsynchronized(false).startTask; } - hubConnectionState = HubConnectionState.CONNECTING; - start = localStart; + this.state.changeState(HubConnectionState.DISCONNECTED, HubConnectionState.CONNECTING); - handshakeResponseSubject = CompletableSubject.create(); - handshakeReceived = false; CompletableSubject tokenCompletable = CompletableSubject.create(); + Map localHeaders = new HashMap<>(); localHeaders.put(UserAgentHelper.getUserAgentName(), UserAgentHelper.createUserAgentString()); if (headers != null) { - this.localHeaders.putAll(headers); + localHeaders.putAll(headers); } + ConnectionState connectionState = new ConnectionState(this); + this.state.setConnectionState(connectionState); + connectionState.startTask = localStart; accessTokenProvider.subscribe(token -> { if (token != null && !token.isEmpty()) { - this.localHeaders.put("Authorization", "Bearer " + token); + localHeaders.put("Authorization", "Bearer " + token); } tokenCompletable.onComplete(); }, error -> { tokenCompletable.onError(error); }); - stopError = null; Single negotiate = null; if (!skipNegotiate) { - negotiate = tokenCompletable.andThen(Single.defer(() -> startNegotiate(baseUrl, 0))); + negotiate = tokenCompletable.andThen(Single.defer(() -> startNegotiate(baseUrl, 0, localHeaders))); } else { negotiate = tokenCompletable.andThen(Single.defer(() -> Single.just(new NegotiateResponse(baseUrl)))); } negotiate.flatMapCompletable(negotiateResponse -> { logger.debug("Starting HubConnection."); + Transport transport = customTransport; if (transport == null) { Single tokenProvider = negotiateResponse.getAccessToken() != null ? Single.just(negotiateResponse.getAccessToken()) : accessTokenProvider; - switch (transportEnum) { + switch (negotiateResponse.getChosenTransport()) { case LONG_POLLING: transport = new LongPollingTransport(localHeaders, httpClient, tokenProvider); break; @@ -396,81 +273,88 @@ public class HubConnection implements AutoCloseable { } } + connectionState.transport = transport; + transport.setOnReceive(this.callback); transport.setOnClose((message) -> stopConnection(message)); return transport.start(negotiateResponse.getFinalUrl()).andThen(Completable.defer(() -> { ByteBuffer handshake = HandshakeProtocol.createHandshakeRequestMessage( - new HandshakeRequestMessage(protocol.getName(), protocol.getVersion())); + new HandshakeRequestMessage(protocol.getName(), protocol.getVersion())); - connectionState = new ConnectionState(this); - - return transport.send(handshake).andThen(Completable.defer(() -> { - timeoutHandshakeResponse(handshakeResponseTimeout, TimeUnit.MILLISECONDS); - return handshakeResponseSubject.andThen(Completable.defer(() -> { - hubConnectionStateLock.lock(); + this.state.lock(); + try { + if (this.state.hubConnectionState != HubConnectionState.CONNECTING) { + return Completable.error(new RuntimeException("Connection closed while trying to connect.")); + } + return connectionState.transport.send(handshake).andThen(Completable.defer(() -> { + this.state.lock(); try { - hubConnectionState = HubConnectionState.CONNECTED; - logger.info("HubConnection started."); - resetServerTimeout(); - //Don't send pings if we're using long polling. - if (transportEnum != TransportEnum.LONG_POLLING) { - activatePingTimer(); + ConnectionState activeState = this.state.getConnectionStateUnsynchronized(true); + if (activeState != null && activeState == connectionState) { + connectionState.timeoutHandshakeResponse(handshakeResponseTimeout, TimeUnit.MILLISECONDS); + } else { + return Completable.error(new RuntimeException("Connection closed while sending handshake.")); } } finally { - hubConnectionStateLock.unlock(); + this.state.unlock(); } + return connectionState.handshakeResponseSubject.andThen(Completable.defer(() -> { + this.state.lock(); + try { + ConnectionState activeState = this.state.getConnectionStateUnsynchronized(true); + if (activeState == null || activeState != connectionState) { + return Completable.error(new RuntimeException("Connection closed while waiting for handshake.")); + } + this.state.changeState(HubConnectionState.CONNECTING, HubConnectionState.CONNECTED); + logger.info("HubConnection started."); + connectionState.resetServerTimeout(); + // Don't send pings if we're using long polling. + if (negotiateResponse.getChosenTransport() != TransportEnum.LONG_POLLING) { + connectionState.activatePingTimer(); + } + } finally { + this.state.unlock(); + } - return Completable.complete(); + return Completable.complete(); + })); })); - })); + } finally { + this.state.unlock(); + } })); // subscribe makes this a "hot" completable so this runs immediately }).subscribe(() -> { localStart.onComplete(); }, error -> { - hubConnectionStateLock.lock(); - hubConnectionState = HubConnectionState.DISCONNECTED; - hubConnectionStateLock.unlock(); + this.state.lock(); + try { + ConnectionState activeState = this.state.getConnectionStateUnsynchronized(true); + if (activeState == connectionState) { + this.state.changeState(HubConnectionState.CONNECTING, HubConnectionState.DISCONNECTED); + } + // this error is already logged and we want the user to see the original error + } catch (Exception ex) { + } finally { + this.state.unlock(); + } + localStart.onError(error); }); } finally { - hubConnectionStateLock.unlock(); + this.state.lock.unlock(); } return localStart; } - private void activatePingTimer() { - this.pingTimer = new Timer(); - this.pingTimer.schedule(new TimerTask() { - @Override - public void run() { - try { - if (System.currentTimeMillis() > nextServerTimeout.get()) { - stop("Server timeout elapsed without receiving a message from the server."); - return; - } - - if (System.currentTimeMillis() > nextPingActivation.get()) { - sendHubMessage(PingMessage.getInstance()); - } - } catch (Exception e) { - logger.warn("Error sending ping: {}.", e.getMessage()); - // The connection is probably in a bad or closed state now, cleanup the timer so - // it stops triggering - pingTimer.cancel(); - } - } - }, new Date(0), tickRate); - } - - private Single startNegotiate(String url, int negotiateAttempts) { - if (hubConnectionState != HubConnectionState.CONNECTING) { + private Single startNegotiate(String url, int negotiateAttempts, Map localHeaders) { + if (this.state.getHubConnectionState() != HubConnectionState.CONNECTING) { throw new RuntimeException("HubConnection trying to negotiate when not in the CONNECTING state."); } - return handleNegotiate(url).flatMap(response -> { + return handleNegotiate(url, localHeaders).flatMap(response -> { if (response.getRedirectUrl() != null && negotiateAttempts >= MAX_NEGOTIATE_ATTEMPTS) { throw new RuntimeException("Negotiate redirection limit exceeded."); } @@ -479,23 +363,26 @@ public class HubConnection implements AutoCloseable { Set transports = response.getAvailableTransports(); if (this.transportEnum == TransportEnum.ALL) { if (transports.contains("WebSockets")) { - this.transportEnum = TransportEnum.WEBSOCKETS; + response.setChosenTransport(TransportEnum.WEBSOCKETS); } else if (transports.contains("LongPolling")) { - this.transportEnum = TransportEnum.LONG_POLLING; + response.setChosenTransport(TransportEnum.LONG_POLLING); } else { throw new RuntimeException("There were no compatible transports on the server."); } } else if (this.transportEnum == TransportEnum.WEBSOCKETS && !transports.contains("WebSockets") || (this.transportEnum == TransportEnum.LONG_POLLING && !transports.contains("LongPolling"))) { throw new RuntimeException("There were no compatible transports on the server."); + } else { + response.setChosenTransport(this.transportEnum); } String connectionToken = ""; if (response.getVersion() > 0) { - this.connectionId = response.getConnectionId(); + this.state.getConnectionState().connectionId = response.getConnectionId(); connectionToken = response.getConnectionToken(); } else { - connectionToken = this.connectionId = response.getConnectionId(); + connectionToken = response.getConnectionId(); + this.state.getConnectionState().connectionId = connectionToken; } String finalUrl = Utils.appendQueryString(url, "id=" + connectionToken); @@ -504,7 +391,7 @@ public class HubConnection implements AutoCloseable { return Single.just(response); } - return startNegotiate(response.getRedirectUrl(), negotiateAttempts + 1); + return startNegotiate(response.getRedirectUrl(), negotiateAttempts + 1, localHeaders); }); } @@ -515,20 +402,23 @@ public class HubConnection implements AutoCloseable { * @return A Completable that completes when the connection has been stopped. */ private Completable stop(String errorMessage) { - hubConnectionStateLock.lock(); + Transport transport; + this.state.lock(); try { - if (hubConnectionState == HubConnectionState.DISCONNECTED) { + if (this.state.getHubConnectionState() == HubConnectionState.DISCONNECTED) { return Completable.complete(); } if (errorMessage != null) { - stopError = errorMessage; + this.state.getConnectionStateUnsynchronized(false).stopError = errorMessage; logger.error("HubConnection disconnected with an error: {}.", errorMessage); } else { logger.debug("Stopping HubConnection."); } + + transport = this.state.getConnectionStateUnsynchronized(false).transport; } finally { - hubConnectionStateLock.unlock(); + this.state.unlock(); } Completable stop = transport.stop(); @@ -536,6 +426,84 @@ public class HubConnection implements AutoCloseable { return stop; } + private void ReceiveLoop(ByteBuffer payload) + { + List messages; + ConnectionState connectionState; + this.state.lock(); + try { + connectionState = this.state.getConnectionState(); + connectionState.resetServerTimeout(); + connectionState.handleHandshake(payload); + // The payload only contained the handshake response so we can return. + if (!payload.hasRemaining()) { + return; + } + + messages = protocol.parseMessages(payload, connectionState); + } finally { + this.state.unlock(); + } + + for (HubMessage message : messages) { + logger.debug("Received message of type {}.", message.getMessageType()); + switch (message.getMessageType()) { + case INVOCATION_BINDING_FAILURE: + InvocationBindingFailureMessage msg = (InvocationBindingFailureMessage)message; + logger.error("Failed to bind arguments received in invocation '{}' of '{}'.", msg.getInvocationId(), msg.getTarget(), msg.getException()); + break; + case INVOCATION: + + InvocationMessage invocationMessage = (InvocationMessage) message; + List handlers = this.handlers.get(invocationMessage.getTarget()); + if (handlers != null) { + for (InvocationHandler handler : handlers) { + try { + handler.getAction().invoke(invocationMessage.getArguments()); + } catch (Exception e) { + logger.error("Invoking client side method '{}' failed:", invocationMessage.getTarget(), e); + } + } + } else { + logger.warn("Failed to find handler for '{}' method.", invocationMessage.getTarget()); + } + break; + case CLOSE: + logger.info("Close message received from server."); + CloseMessage closeMessage = (CloseMessage) message; + stop(closeMessage.getError()); + break; + case PING: + // We don't need to do anything in the case of a ping message. + break; + case COMPLETION: + CompletionMessage completionMessage = (CompletionMessage)message; + InvocationRequest irq = connectionState.tryRemoveInvocation(completionMessage.getInvocationId()); + if (irq == null) { + logger.warn("Dropped unsolicited Completion message for invocation '{}'.", completionMessage.getInvocationId()); + continue; + } + irq.complete(completionMessage); + break; + case STREAM_ITEM: + StreamItem streamItem = (StreamItem)message; + InvocationRequest streamInvocationRequest = connectionState.getInvocation(streamItem.getInvocationId()); + if (streamInvocationRequest == null) { + logger.warn("Dropped unsolicited Completion message for invocation '{}'.", streamItem.getInvocationId()); + continue; + } + + streamInvocationRequest.addItem(streamItem); + break; + case STREAM_INVOCATION: + case CANCEL_INVOCATION: + logger.error("This client does not support {} messages.", message.getMessageType()); + + throw new UnsupportedOperationException(String.format("The message type %s is not supported yet.", message.getMessageType())); + } + } + } + /** * Stops a connection to the server. * @@ -547,46 +515,29 @@ public class HubConnection implements AutoCloseable { private void stopConnection(String errorMessage) { RuntimeException exception = null; - hubConnectionStateLock.lock(); + this.state.lock(); try { // errorMessage gets passed in from the transport. An already existing stopError value // should take precedence. - if (stopError != null) { - errorMessage = stopError; + if (this.state.getConnectionStateUnsynchronized(false).stopError != null) { + errorMessage = this.state.getConnectionStateUnsynchronized(false).stopError; } if (errorMessage != null) { exception = new RuntimeException(errorMessage); logger.error("HubConnection disconnected with an error {}.", errorMessage); } + + ConnectionState connectionState = this.state.getConnectionStateUnsynchronized(true); if (connectionState != null) { connectionState.cancelOutstandingInvocations(exception); - connectionState = null; - } - - if (pingTimer != null) { - pingTimer.cancel(); - pingTimer = null; + connectionState.close(); + this.state.setConnectionState(null); } logger.info("HubConnection stopped."); - hubConnectionState = HubConnectionState.DISCONNECTED; - handshakeResponseSubject.onComplete(); - redirectAccessTokenProvider = null; - connectionId = null; - transportEnum = TransportEnum.ALL; - this.localHeaders.clear(); - this.streamMap.clear(); - - if (this.handshakeTimeout != null) { - this.handshakeTimeout.shutdownNow(); - this.handshakeTimeout = null; - } - - if (this.customTransport == false) { - this.transport = null; - } + this.state.changeState(HubConnectionState.CONNECTED, HubConnectionState.DISCONNECTED); } finally { - hubConnectionStateLock.unlock(); + this.state.unlock(); } // Do not run these callbacks inside the hubConnectionStateLock @@ -605,14 +556,14 @@ public class HubConnection implements AutoCloseable { * @param args The arguments to be passed to the method. */ public void send(String method, Object... args) { - hubConnectionStateLock.lock(); + this.state.lock(); try { - if (hubConnectionState != HubConnectionState.CONNECTED) { + if (this.state.getHubConnectionState() != HubConnectionState.CONNECTED) { throw new RuntimeException("The 'send' method cannot be called if the connection is not active."); } sendInvocationMessage(method, args); } finally { - hubConnectionStateLock.unlock(); + this.state.unlock(); } } @@ -622,7 +573,8 @@ public class HubConnection implements AutoCloseable { private void sendInvocationMessage(String method, Object[] args, String id, Boolean isStreamInvocation) { List streamIds = new ArrayList<>(); - args = checkUploadStream(args, streamIds); + List streams = new ArrayList<>(); + args = checkUploadStream(args, streamIds, streams); InvocationMessage invocationMessage; if (isStreamInvocation) { invocationMessage = new StreamInvocationMessage(null, id, method, args, streamIds); @@ -630,35 +582,35 @@ public class HubConnection implements AutoCloseable { invocationMessage = new InvocationMessage(null, id, method, args, streamIds); } - sendHubMessage(invocationMessage); - launchStreams(streamIds); + sendHubMessageWithLock(invocationMessage); + launchStreams(streamIds, streams); } - void launchStreams(List streamIds) { - if (streamMap.isEmpty()) { + void launchStreams(List streamIds, List streams) { + if (streams.isEmpty()) { return; } - for (String streamId: streamIds) { - Observable observable = this.streamMap.get(streamId); - observable.subscribe( - (item) -> sendHubMessage(new StreamItem(null, streamId, item)), + for (int i = 0; i < streamIds.size(); i++) { + String streamId = streamIds.get(i); + Observable stream = streams.get(i); + stream.subscribe( + (item) -> sendHubMessageWithLock(new StreamItem(null, streamId, item)), (error) -> { - sendHubMessage(new CompletionMessage(null, streamId, null, error.toString())); - this.streamMap.remove(streamId); + sendHubMessageWithLock(new CompletionMessage(null, streamId, null, error.toString())); }, () -> { - sendHubMessage(new CompletionMessage(null, streamId, null, null)); - this.streamMap.remove(streamId); + sendHubMessageWithLock(new CompletionMessage(null, streamId, null, null)); }); } } - Object[] checkUploadStream(Object[] args, List streamIds) { + Object[] checkUploadStream(Object[] args, List streamIds, List streams) { if (args == null) { return new Object[] { null }; } + ConnectionState connectionState = this.state.getConnectionState(); List params = new ArrayList<>(Arrays.asList(args)); for (Object arg: args) { if (arg instanceof Observable) { @@ -666,7 +618,7 @@ public class HubConnection implements AutoCloseable { Observable stream = (Observable)arg; String streamId = connectionState.getNextInvocationId(); streamIds.add(streamId); - this.streamMap.put(streamId, stream); + streams.add(stream); } } @@ -680,14 +632,14 @@ public class HubConnection implements AutoCloseable { * @param args The arguments used to invoke the server method. * @return A Completable that indicates when the invocation has completed. */ - @SuppressWarnings("unchecked") public Completable invoke(String method, Object... args) { - hubConnectionStateLock.lock(); + this.state.lock(); try { - if (hubConnectionState != HubConnectionState.CONNECTED) { + if (this.state.getHubConnectionState() != HubConnectionState.CONNECTED) { throw new RuntimeException("The 'invoke' method cannot be called if the connection is not active."); } + ConnectionState connectionState = this.state.getConnectionStateUnsynchronized(false); String id = connectionState.getNextInvocationId(); CompletableSubject subject = CompletableSubject.create(); @@ -705,7 +657,7 @@ public class HubConnection implements AutoCloseable { sendInvocationMessage(method, args, id, false); return subject; } finally { - hubConnectionStateLock.unlock(); + this.state.unlock(); } } @@ -739,12 +691,13 @@ public class HubConnection implements AutoCloseable { @SuppressWarnings("unchecked") private Single invoke(Type returnType, Class returnClass, String method, Object... args) { - hubConnectionStateLock.lock(); + this.state.lock(); try { - if (hubConnectionState != HubConnectionState.CONNECTED) { + if (this.state.getHubConnectionState() != HubConnectionState.CONNECTED) { throw new RuntimeException("The 'invoke' method cannot be called if the connection is not active."); } + ConnectionState connectionState = this.state.getConnectionStateUnsynchronized(false); String id = connectionState.getNextInvocationId(); InvocationRequest irq = new InvocationRequest(returnType, id); connectionState.addInvocation(irq); @@ -763,7 +716,7 @@ public class HubConnection implements AutoCloseable { sendInvocationMessage(method, args, id, false); return subject; } finally { - hubConnectionStateLock.unlock(); + this.state.unlock(); } } @@ -798,12 +751,13 @@ public class HubConnection implements AutoCloseable { private Observable stream(Type returnType, Class returnClass, String method, Object ... args) { String invocationId; InvocationRequest irq; - hubConnectionStateLock.lock(); + this.state.lock(); try { - if (hubConnectionState != HubConnectionState.CONNECTED) { + if (this.state.getHubConnectionState() != HubConnectionState.CONNECTED) { throw new RuntimeException("The 'stream' method cannot be called if the connection is not active."); } + ConnectionState connectionState = this.state.getConnectionStateUnsynchronized(false); invocationId = connectionState.getNextInvocationId(); irq = new InvocationRequest(returnType, invocationId); connectionState.addInvocation(irq); @@ -821,38 +775,37 @@ public class HubConnection implements AutoCloseable { return observable.doOnDispose(() -> { if (subscriptionCount.decrementAndGet() == 0) { CancelInvocationMessage cancelInvocationMessage = new CancelInvocationMessage(null, invocationId); - sendHubMessage(cancelInvocationMessage); - if (connectionState != null) { - connectionState.tryRemoveInvocation(invocationId); - } + sendHubMessageWithLock(cancelInvocationMessage); + connectionState.tryRemoveInvocation(invocationId); subject.onComplete(); } }); } finally { - hubConnectionStateLock.unlock(); + this.state.unlock(); } } - private void sendHubMessage(HubMessage message) { - ByteBuffer serializedMessage = protocol.writeMessage(message); - if (message.getMessageType() == HubMessageType.INVOCATION ) { - logger.debug("Sending {} message '{}'.", message.getMessageType().name(), ((InvocationMessage)message).getInvocationId()); - } else if (message.getMessageType() == HubMessageType.STREAM_INVOCATION) { - logger.debug("Sending {} message '{}'.", message.getMessageType().name(), ((StreamInvocationMessage)message).getInvocationId()); - } else { - logger.debug("Sending {} message.", message.getMessageType().name()); + private void sendHubMessageWithLock(HubMessage message) { + this.state.lock(); + try { + if (this.state.getHubConnectionState() != HubConnectionState.CONNECTED) { + throw new RuntimeException("Trying to send and message while the connection is not active."); + } + ByteBuffer serializedMessage = protocol.writeMessage(message); + if (message.getMessageType() == HubMessageType.INVOCATION) { + logger.debug("Sending {} message '{}'.", message.getMessageType().name(), ((InvocationMessage)message).getInvocationId()); + } else if (message.getMessageType() == HubMessageType.STREAM_INVOCATION) { + logger.debug("Sending {} message '{}'.", message.getMessageType().name(), ((StreamInvocationMessage)message).getInvocationId()); + } else { + logger.debug("Sending {} message.", message.getMessageType().name()); + } + + ConnectionState connectionState = this.state.getConnectionStateUnsynchronized(false); + connectionState.transport.send(serializedMessage).subscribeWith(CompletableSubject.create()); + connectionState.resetKeepAlive(); + } finally { + this.state.unlock(); } - - transport.send(serializedMessage).subscribeWith(CompletableSubject.create()); - resetKeepAlive(); - } - - private void resetServerTimeout() { - this.nextServerTimeout.set(System.currentTimeMillis() + serverTimeout); - } - - private void resetKeepAlive() { - this.nextPingActivation.set(System.currentTimeMillis() + keepAliveInterval); } /** @@ -1316,7 +1269,18 @@ public class HubConnection implements AutoCloseable { private final HubConnection connection; private final AtomicInteger nextId = new AtomicInteger(0); private final HashMap pendingInvocations = new HashMap<>(); - private final Lock lock = new ReentrantLock(); + private final AtomicLong nextServerTimeout = new AtomicLong(); + private final AtomicLong nextPingActivation = new AtomicLong(); + private Timer pingTimer = null; + private Boolean handshakeReceived = false; + private ScheduledExecutorService handshakeTimeout = null; + + public final Lock lock = new ReentrantLock(); + public final CompletableSubject handshakeResponseSubject = CompletableSubject.create(); + public Transport transport; + public String connectionId; + public String stopError; + public Completable startTask; public ConnectionState(HubConnection connection) { this.connection = connection; @@ -1376,6 +1340,98 @@ public class HubConnection implements AutoCloseable { } } + public void resetServerTimeout() { + this.nextServerTimeout.set(System.currentTimeMillis() + serverTimeout); + } + + public void resetKeepAlive() { + this.nextPingActivation.set(System.currentTimeMillis() + keepAliveInterval); + } + + public void activatePingTimer() { + this.pingTimer = new Timer(); + this.pingTimer.schedule(new TimerTask() { + @Override + public void run() { + try { + if (System.currentTimeMillis() > nextServerTimeout.get()) { + stop("Server timeout elapsed without receiving a message from the server."); + return; + } + + if (System.currentTimeMillis() > nextPingActivation.get()) { + sendHubMessageWithLock(PingMessage.getInstance()); + } + } catch (Exception e) { + logger.warn("Error sending ping: {}.", e.getMessage()); + // The connection is probably in a bad or closed state now, cleanup the timer so + // it stops triggering + pingTimer.cancel(); + } + } + }, new Date(0), tickRate); + } + + public void handleHandshake(ByteBuffer payload) { + if (!handshakeReceived) { + List handshakeByteList = new ArrayList(); + byte curr = payload.get(); + // Add the handshake to handshakeBytes, but not the record separator + while (curr != RECORD_SEPARATOR) { + handshakeByteList.add(curr); + curr = payload.get(); + } + int handshakeLength = handshakeByteList.size() + 1; + byte[] handshakeBytes = new byte[handshakeLength - 1]; + for (int i = 0; i < handshakeLength - 1; i++) { + handshakeBytes[i] = handshakeByteList.get(i); + } + // The handshake will always be a UTF8 Json string + String handshakeResponseString = new String(handshakeBytes, StandardCharsets.UTF_8); + HandshakeResponseMessage handshakeResponse; + try { + handshakeResponse = HandshakeProtocol.parseHandshakeResponse(handshakeResponseString); + } catch (RuntimeException ex) { + RuntimeException exception = new RuntimeException("An invalid handshake response was received from the server.", ex); + handshakeResponseSubject.onError(exception); + throw exception; + } + if (handshakeResponse.getHandshakeError() != null) { + String errorMessage = "Error in handshake " + handshakeResponse.getHandshakeError(); + logger.error(errorMessage); + RuntimeException exception = new RuntimeException(errorMessage); + handshakeResponseSubject.onError(exception); + throw exception; + } + handshakeReceived = true; + handshakeResponseSubject.onComplete(); + } + } + + public void timeoutHandshakeResponse(long timeout, TimeUnit unit) { + handshakeTimeout = Executors.newSingleThreadScheduledExecutor(); + handshakeTimeout.schedule(() -> { + // If onError is called on a completed subject the global error handler is called + if (!(handshakeResponseSubject.hasComplete() || handshakeResponseSubject.hasThrowable())) + { + handshakeResponseSubject.onError( + new TimeoutException("Timed out waiting for the server to respond to the handshake message.")); + } + }, timeout, unit); + } + + public void close() { + handshakeResponseSubject.onComplete(); + + if (pingTimer != null) { + pingTimer.cancel(); + } + + if (this.handshakeTimeout != null) { + this.handshakeTimeout.shutdownNow(); + } + } + @Override public Type getReturnType(String invocationId) { InvocationRequest irq = getInvocation(invocationId); @@ -1402,6 +1458,76 @@ public class HubConnection implements AutoCloseable { } } + // We don't have reconnect yet, but this helps align the Java client with the .NET client + // and hopefully make it easier to implement reconnect in the future + private final class ReconnectingConnectionState { + private final Logger logger; + private final Lock lock = new ReentrantLock(); + private ConnectionState state; + private HubConnectionState hubConnectionState = HubConnectionState.DISCONNECTED; + + public ReconnectingConnectionState(Logger logger) { + this.logger = logger; + } + + public void setConnectionState(ConnectionState state) { + this.lock.lock(); + try { + this.state = state; + } finally { + this.lock.unlock(); + } + } + + public ConnectionState getConnectionStateUnsynchronized(Boolean allowNull) { + if (allowNull != true && this.state == null) { + throw new RuntimeException("Connection is not active."); + } + return this.state; + } + + public ConnectionState getConnectionState() { + this.lock.lock(); + try { + if (this.state == null) { + throw new RuntimeException("Connection is not active."); + } + return this.state; + } finally { + this.lock.unlock(); + } + } + + public HubConnectionState getHubConnectionState() { + return this.hubConnectionState; + } + + public void changeState(HubConnectionState from, HubConnectionState to) { + this.lock.lock(); + try { + logger.debug("The HubConnection is attempting to transition from the {} state to the {} state.", from, to); + if (this.hubConnectionState != from) { + logger.debug("The HubConnection failed to transition from the {} state to the {} state because it was actually in the {} state.", + from, to, this.hubConnectionState); + throw new RuntimeException(String.format("The HubConnection failed to transition from the '%s' state to the '%s' state because it was actually in the '%s' state.", + from, to, this.hubConnectionState)); + } + + this.hubConnectionState = to; + } finally { + this.lock.unlock(); + } + } + + public void lock() { + this.lock.lock(); + } + + public void unlock() { + this.lock.unlock(); + } + } + @Override public void close() { try { diff --git a/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/NegotiateResponse.java b/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/NegotiateResponse.java index bf09b37578..a593c542fd 100644 --- a/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/NegotiateResponse.java +++ b/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/NegotiateResponse.java @@ -18,6 +18,7 @@ class NegotiateResponse { private String error; private String finalUrl; private int version; + private TransportEnum chosenTransport; public NegotiateResponse(JsonReader reader) { try { @@ -125,4 +126,12 @@ class NegotiateResponse { public void setFinalUrl(String url) { this.finalUrl = url; } + + public TransportEnum getChosenTransport() { + return chosenTransport; + } + + public void setChosenTransport(TransportEnum chosenTransport) { + this.chosenTransport = chosenTransport; + } } diff --git a/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/HubConnectionTest.java b/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/HubConnectionTest.java index 1bb76c93c7..bc008f5886 100644 --- a/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/HubConnectionTest.java +++ b/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/HubConnectionTest.java @@ -524,74 +524,6 @@ class HubConnectionTest { assertEquals("{\"type\":3,\"invocationId\":\"1\"}\u001E", TestUtils.byteBufferToString(messages[3])); } - @Test - public void streamMapIsClearedOnClose() { - MockTransport mockTransport = new MockTransport(); - HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - - hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); - - ReplaySubject stream = ReplaySubject.create(); - hubConnection.send("UploadStream", stream, 12); - - stream.onNext("FirstItem"); - ByteBuffer[] messages = mockTransport.getSentMessages(); - assertEquals("{\"type\":1,\"target\":\"UploadStream\",\"arguments\":[12],\"streamIds\":[\"1\"]}\u001E", TestUtils.byteBufferToString(messages[1])); - assertEquals("{\"type\":2,\"invocationId\":\"1\",\"item\":\"FirstItem\"}\u001E", TestUtils.byteBufferToString(messages[2])); - - stream.onComplete(); - messages = mockTransport.getSentMessages(); - assertEquals("{\"type\":3,\"invocationId\":\"1\"}\u001E", TestUtils.byteBufferToString(messages[3])); - - hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); - - assertTrue(hubConnection.getStreamMap().isEmpty()); - } - - @Test - public void streamMapEntriesRemovedOnStreamClose() { - MockTransport mockTransport = new MockTransport(); - HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - - hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); - - ReplaySubject stream = ReplaySubject.create(); - hubConnection.send("UploadStream", stream, 12); - - ReplaySubject secondStream = ReplaySubject.create(); - hubConnection.send("SecondUploadStream", secondStream, 13); - - - stream.onNext("FirstItem"); - secondStream.onNext("SecondItem"); - ByteBuffer[] messages = mockTransport.getSentMessages(); - assertEquals("{\"type\":1,\"target\":\"UploadStream\",\"arguments\":[12],\"streamIds\":[\"1\"]}\u001E", TestUtils.byteBufferToString(messages[1])); - assertEquals("{\"type\":1,\"target\":\"SecondUploadStream\",\"arguments\":[13],\"streamIds\":[\"2\"]}\u001E", TestUtils.byteBufferToString(messages[2])); - assertEquals("{\"type\":2,\"invocationId\":\"1\",\"item\":\"FirstItem\"}\u001E", TestUtils.byteBufferToString(messages[3])); - assertEquals("{\"type\":2,\"invocationId\":\"2\",\"item\":\"SecondItem\"}\u001E", TestUtils.byteBufferToString(messages[4])); - - - assertEquals(2, hubConnection.getStreamMap().size()); - assertTrue(hubConnection.getStreamMap().keySet().contains("1")); - assertTrue(hubConnection.getStreamMap().keySet().contains("2")); - - // Verify that we clear the entry from the stream map after we clear the first stream. - stream.onComplete(); - assertEquals(1, hubConnection.getStreamMap().size()); - assertTrue(hubConnection.getStreamMap().keySet().contains("2")); - - secondStream.onError(new Exception("Exception")); - assertEquals(0, hubConnection.getStreamMap().size()); - assertTrue(hubConnection.getStreamMap().isEmpty()); - - messages = mockTransport.getSentMessages(); - assertEquals("{\"type\":3,\"invocationId\":\"1\"}\u001E", TestUtils.byteBufferToString(messages[5])); - assertEquals("{\"type\":3,\"invocationId\":\"2\",\"error\":\"java.lang.Exception: Exception\"}\u001E", TestUtils.byteBufferToString(messages[6])); - - hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); - assertTrue(hubConnection.getStreamMap().isEmpty()); - } - @Test public void useSameSubjectMultipleTimes() { MockTransport mockTransport = new MockTransport(); @@ -3006,7 +2938,6 @@ class HubConnectionTest { .withHttpClient(client) .build(); - assertEquals(TransportEnum.WEBSOCKETS, hubConnection.getTransportEnum()); RuntimeException exception = assertThrows(RuntimeException.class, () -> hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait()); @@ -3025,13 +2956,52 @@ class HubConnectionTest { .withHttpClient(client) .build(); - assertEquals(TransportEnum.LONG_POLLING, hubConnection.getTransportEnum()); RuntimeException exception = assertThrows(RuntimeException.class, () -> hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait()); assertEquals(exception.getMessage(), "There were no compatible transports on the server."); } + @Test + public void ConnectionRestartDoesNotResetUserTransportEnum() { + AtomicInteger requestCount = new AtomicInteger(0); + AtomicReference blockGet = new AtomicReference(CompletableSubject.create()); + TestHttpClient client = new TestHttpClient() + .on("POST", (req) -> { + return Single.just(new HttpResponse(200, "", TestUtils.stringToByteBuffer(""))); + }) + .on("POST", "http://example.com/negotiate?negotiateVersion=1", + (req) -> Single.just(new HttpResponse(200, "", TestUtils.stringToByteBuffer("{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\",\"" + + "availableTransports\":[{\"transport\":\"WebSockets\",\"transferFormats\":[\"Text\",\"Binary\"]}," + + "{\"transport\":\"LongPolling\",\"transferFormats\":[\"Text\",\"Binary\"]}]}")))) + .on("GET", (req) -> { + if (requestCount.incrementAndGet() >= 3) { + blockGet.get().timeout(30, TimeUnit.SECONDS).blockingAwait(); + } + return Single.just(new HttpResponse(200, "", TestUtils.stringToByteBuffer("{}" + RECORD_SEPARATOR))); + }) + .on("DELETE", (req) -> { + blockGet.get().onComplete(); + return Single.just(new HttpResponse(200, "", TestUtils.stringToByteBuffer(""))); + }); + + HubConnection hubConnection = HubConnectionBuilder + .create("http://example.com") + .withTransport(TransportEnum.LONG_POLLING) + .withHttpClient(client) + .build(); + + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); + assertTrue(hubConnection.getTransport() instanceof LongPollingTransport); + hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); + + requestCount.set(0); + blockGet.set(CompletableSubject.create()); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); + assertTrue(hubConnection.getTransport() instanceof LongPollingTransport); + hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); + } + @Test public void LongPollingTransportAccessTokenProviderThrowsOnInitialPoll() { TestHttpClient client = new TestHttpClient() @@ -3191,10 +3161,10 @@ class HubConnectionTest { closed.onComplete(); }); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); hubConnection.stop(); - closed.timeout(1, TimeUnit.SECONDS).blockingAwait(); + closed.timeout(30, TimeUnit.SECONDS).blockingAwait(); blockGet.onComplete(); assertEquals(HubConnectionState.DISCONNECTED, hubConnection.getConnectionState()); } @@ -3229,12 +3199,12 @@ class HubConnectionTest { hubConnection.onClosed((ex) -> { closed.onComplete(); }); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); blockGet.onComplete(); - closed.timeout(1, TimeUnit.SECONDS).blockingAwait(); + closed.timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.DISCONNECTED, hubConnection.getConnectionState()); } From 6418c8f78a93b49e907ff4ff53b68b88d9a679ff Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Thu, 17 Sep 2020 21:02:46 -0700 Subject: [PATCH 142/187] Pin PackageOverrides.txt Extensions versions at Major.Minor.0 in servicing (#25986) - set the package version of Extensions assemblies using NETCore.App version - ignore Microsoft.Extensions.Internal.Transport package version - transport package has a non-stable version and isn't shipped - just got lucky this worked before versions stabilize - update test expectations when checking PackageOverrides.txt - use NuGet.Versioning to make this easier --- eng/Dependencies.props | 1 + eng/Versions.props | 1 + .../src/Microsoft.AspNetCore.App.Ref.csproj | 20 +++++++++---- src/Framework/Directory.Build.props | 2 +- .../Microsoft.AspNetCore.App.UnitTests.csproj | 1 + src/Framework/test/TargetingPackTests.cs | 30 ++++++++++++++++--- 6 files changed, 45 insertions(+), 10 deletions(-) diff --git a/eng/Dependencies.props b/eng/Dependencies.props index d7d3a004ac..62a7ac2e0f 100644 --- a/eng/Dependencies.props +++ b/eng/Dependencies.props @@ -169,6 +169,7 @@ and are generated based on the last package release. + diff --git a/eng/Versions.props b/eng/Versions.props index 8800f4c7a2..a083ab683d 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -205,6 +205,7 @@ 11.1.0 1.4.0 6.7.1 + 5.7.0 2.1.1 2.2.0 diff --git a/src/Framework/App.Ref/src/Microsoft.AspNetCore.App.Ref.csproj b/src/Framework/App.Ref/src/Microsoft.AspNetCore.App.Ref.csproj index 26b11b0603..184778716a 100644 --- a/src/Framework/App.Ref/src/Microsoft.AspNetCore.App.Ref.csproj +++ b/src/Framework/App.Ref/src/Microsoft.AspNetCore.App.Ref.csproj @@ -155,14 +155,24 @@ This package is an internal implementation of the .NET Core SDK and is not meant DependsOnTargets="_ResolveTargetingPackContent" Inputs="$(MSBuildAllProjects)" Outputs="$(TargetDir)$(PackageConflictManifestFileName)"> + + <_PinnedNETCoreAppRuntimeVersion>$(MicrosoftNETCoreAppRuntimeVersion) + <_PinnedNETCoreAppRuntimeVersion + Condition=" '$(IsServicingBuild)' == 'true' ">$(_PinnedNETCoreAppRuntimeVersion.Split('.')[0]).$(_PinnedNETCoreAppRuntimeVersion.Split('.')[1]).0 + - - <_AspNetCoreAppPackageOverrides Include="@(AspNetCoreReferenceAssemblyPath->'%(NuGetPackageId)|%(NuGetPackageVersion)')" Condition="!Exists('$(RuntimeExtensionsReferenceDirectory)%(AspNetCoreReferenceAssemblyPath.NuGetPackageId).dll') AND '%(AspNetCoreReferenceAssemblyPath.NuGetPackageId)' != 'Microsoft.NETCore.App' AND '%(AspNetCoreReferenceAssemblyPath.NuGetPackageId)' != 'Microsoft.Extensions.Internal.Transport' AND '%(AspNetCoreReferenceAssemblyPath.NuGetSourceType)' == 'Package' " /> + + <_AspNetCoreAppPackageOverrides Include="@(AspNetCoreReferenceAssemblyPath->'%(NuGetPackageId)|%(NuGetPackageVersion)')" + Condition="!Exists('$(RuntimeExtensionsReferenceDirectory)%(AspNetCoreReferenceAssemblyPath.NuGetPackageId).dll') AND + '%(AspNetCoreReferenceAssemblyPath.NuGetPackageId)' != 'Microsoft.NETCore.App' AND + '%(AspNetCoreReferenceAssemblyPath.NuGetPackageId)' != 'Microsoft.Extensions.Internal.Transport' AND + '%(AspNetCoreReferenceAssemblyPath.NuGetSourceType)' == 'Package' " /> - - <_AspNetCoreAppPackageOverrides Include="@(_SelectedExtensionsRefAssemblies->'%(FileName)|$(MicrosoftExtensionsInternalTransportPackageVersion)')" /> + + <_AspNetCoreAppPackageOverrides Include="@(_SelectedExtensionsRefAssemblies->'%(FileName)|$(_PinnedNETCoreAppRuntimeVersion)')" /> - <_AspNetCoreAppPackageOverrides Include="@(AspNetCoreReferenceAssemblyPath->'%(FileName)|$(ReferencePackSharedFxVersion)')" Condition=" '%(AspNetCoreReferenceAssemblyPath.ReferenceSourceTarget)' == 'ProjectReference' " /> + <_AspNetCoreAppPackageOverrides Include="@(AspNetCoreReferenceAssemblyPath->'%(FileName)|$(ReferencePackSharedFxVersion)')" + Condition=" '%(AspNetCoreReferenceAssemblyPath.ReferenceSourceTarget)' == 'ProjectReference' " /> PlatformManifest.txt $(ArtifactsObjDir)$(PlatformManifestFileName) - + $(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).0 $(ReferencePackSharedFxVersion)-$(VersionSuffix) diff --git a/src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj b/src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj index a225c92060..3a594e0f30 100644 --- a/src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj +++ b/src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj @@ -48,6 +48,7 @@ + diff --git a/src/Framework/test/TargetingPackTests.cs b/src/Framework/test/TargetingPackTests.cs index d39f6dbbe4..928fd395b0 100644 --- a/src/Framework/test/TargetingPackTests.cs +++ b/src/Framework/test/TargetingPackTests.cs @@ -10,6 +10,7 @@ using System.Reflection.Metadata; using System.Reflection.PortableExecutable; using System.Runtime.CompilerServices; using System.Xml.Linq; +using NuGet.Versioning; using Xunit; using Xunit.Abstractions; @@ -143,25 +144,46 @@ namespace Microsoft.AspNetCore Assert.Equal(packageOverrideFileLines.Length, runtimeDependencies.Count + aspnetcoreDependencies.Count); - foreach (var entry in packageOverrideFileLines) + // PackageOverrides versions should remain at Major.Minor.0 while servicing. + var netCoreAppPackageVersion = TestData.GetMicrosoftNETCoreAppPackageVersion(); + Assert.True( + NuGetVersion.TryParse(netCoreAppPackageVersion, out var parsedVersion), + "MicrosoftNETCoreAppPackageVersion must be convertable to a NuGetVersion."); + if (parsedVersion.Patch != 0 && !parsedVersion.IsPrerelease) + { + netCoreAppPackageVersion = $"{parsedVersion.Major}.{parsedVersion.Minor}.0"; + } + + var aspNetCoreAppPackageVersion = TestData.GetReferencePackSharedFxVersion(); + Assert.True( + NuGetVersion.TryParse(aspNetCoreAppPackageVersion, out parsedVersion), + "ReferencePackSharedFxVersion must be convertable to a NuGetVersion."); + if (parsedVersion.Patch != 0 && !parsedVersion.IsPrerelease) + { + aspNetCoreAppPackageVersion = $"{parsedVersion.Major}.{parsedVersion.Minor}.0"; + } + + Assert.All(packageOverrideFileLines, entry => { var packageOverrideParts = entry.Split("|"); + Assert.Equal(2, packageOverrideParts.Length); + var packageName = packageOverrideParts[0]; var packageVersion = packageOverrideParts[1]; if (runtimeDependencies.Contains(packageName)) { - Assert.Equal(TestData.GetMicrosoftNETCoreAppPackageVersion(), packageVersion); + Assert.Equal(netCoreAppPackageVersion, packageVersion); } else if (aspnetcoreDependencies.Contains(packageName)) { - Assert.Equal(TestData.GetReferencePackSharedFxVersion(), packageVersion); + Assert.Equal(aspNetCoreAppPackageVersion, packageVersion); } else { Assert.True(false, $"{packageName} is not a recognized aspNetCore or runtime dependency"); } - } + }); } [Fact] From b592cf66105e66bce2ee3afdc95768026b6414a0 Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Thu, 17 Sep 2020 21:03:07 -0700 Subject: [PATCH 143/187] Place ref/ layout where SDK can find it (#25987) - correct Helix test failures with stable versions, where SDK's packs aren't enough E.g. from https://dev.azure.com/dnceng/internal/_build/results?buildId=813814 ``` text ...\.dotnet\sdk\5.0.100-rc.1.20379.10\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(318,5): error MSB4018: The "ResolveTargetingPackAssets" task failed unexpectedly. [...\src\ProjectTemplates\test\bin\Release\net5.0\TestTemplates\AspNet.m0yq3xrporu\AspNet.m0yq3xrporu.csproj] ...\.dotnet\sdk\5.0.100-rc.1.20379.10\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(318,5): error MSB4018: System.IO.DirectoryNotFoundException: Could not find a part of the path '...\.dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\data\FrameworkList.xml'. [...\src\ProjectTemplates\test\bin\Release\net5.0\TestTemplates\AspNet.m0yq3xrporu\AspNet.m0yq3xrporu.csproj] ``` --- eng/helix/content/RunTests/TestRunner.cs | 4 ++-- src/Framework/test/TargetingPackTests.cs | 11 ++++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/eng/helix/content/RunTests/TestRunner.cs b/eng/helix/content/RunTests/TestRunner.cs index f99c2769f0..c5f48c8975 100644 --- a/eng/helix/content/RunTests/TestRunner.cs +++ b/eng/helix/content/RunTests/TestRunner.cs @@ -166,9 +166,9 @@ namespace RunTests { if (File.Exists(Options.AspNetRef)) { - var refPath = $"Microsoft.AspNetCore.App.Ref"; + var refPath = $"{Options.DotnetRoot}/packs/Microsoft.AspNetCore.App.Ref/{Options.RuntimeVersion}"; Console.WriteLine($"Found AspNetRef: {Options.AspNetRef}, extracting to {refPath}"); - ZipFile.ExtractToDirectory(Options.AspNetRef, "Microsoft.AspNetCore.App.Ref"); + ZipFile.ExtractToDirectory(Options.AspNetRef, refPath); DisplayContents(refPath); } diff --git a/src/Framework/test/TargetingPackTests.cs b/src/Framework/test/TargetingPackTests.cs index 928fd395b0..6266e6f3d8 100644 --- a/src/Framework/test/TargetingPackTests.cs +++ b/src/Framework/test/TargetingPackTests.cs @@ -29,9 +29,14 @@ namespace Microsoft.AspNetCore _output = output; _expectedRid = TestData.GetSharedFxRuntimeIdentifier(); _targetingPackTfm = "net" + TestData.GetSharedFxVersion().Substring(0, 3); - _targetingPackRoot = string.IsNullOrEmpty(Environment.GetEnvironmentVariable("helix")) - ? Path.Combine(TestData.GetTestDataValue("TargetingPackLayoutRoot"), "packs", "Microsoft.AspNetCore.App.Ref", TestData.GetTestDataValue("TargetingPackVersion")) - : Path.Combine(Environment.GetEnvironmentVariable("HELIX_WORKITEM_ROOT"), "Microsoft.AspNetCore.App.Ref"); + var root = string.IsNullOrEmpty(Environment.GetEnvironmentVariable("helix")) ? + TestData.GetTestDataValue("TargetingPackLayoutRoot") : + Environment.GetEnvironmentVariable("DOTNET_ROOT"); + _targetingPackRoot = Path.Combine( + root, + "packs", + "Microsoft.AspNetCore.App.Ref", + TestData.GetTestDataValue("TargetingPackVersion")); _isTargetingPackBuilding = bool.Parse(TestData.GetTestDataValue("IsTargetingPackBuilding")); } From 618613495647f658ca4537e44540f25f6509866d Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 18 Sep 2020 05:06:35 +0000 Subject: [PATCH 144/187] Update dependencies from https://github.com/dotnet/runtime build 20200917.14 (#26042) [release/5.0-rc2] Update dependencies from dotnet/runtime --- eng/Version.Details.xml | 260 ++++++++++++++++++++-------------------- eng/Versions.props | 130 ++++++++++---------- 2 files changed, 195 insertions(+), 195 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 38b1f28c20..409e5e84ea 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -41,272 +41,272 @@ https://github.com/dotnet/efcore 5588c482759853e7133057c78924872575a5b336 - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/runtime - 80a03cadfeaf1130f7c820e4e360b7973de46f1c + 7b7dad97a9b835a6d049ad9d4a86691c60e218bd https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index a083ab683d..b1fc156f0d 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -64,72 +64,72 @@ 3.8.0-3.20458.6 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 - 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.1 + 5.0.0-rc.2.20467.14 5.0.0-rc.2.20466.3 5.0.0-rc.2.20466.3 From f6723f5b0dc648267e9d9e32ab73f816a751ac48 Mon Sep 17 00:00:00 2001 From: Pranav K Date: Fri, 18 Sep 2020 09:05:14 -0700 Subject: [PATCH 145/187] Do not build native when packing for template tests (#26031) This produces a bunch of warnings and causes the quarantine build to fail. Passing NoBuildNative keeps with the theme of -NoBuild also being passed to this script --- .azure/pipelines/quarantined-pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azure/pipelines/quarantined-pr.yml b/.azure/pipelines/quarantined-pr.yml index 13a7236c3a..b90a1793e9 100644 --- a/.azure/pipelines/quarantined-pr.yml +++ b/.azure/pipelines/quarantined-pr.yml @@ -59,7 +59,7 @@ jobs: - powershell: "& ./build.ps1 -CI -nobl -all -pack -NoBuildJava" displayName: Build # The templates part can be removed when the Blazor Templates run on Helix - - script: ./src/ProjectTemplates/build.cmd -ci -nobl -pack -NoRestore -NoBuilddeps "/p:RunTemplateTests=true" + - script: ./src/ProjectTemplates/build.cmd -ci -nobl -pack -NoRestore -NoBuildNative -NoBuilddeps "/p:RunTemplateTests=true" displayName: Pack Templates - script: ./build.cmd -ci -nobl -test -NoRestore -NoBuild -NoBuilddeps "/p:RunTemplateTests=true /p:RunQuarantinedTests=true /p:SkipHelixReadyTests=true" displayName: Run Quarantined Tests From 3faea0e80500dfff8c0d9797c6a6ab475a765f18 Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Fri, 18 Sep 2020 10:33:01 -0700 Subject: [PATCH 146/187] Almost-always use project references, not baseline references (#25992) - otherwise need to released previous packages; that's slower and less reliable - left escape hatches but they're not currently used - broke in servicing exercise because repo doesn't use its own isolated feeds - also use latest package references for non-packable implementation projects nits: - copy some comment and spacing improvements from release/3.1 --- eng/targets/ResolveReferences.targets | 66 +++++++++++++-------------- 1 file changed, 32 insertions(+), 34 deletions(-) diff --git a/eng/targets/ResolveReferences.targets b/eng/targets/ResolveReferences.targets index df5b0eaa86..197491fd5a 100644 --- a/eng/targets/ResolveReferences.targets +++ b/eng/targets/ResolveReferences.targets @@ -10,11 +10,12 @@ Items used by the resolution strategy: - * BaselinePackageReference = a list of packages that were reference in the last release of the project currently building + * BaselinePackageReference = a list of packages that were referenced in the last release of the project currently building + - mainly used to ensure references do not change in servicing builds unless $(UseLatestPackageReferences) is not true. * LatestPackageReference = a list of the latest versions of packages * Reference = a list of the references which are needed for compilation or runtime * ProjectReferenceProvider = a list which maps of assembly names to the project file that produces it - --> +--> @@ -29,36 +30,29 @@ true true + Condition=" '$(UseLatestPackageReferences)' == '' AND '$(IsPackableInNonServicingBuild)' != 'true' ">true true - false + Condition=" '$(UseLatestPackageReferences)' == '' AND '$(IsPackageInThisPatch)' == 'true' ">true + false - - true - true - false + + true - + @@ -73,20 +67,21 @@ <_AllowedExplicitPackageReference Include="@(PackageReference->WithMetadataValue('AllowExplicitReference', 'true'))" /> <_AllowedExplicitPackageReference Include="FSharp.Core" Condition="'$(MSBuildProjectExtension)' == '.fsproj'" /> - <_ExplicitPackageReference Include="@(PackageReference)" Exclude="@(_ImplicitPackageReference);@(_AllowedExplicitPackageReference)" /> + <_ExplicitPackageReference Include="@(PackageReference)" + Exclude="@(_ImplicitPackageReference);@(_AllowedExplicitPackageReference)" /> - <_CompilationOnlyReference Condition="'$(TargetFramework)' == 'netstandard2.0'" - Include="@(Reference->WithMetadataValue('NuGetPackageId','NETStandard.Library'))" /> + <_CompilationOnlyReference Include="@(Reference->WithMetadataValue('NuGetPackageId','NETStandard.Library'))" + Condition="'$(TargetFramework)' == 'netstandard2.0'" /> <_InvalidReferenceToNonSharedFxAssembly Condition="'$(IsAspNetCoreApp)' == 'true'" - Include="@(Reference)" - Exclude=" - @(AspNetCoreAppReference); - @(AspNetCoreAppReferenceAndPackage); - @(ExternalAspNetCoreAppReference); - @(_CompilationOnlyReference); - @(Reference->WithMetadataValue('IsSharedSource', 'true')); - @(Reference->WithMetadataValue('PrivateAssets', 'All'))" /> + Include="@(Reference)" + Exclude=" + @(AspNetCoreAppReference); + @(AspNetCoreAppReferenceAndPackage); + @(ExternalAspNetCoreAppReference); + @(_CompilationOnlyReference); + @(Reference->WithMetadataValue('IsSharedSource', 'true')); + @(Reference->WithMetadataValue('PrivateAssets', 'All'))" /> <_OriginalReferences Include="@(Reference)" /> @@ -134,7 +129,7 @@ @@ -309,9 +304,12 @@ - <_CustomCollectProjectReferenceDependsOn Condition="'$(TargetFramework)' != ''">ResolveProjectReferences + <_CustomCollectProjectReferenceDependsOn + Condition="'$(TargetFramework)' != ''">ResolveProjectReferences - + <_TargetFrameworks Include="$(TargetFrameworks)" /> From b1b3d5474f32a37408836c7e32a307fe128cf17f Mon Sep 17 00:00:00 2001 From: Matt Mitchell Date: Fri, 18 Sep 2020 11:07:42 -0700 Subject: [PATCH 147/187] Enable PostBuildSign flag and include signing information in the manifest (#26033) This change is prep for post build signing. When PostBuildSign=true, signing is not performed during the build. Instead, pass the top-level artifacts that are signable to PushToAzureDevOpsArtifacts (via Publish.proj). Also fix up ArtifactsDir. As far as I can tell, it's been fixed up in Arcade to always include the trailing \, and Publish.proj should no longer be messed up. --- eng/AfterSigning.targets | 4 +- eng/Publishing.props | 33 ++++++++-------- eng/Signing.props | 52 +++++++++++++++++++++++--- src/Components/Directory.Build.targets | 2 +- 4 files changed, 65 insertions(+), 26 deletions(-) diff --git a/eng/AfterSigning.targets b/eng/AfterSigning.targets index 3b11f73941..d9205a0d56 100644 --- a/eng/AfterSigning.targets +++ b/eng/AfterSigning.targets @@ -1,9 +1,7 @@ - - $(ArtifactsDir.Substring(0, $([MSBuild]::Subtract($(ArtifactsDir.Length), 1)))) - $(ArtifactsDir)\installers\ + $(ArtifactsDir)installers\ <_SuppressSdkImports>false diff --git a/eng/Publishing.props b/eng/Publishing.props index f6c6fe21a0..39c3ea1f4c 100644 --- a/eng/Publishing.props +++ b/eng/Publishing.props @@ -4,9 +4,6 @@ - - $(ArtifactsDir.Substring(0, $([MSBuild]::Subtract($(ArtifactsDir.Length), 1)))) - $(PublishDependsOnTargets);_PublishInstallersAndChecksums <_UploadPathRoot>aspnetcore @@ -15,23 +12,23 @@ - + <_InstallersToPublish Remove="@(_InstallersToPublish)" /> - <_InstallersToPublish Include="$(ArtifactsDir)\packages\**\*.jar" UploadPathSegment="jar" /> - <_InstallersToPublish Include="$(ArtifactsDir)\packages\**\*.pom" UploadPathSegment="jar" /> - <_InstallersToPublish Include="$(ArtifactsDir)\packages\**\*.tgz" UploadPathSegment="npm" /> - <_InstallersToPublish Include="$(ArtifactsDir)\installers\**\*.deb" UploadPathSegment="Runtime" /> - <_InstallersToPublish Include="$(ArtifactsDir)\installers\**\*.exe" UploadPathSegment="Runtime" /> - <_InstallersToPublish Include="$(ArtifactsDir)\installers\**\*.msi" UploadPathSegment="Runtime" /> - <_InstallersToPublish Include="$(ArtifactsDir)\installers\**\*.rpm" UploadPathSegment="Runtime" /> - <_InstallersToPublish Include="$(ArtifactsDir)\installers\**\*.tar.gz" UploadPathSegment="Runtime" /> - <_InstallersToPublish Include="$(ArtifactsDir)\installers\**\*.version" UploadPathSegment="Runtime" + <_InstallersToPublish Include="$(ArtifactsDir)packages\**\*.jar" UploadPathSegment="jar" /> + <_InstallersToPublish Include="$(ArtifactsDir)packages\**\*.pom" UploadPathSegment="jar" /> + <_InstallersToPublish Include="$(ArtifactsDir)packages\**\*.tgz" UploadPathSegment="npm" /> + <_InstallersToPublish Include="$(ArtifactsDir)installers\**\*.deb" UploadPathSegment="Runtime" /> + <_InstallersToPublish Include="$(ArtifactsDir)installers\**\*.exe" UploadPathSegment="Runtime" /> + <_InstallersToPublish Include="$(ArtifactsDir)installers\**\*.msi" UploadPathSegment="Runtime" /> + <_InstallersToPublish Include="$(ArtifactsDir)installers\**\*.rpm" UploadPathSegment="Runtime" /> + <_InstallersToPublish Include="$(ArtifactsDir)installers\**\*.tar.gz" UploadPathSegment="Runtime" /> + <_InstallersToPublish Include="$(ArtifactsDir)installers\**\*.version" UploadPathSegment="Runtime" Condition=" '$(PublishInstallerBaseVersion)' == 'true' " /> - <_InstallersToPublish Include="$(ArtifactsDir)\installers\**\*.wixlib" UploadPathSegment="Runtime" /> - <_InstallersToPublish Include="$(ArtifactsDir)\installers\**\*.zip" UploadPathSegment="Runtime" /> - <_ChecksumsToPublish Include="$(ArtifactsDir)\**\*.sha512" /> + <_InstallersToPublish Include="$(ArtifactsDir)installers\**\*.wixlib" UploadPathSegment="Runtime" /> + <_InstallersToPublish Include="$(ArtifactsDir)installers\**\*.zip" UploadPathSegment="Runtime" /> + <_ChecksumsToPublish Include="$(ArtifactsDir)**\*.sha512" /> @@ -67,6 +64,10 @@ true $(_UploadPathRoot)/%(_InstallersToPublish.UploadPathSegment)/$(_PackageVersion)/%(Filename)%(Extension) + + + + diff --git a/eng/Signing.props b/eng/Signing.props index 7761031a3b..f35228b20f 100644 --- a/eng/Signing.props +++ b/eng/Signing.props @@ -9,12 +9,43 @@ - - - - - + + + + + + + + + + + + + + + + + + true + + + + + + + + + + + + + <_DotNetFilesToExclude Include="$(BaseRedistNetCorePath)win-x64\shared\Microsoft.NETCore.App\**\*.dll" CertificateName="None" /> <_DotNetFilesToExclude Include="$(BaseRedistNetCorePath)win-x86\shared\Microsoft.NETCore.App\**\*.dll" CertificateName="None" /> @@ -98,7 +134,11 @@ <_DotNetFilesToExclude Include="$(BaseRedistNetCorePath)win-arm\host\**\*.dll" CertificateName="None" /> <_DotNetFilesToExclude Include="$(BaseRedistNetCorePath)win-arm64\host\**\*.dll" CertificateName="None" /> <_DotNetFilesToExclude Include="$(RedistNetCorePath)dotnet.exe" CertificateName="None" /> - + + + + + - + https://github.com/dotnet/efcore - 5588c482759853e7133057c78924872575a5b336 + 46a6e9bf6ffe3949f71c87786a53f147e04c931d - + https://github.com/dotnet/efcore - 5588c482759853e7133057c78924872575a5b336 + 46a6e9bf6ffe3949f71c87786a53f147e04c931d - + https://github.com/dotnet/efcore - 5588c482759853e7133057c78924872575a5b336 + 46a6e9bf6ffe3949f71c87786a53f147e04c931d - + https://github.com/dotnet/efcore - 5588c482759853e7133057c78924872575a5b336 + 46a6e9bf6ffe3949f71c87786a53f147e04c931d - + https://github.com/dotnet/efcore - 5588c482759853e7133057c78924872575a5b336 + 46a6e9bf6ffe3949f71c87786a53f147e04c931d - + https://github.com/dotnet/efcore - 5588c482759853e7133057c78924872575a5b336 + 46a6e9bf6ffe3949f71c87786a53f147e04c931d - + https://github.com/dotnet/efcore - 5588c482759853e7133057c78924872575a5b336 + 46a6e9bf6ffe3949f71c87786a53f147e04c931d - + https://github.com/dotnet/efcore - 5588c482759853e7133057c78924872575a5b336 + 46a6e9bf6ffe3949f71c87786a53f147e04c931d https://github.com/dotnet/runtime @@ -308,17 +308,17 @@ https://github.com/dotnet/runtime 7b7dad97a9b835a6d049ad9d4a86691c60e218bd - + https://github.com/dotnet/arcade - fa0486ddb04a76341d822903c8977fb9fa088d1e + b63ea25b8dc50bb3dfcef128d415254bd5ca4dc8 - + https://github.com/dotnet/arcade - fa0486ddb04a76341d822903c8977fb9fa088d1e + b63ea25b8dc50bb3dfcef128d415254bd5ca4dc8 - + https://github.com/dotnet/arcade - fa0486ddb04a76341d822903c8977fb9fa088d1e + b63ea25b8dc50bb3dfcef128d415254bd5ca4dc8 https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index b1fc156f0d..639f148b5f 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -131,16 +131,16 @@ 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20466.3 - 5.0.0-rc.2.20466.3 - 5.0.0-rc.2.20466.3 - 5.0.0-rc.2.20466.3 - 5.0.0-rc.2.20466.3 - 5.0.0-rc.2.20466.3 - 5.0.0-rc.2.20466.3 - 5.0.0-rc.2.20466.3 + 5.0.0-rc.2.20468.1 + 5.0.0-rc.2.20468.1 + 5.0.0-rc.2.20468.1 + 5.0.0-rc.2.20468.1 + 5.0.0-rc.2.20468.1 + 5.0.0-rc.2.20468.1 + 5.0.0-rc.2.20468.1 + 5.0.0-rc.2.20468.1 - 5.0.0-beta.20465.7 + 5.0.0-beta.20467.6 true true + + + true From 7afaf45b546c5de3d36c01515f6ca5094492437c Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 18 Sep 2020 21:55:40 +0000 Subject: [PATCH 150/187] Update dependencies from https://github.com/dotnet/runtime build 20200918.4 (#26070) [release/5.0-rc2] Update dependencies from dotnet/runtime --- eng/Version.Details.xml | 260 ++++++++++++++++++++-------------------- eng/Versions.props | 130 ++++++++++---------- 2 files changed, 195 insertions(+), 195 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 539ed85390..389fb68c45 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -41,272 +41,272 @@ https://github.com/dotnet/efcore 46a6e9bf6ffe3949f71c87786a53f147e04c931d - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a - + https://github.com/dotnet/runtime - 7b7dad97a9b835a6d049ad9d4a86691c60e218bd + 906b4a81f72967bcf5749436a971a8277d37871a https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 639f148b5f..ce30dd3886 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -64,72 +64,72 @@ 3.8.0-3.20458.6 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 - 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20467.14 + 5.0.0-rc.2.20468.4 5.0.0-rc.2.20468.1 5.0.0-rc.2.20468.1 From 140f177d9e89a387f6cbefc23c7d37e15fc8d6ab Mon Sep 17 00:00:00 2001 From: Pranav K Date: Fri, 18 Sep 2020 16:32:06 -0700 Subject: [PATCH 151/187] Converge implementations of AwaitableProcess and ProcessEx (#26069) * Converge implementations of AwaitableProcess and ProcessEx * dotnet-watch tests are running in to the same issue as GRPC tests (https://github.com/dotnet/aspnetcore/pull/20341/files). This change carries over some of the patterns from the other type to remedy this issue. * Revive dotnet-watch tests on OSX * Remove build artifacts that were accidentally commited to source. --- .../dotnet-watch/test/AwaitableProcess.cs | 41 +++++++++++++++---- ...CoreApp,Version=v5.0.AssemblyAttributes.cs | 4 -- .../net5.0/KitchenSink.AssemblyInfo.cs | 28 ------------- .../KitchenSink.AssemblyInfoInputs.cache | 1 - .../test/dotnet-watch.Tests.csproj | 3 -- 5 files changed, 32 insertions(+), 45 deletions(-) delete mode 100644 src/Tools/dotnet-watch/test/TestProjects/KitchenSink/.net/objDebug/net5.0/.NETCoreApp,Version=v5.0.AssemblyAttributes.cs delete mode 100644 src/Tools/dotnet-watch/test/TestProjects/KitchenSink/.net/objDebug/net5.0/KitchenSink.AssemblyInfo.cs delete mode 100644 src/Tools/dotnet-watch/test/TestProjects/KitchenSink/.net/objDebug/net5.0/KitchenSink.AssemblyInfoInputs.cache diff --git a/src/Tools/dotnet-watch/test/AwaitableProcess.cs b/src/Tools/dotnet-watch/test/AwaitableProcess.cs index 553b7a4d11..794a3e1f51 100644 --- a/src/Tools/dotnet-watch/test/AwaitableProcess.cs +++ b/src/Tools/dotnet-watch/test/AwaitableProcess.cs @@ -15,6 +15,8 @@ namespace Microsoft.DotNet.Watcher.Tools.FunctionalTests { public class AwaitableProcess : IDisposable { + private readonly object _testOutputLock = new object(); + private Process _process; private readonly ProcessSpec _spec; private readonly List _lines; @@ -22,6 +24,7 @@ namespace Microsoft.DotNet.Watcher.Tools.FunctionalTests private ITestOutputHelper _logger; private TaskCompletionSource _exited; private bool _started; + private bool _disposed; public AwaitableProcess(ProcessSpec spec, ITestOutputHelper logger) { @@ -29,7 +32,7 @@ namespace Microsoft.DotNet.Watcher.Tools.FunctionalTests _logger = logger; _source = new BufferBlock(); _lines = new List(); - _exited = new TaskCompletionSource(); + _exited = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); } public IEnumerable Output => _lines; @@ -72,17 +75,17 @@ namespace Microsoft.DotNet.Watcher.Tools.FunctionalTests _process.ErrorDataReceived += OnData; _process.Exited += OnExit; - _logger.WriteLine($"{DateTime.Now}: starting process: '{_process.StartInfo.FileName} {_process.StartInfo.Arguments}'"); + WriteTestOutput($"{DateTime.Now}: starting process: '{_process.StartInfo.FileName} {_process.StartInfo.Arguments}'"); _process.Start(); _started = true; _process.BeginErrorReadLine(); _process.BeginOutputReadLine(); - _logger.WriteLine($"{DateTime.Now}: process started: '{_process.StartInfo.FileName} {_process.StartInfo.Arguments}'"); + WriteTestOutput($"{DateTime.Now}: process started: '{_process.StartInfo.FileName} {_process.StartInfo.Arguments}'"); } public async Task GetOutputLineAsync(string message, TimeSpan timeout) { - _logger.WriteLine($"Waiting for output line [msg == '{message}']. Will wait for {timeout.TotalSeconds} sec."); + WriteTestOutput($"Waiting for output line [msg == '{message}']. Will wait for {timeout.TotalSeconds} sec."); var cts = new CancellationTokenSource(); cts.CancelAfter(timeout); return await GetOutputLineAsync($"[msg == '{message}']", m => string.Equals(m, message, StringComparison.Ordinal), cts.Token); @@ -90,7 +93,7 @@ namespace Microsoft.DotNet.Watcher.Tools.FunctionalTests public async Task GetOutputLineStartsWithAsync(string message, TimeSpan timeout) { - _logger.WriteLine($"Waiting for output line [msg.StartsWith('{message}')]. Will wait for {timeout.TotalSeconds} sec."); + WriteTestOutput($"Waiting for output line [msg.StartsWith('{message}')]. Will wait for {timeout.TotalSeconds} sec."); var cts = new CancellationTokenSource(); cts.CancelAfter(timeout); return await GetOutputLineAsync($"[msg.StartsWith('{message}')]", m => m != null && m.StartsWith(message, StringComparison.Ordinal), cts.Token); @@ -105,7 +108,7 @@ namespace Microsoft.DotNet.Watcher.Tools.FunctionalTests var next = await _source.ReceiveAsync(cancellationToken); _lines.Add(next); var match = predicate(next); - _logger.WriteLine($"{DateTime.Now}: recv: '{next}'. {(match ? "Matches" : "Does not match")} condition '{predicateName}'."); + WriteTestOutput($"{DateTime.Now}: recv: '{next}'. {(match ? "Matches" : "Does not match")} condition '{predicateName}'."); if (match) { return next; @@ -124,7 +127,7 @@ namespace Microsoft.DotNet.Watcher.Tools.FunctionalTests while (await _source.OutputAvailableAsync(cancellationToken)) { var next = await _source.ReceiveAsync(cancellationToken); - _logger.WriteLine($"{DateTime.Now}: recv: '{next}'"); + WriteTestOutput($"{DateTime.Now}: recv: '{next}'"); lines.Add(next); } } @@ -134,23 +137,40 @@ namespace Microsoft.DotNet.Watcher.Tools.FunctionalTests private void OnData(object sender, DataReceivedEventArgs args) { var line = args.Data ?? string.Empty; - _logger.WriteLine($"{DateTime.Now}: post: '{line}'"); + + WriteTestOutput($"{DateTime.Now}: post: '{line}'"); _source.Post(line); } + private void WriteTestOutput(string text) + { + lock (_testOutputLock) + { + if (!_disposed) + { + _logger.WriteLine(text); + } + } + } + private void OnExit(object sender, EventArgs args) { // Wait to ensure the process has exited and all output consumed _process.WaitForExit(); _source.Complete(); _exited.TrySetResult(_process.ExitCode); - _logger.WriteLine($"Process {_process.Id} has exited"); + WriteTestOutput($"Process {_process.Id} has exited"); } public void Dispose() { _source.Complete(); + lock (_testOutputLock) + { + _disposed = true; + } + if (_process != null) { if (_started && !_process.HasExited) @@ -158,6 +178,9 @@ namespace Microsoft.DotNet.Watcher.Tools.FunctionalTests _process.KillTree(); } + _process.CancelErrorRead(); + _process.CancelOutputRead(); + _process.ErrorDataReceived -= OnData; _process.OutputDataReceived -= OnData; _process.Exited -= OnExit; diff --git a/src/Tools/dotnet-watch/test/TestProjects/KitchenSink/.net/objDebug/net5.0/.NETCoreApp,Version=v5.0.AssemblyAttributes.cs b/src/Tools/dotnet-watch/test/TestProjects/KitchenSink/.net/objDebug/net5.0/.NETCoreApp,Version=v5.0.AssemblyAttributes.cs deleted file mode 100644 index 2f7e5ec5af..0000000000 --- a/src/Tools/dotnet-watch/test/TestProjects/KitchenSink/.net/objDebug/net5.0/.NETCoreApp,Version=v5.0.AssemblyAttributes.cs +++ /dev/null @@ -1,4 +0,0 @@ -// -using System; -using System.Reflection; -[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v5.0", FrameworkDisplayName = "")] diff --git a/src/Tools/dotnet-watch/test/TestProjects/KitchenSink/.net/objDebug/net5.0/KitchenSink.AssemblyInfo.cs b/src/Tools/dotnet-watch/test/TestProjects/KitchenSink/.net/objDebug/net5.0/KitchenSink.AssemblyInfo.cs deleted file mode 100644 index 1172632a87..0000000000 --- a/src/Tools/dotnet-watch/test/TestProjects/KitchenSink/.net/objDebug/net5.0/KitchenSink.AssemblyInfo.cs +++ /dev/null @@ -1,28 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// 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.AssemblyMetadataAttribute("SourceCommitUrl", "https://github.com/dotnet/aspnetcore/tree/")] -[assembly: System.Reflection.AssemblyMetadataAttribute("Serviceable", "True")] -[assembly: System.Reflection.AssemblyCompanyAttribute("Microsoft Corporation")] -[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] -[assembly: System.Reflection.AssemblyCopyrightAttribute("© Microsoft Corporation. All rights reserved.")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("42.42.42.42424")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("5.0.0-dev")] -[assembly: System.Reflection.AssemblyProductAttribute("Microsoft ASP.NET Core")] -[assembly: System.Reflection.AssemblyTitleAttribute("KitchenSink")] -[assembly: System.Reflection.AssemblyVersionAttribute("5.0.0.0")] -[assembly: System.Reflection.AssemblyMetadataAttribute("RepositoryUrl", "https://github.com/dotnet/aspnetcore")] -[assembly: System.Resources.NeutralResourcesLanguageAttribute("en-US")] - -// Generated by the MSBuild WriteCodeFragment class. - diff --git a/src/Tools/dotnet-watch/test/TestProjects/KitchenSink/.net/objDebug/net5.0/KitchenSink.AssemblyInfoInputs.cache b/src/Tools/dotnet-watch/test/TestProjects/KitchenSink/.net/objDebug/net5.0/KitchenSink.AssemblyInfoInputs.cache deleted file mode 100644 index 9042200dfc..0000000000 --- a/src/Tools/dotnet-watch/test/TestProjects/KitchenSink/.net/objDebug/net5.0/KitchenSink.AssemblyInfoInputs.cache +++ /dev/null @@ -1 +0,0 @@ -5426b0432f23f134c800ff0d43b24a23681aac3d diff --git a/src/Tools/dotnet-watch/test/dotnet-watch.Tests.csproj b/src/Tools/dotnet-watch/test/dotnet-watch.Tests.csproj index 3a65720a67..b9c9d9fe3c 100644 --- a/src/Tools/dotnet-watch/test/dotnet-watch.Tests.csproj +++ b/src/Tools/dotnet-watch/test/dotnet-watch.Tests.csproj @@ -12,9 +12,6 @@ --> true true - - - true From bf91253cd3a7797f417845b4f013e5a70fa8055d Mon Sep 17 00:00:00 2001 From: Pranav K Date: Fri, 18 Sep 2020 17:00:43 -0700 Subject: [PATCH 152/187] Increase more SignalR Java client test timeouts (#26036) Co-authored-by: Stephen Halter --- .../main/java/com/microsoft/signalr/HubConnectionTest.java | 4 ++-- .../java/com/microsoft/signalr/LongPollingTransportTest.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/HubConnectionTest.java b/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/HubConnectionTest.java index bc008f5886..6ebd67a2e1 100644 --- a/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/HubConnectionTest.java +++ b/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/HubConnectionTest.java @@ -2515,14 +2515,14 @@ class HubConnectionTest { value2.set(param1); }, String.class); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); mockTransport.receiveMessage("{\"type\":1,\"target\":\"inc\",\"arguments\":[\"Hello World\"]}" + RECORD_SEPARATOR); // Confirming that our handler was called and the correct message was passed in. assertEquals("Hello World", value1.get()); assertEquals("Hello World", value2.get()); - hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); ILoggingEvent log = logger.assertLog("Invoking client side method 'inc' failed:"); assertEquals("throw from on handler", log.getThrowableProxy().getMessage()); diff --git a/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/LongPollingTransportTest.java b/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/LongPollingTransportTest.java index f4dda53cf3..f089587cab 100644 --- a/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/LongPollingTransportTest.java +++ b/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/LongPollingTransportTest.java @@ -392,7 +392,7 @@ public class LongPollingTransportTest { Map headers = new HashMap<>(); LongPollingTransport transport = new LongPollingTransport(headers, client, Single.just("")); - transport.start("http://example.com").timeout(100, TimeUnit.SECONDS).blockingAwait(); + transport.start("http://example.com").timeout(30, TimeUnit.SECONDS).blockingAwait(); RuntimeException exception = assertThrows(RuntimeException.class, () -> transport.stop().blockingAwait(100, TimeUnit.SECONDS)); assertEquals("Request has no handler: DELETE http://example.com", exception.getMessage()); From 6bfffda73420c63ce7f4633ff23766b29f8f0424 Mon Sep 17 00:00:00 2001 From: Hao Kung Date: Sat, 19 Sep 2020 11:12:38 -0700 Subject: [PATCH 153/187] Remove ComponentsWebAssembly shared layout (#26078) --- .../Server/Pages/Shared/_Layout.cshtml | 20 ------------------- 1 file changed, 20 deletions(-) delete mode 100644 src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Pages/Shared/_Layout.cshtml diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Pages/Shared/_Layout.cshtml b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Pages/Shared/_Layout.cshtml deleted file mode 100644 index a3695776cc..0000000000 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Pages/Shared/_Layout.cshtml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - @ViewBag.Title - - - - - -
-
- @RenderBody() -
-
- - - From 55b9d2532b7b87acdb664bc44c61ce0768e9d285 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Sun, 20 Sep 2020 01:06:36 +0000 Subject: [PATCH 154/187] [release/5.0-rc2] Update dependencies from dotnet/efcore (#26100) [release/5.0-rc2] Update dependencies from dotnet/efcore --- eng/Version.Details.xml | 32 ++++++++++++++++---------------- eng/Versions.props | 16 ++++++++-------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 389fb68c45..aa54d7446f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,37 +9,37 @@ --> - + https://github.com/dotnet/efcore - 46a6e9bf6ffe3949f71c87786a53f147e04c931d + 6ad2c8ace00235128d057142ea7a0ea164b4c29b - + https://github.com/dotnet/efcore - 46a6e9bf6ffe3949f71c87786a53f147e04c931d + 6ad2c8ace00235128d057142ea7a0ea164b4c29b - + https://github.com/dotnet/efcore - 46a6e9bf6ffe3949f71c87786a53f147e04c931d + 6ad2c8ace00235128d057142ea7a0ea164b4c29b - + https://github.com/dotnet/efcore - 46a6e9bf6ffe3949f71c87786a53f147e04c931d + 6ad2c8ace00235128d057142ea7a0ea164b4c29b - + https://github.com/dotnet/efcore - 46a6e9bf6ffe3949f71c87786a53f147e04c931d + 6ad2c8ace00235128d057142ea7a0ea164b4c29b - + https://github.com/dotnet/efcore - 46a6e9bf6ffe3949f71c87786a53f147e04c931d + 6ad2c8ace00235128d057142ea7a0ea164b4c29b - + https://github.com/dotnet/efcore - 46a6e9bf6ffe3949f71c87786a53f147e04c931d + 6ad2c8ace00235128d057142ea7a0ea164b4c29b - + https://github.com/dotnet/efcore - 46a6e9bf6ffe3949f71c87786a53f147e04c931d + 6ad2c8ace00235128d057142ea7a0ea164b4c29b https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index ce30dd3886..bae27e55b6 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -131,14 +131,14 @@ 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.1 - 5.0.0-rc.2.20468.1 - 5.0.0-rc.2.20468.1 - 5.0.0-rc.2.20468.1 - 5.0.0-rc.2.20468.1 - 5.0.0-rc.2.20468.1 - 5.0.0-rc.2.20468.1 - 5.0.0-rc.2.20468.1 + 5.0.0-rc.2.20469.4 + 5.0.0-rc.2.20469.4 + 5.0.0-rc.2.20469.4 + 5.0.0-rc.2.20469.4 + 5.0.0-rc.2.20469.4 + 5.0.0-rc.2.20469.4 + 5.0.0-rc.2.20469.4 + 5.0.0-rc.2.20469.4 5.0.0-beta.20467.6 From a5a2551b020afcfbb7cfbcfe5582fcddf9588caf Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Mon, 21 Sep 2020 15:26:44 +0000 Subject: [PATCH 155/187] Update dependencies from https://github.com/dotnet/efcore build 20200919.6 (#26102) [release/5.0-rc2] Update dependencies from dotnet/efcore --- eng/Version.Details.xml | 32 ++++++++++++++++---------------- eng/Versions.props | 16 ++++++++-------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index aa54d7446f..da4abeff3b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,37 +9,37 @@ --> - + https://github.com/dotnet/efcore - 6ad2c8ace00235128d057142ea7a0ea164b4c29b + 8df41e4e51d0430c79e62f1a1c71ea78e481a308 - + https://github.com/dotnet/efcore - 6ad2c8ace00235128d057142ea7a0ea164b4c29b + 8df41e4e51d0430c79e62f1a1c71ea78e481a308 - + https://github.com/dotnet/efcore - 6ad2c8ace00235128d057142ea7a0ea164b4c29b + 8df41e4e51d0430c79e62f1a1c71ea78e481a308 - + https://github.com/dotnet/efcore - 6ad2c8ace00235128d057142ea7a0ea164b4c29b + 8df41e4e51d0430c79e62f1a1c71ea78e481a308 - + https://github.com/dotnet/efcore - 6ad2c8ace00235128d057142ea7a0ea164b4c29b + 8df41e4e51d0430c79e62f1a1c71ea78e481a308 - + https://github.com/dotnet/efcore - 6ad2c8ace00235128d057142ea7a0ea164b4c29b + 8df41e4e51d0430c79e62f1a1c71ea78e481a308 - + https://github.com/dotnet/efcore - 6ad2c8ace00235128d057142ea7a0ea164b4c29b + 8df41e4e51d0430c79e62f1a1c71ea78e481a308 - + https://github.com/dotnet/efcore - 6ad2c8ace00235128d057142ea7a0ea164b4c29b + 8df41e4e51d0430c79e62f1a1c71ea78e481a308 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index bae27e55b6..fb6c6e63c2 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -131,14 +131,14 @@ 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20469.4 - 5.0.0-rc.2.20469.4 - 5.0.0-rc.2.20469.4 - 5.0.0-rc.2.20469.4 - 5.0.0-rc.2.20469.4 - 5.0.0-rc.2.20469.4 - 5.0.0-rc.2.20469.4 - 5.0.0-rc.2.20469.4 + 5.0.0-rc.2.20469.6 + 5.0.0-rc.2.20469.6 + 5.0.0-rc.2.20469.6 + 5.0.0-rc.2.20469.6 + 5.0.0-rc.2.20469.6 + 5.0.0-rc.2.20469.6 + 5.0.0-rc.2.20469.6 + 5.0.0-rc.2.20469.6 5.0.0-beta.20467.6 From 02d81add815691da315b95c09620536cec600f7d Mon Sep 17 00:00:00 2001 From: Justin Kotalik Date: Mon, 21 Sep 2020 10:55:08 -0700 Subject: [PATCH 156/187] Increase Http2Timeout (#26075) --- src/Shared/Http2cat/TaskTimeoutExtensions.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Shared/Http2cat/TaskTimeoutExtensions.cs b/src/Shared/Http2cat/TaskTimeoutExtensions.cs index a293c1c66b..d6619f50ac 100644 --- a/src/Shared/Http2cat/TaskTimeoutExtensions.cs +++ b/src/Shared/Http2cat/TaskTimeoutExtensions.cs @@ -8,7 +8,7 @@ namespace System.Threading.Tasks { internal static class TaskTimeoutExtensions { - public static TimeSpan DefaultTimeoutTimeSpan { get; } = TimeSpan.FromSeconds(5); + public static TimeSpan DefaultTimeoutTimeSpan { get; } = TimeSpan.FromSeconds(30); public static Task DefaultTimeout(this ValueTask task) { From d97ef5ccd4584f927be5abcbf4f4f0db297d0d1a Mon Sep 17 00:00:00 2001 From: Sayed Ibrahim Hashimi Date: Mon, 21 Sep 2020 16:04:31 -0400 Subject: [PATCH 157/187] Updated icons for projects that appear in VS with icons that have the (#25974) * Updated icons for projects that appear in VS with icons that have the language adornment. This PR should fix #25973. * updating icons for asp.net core templates in vs --- .../.template.config/vs-2017.3/Empty.png | Bin 303 -> 532 bytes .../.template.config/vs-2017.3/Empty.png | Bin 303 -> 358 bytes .../vs-2017.3/WebApplication.png | Bin 1196 -> 1197 bytes .../vs-2017.3/WebApplication.png | Bin 1196 -> 1197 bytes .../.template.config/vs-2017.3/WebAPI.png | Bin 523 -> 602 bytes .../.template.config/vs-2017.3/WebAPI.png | Bin 523 -> 478 bytes .../.template.config/vs-2017.3/Worker.png | Bin 230 -> 408 bytes .../.template.config/vs-2017.3/Worker.png | Bin 230 -> 270 bytes 8 files changed, 0 insertions(+), 0 deletions(-) diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/vs-2017.3/Empty.png b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/vs-2017.3/Empty.png index ea4b7e2492e49a6cbf0f4c8974264f780a26dfda..69e76c44480d5ccc4de590382d871eb8c6a1c25e 100644 GIT binary patch delta 507 zcmV>Fk1-Ld)v93?D0KxV_kTyYdAbI1yLZQO{dko< zQxX;!2yH$$GY{X=7M2#4X>&~yVmI>nJi_5H^pZ}eS<=Z*w^Nv&n(l4Ej0PC&)V-Sz zZoqf}R(DwhE*G3mC-joZWLWxF0_@^_ zetqC7cS%i*_J0~yDiwr6AxM%0JtULKKM&#cdVjsRBAM9jcEsaxyga``g^F=0m%kv( zA8EXK>~avv~z%qgr(;dG+%-QxJi%zCv*wT957izI|q13Xy-ty)izT? zI|n-Lj(HL!z)gY#cuI))!KQBmy?8tx1cO16pg%1n(G9lVrO~X@`u`iy^LA+0ha=K& xK`a)-D3C<4Sk$pT=+lfNB7ik;guafs@eN*rHd@vn6Al0X002ovPDHLkV1io^-?RV# delta 277 zcmV+w0qXvg1g`>+BYyx1a7bBm000ie000ie0hKEb8vp863yODxy*10nAMz(LAq3DI1m!WqFoeHO zz(qioWukzt>(mo?2CM+@y)K|A3PPxzf{4fuIUw4f0e1WC`+putHVIgZ@>@_<6~ueN zI!g#qK;QRJ*R?o;0GbE_=pc9x2qSn8s2~WSi6DR;g7<(hg7<(lg7?7rbP?SSWFkZu z$4LzFl0Q$g7=i$r2)A@!r)dghS%NW!5cg@@_JO!fTqi_xY-s)41X$clNqqXUT7O3C b@AwKxwZp+B?+#=z00000NkvXXu0mjfn5=WU diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/.template.config/vs-2017.3/Empty.png b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/.template.config/vs-2017.3/Empty.png index ea4b7e2492e49a6cbf0f4c8974264f780a26dfda..b45605c9bb10a18f9e040603bae3270b48ab3344 100644 GIT binary patch delta 332 zcmV-S0ki(E0_FmcBYy!cNklWTsLyMZW*9Dn#2U?5G?rssKX`$7!_ z3I+gSWWqEDV8F@*RBLAnGou>doKJ272C!mjpzTSrW>r~z1-RcHy#VLar30{BEdZbx z07S<`5X_iAa}pN-po36zU^)nW4yZFBAp~QXiLn5PAOJuGq0a&ROgPH{mnQT%AVg_n z!hQziio{E^OGOg^Ac6n@5d;9}AOP_BuZ5T%v^)6mAmQu`7;jN@ErdLpIX)NAAI863yODxy*10nAMz(LAq3DI1m!WqFoeHO zz(qioWukzt>(mo?2CM+@y)K|A3PPxzf{4fuIUw4f0e1WC`+putHVIgZ@>@_<6~ueN zI!g#qK;QRJ*R?o;0GbE_=pc9x2qSn8s2~WSi6DR;g7<(hg7<(lg7?7rbP?SSWFkZu z$4LzFl0Q$g7=i$r2)A@!r)dghS%NW!5cg@@_JO!fTqi_xY-s)41X$clNqqXUT7O3C b@AwKxwZp+B?+#=z00000NkvXXu0mjf?>=-2 diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/vs-2017.3/WebApplication.png b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/vs-2017.3/WebApplication.png index 572a095fa0148ec6a1099954aea66034e423f170..b7855499376c317a401c3f0fdd40d490fe07ea51 100644 GIT binary patch delta 1178 zcmV;L1ZDfI39Si`BYy;RNklu0f#J>!H)@pwsD~hKAR!vI|8~phlJz7z}!-;NQuz9DD9t)o((urvt*U zLDI9~z0m;%azqa~q6kN#=Q6KEke;|88KCDVIJcOdo`1&d>?}4nHz6>YOsJ@+fW=}# zdU`q(S%*jhhW9N(r_;&CmzI`bx7*Rz*T)VJwYFMbL?{&Edk%+#?(?2!o|QB^AdFK~ z9CcGu6G!ZFx=>bHhJyzW;pow~d6`}@;n*=7+D^BzDqUS&w1?6~>S=a>jFZ$98CUa# zfk8HW`+vLJsHv`j;KT_#Zrz%K+59SoeSZ2a?GZ{){b)}?Z*MQ>wEav6($doK@Znz| zGBPqCAcGY7`uaK~NkaFBXOWeaMSJ`$w(88Wj)n=5`*4B4Eu-q;cIJa*x2|R z1fA2h(Xmn7xN#jGPlwniQbDboco&Fb`{d%MY=2~N@n?)*8~=aEoJaUxSltP1^v`t@ zUO#dK&CM-1dFowupsK2h(;zEy!VYkO8I49-EcMLH3<`^iPx~_N($o1$;kmhg{-v*SymNXkb4oD3n8B6j%_w{3h%4bm3f2 zFS@(W#=6Dh>E!9CC^9=&TwDx7Q4~#+kbk}JIoE?oBq9b7MM)nVJeV>wGqLl}4ynPN zB8+)DJs_wB#j85e6tHoZ%f++3#obI3jwT(|1Lc{=GBGmpIc&DtnDMr@(;R(6Lj$t2 zv*C8TDV3VKfFz^`ad9;|-oe683$R+>z@^VFfuPY$bzv?r@s~vqj;2OY_2e+^5qoKAp9AW8@cDeGtE+?H z@|DX727|FKsI08S(9n=DsG0bWQ!2QZ0r&yDrfN6-lR}Uplxr1V1E`OF>E26*18PUi s0Gt30@A0|)8-T9>^hFKdfp+j8D-&Te)_e|~R{#J207*qoM6N<$f~kNz0ssI2 delta 1177 zcmV;K1ZMlK39Jc_BYyx1a7bBm000ie000ie0hKEb8vpu~D&|FO0`bz2g28CK5lu~T;%K7IjMKx02@`1oGq$zRE`K=uho7I>Yp=cbK65k< zhlAaO7rPA2!-o$Y|7iuZ2p}~zm46c5-QBycz`u;Z|0Z-|@7}#U4NFT)e?Nh`^A~Vp zYikRe&5G4(#lB@nB=hn{r`4g;>D1nR0W&hwpGiQV(P&fvEocCIcowXiHg+=3y|xFo z*{$gG5}bj70e{NM%E-*jBrPpXmfB-98tLll0+4UDTJIf~K!Tf0Cj9*T7#|;}qN0M8 zl@*-G&dyoHrmn7z=H_O~%gc$2i$kjco7L_)f#Tv~4jec@e}6wUH8n!$ zMEMDRxp4!#-A?xF*#J!4xkF5JG|_5Rovz~4sZ$gc6@QVQp01Pto6YW72~tv0By$y< zz`#J7n_4({@MW%E{h1tL`X=8%F@Q_>Z)|XN2kva6cog{bLXUM#6O-8=;`UfVzB^V zFcj0&)PF=vOEaONp=@kyNKjP@dB()VaH;bWqobpoJ^KmE%gaKxv9S@rEfut`1OSnK zb=AVno4?ZWeFqO7n8|zNm}KV)y?#v8dG+W~N>o|$3*O?&l`G`u=PPA2imbyu0&{b7 zM1)637pO%-!i(HpxXb>iC}Lw@!W9z}6N+3rC4YtzoJdYirnk2jQ9u#E?p_IG+C|4i z>ZP3y&0 z0Dl4k0_1ylO(>_}!omXIGDB zB_y{T?kkX#lmx)yy+tA;Bgs3Kr+T|alxe%zPJ3Gi7hBu-`a(T`?5j+tNl*l=)=epk z8p!}`c|ss7D+?bbtI1U9l#o4p_BahHM1S;pJ!bPV;o%Xocb4SjhbP5&27>_{^3LrN zh;vIzOR27|=KT-eqx#Ip@-8(sjgiq24!v>+fcl1d3i1n_!KpM=$RCx$!a|vz>hzR0 z^{5LDA3jV@P7afklN1&e$ZSYTOr)V+WS7A+Gc%(U2xsa367Lkh&Dhu&M~)mJBYz`< z%a<=p@EzZb`uh5)t*v!RFXJ~~Wj!)H%+#GJd1p48MWNi>Tv>nh)l5uPuQFHdD4DxJ zCS`nlJjah8m$uvK-7t_Rp$Fat%482>N>vUSGW+)J69ojY348{8Dtk`|@DwOwA;6nJ rG7t;AfPmkD5#T4FQK@mC9pDe_gA(r`#BFRr00000NkvXXu0mjfL$Ncn diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/vs-2017.3/WebApplication.png b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/vs-2017.3/WebApplication.png index 572a095fa0148ec6a1099954aea66034e423f170..b7855499376c317a401c3f0fdd40d490fe07ea51 100644 GIT binary patch delta 1178 zcmV;L1ZDfI39Si`BYy;RNklu0f#J>!H)@pwsD~hKAR!vI|8~phlJz7z}!-;NQuz9DD9t)o((urvt*U zLDI9~z0m;%azqa~q6kN#=Q6KEke;|88KCDVIJcOdo`1&d>?}4nHz6>YOsJ@+fW=}# zdU`q(S%*jhhW9N(r_;&CmzI`bx7*Rz*T)VJwYFMbL?{&Edk%+#?(?2!o|QB^AdFK~ z9CcGu6G!ZFx=>bHhJyzW;pow~d6`}@;n*=7+D^BzDqUS&w1?6~>S=a>jFZ$98CUa# zfk8HW`+vLJsHv`j;KT_#Zrz%K+59SoeSZ2a?GZ{){b)}?Z*MQ>wEav6($doK@Znz| zGBPqCAcGY7`uaK~NkaFBXOWeaMSJ`$w(88Wj)n=5`*4B4Eu-q;cIJa*x2|R z1fA2h(Xmn7xN#jGPlwniQbDboco&Fb`{d%MY=2~N@n?)*8~=aEoJaUxSltP1^v`t@ zUO#dK&CM-1dFowupsK2h(;zEy!VYkO8I49-EcMLH3<`^iPx~_N($o1$;kmhg{-v*SymNXkb4oD3n8B6j%_w{3h%4bm3f2 zFS@(W#=6Dh>E!9CC^9=&TwDx7Q4~#+kbk}JIoE?oBq9b7MM)nVJeV>wGqLl}4ynPN zB8+)DJs_wB#j85e6tHoZ%f++3#obI3jwT(|1Lc{=GBGmpIc&DtnDMr@(;R(6Lj$t2 zv*C8TDV3VKfFz^`ad9;|-oe683$R+>z@^VFfuPY$bzv?r@s~vqj;2OY_2e+^5qoKAp9AW8@cDeGtE+?H z@|DX727|FKsI08S(9n=DsG0bWQ!2QZ0r&yDrfN6-lR}Uplxr1V1E`OF>E26*18PUi s0Gt30@A0|)8-T9>^hFKdfp+j8D-&Te)_e|~R{#J207*qoM6N<$f~kNz0ssI2 delta 1177 zcmV;K1ZMlK39Jc_BYyx1a7bBm000ie000ie0hKEb8vpu~D&|FO0`bz2g28CK5lu~T;%K7IjMKx02@`1oGq$zRE`K=uho7I>Yp=cbK65k< zhlAaO7rPA2!-o$Y|7iuZ2p}~zm46c5-QBycz`u;Z|0Z-|@7}#U4NFT)e?Nh`^A~Vp zYikRe&5G4(#lB@nB=hn{r`4g;>D1nR0W&hwpGiQV(P&fvEocCIcowXiHg+=3y|xFo z*{$gG5}bj70e{NM%E-*jBrPpXmfB-98tLll0+4UDTJIf~K!Tf0Cj9*T7#|;}qN0M8 zl@*-G&dyoHrmn7z=H_O~%gc$2i$kjco7L_)f#Tv~4jec@e}6wUH8n!$ zMEMDRxp4!#-A?xF*#J!4xkF5JG|_5Rovz~4sZ$gc6@QVQp01Pto6YW72~tv0By$y< zz`#J7n_4({@MW%E{h1tL`X=8%F@Q_>Z)|XN2kva6cog{bLXUM#6O-8=;`UfVzB^V zFcj0&)PF=vOEaONp=@kyNKjP@dB()VaH;bWqobpoJ^KmE%gaKxv9S@rEfut`1OSnK zb=AVno4?ZWeFqO7n8|zNm}KV)y?#v8dG+W~N>o|$3*O?&l`G`u=PPA2imbyu0&{b7 zM1)637pO%-!i(HpxXb>iC}Lw@!W9z}6N+3rC4YtzoJdYirnk2jQ9u#E?p_IG+C|4i z>ZP3y&0 z0Dl4k0_1ylO(>_}!omXIGDB zB_y{T?kkX#lmx)yy+tA;Bgs3Kr+T|alxe%zPJ3Gi7hBu-`a(T`?5j+tNl*l=)=epk z8p!}`c|ss7D+?bbtI1U9l#o4p_BahHM1S;pJ!bPV;o%Xocb4SjhbP5&27>_{^3LrN zh;vIzOR27|=KT-eqx#Ip@-8(sjgiq24!v>+fcl1d3i1n_!KpM=$RCx$!a|vz>hzR0 z^{5LDA3jV@P7afklN1&e$ZSYTOr)V+WS7A+Gc%(U2xsa367Lkh&Dhu&M~)mJBYz`< z%a<=p@EzZb`uh5)t*v!RFXJ~~Wj!)H%+#GJd1p48MWNi>Tv>nh)l5uPuQFHdD4DxJ zCS`nlJjah8m$uvK-7t_Rp$Fat%482>N>vUSGW+)J69ojY348{8Dtk`|@DwOwA;6nJ rG7t;AfPmkD5#T4FQK@mC9pDe_gA(r`#BFRr00000NkvXXu0mjfL$Ncn diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/vs-2017.3/WebAPI.png b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/vs-2017.3/WebAPI.png index 61ba1afdcedf49b993c64fe7a7caa8340caecfb3..53de7c7be061ab9dabaa3adfa831376a369f893c 100644 GIT binary patch delta 578 zcmV-I0=@l<1lk0UBYy%RNkl7=p7V-gHC;ug*&)*EPr7{65Vdsngs2GHeP&w zh7VugL-Fy}Cy)!z&ol3@ies>dYJT#>DJ;xh#_Z{Hs=09`NtF}|1&oUj0z{qs<>D($ zAD`A$h+P2%Ppvl}ra(LcQ2M=ZU!)g^rhvZMSD@8ufy|wq1G!mUrXRQt8^Z1YwOS2i zDZea@_hbJ%wtx5DP>JZ*kS6>aDwPVd*(?kwlN*hj!~k!%-(g&W;1E+&M@0<}Lj*z4 z|J_Rq7on4cMS`D!j0o7j1+H7gwd+@TLI!iz{>=b)?%syG<>I%WpkU4#pN%y@r_;gO zgH?4R=Byb{-fT8O^7%YUr7}b2gwMEVL1 z4)r0Jvo^@Qlpd5?dZg~x(P%W7v!?cp?g7VfP%f?GPZW!b*!6blb~coulgVVbCteRc zdHfW`D?3G9YUZrTX9lc)im3#{o(bdU{{UtW@JlzL3J4)4(*yi-I@!127eKuPHMZCU Qp#T5?07*qoM6N<$f;XHNRR910 delta 498 zcmVV>@QShRr&Gwa?n;WG9Sa7+57-STPt~*ME(*cECMP;_*2CB~(>? z9S%4JI0d+^gmQU>mjsvo^q;ms(=@c(GIn;e*gx2VBumhqv;|tQ1ct*0)V|bU9&DY? zHB_|&p(-F03jdh{z1}U3jt`N`ouJ>pduHd4RNUk7p!u~)&JYQbQ%ftbb#0KY$gAqR^c;#0G-F4|AI2gd=O@nZ;Wmw`Eu%igkFsUYMcl`Y%BX zD911iy4@RO`Rwv%U^bg!I-Oc+BJ%fd0iWSvMWtLJ{WS-fqSWTm=sPSR99@gWwihoT z8vTgEX#sw}AAyYk%B3k%>V!Z diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/.template.config/vs-2017.3/WebAPI.png b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/.template.config/vs-2017.3/WebAPI.png index 61ba1afdcedf49b993c64fe7a7caa8340caecfb3..9428498b71ff699b4f25143f5d6c2720c9fdf270 100644 GIT binary patch delta 453 zcmV;$0XqJR1l|LXBYy#geER9n?fS zP!n~qZVrx4(nKA4U!n|7Wu`9yL>(|E&231z2>}5HJjoYM&b{ILx#xx;B}qbmMI6Va zUZN<9v_UNbg-cNsB~%dxn@&a>e-8N?`0B~g!~~F3_ylB5EPurEa3IuzBA})bL!&K9QB(}Q?+VufngXz4R<>os;Uy;PO^??%h6*`@d9v$=_0_Pt)ssjJw^?W(A=L> z5Cq`R_@3e(&@_!k&JE?kw)be}&ER$b vgb7>5e*v=Kd)?6qFvhy+0sI|z`xg8H=H<>!v#3V;00000NkvXXu0mjfEV>@QShRr&Gwa?n;WG9Sa7+57-STPt~*ME(*cECMP;_*2CB~(>? z9S%4JI0d+^gmQU>mjsvo^q;ms(=@c(GIn;e*gx2VBumhqv;|tQ1ct*0)V|bU9&DY? zHB_|&p(-F03jdh{z1}U3jt`N`ouJ>pduHd4RNUk7p!u~)&JYQbQ%ftbb#0KY$gAqR^c;#0G-F4|AI2gd=O@nZ;Wmw`Eu%igkFsUYMcl`Y%BX zD911iy4@RO`Rwv%U^bg!I-Oc+BJ%fd0iWSvMWtLJ{WS-fqSWTm=sPSR99@gWwihoT z8vTgEX#sw}AAyYk%B3~GFaFF;1;^b5voV(OIxJ6tQ zaZENR!AWR!62vK!)g^<1IOrc}A%jC#H^(N$DSDvv4Z+?7A0z}n2$u}uo_p`PFV9Gl z1iF|^Ci?(R0jxp>rfC`!pey+;00%j#X{_8Ce~oeee1`4It$*1wh3_hA7C=rIuHL$M zdVj>y;xan+F6@-At+R_5=6Aa~H~0oQfm`#z#5f&vJ`5T54=BSk07*qoM6N<$f}VJ-WdHyG delta 203 zcmV;+05t!Y1LgscBYyx1a7bBm000ie000ie0hKEb8vp2y@`W{+5{m{TV5M0z439Gn5EExTXLA002ovPDHLk FV1gH?O*sGn diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/Worker-FSharp/.template.config/vs-2017.3/Worker.png b/src/ProjectTemplates/Web.ProjectTemplates/content/Worker-FSharp/.template.config/vs-2017.3/Worker.png index c9249297de47d63db327119d577687a09e2c30e1..968a7de6566759a467c27a7caddd2950c00a05e3 100644 GIT binary patch delta 242 zcmV$fyY& zqsSp>1fWLKXVDU?Jq%EnBvb7i&6%!5|6&gii^Bb!*pC zWMNQn;2;YDPEJlnM1DuaCy605gwp_`q(k_aPGA_61H&T(1|aSSXE{K)J%A|5hGiNc s47P09GCb1&fv(xW=YrwyfKdkk0E<{=x%D$r#Q*>R07*qoM6N<$f=IY$t^fc4 delta 202 zcmV;*05$)P0_FjbB!3BTNLh0L01m_e01m_fl`9S#0001(Nkl6wln6e!rT_o{07*qoM6N<$ Ef(+VCE&u=k From 382cd90d144d80800ce913faa15db787dd274ef4 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Mon, 21 Sep 2020 20:08:35 +0000 Subject: [PATCH 158/187] [release/5.0-rc2] Update dependencies from dotnet/efcore dotnet/runtime (#26134) [release/5.0-rc2] Update dependencies from dotnet/efcore dotnet/runtime --- eng/Version.Details.xml | 292 ++++++++++++++++++++-------------------- eng/Versions.props | 146 ++++++++++---------- 2 files changed, 219 insertions(+), 219 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index da4abeff3b..ed89129663 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,304 +9,304 @@ --> - + https://github.com/dotnet/efcore - 8df41e4e51d0430c79e62f1a1c71ea78e481a308 + 38ae12693ce0a4411b35d14e31783a4c44d86ff7 - + https://github.com/dotnet/efcore - 8df41e4e51d0430c79e62f1a1c71ea78e481a308 + 38ae12693ce0a4411b35d14e31783a4c44d86ff7 - + https://github.com/dotnet/efcore - 8df41e4e51d0430c79e62f1a1c71ea78e481a308 + 38ae12693ce0a4411b35d14e31783a4c44d86ff7 - + https://github.com/dotnet/efcore - 8df41e4e51d0430c79e62f1a1c71ea78e481a308 + 38ae12693ce0a4411b35d14e31783a4c44d86ff7 - + https://github.com/dotnet/efcore - 8df41e4e51d0430c79e62f1a1c71ea78e481a308 + 38ae12693ce0a4411b35d14e31783a4c44d86ff7 - + https://github.com/dotnet/efcore - 8df41e4e51d0430c79e62f1a1c71ea78e481a308 + 38ae12693ce0a4411b35d14e31783a4c44d86ff7 - + https://github.com/dotnet/efcore - 8df41e4e51d0430c79e62f1a1c71ea78e481a308 + 38ae12693ce0a4411b35d14e31783a4c44d86ff7 - + https://github.com/dotnet/efcore - 8df41e4e51d0430c79e62f1a1c71ea78e481a308 + 38ae12693ce0a4411b35d14e31783a4c44d86ff7 - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c - + https://github.com/dotnet/runtime - 906b4a81f72967bcf5749436a971a8277d37871a + 67f49e7428fcf6cc3b285c41fba2e502d761128c https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index fb6c6e63c2..5c018dfb9f 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -64,81 +64,81 @@ 3.8.0-3.20458.6 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 - 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20468.4 + 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20469.6 - 5.0.0-rc.2.20469.6 - 5.0.0-rc.2.20469.6 - 5.0.0-rc.2.20469.6 - 5.0.0-rc.2.20469.6 - 5.0.0-rc.2.20469.6 - 5.0.0-rc.2.20469.6 - 5.0.0-rc.2.20469.6 + 5.0.0-rc.2.20471.1 + 5.0.0-rc.2.20471.1 + 5.0.0-rc.2.20471.1 + 5.0.0-rc.2.20471.1 + 5.0.0-rc.2.20471.1 + 5.0.0-rc.2.20471.1 + 5.0.0-rc.2.20471.1 + 5.0.0-rc.2.20471.1 5.0.0-beta.20467.6 From 9a4d5f01b3b852189712cca487b718bb08558232 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 22 Sep 2020 00:41:12 +0000 Subject: [PATCH 159/187] [release/5.0-rc2] Update dependencies from dotnet/efcore dotnet/runtime (#26143) [release/5.0-rc2] Update dependencies from dotnet/efcore dotnet/runtime --- eng/Version.Details.xml | 292 ++++++++++++++++++++-------------------- eng/Versions.props | 146 ++++++++++---------- 2 files changed, 219 insertions(+), 219 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index ed89129663..abeed9c62f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,304 +9,304 @@ --> - + https://github.com/dotnet/efcore - 38ae12693ce0a4411b35d14e31783a4c44d86ff7 + becbaf076bdb2ac3d0254027729888f662106cd2 - + https://github.com/dotnet/efcore - 38ae12693ce0a4411b35d14e31783a4c44d86ff7 + becbaf076bdb2ac3d0254027729888f662106cd2 - + https://github.com/dotnet/efcore - 38ae12693ce0a4411b35d14e31783a4c44d86ff7 + becbaf076bdb2ac3d0254027729888f662106cd2 - + https://github.com/dotnet/efcore - 38ae12693ce0a4411b35d14e31783a4c44d86ff7 + becbaf076bdb2ac3d0254027729888f662106cd2 - + https://github.com/dotnet/efcore - 38ae12693ce0a4411b35d14e31783a4c44d86ff7 + becbaf076bdb2ac3d0254027729888f662106cd2 - + https://github.com/dotnet/efcore - 38ae12693ce0a4411b35d14e31783a4c44d86ff7 + becbaf076bdb2ac3d0254027729888f662106cd2 - + https://github.com/dotnet/efcore - 38ae12693ce0a4411b35d14e31783a4c44d86ff7 + becbaf076bdb2ac3d0254027729888f662106cd2 - + https://github.com/dotnet/efcore - 38ae12693ce0a4411b35d14e31783a4c44d86ff7 + becbaf076bdb2ac3d0254027729888f662106cd2 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 - + https://github.com/dotnet/runtime - 67f49e7428fcf6cc3b285c41fba2e502d761128c + 8b1f30904a3291c987cb67dfa8b98ae0843a3535 https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 5c018dfb9f..3b329405dc 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -64,81 +64,81 @@ 3.8.0-3.20458.6 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 - 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20470.3 + 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.1 - 5.0.0-rc.2.20471.1 - 5.0.0-rc.2.20471.1 - 5.0.0-rc.2.20471.1 - 5.0.0-rc.2.20471.1 - 5.0.0-rc.2.20471.1 - 5.0.0-rc.2.20471.1 - 5.0.0-rc.2.20471.1 + 5.0.0-rc.2.20471.3 + 5.0.0-rc.2.20471.3 + 5.0.0-rc.2.20471.3 + 5.0.0-rc.2.20471.3 + 5.0.0-rc.2.20471.3 + 5.0.0-rc.2.20471.3 + 5.0.0-rc.2.20471.3 + 5.0.0-rc.2.20471.3 5.0.0-beta.20467.6 From e0ea513ca27c060592e066185dbffc9791d30df6 Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Mon, 21 Sep 2020 18:53:15 -0700 Subject: [PATCH 160/187] Include commit SHA in `[AssemblyInformationalVersion]` value (#26150) - see dotnet/arcade#5866 discussion - leaving redundant `[AssemblyMetadata("CommitHash", ...)]` because it's used in this repo - e.g. src\Components\benchmarkapps\Wasm.Performance\Driver\Program.cs - also consistent with native images --- eng/Versions.props | 2 -- 1 file changed, 2 deletions(-) diff --git a/eng/Versions.props b/eng/Versions.props index 3b329405dc..7c5954d9ec 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -20,8 +20,6 @@ true false $(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion) - - false - + https://github.com/dotnet/efcore - becbaf076bdb2ac3d0254027729888f662106cd2 + 18c8cfb3b8d3777060513b094e2a11f83469a993 - + https://github.com/dotnet/efcore - becbaf076bdb2ac3d0254027729888f662106cd2 + 18c8cfb3b8d3777060513b094e2a11f83469a993 - + https://github.com/dotnet/efcore - becbaf076bdb2ac3d0254027729888f662106cd2 + 18c8cfb3b8d3777060513b094e2a11f83469a993 - + https://github.com/dotnet/efcore - becbaf076bdb2ac3d0254027729888f662106cd2 + 18c8cfb3b8d3777060513b094e2a11f83469a993 - + https://github.com/dotnet/efcore - becbaf076bdb2ac3d0254027729888f662106cd2 + 18c8cfb3b8d3777060513b094e2a11f83469a993 - + https://github.com/dotnet/efcore - becbaf076bdb2ac3d0254027729888f662106cd2 + 18c8cfb3b8d3777060513b094e2a11f83469a993 - + https://github.com/dotnet/efcore - becbaf076bdb2ac3d0254027729888f662106cd2 + 18c8cfb3b8d3777060513b094e2a11f83469a993 - + https://github.com/dotnet/efcore - becbaf076bdb2ac3d0254027729888f662106cd2 + 18c8cfb3b8d3777060513b094e2a11f83469a993 - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db - + https://github.com/dotnet/runtime - 8b1f30904a3291c987cb67dfa8b98ae0843a3535 + 25db678ba8ee00cab4dbfef6390cbbd3959e01db https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 7c5954d9ec..6d29e95bb7 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,81 +62,81 @@ 3.8.0-3.20458.6 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 - 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.5 + 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.3 - 5.0.0-rc.2.20471.3 - 5.0.0-rc.2.20471.3 - 5.0.0-rc.2.20471.3 - 5.0.0-rc.2.20471.3 - 5.0.0-rc.2.20471.3 - 5.0.0-rc.2.20471.3 - 5.0.0-rc.2.20471.3 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.9 5.0.0-beta.20467.6 From 3e115b75302bfb6a2a5654857c506bba70ba9852 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 22 Sep 2020 07:40:18 +0000 Subject: [PATCH 162/187] Update dependencies from https://github.com/dotnet/runtime build 20200921.12 (#26166) [release/5.0-rc2] Update dependencies from dotnet/runtime --- eng/Version.Details.xml | 260 ++++++++++++++++++++-------------------- eng/Versions.props | 130 ++++++++++---------- 2 files changed, 195 insertions(+), 195 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 873b592938..a07aee9ae7 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -41,272 +41,272 @@ https://github.com/dotnet/efcore 18c8cfb3b8d3777060513b094e2a11f83469a993 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 - + https://github.com/dotnet/runtime - 25db678ba8ee00cab4dbfef6390cbbd3959e01db + ed5190b919b7ee46632db9e6178fda8180322237 https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 6d29e95bb7..bf8f42f200 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,72 +62,72 @@ 3.8.0-3.20458.6 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.12 5.0.0-rc.2.20471.9 5.0.0-rc.2.20471.9 From f66a1daeda0dce0060821272ca519cc755c73112 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 22 Sep 2020 09:37:36 +0000 Subject: [PATCH 163/187] Update dependencies from https://github.com/dotnet/efcore build 20200921.10 (#26168) [release/5.0-rc2] Update dependencies from dotnet/efcore --- eng/Version.Details.xml | 32 ++++++++++++++++---------------- eng/Versions.props | 16 ++++++++-------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a07aee9ae7..1e24d4e9e2 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,37 +9,37 @@ --> - + https://github.com/dotnet/efcore - 18c8cfb3b8d3777060513b094e2a11f83469a993 + bedede601f059435a8696d113caab37caa6b41ca - + https://github.com/dotnet/efcore - 18c8cfb3b8d3777060513b094e2a11f83469a993 + bedede601f059435a8696d113caab37caa6b41ca - + https://github.com/dotnet/efcore - 18c8cfb3b8d3777060513b094e2a11f83469a993 + bedede601f059435a8696d113caab37caa6b41ca - + https://github.com/dotnet/efcore - 18c8cfb3b8d3777060513b094e2a11f83469a993 + bedede601f059435a8696d113caab37caa6b41ca - + https://github.com/dotnet/efcore - 18c8cfb3b8d3777060513b094e2a11f83469a993 + bedede601f059435a8696d113caab37caa6b41ca - + https://github.com/dotnet/efcore - 18c8cfb3b8d3777060513b094e2a11f83469a993 + bedede601f059435a8696d113caab37caa6b41ca - + https://github.com/dotnet/efcore - 18c8cfb3b8d3777060513b094e2a11f83469a993 + bedede601f059435a8696d113caab37caa6b41ca - + https://github.com/dotnet/efcore - 18c8cfb3b8d3777060513b094e2a11f83469a993 + bedede601f059435a8696d113caab37caa6b41ca https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index bf8f42f200..6051267360 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -129,14 +129,14 @@ 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 - 5.0.0-rc.2.20471.9 + 5.0.0-rc.2.20471.10 + 5.0.0-rc.2.20471.10 + 5.0.0-rc.2.20471.10 + 5.0.0-rc.2.20471.10 + 5.0.0-rc.2.20471.10 + 5.0.0-rc.2.20471.10 + 5.0.0-rc.2.20471.10 + 5.0.0-rc.2.20471.10 5.0.0-beta.20467.6 From 93f73c77640abc472fb901e18bf5055961e23e44 Mon Sep 17 00:00:00 2001 From: Safia Abdalla Date: Tue, 22 Sep 2020 15:23:39 +0000 Subject: [PATCH 164/187] Add support for debugging lazy-loaded assemblies (#25943) * Add support for debugging lazy-loaded assemblies * Address feedback from peer review * Increase wait for output on tests --- .../Web.JS/dist/Release/blazor.server.js | 2 +- .../Web.JS/dist/Release/blazor.webassembly.js | 2 +- .../Web.JS/src/Platform/Mono/MonoPlatform.ts | 33 ++++++++++++++++--- .../src/GenerateBlazorWebAssemblyBootJson.cs | 7 +++- .../Server/src/DebugProxyLauncher.cs | 2 +- .../src/Services/LazyAssemblyLoader.cs | 25 ++++++++++---- .../E2ETest/Tests/WebAssemblyLazyLoadTest.cs | 5 +-- 7 files changed, 58 insertions(+), 18 deletions(-) diff --git a/src/Components/Web.JS/dist/Release/blazor.server.js b/src/Components/Web.JS/dist/Release/blazor.server.js index a9bfd46cb4..1ba949909c 100644 --- a/src/Components/Web.JS/dist/Release/blazor.server.js +++ b/src/Components/Web.JS/dist/Release/blazor.server.js @@ -5,7 +5,7 @@ * @author Feross Aboukhadijeh * @license MIT */ -var r=n(54),o=n(55),i=n(56);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function d(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return F(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return O(this,t,n);case"utf8":case"utf-8":return k(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return P(this,t,n);case"base64":return C(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,o);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,o){var i,a=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,n/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=n;is&&(n=s-c),i=n;i>=0;i--){for(var f=!0,h=0;ho&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function C(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function k(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o239?4:u>223?3:u>191?2:1;if(o+f<=n)switch(f){case 1:u<128&&(l=u);break;case 2:128==(192&(i=e[o+1]))&&(c=(31&u)<<6|63&i)>127&&(l=c);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(c=(15&u)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(c=(15&u)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&c<1114112&&(l=c)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},c.prototype.compare=function(e,t,n,r,o){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),u=this.slice(r,o),l=e.slice(t,n),f=0;fo)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return m(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return E(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return _(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;or)&&(n=r);for(var o="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function D(e,t,n,r,o,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function A(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o>>8*(r?o:1-o)}function M(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o>>8*(r?o:3-o)&255}function L(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function j(e,t,n,r,i){return i||L(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function B(e,t,n,r,i){return i||L(e,0,n,8),o.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(o*=256);)r+=this[e+--t]*o;return r},c.prototype.readUInt8=function(e,t){return t||x(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||x(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||x(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||x(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||x(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||x(e,t,this.length);for(var r=this[e],o=1,i=0;++i=(o*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||x(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return t||x(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||x(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||x(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||x(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||x(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||x(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||x(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||x(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||x(e,8,this.length),o.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||D(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):A(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):A(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);D(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);D(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):A(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):A(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return j(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return j(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return B(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+n];else if(i<1e3||!c.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function H(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(N,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function W(e,t,n,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(8))},function(e,t,n){"use strict";var r=n(14).Buffer,o=n(57),i=n(23),a=n(70),s=n(73),c=n(74);e.exports=function(e){var t=[],n=[];return{encode:c(t,(e=e||{forceFloat64:!1,compatibilityMode:!1,disableTimestampEncoding:!1}).forceFloat64,e.compatibilityMode,e.disableTimestampEncoding),decode:s(n),register:function(e,t,n,a){return o(t,"must have a constructor"),o(n,"must have an encode function"),o(e>=0,"must have a non-negative type"),o(a,"must have a decode function"),this.registerEncoder((function(e){return e instanceof t}),(function(t){var o=i(),a=r.allocUnsafe(1);return a.writeInt8(e,0),o.append(a),o.append(n(t)),o})),this.registerDecoder(e,a),this},registerEncoder:function(e,n){return o(e,"must have an encode function"),o(n,"must have an encode function"),t.push({check:e,encode:n}),this},registerDecoder:function(e,t){return o(e>=0,"must have a non-negative type"),o(t,"must have a decode function"),n.push({type:e,decode:t}),this},encoder:a.encoder,decoder:a.decoder,buffer:!0,type:"msgpack5",IncompleteBufferError:s.IncompleteBufferError}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(26),n(17);var r=n(27),o=n(7),i={},a=!1;function s(e,t,n){var o=i[e];o||(o=i[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=s,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");s(n||0,o.toLogicalElement(r,!0),t)},t.getRendererer=function(e){return i[e]},t.renderBatch=function(e,t){var n=i[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),s=r.values(o),c=r.count(o),u=t.referenceFrames(),l=r.values(u),f=t.diffReader,h=0;h1)for(var n=1;n0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var l,f;s.attachDebuggerHotkey(e),window.Browser={init:function(){}},l=function(){window.Module=function(e,t,n){var l=this,f=e.bootConfig.resources,h=window.Module||{},p=["DEBUGGING ENABLED"];h.print=function(e){return p.indexOf(e)<0&&console.log(e)},h.printErr=function(e){console.error(e),c.showErrorNotification()},h.preRun=h.preRun||[],h.postRun=h.postRun||[],h.preloadPlugins=[];var g,m,w=e.loadResources(f.assembly,(function(e){return"_framework/"+e}),"assembly"),E=e.loadResources(f.pdb||{},(function(e){return"_framework/"+e}),"pdb"),S=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");if(e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.blat")&&(g=e.loadResource("dotnet.timezones.blat","_framework/dotnet.timezones.blat",e.bootConfig.resources.runtime["dotnet.timezones.blat"],"globalization")),e.bootConfig.icuDataMode!=u.ICUDataMode.Invariant){var _=e.startOptions.applicationCulture||navigator.languages&&navigator.languages[0],I=function(e,t){if(!t||e.icuDataMode==u.ICUDataMode.All)return"icudt.dat";var n=t.split("-")[0];return["en","fr","it","de","es"].includes(n)?"icudt_EFIGS.dat":["zh","ko","ja"].includes(n)?"icudt_CJK.dat":"icudt_no_CJK.dat"}(e.bootConfig,_);m=e.loadResource(I,"_framework/"+I,e.bootConfig.resources.runtime[I],"globalization")}return h.instantiateWasm=function(e,t){return r(l,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,S];case 1:return[4,v(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),h.printErr(r),r;case 4:return t(n),[2]}}))})),[]},h.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],g&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),Module.FS_createPath("/","usr",!0,!0),Module.FS_createPath("/usr/","share",!0,!0),Module.FS_createPath("/usr/share/","zoneinfo",!0,!0),MONO.mono_wasm_load_data_archive(new Uint8Array(n),"/usr/share/zoneinfo/"),removeRunDependency(t),[2]}}))}))}(g),m?function(e){r(this,void 0,void 0,(function(){var t,n,r,i,a;return o(this,(function(o){switch(o.label){case 0:return t="blazor:icudata",addRunDependency(t),[4,e.response];case 1:return n=o.sent(),i=Uint8Array.bind,[4,n.arrayBuffer()];case 2:if(r=new(i.apply(Uint8Array,[void 0,o.sent()])),a=MONO.mono_wasm_load_bytes_into_heap(r),!MONO.mono_wasm_load_icu_data(a))throw new Error("Error loading ICU asset.");return removeRunDependency(t),[2]}}))}))}(m):MONO.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT","1"),w.forEach((function(e){return C(e,function(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}(e.name,".dll"))})),E.forEach((function(e){return C(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){h.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources,a=e.startOptions.applicationCulture||navigator.languages&&navigator.languages[0];if(e.bootConfig.icuDataMode==u.ICUDataMode.Sharded&&n&&n[0]!==a)throw new Error("To change culture dynamically during startup, set true in the application's project file.");if(i){var s=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(l,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(s.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return p(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>f)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*l+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return p(e+(t||0))},readStringField:function(e,t,n){var r,o=p(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return h?void 0===(r=h.stringCache.get(o))&&(r=BINDING.conv_string(o),h.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return b(),h=new m},invokeWhenHeapUnlocked:function(e){h?h.enqueuePostReleaseAction(e):e()}};var d=document.createElement("a");function g(e){return e+12}function y(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function v(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function b(){if(h)throw new Error("Assertion failed - heap is currently locked")}var m=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(h!==this)throw new Error("Trying to release a lock which isn't current");for(h=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),b()}},e}()},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]this.length)&&(r=this.length),n>=this.length)return e||i.alloc(0);if(r<=0)return e||i.alloc(0);var o,a,s=!!e,c=this._offset(n),u=r-n,l=u,f=s&&t||0,h=c[1];if(0===n&&r==this.length){if(!s)return 1===this._bufs.length?this._bufs[0]:i.concat(this._bufs,this.length);for(a=0;a(o=this._bufs[a].length-h))){this._bufs[a].copy(e,f,h,h+l);break}this._bufs[a].copy(e,f,h),f+=o,l-=o,h&&(h=0)}return e},a.prototype.shallowSlice=function(e,t){e=e||0,t=t||this.length,e<0&&(e+=this.length),t<0&&(t+=this.length);var n=this._offset(e),r=this._offset(t),o=this._bufs.slice(n[0],r[0]+1);return 0==r[1]?o.pop():o[o.length-1]=o[o.length-1].slice(0,r[1]),0!=n[1]&&(o[0]=o[0].slice(n[1])),new a(o)},a.prototype.toString=function(e,t,n){return this.slice(t,n).toString(e)},a.prototype.consume=function(e){for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},a.prototype.duplicate=function(){for(var e=0,t=new a;e0&&e.invokeMethodAsync("OnSpacerAfterVisible",r.boundingClientRect.bottom-r.intersectionRect.bottom,a,s)}}))}),{root:i,rootMargin:o+"px"});a.observe(t),a.observe(n);var s=u(t),c=u(n);function u(e){var t=new MutationObserver((function(){a.unobserve(e),a.observe(e)}));return t.observe(e,{attributes:!0}),t}r[e._id]={intersectionObserver:a,mutationObserverBefore:s,mutationObserverAfter:c}},dispose:function(e){var t=r[e._id];t&&(t.intersectionObserver.disconnect(),t.mutationObserverBefore.disconnect(),t.mutationObserverAfter.disconnect(),e.dispose(),delete r[e._id])}};var r={}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1].*)$/;function i(e,t){var n=e.currentElement;if(n&&n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r.groups&&r.groups.descriptor;if(!i)return;try{var s=function(e){var t=JSON.parse(e),n=t.type;if("server"!==n&&"webassembly"!==n)throw new Error("Invalid component type '"+n+"'.");return t}(i);switch(t){case"webassembly":return function(e,t,n){var r=e.type,o=e.assembly,i=e.typeName,s=e.parameterDefinitions,c=e.parameterValues,u=e.prerenderId;if("webassembly"!==r)return;if(!o)throw new Error("assembly must be defined when using a descriptor.");if(!i)throw new Error("typeName must be defined when using a descriptor.");if(u){var l=a(u,n);if(!l)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:c&&atob(c),start:t,prerenderId:u,end:l}}return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:c&&atob(c),start:t}}(s,n,e);case"server":return function(e,t,n){var r=e.type,o=e.descriptor,i=e.sequence,s=e.prerenderId;if("server"!==r)return;if(!o)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===i)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(i))throw new Error("Error parsing the sequence '"+i+"' for component '"+JSON.stringify(e)+"'");if(s){var c=a(s,n);if(!c)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,sequence:i,descriptor:o,start:t,prerenderId:s,end:c}}return{type:r,sequence:i,descriptor:o,start:t}}(s,n,e)}}catch(e){throw new Error("Found malformed component comment at "+n.textContent)}}}function a(e,t){for(;t.next()&&t.currentElement;){var n=t.currentElement;if(n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r[1];if(i)return s(i,e),n}}}function s(e,t){var n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error("Invalid end of component comment: '"+e+"'");var r=n.prerenderId;if(!r)throw new Error("End of component comment must have a value for the prerendered property: '"+e+"'");if(r!==t)throw new Error("End of component comment prerendered property must match the start comment prerender id: '"+t+"', '"+r+"'")}var c=function(){function e(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}return e.prototype.next=function(){return this.currentIndex++,this.currentIndex=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),c=r[n];n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(n)?r.showHidden=n:n&&t._extend(r,n),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=c),l(r,e,r.depth)}function c(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function u(e,t){return e}function l(e,n,r){if(e.customInspect&&n&&_(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,e);return v(o)||(o=l(e,o,r)),o}var i=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(y(t))return e.stylize(""+t,"number");if(d(t))return e.stylize(""+t,"boolean");if(g(t))return e.stylize("null","null")}(e,n);if(i)return i;var a=Object.keys(n),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),S(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return f(n);if(0===a.length){if(_(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(m(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(E(n))return e.stylize(Date.prototype.toString.call(n),"date");if(S(n))return f(n)}var u,w="",I=!1,C=["{","}"];(p(n)&&(I=!0,C=["[","]"]),_(n))&&(w=" [Function"+(n.name?": "+n.name:"")+"]");return m(n)&&(w=" "+RegExp.prototype.toString.call(n)),E(n)&&(w=" "+Date.prototype.toUTCString.call(n)),S(n)&&(w=" "+f(n)),0!==a.length||I&&0!=n.length?r<0?m(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=I?function(e,t,n,r,o){for(var i=[],a=0,s=t.length;a=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,w,C)):C[0]+w+C[1]}function f(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,n,r,o,i){var a,s,c;if((c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),P(r,o)||(a="["+o+"]"),s||(e.seen.indexOf(c.value)<0?(s=g(n)?l(e,c.value,null):l(e,c.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),b(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function p(e){return Array.isArray(e)}function d(e){return"boolean"==typeof e}function g(e){return null===e}function y(e){return"number"==typeof e}function v(e){return"string"==typeof e}function b(e){return void 0===e}function m(e){return w(e)&&"[object RegExp]"===I(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===I(e)}function S(e){return w(e)&&("[object Error]"===I(e)||e instanceof Error)}function _(e){return"function"==typeof e}function I(e){return Object.prototype.toString.call(e)}function C(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(n){if(b(i)&&(i=e.env.NODE_DEBUG||""),n=n.toUpperCase(),!a[n])if(new RegExp("\\b"+n+"\\b","i").test(i)){var r=e.pid;a[n]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",n,r,e)}}else a[n]=function(){};return a[n]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=p,t.isBoolean=d,t.isNull=g,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=v,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=m,t.isObject=w,t.isDate=E,t.isError=S,t.isFunction=_,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(59);var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function T(){var e=new Date,t=[C(e.getHours()),C(e.getMinutes()),C(e.getSeconds())].join(":");return[e.getDate(),k[e.getMonth()],t].join(" ")}function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",T(),t.format.apply(t,arguments))},t.inherits=n(60),t._extend=function(e,t){if(!t||!w(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var O="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function R(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(O&&e[O]){var t;if("function"!=typeof(t=e[O]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,O,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),o=[],i=0;i0?("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===u.prototype||(t=function(e){return u.from(e)}(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):E(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?E(e,a,t,!1):C(e,a)):E(e,a,t,!1))):r||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function _(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(p("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(I,e):I(e))}function I(e){p("emit readable"),e.emit("readable"),O(e)}function C(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(k,e,t))}function k(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;ei.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++r}return t.length-=r,o}(e,t):function(e,t){var n=u.allocUnsafe(e),r=t.head,o=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,a),0===(e-=a)){a===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++o}return t.length-=o,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function x(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(D,t,e))}function D(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function A(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return p("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?x(this):_(this),null;if(0===(e=S(e,t))&&t.ended)return 0===t.length&&x(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e0?R(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&x(this)),null!==r&&this.emit("data",r),r},m.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},m.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,p("pipe count=%d opts=%j",i.pipesCount,t);var c=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?l:m;function u(t,r){p("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,p("cleanup"),e.removeListener("close",v),e.removeListener("finish",b),e.removeListener("drain",f),e.removeListener("error",y),e.removeListener("unpipe",u),n.removeListener("end",l),n.removeListener("end",m),n.removeListener("data",g),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function l(){p("onend"),e.end()}i.endEmitted?o.nextTick(c):n.once("end",c),e.on("unpipe",u);var f=function(e){return function(){var t=e._readableState;p("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,O(e))}}(n);e.on("drain",f);var h=!1;var d=!1;function g(t){p("ondata"),d=!1,!1!==e.write(t)||d||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==A(i.pipes,e))&&!h&&(p("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,d=!0),n.pause())}function y(t){p("onerror",t),m(),e.removeListener("error",y),0===s(e,"error")&&e.emit("error",t)}function v(){e.removeListener("finish",b),m()}function b(){p("onfinish"),e.removeListener("close",v),m()}function m(){p("unpipe"),n.unpipe(e)}return n.on("data",g),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",y),e.once("close",v),e.once("finish",b),e.emit("pipe",n),i.flowing||(p("pipe resume"),n.resume()),e},m.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i0&&a.length>o&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,s=c,console&&console.warn&&console.warn(s)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=h.bind(r);return o.listener=n,r.wrapFn=o,o}function d(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var c=o[e];if(void 0===c)return!1;if("function"==typeof c)i(c,this,t);else{var u=c.length,l=y(c,u);for(n=0;n=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},s.prototype.listeners=function(e){return d(this,e,!0)},s.prototype.rawListeners=function(e){return d(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){e.exports=n(41).EventEmitter},function(e,t,n){"use strict";var r=n(24);function o(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(o,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?(r.nextTick(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){"use strict";var r=n(66).Buffer,o=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=u,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0)return o>0&&(e.lastNeed=o-1),o;if(--r=0)return o>0&&(e.lastNeed=o-2),o;if(--r=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";(function(t,r,o){var i=n(24);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=b;var s,c=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;b.WritableState=v;var u=n(19);u.inherits=n(15);var l={deprecate:n(69)},f=n(42),h=n(14).Buffer,p=o.Uint8Array||function(){};var d,g=n(43);function y(){}function v(e,t){s=s||n(9),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,u=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(I,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),I(e,t))}(e,n,r,t,o);else{var a=S(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||E(e,n),r?c(w,e,n,a,o):w(e,n,a,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(9),!(d.call(b,this)||this instanceof s))return new b(e);this._writableState=new v(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function m(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function w(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),I(e,t)}function E(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=n;for(var s=0,c=!0;n;)o[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;o.allBuffers=c,m(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,l=n.encoding,f=n.callback;if(m(e,t,!1,t.objectMode?1:u.length,u,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function S(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function _(e,t){e._final((function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),I(e,t)}))}function I(e,t){var n=S(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(_,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}u.inherits(b,f),v.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(v.prototype,"buffer",{get:l.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(d=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!d.call(this,e)||this===b&&(e&&e._writableState instanceof v)}})):d=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,o=this._writableState,a=!1,s=!o.objectMode&&(r=e,h.isBuffer(r)||r instanceof p);return s&&!h.isBuffer(e)&&(e=function(e){return h.from(e)}(e)),"function"==typeof t&&(n=t,t=null),s?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=y),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),i.nextTick(r,a),o=!1),o}(this,o,e,n))&&(o.pendingcb++,a=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=h.from(t,n));return t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var c=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,I(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=g.destroy,b.prototype._undestroy=g.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(13),n(67).setImmediate,n(8))},function(e,t,n){"use strict";e.exports=a;var r=n(9),o=n(19);function i(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.lengths?a.slice(s).buffer:null}else{var c,u=t;if(-1===(c=u.indexOf(r.a.RecordSeparator)))throw new Error("Message is incomplete.");s=c+1;n=u.substring(0,s),i=u.length>s?u.substring(s):null}var l=r.a.parse(n),f=JSON.parse(l[0]);if(f.type)throw new Error("Expected a handshake response from the server.");return[i,f]},t}()}).call(this,n(10).Buffer)},,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},a=this&&this.__spread||function(){for(var e=[],t=0;t0?a-4:a;for(n=0;n>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===s&&(t=o[e.charCodeAt(n)]<<2|o[e.charCodeAt(n+1)]>>4,c[l++]=255&t);1===s&&(t=o[e.charCodeAt(n)]<<10|o[e.charCodeAt(n+1)]<<4|o[e.charCodeAt(n+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;as?s:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,c=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var o,i,a=[],s=t;s>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,c=(1<>1,l=-7,f=n?o-1:0,h=n?-1:1,p=e[t+f];for(f+=h,i=p&(1<<-l)-1,p>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=h,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=r;l>0;a=256*a+e[t+f],f+=h,l-=8);if(0===i)i=1-u;else{if(i===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),i-=u}return(p?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,c,u=8*i-o-1,l=(1<>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,d=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+f>=1?h/c:h*Math.pow(2,1-f))*c>=2&&(a++,c/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*c-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[n+p]=255&s,p+=d,s/=256,o-=8);for(a=a<0;e[n+p]=255&a,p+=d,a/=256,u-=8);e[n+p-d]|=128*g}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";(function(t){var r=n(58); +var r=n(54),o=n(55),i=n(56);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function d(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return F(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return O(this,t,n);case"utf8":case"utf-8":return k(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return P(this,t,n);case"base64":return C(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,o);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,o){var i,a=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,n/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=n;is&&(n=s-c),i=n;i>=0;i--){for(var f=!0,h=0;ho&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function C(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function k(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o239?4:u>223?3:u>191?2:1;if(o+f<=n)switch(f){case 1:u<128&&(l=u);break;case 2:128==(192&(i=e[o+1]))&&(c=(31&u)<<6|63&i)>127&&(l=c);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(c=(15&u)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(c=(15&u)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&c<1114112&&(l=c)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},c.prototype.compare=function(e,t,n,r,o){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),u=this.slice(r,o),l=e.slice(t,n),f=0;fo)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return m(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return E(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return _(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;or)&&(n=r);for(var o="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function D(e,t,n,r,o,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function A(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o>>8*(r?o:1-o)}function M(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o>>8*(r?o:3-o)&255}function L(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function j(e,t,n,r,i){return i||L(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function B(e,t,n,r,i){return i||L(e,0,n,8),o.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(o*=256);)r+=this[e+--t]*o;return r},c.prototype.readUInt8=function(e,t){return t||x(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||x(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||x(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||x(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||x(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||x(e,t,this.length);for(var r=this[e],o=1,i=0;++i=(o*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||x(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return t||x(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||x(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||x(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||x(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||x(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||x(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||x(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||x(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||x(e,8,this.length),o.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||D(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):A(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):A(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);D(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);D(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):A(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):A(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return j(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return j(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return B(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+n];else if(i<1e3||!c.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function H(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(N,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function W(e,t,n,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(8))},function(e,t,n){"use strict";var r=n(14).Buffer,o=n(57),i=n(23),a=n(70),s=n(73),c=n(74);e.exports=function(e){var t=[],n=[];return{encode:c(t,(e=e||{forceFloat64:!1,compatibilityMode:!1,disableTimestampEncoding:!1}).forceFloat64,e.compatibilityMode,e.disableTimestampEncoding),decode:s(n),register:function(e,t,n,a){return o(t,"must have a constructor"),o(n,"must have an encode function"),o(e>=0,"must have a non-negative type"),o(a,"must have a decode function"),this.registerEncoder((function(e){return e instanceof t}),(function(t){var o=i(),a=r.allocUnsafe(1);return a.writeInt8(e,0),o.append(a),o.append(n(t)),o})),this.registerDecoder(e,a),this},registerEncoder:function(e,n){return o(e,"must have an encode function"),o(n,"must have an encode function"),t.push({check:e,encode:n}),this},registerDecoder:function(e,t){return o(e>=0,"must have a non-negative type"),o(t,"must have a decode function"),n.push({type:e,decode:t}),this},encoder:a.encoder,decoder:a.decoder,buffer:!0,type:"msgpack5",IncompleteBufferError:s.IncompleteBufferError}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(26),n(17);var r=n(27),o=n(7),i={},a=!1;function s(e,t,n){var o=i[e];o||(o=i[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=s,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");s(n||0,o.toLogicalElement(r,!0),t)},t.getRendererer=function(e){return i[e]},t.renderBatch=function(e,t){var n=i[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),s=r.values(o),c=r.count(o),u=t.referenceFrames(),l=r.values(u),f=t.diffReader,h=0;h1)for(var n=1;n0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var l,f;s.attachDebuggerHotkey(e),window.Browser={init:function(){}},l=function(){window.Module=function(e,t,n){var l=this,f=e.bootConfig.resources,h=window.Module||{},p=["DEBUGGING ENABLED"];h.print=function(e){return p.indexOf(e)<0&&console.log(e)},h.printErr=function(e){console.error(e),c.showErrorNotification()},h.preRun=h.preRun||[],h.postRun=h.postRun||[],h.preloadPlugins=[];var g,w,E=e.loadResources(f.assembly,(function(e){return"_framework/"+e}),"assembly"),S=e.loadResources(f.pdb||{},(function(e){return"_framework/"+e}),"pdb"),_=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");if(e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.blat")&&(g=e.loadResource("dotnet.timezones.blat","_framework/dotnet.timezones.blat",e.bootConfig.resources.runtime["dotnet.timezones.blat"],"globalization")),e.bootConfig.icuDataMode!=u.ICUDataMode.Invariant){var I=e.startOptions.applicationCulture||navigator.languages&&navigator.languages[0],C=function(e,t){if(!t||e.icuDataMode==u.ICUDataMode.All)return"icudt.dat";var n=t.split("-")[0];return["en","fr","it","de","es"].includes(n)?"icudt_EFIGS.dat":["zh","ko","ja"].includes(n)?"icudt_CJK.dat":"icudt_no_CJK.dat"}(e.bootConfig,I);w=e.loadResource(C,"_framework/"+C,e.bootConfig.resources.runtime[C],"globalization")}return h.instantiateWasm=function(e,t){return r(l,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,_];case 1:return[4,v(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),h.printErr(r),r;case 4:return t(n),[2]}}))})),[]},h.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],g&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),Module.FS_createPath("/","usr",!0,!0),Module.FS_createPath("/usr/","share",!0,!0),Module.FS_createPath("/usr/share/","zoneinfo",!0,!0),MONO.mono_wasm_load_data_archive(new Uint8Array(n),"/usr/share/zoneinfo/"),removeRunDependency(t),[2]}}))}))}(g),w?function(e){r(this,void 0,void 0,(function(){var t,n,r,i,a;return o(this,(function(o){switch(o.label){case 0:return t="blazor:icudata",addRunDependency(t),[4,e.response];case 1:return n=o.sent(),i=Uint8Array.bind,[4,n.arrayBuffer()];case 2:if(r=new(i.apply(Uint8Array,[void 0,o.sent()])),a=MONO.mono_wasm_load_bytes_into_heap(r),!MONO.mono_wasm_load_icu_data(a))throw new Error("Error loading ICU asset.");return removeRunDependency(t),[2]}}))}))}(w):MONO.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT","1"),E.forEach((function(e){return k(e,b(e.name,".dll"))})),S.forEach((function(e){return k(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){h.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources,a=e.startOptions.applicationCulture||navigator.languages&&navigator.languages[0];if(e.bootConfig.icuDataMode==u.ICUDataMode.Sharded&&n&&n[0]!==a)throw new Error("To change culture dynamically during startup, set true in the application's project file.");if(i){var s=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(l,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(s.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return p(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>f)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*l+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return p(e+(t||0))},readStringField:function(e,t,n){var r,o=p(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return h?void 0===(r=h.stringCache.get(o))&&(r=BINDING.conv_string(o),h.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return m(),h=new w},invokeWhenHeapUnlocked:function(e){h?h.enqueuePostReleaseAction(e):e()}};var d=document.createElement("a");function g(e){return e+12}function y(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function v(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function b(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}function m(){if(h)throw new Error("Assertion failed - heap is currently locked")}var w=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(h!==this)throw new Error("Trying to release a lock which isn't current");for(h=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),m()}},e}()},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]this.length)&&(r=this.length),n>=this.length)return e||i.alloc(0);if(r<=0)return e||i.alloc(0);var o,a,s=!!e,c=this._offset(n),u=r-n,l=u,f=s&&t||0,h=c[1];if(0===n&&r==this.length){if(!s)return 1===this._bufs.length?this._bufs[0]:i.concat(this._bufs,this.length);for(a=0;a(o=this._bufs[a].length-h))){this._bufs[a].copy(e,f,h,h+l);break}this._bufs[a].copy(e,f,h),f+=o,l-=o,h&&(h=0)}return e},a.prototype.shallowSlice=function(e,t){e=e||0,t=t||this.length,e<0&&(e+=this.length),t<0&&(t+=this.length);var n=this._offset(e),r=this._offset(t),o=this._bufs.slice(n[0],r[0]+1);return 0==r[1]?o.pop():o[o.length-1]=o[o.length-1].slice(0,r[1]),0!=n[1]&&(o[0]=o[0].slice(n[1])),new a(o)},a.prototype.toString=function(e,t,n){return this.slice(t,n).toString(e)},a.prototype.consume=function(e){for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},a.prototype.duplicate=function(){for(var e=0,t=new a;e0&&e.invokeMethodAsync("OnSpacerAfterVisible",r.boundingClientRect.bottom-r.intersectionRect.bottom,a,s)}}))}),{root:i,rootMargin:o+"px"});a.observe(t),a.observe(n);var s=u(t),c=u(n);function u(e){var t=new MutationObserver((function(){a.unobserve(e),a.observe(e)}));return t.observe(e,{attributes:!0}),t}r[e._id]={intersectionObserver:a,mutationObserverBefore:s,mutationObserverAfter:c}},dispose:function(e){var t=r[e._id];t&&(t.intersectionObserver.disconnect(),t.mutationObserverBefore.disconnect(),t.mutationObserverAfter.disconnect(),e.dispose(),delete r[e._id])}};var r={}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1].*)$/;function i(e,t){var n=e.currentElement;if(n&&n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r.groups&&r.groups.descriptor;if(!i)return;try{var s=function(e){var t=JSON.parse(e),n=t.type;if("server"!==n&&"webassembly"!==n)throw new Error("Invalid component type '"+n+"'.");return t}(i);switch(t){case"webassembly":return function(e,t,n){var r=e.type,o=e.assembly,i=e.typeName,s=e.parameterDefinitions,c=e.parameterValues,u=e.prerenderId;if("webassembly"!==r)return;if(!o)throw new Error("assembly must be defined when using a descriptor.");if(!i)throw new Error("typeName must be defined when using a descriptor.");if(u){var l=a(u,n);if(!l)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:c&&atob(c),start:t,prerenderId:u,end:l}}return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:c&&atob(c),start:t}}(s,n,e);case"server":return function(e,t,n){var r=e.type,o=e.descriptor,i=e.sequence,s=e.prerenderId;if("server"!==r)return;if(!o)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===i)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(i))throw new Error("Error parsing the sequence '"+i+"' for component '"+JSON.stringify(e)+"'");if(s){var c=a(s,n);if(!c)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,sequence:i,descriptor:o,start:t,prerenderId:s,end:c}}return{type:r,sequence:i,descriptor:o,start:t}}(s,n,e)}}catch(e){throw new Error("Found malformed component comment at "+n.textContent)}}}function a(e,t){for(;t.next()&&t.currentElement;){var n=t.currentElement;if(n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r[1];if(i)return s(i,e),n}}}function s(e,t){var n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error("Invalid end of component comment: '"+e+"'");var r=n.prerenderId;if(!r)throw new Error("End of component comment must have a value for the prerendered property: '"+e+"'");if(r!==t)throw new Error("End of component comment prerendered property must match the start comment prerender id: '"+t+"', '"+r+"'")}var c=function(){function e(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}return e.prototype.next=function(){return this.currentIndex++,this.currentIndex=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),c=r[n];n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(n)?r.showHidden=n:n&&t._extend(r,n),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=c),l(r,e,r.depth)}function c(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function u(e,t){return e}function l(e,n,r){if(e.customInspect&&n&&_(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,e);return v(o)||(o=l(e,o,r)),o}var i=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(y(t))return e.stylize(""+t,"number");if(d(t))return e.stylize(""+t,"boolean");if(g(t))return e.stylize("null","null")}(e,n);if(i)return i;var a=Object.keys(n),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),S(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return f(n);if(0===a.length){if(_(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(m(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(E(n))return e.stylize(Date.prototype.toString.call(n),"date");if(S(n))return f(n)}var u,w="",I=!1,C=["{","}"];(p(n)&&(I=!0,C=["[","]"]),_(n))&&(w=" [Function"+(n.name?": "+n.name:"")+"]");return m(n)&&(w=" "+RegExp.prototype.toString.call(n)),E(n)&&(w=" "+Date.prototype.toUTCString.call(n)),S(n)&&(w=" "+f(n)),0!==a.length||I&&0!=n.length?r<0?m(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=I?function(e,t,n,r,o){for(var i=[],a=0,s=t.length;a=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,w,C)):C[0]+w+C[1]}function f(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,n,r,o,i){var a,s,c;if((c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),P(r,o)||(a="["+o+"]"),s||(e.seen.indexOf(c.value)<0?(s=g(n)?l(e,c.value,null):l(e,c.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),b(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function p(e){return Array.isArray(e)}function d(e){return"boolean"==typeof e}function g(e){return null===e}function y(e){return"number"==typeof e}function v(e){return"string"==typeof e}function b(e){return void 0===e}function m(e){return w(e)&&"[object RegExp]"===I(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===I(e)}function S(e){return w(e)&&("[object Error]"===I(e)||e instanceof Error)}function _(e){return"function"==typeof e}function I(e){return Object.prototype.toString.call(e)}function C(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(n){if(b(i)&&(i=e.env.NODE_DEBUG||""),n=n.toUpperCase(),!a[n])if(new RegExp("\\b"+n+"\\b","i").test(i)){var r=e.pid;a[n]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",n,r,e)}}else a[n]=function(){};return a[n]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=p,t.isBoolean=d,t.isNull=g,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=v,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=m,t.isObject=w,t.isDate=E,t.isError=S,t.isFunction=_,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(59);var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function T(){var e=new Date,t=[C(e.getHours()),C(e.getMinutes()),C(e.getSeconds())].join(":");return[e.getDate(),k[e.getMonth()],t].join(" ")}function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",T(),t.format.apply(t,arguments))},t.inherits=n(60),t._extend=function(e,t){if(!t||!w(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var O="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function R(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(O&&e[O]){var t;if("function"!=typeof(t=e[O]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,O,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),o=[],i=0;i0?("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===u.prototype||(t=function(e){return u.from(e)}(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):E(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?E(e,a,t,!1):C(e,a)):E(e,a,t,!1))):r||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function _(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(p("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(I,e):I(e))}function I(e){p("emit readable"),e.emit("readable"),O(e)}function C(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(k,e,t))}function k(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;ei.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++r}return t.length-=r,o}(e,t):function(e,t){var n=u.allocUnsafe(e),r=t.head,o=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,a),0===(e-=a)){a===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++o}return t.length-=o,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function x(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(D,t,e))}function D(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function A(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return p("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?x(this):_(this),null;if(0===(e=S(e,t))&&t.ended)return 0===t.length&&x(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e0?R(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&x(this)),null!==r&&this.emit("data",r),r},m.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},m.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,p("pipe count=%d opts=%j",i.pipesCount,t);var c=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?l:m;function u(t,r){p("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,p("cleanup"),e.removeListener("close",v),e.removeListener("finish",b),e.removeListener("drain",f),e.removeListener("error",y),e.removeListener("unpipe",u),n.removeListener("end",l),n.removeListener("end",m),n.removeListener("data",g),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function l(){p("onend"),e.end()}i.endEmitted?o.nextTick(c):n.once("end",c),e.on("unpipe",u);var f=function(e){return function(){var t=e._readableState;p("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,O(e))}}(n);e.on("drain",f);var h=!1;var d=!1;function g(t){p("ondata"),d=!1,!1!==e.write(t)||d||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==A(i.pipes,e))&&!h&&(p("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,d=!0),n.pause())}function y(t){p("onerror",t),m(),e.removeListener("error",y),0===s(e,"error")&&e.emit("error",t)}function v(){e.removeListener("finish",b),m()}function b(){p("onfinish"),e.removeListener("close",v),m()}function m(){p("unpipe"),n.unpipe(e)}return n.on("data",g),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",y),e.once("close",v),e.once("finish",b),e.emit("pipe",n),i.flowing||(p("pipe resume"),n.resume()),e},m.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i0&&a.length>o&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,s=c,console&&console.warn&&console.warn(s)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=h.bind(r);return o.listener=n,r.wrapFn=o,o}function d(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var c=o[e];if(void 0===c)return!1;if("function"==typeof c)i(c,this,t);else{var u=c.length,l=y(c,u);for(n=0;n=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},s.prototype.listeners=function(e){return d(this,e,!0)},s.prototype.rawListeners=function(e){return d(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){e.exports=n(41).EventEmitter},function(e,t,n){"use strict";var r=n(24);function o(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(o,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?(r.nextTick(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){"use strict";var r=n(66).Buffer,o=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=u,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0)return o>0&&(e.lastNeed=o-1),o;if(--r=0)return o>0&&(e.lastNeed=o-2),o;if(--r=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";(function(t,r,o){var i=n(24);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=b;var s,c=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;b.WritableState=v;var u=n(19);u.inherits=n(15);var l={deprecate:n(69)},f=n(42),h=n(14).Buffer,p=o.Uint8Array||function(){};var d,g=n(43);function y(){}function v(e,t){s=s||n(9),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,u=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(I,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),I(e,t))}(e,n,r,t,o);else{var a=S(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||E(e,n),r?c(w,e,n,a,o):w(e,n,a,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(9),!(d.call(b,this)||this instanceof s))return new b(e);this._writableState=new v(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function m(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function w(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),I(e,t)}function E(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=n;for(var s=0,c=!0;n;)o[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;o.allBuffers=c,m(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,l=n.encoding,f=n.callback;if(m(e,t,!1,t.objectMode?1:u.length,u,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function S(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function _(e,t){e._final((function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),I(e,t)}))}function I(e,t){var n=S(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(_,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}u.inherits(b,f),v.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(v.prototype,"buffer",{get:l.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(d=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!d.call(this,e)||this===b&&(e&&e._writableState instanceof v)}})):d=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,o=this._writableState,a=!1,s=!o.objectMode&&(r=e,h.isBuffer(r)||r instanceof p);return s&&!h.isBuffer(e)&&(e=function(e){return h.from(e)}(e)),"function"==typeof t&&(n=t,t=null),s?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=y),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),i.nextTick(r,a),o=!1),o}(this,o,e,n))&&(o.pendingcb++,a=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=h.from(t,n));return t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var c=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,I(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=g.destroy,b.prototype._undestroy=g.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(13),n(67).setImmediate,n(8))},function(e,t,n){"use strict";e.exports=a;var r=n(9),o=n(19);function i(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.lengths?a.slice(s).buffer:null}else{var c,u=t;if(-1===(c=u.indexOf(r.a.RecordSeparator)))throw new Error("Message is incomplete.");s=c+1;n=u.substring(0,s),i=u.length>s?u.substring(s):null}var l=r.a.parse(n),f=JSON.parse(l[0]);if(f.type)throw new Error("Expected a handshake response from the server.");return[i,f]},t}()}).call(this,n(10).Buffer)},,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},a=this&&this.__spread||function(){for(var e=[],t=0;t0?a-4:a;for(n=0;n>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===s&&(t=o[e.charCodeAt(n)]<<2|o[e.charCodeAt(n+1)]>>4,c[l++]=255&t);1===s&&(t=o[e.charCodeAt(n)]<<10|o[e.charCodeAt(n+1)]<<4|o[e.charCodeAt(n+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;as?s:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,c=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var o,i,a=[],s=t;s>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,c=(1<>1,l=-7,f=n?o-1:0,h=n?-1:1,p=e[t+f];for(f+=h,i=p&(1<<-l)-1,p>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=h,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=r;l>0;a=256*a+e[t+f],f+=h,l-=8);if(0===i)i=1-u;else{if(i===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),i-=u}return(p?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,c,u=8*i-o-1,l=(1<>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,d=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+f>=1?h/c:h*Math.pow(2,1-f))*c>=2&&(a++,c/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*c-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[n+p]=255&s,p+=d,s/=256,o-=8);for(a=a<0;e[n+p]=255&a,p+=d,a/=256,u-=8);e[n+p-d]|=128*g}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";(function(t){var r=n(58); /*! * The buffer module from node.js, for the browser. * diff --git a/src/Components/Web.JS/dist/Release/blazor.webassembly.js b/src/Components/Web.JS/dist/Release/blazor.webassembly.js index 6d11fd3c85..00ac43ba67 100644 --- a/src/Components/Web.JS/dist/Release/blazor.webassembly.js +++ b/src/Components/Web.JS/dist/Release/blazor.webassembly.js @@ -1 +1 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=48)}([,,,function(e,t,n){"use strict";var r;n.r(t),n.d(t,"DotNet",(function(){return r})),function(e){var t;window.DotNet=e;var n=[],r=function(){function e(e){this._jsObject=e,this._cachedFunctions=new Map}return e.prototype.findFunction=function(e){var t=this._cachedFunctions.get(e);if(t)return t;var n,r=this._jsObject;if(e.split(".").forEach((function(t){if(!(t in r))throw new Error("Could not find '"+e+"' ('"+t+"' was undefined).");n=r,r=r[t]})),r instanceof Function)return r=r.bind(n),this._cachedFunctions.set(e,r),r;throw new Error("The value '"+e+"' is not a function.")},e.prototype.getWrappedObject=function(){return this._jsObject},e}(),o={},i=((t={})[0]=new r(window),t);i[0]._cachedFunctions.set("import",(function(e){return"string"==typeof e&&e.startsWith("./")&&(e=document.baseURI+e.substr(2)),import(e)}));var a,s=1,u=1,c=null;function l(e){n.push(e)}function f(e){var t;if(e&&"object"==typeof e){i[u]=new r(e);var n=((t={}).__jsObjectId=u,t);return u++,n}throw new Error("Cannot create a JSObjectReference from the value '"+e+"'.")}function d(e){return e?JSON.parse(e,(function(e,t){return n.reduce((function(t,n){return n(e,t)}),t)})):null}function p(e,t,n,r){var o=m();if(o.invokeDotNetFromJS){var i=JSON.stringify(r,_),a=o.invokeDotNetFromJS(e,t,n,i);return a?d(a):null}throw new Error("The current dispatcher does not support synchronous calls from JS to .NET. Use invokeMethodAsync instead.")}function h(e,t,n,r){if(e&&n)throw new Error("For instance method calls, assemblyName should be null. Received '"+e+"'.");var i=s++,a=new Promise((function(e,t){o[i]={resolve:e,reject:t}}));try{var u=JSON.stringify(r,_);m().beginInvokeDotNetFromJS(i,e,t,n,u)}catch(e){v(i,!1,e)}return a}function m(){if(null!==c)return c;throw new Error("No .NET call dispatcher has been set.")}function v(e,t,n){if(!o.hasOwnProperty(e))throw new Error("There is no pending async call with ID "+e+".");var r=o[e];delete o[e],t?r.resolve(n):r.reject(n)}function y(e){return e instanceof Error?e.message+"\n"+e.stack:e?e.toString():"null"}function b(e,t){var n=i[t];if(n)return n.findFunction(e);throw new Error("JS object instance with ID "+t+" does not exist (has it been disposed?).")}function g(e){delete i[e]}e.attachDispatcher=function(e){c=e},e.attachReviver=l,e.invokeMethod=function(e,t){for(var n=[],r=2;r0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(c(i)&&c(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(u(i))throw new Error("Not implemented: moving existing logical children");var a=c(t);if(n0;)e(r,0)}var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=u,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return c(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=c,t.permuteLogicalChildren=function(e,t){var n=c(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=u(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):d(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(26),n(17);var r=n(27),o=n(7),i={},a=!1;function s(e,t,n){var o=i[e];o||(o=i[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=s,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");s(n||0,o.toLogicalElement(r,!0),t)},t.getRendererer=function(e){return i[e]},t.renderBatch=function(e,t){var n=i[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),s=r.values(o),u=r.count(o),c=t.referenceFrames(),l=r.values(c),f=t.diffReader,d=0;d0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var l,f;s.attachDebuggerHotkey(e),window.Browser={init:function(){}},l=function(){window.Module=function(e,t,n){var l=this,f=e.bootConfig.resources,d=window.Module||{},p=["DEBUGGING ENABLED"];d.print=function(e){return p.indexOf(e)<0&&console.log(e)},d.printErr=function(e){console.error(e),u.showErrorNotification()},d.preRun=d.preRun||[],d.postRun=d.postRun||[],d.preloadPlugins=[];var m,g,w=e.loadResources(f.assembly,(function(e){return"_framework/"+e}),"assembly"),E=e.loadResources(f.pdb||{},(function(e){return"_framework/"+e}),"pdb"),_=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");if(e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.blat")&&(m=e.loadResource("dotnet.timezones.blat","_framework/dotnet.timezones.blat",e.bootConfig.resources.runtime["dotnet.timezones.blat"],"globalization")),e.bootConfig.icuDataMode!=c.ICUDataMode.Invariant){var I=e.startOptions.applicationCulture||navigator.languages&&navigator.languages[0],C=function(e,t){if(!t||e.icuDataMode==c.ICUDataMode.All)return"icudt.dat";var n=t.split("-")[0];return["en","fr","it","de","es"].includes(n)?"icudt_EFIGS.dat":["zh","ko","ja"].includes(n)?"icudt_CJK.dat":"icudt_no_CJK.dat"}(e.bootConfig,I);g=e.loadResource(C,"_framework/"+C,e.bootConfig.resources.runtime[C],"globalization")}return d.instantiateWasm=function(e,t){return r(l,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,_];case 1:return[4,y(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),d.printErr(r),r;case 4:return t(n),[2]}}))})),[]},d.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],m&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),Module.FS_createPath("/","usr",!0,!0),Module.FS_createPath("/usr/","share",!0,!0),Module.FS_createPath("/usr/share/","zoneinfo",!0,!0),MONO.mono_wasm_load_data_archive(new Uint8Array(n),"/usr/share/zoneinfo/"),removeRunDependency(t),[2]}}))}))}(m),g?function(e){r(this,void 0,void 0,(function(){var t,n,r,i,a;return o(this,(function(o){switch(o.label){case 0:return t="blazor:icudata",addRunDependency(t),[4,e.response];case 1:return n=o.sent(),i=Uint8Array.bind,[4,n.arrayBuffer()];case 2:if(r=new(i.apply(Uint8Array,[void 0,o.sent()])),a=MONO.mono_wasm_load_bytes_into_heap(r),!MONO.mono_wasm_load_icu_data(a))throw new Error("Error loading ICU asset.");return removeRunDependency(t),[2]}}))}))}(g):MONO.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT","1"),w.forEach((function(e){return N(e,function(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}(e.name,".dll"))})),E.forEach((function(e){return N(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){d.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources,a=e.startOptions.applicationCulture||navigator.languages&&navigator.languages[0];if(e.bootConfig.icuDataMode==c.ICUDataMode.Sharded&&n&&n[0]!==a)throw new Error("To change culture dynamically during startup, set true in the application's project file.");if(i){var s=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(l,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(s.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return p(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>f)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*l+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return p(e+(t||0))},readStringField:function(e,t,n){var r,o=p(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return d?void 0===(r=d.stringCache.get(o))&&(r=BINDING.conv_string(o),d.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return b(),d=new g},invokeWhenHeapUnlocked:function(e){d?d.enqueuePostReleaseAction(e):e()}};var h=document.createElement("a");function m(e){return e+12}function v(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function y(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function b(){if(d)throw new Error("Assertion failed - heap is currently locked")}var g=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(d!==this)throw new Error("Trying to release a lock which isn't current");for(d=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),b()}},e}()},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&e.invokeMethodAsync("OnSpacerAfterVisible",r.boundingClientRect.bottom-r.intersectionRect.bottom,a,s)}}))}),{root:i,rootMargin:o+"px"});a.observe(t),a.observe(n);var s=c(t),u=c(n);function c(e){var t=new MutationObserver((function(){a.unobserve(e),a.observe(e)}));return t.observe(e,{attributes:!0}),t}r[e._id]={intersectionObserver:a,mutationObserverBefore:s,mutationObserverAfter:u}},dispose:function(e){var t=r[e._id];t&&(t.intersectionObserver.disconnect(),t.mutationObserverBefore.disconnect(),t.mutationObserverAfter.disconnect(),e.dispose(),delete r[e._id])}};var r={}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1].*)$/;function i(e,t){var n=e.currentElement;if(n&&n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r.groups&&r.groups.descriptor;if(!i)return;try{var s=function(e){var t=JSON.parse(e),n=t.type;if("server"!==n&&"webassembly"!==n)throw new Error("Invalid component type '"+n+"'.");return t}(i);switch(t){case"webassembly":return function(e,t,n){var r=e.type,o=e.assembly,i=e.typeName,s=e.parameterDefinitions,u=e.parameterValues,c=e.prerenderId;if("webassembly"!==r)return;if(!o)throw new Error("assembly must be defined when using a descriptor.");if(!i)throw new Error("typeName must be defined when using a descriptor.");if(c){var l=a(c,n);if(!l)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:u&&atob(u),start:t,prerenderId:c,end:l}}return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:u&&atob(u),start:t}}(s,n,e);case"server":return function(e,t,n){var r=e.type,o=e.descriptor,i=e.sequence,s=e.prerenderId;if("server"!==r)return;if(!o)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===i)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(i))throw new Error("Error parsing the sequence '"+i+"' for component '"+JSON.stringify(e)+"'");if(s){var u=a(s,n);if(!u)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,sequence:i,descriptor:o,start:t,prerenderId:s,end:u}}return{type:r,sequence:i,descriptor:o,start:t}}(s,n,e)}}catch(e){throw new Error("Found malformed component comment at "+n.textContent)}}}function a(e,t){for(;t.next()&&t.currentElement;){var n=t.currentElement;if(n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r[1];if(i)return s(i,e),n}}}function s(e,t){var n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error("Invalid end of component comment: '"+e+"'");var r=n.prerenderId;if(!r)throw new Error("End of component comment must have a value for the prerendered property: '"+e+"'");if(r!==t)throw new Error("End of component comment prerendered property must match the start comment prerender id: '"+t+"', '"+r+"'")}var u=function(){function e(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}return e.prototype.next=function(){return this.currentIndex++,this.currentIndex0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var a=n(3);n(25);var s=n(17),u=n(20),c=n(12),l=n(49),f=n(37),d=n(18),p=n(50),h=n(51),m=n(22),v=n(52),y=n(38),b=!1;function g(e){return r(this,void 0,void 0,(function(){var t,n,f,g,E,_,I,C,N,A,S,k=this;return o(this,(function(F){switch(F.label){case 0:if(b)throw new Error("Blazor has already started.");return b=!0,d.setEventDispatcher((function(e,t){c.getRendererer(e.browserRendererId).eventDelegator.getHandler(e.eventHandlerId)&&u.monoPlatform.invokeWhenHeapUnlocked((function(){return a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","DispatchEvent",e,JSON.stringify(t))}))})),window.Blazor._internal.invokeJSFromDotNet=w,t=s.setPlatform(u.monoPlatform),window.Blazor.platform=t,window.Blazor._internal.renderBatch=function(e,t){var n=u.monoPlatform.beginHeapLock();try{c.renderBatch(e,new l.SharedMemoryRenderBatch(t))}finally{n.release()}},n=window.Blazor._internal.navigationManager.getBaseURI,f=window.Blazor._internal.navigationManager.getLocationHref,window.Blazor._internal.navigationManager.getUnmarshalledBaseURI=function(){return BINDING.js_string_to_mono_string(n())},window.Blazor._internal.navigationManager.getUnmarshalledLocationHref=function(){return BINDING.js_string_to_mono_string(f())},window.Blazor._internal.navigationManager.listenForNavigationEvents((function(e,t){return r(k,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return[4,a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChanged",e,t)];case 1:return n.sent(),[2]}}))}))})),g=null==e?void 0:e.environment,E=m.BootConfigResult.initAsync(g),_=y.discoverComponents(document,"webassembly"),I=new v.WebAssemblyComponentAttacher(_),window.Blazor._internal.registeredComponents={getRegisteredComponentsCount:function(){return I.getCount()},getId:function(e){return I.getId(e)},getAssembly:function(e){return BINDING.js_string_to_mono_string(I.getAssembly(e))},getTypeName:function(e){return BINDING.js_string_to_mono_string(I.getTypeName(e))},getParameterDefinitions:function(e){return BINDING.js_string_to_mono_string(I.getParameterDefinitions(e)||"")},getParameterValues:function(e){return BINDING.js_string_to_mono_string(I.getParameterValues(e)||"")}},window.Blazor._internal.attachRootComponentToElement=function(e,t,n){var r=I.resolveRegisteredElement(e);r?c.attachRootComponentToLogicalElement(n,r,t):c.attachRootComponentToElement(e,t,n)},[4,E];case 1:return C=F.sent(),[4,Promise.all([p.WebAssemblyResourceLoader.initAsync(C.bootConfig,e||{}),h.WebAssemblyConfigLoader.initAsync(C)])];case 2:N=i.apply(void 0,[F.sent(),1]),A=N[0],F.label=3;case 3:return F.trys.push([3,5,,6]),[4,t.start(A)];case 4:return F.sent(),[3,6];case 5:throw S=F.sent(),new Error("Failed to start platform. Reason: "+S);case 6:return t.callEntryPoint(A.bootConfig.entryAssembly),[2]}}))}))}function w(e,t,n,r){var o=u.monoPlatform.readStringField(e,0),i=u.monoPlatform.readInt32Field(e,4),s=u.monoPlatform.readStringField(e,8),c=u.monoPlatform.readUint64Field(e,20);if(null!==s){var l=u.monoPlatform.readUint64Field(e,12);if(0!==l)return a.DotNet.jsCallDispatcher.beginInvokeJSFromDotNet(l,o,s,i,c),0;var f=a.DotNet.jsCallDispatcher.invokeJSFromDotNet(o,s,i,c);return null===f?0:BINDING.js_string_to_mono_string(f)}var d=a.DotNet.jsCallDispatcher.findJSFunction(o,c).call(null,t,n,r);switch(i){case a.DotNet.JSCallResultType.Default:return d;case a.DotNet.JSCallResultType.JSObjectReference:return a.DotNet.createJSObjectReference(d).__jsObjectId;default:throw new Error("Invalid JS call result type '"+i+"'.")}}window.Blazor.start=g,f.shouldAutoStart()&&g().catch((function(e){"undefined"!=typeof Module&&Module.printErr?Module.printErr(e):console.error(e)}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(17),o=function(){function e(e){this.batchAddress=e,this.arrayRangeReader=i,this.arrayBuilderSegmentReader=a,this.diffReader=s,this.editReader=u,this.frameReader=c}return e.prototype.updatedComponents=function(){return r.platform.readStructField(this.batchAddress,0)},e.prototype.referenceFrames=function(){return r.platform.readStructField(this.batchAddress,i.structLength)},e.prototype.disposedComponentIds=function(){return r.platform.readStructField(this.batchAddress,2*i.structLength)},e.prototype.disposedEventHandlerIds=function(){return r.platform.readStructField(this.batchAddress,3*i.structLength)},e.prototype.updatedComponentsEntry=function(e,t){return l(e,t,s.structLength)},e.prototype.referenceFramesEntry=function(e,t){return l(e,t,c.structLength)},e.prototype.disposedComponentIdsEntry=function(e,t){var n=l(e,t,4);return r.platform.readInt32Field(n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=l(e,t,8);return r.platform.readUint64Field(n)},e}();t.SharedMemoryRenderBatch=o;var i={structLength:8,values:function(e){return r.platform.readObjectField(e,0)},count:function(e){return r.platform.readInt32Field(e,4)}},a={structLength:12,values:function(e){var t=r.platform.readObjectField(e,0),n=r.platform.getObjectFieldsBaseAddress(t);return r.platform.readObjectField(n,0)},offset:function(e){return r.platform.readInt32Field(e,4)},count:function(e){return r.platform.readInt32Field(e,8)}},s={structLength:4+a.structLength,componentId:function(e){return r.platform.readInt32Field(e,0)},edits:function(e){return r.platform.readStructField(e,4)},editsEntry:function(e,t){return l(e,t,u.structLength)}},u={structLength:20,editType:function(e){return r.platform.readInt32Field(e,0)},siblingIndex:function(e){return r.platform.readInt32Field(e,4)},newTreeIndex:function(e){return r.platform.readInt32Field(e,8)},moveToSiblingIndex:function(e){return r.platform.readInt32Field(e,8)},removedAttributeName:function(e){return r.platform.readStringField(e,16)}},c={structLength:36,frameType:function(e){return r.platform.readInt16Field(e,4)},subtreeLength:function(e){return r.platform.readInt32Field(e,8)},elementReferenceCaptureId:function(e){return r.platform.readStringField(e,16)},componentId:function(e){return r.platform.readInt32Field(e,12)},elementName:function(e){return r.platform.readStringField(e,16)},textContent:function(e){return r.platform.readStringField(e,16)},markupContent:function(e){return r.platform.readStringField(e,16)},attributeName:function(e){return r.platform.readStringField(e,16)},attributeValue:function(e){return r.platform.readStringField(e,24,!0)},attributeEventHandlerId:function(e){return r.platform.readUint64Field(e,8)}};function l(e,t,n){return r.platform.getArrayEntryPtr(e,t,n)}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(c(i)&&c(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(u(i))throw new Error("Not implemented: moving existing logical children");var a=c(t);if(n0;)e(r,0)}var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=u,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return c(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=c,t.permuteLogicalChildren=function(e,t){var n=c(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=u(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):d(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(26),n(17);var r=n(27),o=n(7),i={},a=!1;function s(e,t,n){var o=i[e];o||(o=i[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=s,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");s(n||0,o.toLogicalElement(r,!0),t)},t.getRendererer=function(e){return i[e]},t.renderBatch=function(e,t){var n=i[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),s=r.values(o),u=r.count(o),c=t.referenceFrames(),l=r.values(c),f=t.diffReader,d=0;d0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var l,f;s.attachDebuggerHotkey(e),window.Browser={init:function(){}},l=function(){window.Module=function(e,t,n){var l=this,f=e.bootConfig.resources,d=window.Module||{},p=["DEBUGGING ENABLED"];d.print=function(e){return p.indexOf(e)<0&&console.log(e)},d.printErr=function(e){console.error(e),u.showErrorNotification()},d.preRun=d.preRun||[],d.postRun=d.postRun||[],d.preloadPlugins=[];var m,w,_=e.loadResources(f.assembly,(function(e){return"_framework/"+e}),"assembly"),E=e.loadResources(f.pdb||{},(function(e){return"_framework/"+e}),"pdb"),I=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");if(e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.blat")&&(m=e.loadResource("dotnet.timezones.blat","_framework/dotnet.timezones.blat",e.bootConfig.resources.runtime["dotnet.timezones.blat"],"globalization")),e.bootConfig.icuDataMode!=c.ICUDataMode.Invariant){var C=e.startOptions.applicationCulture||navigator.languages&&navigator.languages[0],N=function(e,t){if(!t||e.icuDataMode==c.ICUDataMode.All)return"icudt.dat";var n=t.split("-")[0];return["en","fr","it","de","es"].includes(n)?"icudt_EFIGS.dat":["zh","ko","ja"].includes(n)?"icudt_CJK.dat":"icudt_no_CJK.dat"}(e.bootConfig,C);w=e.loadResource(N,"_framework/"+N,e.bootConfig.resources.runtime[N],"globalization")}return d.instantiateWasm=function(e,t){return r(l,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,I];case 1:return[4,y(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),d.printErr(r),r;case 4:return t(n),[2]}}))})),[]},d.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],m&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),Module.FS_createPath("/","usr",!0,!0),Module.FS_createPath("/usr/","share",!0,!0),Module.FS_createPath("/usr/share/","zoneinfo",!0,!0),MONO.mono_wasm_load_data_archive(new Uint8Array(n),"/usr/share/zoneinfo/"),removeRunDependency(t),[2]}}))}))}(m),w?function(e){r(this,void 0,void 0,(function(){var t,n,r,i,a;return o(this,(function(o){switch(o.label){case 0:return t="blazor:icudata",addRunDependency(t),[4,e.response];case 1:return n=o.sent(),i=Uint8Array.bind,[4,n.arrayBuffer()];case 2:if(r=new(i.apply(Uint8Array,[void 0,o.sent()])),a=MONO.mono_wasm_load_bytes_into_heap(r),!MONO.mono_wasm_load_icu_data(a))throw new Error("Error loading ICU asset.");return removeRunDependency(t),[2]}}))}))}(w):MONO.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT","1"),_.forEach((function(e){return A(e,b(e.name,".dll"))})),E.forEach((function(e){return A(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){d.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources,a=e.startOptions.applicationCulture||navigator.languages&&navigator.languages[0];if(e.bootConfig.icuDataMode==c.ICUDataMode.Sharded&&n&&n[0]!==a)throw new Error("To change culture dynamically during startup, set true in the application's project file.");if(i){var s=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(l,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(s.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return p(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>f)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*l+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return p(e+(t||0))},readStringField:function(e,t,n){var r,o=p(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return d?void 0===(r=d.stringCache.get(o))&&(r=BINDING.conv_string(o),d.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return g(),d=new w},invokeWhenHeapUnlocked:function(e){d?d.enqueuePostReleaseAction(e):e()}};var h=document.createElement("a");function m(e){return e+12}function v(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function y(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function b(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}function g(){if(d)throw new Error("Assertion failed - heap is currently locked")}var w=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(d!==this)throw new Error("Trying to release a lock which isn't current");for(d=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),g()}},e}()},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&e.invokeMethodAsync("OnSpacerAfterVisible",r.boundingClientRect.bottom-r.intersectionRect.bottom,a,s)}}))}),{root:i,rootMargin:o+"px"});a.observe(t),a.observe(n);var s=c(t),u=c(n);function c(e){var t=new MutationObserver((function(){a.unobserve(e),a.observe(e)}));return t.observe(e,{attributes:!0}),t}r[e._id]={intersectionObserver:a,mutationObserverBefore:s,mutationObserverAfter:u}},dispose:function(e){var t=r[e._id];t&&(t.intersectionObserver.disconnect(),t.mutationObserverBefore.disconnect(),t.mutationObserverAfter.disconnect(),e.dispose(),delete r[e._id])}};var r={}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1].*)$/;function i(e,t){var n=e.currentElement;if(n&&n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r.groups&&r.groups.descriptor;if(!i)return;try{var s=function(e){var t=JSON.parse(e),n=t.type;if("server"!==n&&"webassembly"!==n)throw new Error("Invalid component type '"+n+"'.");return t}(i);switch(t){case"webassembly":return function(e,t,n){var r=e.type,o=e.assembly,i=e.typeName,s=e.parameterDefinitions,u=e.parameterValues,c=e.prerenderId;if("webassembly"!==r)return;if(!o)throw new Error("assembly must be defined when using a descriptor.");if(!i)throw new Error("typeName must be defined when using a descriptor.");if(c){var l=a(c,n);if(!l)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:u&&atob(u),start:t,prerenderId:c,end:l}}return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:u&&atob(u),start:t}}(s,n,e);case"server":return function(e,t,n){var r=e.type,o=e.descriptor,i=e.sequence,s=e.prerenderId;if("server"!==r)return;if(!o)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===i)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(i))throw new Error("Error parsing the sequence '"+i+"' for component '"+JSON.stringify(e)+"'");if(s){var u=a(s,n);if(!u)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,sequence:i,descriptor:o,start:t,prerenderId:s,end:u}}return{type:r,sequence:i,descriptor:o,start:t}}(s,n,e)}}catch(e){throw new Error("Found malformed component comment at "+n.textContent)}}}function a(e,t){for(;t.next()&&t.currentElement;){var n=t.currentElement;if(n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r[1];if(i)return s(i,e),n}}}function s(e,t){var n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error("Invalid end of component comment: '"+e+"'");var r=n.prerenderId;if(!r)throw new Error("End of component comment must have a value for the prerendered property: '"+e+"'");if(r!==t)throw new Error("End of component comment prerendered property must match the start comment prerender id: '"+t+"', '"+r+"'")}var u=function(){function e(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}return e.prototype.next=function(){return this.currentIndex++,this.currentIndex0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var a=n(3);n(25);var s=n(17),u=n(20),c=n(12),l=n(49),f=n(37),d=n(18),p=n(50),h=n(51),m=n(22),v=n(52),y=n(38),b=!1;function g(e){return r(this,void 0,void 0,(function(){var t,n,f,g,_,E,I,C,N,A,S,k=this;return o(this,(function(F){switch(F.label){case 0:if(b)throw new Error("Blazor has already started.");return b=!0,d.setEventDispatcher((function(e,t){c.getRendererer(e.browserRendererId).eventDelegator.getHandler(e.eventHandlerId)&&u.monoPlatform.invokeWhenHeapUnlocked((function(){return a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","DispatchEvent",e,JSON.stringify(t))}))})),window.Blazor._internal.invokeJSFromDotNet=w,t=s.setPlatform(u.monoPlatform),window.Blazor.platform=t,window.Blazor._internal.renderBatch=function(e,t){var n=u.monoPlatform.beginHeapLock();try{c.renderBatch(e,new l.SharedMemoryRenderBatch(t))}finally{n.release()}},n=window.Blazor._internal.navigationManager.getBaseURI,f=window.Blazor._internal.navigationManager.getLocationHref,window.Blazor._internal.navigationManager.getUnmarshalledBaseURI=function(){return BINDING.js_string_to_mono_string(n())},window.Blazor._internal.navigationManager.getUnmarshalledLocationHref=function(){return BINDING.js_string_to_mono_string(f())},window.Blazor._internal.navigationManager.listenForNavigationEvents((function(e,t){return r(k,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return[4,a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChanged",e,t)];case 1:return n.sent(),[2]}}))}))})),g=null==e?void 0:e.environment,_=m.BootConfigResult.initAsync(g),E=y.discoverComponents(document,"webassembly"),I=new v.WebAssemblyComponentAttacher(E),window.Blazor._internal.registeredComponents={getRegisteredComponentsCount:function(){return I.getCount()},getId:function(e){return I.getId(e)},getAssembly:function(e){return BINDING.js_string_to_mono_string(I.getAssembly(e))},getTypeName:function(e){return BINDING.js_string_to_mono_string(I.getTypeName(e))},getParameterDefinitions:function(e){return BINDING.js_string_to_mono_string(I.getParameterDefinitions(e)||"")},getParameterValues:function(e){return BINDING.js_string_to_mono_string(I.getParameterValues(e)||"")}},window.Blazor._internal.attachRootComponentToElement=function(e,t,n){var r=I.resolveRegisteredElement(e);r?c.attachRootComponentToLogicalElement(n,r,t):c.attachRootComponentToElement(e,t,n)},[4,_];case 1:return C=F.sent(),[4,Promise.all([p.WebAssemblyResourceLoader.initAsync(C.bootConfig,e||{}),h.WebAssemblyConfigLoader.initAsync(C)])];case 2:N=i.apply(void 0,[F.sent(),1]),A=N[0],F.label=3;case 3:return F.trys.push([3,5,,6]),[4,t.start(A)];case 4:return F.sent(),[3,6];case 5:throw S=F.sent(),new Error("Failed to start platform. Reason: "+S);case 6:return t.callEntryPoint(A.bootConfig.entryAssembly),[2]}}))}))}function w(e,t,n,r){var o=u.monoPlatform.readStringField(e,0),i=u.monoPlatform.readInt32Field(e,4),s=u.monoPlatform.readStringField(e,8),c=u.monoPlatform.readUint64Field(e,20);if(null!==s){var l=u.monoPlatform.readUint64Field(e,12);if(0!==l)return a.DotNet.jsCallDispatcher.beginInvokeJSFromDotNet(l,o,s,i,c),0;var f=a.DotNet.jsCallDispatcher.invokeJSFromDotNet(o,s,i,c);return null===f?0:BINDING.js_string_to_mono_string(f)}var d=a.DotNet.jsCallDispatcher.findJSFunction(o,c).call(null,t,n,r);switch(i){case a.DotNet.JSCallResultType.Default:return d;case a.DotNet.JSCallResultType.JSObjectReference:return a.DotNet.createJSObjectReference(d).__jsObjectId;default:throw new Error("Invalid JS call result type '"+i+"'.")}}window.Blazor.start=g,f.shouldAutoStart()&&g().catch((function(e){"undefined"!=typeof Module&&Module.printErr?Module.printErr(e):console.error(e)}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(17),o=function(){function e(e){this.batchAddress=e,this.arrayRangeReader=i,this.arrayBuilderSegmentReader=a,this.diffReader=s,this.editReader=u,this.frameReader=c}return e.prototype.updatedComponents=function(){return r.platform.readStructField(this.batchAddress,0)},e.prototype.referenceFrames=function(){return r.platform.readStructField(this.batchAddress,i.structLength)},e.prototype.disposedComponentIds=function(){return r.platform.readStructField(this.batchAddress,2*i.structLength)},e.prototype.disposedEventHandlerIds=function(){return r.platform.readStructField(this.batchAddress,3*i.structLength)},e.prototype.updatedComponentsEntry=function(e,t){return l(e,t,s.structLength)},e.prototype.referenceFramesEntry=function(e,t){return l(e,t,c.structLength)},e.prototype.disposedComponentIdsEntry=function(e,t){var n=l(e,t,4);return r.platform.readInt32Field(n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=l(e,t,8);return r.platform.readUint64Field(n)},e}();t.SharedMemoryRenderBatch=o;var i={structLength:8,values:function(e){return r.platform.readObjectField(e,0)},count:function(e){return r.platform.readInt32Field(e,4)}},a={structLength:12,values:function(e){var t=r.platform.readObjectField(e,0),n=r.platform.getObjectFieldsBaseAddress(t);return r.platform.readObjectField(n,0)},offset:function(e){return r.platform.readInt32Field(e,4)},count:function(e){return r.platform.readInt32Field(e,8)}},s={structLength:4+a.structLength,componentId:function(e){return r.platform.readInt32Field(e,0)},edits:function(e){return r.platform.readStructField(e,4)},editsEntry:function(e,t){return l(e,t,u.structLength)}},u={structLength:20,editType:function(e){return r.platform.readInt32Field(e,0)},siblingIndex:function(e){return r.platform.readInt32Field(e,4)},newTreeIndex:function(e){return r.platform.readInt32Field(e,8)},moveToSiblingIndex:function(e){return r.platform.readInt32Field(e,8)},removedAttributeName:function(e){return r.platform.readStringField(e,16)}},c={structLength:36,frameType:function(e){return r.platform.readInt16Field(e,4)},subtreeLength:function(e){return r.platform.readInt32Field(e,8)},elementReferenceCaptureId:function(e){return r.platform.readStringField(e,16)},componentId:function(e){return r.platform.readInt32Field(e,12)},elementName:function(e){return r.platform.readStringField(e,16)},textContent:function(e){return r.platform.readStringField(e,16)},markupContent:function(e){return r.platform.readStringField(e,16)},attributeName:function(e){return r.platform.readStringField(e,16)},attributeValue:function(e){return r.platform.readStringField(e,24,!0)},attributeEventHandlerId:function(e){return r.platform.readUint64Field(e,8)}};function l(e,t,n){return r.platform.getArrayEntryPtr(e,t,n)}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1] | undefined; + if (hasDebuggingEnabled()) { + const pdbs = resourceLoader.bootConfig.resources.pdb; + const pdbsToLoad = assembliesMarkedAsLazy.map(a => changeExtension(a, '.pdb')) + if (pdbs) { + pdbPromises = Promise.all(pdbsToLoad + .map(pdb => lazyAssemblies.hasOwnProperty(pdb) ? resourceLoader.loadResource(pdb, `_framework/${pdb}`, lazyAssemblies[pdb], 'pdb') : null) + .map(async resource => resource ? (await resource.response).arrayBuffer() : null)); + } + } + const resourcePromises = Promise.all(assembliesMarkedAsLazy .map(assembly => resourceLoader.loadResource(assembly, `_framework/${assembly}`, lazyAssemblies[assembly], 'assembly')) .map(async resource => (await resource.response).arrayBuffer())); return BINDING.js_to_mono_obj( - resourcePromises.then(resourcesToLoad => { + Promise.all([resourcePromises, pdbPromises]).then(values => { + const resourcesToLoad = values[0]; + const pdbsToLoad = values[1]; if (resourcesToLoad.length) { window['Blazor']._internal.readLazyAssemblies = () => { - const array = BINDING.mono_obj_array_new(resourcesToLoad.length); - for (var i = 0; i < resourcesToLoad.length; i++) { - BINDING.mono_obj_array_set(array, i, BINDING.js_typed_array_to_array(new Uint8Array(resourcesToLoad[i]))); + const assemblyBytes = BINDING.mono_obj_array_new(resourcesToLoad.length); + for (let i = 0; i < resourcesToLoad.length; i++) { + const assembly = resourcesToLoad[i] as ArrayBuffer; + BINDING.mono_obj_array_set(assemblyBytes, i, BINDING.js_typed_array_to_array(new Uint8Array(assembly))); } - return array; + return assemblyBytes; + }; + + window['Blazor']._internal.readLazyPdbs = () => { + const pdbBytes = BINDING.mono_obj_array_new(resourcesToLoad.length); + for (let i = 0; i < resourcesToLoad.length; i++) { + const pdb = pdbsToLoad && pdbsToLoad[i] ? new Uint8Array(pdbsToLoad[i] as ArrayBufferLike) : new Uint8Array(); + BINDING.mono_obj_array_set(pdbBytes, i, BINDING.js_typed_array_to_array(pdb)); + } + return pdbBytes; }; } diff --git a/src/Components/WebAssembly/Sdk/src/GenerateBlazorWebAssemblyBootJson.cs b/src/Components/WebAssembly/Sdk/src/GenerateBlazorWebAssemblyBootJson.cs index 0aa8ddf803..5bc88610e1 100644 --- a/src/Components/WebAssembly/Sdk/src/GenerateBlazorWebAssemblyBootJson.cs +++ b/src/Components/WebAssembly/Sdk/src/GenerateBlazorWebAssemblyBootJson.cs @@ -123,7 +123,12 @@ namespace Microsoft.NET.Sdk.BlazorWebAssembly else if (string.Equals(extension, ".pdb", StringComparison.OrdinalIgnoreCase)) { resourceData.pdb ??= new ResourceHashesByNameDictionary(); - resourceList = resourceData.pdb; + if (IsLazyLoadedAssembly($"{fileName}.dll")) + { + resourceList = resourceData.lazyAssembly; + } else { + resourceList = resourceData.pdb; + } } else if (string.Equals(extension, ".dll", StringComparison.OrdinalIgnoreCase)) { diff --git a/src/Components/WebAssembly/Server/src/DebugProxyLauncher.cs b/src/Components/WebAssembly/Server/src/DebugProxyLauncher.cs index 2b294ac8a6..58f6b26025 100644 --- a/src/Components/WebAssembly/Server/src/DebugProxyLauncher.cs +++ b/src/Components/WebAssembly/Server/src/DebugProxyLauncher.cs @@ -51,7 +51,7 @@ namespace Microsoft.AspNetCore.Builder var processStartInfo = new ProcessStartInfo { FileName = muxerPath, - Arguments = $"exec \"{executablePath}\" --owner-pid {ownerPid} --DevToolsUrl {devToolsHost}", + Arguments = $"exec \"{executablePath}\" --OwnerPid {ownerPid} --DevToolsUrl {devToolsHost}", UseShellExecute = false, RedirectStandardOutput = true, }; diff --git a/src/Components/WebAssembly/WebAssembly/src/Services/LazyAssemblyLoader.cs b/src/Components/WebAssembly/WebAssembly/src/Services/LazyAssemblyLoader.cs index 9fc3cde388..73010104f3 100644 --- a/src/Components/WebAssembly/WebAssembly/src/Services/LazyAssemblyLoader.cs +++ b/src/Components/WebAssembly/WebAssembly/src/Services/LazyAssemblyLoader.cs @@ -21,8 +21,9 @@ namespace Microsoft.AspNetCore.Components.WebAssembly.Services /// public sealed class LazyAssemblyLoader { - internal const string GetDynamicAssemblies = "window.Blazor._internal.getLazyAssemblies"; - internal const string ReadDynamicAssemblies = "window.Blazor._internal.readLazyAssemblies"; + internal const string GetLazyAssemblies = "window.Blazor._internal.getLazyAssemblies"; + internal const string ReadLazyAssemblies = "window.Blazor._internal.readLazyAssemblies"; + internal const string ReadLazyPDBs = "window.Blazor._internal.readLazyPdbs"; private readonly IJSRuntime _jsRuntime; private readonly HashSet _loadedAssemblyCache; @@ -81,7 +82,7 @@ namespace Microsoft.AspNetCore.Components.WebAssembly.Services var loadedAssemblies = new List(); var count = (int)await ((IJSUnmarshalledRuntime)_jsRuntime).InvokeUnmarshalled>( - GetDynamicAssemblies, + GetLazyAssemblies, newAssembliesToLoad.ToArray(), null, null); @@ -91,19 +92,29 @@ namespace Microsoft.AspNetCore.Components.WebAssembly.Services return loadedAssemblies; } - var assemblies = ((IJSUnmarshalledRuntime)_jsRuntime).InvokeUnmarshalled( - ReadDynamicAssemblies, + var assemblies = ((IJSUnmarshalledRuntime)_jsRuntime).InvokeUnmarshalled( + ReadLazyAssemblies, null, null, null); - foreach (byte[] assembly in assemblies) + var pdbs = ((IJSUnmarshalledRuntime)_jsRuntime).InvokeUnmarshalled( + ReadLazyPDBs, + null, + null, + null); + + for (int i = 0; i < assemblies.Length; i++) { // The runtime loads assemblies into an isolated context by default. As a result, // assemblies that are loaded via Assembly.Load aren't available in the app's context // AKA the default context. To work around this, we explicitly load the assemblies // into the default app context. - var loadedAssembly = AssemblyLoadContext.Default.LoadFromStream(new MemoryStream(assembly)); + var assembly = assemblies[i]; + var pdb = pdbs[i]; + var loadedAssembly = pdb.Length == 0 ? + AssemblyLoadContext.Default.LoadFromStream(new MemoryStream(assembly)) : + AssemblyLoadContext.Default.LoadFromStream(new MemoryStream(assembly), new MemoryStream(pdb)); loadedAssemblies.Add(loadedAssembly); _loadedAssemblyCache.Add(loadedAssembly.GetName().Name + ".dll"); } diff --git a/src/Components/test/E2ETest/Tests/WebAssemblyLazyLoadTest.cs b/src/Components/test/E2ETest/Tests/WebAssemblyLazyLoadTest.cs index 317bae624b..65d17697e5 100644 --- a/src/Components/test/E2ETest/Tests/WebAssemblyLazyLoadTest.cs +++ b/src/Components/test/E2ETest/Tests/WebAssemblyLazyLoadTest.cs @@ -90,15 +90,16 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests SetUrlViaPushState("/"); var app = Browser.MountTestComponent(); - // Ensure that we haven't requested the lazy loaded assembly + // Ensure that we haven't requested the lazy loaded assembly or its PDB Assert.False(HasLoadedAssembly("LazyTestContentPackage.dll")); + Assert.False(HasLoadedAssembly("LazyTestContentPackage.pdb")); // Navigate to the designated route SetUrlViaPushState("/WithLazyLoadedRoutes"); // Wait for the page to finish loading new WebDriverWait(Browser, TimeSpan.FromSeconds(2)).Until( - driver => driver.FindElement(By.Id("lazy-load-msg")) != null); + driver => driver.FindElement(By.Id("lazy-load-msg")) != null); // Now the assembly has been loaded Assert.True(HasLoadedAssembly("LazyTestContentPackage.dll")); From c0bd50075a17941a1077b8c31b040020ef8796aa Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 22 Sep 2020 17:47:32 +0000 Subject: [PATCH 165/187] [release/5.0-rc2] Update dependencies from dotnet/runtime dotnet/efcore (#26171) [release/5.0-rc2] Update dependencies from dotnet/runtime dotnet/efcore --- eng/Version.Details.xml | 292 ++++++++++++++++++++-------------------- eng/Versions.props | 146 ++++++++++---------- 2 files changed, 219 insertions(+), 219 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 1e24d4e9e2..64e64381bd 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,304 +9,304 @@ --> - + https://github.com/dotnet/efcore - bedede601f059435a8696d113caab37caa6b41ca + ec2e1a4073c077b7805380ee64f619828b871426 - + https://github.com/dotnet/efcore - bedede601f059435a8696d113caab37caa6b41ca + ec2e1a4073c077b7805380ee64f619828b871426 - + https://github.com/dotnet/efcore - bedede601f059435a8696d113caab37caa6b41ca + ec2e1a4073c077b7805380ee64f619828b871426 - + https://github.com/dotnet/efcore - bedede601f059435a8696d113caab37caa6b41ca + ec2e1a4073c077b7805380ee64f619828b871426 - + https://github.com/dotnet/efcore - bedede601f059435a8696d113caab37caa6b41ca + ec2e1a4073c077b7805380ee64f619828b871426 - + https://github.com/dotnet/efcore - bedede601f059435a8696d113caab37caa6b41ca + ec2e1a4073c077b7805380ee64f619828b871426 - + https://github.com/dotnet/efcore - bedede601f059435a8696d113caab37caa6b41ca + ec2e1a4073c077b7805380ee64f619828b871426 - + https://github.com/dotnet/efcore - bedede601f059435a8696d113caab37caa6b41ca + ec2e1a4073c077b7805380ee64f619828b871426 - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc - + https://github.com/dotnet/runtime - ed5190b919b7ee46632db9e6178fda8180322237 + c4c136670f568ffcb73b40d836982825548ed6bc https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 6051267360..e633b9db9c 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,81 +62,81 @@ 3.8.0-3.20458.6 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 - 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.12 + 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.10 - 5.0.0-rc.2.20471.10 - 5.0.0-rc.2.20471.10 - 5.0.0-rc.2.20471.10 - 5.0.0-rc.2.20471.10 - 5.0.0-rc.2.20471.10 - 5.0.0-rc.2.20471.10 - 5.0.0-rc.2.20471.10 + 5.0.0-rc.2.20472.1 + 5.0.0-rc.2.20472.1 + 5.0.0-rc.2.20472.1 + 5.0.0-rc.2.20472.1 + 5.0.0-rc.2.20472.1 + 5.0.0-rc.2.20472.1 + 5.0.0-rc.2.20472.1 + 5.0.0-rc.2.20472.1 5.0.0-beta.20467.6 From 7140f7cae7af45ccf0e3b51ae3f4745c0c890c71 Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Tue, 22 Sep 2020 19:52:16 +0100 Subject: [PATCH 166/187] Virtualize component: method to trigger data refresh (#26177) * E2E test cases for Virtualize data refresh * Expose public RefreshDataAsync API * Optimize: don't instantiate CancellationTokenSource when it won't be used * For in-memory data, refresh automatically on each render cycle * Fix typo --- .../Web/src/Virtualization/Virtualize.cs | 49 +++++- .../test/E2ETest/Tests/VirtualizationTest.cs | 141 +++++++++++++++++- .../test/testassets/BasicTestApp/Index.razor | 7 +- .../VirtualizationDataChanges.razor | 84 +++++++++++ 4 files changed, 271 insertions(+), 10 deletions(-) create mode 100644 src/Components/test/testassets/BasicTestApp/VirtualizationDataChanges.razor diff --git a/src/Components/Web/src/Virtualization/Virtualize.cs b/src/Components/Web/src/Virtualization/Virtualize.cs index 77606d7f3c..02395e5abb 100644 --- a/src/Components/Web/src/Virtualization/Virtualize.cs +++ b/src/Components/Web/src/Virtualization/Virtualize.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.Linq; using System.Threading; using System.Threading.Tasks; @@ -97,6 +98,20 @@ namespace Microsoft.AspNetCore.Components.Web.Virtualization [Parameter] public int OverscanCount { get; set; } = 3; + /// + /// Instructs the component to re-request data from its . + /// This is useful if external data may have changed. There is no need to call this + /// when using . + /// + /// A representing the completion of the operation. + public async Task RefreshDataAsync() + { + // We don't auto-render after this operation because in the typical use case, the + // host component calls this from one of its lifecycle methods, and will naturally + // re-render afterwards anyway. It's not desirable to re-render twice. + await RefreshDataCoreAsync(renderOnSuccess: false); + } + /// protected override void OnParametersSet() { @@ -125,6 +140,14 @@ namespace Microsoft.AspNetCore.Components.Web.Virtualization else if (Items != null) { _itemsProvider = DefaultItemsProvider; + + // When we have a fixed set of in-memory data, it doesn't cost anything to + // re-query it on each cycle, so do that. This means the developer can add/remove + // items in the collection and see the UI update without having to call RefreshDataAsync. + var refreshTask = RefreshDataCoreAsync(renderOnSuccess: false); + + // We know it's synchronous and has its own error handling + Debug.Assert(refreshTask.IsCompletedSuccessfully); } else { @@ -270,7 +293,7 @@ namespace Microsoft.AspNetCore.Components.Web.Virtualization { _itemsBefore = itemsBefore; _visibleItemCapacity = visibleItemCapacity; - var refreshTask = RefreshDataAsync(); + var refreshTask = RefreshDataCoreAsync(renderOnSuccess: true); if (!refreshTask.IsCompleted) { @@ -279,12 +302,25 @@ namespace Microsoft.AspNetCore.Components.Web.Virtualization } } - private async Task RefreshDataAsync() + private async ValueTask RefreshDataCoreAsync(bool renderOnSuccess) { _refreshCts?.Cancel(); - _refreshCts = new CancellationTokenSource(); + CancellationToken cancellationToken; + + if (_itemsProvider == DefaultItemsProvider) + { + // If we're using the DefaultItemsProvider (because the developer supplied a fixed + // Items collection) we know it will complete synchronously, and there's no point + // instantiating a new CancellationTokenSource + _refreshCts = null; + cancellationToken = CancellationToken.None; + } + else + { + _refreshCts = new CancellationTokenSource(); + cancellationToken = _refreshCts.Token; + } - var cancellationToken = _refreshCts.Token; var request = new ItemsProviderRequest(_itemsBefore, _visibleItemCapacity, cancellationToken); try @@ -298,7 +334,10 @@ namespace Microsoft.AspNetCore.Components.Web.Virtualization _loadedItems = result.Items; _loadedItemsStartIndex = request.StartIndex; - StateHasChanged(); + if (renderOnSuccess) + { + StateHasChanged(); + } } } catch (Exception e) diff --git a/src/Components/test/E2ETest/Tests/VirtualizationTest.cs b/src/Components/test/E2ETest/Tests/VirtualizationTest.cs index cb6b71d742..8c15e5b7ba 100644 --- a/src/Components/test/E2ETest/Tests/VirtualizationTest.cs +++ b/src/Components/test/E2ETest/Tests/VirtualizationTest.cs @@ -1,6 +1,7 @@ // 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. +using System.Linq; using BasicTestApp; using Microsoft.AspNetCore.Components.E2ETest.Infrastructure; using Microsoft.AspNetCore.Components.E2ETest.Infrastructure.ServerFixtures; @@ -13,7 +14,7 @@ using Xunit.Abstractions; namespace Microsoft.AspNetCore.Components.E2ETest.Tests { - public class VirtualizationTest : E2ETest.Infrastructure.ServerTestBase> + public class VirtualizationTest : ServerTestBase> { public VirtualizationTest( BrowserFixture browserFixture, @@ -26,12 +27,12 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests protected override void InitializeAsyncCore() { Navigate(ServerPathBase, noReload: _serverFixture.ExecutionMode == ExecutionMode.Client); - Browser.MountTestComponent(); } [Fact] public void AlwaysFillsVisibleCapacity_Sync() { + Browser.MountTestComponent(); var topSpacer = Browser.FindElement(By.Id("sync-container")).FindElement(By.TagName("div")); var expectedInitialSpacerStyle = "height: 0px;"; @@ -61,6 +62,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests [Fact] public void AlwaysFillsVisibleCapacity_Async() { + Browser.MountTestComponent(); var finishLoadingButton = Browser.FindElement(By.Id("finish-loading-button")); // Check that no items or placeholders are visible. @@ -112,6 +114,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests [Fact] public void RerendersWhenItemSizeShrinks_Sync() { + Browser.MountTestComponent(); int initialItemCount = 0; // Wait until items have been rendered. @@ -131,6 +134,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests [Fact] public void RerendersWhenItemSizeShrinks_Async() { + Browser.MountTestComponent(); var finishLoadingButton = Browser.FindElement(By.Id("finish-loading-button")); // Load the initial set of items. @@ -165,6 +169,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests [Fact] public void CancelsOutdatedRefreshes_Async() { + Browser.MountTestComponent(); var cancellationCount = Browser.FindElement(By.Id("cancellation-count")); var finishLoadingButton = Browser.FindElement(By.Id("finish-loading-button")); @@ -191,6 +196,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/24922")] public void CanUseViewportAsContainer() { + Browser.MountTestComponent(); var expectedInitialSpacerStyle = "height: 0px;"; var topSpacer = Browser.FindElement(By.Id("viewport-as-root")).FindElement(By.TagName("div")); @@ -204,5 +210,136 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests // Validate that the top spacer has expanded. Browser.NotEqual(expectedInitialSpacerStyle, () => topSpacer.GetAttribute("style")); } + + [Fact] + public void CanMutateDataInPlace_Sync() + { + Browser.MountTestComponent(); + + // Initial data + var container = Browser.FindElement(By.Id("using-items")); + Browser.Collection(() => GetPeopleNames(container), + name => Assert.Equal("Person 1", name), + name => Assert.Equal("Person 2", name), + name => Assert.Equal("Person 3", name)); + + // Mutate one of them + var itemToMutate = container.FindElements(By.ClassName("person"))[1]; + itemToMutate.FindElement(By.TagName("button")).Click(); + + // See changes + Browser.Collection(() => GetPeopleNames(container), + name => Assert.Equal("Person 1", name), + name => Assert.Equal("Person 2 MUTATED", name), + name => Assert.Equal("Person 3", name)); + } + + [Fact] + public void CanMutateDataInPlace_Async() + { + Browser.MountTestComponent(); + + // Initial data + var container = Browser.FindElement(By.Id("using-itemsprovider")); + Browser.Collection(() => GetPeopleNames(container), + name => Assert.Equal("Person 1", name), + name => Assert.Equal("Person 2", name), + name => Assert.Equal("Person 3", name)); + + // Mutate one of them + var itemToMutate = container.FindElements(By.ClassName("person"))[1]; + itemToMutate.FindElement(By.TagName("button")).Click(); + + // See changes + Browser.Collection(() => GetPeopleNames(container), + name => Assert.Equal("Person 1", name), + name => Assert.Equal("Person 2 MUTATED", name), + name => Assert.Equal("Person 3", name)); + } + + [Fact] + public void CanChangeDataCount_Sync() + { + Browser.MountTestComponent(); + + // Initial data + var container = Browser.FindElement(By.Id("using-items")); + Browser.Collection(() => GetPeopleNames(container), + name => Assert.Equal("Person 1", name), + name => Assert.Equal("Person 2", name), + name => Assert.Equal("Person 3", name)); + + // Add another item + Browser.FindElement(By.Id("add-person-to-fixed-list")).Click(); + + // See changes + Browser.Collection(() => GetPeopleNames(container), + name => Assert.Equal("Person 1", name), + name => Assert.Equal("Person 2", name), + name => Assert.Equal("Person 3", name), + name => Assert.Equal("Person 4", name)); + } + + [Fact] + public void CanChangeDataCount_Async() + { + Browser.MountTestComponent(); + + // Initial data + var container = Browser.FindElement(By.Id("using-itemsprovider")); + Browser.Collection(() => GetPeopleNames(container), + name => Assert.Equal("Person 1", name), + name => Assert.Equal("Person 2", name), + name => Assert.Equal("Person 3", name)); + + // Add another item + Browser.FindElement(By.Id("add-person-to-itemsprovider")).Click(); + + // Initially this has no effect because we don't re-query the provider until told to do so + Browser.Collection(() => GetPeopleNames(container), + name => Assert.Equal("Person 1", name), + name => Assert.Equal("Person 2", name), + name => Assert.Equal("Person 3", name)); + + // Request refresh + Browser.FindElement(By.Id("refresh-itemsprovider")).Click(); + + // See changes + Browser.Collection(() => GetPeopleNames(container), + name => Assert.Equal("Person 1", name), + name => Assert.Equal("Person 2", name), + name => Assert.Equal("Person 3", name), + name => Assert.Equal("Person 4", name)); + } + + [Fact] + public void CanRefreshItemsProviderResultsInPlace() + { + Browser.MountTestComponent(); + + // Mutate the data + var container = Browser.FindElement(By.Id("using-itemsprovider")); + var itemToMutate = container.FindElements(By.ClassName("person"))[1]; + itemToMutate.FindElement(By.TagName("button")).Click(); + + // Verify the mutation was applied + Browser.Collection(() => GetPeopleNames(container), + name => Assert.Equal("Person 1", name), + name => Assert.Equal("Person 2 MUTATED", name), + name => Assert.Equal("Person 3", name)); + + // Refresh and verify the mutation was reverted + Browser.FindElement(By.Id("refresh-itemsprovider")).Click(); + Browser.Collection(() => GetPeopleNames(container), + name => Assert.Equal("Person 1", name), + name => Assert.Equal("Person 2", name), + name => Assert.Equal("Person 3", name)); + } + + private string[] GetPeopleNames(IWebElement container) + { + var peopleElements = container.FindElements(By.CssSelector(".person span")); + return peopleElements.Select(element => element.Text).ToArray(); + } } } diff --git a/src/Components/test/testassets/BasicTestApp/Index.razor b/src/Components/test/testassets/BasicTestApp/Index.razor index 99379de0bd..23d3098bc3 100644 --- a/src/Components/test/testassets/BasicTestApp/Index.razor +++ b/src/Components/test/testassets/BasicTestApp/Index.razor @@ -13,6 +13,7 @@ + @@ -80,16 +81,16 @@ + + - - - + @System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription diff --git a/src/Components/test/testassets/BasicTestApp/VirtualizationDataChanges.razor b/src/Components/test/testassets/BasicTestApp/VirtualizationDataChanges.razor new file mode 100644 index 0000000000..0c409fe2e4 --- /dev/null +++ b/src/Components/test/testassets/BasicTestApp/VirtualizationDataChanges.razor @@ -0,0 +1,84 @@ +

Virtualization data changes

+ +

This scenario shows how the data behind a Virtualize component can change.

+ + + +

Using Items parameter

+ +
+ + @* + Note that for best performance, you really should use @key on the top-level elements within the . + This test case doesn't do so only as a way of verifying it's not strictly required (though it is recommended). + *@ +
+ @person.Name + +
+
+
+ +

Using ItemsProvider parameter

+

+ + +

+ +
+ + @* + Note that for best performance, you really should use @key on the top-level elements within the . + This test case doesn't do so only as a way of verifying it's not strictly required (though it is recommended). + *@ +
+ @person.Name + +
+
+
+ +@code { + Virtualize asyncVirtualize; + List fixedPeople = Enumerable.Range(1, 3).Select(GeneratePerson).ToList(); + int numPeopleInItemsProvider = 3; + + void AddPersonToFixedList() + { + // When using Items (not ItemsProvider), the Virtualize component re-queries + // the data on every refresh cycle without requiring you to call RefreshDataAsync. + // This is because there's no cost involved in doing so. Thus, the following + // line is enough to make the UI change on its own. + fixedPeople.Add(GeneratePerson(fixedPeople.Count + 1)); + } + + void AddPersonToItemsProvider() + { + // On its own, this isn't going to make the UI change, because it doesn't know + // to re-query the underlying items provider until you call RefreshDataAsync. + numPeopleInItemsProvider++; + } + + async ValueTask> GetPeopleAsync(ItemsProviderRequest request) + { + await Task.Delay(500); + + var lastIndexExcl = Math.Min(request.StartIndex + request.Count, numPeopleInItemsProvider); + return new ItemsProviderResult( + Enumerable.Range(1 + request.StartIndex, lastIndexExcl - request.StartIndex).Select(GeneratePerson).ToList(), + numPeopleInItemsProvider); + } + + class Person + { + public string Name { get; set; } + + public void Mutate() + { + Name += " MUTATED"; + } + } + + static Person GeneratePerson(int index) + => new Person { Name = $"Person {index}" }; +} From c34d1dceace93a130a2045340618767f0986affe Mon Sep 17 00:00:00 2001 From: William Godbe Date: Tue, 22 Sep 2020 12:54:28 -0700 Subject: [PATCH 167/187] Include all .xml files in targeting pack (#26147) * Include all .xml files in targeting pack * Better syntax * Remove distinct --- src/Framework/App.Ref/src/Microsoft.AspNetCore.App.Ref.csproj | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Framework/App.Ref/src/Microsoft.AspNetCore.App.Ref.csproj b/src/Framework/App.Ref/src/Microsoft.AspNetCore.App.Ref.csproj index 184778716a..478becd01e 100644 --- a/src/Framework/App.Ref/src/Microsoft.AspNetCore.App.Ref.csproj +++ b/src/Framework/App.Ref/src/Microsoft.AspNetCore.App.Ref.csproj @@ -143,6 +143,10 @@ This package is an internal implementation of the .NET Core SDK and is not meant + + From cd4297ae800a1ac91450c7e81c92d0b7ab8aaaf0 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 22 Sep 2020 20:34:53 +0000 Subject: [PATCH 168/187] Update dependencies from https://github.com/dotnet/runtime build 20200922.3 (#26190) [release/5.0-rc2] Update dependencies from dotnet/runtime --- eng/Version.Details.xml | 260 ++++++++++++++++++++-------------------- eng/Versions.props | 130 ++++++++++---------- 2 files changed, 195 insertions(+), 195 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 64e64381bd..4fb4d52177 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -41,272 +41,272 @@ https://github.com/dotnet/efcore ec2e1a4073c077b7805380ee64f619828b871426
- + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b - + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b
- + https://github.com/dotnet/runtime - c4c136670f568ffcb73b40d836982825548ed6bc + 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index e633b9db9c..fdda5f8bdc 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,72 +62,72 @@ 3.8.0-3.20458.6 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 - 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20471.13 + 5.0.0-rc.2.20472.3 5.0.0-rc.2.20472.1 5.0.0-rc.2.20472.1 From 40cbbfbcb967bb4477f72d122bf881453e6908d2 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 23 Sep 2020 00:23:11 +0000 Subject: [PATCH 169/187] [release/5.0-rc2] Update dependencies from dotnet/efcore (#26200) [release/5.0-rc2] Update dependencies from dotnet/efcore --- eng/Version.Details.xml | 32 ++++++++++++++++---------------- eng/Versions.props | 16 ++++++++-------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 4fb4d52177..90d035811c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,37 +9,37 @@ --> - + https://github.com/dotnet/efcore - ec2e1a4073c077b7805380ee64f619828b871426 + 89f0e61e1776505fcced79ccd83a1831305501d4 - + https://github.com/dotnet/efcore - ec2e1a4073c077b7805380ee64f619828b871426 + 89f0e61e1776505fcced79ccd83a1831305501d4 - + https://github.com/dotnet/efcore - ec2e1a4073c077b7805380ee64f619828b871426 + 89f0e61e1776505fcced79ccd83a1831305501d4 - + https://github.com/dotnet/efcore - ec2e1a4073c077b7805380ee64f619828b871426 + 89f0e61e1776505fcced79ccd83a1831305501d4 - + https://github.com/dotnet/efcore - ec2e1a4073c077b7805380ee64f619828b871426 + 89f0e61e1776505fcced79ccd83a1831305501d4 - + https://github.com/dotnet/efcore - ec2e1a4073c077b7805380ee64f619828b871426 + 89f0e61e1776505fcced79ccd83a1831305501d4 - + https://github.com/dotnet/efcore - ec2e1a4073c077b7805380ee64f619828b871426 + 89f0e61e1776505fcced79ccd83a1831305501d4 - + https://github.com/dotnet/efcore - ec2e1a4073c077b7805380ee64f619828b871426 + 89f0e61e1776505fcced79ccd83a1831305501d4 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index fdda5f8bdc..c23d47c9cc 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -129,14 +129,14 @@ 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.1 - 5.0.0-rc.2.20472.1 - 5.0.0-rc.2.20472.1 - 5.0.0-rc.2.20472.1 - 5.0.0-rc.2.20472.1 - 5.0.0-rc.2.20472.1 - 5.0.0-rc.2.20472.1 - 5.0.0-rc.2.20472.1 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 5.0.0-beta.20467.6 From 7caa0d43d18add14b91257d5d730d2fad74c6da6 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 23 Sep 2020 02:25:38 +0000 Subject: [PATCH 170/187] [release/5.0-rc2] Update dependencies from dotnet/runtime dotnet/efcore (#26208) [release/5.0-rc2] Update dependencies from dotnet/runtime dotnet/efcore --- eng/Version.Details.xml | 292 ++++++++++++++++++++-------------------- eng/Versions.props | 146 ++++++++++---------- 2 files changed, 219 insertions(+), 219 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 90d035811c..ab54358036 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,304 +9,304 @@ --> - + https://github.com/dotnet/efcore - 89f0e61e1776505fcced79ccd83a1831305501d4 + 30328a2bc454e320f3858c745e35268b7586ded6 - + https://github.com/dotnet/efcore - 89f0e61e1776505fcced79ccd83a1831305501d4 + 30328a2bc454e320f3858c745e35268b7586ded6 - + https://github.com/dotnet/efcore - 89f0e61e1776505fcced79ccd83a1831305501d4 + 30328a2bc454e320f3858c745e35268b7586ded6 - + https://github.com/dotnet/efcore - 89f0e61e1776505fcced79ccd83a1831305501d4 + 30328a2bc454e320f3858c745e35268b7586ded6 - + https://github.com/dotnet/efcore - 89f0e61e1776505fcced79ccd83a1831305501d4 + 30328a2bc454e320f3858c745e35268b7586ded6 - + https://github.com/dotnet/efcore - 89f0e61e1776505fcced79ccd83a1831305501d4 + 30328a2bc454e320f3858c745e35268b7586ded6 - + https://github.com/dotnet/efcore - 89f0e61e1776505fcced79ccd83a1831305501d4 + 30328a2bc454e320f3858c745e35268b7586ded6 - + https://github.com/dotnet/efcore - 89f0e61e1776505fcced79ccd83a1831305501d4 + 30328a2bc454e320f3858c745e35268b7586ded6 - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc - + https://github.com/dotnet/runtime - 27fd1ca99f4322dcc89e2b91f72c4f1b9ee2994b + 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index c23d47c9cc..e7586f87c8 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,81 +62,81 @@ 3.8.0-3.20458.6 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 - 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.3 + 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 5.0.0-beta.20467.6 From da3f97b0ad76c4d95c661e51c496fa214c41e824 Mon Sep 17 00:00:00 2001 From: Pranav K Date: Tue, 22 Sep 2020 22:02:49 -0700 Subject: [PATCH 171/187] Fix client validation for record types (#26159) * Fix client validation for record types Server validation for record types uses metadata from parameters when validating record type properties. However client validation does not use the parameter to harvest client validation attributes. In the absence of this change, validation on parameters would require server round trips which is unexcepted and not at parity with validation applied to properties on regular classes or record types. Validation experience with record types is subpar and requires server round trips. No. This feature is new to 5.0. Low. The change is isolated to record types and does not affect other code paths. We have unit and functional test coverage to verify this change. * Correctly dispose app after use --- .../src/ModelBinding/ModelMetadata.cs | 23 +++++++- .../Validation/ClientValidatorCache.cs | 14 ++++- .../Validation/ClientValidatorCacheTest.cs | 54 ++++++++++++++++++- .../Mvc.FunctionalTests/HtmlGenerationTest.cs | 32 ++++++++++- .../HtmlGeneration_CustomerController.cs | 8 ++- .../Models/CustomerRecord.cs | 8 ++- .../Views/Shared/CustomerWithRecords.cshtml | 7 ++- .../dotnet-watch/test/BrowserLaunchTests.cs | 7 ++- 8 files changed, 141 insertions(+), 12 deletions(-) diff --git a/src/Mvc/Mvc.Abstractions/src/ModelBinding/ModelMetadata.cs b/src/Mvc/Mvc.Abstractions/src/ModelBinding/ModelMetadata.cs index d27f38d104..a693accb8b 100644 --- a/src/Mvc/Mvc.Abstractions/src/ModelBinding/ModelMetadata.cs +++ b/src/Mvc/Mvc.Abstractions/src/ModelBinding/ModelMetadata.cs @@ -31,6 +31,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding private int? _hashCode; private IReadOnlyList? _boundProperties; private IReadOnlyDictionary? _parameterMapping; + private IReadOnlyDictionary? _boundConstructorPropertyMapping; private Exception? _recordTypeValidatorsOnPropertiesError; private bool _recordTypeConstructorDetailsCalculated; @@ -153,6 +154,21 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding } } + /// + /// A mapping from properties to their corresponding constructor parameter on a record type. + /// This is the inverse mapping of . + /// + internal IReadOnlyDictionary BoundConstructorPropertyMapping + { + get + { + Debug.Assert(BoundConstructor != null, "This API can be only called for types with bound constructors."); + CalculateRecordTypeConstructorDetails(); + + return _boundConstructorPropertyMapping; + } + } + /// /// Gets instance for a constructor of a record type that is used during binding and validation. /// @@ -492,18 +508,19 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding } } - [MemberNotNull(nameof(_parameterMapping))] + [MemberNotNull(nameof(_parameterMapping), nameof(_boundConstructorPropertyMapping))] private void CalculateRecordTypeConstructorDetails() { if (_recordTypeConstructorDetailsCalculated) { Debug.Assert(_parameterMapping != null); + Debug.Assert(_boundConstructorPropertyMapping != null); return; } - var boundParameters = BoundConstructor!.BoundConstructorParameters!; var parameterMapping = new Dictionary(); + var propertyMapping = new Dictionary(); foreach (var parameter in boundParameters) { @@ -514,6 +531,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding if (property != null) { parameterMapping[parameter] = property; + propertyMapping[property] = parameter; if (property.PropertyHasValidators) { @@ -529,6 +547,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding _recordTypeConstructorDetailsCalculated = true; _parameterMapping = parameterMapping; + _boundConstructorPropertyMapping = propertyMapping; } /// diff --git a/src/Mvc/Mvc.Core/src/ModelBinding/Validation/ClientValidatorCache.cs b/src/Mvc/Mvc.Core/src/ModelBinding/Validation/ClientValidatorCache.cs index 2697daec71..41faf4d8a3 100644 --- a/src/Mvc/Mvc.Core/src/ModelBinding/Validation/ClientValidatorCache.cs +++ b/src/Mvc/Mvc.Core/src/ModelBinding/Validation/ClientValidatorCache.cs @@ -1,10 +1,11 @@ -// 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. using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Diagnostics; +using Microsoft.AspNetCore.Mvc.ModelBinding.Metadata; namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation { @@ -14,6 +15,15 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation public IReadOnlyList GetValidators(ModelMetadata metadata, IClientModelValidatorProvider validatorProvider) { + if (metadata.MetadataKind == ModelMetadataKind.Property && + metadata.ContainerMetadata?.BoundConstructor != null && + metadata.ContainerMetadata.BoundConstructorPropertyMapping.TryGetValue(metadata, out var parameter)) + { + // "metadata" typically points to properties. When working with record types, we want to read validation details from the + // constructor parameter instead. So let's switch it out. + metadata = parameter; + } + if (_cacheEntries.TryGetValue(metadata, out var entry)) { return GetValidatorsFromEntry(entry, metadata, validatorProvider); @@ -107,7 +117,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation var validators = new IClientModelValidator[count]; var clientValidatorIndex = 0; - for (int i = 0; i < items.Count; i++) + for (var i = 0; i < items.Count; i++) { var validator = items[i].Validator; if (validator != null) diff --git a/src/Mvc/Mvc.Core/test/ModelBinding/Validation/ClientValidatorCacheTest.cs b/src/Mvc/Mvc.Core/test/ModelBinding/Validation/ClientValidatorCacheTest.cs index bb9c6f5c0c..7d4a8aeb38 100644 --- a/src/Mvc/Mvc.Core/test/ModelBinding/Validation/ClientValidatorCacheTest.cs +++ b/src/Mvc/Mvc.Core/test/ModelBinding/Validation/ClientValidatorCacheTest.cs @@ -1,4 +1,4 @@ -// 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. using System.ComponentModel.DataAnnotations; @@ -64,6 +64,47 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation Assert.NotSame(validator2, Assert.Single(validators2.OfType())); // not cached } + [Fact] + public void GetValidators_ReadsValidatorsFromCorrespondingRecordTypeParameter() + { + // Arrange + var cache = new ClientValidatorCache(); + var modelMetadataProvider = new TestModelMetadataProvider(); + var metadata = modelMetadataProvider.GetMetadataForType(typeof(TestRecordType)); + var property = metadata.Properties[nameof(TestRecordType.Property1)]; + var parameter = metadata.BoundConstructor.BoundConstructorParameters.First(f => f.Name == nameof(TestRecordType.Property1)); + var validatorProvider = new ProviderWithNonReusableValidators(); + + // Act + var validators = cache.GetValidators(property, validatorProvider); + + // Assert + var validator1 = Assert.Single(validators.OfType()); + var validator2 = Assert.Single(validators.OfType()); + Assert.Contains(validator1.Attribute, parameter.ValidatorMetadata); // Copied by provider + Assert.Contains(validator2.Attribute, parameter.ValidatorMetadata); // Copied by provider + } + + [Fact] + public void GetValidators_ReadsValidatorsFromProperty_IfRecordTypeDoesNotHaveCorrespondingParameter() + { + // Arrange + var cache = new ClientValidatorCache(); + var modelMetadataProvider = new TestModelMetadataProvider(); + var metadata = modelMetadataProvider.GetMetadataForType(typeof(TestRecordTypeWithProperty)); + var property = metadata.Properties[nameof(TestRecordTypeWithProperty.Property2)]; + var validatorProvider = new ProviderWithNonReusableValidators(); + + // Act + var validators = cache.GetValidators(property, validatorProvider); + + // Assert + var validator1 = Assert.Single(validators.OfType()); + var validator2 = Assert.Single(validators.OfType()); + Assert.Contains(validator1.Attribute, property.ValidatorMetadata); // Copied by provider + Assert.Contains(validator2.Attribute, property.ValidatorMetadata); // Copied by provider + } + private class TypeWithProperty { [Required] @@ -71,6 +112,15 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation public string Property1 { get; set; } } + private record TestRecordType([Required][StringLength(10)] string Property1); + + private record TestRecordTypeWithProperty([Required][StringLength(10)] string Property1) + { + [Required] + [StringLength(10)] + public string Property2 { get; set; } + } + private class ProviderWithNonReusableValidators : IClientModelValidatorProvider { public void CreateValidators(ClientValidatorProviderContext context) @@ -101,4 +151,4 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation } } } -} \ No newline at end of file +} diff --git a/src/Mvc/test/Mvc.FunctionalTests/HtmlGenerationTest.cs b/src/Mvc/test/Mvc.FunctionalTests/HtmlGenerationTest.cs index 98416f442a..dfaaa2fb5f 100644 --- a/src/Mvc/test/Mvc.FunctionalTests/HtmlGenerationTest.cs +++ b/src/Mvc/test/Mvc.FunctionalTests/HtmlGenerationTest.cs @@ -299,6 +299,32 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests #endif } + [Fact] + public async Task ClientValidators_AreGeneratedDuringInitialRender() + { + // Arrange + var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Customer/HtmlGeneration_Customer/CustomerWithRecords"); + + // Act + var response = await Client.SendAsync(request); + + // Assert + var document = await response.GetHtmlDocumentAsync(); + + var numberInput = document.RequiredQuerySelector("input[id=Number]"); + Assert.Equal("true", numberInput.GetAttribute("data-val")); + Assert.Equal("The field Number must be between 1 and 100.", numberInput.GetAttribute("data-val-range")); + Assert.Equal("The Number field is required.", numberInput.GetAttribute("data-val-required")); + + var passwordInput = document.RequiredQuerySelector("input[id=Password]"); + Assert.Equal("true", passwordInput.GetAttribute("data-val")); + Assert.Equal("The Password field is required.", passwordInput.GetAttribute("data-val-required")); + + var addressInput = document.RequiredQuerySelector("input[id=Address]"); + Assert.Equal("true", addressInput.GetAttribute("data-val")); + Assert.Equal("The Address field is required.", addressInput.GetAttribute("data-val-required")); + } + [Fact] public async Task ValidationTagHelpers_UsingRecords() { @@ -310,7 +336,8 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests new KeyValuePair("Name", string.Empty), new KeyValuePair("Email", string.Empty), new KeyValuePair("PhoneNumber", string.Empty), - new KeyValuePair("Password", string.Empty) + new KeyValuePair("Password", string.Empty), + new KeyValuePair("Address", string.Empty), }; request.Content = new FormUrlEncodedContent(nameValueCollection); @@ -331,6 +358,9 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests validation = document.QuerySelector("span[data-valmsg-for=Password]"); Assert.Equal("The Password field is required.", validation.TextContent); + + validation = document.QuerySelector("span[data-valmsg-for=Address]"); + Assert.Equal("The Address field is required.", validation.TextContent); } [Fact] diff --git a/src/Mvc/test/WebSites/HtmlGenerationWebSite/Areas/Customer/Controllers/HtmlGeneration_CustomerController.cs b/src/Mvc/test/WebSites/HtmlGenerationWebSite/Areas/Customer/Controllers/HtmlGeneration_CustomerController.cs index e79741b381..b1d021a62a 100644 --- a/src/Mvc/test/WebSites/HtmlGenerationWebSite/Areas/Customer/Controllers/HtmlGeneration_CustomerController.cs +++ b/src/Mvc/test/WebSites/HtmlGenerationWebSite/Areas/Customer/Controllers/HtmlGeneration_CustomerController.cs @@ -13,9 +13,15 @@ namespace HtmlGenerationWebSite.Areas.Customer.Controllers return View("Customer"); } + [HttpGet] + public IActionResult CustomerWithRecords() + { + return View("CustomerWithRecords"); + } + public IActionResult CustomerWithRecords(Models.CustomerRecord customer) { return View("CustomerWithRecords"); } } -} \ No newline at end of file +} diff --git a/src/Mvc/test/WebSites/HtmlGenerationWebSite/Models/CustomerRecord.cs b/src/Mvc/test/WebSites/HtmlGenerationWebSite/Models/CustomerRecord.cs index 3e2c6df9e9..d131f08484 100644 --- a/src/Mvc/test/WebSites/HtmlGenerationWebSite/Models/CustomerRecord.cs +++ b/src/Mvc/test/WebSites/HtmlGenerationWebSite/Models/CustomerRecord.cs @@ -25,5 +25,9 @@ namespace HtmlGenerationWebSite.Models string Email, string Key - ); -} \ No newline at end of file + ) + { + [Required] + public string Address { get; set; } + } +} diff --git a/src/Mvc/test/WebSites/HtmlGenerationWebSite/Views/Shared/CustomerWithRecords.cshtml b/src/Mvc/test/WebSites/HtmlGenerationWebSite/Views/Shared/CustomerWithRecords.cshtml index 13dddfc081..1edd936847 100644 --- a/src/Mvc/test/WebSites/HtmlGenerationWebSite/Views/Shared/CustomerWithRecords.cshtml +++ b/src/Mvc/test/WebSites/HtmlGenerationWebSite/Views/Shared/CustomerWithRecords.cshtml @@ -37,10 +37,15 @@ Male Female + +
+ + +
- \ No newline at end of file + diff --git a/src/Tools/dotnet-watch/test/BrowserLaunchTests.cs b/src/Tools/dotnet-watch/test/BrowserLaunchTests.cs index 77e9a65da6..aa13d6de60 100644 --- a/src/Tools/dotnet-watch/test/BrowserLaunchTests.cs +++ b/src/Tools/dotnet-watch/test/BrowserLaunchTests.cs @@ -9,7 +9,7 @@ using Xunit.Abstractions; namespace Microsoft.DotNet.Watcher.Tools.FunctionalTests { - public class BrowserLaunchTests + public class BrowserLaunchTests : IDisposable { private readonly WatchableApp _app; @@ -64,5 +64,10 @@ namespace Microsoft.DotNet.Watcher.Tools.FunctionalTests // Verify we launched the browser. await _app.Process.GetOutputLineStartsWithAsync(launchBrowserMessage, TimeSpan.FromMinutes(2)); } + + public void Dispose() + { + _app.Dispose(); + } } } From de1bf0abe47f51427a0693db32f206609d407910 Mon Sep 17 00:00:00 2001 From: Pranav K Date: Wed, 23 Sep 2020 09:00:38 -0700 Subject: [PATCH 172/187] Detect culture change in .NET (#26192) * Detect culture change in .NET With ICU sharding enabled, blazor wasm attempts to detect if the application culture was changed by the application code as part of Program.MainAsync and tell them they need to opt out of sharding. Prior to this change, Blazor compared the .NET culture string with a JS representation for language. With iOS 14, the two culture strings differ in casing which prevents the use of any Blazor WASM app the latest version installed. As part of this change, the comparison is performed entirely in .NET which avoids relying on the JS representation. * Fixups --- .../Web.JS/dist/Release/blazor.server.js | 4 +- .../Web.JS/dist/Release/blazor.webassembly.js | 2 +- .../Web.JS/src/Platform/Mono/MonoPlatform.ts | 15 ++++--- .../src/Hosting/EntrypointInvoker.cs | 3 ++ ...oader.cs => WebAssemblyCultureProvider.cs} | 41 +++++++++++++++++-- .../src/Hosting/WebAssemblyHost.cs | 6 ++- ...t.cs => WebAssemblyCultureProviderTest.cs} | 36 +++++++++++++--- .../test/Hosting/WebAssemblyHostTest.cs | 11 ++--- .../GlobalizationWasmApp.csproj | 1 - .../GlobalizationWasmApp/Program.cs | 6 ++- 10 files changed, 99 insertions(+), 26 deletions(-) rename src/Components/WebAssembly/WebAssembly/src/Hosting/{SatelliteResourcesLoader.cs => WebAssemblyCultureProvider.cs} (58%) rename src/Components/WebAssembly/WebAssembly/test/Hosting/{SatelliteResourcesLoaderTest.cs => WebAssemblyCultureProviderTest.cs} (59%) diff --git a/src/Components/Web.JS/dist/Release/blazor.server.js b/src/Components/Web.JS/dist/Release/blazor.server.js index 1ba949909c..0e8d01b8e6 100644 --- a/src/Components/Web.JS/dist/Release/blazor.server.js +++ b/src/Components/Web.JS/dist/Release/blazor.server.js @@ -1,11 +1,11 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=53)}([function(e,t,n){"use strict";var r;n.d(t,"a",(function(){return r})),function(e){e[e.Trace=0]="Trace",e[e.Debug=1]="Debug",e[e.Information=2]="Information",e[e.Warning=3]="Warning",e[e.Error=4]="Error",e[e.Critical=5]="Critical",e[e.None=6]="None"}(r||(r={}))},function(e,t,n){"use strict";(function(e){n.d(t,"e",(function(){return c})),n.d(t,"a",(function(){return u})),n.d(t,"c",(function(){return l})),n.d(t,"g",(function(){return f})),n.d(t,"i",(function(){return h})),n.d(t,"j",(function(){return p})),n.d(t,"f",(function(){return d})),n.d(t,"d",(function(){return g})),n.d(t,"b",(function(){return y})),n.d(t,"h",(function(){return v}));var r=n(0),o=n(4),i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]-1&&this.subject.observers.splice(e,1),0===this.subject.observers.length&&this.subject.cancelCallback&&this.subject.cancelCallback().catch((function(e){}))},e}(),y=function(){function e(e){this.minimumLogLevel=e,this.outputConsole=console}return e.prototype.log=function(e,t){if(e>=this.minimumLogLevel)switch(e){case r.a.Critical:case r.a.Error:this.outputConsole.error("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;case r.a.Warning:this.outputConsole.warn("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;case r.a.Information:this.outputConsole.info("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;default:this.outputConsole.log("["+(new Date).toISOString()+"] "+r.a[e]+": "+t)}},e}();function v(){var e="X-SignalR-User-Agent";return l.isNode&&(e="User-Agent"),[e,b(c,m(),E(),w())]}function b(e,t,n,r){var o="Microsoft SignalR/",i=e.split(".");return o+=i[0]+"."+i[1],o+=" ("+e+"; ",o+=t&&""!==t?t+"; ":"Unknown OS; ",o+=""+n,o+=r?"; "+r:"; Unknown Runtime Version",o+=")"}function m(){if(!l.isNode)return"";switch(e.platform){case"win32":return"Windows NT";case"darwin":return"macOS";case"linux":return"Linux";default:return e.platform}}function w(){if(l.isNode)return e.versions.node}function E(){return l.isNode?"NodeJS":"Browser"}}).call(this,n(13))},function(e,t,n){"use strict";n.r(t),n.d(t,"AbortError",(function(){return s})),n.d(t,"HttpError",(function(){return i})),n.d(t,"TimeoutError",(function(){return a})),n.d(t,"HttpClient",(function(){return l})),n.d(t,"HttpResponse",(function(){return u})),n.d(t,"DefaultHttpClient",(function(){return S})),n.d(t,"HubConnection",(function(){return R})),n.d(t,"HubConnectionState",(function(){return I})),n.d(t,"HubConnectionBuilder",(function(){return re})),n.d(t,"MessageType",(function(){return b})),n.d(t,"LogLevel",(function(){return f.a})),n.d(t,"HttpTransportType",(function(){return P})),n.d(t,"TransferFormat",(function(){return O})),n.d(t,"NullLogger",(function(){return $.a})),n.d(t,"JsonHubProtocol",(function(){return ee})),n.d(t,"Subject",(function(){return C})),n.d(t,"VERSION",(function(){return h.e}));var r,o=(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),i=function(e){function t(t,n){var r=this,o=this.constructor.prototype;return(r=e.call(this,t)||this).statusCode=n,r.__proto__=o,r}return o(t,e),t}(Error),a=function(e){function t(t){void 0===t&&(t="A timeout occurred.");var n=this,r=this.constructor.prototype;return(n=e.call(this,t)||this).__proto__=r,n}return o(t,e),t}(Error),s=function(e){function t(t){void 0===t&&(t="An abort occurred.");var n=this,r=this.constructor.prototype;return(n=e.call(this,t)||this).__proto__=r,n}return o(t,e),t}(Error),c=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=200&&o.status<300?n(new u(o.status,o.statusText,o.response||o.responseText)):r(new i(o.statusText,o.status))},o.onerror=function(){t.logger.log(f.a.Warning,"Error from HTTP request. "+o.status+": "+o.statusText+"."),r(new i(o.statusText,o.status))},o.ontimeout=function(){t.logger.log(f.a.Warning,"Timeout from HTTP request."),r(new a)},o.send(e.content||"")})):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t}(l),E=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),S=function(e){function t(t){var n=e.call(this)||this;if("undefined"!=typeof fetch||h.c.isNode)n.httpClient=new v(t);else{if("undefined"==typeof XMLHttpRequest)throw new Error("No usable HttpClient found.");n.httpClient=new w(t)}return n}return E(t,e),t.prototype.send=function(e){return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new s):e.method?e.url?this.httpClient.send(e):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t.prototype.getCookieString=function(e){return this.httpClient.getCookieString(e)},t}(l),_=n(47);!function(e){e[e.Invocation=1]="Invocation",e[e.StreamItem=2]="StreamItem",e[e.Completion=3]="Completion",e[e.StreamInvocation=4]="StreamInvocation",e[e.CancelInvocation=5]="CancelInvocation",e[e.Ping=6]="Ping",e[e.Close=7]="Close"}(b||(b={}));var I,C=function(){function e(){this.observers=[]}return e.prototype.next=function(e){for(var t=0,n=this.observers;t0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0?[2,Promise.reject(new Error("Unable to connect to the server with any of the available transports. "+i.join(" ")))]:[2,Promise.reject(new Error("None of the transports supported by the client are supported by the server."))]}}))}))},e.prototype.constructTransport=function(e){switch(e){case P.WebSockets:if(!this.options.WebSocket)throw new Error("'WebSocket' is not supported in your environment.");return new J(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.WebSocket,this.options.headers||{});case P.ServerSentEvents:if(!this.options.EventSource)throw new Error("'EventSource' is not supported in your environment.");return new H(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.EventSource,this.options.withCredentials,this.options.headers||{});case P.LongPolling:return new B(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.withCredentials,this.options.headers||{});default:throw new Error("Unknown transport: "+e+".")}},e.prototype.startTransport=function(e,t){var n=this;return this.transport.onreceive=this.onreceive,this.transport.onclose=function(e){return n.stopConnection(e)},this.transport.connect(e,t)},e.prototype.resolveTransportOrError=function(e,t,n){var r=P[e.transport];if(null==r)return this.logger.log(f.a.Debug,"Skipping transport '"+e.transport+"' because it is not supported by this client."),new Error("Skipping transport '"+e.transport+"' because it is not supported by this client.");if(!function(e,t){return!e||0!=(t&e)}(t,r))return this.logger.log(f.a.Debug,"Skipping transport '"+P[r]+"' because it was disabled by the client."),new Error("'"+P[r]+"' is disabled by the client.");if(!(e.transferFormats.map((function(e){return O[e]})).indexOf(n)>=0))return this.logger.log(f.a.Debug,"Skipping transport '"+P[r]+"' because it does not support the requested transfer format '"+O[n]+"'."),new Error("'"+P[r]+"' does not support "+O[n]+".");if(r===P.WebSockets&&!this.options.WebSocket||r===P.ServerSentEvents&&!this.options.EventSource)return this.logger.log(f.a.Debug,"Skipping transport '"+P[r]+"' because it is not supported in your environment.'"),new Error("'"+P[r]+"' is not supported in your environment.");this.logger.log(f.a.Debug,"Selecting transport '"+P[r]+"'.");try{return this.constructTransport(r)}catch(e){return e}},e.prototype.isITransport=function(e){return e&&"object"==typeof e&&"connect"in e},e.prototype.stopConnection=function(e){var t=this;if(this.logger.log(f.a.Debug,"HttpConnection.stopConnection("+e+") called while in state "+this.connectionState+"."),this.transport=void 0,e=this.stopError||e,this.stopError=void 0,"Disconnected"!==this.connectionState){if("Connecting"===this.connectionState)throw this.logger.log(f.a.Warning,"Call to HttpConnection.stopConnection("+e+") was ignored because the connection is still in the connecting state."),new Error("HttpConnection.stopConnection("+e+") was called while the connection is still in the connecting state.");if("Disconnecting"===this.connectionState&&this.stopPromiseResolver(),e?this.logger.log(f.a.Error,"Connection disconnected with error '"+e+"'."):this.logger.log(f.a.Information,"Connection disconnected."),this.sendQueue&&(this.sendQueue.stop().catch((function(e){t.logger.log(f.a.Error,"TransportSendQueue.stop() threw error '"+e+"'.")})),this.sendQueue=void 0),this.connectionId=void 0,this.connectionState="Disconnected",this.connectionStarted){this.connectionStarted=!1;try{this.onclose&&this.onclose(e)}catch(t){this.logger.log(f.a.Error,"HttpConnection.onclose("+e+") threw error '"+t+"'.")}}}else this.logger.log(f.a.Debug,"Call to HttpConnection.stopConnection("+e+") was ignored because the connection is already in the disconnected state.")},e.prototype.resolveUrl=function(e){if(0===e.lastIndexOf("https://",0)||0===e.lastIndexOf("http://",0))return e;if(!h.c.isBrowser||!window.document)throw new Error("Cannot resolve '"+e+"'.");var t=window.document.createElement("a");return t.href=e,this.logger.log(f.a.Information,"Normalizing '"+e+"' to '"+t.href+"'."),t.href},e.prototype.resolveNegotiateUrl=function(e){var t=e.indexOf("?"),n=e.substring(0,-1===t?e.length:t);return"/"!==n[n.length-1]&&(n+="/"),n+="negotiate",-1===(n+=-1===t?"":e.substring(t)).indexOf("negotiateVersion")&&(n+=-1===t?"?":"&",n+="negotiateVersion="+this.negotiateVersion),n},e}();var X=function(){function e(e){this.transport=e,this.buffer=[],this.executing=!0,this.sendBufferedData=new Q,this.transportResult=new Q,this.sendLoopPromise=this.sendLoop()}return e.prototype.send=function(e){return this.bufferData(e),this.transportResult||(this.transportResult=new Q),this.transportResult.promise},e.prototype.stop=function(){return this.executing=!1,this.sendBufferedData.resolve(),this.sendLoopPromise},e.prototype.bufferData=function(e){if(this.buffer.length&&typeof this.buffer[0]!=typeof e)throw new Error("Expected data to be of type "+typeof this.buffer+" but was of type "+typeof e);this.buffer.push(e),this.sendBufferedData.resolve()},e.prototype.sendLoop=function(){return G(this,void 0,void 0,(function(){var t,n,r;return V(this,(function(o){switch(o.label){case 0:return[4,this.sendBufferedData.promise];case 1:if(o.sent(),!this.executing)return this.transportResult&&this.transportResult.reject("Connection stopped."),[3,6];this.sendBufferedData=new Q,t=this.transportResult,this.transportResult=void 0,n="string"==typeof this.buffer[0]?this.buffer.join(""):e.concatBuffers(this.buffer),this.buffer.length=0,o.label=2;case 2:return o.trys.push([2,4,,5]),[4,this.transport.send(n)];case 3:return o.sent(),t.resolve(),[3,5];case 4:return r=o.sent(),t.reject(r),[3,5];case 5:return[3,0];case 6:return[2]}}))}))},e.concatBuffers=function(e){for(var t=e.map((function(e){return e.byteLength})).reduce((function(e,t){return e+t})),n=new Uint8Array(t),r=0,o=0,i=e;o0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(u(i)&&u(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(c(i))throw new Error("Not implemented: moving existing logical children");var a=u(t);if(n0;)e(r,0)}var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=c,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return u(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=u,t.permuteLogicalChildren=function(e,t){var n=u(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=c(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):h(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";var r=n(24),o=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=f;var i=n(19);i.inherits=n(15);var a=n(40),s=n(45);i.inherits(f,a);for(var c=o(s.prototype),u=0;u0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]-1&&this.subject.observers.splice(e,1),0===this.subject.observers.length&&this.subject.cancelCallback&&this.subject.cancelCallback().catch((function(e){}))},e}(),y=function(){function e(e){this.minimumLogLevel=e,this.outputConsole=console}return e.prototype.log=function(e,t){if(e>=this.minimumLogLevel)switch(e){case r.a.Critical:case r.a.Error:this.outputConsole.error("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;case r.a.Warning:this.outputConsole.warn("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;case r.a.Information:this.outputConsole.info("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;default:this.outputConsole.log("["+(new Date).toISOString()+"] "+r.a[e]+": "+t)}},e}();function v(){var e="X-SignalR-User-Agent";return l.isNode&&(e="User-Agent"),[e,b(c,m(),E(),w())]}function b(e,t,n,r){var o="Microsoft SignalR/",i=e.split(".");return o+=i[0]+"."+i[1],o+=" ("+e+"; ",o+=t&&""!==t?t+"; ":"Unknown OS; ",o+=""+n,o+=r?"; "+r:"; Unknown Runtime Version",o+=")"}function m(){if(!l.isNode)return"";switch(e.platform){case"win32":return"Windows NT";case"darwin":return"macOS";case"linux":return"Linux";default:return e.platform}}function w(){if(l.isNode)return e.versions.node}function E(){return l.isNode?"NodeJS":"Browser"}}).call(this,n(13))},function(e,t,n){"use strict";n.r(t),n.d(t,"AbortError",(function(){return s})),n.d(t,"HttpError",(function(){return i})),n.d(t,"TimeoutError",(function(){return a})),n.d(t,"HttpClient",(function(){return l})),n.d(t,"HttpResponse",(function(){return u})),n.d(t,"DefaultHttpClient",(function(){return S})),n.d(t,"HubConnection",(function(){return R})),n.d(t,"HubConnectionState",(function(){return I})),n.d(t,"HubConnectionBuilder",(function(){return re})),n.d(t,"MessageType",(function(){return b})),n.d(t,"LogLevel",(function(){return f.a})),n.d(t,"HttpTransportType",(function(){return O})),n.d(t,"TransferFormat",(function(){return P})),n.d(t,"NullLogger",(function(){return Z.a})),n.d(t,"JsonHubProtocol",(function(){return ee})),n.d(t,"Subject",(function(){return C})),n.d(t,"VERSION",(function(){return h.e}));var r,o=(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),i=function(e){function t(t,n){var r=this,o=this.constructor.prototype;return(r=e.call(this,t)||this).statusCode=n,r.__proto__=o,r}return o(t,e),t}(Error),a=function(e){function t(t){void 0===t&&(t="A timeout occurred.");var n=this,r=this.constructor.prototype;return(n=e.call(this,t)||this).__proto__=r,n}return o(t,e),t}(Error),s=function(e){function t(t){void 0===t&&(t="An abort occurred.");var n=this,r=this.constructor.prototype;return(n=e.call(this,t)||this).__proto__=r,n}return o(t,e),t}(Error),c=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=200&&o.status<300?n(new u(o.status,o.statusText,o.response||o.responseText)):r(new i(o.statusText,o.status))},o.onerror=function(){t.logger.log(f.a.Warning,"Error from HTTP request. "+o.status+": "+o.statusText+"."),r(new i(o.statusText,o.status))},o.ontimeout=function(){t.logger.log(f.a.Warning,"Timeout from HTTP request."),r(new a)},o.send(e.content||"")})):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t}(l),E=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),S=function(e){function t(t){var n=e.call(this)||this;if("undefined"!=typeof fetch||h.c.isNode)n.httpClient=new v(t);else{if("undefined"==typeof XMLHttpRequest)throw new Error("No usable HttpClient found.");n.httpClient=new w(t)}return n}return E(t,e),t.prototype.send=function(e){return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new s):e.method?e.url?this.httpClient.send(e):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t.prototype.getCookieString=function(e){return this.httpClient.getCookieString(e)},t}(l),_=n(47);!function(e){e[e.Invocation=1]="Invocation",e[e.StreamItem=2]="StreamItem",e[e.Completion=3]="Completion",e[e.StreamInvocation=4]="StreamInvocation",e[e.CancelInvocation=5]="CancelInvocation",e[e.Ping=6]="Ping",e[e.Close=7]="Close"}(b||(b={}));var I,C=function(){function e(){this.observers=[]}return e.prototype.next=function(e){for(var t=0,n=this.observers;t0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0?[2,Promise.reject(new Error("Unable to connect to the server with any of the available transports. "+i.join(" ")))]:[2,Promise.reject(new Error("None of the transports supported by the client are supported by the server."))]}}))}))},e.prototype.constructTransport=function(e){switch(e){case O.WebSockets:if(!this.options.WebSocket)throw new Error("'WebSocket' is not supported in your environment.");return new J(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.WebSocket,this.options.headers||{});case O.ServerSentEvents:if(!this.options.EventSource)throw new Error("'EventSource' is not supported in your environment.");return new H(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.EventSource,this.options.withCredentials,this.options.headers||{});case O.LongPolling:return new B(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.withCredentials,this.options.headers||{});default:throw new Error("Unknown transport: "+e+".")}},e.prototype.startTransport=function(e,t){var n=this;return this.transport.onreceive=this.onreceive,this.transport.onclose=function(e){return n.stopConnection(e)},this.transport.connect(e,t)},e.prototype.resolveTransportOrError=function(e,t,n){var r=O[e.transport];if(null==r)return this.logger.log(f.a.Debug,"Skipping transport '"+e.transport+"' because it is not supported by this client."),new Error("Skipping transport '"+e.transport+"' because it is not supported by this client.");if(!function(e,t){return!e||0!=(t&e)}(t,r))return this.logger.log(f.a.Debug,"Skipping transport '"+O[r]+"' because it was disabled by the client."),new Error("'"+O[r]+"' is disabled by the client.");if(!(e.transferFormats.map((function(e){return P[e]})).indexOf(n)>=0))return this.logger.log(f.a.Debug,"Skipping transport '"+O[r]+"' because it does not support the requested transfer format '"+P[n]+"'."),new Error("'"+O[r]+"' does not support "+P[n]+".");if(r===O.WebSockets&&!this.options.WebSocket||r===O.ServerSentEvents&&!this.options.EventSource)return this.logger.log(f.a.Debug,"Skipping transport '"+O[r]+"' because it is not supported in your environment.'"),new Error("'"+O[r]+"' is not supported in your environment.");this.logger.log(f.a.Debug,"Selecting transport '"+O[r]+"'.");try{return this.constructTransport(r)}catch(e){return e}},e.prototype.isITransport=function(e){return e&&"object"==typeof e&&"connect"in e},e.prototype.stopConnection=function(e){var t=this;if(this.logger.log(f.a.Debug,"HttpConnection.stopConnection("+e+") called while in state "+this.connectionState+"."),this.transport=void 0,e=this.stopError||e,this.stopError=void 0,"Disconnected"!==this.connectionState){if("Connecting"===this.connectionState)throw this.logger.log(f.a.Warning,"Call to HttpConnection.stopConnection("+e+") was ignored because the connection is still in the connecting state."),new Error("HttpConnection.stopConnection("+e+") was called while the connection is still in the connecting state.");if("Disconnecting"===this.connectionState&&this.stopPromiseResolver(),e?this.logger.log(f.a.Error,"Connection disconnected with error '"+e+"'."):this.logger.log(f.a.Information,"Connection disconnected."),this.sendQueue&&(this.sendQueue.stop().catch((function(e){t.logger.log(f.a.Error,"TransportSendQueue.stop() threw error '"+e+"'.")})),this.sendQueue=void 0),this.connectionId=void 0,this.connectionState="Disconnected",this.connectionStarted){this.connectionStarted=!1;try{this.onclose&&this.onclose(e)}catch(t){this.logger.log(f.a.Error,"HttpConnection.onclose("+e+") threw error '"+t+"'.")}}}else this.logger.log(f.a.Debug,"Call to HttpConnection.stopConnection("+e+") was ignored because the connection is already in the disconnected state.")},e.prototype.resolveUrl=function(e){if(0===e.lastIndexOf("https://",0)||0===e.lastIndexOf("http://",0))return e;if(!h.c.isBrowser||!window.document)throw new Error("Cannot resolve '"+e+"'.");var t=window.document.createElement("a");return t.href=e,this.logger.log(f.a.Information,"Normalizing '"+e+"' to '"+t.href+"'."),t.href},e.prototype.resolveNegotiateUrl=function(e){var t=e.indexOf("?"),n=e.substring(0,-1===t?e.length:t);return"/"!==n[n.length-1]&&(n+="/"),n+="negotiate",-1===(n+=-1===t?"":e.substring(t)).indexOf("negotiateVersion")&&(n+=-1===t?"?":"&",n+="negotiateVersion="+this.negotiateVersion),n},e}();var X=function(){function e(e){this.transport=e,this.buffer=[],this.executing=!0,this.sendBufferedData=new Q,this.transportResult=new Q,this.sendLoopPromise=this.sendLoop()}return e.prototype.send=function(e){return this.bufferData(e),this.transportResult||(this.transportResult=new Q),this.transportResult.promise},e.prototype.stop=function(){return this.executing=!1,this.sendBufferedData.resolve(),this.sendLoopPromise},e.prototype.bufferData=function(e){if(this.buffer.length&&typeof this.buffer[0]!=typeof e)throw new Error("Expected data to be of type "+typeof this.buffer+" but was of type "+typeof e);this.buffer.push(e),this.sendBufferedData.resolve()},e.prototype.sendLoop=function(){return G(this,void 0,void 0,(function(){var t,n,r;return V(this,(function(o){switch(o.label){case 0:return[4,this.sendBufferedData.promise];case 1:if(o.sent(),!this.executing)return this.transportResult&&this.transportResult.reject("Connection stopped."),[3,6];this.sendBufferedData=new Q,t=this.transportResult,this.transportResult=void 0,n="string"==typeof this.buffer[0]?this.buffer.join(""):e.concatBuffers(this.buffer),this.buffer.length=0,o.label=2;case 2:return o.trys.push([2,4,,5]),[4,this.transport.send(n)];case 3:return o.sent(),t.resolve(),[3,5];case 4:return r=o.sent(),t.reject(r),[3,5];case 5:return[3,0];case 6:return[2]}}))}))},e.concatBuffers=function(e){for(var t=e.map((function(e){return e.byteLength})).reduce((function(e,t){return e+t})),n=new Uint8Array(t),r=0,o=0,i=e;o0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(u(i)&&u(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(c(i))throw new Error("Not implemented: moving existing logical children");var a=u(t);if(n0;)e(r,0)}var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=c,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return u(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=u,t.permuteLogicalChildren=function(e,t){var n=u(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=c(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):h(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";var r=n(24),o=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=f;var i=n(19);i.inherits=n(15);var a=n(40),s=n(45);i.inherits(f,a);for(var c=o(s.prototype),u=0;u * @license MIT */ -var r=n(54),o=n(55),i=n(56);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function d(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return F(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return O(this,t,n);case"utf8":case"utf-8":return k(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return P(this,t,n);case"base64":return C(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,o);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,o){var i,a=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,n/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=n;is&&(n=s-c),i=n;i>=0;i--){for(var f=!0,h=0;ho&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function C(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function k(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o239?4:u>223?3:u>191?2:1;if(o+f<=n)switch(f){case 1:u<128&&(l=u);break;case 2:128==(192&(i=e[o+1]))&&(c=(31&u)<<6|63&i)>127&&(l=c);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(c=(15&u)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(c=(15&u)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&c<1114112&&(l=c)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},c.prototype.compare=function(e,t,n,r,o){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),u=this.slice(r,o),l=e.slice(t,n),f=0;fo)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return m(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return E(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return _(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;or)&&(n=r);for(var o="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function D(e,t,n,r,o,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function A(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o>>8*(r?o:1-o)}function M(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o>>8*(r?o:3-o)&255}function L(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function j(e,t,n,r,i){return i||L(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function B(e,t,n,r,i){return i||L(e,0,n,8),o.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(o*=256);)r+=this[e+--t]*o;return r},c.prototype.readUInt8=function(e,t){return t||x(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||x(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||x(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||x(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||x(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||x(e,t,this.length);for(var r=this[e],o=1,i=0;++i=(o*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||x(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return t||x(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||x(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||x(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||x(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||x(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||x(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||x(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||x(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||x(e,8,this.length),o.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||D(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):A(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):A(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);D(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);D(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):A(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):A(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return j(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return j(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return B(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+n];else if(i<1e3||!c.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function H(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(N,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function W(e,t,n,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(8))},function(e,t,n){"use strict";var r=n(14).Buffer,o=n(57),i=n(23),a=n(70),s=n(73),c=n(74);e.exports=function(e){var t=[],n=[];return{encode:c(t,(e=e||{forceFloat64:!1,compatibilityMode:!1,disableTimestampEncoding:!1}).forceFloat64,e.compatibilityMode,e.disableTimestampEncoding),decode:s(n),register:function(e,t,n,a){return o(t,"must have a constructor"),o(n,"must have an encode function"),o(e>=0,"must have a non-negative type"),o(a,"must have a decode function"),this.registerEncoder((function(e){return e instanceof t}),(function(t){var o=i(),a=r.allocUnsafe(1);return a.writeInt8(e,0),o.append(a),o.append(n(t)),o})),this.registerDecoder(e,a),this},registerEncoder:function(e,n){return o(e,"must have an encode function"),o(n,"must have an encode function"),t.push({check:e,encode:n}),this},registerDecoder:function(e,t){return o(e>=0,"must have a non-negative type"),o(t,"must have a decode function"),n.push({type:e,decode:t}),this},encoder:a.encoder,decoder:a.decoder,buffer:!0,type:"msgpack5",IncompleteBufferError:s.IncompleteBufferError}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(26),n(17);var r=n(27),o=n(7),i={},a=!1;function s(e,t,n){var o=i[e];o||(o=i[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=s,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");s(n||0,o.toLogicalElement(r,!0),t)},t.getRendererer=function(e){return i[e]},t.renderBatch=function(e,t){var n=i[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),s=r.values(o),c=r.count(o),u=t.referenceFrames(),l=r.values(u),f=t.diffReader,h=0;h1)for(var n=1;n0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var l,f;s.attachDebuggerHotkey(e),window.Browser={init:function(){}},l=function(){window.Module=function(e,t,n){var l=this,f=e.bootConfig.resources,h=window.Module||{},p=["DEBUGGING ENABLED"];h.print=function(e){return p.indexOf(e)<0&&console.log(e)},h.printErr=function(e){console.error(e),c.showErrorNotification()},h.preRun=h.preRun||[],h.postRun=h.postRun||[],h.preloadPlugins=[];var g,w,E=e.loadResources(f.assembly,(function(e){return"_framework/"+e}),"assembly"),S=e.loadResources(f.pdb||{},(function(e){return"_framework/"+e}),"pdb"),_=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");if(e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.blat")&&(g=e.loadResource("dotnet.timezones.blat","_framework/dotnet.timezones.blat",e.bootConfig.resources.runtime["dotnet.timezones.blat"],"globalization")),e.bootConfig.icuDataMode!=u.ICUDataMode.Invariant){var I=e.startOptions.applicationCulture||navigator.languages&&navigator.languages[0],C=function(e,t){if(!t||e.icuDataMode==u.ICUDataMode.All)return"icudt.dat";var n=t.split("-")[0];return["en","fr","it","de","es"].includes(n)?"icudt_EFIGS.dat":["zh","ko","ja"].includes(n)?"icudt_CJK.dat":"icudt_no_CJK.dat"}(e.bootConfig,I);w=e.loadResource(C,"_framework/"+C,e.bootConfig.resources.runtime[C],"globalization")}return h.instantiateWasm=function(e,t){return r(l,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,_];case 1:return[4,v(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),h.printErr(r),r;case 4:return t(n),[2]}}))})),[]},h.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],g&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),Module.FS_createPath("/","usr",!0,!0),Module.FS_createPath("/usr/","share",!0,!0),Module.FS_createPath("/usr/share/","zoneinfo",!0,!0),MONO.mono_wasm_load_data_archive(new Uint8Array(n),"/usr/share/zoneinfo/"),removeRunDependency(t),[2]}}))}))}(g),w?function(e){r(this,void 0,void 0,(function(){var t,n,r,i,a;return o(this,(function(o){switch(o.label){case 0:return t="blazor:icudata",addRunDependency(t),[4,e.response];case 1:return n=o.sent(),i=Uint8Array.bind,[4,n.arrayBuffer()];case 2:if(r=new(i.apply(Uint8Array,[void 0,o.sent()])),a=MONO.mono_wasm_load_bytes_into_heap(r),!MONO.mono_wasm_load_icu_data(a))throw new Error("Error loading ICU asset.");return removeRunDependency(t),[2]}}))}))}(w):MONO.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT","1"),E.forEach((function(e){return k(e,b(e.name,".dll"))})),S.forEach((function(e){return k(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){h.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources,a=e.startOptions.applicationCulture||navigator.languages&&navigator.languages[0];if(e.bootConfig.icuDataMode==u.ICUDataMode.Sharded&&n&&n[0]!==a)throw new Error("To change culture dynamically during startup, set true in the application's project file.");if(i){var s=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(l,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(s.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return p(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>f)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*l+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return p(e+(t||0))},readStringField:function(e,t,n){var r,o=p(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return h?void 0===(r=h.stringCache.get(o))&&(r=BINDING.conv_string(o),h.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return m(),h=new w},invokeWhenHeapUnlocked:function(e){h?h.enqueuePostReleaseAction(e):e()}};var d=document.createElement("a");function g(e){return e+12}function y(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function v(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function b(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}function m(){if(h)throw new Error("Assertion failed - heap is currently locked")}var w=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(h!==this)throw new Error("Trying to release a lock which isn't current");for(h=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),m()}},e}()},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]this.length)&&(r=this.length),n>=this.length)return e||i.alloc(0);if(r<=0)return e||i.alloc(0);var o,a,s=!!e,c=this._offset(n),u=r-n,l=u,f=s&&t||0,h=c[1];if(0===n&&r==this.length){if(!s)return 1===this._bufs.length?this._bufs[0]:i.concat(this._bufs,this.length);for(a=0;a(o=this._bufs[a].length-h))){this._bufs[a].copy(e,f,h,h+l);break}this._bufs[a].copy(e,f,h),f+=o,l-=o,h&&(h=0)}return e},a.prototype.shallowSlice=function(e,t){e=e||0,t=t||this.length,e<0&&(e+=this.length),t<0&&(t+=this.length);var n=this._offset(e),r=this._offset(t),o=this._bufs.slice(n[0],r[0]+1);return 0==r[1]?o.pop():o[o.length-1]=o[o.length-1].slice(0,r[1]),0!=n[1]&&(o[0]=o[0].slice(n[1])),new a(o)},a.prototype.toString=function(e,t,n){return this.slice(t,n).toString(e)},a.prototype.consume=function(e){for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},a.prototype.duplicate=function(){for(var e=0,t=new a;e0&&e.invokeMethodAsync("OnSpacerAfterVisible",r.boundingClientRect.bottom-r.intersectionRect.bottom,a,s)}}))}),{root:i,rootMargin:o+"px"});a.observe(t),a.observe(n);var s=u(t),c=u(n);function u(e){var t=new MutationObserver((function(){a.unobserve(e),a.observe(e)}));return t.observe(e,{attributes:!0}),t}r[e._id]={intersectionObserver:a,mutationObserverBefore:s,mutationObserverAfter:c}},dispose:function(e){var t=r[e._id];t&&(t.intersectionObserver.disconnect(),t.mutationObserverBefore.disconnect(),t.mutationObserverAfter.disconnect(),e.dispose(),delete r[e._id])}};var r={}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1].*)$/;function i(e,t){var n=e.currentElement;if(n&&n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r.groups&&r.groups.descriptor;if(!i)return;try{var s=function(e){var t=JSON.parse(e),n=t.type;if("server"!==n&&"webassembly"!==n)throw new Error("Invalid component type '"+n+"'.");return t}(i);switch(t){case"webassembly":return function(e,t,n){var r=e.type,o=e.assembly,i=e.typeName,s=e.parameterDefinitions,c=e.parameterValues,u=e.prerenderId;if("webassembly"!==r)return;if(!o)throw new Error("assembly must be defined when using a descriptor.");if(!i)throw new Error("typeName must be defined when using a descriptor.");if(u){var l=a(u,n);if(!l)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:c&&atob(c),start:t,prerenderId:u,end:l}}return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:c&&atob(c),start:t}}(s,n,e);case"server":return function(e,t,n){var r=e.type,o=e.descriptor,i=e.sequence,s=e.prerenderId;if("server"!==r)return;if(!o)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===i)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(i))throw new Error("Error parsing the sequence '"+i+"' for component '"+JSON.stringify(e)+"'");if(s){var c=a(s,n);if(!c)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,sequence:i,descriptor:o,start:t,prerenderId:s,end:c}}return{type:r,sequence:i,descriptor:o,start:t}}(s,n,e)}}catch(e){throw new Error("Found malformed component comment at "+n.textContent)}}}function a(e,t){for(;t.next()&&t.currentElement;){var n=t.currentElement;if(n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r[1];if(i)return s(i,e),n}}}function s(e,t){var n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error("Invalid end of component comment: '"+e+"'");var r=n.prerenderId;if(!r)throw new Error("End of component comment must have a value for the prerendered property: '"+e+"'");if(r!==t)throw new Error("End of component comment prerendered property must match the start comment prerender id: '"+t+"', '"+r+"'")}var c=function(){function e(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}return e.prototype.next=function(){return this.currentIndex++,this.currentIndex=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),c=r[n];n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(n)?r.showHidden=n:n&&t._extend(r,n),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=c),l(r,e,r.depth)}function c(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function u(e,t){return e}function l(e,n,r){if(e.customInspect&&n&&_(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,e);return v(o)||(o=l(e,o,r)),o}var i=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(y(t))return e.stylize(""+t,"number");if(d(t))return e.stylize(""+t,"boolean");if(g(t))return e.stylize("null","null")}(e,n);if(i)return i;var a=Object.keys(n),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),S(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return f(n);if(0===a.length){if(_(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(m(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(E(n))return e.stylize(Date.prototype.toString.call(n),"date");if(S(n))return f(n)}var u,w="",I=!1,C=["{","}"];(p(n)&&(I=!0,C=["[","]"]),_(n))&&(w=" [Function"+(n.name?": "+n.name:"")+"]");return m(n)&&(w=" "+RegExp.prototype.toString.call(n)),E(n)&&(w=" "+Date.prototype.toUTCString.call(n)),S(n)&&(w=" "+f(n)),0!==a.length||I&&0!=n.length?r<0?m(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=I?function(e,t,n,r,o){for(var i=[],a=0,s=t.length;a=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,w,C)):C[0]+w+C[1]}function f(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,n,r,o,i){var a,s,c;if((c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),P(r,o)||(a="["+o+"]"),s||(e.seen.indexOf(c.value)<0?(s=g(n)?l(e,c.value,null):l(e,c.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),b(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function p(e){return Array.isArray(e)}function d(e){return"boolean"==typeof e}function g(e){return null===e}function y(e){return"number"==typeof e}function v(e){return"string"==typeof e}function b(e){return void 0===e}function m(e){return w(e)&&"[object RegExp]"===I(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===I(e)}function S(e){return w(e)&&("[object Error]"===I(e)||e instanceof Error)}function _(e){return"function"==typeof e}function I(e){return Object.prototype.toString.call(e)}function C(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(n){if(b(i)&&(i=e.env.NODE_DEBUG||""),n=n.toUpperCase(),!a[n])if(new RegExp("\\b"+n+"\\b","i").test(i)){var r=e.pid;a[n]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",n,r,e)}}else a[n]=function(){};return a[n]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=p,t.isBoolean=d,t.isNull=g,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=v,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=m,t.isObject=w,t.isDate=E,t.isError=S,t.isFunction=_,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(59);var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function T(){var e=new Date,t=[C(e.getHours()),C(e.getMinutes()),C(e.getSeconds())].join(":");return[e.getDate(),k[e.getMonth()],t].join(" ")}function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",T(),t.format.apply(t,arguments))},t.inherits=n(60),t._extend=function(e,t){if(!t||!w(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var O="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function R(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(O&&e[O]){var t;if("function"!=typeof(t=e[O]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,O,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),o=[],i=0;i0?("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===u.prototype||(t=function(e){return u.from(e)}(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):E(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?E(e,a,t,!1):C(e,a)):E(e,a,t,!1))):r||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function _(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(p("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(I,e):I(e))}function I(e){p("emit readable"),e.emit("readable"),O(e)}function C(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(k,e,t))}function k(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;ei.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++r}return t.length-=r,o}(e,t):function(e,t){var n=u.allocUnsafe(e),r=t.head,o=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,a),0===(e-=a)){a===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++o}return t.length-=o,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function x(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(D,t,e))}function D(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function A(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return p("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?x(this):_(this),null;if(0===(e=S(e,t))&&t.ended)return 0===t.length&&x(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e0?R(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&x(this)),null!==r&&this.emit("data",r),r},m.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},m.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,p("pipe count=%d opts=%j",i.pipesCount,t);var c=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?l:m;function u(t,r){p("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,p("cleanup"),e.removeListener("close",v),e.removeListener("finish",b),e.removeListener("drain",f),e.removeListener("error",y),e.removeListener("unpipe",u),n.removeListener("end",l),n.removeListener("end",m),n.removeListener("data",g),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function l(){p("onend"),e.end()}i.endEmitted?o.nextTick(c):n.once("end",c),e.on("unpipe",u);var f=function(e){return function(){var t=e._readableState;p("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,O(e))}}(n);e.on("drain",f);var h=!1;var d=!1;function g(t){p("ondata"),d=!1,!1!==e.write(t)||d||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==A(i.pipes,e))&&!h&&(p("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,d=!0),n.pause())}function y(t){p("onerror",t),m(),e.removeListener("error",y),0===s(e,"error")&&e.emit("error",t)}function v(){e.removeListener("finish",b),m()}function b(){p("onfinish"),e.removeListener("close",v),m()}function m(){p("unpipe"),n.unpipe(e)}return n.on("data",g),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",y),e.once("close",v),e.once("finish",b),e.emit("pipe",n),i.flowing||(p("pipe resume"),n.resume()),e},m.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i0&&a.length>o&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,s=c,console&&console.warn&&console.warn(s)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=h.bind(r);return o.listener=n,r.wrapFn=o,o}function d(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var c=o[e];if(void 0===c)return!1;if("function"==typeof c)i(c,this,t);else{var u=c.length,l=y(c,u);for(n=0;n=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},s.prototype.listeners=function(e){return d(this,e,!0)},s.prototype.rawListeners=function(e){return d(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){e.exports=n(41).EventEmitter},function(e,t,n){"use strict";var r=n(24);function o(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(o,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?(r.nextTick(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){"use strict";var r=n(66).Buffer,o=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=u,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0)return o>0&&(e.lastNeed=o-1),o;if(--r=0)return o>0&&(e.lastNeed=o-2),o;if(--r=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";(function(t,r,o){var i=n(24);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=b;var s,c=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;b.WritableState=v;var u=n(19);u.inherits=n(15);var l={deprecate:n(69)},f=n(42),h=n(14).Buffer,p=o.Uint8Array||function(){};var d,g=n(43);function y(){}function v(e,t){s=s||n(9),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,u=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(I,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),I(e,t))}(e,n,r,t,o);else{var a=S(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||E(e,n),r?c(w,e,n,a,o):w(e,n,a,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(9),!(d.call(b,this)||this instanceof s))return new b(e);this._writableState=new v(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function m(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function w(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),I(e,t)}function E(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=n;for(var s=0,c=!0;n;)o[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;o.allBuffers=c,m(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,l=n.encoding,f=n.callback;if(m(e,t,!1,t.objectMode?1:u.length,u,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function S(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function _(e,t){e._final((function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),I(e,t)}))}function I(e,t){var n=S(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(_,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}u.inherits(b,f),v.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(v.prototype,"buffer",{get:l.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(d=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!d.call(this,e)||this===b&&(e&&e._writableState instanceof v)}})):d=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,o=this._writableState,a=!1,s=!o.objectMode&&(r=e,h.isBuffer(r)||r instanceof p);return s&&!h.isBuffer(e)&&(e=function(e){return h.from(e)}(e)),"function"==typeof t&&(n=t,t=null),s?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=y),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),i.nextTick(r,a),o=!1),o}(this,o,e,n))&&(o.pendingcb++,a=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=h.from(t,n));return t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var c=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,I(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=g.destroy,b.prototype._undestroy=g.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(13),n(67).setImmediate,n(8))},function(e,t,n){"use strict";e.exports=a;var r=n(9),o=n(19);function i(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.lengths?a.slice(s).buffer:null}else{var c,u=t;if(-1===(c=u.indexOf(r.a.RecordSeparator)))throw new Error("Message is incomplete.");s=c+1;n=u.substring(0,s),i=u.length>s?u.substring(s):null}var l=r.a.parse(n),f=JSON.parse(l[0]);if(f.type)throw new Error("Expected a handshake response from the server.");return[i,f]},t}()}).call(this,n(10).Buffer)},,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},a=this&&this.__spread||function(){for(var e=[],t=0;t0?a-4:a;for(n=0;n>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===s&&(t=o[e.charCodeAt(n)]<<2|o[e.charCodeAt(n+1)]>>4,c[l++]=255&t);1===s&&(t=o[e.charCodeAt(n)]<<10|o[e.charCodeAt(n+1)]<<4|o[e.charCodeAt(n+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;as?s:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,c=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var o,i,a=[],s=t;s>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,c=(1<>1,l=-7,f=n?o-1:0,h=n?-1:1,p=e[t+f];for(f+=h,i=p&(1<<-l)-1,p>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=h,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=r;l>0;a=256*a+e[t+f],f+=h,l-=8);if(0===i)i=1-u;else{if(i===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),i-=u}return(p?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,c,u=8*i-o-1,l=(1<>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,d=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+f>=1?h/c:h*Math.pow(2,1-f))*c>=2&&(a++,c/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*c-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[n+p]=255&s,p+=d,s/=256,o-=8);for(a=a<0;e[n+p]=255&a,p+=d,a/=256,u-=8);e[n+p-d]|=128*g}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";(function(t){var r=n(58); +var r=n(54),o=n(55),i=n(56);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function d(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return F(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return P(this,t,n);case"utf8":case"utf-8":return k(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return O(this,t,n);case"base64":return C(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,o);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,o){var i,a=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,n/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=n;is&&(n=s-c),i=n;i>=0;i--){for(var f=!0,h=0;ho&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function C(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function k(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o239?4:u>223?3:u>191?2:1;if(o+f<=n)switch(f){case 1:u<128&&(l=u);break;case 2:128==(192&(i=e[o+1]))&&(c=(31&u)<<6|63&i)>127&&(l=c);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(c=(15&u)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(c=(15&u)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&c<1114112&&(l=c)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},c.prototype.compare=function(e,t,n,r,o){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),u=this.slice(r,o),l=e.slice(t,n),f=0;fo)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return m(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return E(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return _(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;or)&&(n=r);for(var o="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function D(e,t,n,r,o,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function A(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o>>8*(r?o:1-o)}function M(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o>>8*(r?o:3-o)&255}function L(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function j(e,t,n,r,i){return i||L(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function B(e,t,n,r,i){return i||L(e,0,n,8),o.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(o*=256);)r+=this[e+--t]*o;return r},c.prototype.readUInt8=function(e,t){return t||x(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||x(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||x(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||x(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||x(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||x(e,t,this.length);for(var r=this[e],o=1,i=0;++i=(o*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||x(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return t||x(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||x(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||x(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||x(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||x(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||x(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||x(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||x(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||x(e,8,this.length),o.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||D(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):A(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):A(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);D(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);D(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):A(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):A(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return j(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return j(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return B(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+n];else if(i<1e3||!c.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function H(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(N,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function W(e,t,n,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(8))},function(e,t,n){"use strict";var r=n(14).Buffer,o=n(57),i=n(23),a=n(70),s=n(73),c=n(74);e.exports=function(e){var t=[],n=[];return{encode:c(t,(e=e||{forceFloat64:!1,compatibilityMode:!1,disableTimestampEncoding:!1}).forceFloat64,e.compatibilityMode,e.disableTimestampEncoding),decode:s(n),register:function(e,t,n,a){return o(t,"must have a constructor"),o(n,"must have an encode function"),o(e>=0,"must have a non-negative type"),o(a,"must have a decode function"),this.registerEncoder((function(e){return e instanceof t}),(function(t){var o=i(),a=r.allocUnsafe(1);return a.writeInt8(e,0),o.append(a),o.append(n(t)),o})),this.registerDecoder(e,a),this},registerEncoder:function(e,n){return o(e,"must have an encode function"),o(n,"must have an encode function"),t.push({check:e,encode:n}),this},registerDecoder:function(e,t){return o(e>=0,"must have a non-negative type"),o(t,"must have a decode function"),n.push({type:e,decode:t}),this},encoder:a.encoder,decoder:a.decoder,buffer:!0,type:"msgpack5",IncompleteBufferError:s.IncompleteBufferError}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(26),n(17);var r=n(27),o=n(7),i={},a=!1;function s(e,t,n){var o=i[e];o||(o=i[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=s,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");s(n||0,o.toLogicalElement(r,!0),t)},t.getRendererer=function(e){return i[e]},t.renderBatch=function(e,t){var n=i[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),s=r.values(o),c=r.count(o),u=t.referenceFrames(),l=r.values(u),f=t.diffReader,h=0;h1)for(var n=1;n0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var l,f;s.attachDebuggerHotkey(e),window.Browser={init:function(){}},l=function(){window.Module=function(e,t,n){var l=this,f=e.bootConfig.resources,h=window.Module||{},p=["DEBUGGING ENABLED"];h.print=function(e){return p.indexOf(e)<0&&console.log(e)},h.printErr=function(e){console.error(e),c.showErrorNotification()},h.preRun=h.preRun||[],h.postRun=h.postRun||[],h.preloadPlugins=[];var g,w,E=e.loadResources(f.assembly,(function(e){return"_framework/"+e}),"assembly"),S=e.loadResources(f.pdb||{},(function(e){return"_framework/"+e}),"pdb"),_=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");if(e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.blat")&&(g=e.loadResource("dotnet.timezones.blat","_framework/dotnet.timezones.blat",e.bootConfig.resources.runtime["dotnet.timezones.blat"],"globalization")),e.bootConfig.icuDataMode!=u.ICUDataMode.Invariant){var I=e.startOptions.applicationCulture||navigator.languages&&navigator.languages[0],C=function(e,t){if(!t||e.icuDataMode==u.ICUDataMode.All)return"icudt.dat";var n=t.split("-")[0];return["en","fr","it","de","es"].includes(n)?"icudt_EFIGS.dat":["zh","ko","ja"].includes(n)?"icudt_CJK.dat":"icudt_no_CJK.dat"}(e.bootConfig,I);w=e.loadResource(C,"_framework/"+C,e.bootConfig.resources.runtime[C],"globalization")}return h.instantiateWasm=function(e,t){return r(l,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,_];case 1:return[4,v(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),h.printErr(r),r;case 4:return t(n),[2]}}))})),[]},h.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],g&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),Module.FS_createPath("/","usr",!0,!0),Module.FS_createPath("/usr/","share",!0,!0),Module.FS_createPath("/usr/share/","zoneinfo",!0,!0),MONO.mono_wasm_load_data_archive(new Uint8Array(n),"/usr/share/zoneinfo/"),removeRunDependency(t),[2]}}))}))}(g),w?function(e){r(this,void 0,void 0,(function(){var t,n,r,i,a;return o(this,(function(o){switch(o.label){case 0:return t="blazor:icudata",addRunDependency(t),[4,e.response];case 1:return n=o.sent(),i=Uint8Array.bind,[4,n.arrayBuffer()];case 2:if(r=new(i.apply(Uint8Array,[void 0,o.sent()])),a=MONO.mono_wasm_load_bytes_into_heap(r),!MONO.mono_wasm_load_icu_data(a))throw new Error("Error loading ICU asset.");return removeRunDependency(t),[2]}}))}))}(w):MONO.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT","1"),E.forEach((function(e){return k(e,b(e.name,".dll"))})),S.forEach((function(e){return k(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){h.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources;if(e.startOptions.applicationCulture||navigator.languages&&navigator.languages[0],i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(l,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return p(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>f)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*l+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return p(e+(t||0))},readStringField:function(e,t,n){var r,o=p(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return h?void 0===(r=h.stringCache.get(o))&&(r=BINDING.conv_string(o),h.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return m(),h=new w},invokeWhenHeapUnlocked:function(e){h?h.enqueuePostReleaseAction(e):e()}};var d=document.createElement("a");function g(e){return e+12}function y(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function v(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function b(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}function m(){if(h)throw new Error("Assertion failed - heap is currently locked")}var w=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(h!==this)throw new Error("Trying to release a lock which isn't current");for(h=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),m()}},e}()},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]this.length)&&(r=this.length),n>=this.length)return e||i.alloc(0);if(r<=0)return e||i.alloc(0);var o,a,s=!!e,c=this._offset(n),u=r-n,l=u,f=s&&t||0,h=c[1];if(0===n&&r==this.length){if(!s)return 1===this._bufs.length?this._bufs[0]:i.concat(this._bufs,this.length);for(a=0;a(o=this._bufs[a].length-h))){this._bufs[a].copy(e,f,h,h+l);break}this._bufs[a].copy(e,f,h),f+=o,l-=o,h&&(h=0)}return e},a.prototype.shallowSlice=function(e,t){e=e||0,t=t||this.length,e<0&&(e+=this.length),t<0&&(t+=this.length);var n=this._offset(e),r=this._offset(t),o=this._bufs.slice(n[0],r[0]+1);return 0==r[1]?o.pop():o[o.length-1]=o[o.length-1].slice(0,r[1]),0!=n[1]&&(o[0]=o[0].slice(n[1])),new a(o)},a.prototype.toString=function(e,t,n){return this.slice(t,n).toString(e)},a.prototype.consume=function(e){for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},a.prototype.duplicate=function(){for(var e=0,t=new a;e0&&e.invokeMethodAsync("OnSpacerAfterVisible",r.boundingClientRect.bottom-r.intersectionRect.bottom,a,s)}}))}),{root:i,rootMargin:o+"px"});a.observe(t),a.observe(n);var s=u(t),c=u(n);function u(e){var t=new MutationObserver((function(){a.unobserve(e),a.observe(e)}));return t.observe(e,{attributes:!0}),t}r[e._id]={intersectionObserver:a,mutationObserverBefore:s,mutationObserverAfter:c}},dispose:function(e){var t=r[e._id];t&&(t.intersectionObserver.disconnect(),t.mutationObserverBefore.disconnect(),t.mutationObserverAfter.disconnect(),e.dispose(),delete r[e._id])}};var r={}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1].*)$/;function i(e,t){var n=e.currentElement;if(n&&n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r.groups&&r.groups.descriptor;if(!i)return;try{var s=function(e){var t=JSON.parse(e),n=t.type;if("server"!==n&&"webassembly"!==n)throw new Error("Invalid component type '"+n+"'.");return t}(i);switch(t){case"webassembly":return function(e,t,n){var r=e.type,o=e.assembly,i=e.typeName,s=e.parameterDefinitions,c=e.parameterValues,u=e.prerenderId;if("webassembly"!==r)return;if(!o)throw new Error("assembly must be defined when using a descriptor.");if(!i)throw new Error("typeName must be defined when using a descriptor.");if(u){var l=a(u,n);if(!l)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:c&&atob(c),start:t,prerenderId:u,end:l}}return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:c&&atob(c),start:t}}(s,n,e);case"server":return function(e,t,n){var r=e.type,o=e.descriptor,i=e.sequence,s=e.prerenderId;if("server"!==r)return;if(!o)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===i)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(i))throw new Error("Error parsing the sequence '"+i+"' for component '"+JSON.stringify(e)+"'");if(s){var c=a(s,n);if(!c)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,sequence:i,descriptor:o,start:t,prerenderId:s,end:c}}return{type:r,sequence:i,descriptor:o,start:t}}(s,n,e)}}catch(e){throw new Error("Found malformed component comment at "+n.textContent)}}}function a(e,t){for(;t.next()&&t.currentElement;){var n=t.currentElement;if(n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r[1];if(i)return s(i,e),n}}}function s(e,t){var n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error("Invalid end of component comment: '"+e+"'");var r=n.prerenderId;if(!r)throw new Error("End of component comment must have a value for the prerendered property: '"+e+"'");if(r!==t)throw new Error("End of component comment prerendered property must match the start comment prerender id: '"+t+"', '"+r+"'")}var c=function(){function e(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}return e.prototype.next=function(){return this.currentIndex++,this.currentIndex=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),c=r[n];n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(n)?r.showHidden=n:n&&t._extend(r,n),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=c),l(r,e,r.depth)}function c(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function u(e,t){return e}function l(e,n,r){if(e.customInspect&&n&&_(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,e);return v(o)||(o=l(e,o,r)),o}var i=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(y(t))return e.stylize(""+t,"number");if(d(t))return e.stylize(""+t,"boolean");if(g(t))return e.stylize("null","null")}(e,n);if(i)return i;var a=Object.keys(n),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),S(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return f(n);if(0===a.length){if(_(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(m(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(E(n))return e.stylize(Date.prototype.toString.call(n),"date");if(S(n))return f(n)}var u,w="",I=!1,C=["{","}"];(p(n)&&(I=!0,C=["[","]"]),_(n))&&(w=" [Function"+(n.name?": "+n.name:"")+"]");return m(n)&&(w=" "+RegExp.prototype.toString.call(n)),E(n)&&(w=" "+Date.prototype.toUTCString.call(n)),S(n)&&(w=" "+f(n)),0!==a.length||I&&0!=n.length?r<0?m(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=I?function(e,t,n,r,o){for(var i=[],a=0,s=t.length;a=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,w,C)):C[0]+w+C[1]}function f(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,n,r,o,i){var a,s,c;if((c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),O(r,o)||(a="["+o+"]"),s||(e.seen.indexOf(c.value)<0?(s=g(n)?l(e,c.value,null):l(e,c.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),b(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function p(e){return Array.isArray(e)}function d(e){return"boolean"==typeof e}function g(e){return null===e}function y(e){return"number"==typeof e}function v(e){return"string"==typeof e}function b(e){return void 0===e}function m(e){return w(e)&&"[object RegExp]"===I(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===I(e)}function S(e){return w(e)&&("[object Error]"===I(e)||e instanceof Error)}function _(e){return"function"==typeof e}function I(e){return Object.prototype.toString.call(e)}function C(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(n){if(b(i)&&(i=e.env.NODE_DEBUG||""),n=n.toUpperCase(),!a[n])if(new RegExp("\\b"+n+"\\b","i").test(i)){var r=e.pid;a[n]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",n,r,e)}}else a[n]=function(){};return a[n]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=p,t.isBoolean=d,t.isNull=g,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=v,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=m,t.isObject=w,t.isDate=E,t.isError=S,t.isFunction=_,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(59);var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function T(){var e=new Date,t=[C(e.getHours()),C(e.getMinutes()),C(e.getSeconds())].join(":");return[e.getDate(),k[e.getMonth()],t].join(" ")}function O(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",T(),t.format.apply(t,arguments))},t.inherits=n(60),t._extend=function(e,t){if(!t||!w(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var P="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function R(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(P&&e[P]){var t;if("function"!=typeof(t=e[P]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,P,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),o=[],i=0;i0?("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===u.prototype||(t=function(e){return u.from(e)}(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):E(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?E(e,a,t,!1):C(e,a)):E(e,a,t,!1))):r||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function _(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(p("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(I,e):I(e))}function I(e){p("emit readable"),e.emit("readable"),P(e)}function C(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(k,e,t))}function k(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;ei.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++r}return t.length-=r,o}(e,t):function(e,t){var n=u.allocUnsafe(e),r=t.head,o=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,a),0===(e-=a)){a===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++o}return t.length-=o,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function x(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(D,t,e))}function D(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function A(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return p("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?x(this):_(this),null;if(0===(e=S(e,t))&&t.ended)return 0===t.length&&x(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e0?R(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&x(this)),null!==r&&this.emit("data",r),r},m.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},m.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,p("pipe count=%d opts=%j",i.pipesCount,t);var c=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?l:m;function u(t,r){p("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,p("cleanup"),e.removeListener("close",v),e.removeListener("finish",b),e.removeListener("drain",f),e.removeListener("error",y),e.removeListener("unpipe",u),n.removeListener("end",l),n.removeListener("end",m),n.removeListener("data",g),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function l(){p("onend"),e.end()}i.endEmitted?o.nextTick(c):n.once("end",c),e.on("unpipe",u);var f=function(e){return function(){var t=e._readableState;p("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,P(e))}}(n);e.on("drain",f);var h=!1;var d=!1;function g(t){p("ondata"),d=!1,!1!==e.write(t)||d||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==A(i.pipes,e))&&!h&&(p("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,d=!0),n.pause())}function y(t){p("onerror",t),m(),e.removeListener("error",y),0===s(e,"error")&&e.emit("error",t)}function v(){e.removeListener("finish",b),m()}function b(){p("onfinish"),e.removeListener("close",v),m()}function m(){p("unpipe"),n.unpipe(e)}return n.on("data",g),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",y),e.once("close",v),e.once("finish",b),e.emit("pipe",n),i.flowing||(p("pipe resume"),n.resume()),e},m.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i0&&a.length>o&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,s=c,console&&console.warn&&console.warn(s)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=h.bind(r);return o.listener=n,r.wrapFn=o,o}function d(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var c=o[e];if(void 0===c)return!1;if("function"==typeof c)i(c,this,t);else{var u=c.length,l=y(c,u);for(n=0;n=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},s.prototype.listeners=function(e){return d(this,e,!0)},s.prototype.rawListeners=function(e){return d(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){e.exports=n(41).EventEmitter},function(e,t,n){"use strict";var r=n(24);function o(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(o,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?(r.nextTick(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){"use strict";var r=n(66).Buffer,o=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=u,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0)return o>0&&(e.lastNeed=o-1),o;if(--r=0)return o>0&&(e.lastNeed=o-2),o;if(--r=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";(function(t,r,o){var i=n(24);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=b;var s,c=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;b.WritableState=v;var u=n(19);u.inherits=n(15);var l={deprecate:n(69)},f=n(42),h=n(14).Buffer,p=o.Uint8Array||function(){};var d,g=n(43);function y(){}function v(e,t){s=s||n(9),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,u=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(I,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),I(e,t))}(e,n,r,t,o);else{var a=S(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||E(e,n),r?c(w,e,n,a,o):w(e,n,a,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(9),!(d.call(b,this)||this instanceof s))return new b(e);this._writableState=new v(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function m(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function w(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),I(e,t)}function E(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=n;for(var s=0,c=!0;n;)o[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;o.allBuffers=c,m(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,l=n.encoding,f=n.callback;if(m(e,t,!1,t.objectMode?1:u.length,u,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function S(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function _(e,t){e._final((function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),I(e,t)}))}function I(e,t){var n=S(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(_,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}u.inherits(b,f),v.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(v.prototype,"buffer",{get:l.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(d=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!d.call(this,e)||this===b&&(e&&e._writableState instanceof v)}})):d=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,o=this._writableState,a=!1,s=!o.objectMode&&(r=e,h.isBuffer(r)||r instanceof p);return s&&!h.isBuffer(e)&&(e=function(e){return h.from(e)}(e)),"function"==typeof t&&(n=t,t=null),s?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=y),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),i.nextTick(r,a),o=!1),o}(this,o,e,n))&&(o.pendingcb++,a=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=h.from(t,n));return t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var c=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,I(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=g.destroy,b.prototype._undestroy=g.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(13),n(67).setImmediate,n(8))},function(e,t,n){"use strict";e.exports=a;var r=n(9),o=n(19);function i(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.lengths?a.slice(s).buffer:null}else{var c,u=t;if(-1===(c=u.indexOf(r.a.RecordSeparator)))throw new Error("Message is incomplete.");s=c+1;n=u.substring(0,s),i=u.length>s?u.substring(s):null}var l=r.a.parse(n),f=JSON.parse(l[0]);if(f.type)throw new Error("Expected a handshake response from the server.");return[i,f]},t}()}).call(this,n(10).Buffer)},,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},a=this&&this.__spread||function(){for(var e=[],t=0;t0?a-4:a;for(n=0;n>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===s&&(t=o[e.charCodeAt(n)]<<2|o[e.charCodeAt(n+1)]>>4,c[l++]=255&t);1===s&&(t=o[e.charCodeAt(n)]<<10|o[e.charCodeAt(n+1)]<<4|o[e.charCodeAt(n+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;as?s:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,c=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var o,i,a=[],s=t;s>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,c=(1<>1,l=-7,f=n?o-1:0,h=n?-1:1,p=e[t+f];for(f+=h,i=p&(1<<-l)-1,p>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=h,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=r;l>0;a=256*a+e[t+f],f+=h,l-=8);if(0===i)i=1-u;else{if(i===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),i-=u}return(p?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,c,u=8*i-o-1,l=(1<>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,d=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+f>=1?h/c:h*Math.pow(2,1-f))*c>=2&&(a++,c/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*c-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[n+p]=255&s,p+=d,s/=256,o-=8);for(a=a<0;e[n+p]=255&a,p+=d,a/=256,u-=8);e[n+p-d]|=128*g}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";(function(t){var r=n(58); /*! * The buffer module from node.js, for the browser. * diff --git a/src/Components/Web.JS/dist/Release/blazor.webassembly.js b/src/Components/Web.JS/dist/Release/blazor.webassembly.js index 00ac43ba67..e126706898 100644 --- a/src/Components/Web.JS/dist/Release/blazor.webassembly.js +++ b/src/Components/Web.JS/dist/Release/blazor.webassembly.js @@ -1 +1 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=48)}([,,,function(e,t,n){"use strict";var r;n.r(t),n.d(t,"DotNet",(function(){return r})),function(e){var t;window.DotNet=e;var n=[],r=function(){function e(e){this._jsObject=e,this._cachedFunctions=new Map}return e.prototype.findFunction=function(e){var t=this._cachedFunctions.get(e);if(t)return t;var n,r=this._jsObject;if(e.split(".").forEach((function(t){if(!(t in r))throw new Error("Could not find '"+e+"' ('"+t+"' was undefined).");n=r,r=r[t]})),r instanceof Function)return r=r.bind(n),this._cachedFunctions.set(e,r),r;throw new Error("The value '"+e+"' is not a function.")},e.prototype.getWrappedObject=function(){return this._jsObject},e}(),o={},i=((t={})[0]=new r(window),t);i[0]._cachedFunctions.set("import",(function(e){return"string"==typeof e&&e.startsWith("./")&&(e=document.baseURI+e.substr(2)),import(e)}));var a,s=1,u=1,c=null;function l(e){n.push(e)}function f(e){var t;if(e&&"object"==typeof e){i[u]=new r(e);var n=((t={}).__jsObjectId=u,t);return u++,n}throw new Error("Cannot create a JSObjectReference from the value '"+e+"'.")}function d(e){return e?JSON.parse(e,(function(e,t){return n.reduce((function(t,n){return n(e,t)}),t)})):null}function p(e,t,n,r){var o=m();if(o.invokeDotNetFromJS){var i=JSON.stringify(r,E),a=o.invokeDotNetFromJS(e,t,n,i);return a?d(a):null}throw new Error("The current dispatcher does not support synchronous calls from JS to .NET. Use invokeMethodAsync instead.")}function h(e,t,n,r){if(e&&n)throw new Error("For instance method calls, assemblyName should be null. Received '"+e+"'.");var i=s++,a=new Promise((function(e,t){o[i]={resolve:e,reject:t}}));try{var u=JSON.stringify(r,E);m().beginInvokeDotNetFromJS(i,e,t,n,u)}catch(e){v(i,!1,e)}return a}function m(){if(null!==c)return c;throw new Error("No .NET call dispatcher has been set.")}function v(e,t,n){if(!o.hasOwnProperty(e))throw new Error("There is no pending async call with ID "+e+".");var r=o[e];delete o[e],t?r.resolve(n):r.reject(n)}function y(e){return e instanceof Error?e.message+"\n"+e.stack:e?e.toString():"null"}function b(e,t){var n=i[t];if(n)return n.findFunction(e);throw new Error("JS object instance with ID "+t+" does not exist (has it been disposed?).")}function g(e){delete i[e]}e.attachDispatcher=function(e){c=e},e.attachReviver=l,e.invokeMethod=function(e,t){for(var n=[],r=2;r0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(c(i)&&c(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(u(i))throw new Error("Not implemented: moving existing logical children");var a=c(t);if(n0;)e(r,0)}var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=u,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return c(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=c,t.permuteLogicalChildren=function(e,t){var n=c(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=u(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):d(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(26),n(17);var r=n(27),o=n(7),i={},a=!1;function s(e,t,n){var o=i[e];o||(o=i[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=s,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");s(n||0,o.toLogicalElement(r,!0),t)},t.getRendererer=function(e){return i[e]},t.renderBatch=function(e,t){var n=i[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),s=r.values(o),u=r.count(o),c=t.referenceFrames(),l=r.values(c),f=t.diffReader,d=0;d0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var l,f;s.attachDebuggerHotkey(e),window.Browser={init:function(){}},l=function(){window.Module=function(e,t,n){var l=this,f=e.bootConfig.resources,d=window.Module||{},p=["DEBUGGING ENABLED"];d.print=function(e){return p.indexOf(e)<0&&console.log(e)},d.printErr=function(e){console.error(e),u.showErrorNotification()},d.preRun=d.preRun||[],d.postRun=d.postRun||[],d.preloadPlugins=[];var m,w,_=e.loadResources(f.assembly,(function(e){return"_framework/"+e}),"assembly"),E=e.loadResources(f.pdb||{},(function(e){return"_framework/"+e}),"pdb"),I=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");if(e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.blat")&&(m=e.loadResource("dotnet.timezones.blat","_framework/dotnet.timezones.blat",e.bootConfig.resources.runtime["dotnet.timezones.blat"],"globalization")),e.bootConfig.icuDataMode!=c.ICUDataMode.Invariant){var C=e.startOptions.applicationCulture||navigator.languages&&navigator.languages[0],N=function(e,t){if(!t||e.icuDataMode==c.ICUDataMode.All)return"icudt.dat";var n=t.split("-")[0];return["en","fr","it","de","es"].includes(n)?"icudt_EFIGS.dat":["zh","ko","ja"].includes(n)?"icudt_CJK.dat":"icudt_no_CJK.dat"}(e.bootConfig,C);w=e.loadResource(N,"_framework/"+N,e.bootConfig.resources.runtime[N],"globalization")}return d.instantiateWasm=function(e,t){return r(l,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,I];case 1:return[4,y(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),d.printErr(r),r;case 4:return t(n),[2]}}))})),[]},d.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],m&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),Module.FS_createPath("/","usr",!0,!0),Module.FS_createPath("/usr/","share",!0,!0),Module.FS_createPath("/usr/share/","zoneinfo",!0,!0),MONO.mono_wasm_load_data_archive(new Uint8Array(n),"/usr/share/zoneinfo/"),removeRunDependency(t),[2]}}))}))}(m),w?function(e){r(this,void 0,void 0,(function(){var t,n,r,i,a;return o(this,(function(o){switch(o.label){case 0:return t="blazor:icudata",addRunDependency(t),[4,e.response];case 1:return n=o.sent(),i=Uint8Array.bind,[4,n.arrayBuffer()];case 2:if(r=new(i.apply(Uint8Array,[void 0,o.sent()])),a=MONO.mono_wasm_load_bytes_into_heap(r),!MONO.mono_wasm_load_icu_data(a))throw new Error("Error loading ICU asset.");return removeRunDependency(t),[2]}}))}))}(w):MONO.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT","1"),_.forEach((function(e){return A(e,b(e.name,".dll"))})),E.forEach((function(e){return A(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){d.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources,a=e.startOptions.applicationCulture||navigator.languages&&navigator.languages[0];if(e.bootConfig.icuDataMode==c.ICUDataMode.Sharded&&n&&n[0]!==a)throw new Error("To change culture dynamically during startup, set true in the application's project file.");if(i){var s=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(l,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(s.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return p(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>f)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*l+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return p(e+(t||0))},readStringField:function(e,t,n){var r,o=p(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return d?void 0===(r=d.stringCache.get(o))&&(r=BINDING.conv_string(o),d.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return g(),d=new w},invokeWhenHeapUnlocked:function(e){d?d.enqueuePostReleaseAction(e):e()}};var h=document.createElement("a");function m(e){return e+12}function v(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function y(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function b(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}function g(){if(d)throw new Error("Assertion failed - heap is currently locked")}var w=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(d!==this)throw new Error("Trying to release a lock which isn't current");for(d=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),g()}},e}()},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&e.invokeMethodAsync("OnSpacerAfterVisible",r.boundingClientRect.bottom-r.intersectionRect.bottom,a,s)}}))}),{root:i,rootMargin:o+"px"});a.observe(t),a.observe(n);var s=c(t),u=c(n);function c(e){var t=new MutationObserver((function(){a.unobserve(e),a.observe(e)}));return t.observe(e,{attributes:!0}),t}r[e._id]={intersectionObserver:a,mutationObserverBefore:s,mutationObserverAfter:u}},dispose:function(e){var t=r[e._id];t&&(t.intersectionObserver.disconnect(),t.mutationObserverBefore.disconnect(),t.mutationObserverAfter.disconnect(),e.dispose(),delete r[e._id])}};var r={}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1].*)$/;function i(e,t){var n=e.currentElement;if(n&&n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r.groups&&r.groups.descriptor;if(!i)return;try{var s=function(e){var t=JSON.parse(e),n=t.type;if("server"!==n&&"webassembly"!==n)throw new Error("Invalid component type '"+n+"'.");return t}(i);switch(t){case"webassembly":return function(e,t,n){var r=e.type,o=e.assembly,i=e.typeName,s=e.parameterDefinitions,u=e.parameterValues,c=e.prerenderId;if("webassembly"!==r)return;if(!o)throw new Error("assembly must be defined when using a descriptor.");if(!i)throw new Error("typeName must be defined when using a descriptor.");if(c){var l=a(c,n);if(!l)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:u&&atob(u),start:t,prerenderId:c,end:l}}return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:u&&atob(u),start:t}}(s,n,e);case"server":return function(e,t,n){var r=e.type,o=e.descriptor,i=e.sequence,s=e.prerenderId;if("server"!==r)return;if(!o)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===i)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(i))throw new Error("Error parsing the sequence '"+i+"' for component '"+JSON.stringify(e)+"'");if(s){var u=a(s,n);if(!u)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,sequence:i,descriptor:o,start:t,prerenderId:s,end:u}}return{type:r,sequence:i,descriptor:o,start:t}}(s,n,e)}}catch(e){throw new Error("Found malformed component comment at "+n.textContent)}}}function a(e,t){for(;t.next()&&t.currentElement;){var n=t.currentElement;if(n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r[1];if(i)return s(i,e),n}}}function s(e,t){var n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error("Invalid end of component comment: '"+e+"'");var r=n.prerenderId;if(!r)throw new Error("End of component comment must have a value for the prerendered property: '"+e+"'");if(r!==t)throw new Error("End of component comment prerendered property must match the start comment prerender id: '"+t+"', '"+r+"'")}var u=function(){function e(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}return e.prototype.next=function(){return this.currentIndex++,this.currentIndex0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var a=n(3);n(25);var s=n(17),u=n(20),c=n(12),l=n(49),f=n(37),d=n(18),p=n(50),h=n(51),m=n(22),v=n(52),y=n(38),b=!1;function g(e){return r(this,void 0,void 0,(function(){var t,n,f,g,_,E,I,C,N,A,S,k=this;return o(this,(function(F){switch(F.label){case 0:if(b)throw new Error("Blazor has already started.");return b=!0,d.setEventDispatcher((function(e,t){c.getRendererer(e.browserRendererId).eventDelegator.getHandler(e.eventHandlerId)&&u.monoPlatform.invokeWhenHeapUnlocked((function(){return a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","DispatchEvent",e,JSON.stringify(t))}))})),window.Blazor._internal.invokeJSFromDotNet=w,t=s.setPlatform(u.monoPlatform),window.Blazor.platform=t,window.Blazor._internal.renderBatch=function(e,t){var n=u.monoPlatform.beginHeapLock();try{c.renderBatch(e,new l.SharedMemoryRenderBatch(t))}finally{n.release()}},n=window.Blazor._internal.navigationManager.getBaseURI,f=window.Blazor._internal.navigationManager.getLocationHref,window.Blazor._internal.navigationManager.getUnmarshalledBaseURI=function(){return BINDING.js_string_to_mono_string(n())},window.Blazor._internal.navigationManager.getUnmarshalledLocationHref=function(){return BINDING.js_string_to_mono_string(f())},window.Blazor._internal.navigationManager.listenForNavigationEvents((function(e,t){return r(k,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return[4,a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChanged",e,t)];case 1:return n.sent(),[2]}}))}))})),g=null==e?void 0:e.environment,_=m.BootConfigResult.initAsync(g),E=y.discoverComponents(document,"webassembly"),I=new v.WebAssemblyComponentAttacher(E),window.Blazor._internal.registeredComponents={getRegisteredComponentsCount:function(){return I.getCount()},getId:function(e){return I.getId(e)},getAssembly:function(e){return BINDING.js_string_to_mono_string(I.getAssembly(e))},getTypeName:function(e){return BINDING.js_string_to_mono_string(I.getTypeName(e))},getParameterDefinitions:function(e){return BINDING.js_string_to_mono_string(I.getParameterDefinitions(e)||"")},getParameterValues:function(e){return BINDING.js_string_to_mono_string(I.getParameterValues(e)||"")}},window.Blazor._internal.attachRootComponentToElement=function(e,t,n){var r=I.resolveRegisteredElement(e);r?c.attachRootComponentToLogicalElement(n,r,t):c.attachRootComponentToElement(e,t,n)},[4,_];case 1:return C=F.sent(),[4,Promise.all([p.WebAssemblyResourceLoader.initAsync(C.bootConfig,e||{}),h.WebAssemblyConfigLoader.initAsync(C)])];case 2:N=i.apply(void 0,[F.sent(),1]),A=N[0],F.label=3;case 3:return F.trys.push([3,5,,6]),[4,t.start(A)];case 4:return F.sent(),[3,6];case 5:throw S=F.sent(),new Error("Failed to start platform. Reason: "+S);case 6:return t.callEntryPoint(A.bootConfig.entryAssembly),[2]}}))}))}function w(e,t,n,r){var o=u.monoPlatform.readStringField(e,0),i=u.monoPlatform.readInt32Field(e,4),s=u.monoPlatform.readStringField(e,8),c=u.monoPlatform.readUint64Field(e,20);if(null!==s){var l=u.monoPlatform.readUint64Field(e,12);if(0!==l)return a.DotNet.jsCallDispatcher.beginInvokeJSFromDotNet(l,o,s,i,c),0;var f=a.DotNet.jsCallDispatcher.invokeJSFromDotNet(o,s,i,c);return null===f?0:BINDING.js_string_to_mono_string(f)}var d=a.DotNet.jsCallDispatcher.findJSFunction(o,c).call(null,t,n,r);switch(i){case a.DotNet.JSCallResultType.Default:return d;case a.DotNet.JSCallResultType.JSObjectReference:return a.DotNet.createJSObjectReference(d).__jsObjectId;default:throw new Error("Invalid JS call result type '"+i+"'.")}}window.Blazor.start=g,f.shouldAutoStart()&&g().catch((function(e){"undefined"!=typeof Module&&Module.printErr?Module.printErr(e):console.error(e)}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(17),o=function(){function e(e){this.batchAddress=e,this.arrayRangeReader=i,this.arrayBuilderSegmentReader=a,this.diffReader=s,this.editReader=u,this.frameReader=c}return e.prototype.updatedComponents=function(){return r.platform.readStructField(this.batchAddress,0)},e.prototype.referenceFrames=function(){return r.platform.readStructField(this.batchAddress,i.structLength)},e.prototype.disposedComponentIds=function(){return r.platform.readStructField(this.batchAddress,2*i.structLength)},e.prototype.disposedEventHandlerIds=function(){return r.platform.readStructField(this.batchAddress,3*i.structLength)},e.prototype.updatedComponentsEntry=function(e,t){return l(e,t,s.structLength)},e.prototype.referenceFramesEntry=function(e,t){return l(e,t,c.structLength)},e.prototype.disposedComponentIdsEntry=function(e,t){var n=l(e,t,4);return r.platform.readInt32Field(n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=l(e,t,8);return r.platform.readUint64Field(n)},e}();t.SharedMemoryRenderBatch=o;var i={structLength:8,values:function(e){return r.platform.readObjectField(e,0)},count:function(e){return r.platform.readInt32Field(e,4)}},a={structLength:12,values:function(e){var t=r.platform.readObjectField(e,0),n=r.platform.getObjectFieldsBaseAddress(t);return r.platform.readObjectField(n,0)},offset:function(e){return r.platform.readInt32Field(e,4)},count:function(e){return r.platform.readInt32Field(e,8)}},s={structLength:4+a.structLength,componentId:function(e){return r.platform.readInt32Field(e,0)},edits:function(e){return r.platform.readStructField(e,4)},editsEntry:function(e,t){return l(e,t,u.structLength)}},u={structLength:20,editType:function(e){return r.platform.readInt32Field(e,0)},siblingIndex:function(e){return r.platform.readInt32Field(e,4)},newTreeIndex:function(e){return r.platform.readInt32Field(e,8)},moveToSiblingIndex:function(e){return r.platform.readInt32Field(e,8)},removedAttributeName:function(e){return r.platform.readStringField(e,16)}},c={structLength:36,frameType:function(e){return r.platform.readInt16Field(e,4)},subtreeLength:function(e){return r.platform.readInt32Field(e,8)},elementReferenceCaptureId:function(e){return r.platform.readStringField(e,16)},componentId:function(e){return r.platform.readInt32Field(e,12)},elementName:function(e){return r.platform.readStringField(e,16)},textContent:function(e){return r.platform.readStringField(e,16)},markupContent:function(e){return r.platform.readStringField(e,16)},attributeName:function(e){return r.platform.readStringField(e,16)},attributeValue:function(e){return r.platform.readStringField(e,24,!0)},attributeEventHandlerId:function(e){return r.platform.readUint64Field(e,8)}};function l(e,t,n){return r.platform.getArrayEntryPtr(e,t,n)}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(c(i)&&c(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(u(i))throw new Error("Not implemented: moving existing logical children");var a=c(t);if(n0;)e(r,0)}var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=u,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return c(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=c,t.permuteLogicalChildren=function(e,t){var n=c(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=u(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):d(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(26),n(17);var r=n(27),o=n(7),i={},a=!1;function s(e,t,n){var o=i[e];o||(o=i[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=s,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");s(n||0,o.toLogicalElement(r,!0),t)},t.getRendererer=function(e){return i[e]},t.renderBatch=function(e,t){var n=i[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),s=r.values(o),u=r.count(o),c=t.referenceFrames(),l=r.values(c),f=t.diffReader,d=0;d0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var l,f;s.attachDebuggerHotkey(e),window.Browser={init:function(){}},l=function(){window.Module=function(e,t,n){var l=this,f=e.bootConfig.resources,d=window.Module||{},p=["DEBUGGING ENABLED"];d.print=function(e){return p.indexOf(e)<0&&console.log(e)},d.printErr=function(e){console.error(e),u.showErrorNotification()},d.preRun=d.preRun||[],d.postRun=d.postRun||[],d.preloadPlugins=[];var m,w,_=e.loadResources(f.assembly,(function(e){return"_framework/"+e}),"assembly"),E=e.loadResources(f.pdb||{},(function(e){return"_framework/"+e}),"pdb"),I=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");if(e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.blat")&&(m=e.loadResource("dotnet.timezones.blat","_framework/dotnet.timezones.blat",e.bootConfig.resources.runtime["dotnet.timezones.blat"],"globalization")),e.bootConfig.icuDataMode!=c.ICUDataMode.Invariant){var C=e.startOptions.applicationCulture||navigator.languages&&navigator.languages[0],N=function(e,t){if(!t||e.icuDataMode==c.ICUDataMode.All)return"icudt.dat";var n=t.split("-")[0];return["en","fr","it","de","es"].includes(n)?"icudt_EFIGS.dat":["zh","ko","ja"].includes(n)?"icudt_CJK.dat":"icudt_no_CJK.dat"}(e.bootConfig,C);w=e.loadResource(N,"_framework/"+N,e.bootConfig.resources.runtime[N],"globalization")}return d.instantiateWasm=function(e,t){return r(l,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,I];case 1:return[4,y(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),d.printErr(r),r;case 4:return t(n),[2]}}))})),[]},d.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],m&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),Module.FS_createPath("/","usr",!0,!0),Module.FS_createPath("/usr/","share",!0,!0),Module.FS_createPath("/usr/share/","zoneinfo",!0,!0),MONO.mono_wasm_load_data_archive(new Uint8Array(n),"/usr/share/zoneinfo/"),removeRunDependency(t),[2]}}))}))}(m),w?function(e){r(this,void 0,void 0,(function(){var t,n,r,i,a;return o(this,(function(o){switch(o.label){case 0:return t="blazor:icudata",addRunDependency(t),[4,e.response];case 1:return n=o.sent(),i=Uint8Array.bind,[4,n.arrayBuffer()];case 2:if(r=new(i.apply(Uint8Array,[void 0,o.sent()])),a=MONO.mono_wasm_load_bytes_into_heap(r),!MONO.mono_wasm_load_icu_data(a))throw new Error("Error loading ICU asset.");return removeRunDependency(t),[2]}}))}))}(w):MONO.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT","1"),_.forEach((function(e){return A(e,b(e.name,".dll"))})),E.forEach((function(e){return A(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){d.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources;if(e.startOptions.applicationCulture||navigator.languages&&navigator.languages[0],i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(l,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return p(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>f)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*l+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return p(e+(t||0))},readStringField:function(e,t,n){var r,o=p(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return d?void 0===(r=d.stringCache.get(o))&&(r=BINDING.conv_string(o),d.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return g(),d=new w},invokeWhenHeapUnlocked:function(e){d?d.enqueuePostReleaseAction(e):e()}};var h=document.createElement("a");function m(e){return e+12}function v(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function y(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function b(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}function g(){if(d)throw new Error("Assertion failed - heap is currently locked")}var w=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(d!==this)throw new Error("Trying to release a lock which isn't current");for(d=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),g()}},e}()},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&e.invokeMethodAsync("OnSpacerAfterVisible",r.boundingClientRect.bottom-r.intersectionRect.bottom,a,s)}}))}),{root:i,rootMargin:o+"px"});a.observe(t),a.observe(n);var s=c(t),u=c(n);function c(e){var t=new MutationObserver((function(){a.unobserve(e),a.observe(e)}));return t.observe(e,{attributes:!0}),t}r[e._id]={intersectionObserver:a,mutationObserverBefore:s,mutationObserverAfter:u}},dispose:function(e){var t=r[e._id];t&&(t.intersectionObserver.disconnect(),t.mutationObserverBefore.disconnect(),t.mutationObserverAfter.disconnect(),e.dispose(),delete r[e._id])}};var r={}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1].*)$/;function i(e,t){var n=e.currentElement;if(n&&n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r.groups&&r.groups.descriptor;if(!i)return;try{var s=function(e){var t=JSON.parse(e),n=t.type;if("server"!==n&&"webassembly"!==n)throw new Error("Invalid component type '"+n+"'.");return t}(i);switch(t){case"webassembly":return function(e,t,n){var r=e.type,o=e.assembly,i=e.typeName,s=e.parameterDefinitions,u=e.parameterValues,c=e.prerenderId;if("webassembly"!==r)return;if(!o)throw new Error("assembly must be defined when using a descriptor.");if(!i)throw new Error("typeName must be defined when using a descriptor.");if(c){var l=a(c,n);if(!l)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:u&&atob(u),start:t,prerenderId:c,end:l}}return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:u&&atob(u),start:t}}(s,n,e);case"server":return function(e,t,n){var r=e.type,o=e.descriptor,i=e.sequence,s=e.prerenderId;if("server"!==r)return;if(!o)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===i)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(i))throw new Error("Error parsing the sequence '"+i+"' for component '"+JSON.stringify(e)+"'");if(s){var u=a(s,n);if(!u)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,sequence:i,descriptor:o,start:t,prerenderId:s,end:u}}return{type:r,sequence:i,descriptor:o,start:t}}(s,n,e)}}catch(e){throw new Error("Found malformed component comment at "+n.textContent)}}}function a(e,t){for(;t.next()&&t.currentElement;){var n=t.currentElement;if(n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r[1];if(i)return s(i,e),n}}}function s(e,t){var n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error("Invalid end of component comment: '"+e+"'");var r=n.prerenderId;if(!r)throw new Error("End of component comment must have a value for the prerendered property: '"+e+"'");if(r!==t)throw new Error("End of component comment prerendered property must match the start comment prerender id: '"+t+"', '"+r+"'")}var u=function(){function e(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}return e.prototype.next=function(){return this.currentIndex++,this.currentIndex0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var a=n(3);n(25);var s=n(17),u=n(20),c=n(12),l=n(49),f=n(37),d=n(18),p=n(50),h=n(51),m=n(22),v=n(52),y=n(38),b=!1;function g(e){return r(this,void 0,void 0,(function(){var t,n,f,g,_,E,I,C,N,A,S,O=this;return o(this,(function(k){switch(k.label){case 0:if(b)throw new Error("Blazor has already started.");return b=!0,d.setEventDispatcher((function(e,t){c.getRendererer(e.browserRendererId).eventDelegator.getHandler(e.eventHandlerId)&&u.monoPlatform.invokeWhenHeapUnlocked((function(){return a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","DispatchEvent",e,JSON.stringify(t))}))})),window.Blazor._internal.invokeJSFromDotNet=w,t=s.setPlatform(u.monoPlatform),window.Blazor.platform=t,window.Blazor._internal.renderBatch=function(e,t){var n=u.monoPlatform.beginHeapLock();try{c.renderBatch(e,new l.SharedMemoryRenderBatch(t))}finally{n.release()}},n=window.Blazor._internal.navigationManager.getBaseURI,f=window.Blazor._internal.navigationManager.getLocationHref,window.Blazor._internal.navigationManager.getUnmarshalledBaseURI=function(){return BINDING.js_string_to_mono_string(n())},window.Blazor._internal.navigationManager.getUnmarshalledLocationHref=function(){return BINDING.js_string_to_mono_string(f())},window.Blazor._internal.navigationManager.listenForNavigationEvents((function(e,t){return r(O,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return[4,a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChanged",e,t)];case 1:return n.sent(),[2]}}))}))})),g=null==e?void 0:e.environment,_=m.BootConfigResult.initAsync(g),E=y.discoverComponents(document,"webassembly"),I=new v.WebAssemblyComponentAttacher(E),window.Blazor._internal.registeredComponents={getRegisteredComponentsCount:function(){return I.getCount()},getId:function(e){return I.getId(e)},getAssembly:function(e){return BINDING.js_string_to_mono_string(I.getAssembly(e))},getTypeName:function(e){return BINDING.js_string_to_mono_string(I.getTypeName(e))},getParameterDefinitions:function(e){return BINDING.js_string_to_mono_string(I.getParameterDefinitions(e)||"")},getParameterValues:function(e){return BINDING.js_string_to_mono_string(I.getParameterValues(e)||"")}},window.Blazor._internal.attachRootComponentToElement=function(e,t,n){var r=I.resolveRegisteredElement(e);r?c.attachRootComponentToLogicalElement(n,r,t):c.attachRootComponentToElement(e,t,n)},[4,_];case 1:return C=k.sent(),[4,Promise.all([p.WebAssemblyResourceLoader.initAsync(C.bootConfig,e||{}),h.WebAssemblyConfigLoader.initAsync(C)])];case 2:N=i.apply(void 0,[k.sent(),1]),A=N[0],k.label=3;case 3:return k.trys.push([3,5,,6]),[4,t.start(A)];case 4:return k.sent(),[3,6];case 5:throw S=k.sent(),new Error("Failed to start platform. Reason: "+S);case 6:return t.callEntryPoint(A.bootConfig.entryAssembly),[2]}}))}))}function w(e,t,n,r){var o=u.monoPlatform.readStringField(e,0),i=u.monoPlatform.readInt32Field(e,4),s=u.monoPlatform.readStringField(e,8),c=u.monoPlatform.readUint64Field(e,20);if(null!==s){var l=u.monoPlatform.readUint64Field(e,12);if(0!==l)return a.DotNet.jsCallDispatcher.beginInvokeJSFromDotNet(l,o,s,i,c),0;var f=a.DotNet.jsCallDispatcher.invokeJSFromDotNet(o,s,i,c);return null===f?0:BINDING.js_string_to_mono_string(f)}var d=a.DotNet.jsCallDispatcher.findJSFunction(o,c).call(null,t,n,r);switch(i){case a.DotNet.JSCallResultType.Default:return d;case a.DotNet.JSCallResultType.JSObjectReference:return a.DotNet.createJSObjectReference(d).__jsObjectId;default:throw new Error("Invalid JS call result type '"+i+"'.")}}window.Blazor.start=g,f.shouldAutoStart()&&g().catch((function(e){"undefined"!=typeof Module&&Module.printErr?Module.printErr(e):console.error(e)}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(17),o=function(){function e(e){this.batchAddress=e,this.arrayRangeReader=i,this.arrayBuilderSegmentReader=a,this.diffReader=s,this.editReader=u,this.frameReader=c}return e.prototype.updatedComponents=function(){return r.platform.readStructField(this.batchAddress,0)},e.prototype.referenceFrames=function(){return r.platform.readStructField(this.batchAddress,i.structLength)},e.prototype.disposedComponentIds=function(){return r.platform.readStructField(this.batchAddress,2*i.structLength)},e.prototype.disposedEventHandlerIds=function(){return r.platform.readStructField(this.batchAddress,3*i.structLength)},e.prototype.updatedComponentsEntry=function(e,t){return l(e,t,s.structLength)},e.prototype.referenceFramesEntry=function(e,t){return l(e,t,c.structLength)},e.prototype.disposedComponentIdsEntry=function(e,t){var n=l(e,t,4);return r.platform.readInt32Field(n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=l(e,t,8);return r.platform.readUint64Field(n)},e}();t.SharedMemoryRenderBatch=o;var i={structLength:8,values:function(e){return r.platform.readObjectField(e,0)},count:function(e){return r.platform.readInt32Field(e,4)}},a={structLength:12,values:function(e){var t=r.platform.readObjectField(e,0),n=r.platform.getObjectFieldsBaseAddress(t);return r.platform.readObjectField(n,0)},offset:function(e){return r.platform.readInt32Field(e,4)},count:function(e){return r.platform.readInt32Field(e,8)}},s={structLength:4+a.structLength,componentId:function(e){return r.platform.readInt32Field(e,0)},edits:function(e){return r.platform.readStructField(e,4)},editsEntry:function(e,t){return l(e,t,u.structLength)}},u={structLength:20,editType:function(e){return r.platform.readInt32Field(e,0)},siblingIndex:function(e){return r.platform.readInt32Field(e,4)},newTreeIndex:function(e){return r.platform.readInt32Field(e,8)},moveToSiblingIndex:function(e){return r.platform.readInt32Field(e,8)},removedAttributeName:function(e){return r.platform.readStringField(e,16)}},c={structLength:36,frameType:function(e){return r.platform.readInt16Field(e,4)},subtreeLength:function(e){return r.platform.readInt32Field(e,8)},elementReferenceCaptureId:function(e){return r.platform.readStringField(e,16)},componentId:function(e){return r.platform.readInt32Field(e,12)},elementName:function(e){return r.platform.readStringField(e,16)},textContent:function(e){return r.platform.readStringField(e,16)},markupContent:function(e){return r.platform.readStringField(e,16)},attributeName:function(e){return r.platform.readStringField(e,16)},attributeValue:function(e){return r.platform.readStringField(e,24,!0)},attributeEventHandlerId:function(e){return r.platform.readUint64Field(e,8)}};function l(e,t,n){return r.platform.getArrayEntryPtr(e,t,n)}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]true in the application\'s project file.'); - } - if (satelliteResources) { const resourcePromises = Promise.all(culturesToLoad .filter(culture => satelliteResources.hasOwnProperty(culture)) @@ -404,6 +399,14 @@ function createEmscriptenModuleInstance(resourceLoader: WebAssemblyResourceLoade } resourceLoader.purgeUnusedCacheEntriesAsync(); // Don't await - it's fine to run in background + if (resourceLoader.bootConfig.icuDataMode === ICUDataMode.Sharded) { + MONO.mono_wasm_setenv('__BLAZOR_SHARDED_ICU', '1'); + + if (resourceLoader.startOptions.applicationCulture) { + // If a culture is specified via start options use that to initialize the Emscripten \ .NET culture. + MONO.mono_wasm_setenv('LANG', `${resourceLoader.startOptions.applicationCulture}.UTF-8`); + } + } MONO.mono_wasm_setenv("MONO_URI_DOTNETRELATIVEORABSOLUTE", "true"); let timeZone = "UTC"; try { @@ -521,7 +524,7 @@ async function loadTimezone(timeZoneResource: LoadingResource): Promise { function getICUResourceName(bootConfig: BootJsonData, culture: string | undefined): string { const combinedICUResourceName = 'icudt.dat'; - if (!culture || bootConfig.icuDataMode == ICUDataMode.All) { + if (!culture || bootConfig.icuDataMode === ICUDataMode.All) { return combinedICUResourceName; } diff --git a/src/Components/WebAssembly/WebAssembly/src/Hosting/EntrypointInvoker.cs b/src/Components/WebAssembly/WebAssembly/src/Hosting/EntrypointInvoker.cs index 5fdea9e41b..528a805444 100644 --- a/src/Components/WebAssembly/WebAssembly/src/Hosting/EntrypointInvoker.cs +++ b/src/Components/WebAssembly/WebAssembly/src/Hosting/EntrypointInvoker.cs @@ -2,6 +2,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Globalization; using System.Linq; using System.Reflection; using System.Threading.Tasks; @@ -17,6 +18,8 @@ namespace Microsoft.AspNetCore.Components.WebAssembly.Hosting // do change this it will be non-breaking. public static async void InvokeEntrypoint(string assemblyName, string[] args) { + WebAssemblyCultureProvider.Initialize(); + try { var assembly = Assembly.Load(assemblyName); diff --git a/src/Components/WebAssembly/WebAssembly/src/Hosting/SatelliteResourcesLoader.cs b/src/Components/WebAssembly/WebAssembly/src/Hosting/WebAssemblyCultureProvider.cs similarity index 58% rename from src/Components/WebAssembly/WebAssembly/src/Hosting/SatelliteResourcesLoader.cs rename to src/Components/WebAssembly/WebAssembly/src/Hosting/WebAssemblyCultureProvider.cs index 9e7430308d..3d8ceb8f65 100644 --- a/src/Components/WebAssembly/WebAssembly/src/Hosting/SatelliteResourcesLoader.cs +++ b/src/Components/WebAssembly/WebAssembly/src/Hosting/WebAssemblyCultureProvider.cs @@ -1,17 +1,17 @@ // 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. +using System; using System.Collections.Generic; using System.Globalization; using System.IO; -using System.Reflection; using System.Runtime.Loader; using System.Threading.Tasks; using Microsoft.AspNetCore.Components.WebAssembly.Services; namespace Microsoft.AspNetCore.Components.WebAssembly.Hosting { - internal class SatelliteResourcesLoader + internal class WebAssemblyCultureProvider { internal const string GetSatelliteAssemblies = "window.Blazor._internal.getSatelliteAssemblies"; internal const string ReadSatelliteAssemblies = "window.Blazor._internal.readSatelliteAssemblies"; @@ -19,9 +19,44 @@ namespace Microsoft.AspNetCore.Components.WebAssembly.Hosting private readonly WebAssemblyJSRuntimeInvoker _invoker; // For unit testing. - internal SatelliteResourcesLoader(WebAssemblyJSRuntimeInvoker invoker) + internal WebAssemblyCultureProvider(WebAssemblyJSRuntimeInvoker invoker, CultureInfo initialCulture, CultureInfo initialUICulture) { _invoker = invoker; + InitialCulture = initialCulture; + InitialUICulture = initialUICulture; + } + + public static WebAssemblyCultureProvider Instance { get; private set; } + + public CultureInfo InitialCulture { get; } + + public CultureInfo InitialUICulture { get; } + + internal static void Initialize() + { + Instance = new WebAssemblyCultureProvider( + WebAssemblyJSRuntimeInvoker.Instance, + initialCulture: CultureInfo.CurrentCulture, + initialUICulture: CultureInfo.CurrentUICulture); + } + + public void ThrowIfCultureChangeIsUnsupported() + { + // With ICU sharding enabled, bootstrapping WebAssembly will download a ICU shard based on the browser language. + // If the application author was to change the culture as part of their Program.MainAsync, we might have + // incomplete icu data for their culture. We would like to flag this as an error and notify the author to + // use the combined icu data file instead. + // + // The Initialize method is invoked as one of the first steps bootstrapping the app prior to any user code running. + // It allows us to capture the initial .NET culture that is configured based on the browser language. + // The current method is invoked as part of WebAssemblyHost.RunAsync i.e. after user code in Program.MainAsync has run + // thus allows us to detect if the culture was changed by user code. + if (Environment.GetEnvironmentVariable("__BLAZOR_SHARDED_ICU") == "1" && + ((CultureInfo.CurrentCulture != InitialCulture) || (CultureInfo.CurrentUICulture != InitialUICulture))) + { + throw new InvalidOperationException("Blazor detected a change in the application's culture that is not supported with the current project configuration. " + + "To change culture dynamically during startup, set true in the application's project file."); + } } public virtual async ValueTask LoadCurrentCultureResourcesAsync() diff --git a/src/Components/WebAssembly/WebAssembly/src/Hosting/WebAssemblyHost.cs b/src/Components/WebAssembly/WebAssembly/src/Hosting/WebAssemblyHost.cs index c26caaee99..12865430dc 100644 --- a/src/Components/WebAssembly/WebAssembly/src/Hosting/WebAssemblyHost.cs +++ b/src/Components/WebAssembly/WebAssembly/src/Hosting/WebAssemblyHost.cs @@ -59,7 +59,7 @@ namespace Microsoft.AspNetCore.Components.WebAssembly.Hosting ///
public IServiceProvider Services => _scope.ServiceProvider; - internal SatelliteResourcesLoader SatelliteResourcesLoader { get; set; } = new SatelliteResourcesLoader(WebAssemblyJSRuntimeInvoker.Instance); + internal WebAssemblyCultureProvider CultureProvider { get; set; } = WebAssemblyCultureProvider.Instance; /// /// Disposes the host asynchronously. @@ -121,11 +121,13 @@ namespace Microsoft.AspNetCore.Components.WebAssembly.Hosting _started = true; + CultureProvider.ThrowIfCultureChangeIsUnsupported(); + // EntryPointInvoker loads satellite assemblies for the application default culture. // Application developers might have configured the culture based on some ambient state // such as local storage, url etc as part of their Program.Main(Async). // This is the earliest opportunity to fetch satellite assemblies for this selection. - await SatelliteResourcesLoader.LoadCurrentCultureResourcesAsync(); + await CultureProvider.LoadCurrentCultureResourcesAsync(); var tcs = new TaskCompletionSource(); diff --git a/src/Components/WebAssembly/WebAssembly/test/Hosting/SatelliteResourcesLoaderTest.cs b/src/Components/WebAssembly/WebAssembly/test/Hosting/WebAssemblyCultureProviderTest.cs similarity index 59% rename from src/Components/WebAssembly/WebAssembly/test/Hosting/SatelliteResourcesLoaderTest.cs rename to src/Components/WebAssembly/WebAssembly/test/Hosting/WebAssemblyCultureProviderTest.cs index c4bb704bb4..fef64a247b 100644 --- a/src/Components/WebAssembly/WebAssembly/test/Hosting/SatelliteResourcesLoaderTest.cs +++ b/src/Components/WebAssembly/WebAssembly/test/Hosting/WebAssemblyCultureProviderTest.cs @@ -1,18 +1,20 @@ // 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. +using System; using System.Globalization; using System.IO; +using System.Net.NetworkInformation; using System.Threading.Tasks; using Microsoft.AspNetCore.Components.WebAssembly.Services; using Microsoft.AspNetCore.Testing; using Moq; using Xunit; -using static Microsoft.AspNetCore.Components.WebAssembly.Hosting.SatelliteResourcesLoader; +using static Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyCultureProvider; namespace Microsoft.AspNetCore.Components.WebAssembly.Hosting { - public class SatelliteResourcesLoaderTest + public class WebAssemblyCultureProviderTest { [Theory] [InlineData("fr-FR", new[] { "fr-FR", "fr" })] @@ -23,7 +25,7 @@ namespace Microsoft.AspNetCore.Components.WebAssembly.Hosting var culture = new CultureInfo(cultureName); // Act - var actual = SatelliteResourcesLoader.GetCultures(culture); + var actual = WebAssemblyCultureProvider.GetCultures(culture); // Assert Assert.Equal(expected, actual); @@ -43,7 +45,7 @@ namespace Microsoft.AspNetCore.Components.WebAssembly.Hosting .Returns(new object[] { File.ReadAllBytes(GetType().Assembly.Location) }) .Verifiable(); - var loader = new SatelliteResourcesLoader(invoker.Object); + var loader = new WebAssemblyCultureProvider(invoker.Object, CultureInfo.CurrentCulture, CultureInfo.CurrentUICulture); // Act await loader.LoadCurrentCultureResourcesAsync(); @@ -62,7 +64,7 @@ namespace Microsoft.AspNetCore.Components.WebAssembly.Hosting .Returns(Task.FromResult(0)) .Verifiable(); - var loader = new SatelliteResourcesLoader(invoker.Object); + var loader = new WebAssemblyCultureProvider(invoker.Object, CultureInfo.CurrentCulture, CultureInfo.CurrentUICulture); // Act await loader.LoadCurrentCultureResourcesAsync(); @@ -70,5 +72,29 @@ namespace Microsoft.AspNetCore.Components.WebAssembly.Hosting // Assert invoker.Verify(i => i.InvokeUnmarshalled(ReadSatelliteAssemblies, null, null, null), Times.Never()); } + + [Fact] + public void ThrowIfCultureChangeIsUnsupported_ThrowsIfCulturesAreDifferentAndICUShardingIsUsed() + { + // Arrange + Environment.SetEnvironmentVariable("__BLAZOR_SHARDED_ICU", "1"); + try + { + // WebAssembly is initialized with en-US + var cultureProvider = new WebAssemblyCultureProvider(WebAssemblyJSRuntimeInvoker.Instance, new CultureInfo("en-US"), new CultureInfo("en-US")); + + // Culture is changed to fr-FR as part of the app + using var cultureReplacer = new CultureReplacer("fr-FR"); + + var ex = Assert.Throws(() => cultureProvider.ThrowIfCultureChangeIsUnsupported()); + Assert.Equal("Blazor detected a change in the application's culture that is not supported with the current project configuration. " + + "To change culture dynamically during startup, set true in the application's project file.", + ex.Message); + } + finally + { + Environment.SetEnvironmentVariable("__BLAZOR_SHARDED_ICU", null); + } + } } } diff --git a/src/Components/WebAssembly/WebAssembly/test/Hosting/WebAssemblyHostTest.cs b/src/Components/WebAssembly/WebAssembly/test/Hosting/WebAssemblyHostTest.cs index 71c273c74c..d447f88a7e 100644 --- a/src/Components/WebAssembly/WebAssembly/test/Hosting/WebAssemblyHostTest.cs +++ b/src/Components/WebAssembly/WebAssembly/test/Hosting/WebAssemblyHostTest.cs @@ -2,6 +2,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Globalization; using System.Threading; using System.Threading.Tasks; using Microsoft.AspNetCore.Components.WebAssembly.Services; @@ -21,7 +22,7 @@ namespace Microsoft.AspNetCore.Components.WebAssembly.Hosting // Arrange var builder = new WebAssemblyHostBuilder(new TestWebAssemblyJSRuntimeInvoker()); var host = builder.Build(); - host.SatelliteResourcesLoader = new TestSatelliteResourcesLoader(); + host.CultureProvider = new TestSatelliteResourcesLoader(); var cts = new CancellationTokenSource(); @@ -40,7 +41,7 @@ namespace Microsoft.AspNetCore.Components.WebAssembly.Hosting // Arrange var builder = new WebAssemblyHostBuilder(new TestWebAssemblyJSRuntimeInvoker()); var host = builder.Build(); - host.SatelliteResourcesLoader = new TestSatelliteResourcesLoader(); + host.CultureProvider = new TestSatelliteResourcesLoader(); var cts = new CancellationTokenSource(); var task = host.RunAsyncCore(cts.Token); @@ -62,7 +63,7 @@ namespace Microsoft.AspNetCore.Components.WebAssembly.Hosting var builder = new WebAssemblyHostBuilder(new TestWebAssemblyJSRuntimeInvoker()); builder.Services.AddSingleton(); var host = builder.Build(); - host.SatelliteResourcesLoader = new TestSatelliteResourcesLoader(); + host.CultureProvider = new TestSatelliteResourcesLoader(); var disposable = host.Services.GetRequiredService(); @@ -92,10 +93,10 @@ namespace Microsoft.AspNetCore.Components.WebAssembly.Hosting } } - private class TestSatelliteResourcesLoader : SatelliteResourcesLoader + private class TestSatelliteResourcesLoader : WebAssemblyCultureProvider { internal TestSatelliteResourcesLoader() - : base(WebAssemblyJSRuntimeInvoker.Instance) + : base(WebAssemblyJSRuntimeInvoker.Instance, CultureInfo.CurrentCulture, CultureInfo.CurrentUICulture) { } diff --git a/src/Components/test/testassets/GlobalizationWasmApp/GlobalizationWasmApp.csproj b/src/Components/test/testassets/GlobalizationWasmApp/GlobalizationWasmApp.csproj index ee3d20c381..e2b7474233 100644 --- a/src/Components/test/testassets/GlobalizationWasmApp/GlobalizationWasmApp.csproj +++ b/src/Components/test/testassets/GlobalizationWasmApp/GlobalizationWasmApp.csproj @@ -14,5 +14,4 @@ - diff --git a/src/Components/test/testassets/GlobalizationWasmApp/Program.cs b/src/Components/test/testassets/GlobalizationWasmApp/Program.cs index 20d7bdb833..025890394f 100644 --- a/src/Components/test/testassets/GlobalizationWasmApp/Program.cs +++ b/src/Components/test/testassets/GlobalizationWasmApp/Program.cs @@ -29,7 +29,11 @@ namespace GlobalizationWasmApp { var uri = new Uri(host.Services.GetService().Uri); - var cultureName = HttpUtility.ParseQueryString(uri.Query)["dotNetCulture"] ?? HttpUtility.ParseQueryString(uri.Query)["culture"]; + var cultureName = HttpUtility.ParseQueryString(uri.Query)["dotNetCulture"]; + if (cultureName is null) + { + return; + } var culture = new CultureInfo(cultureName); CultureInfo.DefaultThreadCurrentCulture = culture; From 1564ca328c7f81c44426179cf1de1b270ff6c067 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 23 Sep 2020 23:25:06 +0000 Subject: [PATCH 173/187] [release/5.0-rc2] Update dependencies from dotnet/runtime dotnet/efcore (#26209) [release/5.0-rc2] Update dependencies from dotnet/runtime dotnet/efcore - Use non-obsolete `GetColumnName(...)` overload - react to EF breaking change - Add missing `using` --- eng/Version.Details.xml | 292 +++++++++--------- eng/Versions.props | 146 ++++----- .../test/EF.Test/DbUtil.cs | 3 +- 3 files changed, 221 insertions(+), 220 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index ab54358036..c7d3d757c7 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,304 +9,304 @@ --> - + https://github.com/dotnet/efcore - 30328a2bc454e320f3858c745e35268b7586ded6 + fec052742e2d2ee83c2d0cf947826303f0115295 - + https://github.com/dotnet/efcore - 30328a2bc454e320f3858c745e35268b7586ded6 + fec052742e2d2ee83c2d0cf947826303f0115295 - + https://github.com/dotnet/efcore - 30328a2bc454e320f3858c745e35268b7586ded6 + fec052742e2d2ee83c2d0cf947826303f0115295 - + https://github.com/dotnet/efcore - 30328a2bc454e320f3858c745e35268b7586ded6 + fec052742e2d2ee83c2d0cf947826303f0115295 - + https://github.com/dotnet/efcore - 30328a2bc454e320f3858c745e35268b7586ded6 + fec052742e2d2ee83c2d0cf947826303f0115295 - + https://github.com/dotnet/efcore - 30328a2bc454e320f3858c745e35268b7586ded6 + fec052742e2d2ee83c2d0cf947826303f0115295 - + https://github.com/dotnet/efcore - 30328a2bc454e320f3858c745e35268b7586ded6 + fec052742e2d2ee83c2d0cf947826303f0115295 - + https://github.com/dotnet/efcore - 30328a2bc454e320f3858c745e35268b7586ded6 + fec052742e2d2ee83c2d0cf947826303f0115295 - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c - + https://github.com/dotnet/runtime - 57fcdc785fe74dd3cf2ef5a72625cf92a06ca2fc + 3146953047a3f88987d7fb36e3aa4bcd81c73f6c https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index e7586f87c8..6d7c90112c 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,81 +62,81 @@ 3.8.0-3.20458.6 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 - 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.5 + 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20473.4 + 5.0.0-rc.2.20473.4 + 5.0.0-rc.2.20473.4 + 5.0.0-rc.2.20473.4 + 5.0.0-rc.2.20473.4 + 5.0.0-rc.2.20473.4 + 5.0.0-rc.2.20473.4 + 5.0.0-rc.2.20473.4 5.0.0-beta.20467.6 diff --git a/src/Identity/EntityFrameworkCore/test/EF.Test/DbUtil.cs b/src/Identity/EntityFrameworkCore/test/EF.Test/DbUtil.cs index 46255b9cec..3a8c1e2de0 100644 --- a/src/Identity/EntityFrameworkCore/test/EF.Test/DbUtil.cs +++ b/src/Identity/EntityFrameworkCore/test/EF.Test/DbUtil.cs @@ -6,6 +6,7 @@ using System.Linq; using Microsoft.Data.Sqlite; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Diagnostics; +using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.Extensions.DependencyInjection; using Xunit; @@ -46,7 +47,7 @@ namespace Microsoft.AspNetCore.Identity.EntityFrameworkCore.Test foreach (var property in context.Model.GetEntityTypes().Single(e => e.GetTableName() == table).GetProperties()) { - if (!columns.Contains(property.GetColumnName())) + if (!columns.Contains(property.GetColumnName(StoreObjectIdentifier.Table(table, property.DeclaringEntityType.GetSchema())))) { continue; } From 82fea485edc9654cdd2ceac914399657d006c8b9 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 24 Sep 2020 01:22:12 +0000 Subject: [PATCH 174/187] Update dependencies from https://github.com/dotnet/runtime build 20200923.5 (#26251) [release/5.0-rc2] Update dependencies from dotnet/runtime --- eng/Version.Details.xml | 260 ++++++++++++++++++++-------------------- eng/Versions.props | 130 ++++++++++---------- 2 files changed, 195 insertions(+), 195 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c7d3d757c7..26b61fd010 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -41,272 +41,272 @@ https://github.com/dotnet/efcore fec052742e2d2ee83c2d0cf947826303f0115295 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 - + https://github.com/dotnet/runtime - 3146953047a3f88987d7fb36e3aa4bcd81c73f6c + fd75c08e74bd4a349ed6dca742e4a33f3a617a11 https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 6d7c90112c..7e0907d2a7 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,72 +62,72 @@ 3.8.0-3.20458.6 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 - 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20472.7 + 5.0.0-rc.2.20473.5 5.0.0-rc.2.20473.4 5.0.0-rc.2.20473.4 From 650bbeb8f58c130a202e234684a74c8c2cdcbfdd Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 24 Sep 2020 03:26:21 +0000 Subject: [PATCH 175/187] Update dependencies from https://github.com/dotnet/efcore build 20200923.5 (#26257) [release/5.0-rc2] Update dependencies from dotnet/efcore --- eng/Version.Details.xml | 32 ++++++++++++++++---------------- eng/Versions.props | 16 ++++++++-------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 26b61fd010..921b8ec960 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,37 +9,37 @@ --> - + https://github.com/dotnet/efcore - fec052742e2d2ee83c2d0cf947826303f0115295 + 69351ad9e7d5a1ba685bc5de21de6b57af3f26ba - + https://github.com/dotnet/efcore - fec052742e2d2ee83c2d0cf947826303f0115295 + 69351ad9e7d5a1ba685bc5de21de6b57af3f26ba - + https://github.com/dotnet/efcore - fec052742e2d2ee83c2d0cf947826303f0115295 + 69351ad9e7d5a1ba685bc5de21de6b57af3f26ba - + https://github.com/dotnet/efcore - fec052742e2d2ee83c2d0cf947826303f0115295 + 69351ad9e7d5a1ba685bc5de21de6b57af3f26ba - + https://github.com/dotnet/efcore - fec052742e2d2ee83c2d0cf947826303f0115295 + 69351ad9e7d5a1ba685bc5de21de6b57af3f26ba - + https://github.com/dotnet/efcore - fec052742e2d2ee83c2d0cf947826303f0115295 + 69351ad9e7d5a1ba685bc5de21de6b57af3f26ba - + https://github.com/dotnet/efcore - fec052742e2d2ee83c2d0cf947826303f0115295 + 69351ad9e7d5a1ba685bc5de21de6b57af3f26ba - + https://github.com/dotnet/efcore - fec052742e2d2ee83c2d0cf947826303f0115295 + 69351ad9e7d5a1ba685bc5de21de6b57af3f26ba https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 7e0907d2a7..9d40d8118d 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -129,14 +129,14 @@ 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.4 - 5.0.0-rc.2.20473.4 - 5.0.0-rc.2.20473.4 - 5.0.0-rc.2.20473.4 - 5.0.0-rc.2.20473.4 - 5.0.0-rc.2.20473.4 - 5.0.0-rc.2.20473.4 - 5.0.0-rc.2.20473.4 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.5 5.0.0-beta.20467.6 From b925b2886a813ff8f9d8e2bf650e60a3b25323ab Mon Sep 17 00:00:00 2001 From: Safia Abdalla Date: Wed, 23 Sep 2020 20:42:44 -0700 Subject: [PATCH 176/187] Pass all scopes in token request and update IndividualLocalAuth template (#26232) * Pass all scopes in token request and update IndividualLocalAuth template * Fix build and address feedback from peer review --- .../Web.JS/dist/Release/blazor.server.js | 2 +- .../Web.JS/dist/Release/blazor.webassembly.js | 2 +- .../src/Interop/AuthenticationService.ts | 19 +++++++++++++++++-- .../Client/wwwroot/appsettings.json | 2 +- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/Components/Web.JS/dist/Release/blazor.server.js b/src/Components/Web.JS/dist/Release/blazor.server.js index 0e8d01b8e6..888ad2d8d1 100644 --- a/src/Components/Web.JS/dist/Release/blazor.server.js +++ b/src/Components/Web.JS/dist/Release/blazor.server.js @@ -5,7 +5,7 @@ * @author Feross Aboukhadijeh * @license MIT */ -var r=n(54),o=n(55),i=n(56);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function d(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return F(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return P(this,t,n);case"utf8":case"utf-8":return k(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return O(this,t,n);case"base64":return C(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,o);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,o){var i,a=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,n/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=n;is&&(n=s-c),i=n;i>=0;i--){for(var f=!0,h=0;ho&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function C(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function k(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o239?4:u>223?3:u>191?2:1;if(o+f<=n)switch(f){case 1:u<128&&(l=u);break;case 2:128==(192&(i=e[o+1]))&&(c=(31&u)<<6|63&i)>127&&(l=c);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(c=(15&u)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(c=(15&u)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&c<1114112&&(l=c)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},c.prototype.compare=function(e,t,n,r,o){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),u=this.slice(r,o),l=e.slice(t,n),f=0;fo)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return m(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return E(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return _(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;or)&&(n=r);for(var o="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function D(e,t,n,r,o,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function A(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o>>8*(r?o:1-o)}function M(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o>>8*(r?o:3-o)&255}function L(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function j(e,t,n,r,i){return i||L(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function B(e,t,n,r,i){return i||L(e,0,n,8),o.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(o*=256);)r+=this[e+--t]*o;return r},c.prototype.readUInt8=function(e,t){return t||x(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||x(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||x(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||x(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||x(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||x(e,t,this.length);for(var r=this[e],o=1,i=0;++i=(o*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||x(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return t||x(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||x(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||x(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||x(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||x(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||x(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||x(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||x(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||x(e,8,this.length),o.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||D(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):A(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):A(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);D(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);D(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):A(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):A(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return j(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return j(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return B(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+n];else if(i<1e3||!c.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function H(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(N,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function W(e,t,n,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(8))},function(e,t,n){"use strict";var r=n(14).Buffer,o=n(57),i=n(23),a=n(70),s=n(73),c=n(74);e.exports=function(e){var t=[],n=[];return{encode:c(t,(e=e||{forceFloat64:!1,compatibilityMode:!1,disableTimestampEncoding:!1}).forceFloat64,e.compatibilityMode,e.disableTimestampEncoding),decode:s(n),register:function(e,t,n,a){return o(t,"must have a constructor"),o(n,"must have an encode function"),o(e>=0,"must have a non-negative type"),o(a,"must have a decode function"),this.registerEncoder((function(e){return e instanceof t}),(function(t){var o=i(),a=r.allocUnsafe(1);return a.writeInt8(e,0),o.append(a),o.append(n(t)),o})),this.registerDecoder(e,a),this},registerEncoder:function(e,n){return o(e,"must have an encode function"),o(n,"must have an encode function"),t.push({check:e,encode:n}),this},registerDecoder:function(e,t){return o(e>=0,"must have a non-negative type"),o(t,"must have a decode function"),n.push({type:e,decode:t}),this},encoder:a.encoder,decoder:a.decoder,buffer:!0,type:"msgpack5",IncompleteBufferError:s.IncompleteBufferError}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(26),n(17);var r=n(27),o=n(7),i={},a=!1;function s(e,t,n){var o=i[e];o||(o=i[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=s,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");s(n||0,o.toLogicalElement(r,!0),t)},t.getRendererer=function(e){return i[e]},t.renderBatch=function(e,t){var n=i[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),s=r.values(o),c=r.count(o),u=t.referenceFrames(),l=r.values(u),f=t.diffReader,h=0;h1)for(var n=1;n0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var l,f;s.attachDebuggerHotkey(e),window.Browser={init:function(){}},l=function(){window.Module=function(e,t,n){var l=this,f=e.bootConfig.resources,h=window.Module||{},p=["DEBUGGING ENABLED"];h.print=function(e){return p.indexOf(e)<0&&console.log(e)},h.printErr=function(e){console.error(e),c.showErrorNotification()},h.preRun=h.preRun||[],h.postRun=h.postRun||[],h.preloadPlugins=[];var g,w,E=e.loadResources(f.assembly,(function(e){return"_framework/"+e}),"assembly"),S=e.loadResources(f.pdb||{},(function(e){return"_framework/"+e}),"pdb"),_=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");if(e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.blat")&&(g=e.loadResource("dotnet.timezones.blat","_framework/dotnet.timezones.blat",e.bootConfig.resources.runtime["dotnet.timezones.blat"],"globalization")),e.bootConfig.icuDataMode!=u.ICUDataMode.Invariant){var I=e.startOptions.applicationCulture||navigator.languages&&navigator.languages[0],C=function(e,t){if(!t||e.icuDataMode==u.ICUDataMode.All)return"icudt.dat";var n=t.split("-")[0];return["en","fr","it","de","es"].includes(n)?"icudt_EFIGS.dat":["zh","ko","ja"].includes(n)?"icudt_CJK.dat":"icudt_no_CJK.dat"}(e.bootConfig,I);w=e.loadResource(C,"_framework/"+C,e.bootConfig.resources.runtime[C],"globalization")}return h.instantiateWasm=function(e,t){return r(l,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,_];case 1:return[4,v(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),h.printErr(r),r;case 4:return t(n),[2]}}))})),[]},h.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],g&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),Module.FS_createPath("/","usr",!0,!0),Module.FS_createPath("/usr/","share",!0,!0),Module.FS_createPath("/usr/share/","zoneinfo",!0,!0),MONO.mono_wasm_load_data_archive(new Uint8Array(n),"/usr/share/zoneinfo/"),removeRunDependency(t),[2]}}))}))}(g),w?function(e){r(this,void 0,void 0,(function(){var t,n,r,i,a;return o(this,(function(o){switch(o.label){case 0:return t="blazor:icudata",addRunDependency(t),[4,e.response];case 1:return n=o.sent(),i=Uint8Array.bind,[4,n.arrayBuffer()];case 2:if(r=new(i.apply(Uint8Array,[void 0,o.sent()])),a=MONO.mono_wasm_load_bytes_into_heap(r),!MONO.mono_wasm_load_icu_data(a))throw new Error("Error loading ICU asset.");return removeRunDependency(t),[2]}}))}))}(w):MONO.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT","1"),E.forEach((function(e){return k(e,b(e.name,".dll"))})),S.forEach((function(e){return k(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){h.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources;if(e.startOptions.applicationCulture||navigator.languages&&navigator.languages[0],i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(l,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return p(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>f)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*l+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return p(e+(t||0))},readStringField:function(e,t,n){var r,o=p(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return h?void 0===(r=h.stringCache.get(o))&&(r=BINDING.conv_string(o),h.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return m(),h=new w},invokeWhenHeapUnlocked:function(e){h?h.enqueuePostReleaseAction(e):e()}};var d=document.createElement("a");function g(e){return e+12}function y(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function v(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function b(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}function m(){if(h)throw new Error("Assertion failed - heap is currently locked")}var w=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(h!==this)throw new Error("Trying to release a lock which isn't current");for(h=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),m()}},e}()},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]this.length)&&(r=this.length),n>=this.length)return e||i.alloc(0);if(r<=0)return e||i.alloc(0);var o,a,s=!!e,c=this._offset(n),u=r-n,l=u,f=s&&t||0,h=c[1];if(0===n&&r==this.length){if(!s)return 1===this._bufs.length?this._bufs[0]:i.concat(this._bufs,this.length);for(a=0;a(o=this._bufs[a].length-h))){this._bufs[a].copy(e,f,h,h+l);break}this._bufs[a].copy(e,f,h),f+=o,l-=o,h&&(h=0)}return e},a.prototype.shallowSlice=function(e,t){e=e||0,t=t||this.length,e<0&&(e+=this.length),t<0&&(t+=this.length);var n=this._offset(e),r=this._offset(t),o=this._bufs.slice(n[0],r[0]+1);return 0==r[1]?o.pop():o[o.length-1]=o[o.length-1].slice(0,r[1]),0!=n[1]&&(o[0]=o[0].slice(n[1])),new a(o)},a.prototype.toString=function(e,t,n){return this.slice(t,n).toString(e)},a.prototype.consume=function(e){for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},a.prototype.duplicate=function(){for(var e=0,t=new a;e0&&e.invokeMethodAsync("OnSpacerAfterVisible",r.boundingClientRect.bottom-r.intersectionRect.bottom,a,s)}}))}),{root:i,rootMargin:o+"px"});a.observe(t),a.observe(n);var s=u(t),c=u(n);function u(e){var t=new MutationObserver((function(){a.unobserve(e),a.observe(e)}));return t.observe(e,{attributes:!0}),t}r[e._id]={intersectionObserver:a,mutationObserverBefore:s,mutationObserverAfter:c}},dispose:function(e){var t=r[e._id];t&&(t.intersectionObserver.disconnect(),t.mutationObserverBefore.disconnect(),t.mutationObserverAfter.disconnect(),e.dispose(),delete r[e._id])}};var r={}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1].*)$/;function i(e,t){var n=e.currentElement;if(n&&n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r.groups&&r.groups.descriptor;if(!i)return;try{var s=function(e){var t=JSON.parse(e),n=t.type;if("server"!==n&&"webassembly"!==n)throw new Error("Invalid component type '"+n+"'.");return t}(i);switch(t){case"webassembly":return function(e,t,n){var r=e.type,o=e.assembly,i=e.typeName,s=e.parameterDefinitions,c=e.parameterValues,u=e.prerenderId;if("webassembly"!==r)return;if(!o)throw new Error("assembly must be defined when using a descriptor.");if(!i)throw new Error("typeName must be defined when using a descriptor.");if(u){var l=a(u,n);if(!l)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:c&&atob(c),start:t,prerenderId:u,end:l}}return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:c&&atob(c),start:t}}(s,n,e);case"server":return function(e,t,n){var r=e.type,o=e.descriptor,i=e.sequence,s=e.prerenderId;if("server"!==r)return;if(!o)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===i)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(i))throw new Error("Error parsing the sequence '"+i+"' for component '"+JSON.stringify(e)+"'");if(s){var c=a(s,n);if(!c)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,sequence:i,descriptor:o,start:t,prerenderId:s,end:c}}return{type:r,sequence:i,descriptor:o,start:t}}(s,n,e)}}catch(e){throw new Error("Found malformed component comment at "+n.textContent)}}}function a(e,t){for(;t.next()&&t.currentElement;){var n=t.currentElement;if(n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r[1];if(i)return s(i,e),n}}}function s(e,t){var n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error("Invalid end of component comment: '"+e+"'");var r=n.prerenderId;if(!r)throw new Error("End of component comment must have a value for the prerendered property: '"+e+"'");if(r!==t)throw new Error("End of component comment prerendered property must match the start comment prerender id: '"+t+"', '"+r+"'")}var c=function(){function e(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}return e.prototype.next=function(){return this.currentIndex++,this.currentIndex=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),c=r[n];n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(n)?r.showHidden=n:n&&t._extend(r,n),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=c),l(r,e,r.depth)}function c(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function u(e,t){return e}function l(e,n,r){if(e.customInspect&&n&&_(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,e);return v(o)||(o=l(e,o,r)),o}var i=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(y(t))return e.stylize(""+t,"number");if(d(t))return e.stylize(""+t,"boolean");if(g(t))return e.stylize("null","null")}(e,n);if(i)return i;var a=Object.keys(n),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),S(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return f(n);if(0===a.length){if(_(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(m(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(E(n))return e.stylize(Date.prototype.toString.call(n),"date");if(S(n))return f(n)}var u,w="",I=!1,C=["{","}"];(p(n)&&(I=!0,C=["[","]"]),_(n))&&(w=" [Function"+(n.name?": "+n.name:"")+"]");return m(n)&&(w=" "+RegExp.prototype.toString.call(n)),E(n)&&(w=" "+Date.prototype.toUTCString.call(n)),S(n)&&(w=" "+f(n)),0!==a.length||I&&0!=n.length?r<0?m(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=I?function(e,t,n,r,o){for(var i=[],a=0,s=t.length;a=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,w,C)):C[0]+w+C[1]}function f(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,n,r,o,i){var a,s,c;if((c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),O(r,o)||(a="["+o+"]"),s||(e.seen.indexOf(c.value)<0?(s=g(n)?l(e,c.value,null):l(e,c.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),b(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function p(e){return Array.isArray(e)}function d(e){return"boolean"==typeof e}function g(e){return null===e}function y(e){return"number"==typeof e}function v(e){return"string"==typeof e}function b(e){return void 0===e}function m(e){return w(e)&&"[object RegExp]"===I(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===I(e)}function S(e){return w(e)&&("[object Error]"===I(e)||e instanceof Error)}function _(e){return"function"==typeof e}function I(e){return Object.prototype.toString.call(e)}function C(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(n){if(b(i)&&(i=e.env.NODE_DEBUG||""),n=n.toUpperCase(),!a[n])if(new RegExp("\\b"+n+"\\b","i").test(i)){var r=e.pid;a[n]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",n,r,e)}}else a[n]=function(){};return a[n]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=p,t.isBoolean=d,t.isNull=g,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=v,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=m,t.isObject=w,t.isDate=E,t.isError=S,t.isFunction=_,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(59);var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function T(){var e=new Date,t=[C(e.getHours()),C(e.getMinutes()),C(e.getSeconds())].join(":");return[e.getDate(),k[e.getMonth()],t].join(" ")}function O(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",T(),t.format.apply(t,arguments))},t.inherits=n(60),t._extend=function(e,t){if(!t||!w(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var P="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function R(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(P&&e[P]){var t;if("function"!=typeof(t=e[P]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,P,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),o=[],i=0;i0?("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===u.prototype||(t=function(e){return u.from(e)}(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):E(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?E(e,a,t,!1):C(e,a)):E(e,a,t,!1))):r||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function _(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(p("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(I,e):I(e))}function I(e){p("emit readable"),e.emit("readable"),P(e)}function C(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(k,e,t))}function k(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;ei.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++r}return t.length-=r,o}(e,t):function(e,t){var n=u.allocUnsafe(e),r=t.head,o=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,a),0===(e-=a)){a===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++o}return t.length-=o,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function x(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(D,t,e))}function D(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function A(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return p("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?x(this):_(this),null;if(0===(e=S(e,t))&&t.ended)return 0===t.length&&x(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e0?R(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&x(this)),null!==r&&this.emit("data",r),r},m.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},m.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,p("pipe count=%d opts=%j",i.pipesCount,t);var c=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?l:m;function u(t,r){p("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,p("cleanup"),e.removeListener("close",v),e.removeListener("finish",b),e.removeListener("drain",f),e.removeListener("error",y),e.removeListener("unpipe",u),n.removeListener("end",l),n.removeListener("end",m),n.removeListener("data",g),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function l(){p("onend"),e.end()}i.endEmitted?o.nextTick(c):n.once("end",c),e.on("unpipe",u);var f=function(e){return function(){var t=e._readableState;p("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,P(e))}}(n);e.on("drain",f);var h=!1;var d=!1;function g(t){p("ondata"),d=!1,!1!==e.write(t)||d||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==A(i.pipes,e))&&!h&&(p("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,d=!0),n.pause())}function y(t){p("onerror",t),m(),e.removeListener("error",y),0===s(e,"error")&&e.emit("error",t)}function v(){e.removeListener("finish",b),m()}function b(){p("onfinish"),e.removeListener("close",v),m()}function m(){p("unpipe"),n.unpipe(e)}return n.on("data",g),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",y),e.once("close",v),e.once("finish",b),e.emit("pipe",n),i.flowing||(p("pipe resume"),n.resume()),e},m.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i0&&a.length>o&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,s=c,console&&console.warn&&console.warn(s)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=h.bind(r);return o.listener=n,r.wrapFn=o,o}function d(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var c=o[e];if(void 0===c)return!1;if("function"==typeof c)i(c,this,t);else{var u=c.length,l=y(c,u);for(n=0;n=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},s.prototype.listeners=function(e){return d(this,e,!0)},s.prototype.rawListeners=function(e){return d(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){e.exports=n(41).EventEmitter},function(e,t,n){"use strict";var r=n(24);function o(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(o,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?(r.nextTick(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){"use strict";var r=n(66).Buffer,o=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=u,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0)return o>0&&(e.lastNeed=o-1),o;if(--r=0)return o>0&&(e.lastNeed=o-2),o;if(--r=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";(function(t,r,o){var i=n(24);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=b;var s,c=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;b.WritableState=v;var u=n(19);u.inherits=n(15);var l={deprecate:n(69)},f=n(42),h=n(14).Buffer,p=o.Uint8Array||function(){};var d,g=n(43);function y(){}function v(e,t){s=s||n(9),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,u=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(I,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),I(e,t))}(e,n,r,t,o);else{var a=S(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||E(e,n),r?c(w,e,n,a,o):w(e,n,a,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(9),!(d.call(b,this)||this instanceof s))return new b(e);this._writableState=new v(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function m(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function w(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),I(e,t)}function E(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=n;for(var s=0,c=!0;n;)o[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;o.allBuffers=c,m(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,l=n.encoding,f=n.callback;if(m(e,t,!1,t.objectMode?1:u.length,u,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function S(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function _(e,t){e._final((function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),I(e,t)}))}function I(e,t){var n=S(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(_,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}u.inherits(b,f),v.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(v.prototype,"buffer",{get:l.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(d=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!d.call(this,e)||this===b&&(e&&e._writableState instanceof v)}})):d=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,o=this._writableState,a=!1,s=!o.objectMode&&(r=e,h.isBuffer(r)||r instanceof p);return s&&!h.isBuffer(e)&&(e=function(e){return h.from(e)}(e)),"function"==typeof t&&(n=t,t=null),s?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=y),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),i.nextTick(r,a),o=!1),o}(this,o,e,n))&&(o.pendingcb++,a=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=h.from(t,n));return t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var c=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,I(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=g.destroy,b.prototype._undestroy=g.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(13),n(67).setImmediate,n(8))},function(e,t,n){"use strict";e.exports=a;var r=n(9),o=n(19);function i(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.lengths?a.slice(s).buffer:null}else{var c,u=t;if(-1===(c=u.indexOf(r.a.RecordSeparator)))throw new Error("Message is incomplete.");s=c+1;n=u.substring(0,s),i=u.length>s?u.substring(s):null}var l=r.a.parse(n),f=JSON.parse(l[0]);if(f.type)throw new Error("Expected a handshake response from the server.");return[i,f]},t}()}).call(this,n(10).Buffer)},,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},a=this&&this.__spread||function(){for(var e=[],t=0;t0?a-4:a;for(n=0;n>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===s&&(t=o[e.charCodeAt(n)]<<2|o[e.charCodeAt(n+1)]>>4,c[l++]=255&t);1===s&&(t=o[e.charCodeAt(n)]<<10|o[e.charCodeAt(n+1)]<<4|o[e.charCodeAt(n+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;as?s:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,c=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var o,i,a=[],s=t;s>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,c=(1<>1,l=-7,f=n?o-1:0,h=n?-1:1,p=e[t+f];for(f+=h,i=p&(1<<-l)-1,p>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=h,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=r;l>0;a=256*a+e[t+f],f+=h,l-=8);if(0===i)i=1-u;else{if(i===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),i-=u}return(p?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,c,u=8*i-o-1,l=(1<>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,d=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+f>=1?h/c:h*Math.pow(2,1-f))*c>=2&&(a++,c/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*c-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[n+p]=255&s,p+=d,s/=256,o-=8);for(a=a<0;e[n+p]=255&a,p+=d,a/=256,u-=8);e[n+p-d]|=128*g}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";(function(t){var r=n(58); +var r=n(54),o=n(55),i=n(56);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function d(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return F(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return P(this,t,n);case"utf8":case"utf-8":return k(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return O(this,t,n);case"base64":return C(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,o);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,o){var i,a=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,n/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=n;is&&(n=s-c),i=n;i>=0;i--){for(var f=!0,h=0;ho&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function C(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function k(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o239?4:u>223?3:u>191?2:1;if(o+f<=n)switch(f){case 1:u<128&&(l=u);break;case 2:128==(192&(i=e[o+1]))&&(c=(31&u)<<6|63&i)>127&&(l=c);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(c=(15&u)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(c=(15&u)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&c<1114112&&(l=c)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},c.prototype.compare=function(e,t,n,r,o){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),u=this.slice(r,o),l=e.slice(t,n),f=0;fo)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return m(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return E(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return _(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;or)&&(n=r);for(var o="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function D(e,t,n,r,o,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function A(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o>>8*(r?o:1-o)}function M(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o>>8*(r?o:3-o)&255}function L(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function j(e,t,n,r,i){return i||L(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function B(e,t,n,r,i){return i||L(e,0,n,8),o.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(o*=256);)r+=this[e+--t]*o;return r},c.prototype.readUInt8=function(e,t){return t||x(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||x(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||x(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||x(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||x(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||x(e,t,this.length);for(var r=this[e],o=1,i=0;++i=(o*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||x(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return t||x(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||x(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||x(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||x(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||x(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||x(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||x(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||x(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||x(e,8,this.length),o.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||D(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):A(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):A(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);D(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);D(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):A(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):A(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return j(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return j(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return B(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+n];else if(i<1e3||!c.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function H(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(N,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function W(e,t,n,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(8))},function(e,t,n){"use strict";var r=n(14).Buffer,o=n(57),i=n(23),a=n(70),s=n(73),c=n(74);e.exports=function(e){var t=[],n=[];return{encode:c(t,(e=e||{forceFloat64:!1,compatibilityMode:!1,disableTimestampEncoding:!1}).forceFloat64,e.compatibilityMode,e.disableTimestampEncoding),decode:s(n),register:function(e,t,n,a){return o(t,"must have a constructor"),o(n,"must have an encode function"),o(e>=0,"must have a non-negative type"),o(a,"must have a decode function"),this.registerEncoder((function(e){return e instanceof t}),(function(t){var o=i(),a=r.allocUnsafe(1);return a.writeInt8(e,0),o.append(a),o.append(n(t)),o})),this.registerDecoder(e,a),this},registerEncoder:function(e,n){return o(e,"must have an encode function"),o(n,"must have an encode function"),t.push({check:e,encode:n}),this},registerDecoder:function(e,t){return o(e>=0,"must have a non-negative type"),o(t,"must have a decode function"),n.push({type:e,decode:t}),this},encoder:a.encoder,decoder:a.decoder,buffer:!0,type:"msgpack5",IncompleteBufferError:s.IncompleteBufferError}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(26),n(17);var r=n(27),o=n(7),i={},a=!1;function s(e,t,n){var o=i[e];o||(o=i[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=s,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");s(n||0,o.toLogicalElement(r,!0),t)},t.getRendererer=function(e){return i[e]},t.renderBatch=function(e,t){var n=i[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),s=r.values(o),c=r.count(o),u=t.referenceFrames(),l=r.values(u),f=t.diffReader,h=0;h1)for(var n=1;n0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var l,f;s.attachDebuggerHotkey(e),window.Browser={init:function(){}},l=function(){window.Module=function(e,t,n){var l=this,f=e.bootConfig.resources,h=window.Module||{},p=["DEBUGGING ENABLED"];h.print=function(e){return p.indexOf(e)<0&&console.log(e)},h.printErr=function(e){console.error(e),c.showErrorNotification()},h.preRun=h.preRun||[],h.postRun=h.postRun||[],h.preloadPlugins=[];var g,w,E=e.loadResources(f.assembly,(function(e){return"_framework/"+e}),"assembly"),S=e.loadResources(f.pdb||{},(function(e){return"_framework/"+e}),"pdb"),_=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");if(e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.blat")&&(g=e.loadResource("dotnet.timezones.blat","_framework/dotnet.timezones.blat",e.bootConfig.resources.runtime["dotnet.timezones.blat"],"globalization")),e.bootConfig.icuDataMode!=u.ICUDataMode.Invariant){var I=e.startOptions.applicationCulture||navigator.languages&&navigator.languages[0],C=function(e,t){if(!t||e.icuDataMode===u.ICUDataMode.All)return"icudt.dat";var n=t.split("-")[0];return["en","fr","it","de","es"].includes(n)?"icudt_EFIGS.dat":["zh","ko","ja"].includes(n)?"icudt_CJK.dat":"icudt_no_CJK.dat"}(e.bootConfig,I);w=e.loadResource(C,"_framework/"+C,e.bootConfig.resources.runtime[C],"globalization")}return h.instantiateWasm=function(e,t){return r(l,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,_];case 1:return[4,v(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),h.printErr(r),r;case 4:return t(n),[2]}}))})),[]},h.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],g&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),Module.FS_createPath("/","usr",!0,!0),Module.FS_createPath("/usr/","share",!0,!0),Module.FS_createPath("/usr/share/","zoneinfo",!0,!0),MONO.mono_wasm_load_data_archive(new Uint8Array(n),"/usr/share/zoneinfo/"),removeRunDependency(t),[2]}}))}))}(g),w?function(e){r(this,void 0,void 0,(function(){var t,n,r,i,a;return o(this,(function(o){switch(o.label){case 0:return t="blazor:icudata",addRunDependency(t),[4,e.response];case 1:return n=o.sent(),i=Uint8Array.bind,[4,n.arrayBuffer()];case 2:if(r=new(i.apply(Uint8Array,[void 0,o.sent()])),a=MONO.mono_wasm_load_bytes_into_heap(r),!MONO.mono_wasm_load_icu_data(a))throw new Error("Error loading ICU asset.");return removeRunDependency(t),[2]}}))}))}(w):MONO.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT","1"),E.forEach((function(e){return k(e,b(e.name,".dll"))})),S.forEach((function(e){return k(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){h.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources;if(e.startOptions.applicationCulture||navigator.languages&&navigator.languages[0],i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(l,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return p(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>f)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*l+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return p(e+(t||0))},readStringField:function(e,t,n){var r,o=p(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return h?void 0===(r=h.stringCache.get(o))&&(r=BINDING.conv_string(o),h.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return m(),h=new w},invokeWhenHeapUnlocked:function(e){h?h.enqueuePostReleaseAction(e):e()}};var d=document.createElement("a");function g(e){return e+12}function y(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function v(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function b(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}function m(){if(h)throw new Error("Assertion failed - heap is currently locked")}var w=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(h!==this)throw new Error("Trying to release a lock which isn't current");for(h=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),m()}},e}()},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]this.length)&&(r=this.length),n>=this.length)return e||i.alloc(0);if(r<=0)return e||i.alloc(0);var o,a,s=!!e,c=this._offset(n),u=r-n,l=u,f=s&&t||0,h=c[1];if(0===n&&r==this.length){if(!s)return 1===this._bufs.length?this._bufs[0]:i.concat(this._bufs,this.length);for(a=0;a(o=this._bufs[a].length-h))){this._bufs[a].copy(e,f,h,h+l);break}this._bufs[a].copy(e,f,h),f+=o,l-=o,h&&(h=0)}return e},a.prototype.shallowSlice=function(e,t){e=e||0,t=t||this.length,e<0&&(e+=this.length),t<0&&(t+=this.length);var n=this._offset(e),r=this._offset(t),o=this._bufs.slice(n[0],r[0]+1);return 0==r[1]?o.pop():o[o.length-1]=o[o.length-1].slice(0,r[1]),0!=n[1]&&(o[0]=o[0].slice(n[1])),new a(o)},a.prototype.toString=function(e,t,n){return this.slice(t,n).toString(e)},a.prototype.consume=function(e){for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},a.prototype.duplicate=function(){for(var e=0,t=new a;e0&&e.invokeMethodAsync("OnSpacerAfterVisible",r.boundingClientRect.bottom-r.intersectionRect.bottom,a,s)}}))}),{root:i,rootMargin:o+"px"});a.observe(t),a.observe(n);var s=u(t),c=u(n);function u(e){var t=new MutationObserver((function(){a.unobserve(e),a.observe(e)}));return t.observe(e,{attributes:!0}),t}r[e._id]={intersectionObserver:a,mutationObserverBefore:s,mutationObserverAfter:c}},dispose:function(e){var t=r[e._id];t&&(t.intersectionObserver.disconnect(),t.mutationObserverBefore.disconnect(),t.mutationObserverAfter.disconnect(),e.dispose(),delete r[e._id])}};var r={}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1].*)$/;function i(e,t){var n=e.currentElement;if(n&&n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r.groups&&r.groups.descriptor;if(!i)return;try{var s=function(e){var t=JSON.parse(e),n=t.type;if("server"!==n&&"webassembly"!==n)throw new Error("Invalid component type '"+n+"'.");return t}(i);switch(t){case"webassembly":return function(e,t,n){var r=e.type,o=e.assembly,i=e.typeName,s=e.parameterDefinitions,c=e.parameterValues,u=e.prerenderId;if("webassembly"!==r)return;if(!o)throw new Error("assembly must be defined when using a descriptor.");if(!i)throw new Error("typeName must be defined when using a descriptor.");if(u){var l=a(u,n);if(!l)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:c&&atob(c),start:t,prerenderId:u,end:l}}return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:c&&atob(c),start:t}}(s,n,e);case"server":return function(e,t,n){var r=e.type,o=e.descriptor,i=e.sequence,s=e.prerenderId;if("server"!==r)return;if(!o)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===i)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(i))throw new Error("Error parsing the sequence '"+i+"' for component '"+JSON.stringify(e)+"'");if(s){var c=a(s,n);if(!c)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,sequence:i,descriptor:o,start:t,prerenderId:s,end:c}}return{type:r,sequence:i,descriptor:o,start:t}}(s,n,e)}}catch(e){throw new Error("Found malformed component comment at "+n.textContent)}}}function a(e,t){for(;t.next()&&t.currentElement;){var n=t.currentElement;if(n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r[1];if(i)return s(i,e),n}}}function s(e,t){var n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error("Invalid end of component comment: '"+e+"'");var r=n.prerenderId;if(!r)throw new Error("End of component comment must have a value for the prerendered property: '"+e+"'");if(r!==t)throw new Error("End of component comment prerendered property must match the start comment prerender id: '"+t+"', '"+r+"'")}var c=function(){function e(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}return e.prototype.next=function(){return this.currentIndex++,this.currentIndex=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),c=r[n];n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(n)?r.showHidden=n:n&&t._extend(r,n),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=c),l(r,e,r.depth)}function c(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function u(e,t){return e}function l(e,n,r){if(e.customInspect&&n&&_(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,e);return v(o)||(o=l(e,o,r)),o}var i=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(y(t))return e.stylize(""+t,"number");if(d(t))return e.stylize(""+t,"boolean");if(g(t))return e.stylize("null","null")}(e,n);if(i)return i;var a=Object.keys(n),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),S(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return f(n);if(0===a.length){if(_(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(m(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(E(n))return e.stylize(Date.prototype.toString.call(n),"date");if(S(n))return f(n)}var u,w="",I=!1,C=["{","}"];(p(n)&&(I=!0,C=["[","]"]),_(n))&&(w=" [Function"+(n.name?": "+n.name:"")+"]");return m(n)&&(w=" "+RegExp.prototype.toString.call(n)),E(n)&&(w=" "+Date.prototype.toUTCString.call(n)),S(n)&&(w=" "+f(n)),0!==a.length||I&&0!=n.length?r<0?m(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=I?function(e,t,n,r,o){for(var i=[],a=0,s=t.length;a=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,w,C)):C[0]+w+C[1]}function f(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,n,r,o,i){var a,s,c;if((c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),O(r,o)||(a="["+o+"]"),s||(e.seen.indexOf(c.value)<0?(s=g(n)?l(e,c.value,null):l(e,c.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),b(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function p(e){return Array.isArray(e)}function d(e){return"boolean"==typeof e}function g(e){return null===e}function y(e){return"number"==typeof e}function v(e){return"string"==typeof e}function b(e){return void 0===e}function m(e){return w(e)&&"[object RegExp]"===I(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===I(e)}function S(e){return w(e)&&("[object Error]"===I(e)||e instanceof Error)}function _(e){return"function"==typeof e}function I(e){return Object.prototype.toString.call(e)}function C(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(n){if(b(i)&&(i=e.env.NODE_DEBUG||""),n=n.toUpperCase(),!a[n])if(new RegExp("\\b"+n+"\\b","i").test(i)){var r=e.pid;a[n]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",n,r,e)}}else a[n]=function(){};return a[n]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=p,t.isBoolean=d,t.isNull=g,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=v,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=m,t.isObject=w,t.isDate=E,t.isError=S,t.isFunction=_,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(59);var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function T(){var e=new Date,t=[C(e.getHours()),C(e.getMinutes()),C(e.getSeconds())].join(":");return[e.getDate(),k[e.getMonth()],t].join(" ")}function O(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",T(),t.format.apply(t,arguments))},t.inherits=n(60),t._extend=function(e,t){if(!t||!w(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var P="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function R(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(P&&e[P]){var t;if("function"!=typeof(t=e[P]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,P,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),o=[],i=0;i0?("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===u.prototype||(t=function(e){return u.from(e)}(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):E(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?E(e,a,t,!1):C(e,a)):E(e,a,t,!1))):r||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function _(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(p("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(I,e):I(e))}function I(e){p("emit readable"),e.emit("readable"),P(e)}function C(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(k,e,t))}function k(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;ei.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++r}return t.length-=r,o}(e,t):function(e,t){var n=u.allocUnsafe(e),r=t.head,o=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,a),0===(e-=a)){a===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++o}return t.length-=o,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function x(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(D,t,e))}function D(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function A(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return p("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?x(this):_(this),null;if(0===(e=S(e,t))&&t.ended)return 0===t.length&&x(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e0?R(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&x(this)),null!==r&&this.emit("data",r),r},m.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},m.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,p("pipe count=%d opts=%j",i.pipesCount,t);var c=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?l:m;function u(t,r){p("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,p("cleanup"),e.removeListener("close",v),e.removeListener("finish",b),e.removeListener("drain",f),e.removeListener("error",y),e.removeListener("unpipe",u),n.removeListener("end",l),n.removeListener("end",m),n.removeListener("data",g),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function l(){p("onend"),e.end()}i.endEmitted?o.nextTick(c):n.once("end",c),e.on("unpipe",u);var f=function(e){return function(){var t=e._readableState;p("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,P(e))}}(n);e.on("drain",f);var h=!1;var d=!1;function g(t){p("ondata"),d=!1,!1!==e.write(t)||d||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==A(i.pipes,e))&&!h&&(p("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,d=!0),n.pause())}function y(t){p("onerror",t),m(),e.removeListener("error",y),0===s(e,"error")&&e.emit("error",t)}function v(){e.removeListener("finish",b),m()}function b(){p("onfinish"),e.removeListener("close",v),m()}function m(){p("unpipe"),n.unpipe(e)}return n.on("data",g),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",y),e.once("close",v),e.once("finish",b),e.emit("pipe",n),i.flowing||(p("pipe resume"),n.resume()),e},m.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i0&&a.length>o&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,s=c,console&&console.warn&&console.warn(s)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=h.bind(r);return o.listener=n,r.wrapFn=o,o}function d(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var c=o[e];if(void 0===c)return!1;if("function"==typeof c)i(c,this,t);else{var u=c.length,l=y(c,u);for(n=0;n=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},s.prototype.listeners=function(e){return d(this,e,!0)},s.prototype.rawListeners=function(e){return d(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){e.exports=n(41).EventEmitter},function(e,t,n){"use strict";var r=n(24);function o(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(o,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?(r.nextTick(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){"use strict";var r=n(66).Buffer,o=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=u,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0)return o>0&&(e.lastNeed=o-1),o;if(--r=0)return o>0&&(e.lastNeed=o-2),o;if(--r=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";(function(t,r,o){var i=n(24);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=b;var s,c=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;b.WritableState=v;var u=n(19);u.inherits=n(15);var l={deprecate:n(69)},f=n(42),h=n(14).Buffer,p=o.Uint8Array||function(){};var d,g=n(43);function y(){}function v(e,t){s=s||n(9),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,u=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(I,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),I(e,t))}(e,n,r,t,o);else{var a=S(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||E(e,n),r?c(w,e,n,a,o):w(e,n,a,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(9),!(d.call(b,this)||this instanceof s))return new b(e);this._writableState=new v(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function m(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function w(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),I(e,t)}function E(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=n;for(var s=0,c=!0;n;)o[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;o.allBuffers=c,m(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,l=n.encoding,f=n.callback;if(m(e,t,!1,t.objectMode?1:u.length,u,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function S(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function _(e,t){e._final((function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),I(e,t)}))}function I(e,t){var n=S(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(_,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}u.inherits(b,f),v.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(v.prototype,"buffer",{get:l.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(d=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!d.call(this,e)||this===b&&(e&&e._writableState instanceof v)}})):d=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,o=this._writableState,a=!1,s=!o.objectMode&&(r=e,h.isBuffer(r)||r instanceof p);return s&&!h.isBuffer(e)&&(e=function(e){return h.from(e)}(e)),"function"==typeof t&&(n=t,t=null),s?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=y),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),i.nextTick(r,a),o=!1),o}(this,o,e,n))&&(o.pendingcb++,a=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=h.from(t,n));return t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var c=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,I(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=g.destroy,b.prototype._undestroy=g.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(13),n(67).setImmediate,n(8))},function(e,t,n){"use strict";e.exports=a;var r=n(9),o=n(19);function i(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.lengths?a.slice(s).buffer:null}else{var c,u=t;if(-1===(c=u.indexOf(r.a.RecordSeparator)))throw new Error("Message is incomplete.");s=c+1;n=u.substring(0,s),i=u.length>s?u.substring(s):null}var l=r.a.parse(n),f=JSON.parse(l[0]);if(f.type)throw new Error("Expected a handshake response from the server.");return[i,f]},t}()}).call(this,n(10).Buffer)},,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},a=this&&this.__spread||function(){for(var e=[],t=0;t0?a-4:a;for(n=0;n>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===s&&(t=o[e.charCodeAt(n)]<<2|o[e.charCodeAt(n+1)]>>4,c[l++]=255&t);1===s&&(t=o[e.charCodeAt(n)]<<10|o[e.charCodeAt(n+1)]<<4|o[e.charCodeAt(n+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;as?s:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,c=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var o,i,a=[],s=t;s>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,c=(1<>1,l=-7,f=n?o-1:0,h=n?-1:1,p=e[t+f];for(f+=h,i=p&(1<<-l)-1,p>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=h,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=r;l>0;a=256*a+e[t+f],f+=h,l-=8);if(0===i)i=1-u;else{if(i===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),i-=u}return(p?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,c,u=8*i-o-1,l=(1<>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,d=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+f>=1?h/c:h*Math.pow(2,1-f))*c>=2&&(a++,c/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*c-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[n+p]=255&s,p+=d,s/=256,o-=8);for(a=a<0;e[n+p]=255&a,p+=d,a/=256,u-=8);e[n+p-d]|=128*g}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";(function(t){var r=n(58); /*! * The buffer module from node.js, for the browser. * diff --git a/src/Components/Web.JS/dist/Release/blazor.webassembly.js b/src/Components/Web.JS/dist/Release/blazor.webassembly.js index e126706898..249c40ea70 100644 --- a/src/Components/Web.JS/dist/Release/blazor.webassembly.js +++ b/src/Components/Web.JS/dist/Release/blazor.webassembly.js @@ -1 +1 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=48)}([,,,function(e,t,n){"use strict";var r;n.r(t),n.d(t,"DotNet",(function(){return r})),function(e){var t;window.DotNet=e;var n=[],r=function(){function e(e){this._jsObject=e,this._cachedFunctions=new Map}return e.prototype.findFunction=function(e){var t=this._cachedFunctions.get(e);if(t)return t;var n,r=this._jsObject;if(e.split(".").forEach((function(t){if(!(t in r))throw new Error("Could not find '"+e+"' ('"+t+"' was undefined).");n=r,r=r[t]})),r instanceof Function)return r=r.bind(n),this._cachedFunctions.set(e,r),r;throw new Error("The value '"+e+"' is not a function.")},e.prototype.getWrappedObject=function(){return this._jsObject},e}(),o={},i=((t={})[0]=new r(window),t);i[0]._cachedFunctions.set("import",(function(e){return"string"==typeof e&&e.startsWith("./")&&(e=document.baseURI+e.substr(2)),import(e)}));var a,s=1,u=1,c=null;function l(e){n.push(e)}function f(e){var t;if(e&&"object"==typeof e){i[u]=new r(e);var n=((t={}).__jsObjectId=u,t);return u++,n}throw new Error("Cannot create a JSObjectReference from the value '"+e+"'.")}function d(e){return e?JSON.parse(e,(function(e,t){return n.reduce((function(t,n){return n(e,t)}),t)})):null}function p(e,t,n,r){var o=m();if(o.invokeDotNetFromJS){var i=JSON.stringify(r,E),a=o.invokeDotNetFromJS(e,t,n,i);return a?d(a):null}throw new Error("The current dispatcher does not support synchronous calls from JS to .NET. Use invokeMethodAsync instead.")}function h(e,t,n,r){if(e&&n)throw new Error("For instance method calls, assemblyName should be null. Received '"+e+"'.");var i=s++,a=new Promise((function(e,t){o[i]={resolve:e,reject:t}}));try{var u=JSON.stringify(r,E);m().beginInvokeDotNetFromJS(i,e,t,n,u)}catch(e){v(i,!1,e)}return a}function m(){if(null!==c)return c;throw new Error("No .NET call dispatcher has been set.")}function v(e,t,n){if(!o.hasOwnProperty(e))throw new Error("There is no pending async call with ID "+e+".");var r=o[e];delete o[e],t?r.resolve(n):r.reject(n)}function y(e){return e instanceof Error?e.message+"\n"+e.stack:e?e.toString():"null"}function b(e,t){var n=i[t];if(n)return n.findFunction(e);throw new Error("JS object instance with ID "+t+" does not exist (has it been disposed?).")}function g(e){delete i[e]}e.attachDispatcher=function(e){c=e},e.attachReviver=l,e.invokeMethod=function(e,t){for(var n=[],r=2;r0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(c(i)&&c(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(u(i))throw new Error("Not implemented: moving existing logical children");var a=c(t);if(n0;)e(r,0)}var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=u,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return c(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=c,t.permuteLogicalChildren=function(e,t){var n=c(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=u(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):d(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(26),n(17);var r=n(27),o=n(7),i={},a=!1;function s(e,t,n){var o=i[e];o||(o=i[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=s,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");s(n||0,o.toLogicalElement(r,!0),t)},t.getRendererer=function(e){return i[e]},t.renderBatch=function(e,t){var n=i[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),s=r.values(o),u=r.count(o),c=t.referenceFrames(),l=r.values(c),f=t.diffReader,d=0;d0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var l,f;s.attachDebuggerHotkey(e),window.Browser={init:function(){}},l=function(){window.Module=function(e,t,n){var l=this,f=e.bootConfig.resources,d=window.Module||{},p=["DEBUGGING ENABLED"];d.print=function(e){return p.indexOf(e)<0&&console.log(e)},d.printErr=function(e){console.error(e),u.showErrorNotification()},d.preRun=d.preRun||[],d.postRun=d.postRun||[],d.preloadPlugins=[];var m,w,_=e.loadResources(f.assembly,(function(e){return"_framework/"+e}),"assembly"),E=e.loadResources(f.pdb||{},(function(e){return"_framework/"+e}),"pdb"),I=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");if(e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.blat")&&(m=e.loadResource("dotnet.timezones.blat","_framework/dotnet.timezones.blat",e.bootConfig.resources.runtime["dotnet.timezones.blat"],"globalization")),e.bootConfig.icuDataMode!=c.ICUDataMode.Invariant){var C=e.startOptions.applicationCulture||navigator.languages&&navigator.languages[0],N=function(e,t){if(!t||e.icuDataMode==c.ICUDataMode.All)return"icudt.dat";var n=t.split("-")[0];return["en","fr","it","de","es"].includes(n)?"icudt_EFIGS.dat":["zh","ko","ja"].includes(n)?"icudt_CJK.dat":"icudt_no_CJK.dat"}(e.bootConfig,C);w=e.loadResource(N,"_framework/"+N,e.bootConfig.resources.runtime[N],"globalization")}return d.instantiateWasm=function(e,t){return r(l,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,I];case 1:return[4,y(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),d.printErr(r),r;case 4:return t(n),[2]}}))})),[]},d.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],m&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),Module.FS_createPath("/","usr",!0,!0),Module.FS_createPath("/usr/","share",!0,!0),Module.FS_createPath("/usr/share/","zoneinfo",!0,!0),MONO.mono_wasm_load_data_archive(new Uint8Array(n),"/usr/share/zoneinfo/"),removeRunDependency(t),[2]}}))}))}(m),w?function(e){r(this,void 0,void 0,(function(){var t,n,r,i,a;return o(this,(function(o){switch(o.label){case 0:return t="blazor:icudata",addRunDependency(t),[4,e.response];case 1:return n=o.sent(),i=Uint8Array.bind,[4,n.arrayBuffer()];case 2:if(r=new(i.apply(Uint8Array,[void 0,o.sent()])),a=MONO.mono_wasm_load_bytes_into_heap(r),!MONO.mono_wasm_load_icu_data(a))throw new Error("Error loading ICU asset.");return removeRunDependency(t),[2]}}))}))}(w):MONO.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT","1"),_.forEach((function(e){return A(e,b(e.name,".dll"))})),E.forEach((function(e){return A(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){d.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources;if(e.startOptions.applicationCulture||navigator.languages&&navigator.languages[0],i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(l,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return p(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>f)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*l+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return p(e+(t||0))},readStringField:function(e,t,n){var r,o=p(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return d?void 0===(r=d.stringCache.get(o))&&(r=BINDING.conv_string(o),d.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return g(),d=new w},invokeWhenHeapUnlocked:function(e){d?d.enqueuePostReleaseAction(e):e()}};var h=document.createElement("a");function m(e){return e+12}function v(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function y(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function b(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}function g(){if(d)throw new Error("Assertion failed - heap is currently locked")}var w=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(d!==this)throw new Error("Trying to release a lock which isn't current");for(d=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),g()}},e}()},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&e.invokeMethodAsync("OnSpacerAfterVisible",r.boundingClientRect.bottom-r.intersectionRect.bottom,a,s)}}))}),{root:i,rootMargin:o+"px"});a.observe(t),a.observe(n);var s=c(t),u=c(n);function c(e){var t=new MutationObserver((function(){a.unobserve(e),a.observe(e)}));return t.observe(e,{attributes:!0}),t}r[e._id]={intersectionObserver:a,mutationObserverBefore:s,mutationObserverAfter:u}},dispose:function(e){var t=r[e._id];t&&(t.intersectionObserver.disconnect(),t.mutationObserverBefore.disconnect(),t.mutationObserverAfter.disconnect(),e.dispose(),delete r[e._id])}};var r={}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1].*)$/;function i(e,t){var n=e.currentElement;if(n&&n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r.groups&&r.groups.descriptor;if(!i)return;try{var s=function(e){var t=JSON.parse(e),n=t.type;if("server"!==n&&"webassembly"!==n)throw new Error("Invalid component type '"+n+"'.");return t}(i);switch(t){case"webassembly":return function(e,t,n){var r=e.type,o=e.assembly,i=e.typeName,s=e.parameterDefinitions,u=e.parameterValues,c=e.prerenderId;if("webassembly"!==r)return;if(!o)throw new Error("assembly must be defined when using a descriptor.");if(!i)throw new Error("typeName must be defined when using a descriptor.");if(c){var l=a(c,n);if(!l)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:u&&atob(u),start:t,prerenderId:c,end:l}}return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:u&&atob(u),start:t}}(s,n,e);case"server":return function(e,t,n){var r=e.type,o=e.descriptor,i=e.sequence,s=e.prerenderId;if("server"!==r)return;if(!o)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===i)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(i))throw new Error("Error parsing the sequence '"+i+"' for component '"+JSON.stringify(e)+"'");if(s){var u=a(s,n);if(!u)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,sequence:i,descriptor:o,start:t,prerenderId:s,end:u}}return{type:r,sequence:i,descriptor:o,start:t}}(s,n,e)}}catch(e){throw new Error("Found malformed component comment at "+n.textContent)}}}function a(e,t){for(;t.next()&&t.currentElement;){var n=t.currentElement;if(n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r[1];if(i)return s(i,e),n}}}function s(e,t){var n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error("Invalid end of component comment: '"+e+"'");var r=n.prerenderId;if(!r)throw new Error("End of component comment must have a value for the prerendered property: '"+e+"'");if(r!==t)throw new Error("End of component comment prerendered property must match the start comment prerender id: '"+t+"', '"+r+"'")}var u=function(){function e(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}return e.prototype.next=function(){return this.currentIndex++,this.currentIndex0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var a=n(3);n(25);var s=n(17),u=n(20),c=n(12),l=n(49),f=n(37),d=n(18),p=n(50),h=n(51),m=n(22),v=n(52),y=n(38),b=!1;function g(e){return r(this,void 0,void 0,(function(){var t,n,f,g,_,E,I,C,N,A,S,O=this;return o(this,(function(k){switch(k.label){case 0:if(b)throw new Error("Blazor has already started.");return b=!0,d.setEventDispatcher((function(e,t){c.getRendererer(e.browserRendererId).eventDelegator.getHandler(e.eventHandlerId)&&u.monoPlatform.invokeWhenHeapUnlocked((function(){return a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","DispatchEvent",e,JSON.stringify(t))}))})),window.Blazor._internal.invokeJSFromDotNet=w,t=s.setPlatform(u.monoPlatform),window.Blazor.platform=t,window.Blazor._internal.renderBatch=function(e,t){var n=u.monoPlatform.beginHeapLock();try{c.renderBatch(e,new l.SharedMemoryRenderBatch(t))}finally{n.release()}},n=window.Blazor._internal.navigationManager.getBaseURI,f=window.Blazor._internal.navigationManager.getLocationHref,window.Blazor._internal.navigationManager.getUnmarshalledBaseURI=function(){return BINDING.js_string_to_mono_string(n())},window.Blazor._internal.navigationManager.getUnmarshalledLocationHref=function(){return BINDING.js_string_to_mono_string(f())},window.Blazor._internal.navigationManager.listenForNavigationEvents((function(e,t){return r(O,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return[4,a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChanged",e,t)];case 1:return n.sent(),[2]}}))}))})),g=null==e?void 0:e.environment,_=m.BootConfigResult.initAsync(g),E=y.discoverComponents(document,"webassembly"),I=new v.WebAssemblyComponentAttacher(E),window.Blazor._internal.registeredComponents={getRegisteredComponentsCount:function(){return I.getCount()},getId:function(e){return I.getId(e)},getAssembly:function(e){return BINDING.js_string_to_mono_string(I.getAssembly(e))},getTypeName:function(e){return BINDING.js_string_to_mono_string(I.getTypeName(e))},getParameterDefinitions:function(e){return BINDING.js_string_to_mono_string(I.getParameterDefinitions(e)||"")},getParameterValues:function(e){return BINDING.js_string_to_mono_string(I.getParameterValues(e)||"")}},window.Blazor._internal.attachRootComponentToElement=function(e,t,n){var r=I.resolveRegisteredElement(e);r?c.attachRootComponentToLogicalElement(n,r,t):c.attachRootComponentToElement(e,t,n)},[4,_];case 1:return C=k.sent(),[4,Promise.all([p.WebAssemblyResourceLoader.initAsync(C.bootConfig,e||{}),h.WebAssemblyConfigLoader.initAsync(C)])];case 2:N=i.apply(void 0,[k.sent(),1]),A=N[0],k.label=3;case 3:return k.trys.push([3,5,,6]),[4,t.start(A)];case 4:return k.sent(),[3,6];case 5:throw S=k.sent(),new Error("Failed to start platform. Reason: "+S);case 6:return t.callEntryPoint(A.bootConfig.entryAssembly),[2]}}))}))}function w(e,t,n,r){var o=u.monoPlatform.readStringField(e,0),i=u.monoPlatform.readInt32Field(e,4),s=u.monoPlatform.readStringField(e,8),c=u.monoPlatform.readUint64Field(e,20);if(null!==s){var l=u.monoPlatform.readUint64Field(e,12);if(0!==l)return a.DotNet.jsCallDispatcher.beginInvokeJSFromDotNet(l,o,s,i,c),0;var f=a.DotNet.jsCallDispatcher.invokeJSFromDotNet(o,s,i,c);return null===f?0:BINDING.js_string_to_mono_string(f)}var d=a.DotNet.jsCallDispatcher.findJSFunction(o,c).call(null,t,n,r);switch(i){case a.DotNet.JSCallResultType.Default:return d;case a.DotNet.JSCallResultType.JSObjectReference:return a.DotNet.createJSObjectReference(d).__jsObjectId;default:throw new Error("Invalid JS call result type '"+i+"'.")}}window.Blazor.start=g,f.shouldAutoStart()&&g().catch((function(e){"undefined"!=typeof Module&&Module.printErr?Module.printErr(e):console.error(e)}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(17),o=function(){function e(e){this.batchAddress=e,this.arrayRangeReader=i,this.arrayBuilderSegmentReader=a,this.diffReader=s,this.editReader=u,this.frameReader=c}return e.prototype.updatedComponents=function(){return r.platform.readStructField(this.batchAddress,0)},e.prototype.referenceFrames=function(){return r.platform.readStructField(this.batchAddress,i.structLength)},e.prototype.disposedComponentIds=function(){return r.platform.readStructField(this.batchAddress,2*i.structLength)},e.prototype.disposedEventHandlerIds=function(){return r.platform.readStructField(this.batchAddress,3*i.structLength)},e.prototype.updatedComponentsEntry=function(e,t){return l(e,t,s.structLength)},e.prototype.referenceFramesEntry=function(e,t){return l(e,t,c.structLength)},e.prototype.disposedComponentIdsEntry=function(e,t){var n=l(e,t,4);return r.platform.readInt32Field(n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=l(e,t,8);return r.platform.readUint64Field(n)},e}();t.SharedMemoryRenderBatch=o;var i={structLength:8,values:function(e){return r.platform.readObjectField(e,0)},count:function(e){return r.platform.readInt32Field(e,4)}},a={structLength:12,values:function(e){var t=r.platform.readObjectField(e,0),n=r.platform.getObjectFieldsBaseAddress(t);return r.platform.readObjectField(n,0)},offset:function(e){return r.platform.readInt32Field(e,4)},count:function(e){return r.platform.readInt32Field(e,8)}},s={structLength:4+a.structLength,componentId:function(e){return r.platform.readInt32Field(e,0)},edits:function(e){return r.platform.readStructField(e,4)},editsEntry:function(e,t){return l(e,t,u.structLength)}},u={structLength:20,editType:function(e){return r.platform.readInt32Field(e,0)},siblingIndex:function(e){return r.platform.readInt32Field(e,4)},newTreeIndex:function(e){return r.platform.readInt32Field(e,8)},moveToSiblingIndex:function(e){return r.platform.readInt32Field(e,8)},removedAttributeName:function(e){return r.platform.readStringField(e,16)}},c={structLength:36,frameType:function(e){return r.platform.readInt16Field(e,4)},subtreeLength:function(e){return r.platform.readInt32Field(e,8)},elementReferenceCaptureId:function(e){return r.platform.readStringField(e,16)},componentId:function(e){return r.platform.readInt32Field(e,12)},elementName:function(e){return r.platform.readStringField(e,16)},textContent:function(e){return r.platform.readStringField(e,16)},markupContent:function(e){return r.platform.readStringField(e,16)},attributeName:function(e){return r.platform.readStringField(e,16)},attributeValue:function(e){return r.platform.readStringField(e,24,!0)},attributeEventHandlerId:function(e){return r.platform.readUint64Field(e,8)}};function l(e,t,n){return r.platform.getArrayEntryPtr(e,t,n)}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(c(i)&&c(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(u(i))throw new Error("Not implemented: moving existing logical children");var a=c(t);if(n0;)e(r,0)}var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=u,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return c(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=c,t.permuteLogicalChildren=function(e,t){var n=c(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=u(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):d(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(26),n(17);var r=n(27),o=n(7),i={},a=!1;function s(e,t,n){var o=i[e];o||(o=i[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=s,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");s(n||0,o.toLogicalElement(r,!0),t)},t.getRendererer=function(e){return i[e]},t.renderBatch=function(e,t){var n=i[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),s=r.values(o),u=r.count(o),c=t.referenceFrames(),l=r.values(c),f=t.diffReader,d=0;d0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var l,f;s.attachDebuggerHotkey(e),window.Browser={init:function(){}},l=function(){window.Module=function(e,t,n){var l=this,f=e.bootConfig.resources,d=window.Module||{},p=["DEBUGGING ENABLED"];d.print=function(e){return p.indexOf(e)<0&&console.log(e)},d.printErr=function(e){console.error(e),u.showErrorNotification()},d.preRun=d.preRun||[],d.postRun=d.postRun||[],d.preloadPlugins=[];var m,w,_=e.loadResources(f.assembly,(function(e){return"_framework/"+e}),"assembly"),E=e.loadResources(f.pdb||{},(function(e){return"_framework/"+e}),"pdb"),I=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");if(e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.blat")&&(m=e.loadResource("dotnet.timezones.blat","_framework/dotnet.timezones.blat",e.bootConfig.resources.runtime["dotnet.timezones.blat"],"globalization")),e.bootConfig.icuDataMode!=c.ICUDataMode.Invariant){var C=e.startOptions.applicationCulture||navigator.languages&&navigator.languages[0],N=function(e,t){if(!t||e.icuDataMode===c.ICUDataMode.All)return"icudt.dat";var n=t.split("-")[0];return["en","fr","it","de","es"].includes(n)?"icudt_EFIGS.dat":["zh","ko","ja"].includes(n)?"icudt_CJK.dat":"icudt_no_CJK.dat"}(e.bootConfig,C);w=e.loadResource(N,"_framework/"+N,e.bootConfig.resources.runtime[N],"globalization")}return d.instantiateWasm=function(e,t){return r(l,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,I];case 1:return[4,y(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),d.printErr(r),r;case 4:return t(n),[2]}}))})),[]},d.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],m&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),Module.FS_createPath("/","usr",!0,!0),Module.FS_createPath("/usr/","share",!0,!0),Module.FS_createPath("/usr/share/","zoneinfo",!0,!0),MONO.mono_wasm_load_data_archive(new Uint8Array(n),"/usr/share/zoneinfo/"),removeRunDependency(t),[2]}}))}))}(m),w?function(e){r(this,void 0,void 0,(function(){var t,n,r,i,a;return o(this,(function(o){switch(o.label){case 0:return t="blazor:icudata",addRunDependency(t),[4,e.response];case 1:return n=o.sent(),i=Uint8Array.bind,[4,n.arrayBuffer()];case 2:if(r=new(i.apply(Uint8Array,[void 0,o.sent()])),a=MONO.mono_wasm_load_bytes_into_heap(r),!MONO.mono_wasm_load_icu_data(a))throw new Error("Error loading ICU asset.");return removeRunDependency(t),[2]}}))}))}(w):MONO.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT","1"),_.forEach((function(e){return A(e,b(e.name,".dll"))})),E.forEach((function(e){return A(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){d.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources;if(e.startOptions.applicationCulture||navigator.languages&&navigator.languages[0],i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(l,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return p(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>f)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*l+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return p(e+(t||0))},readStringField:function(e,t,n){var r,o=p(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return d?void 0===(r=d.stringCache.get(o))&&(r=BINDING.conv_string(o),d.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return g(),d=new w},invokeWhenHeapUnlocked:function(e){d?d.enqueuePostReleaseAction(e):e()}};var h=document.createElement("a");function m(e){return e+12}function v(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function y(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function b(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}function g(){if(d)throw new Error("Assertion failed - heap is currently locked")}var w=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(d!==this)throw new Error("Trying to release a lock which isn't current");for(d=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),g()}},e}()},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&e.invokeMethodAsync("OnSpacerAfterVisible",r.boundingClientRect.bottom-r.intersectionRect.bottom,a,s)}}))}),{root:i,rootMargin:o+"px"});a.observe(t),a.observe(n);var s=c(t),u=c(n);function c(e){var t=new MutationObserver((function(){a.unobserve(e),a.observe(e)}));return t.observe(e,{attributes:!0}),t}r[e._id]={intersectionObserver:a,mutationObserverBefore:s,mutationObserverAfter:u}},dispose:function(e){var t=r[e._id];t&&(t.intersectionObserver.disconnect(),t.mutationObserverBefore.disconnect(),t.mutationObserverAfter.disconnect(),e.dispose(),delete r[e._id])}};var r={}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1].*)$/;function i(e,t){var n=e.currentElement;if(n&&n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r.groups&&r.groups.descriptor;if(!i)return;try{var s=function(e){var t=JSON.parse(e),n=t.type;if("server"!==n&&"webassembly"!==n)throw new Error("Invalid component type '"+n+"'.");return t}(i);switch(t){case"webassembly":return function(e,t,n){var r=e.type,o=e.assembly,i=e.typeName,s=e.parameterDefinitions,u=e.parameterValues,c=e.prerenderId;if("webassembly"!==r)return;if(!o)throw new Error("assembly must be defined when using a descriptor.");if(!i)throw new Error("typeName must be defined when using a descriptor.");if(c){var l=a(c,n);if(!l)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:u&&atob(u),start:t,prerenderId:c,end:l}}return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:u&&atob(u),start:t}}(s,n,e);case"server":return function(e,t,n){var r=e.type,o=e.descriptor,i=e.sequence,s=e.prerenderId;if("server"!==r)return;if(!o)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===i)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(i))throw new Error("Error parsing the sequence '"+i+"' for component '"+JSON.stringify(e)+"'");if(s){var u=a(s,n);if(!u)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,sequence:i,descriptor:o,start:t,prerenderId:s,end:u}}return{type:r,sequence:i,descriptor:o,start:t}}(s,n,e)}}catch(e){throw new Error("Found malformed component comment at "+n.textContent)}}}function a(e,t){for(;t.next()&&t.currentElement;){var n=t.currentElement;if(n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r[1];if(i)return s(i,e),n}}}function s(e,t){var n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error("Invalid end of component comment: '"+e+"'");var r=n.prerenderId;if(!r)throw new Error("End of component comment must have a value for the prerendered property: '"+e+"'");if(r!==t)throw new Error("End of component comment prerendered property must match the start comment prerender id: '"+t+"', '"+r+"'")}var u=function(){function e(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}return e.prototype.next=function(){return this.currentIndex++,this.currentIndex0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var a=n(3);n(25);var s=n(17),u=n(20),c=n(12),l=n(49),f=n(37),d=n(18),p=n(50),h=n(51),m=n(22),v=n(52),y=n(38),b=!1;function g(e){return r(this,void 0,void 0,(function(){var t,n,f,g,_,E,I,C,N,A,S,O=this;return o(this,(function(k){switch(k.label){case 0:if(b)throw new Error("Blazor has already started.");return b=!0,d.setEventDispatcher((function(e,t){c.getRendererer(e.browserRendererId).eventDelegator.getHandler(e.eventHandlerId)&&u.monoPlatform.invokeWhenHeapUnlocked((function(){return a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","DispatchEvent",e,JSON.stringify(t))}))})),window.Blazor._internal.invokeJSFromDotNet=w,t=s.setPlatform(u.monoPlatform),window.Blazor.platform=t,window.Blazor._internal.renderBatch=function(e,t){var n=u.monoPlatform.beginHeapLock();try{c.renderBatch(e,new l.SharedMemoryRenderBatch(t))}finally{n.release()}},n=window.Blazor._internal.navigationManager.getBaseURI,f=window.Blazor._internal.navigationManager.getLocationHref,window.Blazor._internal.navigationManager.getUnmarshalledBaseURI=function(){return BINDING.js_string_to_mono_string(n())},window.Blazor._internal.navigationManager.getUnmarshalledLocationHref=function(){return BINDING.js_string_to_mono_string(f())},window.Blazor._internal.navigationManager.listenForNavigationEvents((function(e,t){return r(O,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return[4,a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChanged",e,t)];case 1:return n.sent(),[2]}}))}))})),g=null==e?void 0:e.environment,_=m.BootConfigResult.initAsync(g),E=y.discoverComponents(document,"webassembly"),I=new v.WebAssemblyComponentAttacher(E),window.Blazor._internal.registeredComponents={getRegisteredComponentsCount:function(){return I.getCount()},getId:function(e){return I.getId(e)},getAssembly:function(e){return BINDING.js_string_to_mono_string(I.getAssembly(e))},getTypeName:function(e){return BINDING.js_string_to_mono_string(I.getTypeName(e))},getParameterDefinitions:function(e){return BINDING.js_string_to_mono_string(I.getParameterDefinitions(e)||"")},getParameterValues:function(e){return BINDING.js_string_to_mono_string(I.getParameterValues(e)||"")}},window.Blazor._internal.attachRootComponentToElement=function(e,t,n){var r=I.resolveRegisteredElement(e);r?c.attachRootComponentToLogicalElement(n,r,t):c.attachRootComponentToElement(e,t,n)},[4,_];case 1:return C=k.sent(),[4,Promise.all([p.WebAssemblyResourceLoader.initAsync(C.bootConfig,e||{}),h.WebAssemblyConfigLoader.initAsync(C)])];case 2:N=i.apply(void 0,[k.sent(),1]),A=N[0],k.label=3;case 3:return k.trys.push([3,5,,6]),[4,t.start(A)];case 4:return k.sent(),[3,6];case 5:throw S=k.sent(),new Error("Failed to start platform. Reason: "+S);case 6:return t.callEntryPoint(A.bootConfig.entryAssembly),[2]}}))}))}function w(e,t,n,r){var o=u.monoPlatform.readStringField(e,0),i=u.monoPlatform.readInt32Field(e,4),s=u.monoPlatform.readStringField(e,8),c=u.monoPlatform.readUint64Field(e,20);if(null!==s){var l=u.monoPlatform.readUint64Field(e,12);if(0!==l)return a.DotNet.jsCallDispatcher.beginInvokeJSFromDotNet(l,o,s,i,c),0;var f=a.DotNet.jsCallDispatcher.invokeJSFromDotNet(o,s,i,c);return null===f?0:BINDING.js_string_to_mono_string(f)}var d=a.DotNet.jsCallDispatcher.findJSFunction(o,c).call(null,t,n,r);switch(i){case a.DotNet.JSCallResultType.Default:return d;case a.DotNet.JSCallResultType.JSObjectReference:return a.DotNet.createJSObjectReference(d).__jsObjectId;default:throw new Error("Invalid JS call result type '"+i+"'.")}}window.Blazor.start=g,f.shouldAutoStart()&&g().catch((function(e){"undefined"!=typeof Module&&Module.printErr?Module.printErr(e):console.error(e)}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(17),o=function(){function e(e){this.batchAddress=e,this.arrayRangeReader=i,this.arrayBuilderSegmentReader=a,this.diffReader=s,this.editReader=u,this.frameReader=c}return e.prototype.updatedComponents=function(){return r.platform.readStructField(this.batchAddress,0)},e.prototype.referenceFrames=function(){return r.platform.readStructField(this.batchAddress,i.structLength)},e.prototype.disposedComponentIds=function(){return r.platform.readStructField(this.batchAddress,2*i.structLength)},e.prototype.disposedEventHandlerIds=function(){return r.platform.readStructField(this.batchAddress,3*i.structLength)},e.prototype.updatedComponentsEntry=function(e,t){return l(e,t,s.structLength)},e.prototype.referenceFramesEntry=function(e,t){return l(e,t,c.structLength)},e.prototype.disposedComponentIdsEntry=function(e,t){var n=l(e,t,4);return r.platform.readInt32Field(n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=l(e,t,8);return r.platform.readUint64Field(n)},e}();t.SharedMemoryRenderBatch=o;var i={structLength:8,values:function(e){return r.platform.readObjectField(e,0)},count:function(e){return r.platform.readInt32Field(e,4)}},a={structLength:12,values:function(e){var t=r.platform.readObjectField(e,0),n=r.platform.getObjectFieldsBaseAddress(t);return r.platform.readObjectField(n,0)},offset:function(e){return r.platform.readInt32Field(e,4)},count:function(e){return r.platform.readInt32Field(e,8)}},s={structLength:4+a.structLength,componentId:function(e){return r.platform.readInt32Field(e,0)},edits:function(e){return r.platform.readStructField(e,4)},editsEntry:function(e,t){return l(e,t,u.structLength)}},u={structLength:20,editType:function(e){return r.platform.readInt32Field(e,0)},siblingIndex:function(e){return r.platform.readInt32Field(e,4)},newTreeIndex:function(e){return r.platform.readInt32Field(e,8)},moveToSiblingIndex:function(e){return r.platform.readInt32Field(e,8)},removedAttributeName:function(e){return r.platform.readStringField(e,16)}},c={structLength:36,frameType:function(e){return r.platform.readInt16Field(e,4)},subtreeLength:function(e){return r.platform.readInt32Field(e,8)},elementReferenceCaptureId:function(e){return r.platform.readStringField(e,16)},componentId:function(e){return r.platform.readInt32Field(e,12)},elementName:function(e){return r.platform.readStringField(e,16)},textContent:function(e){return r.platform.readStringField(e,16)},markupContent:function(e){return r.platform.readStringField(e,16)},attributeName:function(e){return r.platform.readStringField(e,16)},attributeValue:function(e){return r.platform.readStringField(e,24,!0)},attributeEventHandlerId:function(e){return r.platform.readUint64Field(e,8)}};function l(e,t,n){return r.platform.getArrayEntryPtr(e,t,n)}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1] | undefined; + private _requestedScopes: string[] | undefined; constructor(private readonly _settings: AuthorizeServiceConfiguration) { if (this._settings.auth?.knownAuthorities?.length == 0) { @@ -81,10 +82,23 @@ class MsalAuthorizeService implements AuthorizeService { return; } + const scopes: string[] = []; + if (this._settings.defaultAccessTokenScopes && this._settings.defaultAccessTokenScopes.length > 0) { + scopes.push(...this._settings.defaultAccessTokenScopes) + } + + if (this._settings.additionalScopesToConsent && this._settings.additionalScopesToConsent.length > 0) { + scopes.push(...this._settings.additionalScopesToConsent); + } + + if (this._requestedScopes && this._requestedScopes.length > 0) { + scopes.push(...this._requestedScopes); + } + const silentRequest = { redirectUri: this._settings.auth?.redirectUri, account: account, - scopes: this._settings.defaultAccessTokenScopes + scopes: scopes }; const response = await this._msalApplication.acquireTokenSilent(silentRequest); @@ -111,6 +125,7 @@ class MsalAuthorizeService implements AuthorizeService { return; } + this._requestedScopes = scopes; const silentRequest = { redirectUri: this._settings.auth?.redirectUri, account: account, @@ -162,7 +177,7 @@ class MsalAuthorizeService implements AuthorizeService { const silentRequest = { redirectUri: request.redirectUri, account: account, - scopes: request.scopes, + scopes: request.scopes.concat(request.extraScopesToConsent || []) }; await this._msalApplication.acquireTokenSilent(silentRequest); } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/wwwroot/appsettings.json b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/wwwroot/appsettings.json index ad4a825523..b42e773286 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/wwwroot/appsettings.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/wwwroot/appsettings.json @@ -1,7 +1,7 @@ { ////#if (IndividualLocalAuth) //"Local": { - // "Authority": "https://login.microsoftonline.com/", + // "Authority": "https:////login.microsoftonline.com/", // "ClientId": "33333333-3333-3333-33333333333333333" //} ////#endif From 230daab5b609895b0353b28c4211a5701dd614ad Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 24 Sep 2020 05:43:18 +0000 Subject: [PATCH 177/187] Update dependencies from https://github.com/dotnet/runtime build 20200923.9 (#26260) [release/5.0-rc2] Update dependencies from dotnet/runtime --- eng/Version.Details.xml | 260 ++++++++++++++++++++-------------------- eng/Versions.props | 130 ++++++++++---------- 2 files changed, 195 insertions(+), 195 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 921b8ec960..a9ef8836c8 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -41,272 +41,272 @@ https://github.com/dotnet/efcore 69351ad9e7d5a1ba685bc5de21de6b57af3f26ba - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 - + https://github.com/dotnet/runtime - fd75c08e74bd4a349ed6dca742e4a33f3a617a11 + 467647115ce628504762ee3555d4439ae2da6582 https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 9d40d8118d..a6ff8d6f51 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,72 +62,72 @@ 3.8.0-3.20458.6 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.9 5.0.0-rc.2.20473.5 5.0.0-rc.2.20473.5 From 8d8d293b192d38a4cc8d2e13d944936402d20e7f Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Thu, 24 Sep 2020 12:14:15 -0700 Subject: [PATCH 178/187] Remove dead-lettered Centos.7.Amd64.Open queue (#26238) - was breaking Helix full matrix tests temporarily - more importantly, queue is redundant given RHEL coverage --- eng/targets/Helix.Common.props | 1 - 1 file changed, 1 deletion(-) diff --git a/eng/targets/Helix.Common.props b/eng/targets/Helix.Common.props index 029f75990e..07b8246029 100644 --- a/eng/targets/Helix.Common.props +++ b/eng/targets/Helix.Common.props @@ -32,7 +32,6 @@ - From f63e90e106478b3f0dc85002128ad9f102d1b0fc Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Thu, 24 Sep 2020 21:24:06 +0100 Subject: [PATCH 179/187] Omit omissible frames when updating rendertree to match bind event. Fixes #24014 (#26273) --- .../src/Rendering/RenderTreeBuilder.cs | 5 ++-- .../src/Rendering/RenderTreeUpdater.cs | 9 ++++++- .../Components/test/RenderTreeUpdaterTest.cs | 24 +++++++++++++++++++ 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/src/Components/Components/src/Rendering/RenderTreeBuilder.cs b/src/Components/Components/src/Rendering/RenderTreeBuilder.cs index 0f5e161074..215fd84c53 100644 --- a/src/Components/Components/src/Rendering/RenderTreeBuilder.cs +++ b/src/Components/Components/src/Rendering/RenderTreeBuilder.cs @@ -667,15 +667,16 @@ namespace Microsoft.AspNetCore.Components.Rendering // internal because this should only be used during the post-event tree patching logic // It's expensive because it involves copying all the subsequent memory in the array - internal void InsertAttributeExpensive(int insertAtIndex, int sequence, string attributeName, object? attributeValue) + internal bool InsertAttributeExpensive(int insertAtIndex, int sequence, string attributeName, object? attributeValue) { // Replicate the same attribute omission logic as used elsewhere if ((attributeValue == null) || (attributeValue is bool boolValue && !boolValue)) { - return; + return false; } _entries.InsertExpensive(insertAtIndex, RenderTreeFrame.Attribute(sequence, attributeName, attributeValue)); + return true; } /// diff --git a/src/Components/Components/src/Rendering/RenderTreeUpdater.cs b/src/Components/Components/src/Rendering/RenderTreeUpdater.cs index 2f5db8b146..4b97d52317 100644 --- a/src/Components/Components/src/Rendering/RenderTreeUpdater.cs +++ b/src/Components/Components/src/Rendering/RenderTreeUpdater.cs @@ -75,7 +75,14 @@ namespace Microsoft.AspNetCore.Components.Rendering // If we get here, we didn't find the desired attribute, so we have to insert a new frame for it var insertAtIndex = elementFrameIndex + 1; - renderTreeBuilder.InsertAttributeExpensive(insertAtIndex, RenderTreeDiffBuilder.SystemAddedAttributeSequenceNumber, attributeName, attributeValue); + var didInsertFrame = renderTreeBuilder.InsertAttributeExpensive(insertAtIndex, RenderTreeDiffBuilder.SystemAddedAttributeSequenceNumber, attributeName, attributeValue); + if (!didInsertFrame) + { + // The builder decided to omit the new frame, e.g., because it's a false-valued bool + // In this case there's nothing else to update + return; + } + framesArray = renderTreeBuilder.GetFrames().Array; // Refresh in case it mutated due to the expansion // Update subtree length for this and all ancestor containers diff --git a/src/Components/Components/test/RenderTreeUpdaterTest.cs b/src/Components/Components/test/RenderTreeUpdaterTest.cs index 5011d6fb4a..de9ba94aca 100644 --- a/src/Components/Components/test/RenderTreeUpdaterTest.cs +++ b/src/Components/Components/test/RenderTreeUpdaterTest.cs @@ -127,6 +127,30 @@ namespace Microsoft.AspNetCore.Components.Test frame => AssertFrame.Attribute(frame, "eventname", v => Assert.IsType(v), 1)); } + [Fact] + public void OmitsAttributeIfNotFoundButValueIsOmissible() + { + // Arrange + var valuePropName = "testprop"; + var renderer = new TestRenderer(); + var builder = new RenderTreeBuilder(); + builder.OpenElement(0, "elem"); + builder.AddAttribute(1, "eventname", (Action)(() => { })); + builder.SetUpdatesAttributeName(valuePropName); + builder.CloseElement(); + var frames = builder.GetFrames(); + frames.Array[1] = frames.Array[1].WithAttributeEventHandlerId(123); + + // Act + RenderTreeUpdater.UpdateToMatchClientState(builder, 123, false); + frames = builder.GetFrames(); + + // Assert + Assert.Collection(frames.AsEnumerable(), + frame => AssertFrame.Element(frame, "elem", 2, 0), + frame => AssertFrame.Attribute(frame, "eventname", v => Assert.IsType(v), 1)); + } + [Fact] public void ExpandsAllAncestorsWhenAddingAttribute() { From 61d740ba61adbf0f8af965fca85f9dc3584cd90d Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 24 Sep 2020 20:31:55 +0000 Subject: [PATCH 180/187] [release/5.0-rc2] Update dependencies from dotnet/efcore dotnet/runtime (#26263) [release/5.0-rc2] Update dependencies from dotnet/efcore dotnet/runtime --- eng/Version.Details.xml | 292 ++++++++++++++++++++-------------------- eng/Versions.props | 146 ++++++++++---------- 2 files changed, 219 insertions(+), 219 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a9ef8836c8..f0f60aa8ab 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,304 +9,304 @@ --> - + https://github.com/dotnet/efcore - 69351ad9e7d5a1ba685bc5de21de6b57af3f26ba + d8d07c1e35f62fe20f6ed82a96bfa687c3cbcc4c - + https://github.com/dotnet/efcore - 69351ad9e7d5a1ba685bc5de21de6b57af3f26ba + d8d07c1e35f62fe20f6ed82a96bfa687c3cbcc4c - + https://github.com/dotnet/efcore - 69351ad9e7d5a1ba685bc5de21de6b57af3f26ba + d8d07c1e35f62fe20f6ed82a96bfa687c3cbcc4c - + https://github.com/dotnet/efcore - 69351ad9e7d5a1ba685bc5de21de6b57af3f26ba + d8d07c1e35f62fe20f6ed82a96bfa687c3cbcc4c - + https://github.com/dotnet/efcore - 69351ad9e7d5a1ba685bc5de21de6b57af3f26ba + d8d07c1e35f62fe20f6ed82a96bfa687c3cbcc4c - + https://github.com/dotnet/efcore - 69351ad9e7d5a1ba685bc5de21de6b57af3f26ba + d8d07c1e35f62fe20f6ed82a96bfa687c3cbcc4c - + https://github.com/dotnet/efcore - 69351ad9e7d5a1ba685bc5de21de6b57af3f26ba + d8d07c1e35f62fe20f6ed82a96bfa687c3cbcc4c - + https://github.com/dotnet/efcore - 69351ad9e7d5a1ba685bc5de21de6b57af3f26ba + d8d07c1e35f62fe20f6ed82a96bfa687c3cbcc4c - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea - + https://github.com/dotnet/runtime - 467647115ce628504762ee3555d4439ae2da6582 + 16ad84f77ed8e936e554fafbe452cf59246c93ea https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index a6ff8d6f51..f68c3c7f94 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,81 +62,81 @@ 3.8.0-3.20458.6 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 - 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20473.9 + 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 - 5.0.0-rc.2.20473.5 + 5.0.0-rc.2.20473.6 + 5.0.0-rc.2.20473.6 + 5.0.0-rc.2.20473.6 + 5.0.0-rc.2.20473.6 + 5.0.0-rc.2.20473.6 + 5.0.0-rc.2.20473.6 + 5.0.0-rc.2.20473.6 + 5.0.0-rc.2.20473.6 5.0.0-beta.20467.6 From 32e3353e69c7e68ad944642058f913960b3ffafd Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Thu, 24 Sep 2020 16:29:31 -0700 Subject: [PATCH 181/187] Quarantine recent test failures (#26295) - see #26291 and #26294 --- .../Inprocess/SynchronousReadAndWriteTests.cs | 1 + .../test/InMemory.FunctionalTests/Http2/Http2ConnectionTests.cs | 1 + 2 files changed, 2 insertions(+) diff --git a/src/Servers/IIS/IIS/test/Common.FunctionalTests/Inprocess/SynchronousReadAndWriteTests.cs b/src/Servers/IIS/IIS/test/Common.FunctionalTests/Inprocess/SynchronousReadAndWriteTests.cs index fd80665c6f..78d1857528 100644 --- a/src/Servers/IIS/IIS/test/Common.FunctionalTests/Inprocess/SynchronousReadAndWriteTests.cs +++ b/src/Servers/IIS/IIS/test/Common.FunctionalTests/Inprocess/SynchronousReadAndWriteTests.cs @@ -22,6 +22,7 @@ namespace Microsoft.AspNetCore.Server.IIS.FunctionalTests.InProcess } [ConditionalFact] + [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/26294")] public async Task ReadAndWriteSynchronously() { var content = new StringContent(new string('a', 100000)); diff --git a/src/Servers/Kestrel/test/InMemory.FunctionalTests/Http2/Http2ConnectionTests.cs b/src/Servers/Kestrel/test/InMemory.FunctionalTests/Http2/Http2ConnectionTests.cs index 110575221c..794fdf1946 100644 --- a/src/Servers/Kestrel/test/InMemory.FunctionalTests/Http2/Http2ConnectionTests.cs +++ b/src/Servers/Kestrel/test/InMemory.FunctionalTests/Http2/Http2ConnectionTests.cs @@ -1503,6 +1503,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests } [Fact] + [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/26291")] public Task Frame_MultipleStreams_RequestsNotFinished_DefaultMaxStreamsPerConnection_EnhanceYourCalmAfterDoubleMaxStreams() { // Kestrel tracks max streams per connection * 2 From c6787dd21c8c9bf3fd3151835ac8e66c98a20bc9 Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Thu, 24 Sep 2020 16:37:54 -0700 Subject: [PATCH 182/187] Allow BaselineGenerator to build after updating version (#26252) - avoid problems when re-branding in a clean clone - attempts to build `BaselineGenerator` failed due to out-of-date baselines --- eng/targets/Packaging.targets | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/eng/targets/Packaging.targets b/eng/targets/Packaging.targets index d50e9b3064..aa4b272cba 100644 --- a/eng/targets/Packaging.targets +++ b/eng/targets/Packaging.targets @@ -1,7 +1,10 @@ From 06dad454d84a5cd5ce1a378952fa751cd4629fd8 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 25 Sep 2020 01:31:21 +0000 Subject: [PATCH 183/187] [release/5.0-rc2] Update dependencies from dotnet/efcore dotnet/runtime (#26293) [release/5.0-rc2] Update dependencies from dotnet/efcore dotnet/runtime --- eng/Version.Details.xml | 292 ++++++++++++++++++++-------------------- eng/Versions.props | 146 ++++++++++---------- 2 files changed, 219 insertions(+), 219 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index f0f60aa8ab..7db644f738 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,304 +9,304 @@ --> - + https://github.com/dotnet/efcore - d8d07c1e35f62fe20f6ed82a96bfa687c3cbcc4c + 6f0ad898df3c366002b36a3ad9ab7deac8bca309 - + https://github.com/dotnet/efcore - d8d07c1e35f62fe20f6ed82a96bfa687c3cbcc4c + 6f0ad898df3c366002b36a3ad9ab7deac8bca309 - + https://github.com/dotnet/efcore - d8d07c1e35f62fe20f6ed82a96bfa687c3cbcc4c + 6f0ad898df3c366002b36a3ad9ab7deac8bca309 - + https://github.com/dotnet/efcore - d8d07c1e35f62fe20f6ed82a96bfa687c3cbcc4c + 6f0ad898df3c366002b36a3ad9ab7deac8bca309 - + https://github.com/dotnet/efcore - d8d07c1e35f62fe20f6ed82a96bfa687c3cbcc4c + 6f0ad898df3c366002b36a3ad9ab7deac8bca309 - + https://github.com/dotnet/efcore - d8d07c1e35f62fe20f6ed82a96bfa687c3cbcc4c + 6f0ad898df3c366002b36a3ad9ab7deac8bca309 - + https://github.com/dotnet/efcore - d8d07c1e35f62fe20f6ed82a96bfa687c3cbcc4c + 6f0ad898df3c366002b36a3ad9ab7deac8bca309 - + https://github.com/dotnet/efcore - d8d07c1e35f62fe20f6ed82a96bfa687c3cbcc4c + 6f0ad898df3c366002b36a3ad9ab7deac8bca309 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 - + https://github.com/dotnet/runtime - 16ad84f77ed8e936e554fafbe452cf59246c93ea + e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290 https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index f68c3c7f94..c443f88d76 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,81 +62,81 @@ 3.8.0-3.20458.6 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 - 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 + 5.0.0-rc.2.20474.8 - 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.8 - 5.0.0-rc.2.20473.6 - 5.0.0-rc.2.20473.6 - 5.0.0-rc.2.20473.6 - 5.0.0-rc.2.20473.6 - 5.0.0-rc.2.20473.6 - 5.0.0-rc.2.20473.6 - 5.0.0-rc.2.20473.6 - 5.0.0-rc.2.20473.6 + 5.0.0-rc.2.20474.3 + 5.0.0-rc.2.20474.3 + 5.0.0-rc.2.20474.3 + 5.0.0-rc.2.20474.3 + 5.0.0-rc.2.20474.3 + 5.0.0-rc.2.20474.3 + 5.0.0-rc.2.20474.3 + 5.0.0-rc.2.20474.3 5.0.0-beta.20467.6 From 284a2705832c664ef4006e7c569730e67806df25 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 25 Sep 2020 03:30:44 +0000 Subject: [PATCH 184/187] Update dependencies from https://github.com/dotnet/efcore build 20200924.5 (#26309) [release/5.0-rc2] Update dependencies from dotnet/efcore --- eng/Version.Details.xml | 32 ++++++++++++++++---------------- eng/Versions.props | 16 ++++++++-------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 7db644f738..13a446545d 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,37 +9,37 @@ --> - + https://github.com/dotnet/efcore - 6f0ad898df3c366002b36a3ad9ab7deac8bca309 + 8fe5baf8178b5eee033abe0a4d1f73d23ff7d01e - + https://github.com/dotnet/efcore - 6f0ad898df3c366002b36a3ad9ab7deac8bca309 + 8fe5baf8178b5eee033abe0a4d1f73d23ff7d01e - + https://github.com/dotnet/efcore - 6f0ad898df3c366002b36a3ad9ab7deac8bca309 + 8fe5baf8178b5eee033abe0a4d1f73d23ff7d01e - + https://github.com/dotnet/efcore - 6f0ad898df3c366002b36a3ad9ab7deac8bca309 + 8fe5baf8178b5eee033abe0a4d1f73d23ff7d01e - + https://github.com/dotnet/efcore - 6f0ad898df3c366002b36a3ad9ab7deac8bca309 + 8fe5baf8178b5eee033abe0a4d1f73d23ff7d01e - + https://github.com/dotnet/efcore - 6f0ad898df3c366002b36a3ad9ab7deac8bca309 + 8fe5baf8178b5eee033abe0a4d1f73d23ff7d01e - + https://github.com/dotnet/efcore - 6f0ad898df3c366002b36a3ad9ab7deac8bca309 + 8fe5baf8178b5eee033abe0a4d1f73d23ff7d01e - + https://github.com/dotnet/efcore - 6f0ad898df3c366002b36a3ad9ab7deac8bca309 + 8fe5baf8178b5eee033abe0a4d1f73d23ff7d01e https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index c443f88d76..8a27b54ff1 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -129,14 +129,14 @@ 5.0.0-rc.2.20474.8 - 5.0.0-rc.2.20474.3 - 5.0.0-rc.2.20474.3 - 5.0.0-rc.2.20474.3 - 5.0.0-rc.2.20474.3 - 5.0.0-rc.2.20474.3 - 5.0.0-rc.2.20474.3 - 5.0.0-rc.2.20474.3 - 5.0.0-rc.2.20474.3 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 + 5.0.0-rc.2.20474.5 5.0.0-beta.20467.6 From 2e7b294c6c98edcbc1e80362e1fb31fc0ef55f63 Mon Sep 17 00:00:00 2001 From: Safia Abdalla Date: Fri, 25 Sep 2020 10:11:26 -0700 Subject: [PATCH 185/187] Revert "Disconnect circuit on 'beforeunload' event" (#26297) * Add tests for failing disconnect scenarios * Remove beforeunload call and add public API * Add additional test case * Update src/Components/test/testassets/BasicTestApp/GracefulTermination.razor Co-authored-by: Steve Sanderson Co-authored-by: Steve Sanderson --- .../Web.JS/dist/Release/blazor.server.js | 2 +- src/Components/Web.JS/src/Boot.Server.ts | 3 +- .../CircuitGracefulTerminationTests.cs | 43 ++++++++++++++++++- .../BasicTestApp/GracefulTermination.razor | 14 ++++++ .../test/testassets/BasicTestApp/Index.razor | 1 + .../Controllers/DownloadController.cs | 22 ++++++++++ .../testassets/TestServer/ServerStartup.cs | 1 + 7 files changed, 82 insertions(+), 4 deletions(-) create mode 100644 src/Components/test/testassets/BasicTestApp/GracefulTermination.razor create mode 100644 src/Components/test/testassets/TestServer/Controllers/DownloadController.cs diff --git a/src/Components/Web.JS/dist/Release/blazor.server.js b/src/Components/Web.JS/dist/Release/blazor.server.js index 888ad2d8d1..fce450548e 100644 --- a/src/Components/Web.JS/dist/Release/blazor.server.js +++ b/src/Components/Web.JS/dist/Release/blazor.server.js @@ -5,7 +5,7 @@ * @author Feross Aboukhadijeh * @license MIT */ -var r=n(54),o=n(55),i=n(56);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function d(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return F(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return P(this,t,n);case"utf8":case"utf-8":return k(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return O(this,t,n);case"base64":return C(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,o);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,o){var i,a=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,n/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=n;is&&(n=s-c),i=n;i>=0;i--){for(var f=!0,h=0;ho&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function C(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function k(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o239?4:u>223?3:u>191?2:1;if(o+f<=n)switch(f){case 1:u<128&&(l=u);break;case 2:128==(192&(i=e[o+1]))&&(c=(31&u)<<6|63&i)>127&&(l=c);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(c=(15&u)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(c=(15&u)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&c<1114112&&(l=c)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},c.prototype.compare=function(e,t,n,r,o){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),u=this.slice(r,o),l=e.slice(t,n),f=0;fo)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return m(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return E(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return _(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;or)&&(n=r);for(var o="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function D(e,t,n,r,o,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function A(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o>>8*(r?o:1-o)}function M(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o>>8*(r?o:3-o)&255}function L(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function j(e,t,n,r,i){return i||L(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function B(e,t,n,r,i){return i||L(e,0,n,8),o.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(o*=256);)r+=this[e+--t]*o;return r},c.prototype.readUInt8=function(e,t){return t||x(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||x(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||x(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||x(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||x(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||x(e,t,this.length);for(var r=this[e],o=1,i=0;++i=(o*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||x(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return t||x(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||x(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||x(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||x(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||x(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||x(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||x(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||x(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||x(e,8,this.length),o.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||D(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):A(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):A(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);D(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);D(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):A(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):A(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return j(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return j(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return B(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+n];else if(i<1e3||!c.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function H(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(N,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function W(e,t,n,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(8))},function(e,t,n){"use strict";var r=n(14).Buffer,o=n(57),i=n(23),a=n(70),s=n(73),c=n(74);e.exports=function(e){var t=[],n=[];return{encode:c(t,(e=e||{forceFloat64:!1,compatibilityMode:!1,disableTimestampEncoding:!1}).forceFloat64,e.compatibilityMode,e.disableTimestampEncoding),decode:s(n),register:function(e,t,n,a){return o(t,"must have a constructor"),o(n,"must have an encode function"),o(e>=0,"must have a non-negative type"),o(a,"must have a decode function"),this.registerEncoder((function(e){return e instanceof t}),(function(t){var o=i(),a=r.allocUnsafe(1);return a.writeInt8(e,0),o.append(a),o.append(n(t)),o})),this.registerDecoder(e,a),this},registerEncoder:function(e,n){return o(e,"must have an encode function"),o(n,"must have an encode function"),t.push({check:e,encode:n}),this},registerDecoder:function(e,t){return o(e>=0,"must have a non-negative type"),o(t,"must have a decode function"),n.push({type:e,decode:t}),this},encoder:a.encoder,decoder:a.decoder,buffer:!0,type:"msgpack5",IncompleteBufferError:s.IncompleteBufferError}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(26),n(17);var r=n(27),o=n(7),i={},a=!1;function s(e,t,n){var o=i[e];o||(o=i[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=s,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");s(n||0,o.toLogicalElement(r,!0),t)},t.getRendererer=function(e){return i[e]},t.renderBatch=function(e,t){var n=i[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),s=r.values(o),c=r.count(o),u=t.referenceFrames(),l=r.values(u),f=t.diffReader,h=0;h1)for(var n=1;n0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var l,f;s.attachDebuggerHotkey(e),window.Browser={init:function(){}},l=function(){window.Module=function(e,t,n){var l=this,f=e.bootConfig.resources,h=window.Module||{},p=["DEBUGGING ENABLED"];h.print=function(e){return p.indexOf(e)<0&&console.log(e)},h.printErr=function(e){console.error(e),c.showErrorNotification()},h.preRun=h.preRun||[],h.postRun=h.postRun||[],h.preloadPlugins=[];var g,w,E=e.loadResources(f.assembly,(function(e){return"_framework/"+e}),"assembly"),S=e.loadResources(f.pdb||{},(function(e){return"_framework/"+e}),"pdb"),_=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");if(e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.blat")&&(g=e.loadResource("dotnet.timezones.blat","_framework/dotnet.timezones.blat",e.bootConfig.resources.runtime["dotnet.timezones.blat"],"globalization")),e.bootConfig.icuDataMode!=u.ICUDataMode.Invariant){var I=e.startOptions.applicationCulture||navigator.languages&&navigator.languages[0],C=function(e,t){if(!t||e.icuDataMode===u.ICUDataMode.All)return"icudt.dat";var n=t.split("-")[0];return["en","fr","it","de","es"].includes(n)?"icudt_EFIGS.dat":["zh","ko","ja"].includes(n)?"icudt_CJK.dat":"icudt_no_CJK.dat"}(e.bootConfig,I);w=e.loadResource(C,"_framework/"+C,e.bootConfig.resources.runtime[C],"globalization")}return h.instantiateWasm=function(e,t){return r(l,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,_];case 1:return[4,v(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),h.printErr(r),r;case 4:return t(n),[2]}}))})),[]},h.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],g&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),Module.FS_createPath("/","usr",!0,!0),Module.FS_createPath("/usr/","share",!0,!0),Module.FS_createPath("/usr/share/","zoneinfo",!0,!0),MONO.mono_wasm_load_data_archive(new Uint8Array(n),"/usr/share/zoneinfo/"),removeRunDependency(t),[2]}}))}))}(g),w?function(e){r(this,void 0,void 0,(function(){var t,n,r,i,a;return o(this,(function(o){switch(o.label){case 0:return t="blazor:icudata",addRunDependency(t),[4,e.response];case 1:return n=o.sent(),i=Uint8Array.bind,[4,n.arrayBuffer()];case 2:if(r=new(i.apply(Uint8Array,[void 0,o.sent()])),a=MONO.mono_wasm_load_bytes_into_heap(r),!MONO.mono_wasm_load_icu_data(a))throw new Error("Error loading ICU asset.");return removeRunDependency(t),[2]}}))}))}(w):MONO.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT","1"),E.forEach((function(e){return k(e,b(e.name,".dll"))})),S.forEach((function(e){return k(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){h.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources;if(e.startOptions.applicationCulture||navigator.languages&&navigator.languages[0],i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(l,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return p(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>f)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*l+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return p(e+(t||0))},readStringField:function(e,t,n){var r,o=p(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return h?void 0===(r=h.stringCache.get(o))&&(r=BINDING.conv_string(o),h.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return m(),h=new w},invokeWhenHeapUnlocked:function(e){h?h.enqueuePostReleaseAction(e):e()}};var d=document.createElement("a");function g(e){return e+12}function y(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function v(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function b(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}function m(){if(h)throw new Error("Assertion failed - heap is currently locked")}var w=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(h!==this)throw new Error("Trying to release a lock which isn't current");for(h=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),m()}},e}()},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]this.length)&&(r=this.length),n>=this.length)return e||i.alloc(0);if(r<=0)return e||i.alloc(0);var o,a,s=!!e,c=this._offset(n),u=r-n,l=u,f=s&&t||0,h=c[1];if(0===n&&r==this.length){if(!s)return 1===this._bufs.length?this._bufs[0]:i.concat(this._bufs,this.length);for(a=0;a(o=this._bufs[a].length-h))){this._bufs[a].copy(e,f,h,h+l);break}this._bufs[a].copy(e,f,h),f+=o,l-=o,h&&(h=0)}return e},a.prototype.shallowSlice=function(e,t){e=e||0,t=t||this.length,e<0&&(e+=this.length),t<0&&(t+=this.length);var n=this._offset(e),r=this._offset(t),o=this._bufs.slice(n[0],r[0]+1);return 0==r[1]?o.pop():o[o.length-1]=o[o.length-1].slice(0,r[1]),0!=n[1]&&(o[0]=o[0].slice(n[1])),new a(o)},a.prototype.toString=function(e,t,n){return this.slice(t,n).toString(e)},a.prototype.consume=function(e){for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},a.prototype.duplicate=function(){for(var e=0,t=new a;e0&&e.invokeMethodAsync("OnSpacerAfterVisible",r.boundingClientRect.bottom-r.intersectionRect.bottom,a,s)}}))}),{root:i,rootMargin:o+"px"});a.observe(t),a.observe(n);var s=u(t),c=u(n);function u(e){var t=new MutationObserver((function(){a.unobserve(e),a.observe(e)}));return t.observe(e,{attributes:!0}),t}r[e._id]={intersectionObserver:a,mutationObserverBefore:s,mutationObserverAfter:c}},dispose:function(e){var t=r[e._id];t&&(t.intersectionObserver.disconnect(),t.mutationObserverBefore.disconnect(),t.mutationObserverAfter.disconnect(),e.dispose(),delete r[e._id])}};var r={}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1].*)$/;function i(e,t){var n=e.currentElement;if(n&&n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r.groups&&r.groups.descriptor;if(!i)return;try{var s=function(e){var t=JSON.parse(e),n=t.type;if("server"!==n&&"webassembly"!==n)throw new Error("Invalid component type '"+n+"'.");return t}(i);switch(t){case"webassembly":return function(e,t,n){var r=e.type,o=e.assembly,i=e.typeName,s=e.parameterDefinitions,c=e.parameterValues,u=e.prerenderId;if("webassembly"!==r)return;if(!o)throw new Error("assembly must be defined when using a descriptor.");if(!i)throw new Error("typeName must be defined when using a descriptor.");if(u){var l=a(u,n);if(!l)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:c&&atob(c),start:t,prerenderId:u,end:l}}return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:c&&atob(c),start:t}}(s,n,e);case"server":return function(e,t,n){var r=e.type,o=e.descriptor,i=e.sequence,s=e.prerenderId;if("server"!==r)return;if(!o)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===i)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(i))throw new Error("Error parsing the sequence '"+i+"' for component '"+JSON.stringify(e)+"'");if(s){var c=a(s,n);if(!c)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,sequence:i,descriptor:o,start:t,prerenderId:s,end:c}}return{type:r,sequence:i,descriptor:o,start:t}}(s,n,e)}}catch(e){throw new Error("Found malformed component comment at "+n.textContent)}}}function a(e,t){for(;t.next()&&t.currentElement;){var n=t.currentElement;if(n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r[1];if(i)return s(i,e),n}}}function s(e,t){var n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error("Invalid end of component comment: '"+e+"'");var r=n.prerenderId;if(!r)throw new Error("End of component comment must have a value for the prerendered property: '"+e+"'");if(r!==t)throw new Error("End of component comment prerendered property must match the start comment prerender id: '"+t+"', '"+r+"'")}var c=function(){function e(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}return e.prototype.next=function(){return this.currentIndex++,this.currentIndex=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),c=r[n];n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(n)?r.showHidden=n:n&&t._extend(r,n),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=c),l(r,e,r.depth)}function c(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function u(e,t){return e}function l(e,n,r){if(e.customInspect&&n&&_(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,e);return v(o)||(o=l(e,o,r)),o}var i=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(y(t))return e.stylize(""+t,"number");if(d(t))return e.stylize(""+t,"boolean");if(g(t))return e.stylize("null","null")}(e,n);if(i)return i;var a=Object.keys(n),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),S(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return f(n);if(0===a.length){if(_(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(m(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(E(n))return e.stylize(Date.prototype.toString.call(n),"date");if(S(n))return f(n)}var u,w="",I=!1,C=["{","}"];(p(n)&&(I=!0,C=["[","]"]),_(n))&&(w=" [Function"+(n.name?": "+n.name:"")+"]");return m(n)&&(w=" "+RegExp.prototype.toString.call(n)),E(n)&&(w=" "+Date.prototype.toUTCString.call(n)),S(n)&&(w=" "+f(n)),0!==a.length||I&&0!=n.length?r<0?m(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=I?function(e,t,n,r,o){for(var i=[],a=0,s=t.length;a=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,w,C)):C[0]+w+C[1]}function f(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,n,r,o,i){var a,s,c;if((c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),O(r,o)||(a="["+o+"]"),s||(e.seen.indexOf(c.value)<0?(s=g(n)?l(e,c.value,null):l(e,c.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),b(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function p(e){return Array.isArray(e)}function d(e){return"boolean"==typeof e}function g(e){return null===e}function y(e){return"number"==typeof e}function v(e){return"string"==typeof e}function b(e){return void 0===e}function m(e){return w(e)&&"[object RegExp]"===I(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===I(e)}function S(e){return w(e)&&("[object Error]"===I(e)||e instanceof Error)}function _(e){return"function"==typeof e}function I(e){return Object.prototype.toString.call(e)}function C(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(n){if(b(i)&&(i=e.env.NODE_DEBUG||""),n=n.toUpperCase(),!a[n])if(new RegExp("\\b"+n+"\\b","i").test(i)){var r=e.pid;a[n]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",n,r,e)}}else a[n]=function(){};return a[n]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=p,t.isBoolean=d,t.isNull=g,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=v,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=m,t.isObject=w,t.isDate=E,t.isError=S,t.isFunction=_,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(59);var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function T(){var e=new Date,t=[C(e.getHours()),C(e.getMinutes()),C(e.getSeconds())].join(":");return[e.getDate(),k[e.getMonth()],t].join(" ")}function O(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",T(),t.format.apply(t,arguments))},t.inherits=n(60),t._extend=function(e,t){if(!t||!w(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var P="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function R(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(P&&e[P]){var t;if("function"!=typeof(t=e[P]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,P,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),o=[],i=0;i0?("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===u.prototype||(t=function(e){return u.from(e)}(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):E(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?E(e,a,t,!1):C(e,a)):E(e,a,t,!1))):r||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function _(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(p("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(I,e):I(e))}function I(e){p("emit readable"),e.emit("readable"),P(e)}function C(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(k,e,t))}function k(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;ei.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++r}return t.length-=r,o}(e,t):function(e,t){var n=u.allocUnsafe(e),r=t.head,o=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,a),0===(e-=a)){a===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++o}return t.length-=o,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function x(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(D,t,e))}function D(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function A(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return p("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?x(this):_(this),null;if(0===(e=S(e,t))&&t.ended)return 0===t.length&&x(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e0?R(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&x(this)),null!==r&&this.emit("data",r),r},m.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},m.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,p("pipe count=%d opts=%j",i.pipesCount,t);var c=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?l:m;function u(t,r){p("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,p("cleanup"),e.removeListener("close",v),e.removeListener("finish",b),e.removeListener("drain",f),e.removeListener("error",y),e.removeListener("unpipe",u),n.removeListener("end",l),n.removeListener("end",m),n.removeListener("data",g),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function l(){p("onend"),e.end()}i.endEmitted?o.nextTick(c):n.once("end",c),e.on("unpipe",u);var f=function(e){return function(){var t=e._readableState;p("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,P(e))}}(n);e.on("drain",f);var h=!1;var d=!1;function g(t){p("ondata"),d=!1,!1!==e.write(t)||d||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==A(i.pipes,e))&&!h&&(p("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,d=!0),n.pause())}function y(t){p("onerror",t),m(),e.removeListener("error",y),0===s(e,"error")&&e.emit("error",t)}function v(){e.removeListener("finish",b),m()}function b(){p("onfinish"),e.removeListener("close",v),m()}function m(){p("unpipe"),n.unpipe(e)}return n.on("data",g),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",y),e.once("close",v),e.once("finish",b),e.emit("pipe",n),i.flowing||(p("pipe resume"),n.resume()),e},m.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i0&&a.length>o&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,s=c,console&&console.warn&&console.warn(s)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=h.bind(r);return o.listener=n,r.wrapFn=o,o}function d(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var c=o[e];if(void 0===c)return!1;if("function"==typeof c)i(c,this,t);else{var u=c.length,l=y(c,u);for(n=0;n=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},s.prototype.listeners=function(e){return d(this,e,!0)},s.prototype.rawListeners=function(e){return d(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){e.exports=n(41).EventEmitter},function(e,t,n){"use strict";var r=n(24);function o(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(o,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?(r.nextTick(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){"use strict";var r=n(66).Buffer,o=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=u,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0)return o>0&&(e.lastNeed=o-1),o;if(--r=0)return o>0&&(e.lastNeed=o-2),o;if(--r=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";(function(t,r,o){var i=n(24);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=b;var s,c=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;b.WritableState=v;var u=n(19);u.inherits=n(15);var l={deprecate:n(69)},f=n(42),h=n(14).Buffer,p=o.Uint8Array||function(){};var d,g=n(43);function y(){}function v(e,t){s=s||n(9),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,u=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(I,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),I(e,t))}(e,n,r,t,o);else{var a=S(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||E(e,n),r?c(w,e,n,a,o):w(e,n,a,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(9),!(d.call(b,this)||this instanceof s))return new b(e);this._writableState=new v(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function m(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function w(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),I(e,t)}function E(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=n;for(var s=0,c=!0;n;)o[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;o.allBuffers=c,m(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,l=n.encoding,f=n.callback;if(m(e,t,!1,t.objectMode?1:u.length,u,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function S(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function _(e,t){e._final((function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),I(e,t)}))}function I(e,t){var n=S(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(_,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}u.inherits(b,f),v.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(v.prototype,"buffer",{get:l.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(d=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!d.call(this,e)||this===b&&(e&&e._writableState instanceof v)}})):d=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,o=this._writableState,a=!1,s=!o.objectMode&&(r=e,h.isBuffer(r)||r instanceof p);return s&&!h.isBuffer(e)&&(e=function(e){return h.from(e)}(e)),"function"==typeof t&&(n=t,t=null),s?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=y),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),i.nextTick(r,a),o=!1),o}(this,o,e,n))&&(o.pendingcb++,a=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=h.from(t,n));return t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var c=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,I(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=g.destroy,b.prototype._undestroy=g.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(13),n(67).setImmediate,n(8))},function(e,t,n){"use strict";e.exports=a;var r=n(9),o=n(19);function i(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.lengths?a.slice(s).buffer:null}else{var c,u=t;if(-1===(c=u.indexOf(r.a.RecordSeparator)))throw new Error("Message is incomplete.");s=c+1;n=u.substring(0,s),i=u.length>s?u.substring(s):null}var l=r.a.parse(n),f=JSON.parse(l[0]);if(f.type)throw new Error("Expected a handshake response from the server.");return[i,f]},t}()}).call(this,n(10).Buffer)},,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},a=this&&this.__spread||function(){for(var e=[],t=0;t0?a-4:a;for(n=0;n>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===s&&(t=o[e.charCodeAt(n)]<<2|o[e.charCodeAt(n+1)]>>4,c[l++]=255&t);1===s&&(t=o[e.charCodeAt(n)]<<10|o[e.charCodeAt(n+1)]<<4|o[e.charCodeAt(n+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;as?s:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,c=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var o,i,a=[],s=t;s>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,c=(1<>1,l=-7,f=n?o-1:0,h=n?-1:1,p=e[t+f];for(f+=h,i=p&(1<<-l)-1,p>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=h,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=r;l>0;a=256*a+e[t+f],f+=h,l-=8);if(0===i)i=1-u;else{if(i===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),i-=u}return(p?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,c,u=8*i-o-1,l=(1<>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,d=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+f>=1?h/c:h*Math.pow(2,1-f))*c>=2&&(a++,c/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*c-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[n+p]=255&s,p+=d,s/=256,o-=8);for(a=a<0;e[n+p]=255&a,p+=d,a/=256,u-=8);e[n+p-d]|=128*g}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";(function(t){var r=n(58); +var r=n(54),o=n(55),i=n(56);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function d(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return F(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return P(this,t,n);case"utf8":case"utf-8":return k(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return O(this,t,n);case"base64":return C(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,o);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,o){var i,a=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,n/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=n;is&&(n=s-c),i=n;i>=0;i--){for(var f=!0,h=0;ho&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function C(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function k(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o239?4:u>223?3:u>191?2:1;if(o+f<=n)switch(f){case 1:u<128&&(l=u);break;case 2:128==(192&(i=e[o+1]))&&(c=(31&u)<<6|63&i)>127&&(l=c);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(c=(15&u)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(c=(15&u)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&c<1114112&&(l=c)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},c.prototype.compare=function(e,t,n,r,o){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),u=this.slice(r,o),l=e.slice(t,n),f=0;fo)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return m(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return E(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return _(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;or)&&(n=r);for(var o="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function D(e,t,n,r,o,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function A(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o>>8*(r?o:1-o)}function M(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o>>8*(r?o:3-o)&255}function L(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function j(e,t,n,r,i){return i||L(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function B(e,t,n,r,i){return i||L(e,0,n,8),o.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(o*=256);)r+=this[e+--t]*o;return r},c.prototype.readUInt8=function(e,t){return t||x(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||x(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||x(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||x(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||x(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||x(e,t,this.length);for(var r=this[e],o=1,i=0;++i=(o*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||x(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return t||x(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||x(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||x(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||x(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||x(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||x(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||x(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||x(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||x(e,8,this.length),o.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||D(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):A(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):A(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);D(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);D(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):A(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):A(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return j(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return j(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return B(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+n];else if(i<1e3||!c.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function H(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(N,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function W(e,t,n,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(8))},function(e,t,n){"use strict";var r=n(14).Buffer,o=n(57),i=n(23),a=n(70),s=n(73),c=n(74);e.exports=function(e){var t=[],n=[];return{encode:c(t,(e=e||{forceFloat64:!1,compatibilityMode:!1,disableTimestampEncoding:!1}).forceFloat64,e.compatibilityMode,e.disableTimestampEncoding),decode:s(n),register:function(e,t,n,a){return o(t,"must have a constructor"),o(n,"must have an encode function"),o(e>=0,"must have a non-negative type"),o(a,"must have a decode function"),this.registerEncoder((function(e){return e instanceof t}),(function(t){var o=i(),a=r.allocUnsafe(1);return a.writeInt8(e,0),o.append(a),o.append(n(t)),o})),this.registerDecoder(e,a),this},registerEncoder:function(e,n){return o(e,"must have an encode function"),o(n,"must have an encode function"),t.push({check:e,encode:n}),this},registerDecoder:function(e,t){return o(e>=0,"must have a non-negative type"),o(t,"must have a decode function"),n.push({type:e,decode:t}),this},encoder:a.encoder,decoder:a.decoder,buffer:!0,type:"msgpack5",IncompleteBufferError:s.IncompleteBufferError}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(26),n(17);var r=n(27),o=n(7),i={},a=!1;function s(e,t,n){var o=i[e];o||(o=i[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=s,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");s(n||0,o.toLogicalElement(r,!0),t)},t.getRendererer=function(e){return i[e]},t.renderBatch=function(e,t){var n=i[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),s=r.values(o),c=r.count(o),u=t.referenceFrames(),l=r.values(u),f=t.diffReader,h=0;h1)for(var n=1;n0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var l,f;s.attachDebuggerHotkey(e),window.Browser={init:function(){}},l=function(){window.Module=function(e,t,n){var l=this,f=e.bootConfig.resources,h=window.Module||{},p=["DEBUGGING ENABLED"];h.print=function(e){return p.indexOf(e)<0&&console.log(e)},h.printErr=function(e){console.error(e),c.showErrorNotification()},h.preRun=h.preRun||[],h.postRun=h.postRun||[],h.preloadPlugins=[];var g,w,E=e.loadResources(f.assembly,(function(e){return"_framework/"+e}),"assembly"),S=e.loadResources(f.pdb||{},(function(e){return"_framework/"+e}),"pdb"),_=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");if(e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.blat")&&(g=e.loadResource("dotnet.timezones.blat","_framework/dotnet.timezones.blat",e.bootConfig.resources.runtime["dotnet.timezones.blat"],"globalization")),e.bootConfig.icuDataMode!=u.ICUDataMode.Invariant){var I=e.startOptions.applicationCulture||navigator.languages&&navigator.languages[0],C=function(e,t){if(!t||e.icuDataMode===u.ICUDataMode.All)return"icudt.dat";var n=t.split("-")[0];return["en","fr","it","de","es"].includes(n)?"icudt_EFIGS.dat":["zh","ko","ja"].includes(n)?"icudt_CJK.dat":"icudt_no_CJK.dat"}(e.bootConfig,I);w=e.loadResource(C,"_framework/"+C,e.bootConfig.resources.runtime[C],"globalization")}return h.instantiateWasm=function(e,t){return r(l,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,_];case 1:return[4,v(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),h.printErr(r),r;case 4:return t(n),[2]}}))})),[]},h.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],g&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),Module.FS_createPath("/","usr",!0,!0),Module.FS_createPath("/usr/","share",!0,!0),Module.FS_createPath("/usr/share/","zoneinfo",!0,!0),MONO.mono_wasm_load_data_archive(new Uint8Array(n),"/usr/share/zoneinfo/"),removeRunDependency(t),[2]}}))}))}(g),w?function(e){r(this,void 0,void 0,(function(){var t,n,r,i,a;return o(this,(function(o){switch(o.label){case 0:return t="blazor:icudata",addRunDependency(t),[4,e.response];case 1:return n=o.sent(),i=Uint8Array.bind,[4,n.arrayBuffer()];case 2:if(r=new(i.apply(Uint8Array,[void 0,o.sent()])),a=MONO.mono_wasm_load_bytes_into_heap(r),!MONO.mono_wasm_load_icu_data(a))throw new Error("Error loading ICU asset.");return removeRunDependency(t),[2]}}))}))}(w):MONO.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT","1"),E.forEach((function(e){return k(e,b(e.name,".dll"))})),S.forEach((function(e){return k(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){h.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources;if(e.startOptions.applicationCulture||navigator.languages&&navigator.languages[0],i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(l,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return p(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>f)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*l+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return p(e+(t||0))},readStringField:function(e,t,n){var r,o=p(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return h?void 0===(r=h.stringCache.get(o))&&(r=BINDING.conv_string(o),h.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return m(),h=new w},invokeWhenHeapUnlocked:function(e){h?h.enqueuePostReleaseAction(e):e()}};var d=document.createElement("a");function g(e){return e+12}function y(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function v(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function b(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}function m(){if(h)throw new Error("Assertion failed - heap is currently locked")}var w=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(h!==this)throw new Error("Trying to release a lock which isn't current");for(h=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),m()}},e}()},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]this.length)&&(r=this.length),n>=this.length)return e||i.alloc(0);if(r<=0)return e||i.alloc(0);var o,a,s=!!e,c=this._offset(n),u=r-n,l=u,f=s&&t||0,h=c[1];if(0===n&&r==this.length){if(!s)return 1===this._bufs.length?this._bufs[0]:i.concat(this._bufs,this.length);for(a=0;a(o=this._bufs[a].length-h))){this._bufs[a].copy(e,f,h,h+l);break}this._bufs[a].copy(e,f,h),f+=o,l-=o,h&&(h=0)}return e},a.prototype.shallowSlice=function(e,t){e=e||0,t=t||this.length,e<0&&(e+=this.length),t<0&&(t+=this.length);var n=this._offset(e),r=this._offset(t),o=this._bufs.slice(n[0],r[0]+1);return 0==r[1]?o.pop():o[o.length-1]=o[o.length-1].slice(0,r[1]),0!=n[1]&&(o[0]=o[0].slice(n[1])),new a(o)},a.prototype.toString=function(e,t,n){return this.slice(t,n).toString(e)},a.prototype.consume=function(e){for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},a.prototype.duplicate=function(){for(var e=0,t=new a;e0&&e.invokeMethodAsync("OnSpacerAfterVisible",r.boundingClientRect.bottom-r.intersectionRect.bottom,a,s)}}))}),{root:i,rootMargin:o+"px"});a.observe(t),a.observe(n);var s=u(t),c=u(n);function u(e){var t=new MutationObserver((function(){a.unobserve(e),a.observe(e)}));return t.observe(e,{attributes:!0}),t}r[e._id]={intersectionObserver:a,mutationObserverBefore:s,mutationObserverAfter:c}},dispose:function(e){var t=r[e._id];t&&(t.intersectionObserver.disconnect(),t.mutationObserverBefore.disconnect(),t.mutationObserverAfter.disconnect(),e.dispose(),delete r[e._id])}};var r={}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1].*)$/;function i(e,t){var n=e.currentElement;if(n&&n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r.groups&&r.groups.descriptor;if(!i)return;try{var s=function(e){var t=JSON.parse(e),n=t.type;if("server"!==n&&"webassembly"!==n)throw new Error("Invalid component type '"+n+"'.");return t}(i);switch(t){case"webassembly":return function(e,t,n){var r=e.type,o=e.assembly,i=e.typeName,s=e.parameterDefinitions,c=e.parameterValues,u=e.prerenderId;if("webassembly"!==r)return;if(!o)throw new Error("assembly must be defined when using a descriptor.");if(!i)throw new Error("typeName must be defined when using a descriptor.");if(u){var l=a(u,n);if(!l)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:c&&atob(c),start:t,prerenderId:u,end:l}}return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:c&&atob(c),start:t}}(s,n,e);case"server":return function(e,t,n){var r=e.type,o=e.descriptor,i=e.sequence,s=e.prerenderId;if("server"!==r)return;if(!o)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===i)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(i))throw new Error("Error parsing the sequence '"+i+"' for component '"+JSON.stringify(e)+"'");if(s){var c=a(s,n);if(!c)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,sequence:i,descriptor:o,start:t,prerenderId:s,end:c}}return{type:r,sequence:i,descriptor:o,start:t}}(s,n,e)}}catch(e){throw new Error("Found malformed component comment at "+n.textContent)}}}function a(e,t){for(;t.next()&&t.currentElement;){var n=t.currentElement;if(n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r[1];if(i)return s(i,e),n}}}function s(e,t){var n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error("Invalid end of component comment: '"+e+"'");var r=n.prerenderId;if(!r)throw new Error("End of component comment must have a value for the prerendered property: '"+e+"'");if(r!==t)throw new Error("End of component comment prerendered property must match the start comment prerender id: '"+t+"', '"+r+"'")}var c=function(){function e(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}return e.prototype.next=function(){return this.currentIndex++,this.currentIndex=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),c=r[n];n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(n)?r.showHidden=n:n&&t._extend(r,n),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=c),l(r,e,r.depth)}function c(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function u(e,t){return e}function l(e,n,r){if(e.customInspect&&n&&_(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,e);return v(o)||(o=l(e,o,r)),o}var i=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(y(t))return e.stylize(""+t,"number");if(d(t))return e.stylize(""+t,"boolean");if(g(t))return e.stylize("null","null")}(e,n);if(i)return i;var a=Object.keys(n),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),S(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return f(n);if(0===a.length){if(_(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(m(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(E(n))return e.stylize(Date.prototype.toString.call(n),"date");if(S(n))return f(n)}var u,w="",I=!1,C=["{","}"];(p(n)&&(I=!0,C=["[","]"]),_(n))&&(w=" [Function"+(n.name?": "+n.name:"")+"]");return m(n)&&(w=" "+RegExp.prototype.toString.call(n)),E(n)&&(w=" "+Date.prototype.toUTCString.call(n)),S(n)&&(w=" "+f(n)),0!==a.length||I&&0!=n.length?r<0?m(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=I?function(e,t,n,r,o){for(var i=[],a=0,s=t.length;a=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,w,C)):C[0]+w+C[1]}function f(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,n,r,o,i){var a,s,c;if((c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),O(r,o)||(a="["+o+"]"),s||(e.seen.indexOf(c.value)<0?(s=g(n)?l(e,c.value,null):l(e,c.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),b(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function p(e){return Array.isArray(e)}function d(e){return"boolean"==typeof e}function g(e){return null===e}function y(e){return"number"==typeof e}function v(e){return"string"==typeof e}function b(e){return void 0===e}function m(e){return w(e)&&"[object RegExp]"===I(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===I(e)}function S(e){return w(e)&&("[object Error]"===I(e)||e instanceof Error)}function _(e){return"function"==typeof e}function I(e){return Object.prototype.toString.call(e)}function C(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(n){if(b(i)&&(i=e.env.NODE_DEBUG||""),n=n.toUpperCase(),!a[n])if(new RegExp("\\b"+n+"\\b","i").test(i)){var r=e.pid;a[n]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",n,r,e)}}else a[n]=function(){};return a[n]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=p,t.isBoolean=d,t.isNull=g,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=v,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=m,t.isObject=w,t.isDate=E,t.isError=S,t.isFunction=_,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(59);var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function T(){var e=new Date,t=[C(e.getHours()),C(e.getMinutes()),C(e.getSeconds())].join(":");return[e.getDate(),k[e.getMonth()],t].join(" ")}function O(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",T(),t.format.apply(t,arguments))},t.inherits=n(60),t._extend=function(e,t){if(!t||!w(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var P="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function R(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(P&&e[P]){var t;if("function"!=typeof(t=e[P]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,P,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),o=[],i=0;i0?("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===u.prototype||(t=function(e){return u.from(e)}(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):E(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?E(e,a,t,!1):C(e,a)):E(e,a,t,!1))):r||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function _(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(p("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(I,e):I(e))}function I(e){p("emit readable"),e.emit("readable"),P(e)}function C(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(k,e,t))}function k(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;ei.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++r}return t.length-=r,o}(e,t):function(e,t){var n=u.allocUnsafe(e),r=t.head,o=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,a),0===(e-=a)){a===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++o}return t.length-=o,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function x(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(D,t,e))}function D(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function A(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return p("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?x(this):_(this),null;if(0===(e=S(e,t))&&t.ended)return 0===t.length&&x(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e0?R(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&x(this)),null!==r&&this.emit("data",r),r},m.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},m.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,p("pipe count=%d opts=%j",i.pipesCount,t);var c=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?l:m;function u(t,r){p("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,p("cleanup"),e.removeListener("close",v),e.removeListener("finish",b),e.removeListener("drain",f),e.removeListener("error",y),e.removeListener("unpipe",u),n.removeListener("end",l),n.removeListener("end",m),n.removeListener("data",g),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function l(){p("onend"),e.end()}i.endEmitted?o.nextTick(c):n.once("end",c),e.on("unpipe",u);var f=function(e){return function(){var t=e._readableState;p("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,P(e))}}(n);e.on("drain",f);var h=!1;var d=!1;function g(t){p("ondata"),d=!1,!1!==e.write(t)||d||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==A(i.pipes,e))&&!h&&(p("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,d=!0),n.pause())}function y(t){p("onerror",t),m(),e.removeListener("error",y),0===s(e,"error")&&e.emit("error",t)}function v(){e.removeListener("finish",b),m()}function b(){p("onfinish"),e.removeListener("close",v),m()}function m(){p("unpipe"),n.unpipe(e)}return n.on("data",g),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",y),e.once("close",v),e.once("finish",b),e.emit("pipe",n),i.flowing||(p("pipe resume"),n.resume()),e},m.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i0&&a.length>o&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,s=c,console&&console.warn&&console.warn(s)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=h.bind(r);return o.listener=n,r.wrapFn=o,o}function d(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var c=o[e];if(void 0===c)return!1;if("function"==typeof c)i(c,this,t);else{var u=c.length,l=y(c,u);for(n=0;n=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},s.prototype.listeners=function(e){return d(this,e,!0)},s.prototype.rawListeners=function(e){return d(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){e.exports=n(41).EventEmitter},function(e,t,n){"use strict";var r=n(24);function o(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(o,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?(r.nextTick(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){"use strict";var r=n(66).Buffer,o=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=u,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0)return o>0&&(e.lastNeed=o-1),o;if(--r=0)return o>0&&(e.lastNeed=o-2),o;if(--r=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";(function(t,r,o){var i=n(24);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=b;var s,c=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;b.WritableState=v;var u=n(19);u.inherits=n(15);var l={deprecate:n(69)},f=n(42),h=n(14).Buffer,p=o.Uint8Array||function(){};var d,g=n(43);function y(){}function v(e,t){s=s||n(9),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,u=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(I,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),I(e,t))}(e,n,r,t,o);else{var a=S(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||E(e,n),r?c(w,e,n,a,o):w(e,n,a,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(9),!(d.call(b,this)||this instanceof s))return new b(e);this._writableState=new v(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function m(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function w(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),I(e,t)}function E(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=n;for(var s=0,c=!0;n;)o[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;o.allBuffers=c,m(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,l=n.encoding,f=n.callback;if(m(e,t,!1,t.objectMode?1:u.length,u,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function S(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function _(e,t){e._final((function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),I(e,t)}))}function I(e,t){var n=S(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(_,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}u.inherits(b,f),v.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(v.prototype,"buffer",{get:l.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(d=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!d.call(this,e)||this===b&&(e&&e._writableState instanceof v)}})):d=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,o=this._writableState,a=!1,s=!o.objectMode&&(r=e,h.isBuffer(r)||r instanceof p);return s&&!h.isBuffer(e)&&(e=function(e){return h.from(e)}(e)),"function"==typeof t&&(n=t,t=null),s?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=y),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),i.nextTick(r,a),o=!1),o}(this,o,e,n))&&(o.pendingcb++,a=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=h.from(t,n));return t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var c=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,I(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=g.destroy,b.prototype._undestroy=g.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(13),n(67).setImmediate,n(8))},function(e,t,n){"use strict";e.exports=a;var r=n(9),o=n(19);function i(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.lengths?a.slice(s).buffer:null}else{var c,u=t;if(-1===(c=u.indexOf(r.a.RecordSeparator)))throw new Error("Message is incomplete.");s=c+1;n=u.substring(0,s),i=u.length>s?u.substring(s):null}var l=r.a.parse(n),f=JSON.parse(l[0]);if(f.type)throw new Error("Expected a handshake response from the server.");return[i,f]},t}()}).call(this,n(10).Buffer)},,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},a=this&&this.__spread||function(){for(var e=[],t=0;t0?a-4:a;for(n=0;n>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===s&&(t=o[e.charCodeAt(n)]<<2|o[e.charCodeAt(n+1)]>>4,c[l++]=255&t);1===s&&(t=o[e.charCodeAt(n)]<<10|o[e.charCodeAt(n+1)]<<4|o[e.charCodeAt(n+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;as?s:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,c=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var o,i,a=[],s=t;s>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,c=(1<>1,l=-7,f=n?o-1:0,h=n?-1:1,p=e[t+f];for(f+=h,i=p&(1<<-l)-1,p>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=h,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=r;l>0;a=256*a+e[t+f],f+=h,l-=8);if(0===i)i=1-u;else{if(i===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),i-=u}return(p?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,c,u=8*i-o-1,l=(1<>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,d=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+f>=1?h/c:h*Math.pow(2,1-f))*c>=2&&(a++,c/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*c-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[n+p]=255&s,p+=d,s/=256,o-=8);for(a=a<0;e[n+p]=255&a,p+=d,a/=256,u-=8);e[n+p-d]|=128*g}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";(function(t){var r=n(58); /*! * The buffer module from node.js, for the browser. * diff --git a/src/Components/Web.JS/src/Boot.Server.ts b/src/Components/Web.JS/src/Boot.Server.ts index 6674e19d15..968a65dd45 100644 --- a/src/Components/Web.JS/src/Boot.Server.ts +++ b/src/Components/Web.JS/src/Boot.Server.ts @@ -67,7 +67,8 @@ async function boot(userOptions?: Partial): Promise { } }; - window.addEventListener('beforeunload', cleanup, { capture: false, once: true }); + window['Blazor'].disconnect = cleanup; + window.addEventListener('unload', cleanup, { capture: false, once: true }); window['Blazor'].reconnect = reconnect; diff --git a/src/Components/test/E2ETest/ServerExecutionTests/CircuitGracefulTerminationTests.cs b/src/Components/test/E2ETest/ServerExecutionTests/CircuitGracefulTerminationTests.cs index eb3340427e..1628567812 100644 --- a/src/Components/test/E2ETest/ServerExecutionTests/CircuitGracefulTerminationTests.cs +++ b/src/Components/test/E2ETest/ServerExecutionTests/CircuitGracefulTerminationTests.cs @@ -44,8 +44,8 @@ namespace Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests protected override void InitializeAsyncCore() { Navigate(ServerPathBase, noReload: false); - Browser.MountTestComponent(); - Browser.Equal("Current count: 0", () => Browser.FindElement(By.TagName("p")).Text); + Browser.MountTestComponent(); + Browser.Equal("Graceful Termination", () => Browser.FindElement(By.TagName("h1")).Text); GracefulDisconnectCompletionSource = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); Sink = _serverFixture.Host.Services.GetRequiredService(); @@ -91,6 +91,45 @@ namespace Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests Assert.Contains((Extensions.Logging.LogLevel.Debug, "CircuitDisconnectedPermanently"), Messages); } + [Fact] + public async Task NavigatingToProtocolLink_DoesNotGracefullyDisconnect_TheCurrentCircuit() + { + // Arrange & Act + var element = Browser.FindElement(By.Id("mailto-link")); + element.Click(); + await Task.WhenAny(Task.Delay(10000), GracefulDisconnectCompletionSource.Task); + + // Assert + Assert.DoesNotContain((Extensions.Logging.LogLevel.Debug, "CircuitTerminatedGracefully"), Messages); + Assert.DoesNotContain((Extensions.Logging.LogLevel.Debug, "CircuitDisconnectedPermanently"), Messages); + } + + [Fact] + public async Task DownloadAction_DoesNotGracefullyDisconnect_TheCurrentCircuit() + { + // Arrange & Act + var element = Browser.FindElement(By.Id("download-link")); + element.Click(); + await Task.WhenAny(Task.Delay(10000), GracefulDisconnectCompletionSource.Task); + + // Assert + Assert.DoesNotContain((Extensions.Logging.LogLevel.Debug, "CircuitTerminatedGracefully"), Messages); + Assert.DoesNotContain((Extensions.Logging.LogLevel.Debug, "CircuitDisconnectedPermanently"), Messages); + } + + [Fact] + public async Task DownloadHref_DoesNotGracefullyDisconnect_TheCurrentCircuit() + { + // Arrange & Act + var element = Browser.FindElement(By.Id("download-href")); + element.Click(); + await Task.WhenAny(Task.Delay(10000), GracefulDisconnectCompletionSource.Task); + + // Assert + Assert.DoesNotContain((Extensions.Logging.LogLevel.Debug, "CircuitTerminatedGracefully"), Messages); + Assert.DoesNotContain((Extensions.Logging.LogLevel.Debug, "CircuitDisconnectedPermanently"), Messages); + } + private void Log(WriteContext wc) { if ((Extensions.Logging.LogLevel.Debug, "CircuitTerminatedGracefully") == (wc.LogLevel, wc.EventId.Name)) diff --git a/src/Components/test/testassets/BasicTestApp/GracefulTermination.razor b/src/Components/test/testassets/BasicTestApp/GracefulTermination.razor new file mode 100644 index 0000000000..967775faa4 --- /dev/null +++ b/src/Components/test/testassets/BasicTestApp/GracefulTermination.razor @@ -0,0 +1,14 @@ +@inject NavigationManager navigationManager + +

Graceful Termination

+ +Send Email +Download Link + + +@code { + private void DownloadFile() + { + navigationManager.NavigateTo("/subdir/download", true); + } +} diff --git a/src/Components/test/testassets/BasicTestApp/Index.razor b/src/Components/test/testassets/BasicTestApp/Index.razor index 23d3098bc3..e25b5c9c11 100644 --- a/src/Components/test/testassets/BasicTestApp/Index.razor +++ b/src/Components/test/testassets/BasicTestApp/Index.razor @@ -40,6 +40,7 @@ + diff --git a/src/Components/test/testassets/TestServer/Controllers/DownloadController.cs b/src/Components/test/testassets/TestServer/Controllers/DownloadController.cs new file mode 100644 index 0000000000..a0a1ca9c3c --- /dev/null +++ b/src/Components/test/testassets/TestServer/Controllers/DownloadController.cs @@ -0,0 +1,22 @@ +using System; +using System.IO; +using System.Text; +using Microsoft.AspNetCore.Mvc; + +namespace Components.TestServer.Controllers +{ + public class DownloadController : Controller + { + + [HttpGet("~/download")] + public FileStreamResult Download() + { + var buffer = Encoding.UTF8.GetBytes("The quick brown fox jumped over the lazy dog."); + var stream = new MemoryStream(buffer); + + var result = new FileStreamResult(stream, "text/plain"); + result.FileDownloadName = "test.txt"; + return result; + } + } +} diff --git a/src/Components/test/testassets/TestServer/ServerStartup.cs b/src/Components/test/testassets/TestServer/ServerStartup.cs index bcd6e56e88..6b4c5668bd 100644 --- a/src/Components/test/testassets/TestServer/ServerStartup.cs +++ b/src/Components/test/testassets/TestServer/ServerStartup.cs @@ -39,6 +39,7 @@ namespace TestServer app.UseEndpoints(endpoints => { endpoints.MapBlazorHub(); + endpoints.MapControllerRoute("mvc", "{controller}/{action}"); endpoints.MapFallbackToPage("/_ServerHost"); }); }); From eed71b90833165c8f096642386d36c0ff0cbd25f Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Fri, 25 Sep 2020 10:54:54 -0700 Subject: [PATCH 186/187] Support override of PackageOverrides.txt content in servicing (#26308) * Support override of PackageOverrides.txt content in servicing - doing now ensures we don't forget if we need to service targeting packs - not needed in release/3.1 because that branch still pins packages at `X.Y.0` in targeting packs - did not do bfc1ec6792 / #25851 work in 3.1 because dotnet/runtime ref/ assemblies change there - revert no-longer-necessary parts of 6418c8f78a93 / #25986 - `$(MicrosoftNETCoreAppRuntimeVersion)` is now correct whenever `GeneratePackageOverrides` runs nits: - rename `GeneratePackageConflictManifest` target to `GeneratePackageOverrides` - rename `$(PackageConflictManifestFileName)` to `$(PackageOverridesFileName)` --- .../src/Microsoft.AspNetCore.App.Ref.csproj | 33 +++++++++---------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/src/Framework/App.Ref/src/Microsoft.AspNetCore.App.Ref.csproj b/src/Framework/App.Ref/src/Microsoft.AspNetCore.App.Ref.csproj index 478becd01e..ec0a772d01 100644 --- a/src/Framework/App.Ref/src/Microsoft.AspNetCore.App.Ref.csproj +++ b/src/Framework/App.Ref/src/Microsoft.AspNetCore.App.Ref.csproj @@ -35,8 +35,6 @@ This package is an internal implementation of the .NET Core SDK and is not meant false - PackageOverrides.txt - $(PkgMicrosoft_Extensions_Internal_Transport)\ref\$(TargetFramework)\ - + + PackageOverrides.txt + + $(TargetDir)$(PackageOverridesFileName) + $(RepoRoot)eng\$(PackageOverridesFileName) + $(PlatformManifestOutputPath) $(RepoRoot)eng\PlatformManifest.txt @@ -84,7 +87,7 @@ This package is an internal implementation of the .NET Core SDK and is not meant $(BuildDependsOn); _ResolveTargetingPackContent; - GeneratePackageConflictManifest; + GeneratePackageOverrides; IncludeFrameworkListFile; _BatchCopyToLayoutTargetDir; _InstallTargetingPackIntoLocalDotNet; @@ -144,26 +147,22 @@ This package is an internal implementation of the .NET Core SDK and is not meant Condition="Exists('%(RootDir)%(Directory)%(FileName).xml')" /> - - + - - - <_PinnedNETCoreAppRuntimeVersion>$(MicrosoftNETCoreAppRuntimeVersion) - <_PinnedNETCoreAppRuntimeVersion - Condition=" '$(IsServicingBuild)' == 'true' ">$(_PinnedNETCoreAppRuntimeVersion.Split('.')[0]).$(_PinnedNETCoreAppRuntimeVersion.Split('.')[1]).0 - + Outputs="$(ReferencePackageOverridesPath"> <_AspNetCoreAppPackageOverrides Include="@(AspNetCoreReferenceAssemblyPath->'%(NuGetPackageId)|%(NuGetPackageVersion)')" @@ -172,8 +171,8 @@ This package is an internal implementation of the .NET Core SDK and is not meant '%(AspNetCoreReferenceAssemblyPath.NuGetPackageId)' != 'Microsoft.Extensions.Internal.Transport' AND '%(AspNetCoreReferenceAssemblyPath.NuGetSourceType)' == 'Package' " /> - - <_AspNetCoreAppPackageOverrides Include="@(_SelectedExtensionsRefAssemblies->'%(FileName)|$(_PinnedNETCoreAppRuntimeVersion)')" /> + + <_AspNetCoreAppPackageOverrides Include="@(_SelectedExtensionsRefAssemblies->'%(FileName)|$(MicrosoftNETCoreAppRuntimeVersion)')" /> <_AspNetCoreAppPackageOverrides Include="@(AspNetCoreReferenceAssemblyPath->'%(FileName)|$(ReferencePackSharedFxVersion)')" Condition=" '%(AspNetCoreReferenceAssemblyPath.ReferenceSourceTarget)' == 'ProjectReference' " /> @@ -181,7 +180,7 @@ This package is an internal implementation of the .NET Core SDK and is not meant From 6c37a763d174cbfeff25316f88ed80c4c00200d1 Mon Sep 17 00:00:00 2001 From: Pranav K Date: Fri, 25 Sep 2020 12:14:56 -0700 Subject: [PATCH 187/187] Remove Microsoft.Components.Web.Extensions (#26256) (#26298) The package was marked as non-shipping but we continued to build and test it. This change removes it. A copy of this code exists in asplabs so all is not lost. --- AspNetCore.sln | 18 -- eng/ProjectReferences.props | 1 - src/Components/Components.slnf | 1 - src/Components/ComponentsNoDeps.slnf | 1 - .../HeadManagementJSRuntimeExtensions.cs | 28 --- .../src/HeadManagement/HeadTagBase.cs | 67 ------- .../Web.Extensions/src/HeadManagement/Link.cs | 14 -- .../Web.Extensions/src/HeadManagement/Meta.cs | 14 -- .../src/HeadManagement/TagElement.cs | 22 --- .../src/HeadManagement/Title.cs | 37 ---- .../src/HeadManagement/TitleElement.cs | 17 -- ...spNetCore.Components.Web.Extensions.csproj | 21 --- .../src/Properties/AssemblyInfo.cs | 3 - .../Web.Extensions/src/PublicAPI.Shipped.txt | 1 - .../src/PublicAPI.Unshipped.txt | 18 -- .../Web.Extensions/src/wwwroot/headManager.js | 102 ---------- .../ServerExecutionTests/PrerenderingTest.cs | 33 ---- .../test/E2ETest/Tests/HeadComponentsTest.cs | 175 ------------------ .../BasicTestApp/BasicTestApp.csproj | 1 - .../test/testassets/BasicTestApp/Index.razor | 1 - .../BasicTestApp/ModifyHeadComponent.razor | 119 ------------ .../PrerenderedHeadComponent.razor | 45 ----- .../test/testassets/BasicTestApp/Program.cs | 5 +- 23 files changed, 1 insertion(+), 743 deletions(-) delete mode 100644 src/Components/Web.Extensions/src/HeadManagement/HeadManagementJSRuntimeExtensions.cs delete mode 100644 src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs delete mode 100644 src/Components/Web.Extensions/src/HeadManagement/Link.cs delete mode 100644 src/Components/Web.Extensions/src/HeadManagement/Meta.cs delete mode 100644 src/Components/Web.Extensions/src/HeadManagement/TagElement.cs delete mode 100644 src/Components/Web.Extensions/src/HeadManagement/Title.cs delete mode 100644 src/Components/Web.Extensions/src/HeadManagement/TitleElement.cs delete mode 100644 src/Components/Web.Extensions/src/Microsoft.AspNetCore.Components.Web.Extensions.csproj delete mode 100644 src/Components/Web.Extensions/src/Properties/AssemblyInfo.cs delete mode 100644 src/Components/Web.Extensions/src/PublicAPI.Shipped.txt delete mode 100644 src/Components/Web.Extensions/src/PublicAPI.Unshipped.txt delete mode 100644 src/Components/Web.Extensions/src/wwwroot/headManager.js delete mode 100644 src/Components/test/E2ETest/Tests/HeadComponentsTest.cs delete mode 100644 src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor delete mode 100644 src/Components/test/testassets/BasicTestApp/PrerenderedHeadComponent.razor diff --git a/AspNetCore.sln b/AspNetCore.sln index 28551367a7..ceb029889f 100644 --- a/AspNetCore.sln +++ b/AspNetCore.sln @@ -1391,10 +1391,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ServerComparison.Functional EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Testing.Tests", "src\Testing\test\Microsoft.AspNetCore.Testing.Tests.csproj", "{1542DC58-1836-4191-A9C5-51D1716D2543}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Web.Extensions", "Web.Extensions", "{F71FE795-9923-461B-9809-BB1821A276D0}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Components.Web.Extensions", "src\Components\Web.Extensions\src\Microsoft.AspNetCore.Components.Web.Extensions.csproj", "{8294A74F-7DAA-4B69-BC56-7634D93C9693}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sdk", "Sdk", "{FED4267E-E5E4-49C5-98DB-8B3F203596EE}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.NET.Sdk.BlazorWebAssembly", "src\Components\WebAssembly\Sdk\src\Microsoft.NET.Sdk.BlazorWebAssembly.csproj", "{6B2734BF-C61D-4889-ABBF-456A4075D59B}" @@ -6701,18 +6697,6 @@ Global {1542DC58-1836-4191-A9C5-51D1716D2543}.Release|x64.Build.0 = Release|Any CPU {1542DC58-1836-4191-A9C5-51D1716D2543}.Release|x86.ActiveCfg = Release|Any CPU {1542DC58-1836-4191-A9C5-51D1716D2543}.Release|x86.Build.0 = Release|Any CPU - {8294A74F-7DAA-4B69-BC56-7634D93C9693}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8294A74F-7DAA-4B69-BC56-7634D93C9693}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8294A74F-7DAA-4B69-BC56-7634D93C9693}.Debug|x64.ActiveCfg = Debug|Any CPU - {8294A74F-7DAA-4B69-BC56-7634D93C9693}.Debug|x64.Build.0 = Debug|Any CPU - {8294A74F-7DAA-4B69-BC56-7634D93C9693}.Debug|x86.ActiveCfg = Debug|Any CPU - {8294A74F-7DAA-4B69-BC56-7634D93C9693}.Debug|x86.Build.0 = Debug|Any CPU - {8294A74F-7DAA-4B69-BC56-7634D93C9693}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8294A74F-7DAA-4B69-BC56-7634D93C9693}.Release|Any CPU.Build.0 = Release|Any CPU - {8294A74F-7DAA-4B69-BC56-7634D93C9693}.Release|x64.ActiveCfg = Release|Any CPU - {8294A74F-7DAA-4B69-BC56-7634D93C9693}.Release|x64.Build.0 = Release|Any CPU - {8294A74F-7DAA-4B69-BC56-7634D93C9693}.Release|x86.ActiveCfg = Release|Any CPU - {8294A74F-7DAA-4B69-BC56-7634D93C9693}.Release|x86.Build.0 = Release|Any CPU {6B2734BF-C61D-4889-ABBF-456A4075D59B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6B2734BF-C61D-4889-ABBF-456A4075D59B}.Debug|Any CPU.Build.0 = Debug|Any CPU {6B2734BF-C61D-4889-ABBF-456A4075D59B}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -8080,8 +8064,6 @@ Global {3CBC4802-E9B8-48B7-BC8C-B0AFB9EEC643} = {0ACCEDA7-339C-4B4D-8DD4-1AC271F31C04} {48E64014-B249-4644-8AEB-CDEE8ABA0DC2} = {3CBC4802-E9B8-48B7-BC8C-B0AFB9EEC643} {1542DC58-1836-4191-A9C5-51D1716D2543} = {05A169C7-4F20-4516-B10A-B13C5649D346} - {F71FE795-9923-461B-9809-BB1821A276D0} = {60D51C98-2CC0-40DF-B338-44154EFEE2FF} - {8294A74F-7DAA-4B69-BC56-7634D93C9693} = {F71FE795-9923-461B-9809-BB1821A276D0} {FED4267E-E5E4-49C5-98DB-8B3F203596EE} = {562D5067-8CD8-4F19-BCBB-873204932C61} {6B2734BF-C61D-4889-ABBF-456A4075D59B} = {FED4267E-E5E4-49C5-98DB-8B3F203596EE} {83371889-9A3E-4D16-AE77-EB4F83BC6374} = {FED4267E-E5E4-49C5-98DB-8B3F203596EE} diff --git a/eng/ProjectReferences.props b/eng/ProjectReferences.props index 43a9982259..a027772182 100644 --- a/eng/ProjectReferences.props +++ b/eng/ProjectReferences.props @@ -141,7 +141,6 @@ - diff --git a/src/Components/Components.slnf b/src/Components/Components.slnf index 50973b2288..d023481b95 100644 --- a/src/Components/Components.slnf +++ b/src/Components/Components.slnf @@ -101,7 +101,6 @@ "src\\Components\\test\\testassets\\GlobalizationWasmApp\\GlobalizationWasmApp.csproj", "src\\Components\\benchmarkapps\\Wasm.Performance\\Driver\\Wasm.Performance.Driver.csproj", "src\\Components\\benchmarkapps\\Wasm.Performance\\TestApp\\Wasm.Performance.TestApp.csproj", - "src\\Components\\Web.Extensions\\src\\Microsoft.AspNetCore.Components.Web.Extensions.csproj", "src\\Components\\WebAssembly\\Server\\test\\Microsoft.AspNetCore.Components.WebAssembly.Server.Tests.csproj", "src\\Components\\WebAssembly\\Authentication.Msal\\src\\Microsoft.Authentication.WebAssembly.Msal.csproj", "src\\Components\\WebAssembly\\JSInterop\\src\\Microsoft.JSInterop.WebAssembly.csproj", diff --git a/src/Components/ComponentsNoDeps.slnf b/src/Components/ComponentsNoDeps.slnf index 3c95b3b7ca..0596b3bc64 100644 --- a/src/Components/ComponentsNoDeps.slnf +++ b/src/Components/ComponentsNoDeps.slnf @@ -16,7 +16,6 @@ "src\\Components\\Samples\\BlazorServerApp\\BlazorServerApp.csproj", "src\\Components\\Server\\src\\Microsoft.AspNetCore.Components.Server.csproj", "src\\Components\\Server\\test\\Microsoft.AspNetCore.Components.Server.Tests.csproj", - "src\\Components\\Web.Extensions\\src\\Microsoft.AspNetCore.Components.Web.Extensions.csproj", "src\\Components\\WebAssembly\\Authentication.Msal\\src\\Microsoft.Authentication.WebAssembly.Msal.csproj", "src\\Components\\WebAssembly\\DevServer\\src\\Microsoft.AspNetCore.Components.WebAssembly.DevServer.csproj", "src\\Components\\WebAssembly\\JSInterop\\src\\Microsoft.JSInterop.WebAssembly.csproj", diff --git a/src/Components/Web.Extensions/src/HeadManagement/HeadManagementJSRuntimeExtensions.cs b/src/Components/Web.Extensions/src/HeadManagement/HeadManagementJSRuntimeExtensions.cs deleted file mode 100644 index aafbbf194e..0000000000 --- a/src/Components/Web.Extensions/src/HeadManagement/HeadManagementJSRuntimeExtensions.cs +++ /dev/null @@ -1,28 +0,0 @@ -// 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. - -using System.Threading.Tasks; -using Microsoft.JSInterop; - -namespace Microsoft.AspNetCore.Components.Web.Extensions.Head -{ - internal static class HeadManagementJSRuntimeExtensions - { - private const string JsFunctionsPrefix = "_blazorHeadManager"; - - public static ValueTask SetTitleAsync(this IJSRuntime jsRuntime, string title) - { - return jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.setTitle", title); - } - - public static ValueTask AddOrUpdateHeadTagAsync(this IJSRuntime jsRuntime, TagElement tag, string id) - { - return jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.addOrUpdateHeadTag", tag, id); - } - - public static ValueTask RemoveHeadTagAsync(this IJSRuntime jsRuntime, string id) - { - return jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.removeHeadTag", id); - } - } -} diff --git a/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs b/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs deleted file mode 100644 index fce4271b20..0000000000 --- a/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs +++ /dev/null @@ -1,67 +0,0 @@ -// 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. - -using System; -using System.Collections.Generic; -using System.Text.Json; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Components.Rendering; -using Microsoft.JSInterop; - -namespace Microsoft.AspNetCore.Components.Web.Extensions.Head -{ - /// - /// Serves as a base for components that represent tags in the HTML head. - /// - public abstract class HeadTagBase : ComponentBase, IDisposable - { - private readonly string _id = Guid.NewGuid().ToString("N"); - - private TagElement _tagElement; - - private bool _hasRendered; - - [Inject] - private IJSRuntime JSRuntime { get; set; } = default!; - - /// - /// Gets or sets a collection of additional attributes that will be applied to the meta element. - /// - [Parameter(CaptureUnmatchedValues = true)] - public IReadOnlyDictionary? Attributes { get; set; } - - /// - /// Gets the name of the tag being represented. - /// - protected abstract string TagName { get; } - - /// - protected override void OnParametersSet() - { - _tagElement = new TagElement(TagName, Attributes); - } - - /// - protected override async Task OnAfterRenderAsync(bool firstRender) - { - _hasRendered = true; - - await JSRuntime.AddOrUpdateHeadTagAsync(_tagElement, _id); - } - - /// - protected override void BuildRenderTree(RenderTreeBuilder builder) - { - builder.AddMarkupContent(0, $""); - } - - /// - public void Dispose() - { - if (_hasRendered) - { - _ = JSRuntime.RemoveHeadTagAsync(_id); - } - } - } -} diff --git a/src/Components/Web.Extensions/src/HeadManagement/Link.cs b/src/Components/Web.Extensions/src/HeadManagement/Link.cs deleted file mode 100644 index 83cc193b74..0000000000 --- a/src/Components/Web.Extensions/src/HeadManagement/Link.cs +++ /dev/null @@ -1,14 +0,0 @@ -// 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. - -namespace Microsoft.AspNetCore.Components.Web.Extensions.Head -{ - /// - /// A component that adds a link tag to the HTML head. - /// - public sealed class Link : HeadTagBase - { - /// - protected override string TagName => "link"; - } -} diff --git a/src/Components/Web.Extensions/src/HeadManagement/Meta.cs b/src/Components/Web.Extensions/src/HeadManagement/Meta.cs deleted file mode 100644 index e5100bbd4e..0000000000 --- a/src/Components/Web.Extensions/src/HeadManagement/Meta.cs +++ /dev/null @@ -1,14 +0,0 @@ -// 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. - -namespace Microsoft.AspNetCore.Components.Web.Extensions.Head -{ - /// - /// A component that adds a meta tag to the HTML head. - /// - public sealed class Meta : HeadTagBase - { - /// - protected override string TagName => "meta"; - } -} diff --git a/src/Components/Web.Extensions/src/HeadManagement/TagElement.cs b/src/Components/Web.Extensions/src/HeadManagement/TagElement.cs deleted file mode 100644 index 3488eb1e15..0000000000 --- a/src/Components/Web.Extensions/src/HeadManagement/TagElement.cs +++ /dev/null @@ -1,22 +0,0 @@ -// 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. - -using System.Collections.Generic; - -namespace Microsoft.AspNetCore.Components.Web.Extensions.Head -{ - internal readonly struct TagElement - { - public string Type => "tag"; - - public string TagName { get; } - - public IReadOnlyDictionary? Attributes { get; } - - public TagElement(string tagName, IReadOnlyDictionary? attributes) - { - TagName = tagName; - Attributes = attributes; - } - } -} diff --git a/src/Components/Web.Extensions/src/HeadManagement/Title.cs b/src/Components/Web.Extensions/src/HeadManagement/Title.cs deleted file mode 100644 index f7cfd28359..0000000000 --- a/src/Components/Web.Extensions/src/HeadManagement/Title.cs +++ /dev/null @@ -1,37 +0,0 @@ -// 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. - -using System.Text.Json; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Components.Rendering; -using Microsoft.JSInterop; - -namespace Microsoft.AspNetCore.Components.Web.Extensions.Head -{ - /// - /// A component that changes the title of the document. - /// - public sealed class Title : ComponentBase - { - [Inject] - private IJSRuntime JSRuntime { get; set; } = default!; - - /// - /// Gets or sets the value to use as the document's title. - /// - [Parameter] - public string Value { get; set; } = string.Empty; - - /// - protected override async Task OnAfterRenderAsync(bool firstRender) - { - await JSRuntime.SetTitleAsync(Value); - } - - /// - protected override void BuildRenderTree(RenderTreeBuilder builder) - { - builder.AddMarkupContent(0, $""); - } - } -} diff --git a/src/Components/Web.Extensions/src/HeadManagement/TitleElement.cs b/src/Components/Web.Extensions/src/HeadManagement/TitleElement.cs deleted file mode 100644 index c56d550ac2..0000000000 --- a/src/Components/Web.Extensions/src/HeadManagement/TitleElement.cs +++ /dev/null @@ -1,17 +0,0 @@ -// 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. - -namespace Microsoft.AspNetCore.Components.Web.Extensions.Head -{ - internal readonly struct TitleElement - { - public string Type => "title"; - - public string Title { get; } - - public TitleElement(string title) - { - Title = title; - } - } -} diff --git a/src/Components/Web.Extensions/src/Microsoft.AspNetCore.Components.Web.Extensions.csproj b/src/Components/Web.Extensions/src/Microsoft.AspNetCore.Components.Web.Extensions.csproj deleted file mode 100644 index 852f471d38..0000000000 --- a/src/Components/Web.Extensions/src/Microsoft.AspNetCore.Components.Web.Extensions.csproj +++ /dev/null @@ -1,21 +0,0 @@ - - - - $(DefaultNetCoreTargetFramework) - A collection of Blazor components for the web. - true - Microsoft.AspNetCore.Components - enable - false - - - - - - - - - - - - diff --git a/src/Components/Web.Extensions/src/Properties/AssemblyInfo.cs b/src/Components/Web.Extensions/src/Properties/AssemblyInfo.cs deleted file mode 100644 index 2e06371bc6..0000000000 --- a/src/Components/Web.Extensions/src/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,3 +0,0 @@ -using System.Runtime.CompilerServices; - -[assembly: InternalsVisibleTo("Microsoft.AspNetCore.Components.Web.Extensions.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")] diff --git a/src/Components/Web.Extensions/src/PublicAPI.Shipped.txt b/src/Components/Web.Extensions/src/PublicAPI.Shipped.txt deleted file mode 100644 index ab058de62d..0000000000 --- a/src/Components/Web.Extensions/src/PublicAPI.Shipped.txt +++ /dev/null @@ -1 +0,0 @@ -#nullable enable diff --git a/src/Components/Web.Extensions/src/PublicAPI.Unshipped.txt b/src/Components/Web.Extensions/src/PublicAPI.Unshipped.txt deleted file mode 100644 index f95bb5366e..0000000000 --- a/src/Components/Web.Extensions/src/PublicAPI.Unshipped.txt +++ /dev/null @@ -1,18 +0,0 @@ -#nullable enable -Microsoft.AspNetCore.Components.Web.Extensions.Head.HeadTagBase -Microsoft.AspNetCore.Components.Web.Extensions.Head.HeadTagBase.Attributes.get -> System.Collections.Generic.IReadOnlyDictionary? -Microsoft.AspNetCore.Components.Web.Extensions.Head.HeadTagBase.Attributes.set -> void -Microsoft.AspNetCore.Components.Web.Extensions.Head.HeadTagBase.Dispose() -> void -Microsoft.AspNetCore.Components.Web.Extensions.Head.HeadTagBase.HeadTagBase() -> void -Microsoft.AspNetCore.Components.Web.Extensions.Head.Link -Microsoft.AspNetCore.Components.Web.Extensions.Head.Link.Link() -> void -Microsoft.AspNetCore.Components.Web.Extensions.Head.Meta -Microsoft.AspNetCore.Components.Web.Extensions.Head.Meta.Meta() -> void -Microsoft.AspNetCore.Components.Web.Extensions.Head.Title -Microsoft.AspNetCore.Components.Web.Extensions.Head.Title.Title() -> void -Microsoft.AspNetCore.Components.Web.Extensions.Head.Title.Value.get -> string! -Microsoft.AspNetCore.Components.Web.Extensions.Head.Title.Value.set -> void -abstract Microsoft.AspNetCore.Components.Web.Extensions.Head.HeadTagBase.TagName.get -> string! -override Microsoft.AspNetCore.Components.Web.Extensions.Head.HeadTagBase.BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder! builder) -> void -override Microsoft.AspNetCore.Components.Web.Extensions.Head.HeadTagBase.OnAfterRenderAsync(bool firstRender) -> System.Threading.Tasks.Task! -override Microsoft.AspNetCore.Components.Web.Extensions.Head.HeadTagBase.OnParametersSet() -> void diff --git a/src/Components/Web.Extensions/src/wwwroot/headManager.js b/src/Components/Web.Extensions/src/wwwroot/headManager.js deleted file mode 100644 index e871b72afe..0000000000 --- a/src/Components/Web.Extensions/src/wwwroot/headManager.js +++ /dev/null @@ -1,102 +0,0 @@ -(function () { - // Local helpers - - const blazorIdAttributeName = '_blazor_id'; - const headCommentRegularExpression = /\W*Head:[^{]*(.*)$/; - const prerenderedTags = []; - - function createHeadTag({ tagName, attributes }, id) { - const tagElement = document.createElement(tagName); - - // The id is undefined during prerendering - if (id) { - tagElement.setAttribute(blazorIdAttributeName, id); - } - - if (attributes) { - Object.keys(attributes).forEach(key => { - tagElement.setAttribute(key, attributes[key]); - }); - } - - document.head.appendChild(tagElement); - - return tagElement; - } - - function resolvePrerenderedHeadComponents(node) { - node.childNodes.forEach((childNode) => { - const headElement = parseHeadComment(childNode); - - if (headElement) { - applyPrerenderedHeadComponent(headElement); - } else { - resolvePrerenderedHeadComponents(childNode); - } - }); - } - - function applyPrerenderedHeadComponent(headElement) { - switch (headElement.type) { - case 'title': - setTitle(headElement.title); - break; - case 'tag': - const tag = createHeadTag(headElement); - prerenderedTags.push(tag); - break; - default: - throw new Error(`Invalid head element type '${headElement.type}'.`); - } - } - - function parseHeadComment(node) { - if (!node || node.nodeType != Node.COMMENT_NODE) { - return; - } - - const commentText = node.textContent; - - if (!commentText) { - return; - } - - const definition = headCommentRegularExpression.exec(commentText); - const json = definition && definition[1]; - - return json && JSON.parse(json); - } - - function removePrerenderedHeadTags() { - prerenderedTags.forEach((tag) => { - tag.remove(); - }); - - prerenderedTags.length = 0; - } - - // Exported functions - - function setTitle(title) { - document.title = title; - } - - function addOrUpdateHeadTag(tag, id) { - removePrerenderedHeadTags(); - removeHeadTag(id); - createHeadTag(tag, id); - } - - function removeHeadTag(id) { - let tag = document.head.querySelector(`[${blazorIdAttributeName}='${id}']`); - tag && tag.remove(); - } - - window._blazorHeadManager = { - setTitle, - addOrUpdateHeadTag, - removeHeadTag, - }; - - resolvePrerenderedHeadComponents(document); -})(); diff --git a/src/Components/test/E2ETest/ServerExecutionTests/PrerenderingTest.cs b/src/Components/test/E2ETest/ServerExecutionTests/PrerenderingTest.cs index 856740a65f..d295d6a4a8 100644 --- a/src/Components/test/E2ETest/ServerExecutionTests/PrerenderingTest.cs +++ b/src/Components/test/E2ETest/ServerExecutionTests/PrerenderingTest.cs @@ -82,39 +82,6 @@ namespace Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests AssertLogDoesNotContainCriticalMessages("Could not load file or assembly 'Newtonsoft.Json"); } - [Fact] - [QuarantinedTest] - public void CanInfluenceHeadDuringPrerender() - { - Navigate("/prerendered/prerendered-head"); - - // Validate updated head during prerender - Browser.Equal("Initial title", () => Browser.Title); - Browser.Equal("Initial meta content", () => GetMetaWithBindings().GetAttribute("content")); - Browser.Equal("Immutable meta content", () => GetMetaWithoutBindings().GetAttribute("content")); - - BeginInteractivity(); - - // Wait until the component has rerendered - Browser.Exists(By.Id("interactive-indicator")); - - // Validate updated head after prerender - Browser.Equal("Initial title", () => Browser.Title); - Browser.Equal("Initial meta content", () => GetMetaWithBindings().GetAttribute("content")); - Browser.Equal("Immutable meta content", () => GetMetaWithoutBindings().GetAttribute("content")); - - // Change parameter of meta component - var inputMetaBinding = Browser.FindElement(By.Id("input-meta-binding")); - inputMetaBinding.Clear(); - inputMetaBinding.SendKeys("Updated meta content\n"); - - // Validate new meta content attribute - Browser.Equal("Updated meta content", () => GetMetaWithBindings().GetAttribute("content")); - - IWebElement GetMetaWithBindings() => Browser.FindElement(By.Id("meta-with-bindings")); - IWebElement GetMetaWithoutBindings() => Browser.FindElement(By.Id("meta-no-bindings")); - } - [Fact] public void CanReadUrlHashOnlyOnceConnected() { diff --git a/src/Components/test/E2ETest/Tests/HeadComponentsTest.cs b/src/Components/test/E2ETest/Tests/HeadComponentsTest.cs deleted file mode 100644 index b7870b3c65..0000000000 --- a/src/Components/test/E2ETest/Tests/HeadComponentsTest.cs +++ /dev/null @@ -1,175 +0,0 @@ -// 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. - -using System.Linq; -using BasicTestApp; -using Microsoft.AspNetCore.Components.E2ETest.Infrastructure; -using Microsoft.AspNetCore.Components.E2ETest.Infrastructure.ServerFixtures; -using Microsoft.AspNetCore.E2ETesting; -using OpenQA.Selenium; -using Xunit; -using Xunit.Abstractions; - -namespace Microsoft.AspNetCore.Components.E2ETest.Tests -{ - public class HeadComponentsTest : E2ETest.Infrastructure.ServerTestBase> - { - public HeadComponentsTest( - BrowserFixture browserFixture, - ToggleExecutionModeServerFixture serverFixture, - ITestOutputHelper output) - : base(browserFixture, serverFixture, output) - { - } - - protected override void InitializeAsyncCore() - { - Navigate(ServerPathBase, noReload: _serverFixture.ExecutionMode == ExecutionMode.Client); - Browser.MountTestComponent(); - } - - [Fact] - public void Title_DoesChangeDocumentTitle() - { - var titleCount = 3; - var titleButtonsById = Enumerable.Range(0, titleCount) - .Select(i => (i, Browser.FindElement(By.Id($"button-title-{i}")))) - .ToList(); - - Assert.All(titleButtonsById, buttonById => - { - var (id, button) = buttonById; - button.Click(); - - Browser.Equal($"Title {id}", () => Browser.Title); - }); - } - - [Fact] - public void Title_DeepestComponentHasPriority() - { - var nestedTitleButton = Browser.FindElement(By.Id("button-title-nested")); - nestedTitleButton.Click(); - - Browser.Equal("Layer 4", () => Browser.Title); - } - - [Fact] - public void Meta_AddsAndRemovesElements() - { - var metaCount = 3; - var metaButtonsById = Enumerable.Range(0, metaCount) - .Select(i => (i, Browser.FindElement(By.Id($"button-meta-{i}")))) - .ToList(); - - // Validate adding elements - Assert.All(metaButtonsById, buttonById => - { - var (id, button) = buttonById; - button.Click(); - - Browser.Exists(By.Id($"Meta {id}")); - }); - - // Validate removing elements - Assert.All(metaButtonsById, buttonById => - { - var (id, button) = buttonById; - button.Click(); - - Browser.DoesNotExist(By.Id($"Meta {id}")); - }); - } - - [Fact] - public void Meta_UpdatesSameElementWhenComponentPropertyChanged() - { - var metaAttributeInput1 = Browser.FindElement(By.Id("meta-attr-input-1")); - var metaAttributeInput2 = Browser.FindElement(By.Id("meta-attr-input-2")); - var metaElement = FindMetaElement(); - - // Validate initial attribute values - Browser.Equal("First attribute", () => metaElement.GetAttribute("attr1")); - Browser.Equal("Second attribute", () => metaElement.GetAttribute("attr2")); - - // Update the first parameter of the component - metaAttributeInput1.Clear(); - metaAttributeInput1.SendKeys("hello\n"); - metaElement = FindMetaElement(); - - // Validate first attribute updated - Browser.Equal("hello", () => metaElement.GetAttribute("attr1")); - Browser.Equal("Second attribute", () => metaElement.GetAttribute("attr2")); - - // Update the second parameter of the component - metaAttributeInput2.Clear(); - metaAttributeInput2.SendKeys("world\n"); - metaElement = FindMetaElement(); - - // Validate second attribute updated - Browser.Equal("hello", () => metaElement.GetAttribute("attr1")); - Browser.Equal("world", () => metaElement.GetAttribute("attr2")); - - IWebElement FindMetaElement() => Browser.FindElements(By.Id("meta-with-bindings")).Single(); - } - - [Fact] - public void Link_AddsAndRemovesElements() - { - var linkCount = 3; - var linkButtonsById = Enumerable.Range(0, linkCount) - .Select(i => (i, Browser.FindElement(By.Id($"button-link-{i}")))) - .ToList(); - - // Validate adding elements - Assert.All(linkButtonsById, buttonById => - { - var (id, button) = buttonById; - button.Click(); - - Browser.Exists(By.Id($"Link {id}")); - }); - - // Validate removing elements - Assert.All(linkButtonsById, buttonById => - { - var (id, button) = buttonById; - button.Click(); - - Browser.DoesNotExist(By.Id($"Link {id}")); - }); - } - - [Fact] - public void Link_UpdatesSameElementWhenComponentPropertyChanged() - { - var linkAttributeInput1 = Browser.FindElement(By.Id("link-attr-input-1")); - var linkAttributeInput2 = Browser.FindElement(By.Id("link-attr-input-2")); - var linkElement = FindLinkElement(); - - // Validate initial attribute values - Browser.Equal("First attribute", () => linkElement.GetAttribute("attr1")); - Browser.Equal("Second attribute", () => linkElement.GetAttribute("attr2")); - - // Update the first parameter of the component - linkAttributeInput1.Clear(); - linkAttributeInput1.SendKeys("hello\n"); - linkElement = FindLinkElement(); - - // Validate first attribute updated - Browser.Equal("hello", () => linkElement.GetAttribute("attr1")); - Browser.Equal("Second attribute", () => linkElement.GetAttribute("attr2")); - - // Update the second parameter of the component - linkAttributeInput2.Clear(); - linkAttributeInput2.SendKeys("world\n"); - linkElement = FindLinkElement(); - - // Validate second attribute updated - Browser.Equal("hello", () => linkElement.GetAttribute("attr1")); - Browser.Equal("world", () => linkElement.GetAttribute("attr2")); - - IWebElement FindLinkElement() => Browser.FindElements(By.Id("link-with-bindings")).Single(); - } - } -} diff --git a/src/Components/test/testassets/BasicTestApp/BasicTestApp.csproj b/src/Components/test/testassets/BasicTestApp/BasicTestApp.csproj index f6f34a7e17..a610d461f3 100644 --- a/src/Components/test/testassets/BasicTestApp/BasicTestApp.csproj +++ b/src/Components/test/testassets/BasicTestApp/BasicTestApp.csproj @@ -18,7 +18,6 @@ - diff --git a/src/Components/test/testassets/BasicTestApp/Index.razor b/src/Components/test/testassets/BasicTestApp/Index.razor index e25b5c9c11..e6b8138a7d 100644 --- a/src/Components/test/testassets/BasicTestApp/Index.razor +++ b/src/Components/test/testassets/BasicTestApp/Index.razor @@ -61,7 +61,6 @@ - diff --git a/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor b/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor deleted file mode 100644 index 1242213bb7..0000000000 --- a/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor +++ /dev/null @@ -1,119 +0,0 @@ -@using Microsoft.AspNetCore.Components.Web.Extensions.Head - -

- Multiple title elements:
- - @for (int i = 0; i < 3; i++) - { - var titleId = i; - - - - if (selectedTitle == titleId) - { - - } - } -</p> - -<p> - Multiple meta elements:<br /> - - @for (int i = 0; i < metas.Length; i++) - { - var metaId = i; - - <button id="button-meta-@i" @onclick="() => Toggle(metas, metaId)"> - @GetToggleString(metas[metaId]) meta @metaId</button> - - if (metas[metaId]) - { - <Meta id="@($"Meta {metaId}")" /> - } - } -</p> - -<p> - Multiple link elements:<br /> - - @for (int i = 0; i < links.Length; i++) - { - var linkId = i; - - <button id="button-link-@i" @onclick="() => Toggle(links, linkId)"> - @GetToggleString(links[linkId]) link @linkId</button> - - if (links[linkId]) - { - <Link id="@($"Link {linkId}")" /> - } - } -</p> - -<p> - Nested title elements:<br /> - - <button id="button-title-nested" @onclick="() => SetSelectedTitle(3)"> - Nested titles - </button> - - @if (selectedTitle == 3) - { - <div> - <Title Value="Layer 1" /> - <div> - <Title Value="Layer 2" /> - <div> - <Title Value="Layer 3" /> - <div> - <Title Value="Layer 4" /> - </div> - </div> - </div> - </div> - } -</p> - -<p> - Meta elements w/ bindings:<br /> - <input id="meta-attr-input-1" @bind="@metaAttribute1" placeholder="Attribute 1" /><br /> - <input id="meta-attr-input-2" @bind="@metaAttribute2" placeholder="Attribute 2" /><br /> - <Meta id="meta-with-bindings" attr1="@metaAttribute1" attr2="@metaAttribute2" /> -</p> - -<p> - Link elements w/ bindings:<br /> - <input id="link-attr-input-1" @bind="@linkAttribute1" placeholder="Attribute 1" /><br /> - <input id="link-attr-input-2" @bind="@linkAttribute2" placeholder="Attribute 2" /><br /> - <Link id="link-with-bindings" attr1="@linkAttribute1" attr2="@linkAttribute2" /> -</p> - -@code { - private readonly bool[] metas = Enumerable.Repeat(false, 3).ToArray(); - private readonly bool[] links = Enumerable.Repeat(false, 3).ToArray(); - - private int selectedTitle = -1; - - private string metaAttribute1 = "First attribute"; - private string metaAttribute2 = "Second attribute"; - - private string linkAttribute1 = "First attribute"; - private string linkAttribute2 = "Second attribute"; - - private void Toggle(bool[] states, int index) - { - states[index] = !states[index]; - StateHasChanged(); - } - - private void SetSelectedTitle(int title) - { - selectedTitle = title; - StateHasChanged(); - } - - private string GetToggleString(bool b) - => b ? "Disable" : "Enable"; -} diff --git a/src/Components/test/testassets/BasicTestApp/PrerenderedHeadComponent.razor b/src/Components/test/testassets/BasicTestApp/PrerenderedHeadComponent.razor deleted file mode 100644 index 9ced4765eb..0000000000 --- a/src/Components/test/testassets/BasicTestApp/PrerenderedHeadComponent.razor +++ /dev/null @@ -1,45 +0,0 @@ -@page "/prerendered-head" - -@using Microsoft.AspNetCore.Components.Web.Extensions.Head -@using Microsoft.JSInterop -@inject IJSRuntime JSRuntime - -<p> - This component demonstrates that head components (i.e. Title, Meta, etc.) can take effect during prerendering - and become updatable when the circuit connects. -</p> - -<p> - Title:<br /> - <input id="title-input" @bind="title" placeholder="Set the title" /> - <Title Value=@title /> -</p> - -<p> - Meta:<br /> - <input id="input-meta-binding" @bind="metaContent" placeholder="Set the meta content" /> - <Meta id="meta-with-bindings" content="@metaContent" /> -</p> - -<Meta id="meta-no-bindings" content="Immutable meta content" /> - -@if (isInteractive) -{ - <span id="interactive-indicator">Interactive mode enabled.</span> -} - -@code { - private string title = "Initial title"; - private string metaContent = "Initial meta content"; - - private bool isInteractive; - - protected override void OnAfterRender(bool firstRender) - { - if (firstRender) - { - isInteractive = true; - StateHasChanged(); - } - } -} diff --git a/src/Components/test/testassets/BasicTestApp/Program.cs b/src/Components/test/testassets/BasicTestApp/Program.cs index 0a33c288da..c3be8fafd7 100644 --- a/src/Components/test/testassets/BasicTestApp/Program.cs +++ b/src/Components/test/testassets/BasicTestApp/Program.cs @@ -4,18 +4,15 @@ using System; using System.Globalization; using System.Net.Http; -using System.Runtime.InteropServices; using System.Threading.Tasks; using System.Web; using BasicTestApp.AuthTest; using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components.Authorization; -using Microsoft.AspNetCore.Components.Web.Extensions; using Microsoft.AspNetCore.Components.WebAssembly.Hosting; -using Microsoft.AspNetCore.Components.WebAssembly.Http; using Microsoft.AspNetCore.Components.WebAssembly.Services; -using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Configuration; using Microsoft.JSInterop;