From 82c42d58aeb401968c2dcd779c99fc503935052c Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Sun, 22 Sep 2019 16:07:53 -0700 Subject: [PATCH 001/111] Update branding to 2.1.14 - aspnet/AspNetCore-Internal#3153 --- eng/Baseline.Designer.props | 9 +++++---- eng/Baseline.xml | 6 +++--- eng/PatchConfig.props | 12 ++++-------- .../ArchiveBaseline.2.1.13.txt | 1 + .../ArchiveBaseline.2.1.13.txt | 1 + version.props | 2 +- 6 files changed, 15 insertions(+), 16 deletions(-) create mode 100644 src/PackageArchive/Archive.CiServer.Patch.Compat/ArchiveBaseline.2.1.13.txt create mode 100644 src/PackageArchive/Archive.CiServer.Patch/ArchiveBaseline.2.1.13.txt diff --git a/eng/Baseline.Designer.props b/eng/Baseline.Designer.props index a830a66044..c82f441f14 100644 --- a/eng/Baseline.Designer.props +++ b/eng/Baseline.Designer.props @@ -2,7 +2,7 @@ $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - 2.1.12 + 2.1.13 @@ -284,10 +284,11 @@ - 2.1.1 + 2.1.13 + @@ -1117,12 +1118,12 @@ - 2.1.1 + 2.1.13 - + diff --git a/eng/Baseline.xml b/eng/Baseline.xml index dff0b069c0..8ab070f7e9 100644 --- a/eng/Baseline.xml +++ b/eng/Baseline.xml @@ -4,7 +4,7 @@ This file contains a list of all the packages and their versions which were rele build of ASP.NET Core 2.1.x. Update this list when preparing for a new patch. --> - + @@ -36,7 +36,7 @@ build of ASP.NET Core 2.1.x. Update this list when preparing for a new patch. - + @@ -115,7 +115,7 @@ build of ASP.NET Core 2.1.x. Update this list when preparing for a new patch. - + diff --git a/eng/PatchConfig.props b/eng/PatchConfig.props index e433208e89..71ff8312fd 100644 --- a/eng/PatchConfig.props +++ b/eng/PatchConfig.props @@ -18,14 +18,6 @@ Later on, this will be checked using this condition: Microsoft.AspNetCore.Authentication.Google; - - - - - - - - Microsoft.AspNetCore.Identity.UI; @@ -46,4 +38,8 @@ Later on, this will be checked using this condition: Microsoft.AspNetCore.SpaServices; + + + + diff --git a/src/PackageArchive/Archive.CiServer.Patch.Compat/ArchiveBaseline.2.1.13.txt b/src/PackageArchive/Archive.CiServer.Patch.Compat/ArchiveBaseline.2.1.13.txt new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/src/PackageArchive/Archive.CiServer.Patch.Compat/ArchiveBaseline.2.1.13.txt @@ -0,0 +1 @@ + diff --git a/src/PackageArchive/Archive.CiServer.Patch/ArchiveBaseline.2.1.13.txt b/src/PackageArchive/Archive.CiServer.Patch/ArchiveBaseline.2.1.13.txt new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/src/PackageArchive/Archive.CiServer.Patch/ArchiveBaseline.2.1.13.txt @@ -0,0 +1 @@ + diff --git a/version.props b/version.props index e65ef23479..ed48958394 100644 --- a/version.props +++ b/version.props @@ -2,7 +2,7 @@ 2 1 - 13 + 14 servicing Servicing t000 From ff61a43031735f743da37b8619781079b222ce1d Mon Sep 17 00:00:00 2001 From: wtgodbe Date: Mon, 23 Sep 2019 16:06:43 -0700 Subject: [PATCH 002/111] Merge branches --- Directory.Build.props | 7 ++++++- packageIcon.png | Bin 0 -> 7006 bytes .../src/Microsoft.AspNetCore.Analyzers.csproj | 1 + .../src/Microsoft.AspNetCore.Analyzers.nuspec | 1 + .../src/Microsoft.AspNetCore.Blazor.Build.csproj | 1 + .../src/Microsoft.AspNetCore.Blazor.Build.nuspec | 1 + .../Microsoft.AspNetCore.Blazor.DevServer.csproj | 1 + .../Microsoft.AspNetCore.Blazor.DevServer.nuspec | 1 + .../Microsoft.AspNetCore.Blazor.Templates.csproj | 4 ++++ .../Microsoft.AspNetCore.Blazor.Templates.nuspec | 1 + .../src/Microsoft.AspNetCore.Components.csproj | 1 + ...soft.AspNetCore.Components.multitarget.nuspec | 1 + ...ft.AspNetCore.Components.netcoreapp3.0.nuspec | 1 + .../SharedFramework/SharedFramework.wixproj | 4 ++++ .../SharedFrameworkPackage.nuspec | 1 + .../Windows/TargetingPack/TargetingPack.wixproj | 4 ++++ .../TargetingPack/TargetingPackPackage.nuspec | 1 + .../Microsoft.AspNetCore.Mvc.Analyzers.csproj | 1 + .../Microsoft.AspNetCore.Mvc.Analyzers.nuspec | 1 + ...Microsoft.AspNetCore.Mvc.Api.Analyzers.csproj | 1 + ...Microsoft.AspNetCore.Mvc.Api.Analyzers.nuspec | 1 + src/ProjectTemplates/TemplateProjects.props | 4 ++++ src/ProjectTemplates/templates.nuspec | 1 + ...osoft.Extensions.ApiDescription.Client.csproj | 1 + ...osoft.Extensions.ApiDescription.Client.nuspec | 1 + ...osoft.Extensions.ApiDescription.Server.csproj | 1 + ...osoft.Extensions.ApiDescription.Server.nuspec | 1 + 27 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 packageIcon.png diff --git a/Directory.Build.props b/Directory.Build.props index 66e5b316b1..e1bf86d4e1 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -46,7 +46,8 @@ nugetaspnet@microsoft.com - https://go.microsoft.com/fwlink/?LinkID=288859 + packageIcon.png + $(MSBuildThisFileDirectory)packageIcon.png https://asp.net $(MSBuildProjectDirectory) @@ -55,6 +56,10 @@ netcoreapp$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion) + + + + true diff --git a/packageIcon.png b/packageIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..a0f1fdbf4d5eae0e561018cccee74f6a454cdb9c GIT binary patch literal 7006 zcmeHMXH-+`n%)#eMU;C)kZw7O2nvFLpcE@A^-u+AN(mh$UH*JD5Jjm{4}uUR zs5C(zdURn*zrcHqdVxK)P)7322TAMVbNR4HRzo3_~zdgjvf?Ot98@H{LHdy zK*)TM=g&B9f}+9IKfm=aF5e3_{PQJ$ zY4?9DHvtd+Y14o8TQs=)&+P)Wjb3|LIT@*NDqyYm#gu^q*EFSow<%yKVx`_Ka)!0 z2YAaQr%LYyQ%n$Rjx)e%JeM5_ov70FUMveJTS(J+%C4(L)~h*MQ8!wJtf_X{`Ol?k z;{27%#**2uiR&R6-eaRK1Mdgl2xHQ=uS(~VqsTVrsUnQhc zRIK5>@(05w3gHYdsI0;;sOO66pUEl)DGyD(D4>$7drUDFZ|uxx;-nWj7d|rj=u+D@ z-HU+mLOInrsXdSL1Z6nVB&D z@>f4!yq=_B+16+qw5k=4o#*tf;6Oe*F;`&L!)bT{U7Wc3YmG2;NRxb%woCt~*Yr2E zfwiUdS=7SK&5>df-aqY8lp~SEUG*ziXGvHMLp_#vgvVMQ*&{+d@(a>v4;7p_%Jte0Ga5zNbUI28WAgY5f?FX^;q`1WTw2~t|P54N&e^@=nFqDj}W#o z_-kZBWDQ%($YJH43Y7YrbjfsUrAEjla>?j0;YLdXxjK}P@xDGc%r&c)6`t?XW=*{r z%Z^p)?6*7obKU_;NZK_ejh9n&?qzO0#(}Uo+KSm|e}q1+f$wM!G8>lLvKK1UK^uz5 zDk&5(DuUnzQy{aQ8%b~*_4Ri`TOj}Dd{0OCls}^VD8=qDC%Q9tSSt5LZoxd!|ai3oGtf&cOy(`^W9zMNR;bII|OS+Pe(-9=f!m6}w zV>f(mH^BYE-=Wl=)Q2s2TF*j&tRkN0KOu3-(VN?4?-v|?W^Xj)@u4^bNB%bN+f|D= z?r1ey$UbahYv!qISaxV8>+1Mnz!M&S1o+~titx|65MA`iQMjscL!+LOGjZ?p>}x6d z4`FiZV9i-E6F8c|Fq37-TTTtJOdIZ9<*YrJU86UuQr6dipNC%AxT?lXa9U=`iq+2= zOT!CFUlJM1&INj~InR!=@x@{Z8BnvgL~_>nN)y@!r<0$uGCJ<0B-q!vZn@~#5^Ig8B}}g&dYBee=x50Wv$R^^f%aTE~g_a7&8Y(5L>! zkYgCl@1ZVqFSwkH(ns-EtYbOFLrarf#r6W9#x8rO<<_6h33faYV{<&_gBahO#ga9j z$|}=ea)vEm|Hb`E%L9Gn#Osxg( z&sxXz7lsse+_i@<_LUl@8$916h*m6!R?~zr_ZQU^H3F(aC1is#I$VP$GO(s!pT&Y# z85JYcwQqu6Ja6sje&x*)nOdx;bt1hNMTSwSikFeKE)+MRrW?mg=8mp^AR_kz{C%e* z32H_>c600^d$9)ob+$yzpyxHa+k0Sz7GG41I0A59bKJf?X}E6mX$pU~Wc%_?$2w1s zZEbk$svZ4U+WH;XPEb^-IqhGQX1U|z8KWp8&jVlWFPP+7Um6;oMy?>TFU`cMT5bYx z;7_~MfZ(sumPQHg++U)9PT=+=zxu+qmP==xJ&oI%XgD8=YZo%*rGq2U_J^D4d%7H`}jau-;<_^n?THcf9*rKD^J#%p%l zA8DILPr+wPY^MpxQbxGXG2f0xcjxSw;wjl53EsXe0poYHgfc(T;v5J;H$neUhElxe zrX0NdQ4e#4L4e-JmsN$%C+#BKX8TYA1YlhN`|QyqnlH{Igil*i0?NrD9qi2Fw_&~eMSk3UGyWzcay4oPaWE~nJ{R}-u+%oE z^4pk7G%~M66x6$a(@21!KD)Us1JG?!Xn4Zb;NYOn2SGc%JK!@mQv*PGMGxMb{#a4F z_#t!~GhhJR9)$w;fi20azFx86@7j4yB zpC7-bK<170rK@aOPg zDv69Iy;oMY0yq-ORy`~=Y8>ZQ_}+6m=ElBFD(BO@q9)h-K%)s9-^rh(;7T`vu={0p zCzf*G!~Iex?wWwWS?rOOYx{i!_Lh~OXJ7gYPR(bWfke`)l(GCjjtT06t7+0hHGHhh zA9y}JSM5#_xw|dqtlV?PVqZwGRm*pM)dvDj|LAzkF?4x}RLkCA#>G3V21ZLIt^gG< zQI&0O8}Rf;Def0;ZbweV+|x(R-?(Vnj5F9~eOT)4!nDr7Yq-5!y1bz1t;HjQSLn-A zt1qf%FzvKZ`+#!ufUYj;;FE!eL$>Pcse)qp0BW@>*U{2zo_CWHpgvHpnGofD&KYKY z+!}avbdRD^hZQf zU#$@f{W=^JvL7g)bcEZ<)O9tw4?Dxp&lksZ;$I_{?{l;o=>&}=tF-5MU&27^*rhJT zcd0DiLPxBSPJ<5cx}JGQAds^*(&j4-nHoTwx>dVUGJHkMM7w*nPbN5n_W)JJ zoSF~F)URWm1xS-QkhpAB(#}xq`0?;AQ=#^xj8iv{-*?l`8a;)kpuatAQXeVT+=;#A zT0rvGu`_`{>KMvxzgLkb$EeCy`RyvAx+nC!D381cssru;3nBjt{S>AGvQAs(kxLO{ zIp*xXImIAQJ>kiL&b~R(P_(nAu2z<~Dc*-_c3=C`sjCz@AZVOwgE5s@G#uy{iQNJ} z*pY1bjnx4K{yik#93ftw2}MI#Dt>w>)q5vp~-G zX7!=BUrYpB-3#04(mvmC$-Y!WY8${8gcraWB}q}i z(|PAS*SoXp)9`8tTYTuy7`=#uWFoR#J2(AVcxr-9uF+7kB$GxNkA$Vfoz}l40*Ydo zXReR;i`X4$Te~{&2?RE~^39WlS?>E>my@CS3|paiTe-zGjS$iwI*YbAHOwW*PD@wI z=Nl-L-*Y(4b+hX{-tb98arKb!Q^EK+RA0Lfp4`cv&x7o<`~ghNZ#@Z$`B6O*2R6%R z+kg>9tGG(TtYgVXWD_X)ySeq_3Tq2*GEPMlF@o;BBxfbxC%!xOuwUa+?wXac%Dce> z+d&$P_VsrSw*$bMY#z8~U%K$AIc8vOosw2D4`XdBe5NKVuc+s10x-cw)v;&2Yd`@# z6UL-Y1G;FY$G$?{@cwL6zaRL5p_lTzugeI5PB@eSk^x^LJ=N!qHsScr*=1fnx>1;L zY5eqB8dlecz6GSs<7{=#sl?FWEY66Ejk>f}1odw~P?}i0yH&4d%vKKZ@hTi7-IW8%;{(vI`&L;i z@`wN4O!SHFV&u%JzXt*g%E%4J$^z@6FOtA7Yc(*Rz2%_90Exxp+}r^Vb|pF?C;F8w zu&f+_Jsvg^Wp?I6!+uV$Bi#fzohClm^T{PdQzz%Nn}GENT0zaz{xqo+NWJ!QdLYKf zBHdX|LMnBh5jXZ;>OoAWv*rOX&O8Sbzjyl*y-%<2V2oE_*lEG(1GlpzBZ6aoOp%y8 ze&=uJp63A7*h}C9j-sY70bc4bHQr`@q#!@&!5LxUu`)c;-&WVK?$9+vP%D`7v^_`5 zrOcY7w(+sWUl!hkCI>q|qg_*OZ$os^0Fsg`di5ki_Tzr$8gh}#WNKHtX|hlAupfW6 zk_ZWVB&Hjb9ZbLk!Ie1lMyGd?qhgq8>{#iC>Kg^*taLx^YuW+VQG;}IK{6+Y@0i7& z6iRAQBlI8*LwK}P>x0;cL*en^{8^OvUg%KTXIa~~>xA%u_2)y{h_+YQ?tpDgX9rIe zOo3t5%oVK)PzXFaqN#F2^qJbgB3HzT`{nJcFO`#ATLWNBXfYU5CYHs&PnH^f*Wl6k z?<0KM*e@M?auAvtBi}A#6V#ej{yvSOE8v?4^Jb8y4~i{ zSIC{Kc9#!&HhKqJI9L>s*NbwiwWXI+w-X6TM}&3$PlPOE+G8HP8Hi(#UMtyKy= zLo(ZOb7qTQ^r{NHBg^h=C`gbboZigk0*;z5+XW@P;EzUwQZv5|SZ6W0tBbATVDt$& z4th!!{t_tBc>V9qZE^8&@=VbaMh;!ivCF~IC28PzN2Z{@`)H;y3+{?j%eQl6gP|I9 z-agi;Y>P($m>0yG48Z>=AC0W_h5((46THSuk)X||?u=A_N-{J)`M9Q^WnUMh84VTQ zIvQlFtG4Z5X~3!o0K!K+^E@{TZ;5W3XkNzy z*j?DZB4J)s(LK@K0K1T4u&xvPHDTX zs$=NfQalJo9RXF+0@j1~t~aK@*DAWgsI@Sl{8AP8%T`P`Vu~Tv_%ZmbJz^#V>NJZl-TbST^RMK5DlNOs$kegkbICLYRJk-}g{l-Wn^Vya`SL3T1tiIw^Z zm~h)cx+UimpKrqQ=$a*_BCrvMGi%5Nr5qU)hq|P1Tjp!gLgpIqRRIs`qsDGjcel*OH-c~&6W812bsUI z>umkx8_8Ottu&n?L`^t@;63h8!Nb19V4*G1v2?3e;$WrvvX7%#JaxH?R) zN@KLmgq3q$NONDrj=7c`8~kK5VTf>xS$Q2C8@T{(7ygTX1N^6hZ&3*F7Z@!5FaMz+ n@b3Qu^xx$8Uk}h2jH{d|uJ4jrSC|P(2)ca1@;v^m$K8JeR7TPQ literal 0 HcmV?d00001 diff --git a/src/Analyzers/Analyzers/src/Microsoft.AspNetCore.Analyzers.csproj b/src/Analyzers/Analyzers/src/Microsoft.AspNetCore.Analyzers.csproj index feec3324be..cc4201ca79 100644 --- a/src/Analyzers/Analyzers/src/Microsoft.AspNetCore.Analyzers.csproj +++ b/src/Analyzers/Analyzers/src/Microsoft.AspNetCore.Analyzers.csproj @@ -25,6 +25,7 @@ + diff --git a/src/Analyzers/Analyzers/src/Microsoft.AspNetCore.Analyzers.nuspec b/src/Analyzers/Analyzers/src/Microsoft.AspNetCore.Analyzers.nuspec index f906ece217..0780ae588d 100644 --- a/src/Analyzers/Analyzers/src/Microsoft.AspNetCore.Analyzers.nuspec +++ b/src/Analyzers/Analyzers/src/Microsoft.AspNetCore.Analyzers.nuspec @@ -7,5 +7,6 @@ + diff --git a/src/Components/Blazor/Build/src/Microsoft.AspNetCore.Blazor.Build.csproj b/src/Components/Blazor/Build/src/Microsoft.AspNetCore.Blazor.Build.csproj index adfa71ef6b..aa5a484bf5 100644 --- a/src/Components/Blazor/Build/src/Microsoft.AspNetCore.Blazor.Build.csproj +++ b/src/Components/Blazor/Build/src/Microsoft.AspNetCore.Blazor.Build.csproj @@ -23,6 +23,7 @@ + diff --git a/src/Components/Blazor/Build/src/Microsoft.AspNetCore.Blazor.Build.nuspec b/src/Components/Blazor/Build/src/Microsoft.AspNetCore.Blazor.Build.nuspec index ab73599f0b..56fee600d3 100644 --- a/src/Components/Blazor/Build/src/Microsoft.AspNetCore.Blazor.Build.nuspec +++ b/src/Components/Blazor/Build/src/Microsoft.AspNetCore.Blazor.Build.nuspec @@ -12,5 +12,6 @@ + diff --git a/src/Components/Blazor/DevServer/src/Microsoft.AspNetCore.Blazor.DevServer.csproj b/src/Components/Blazor/DevServer/src/Microsoft.AspNetCore.Blazor.DevServer.csproj index b12f55ef82..3862555a0e 100644 --- a/src/Components/Blazor/DevServer/src/Microsoft.AspNetCore.Blazor.DevServer.csproj +++ b/src/Components/Blazor/DevServer/src/Microsoft.AspNetCore.Blazor.DevServer.csproj @@ -33,6 +33,7 @@ + diff --git a/src/Components/Blazor/DevServer/src/Microsoft.AspNetCore.Blazor.DevServer.nuspec b/src/Components/Blazor/DevServer/src/Microsoft.AspNetCore.Blazor.DevServer.nuspec index 5142ba2080..48e4e8b238 100644 --- a/src/Components/Blazor/DevServer/src/Microsoft.AspNetCore.Blazor.DevServer.nuspec +++ b/src/Components/Blazor/DevServer/src/Microsoft.AspNetCore.Blazor.DevServer.nuspec @@ -7,5 +7,6 @@ + diff --git a/src/Components/Blazor/Templates/src/Microsoft.AspNetCore.Blazor.Templates.csproj b/src/Components/Blazor/Templates/src/Microsoft.AspNetCore.Blazor.Templates.csproj index c91a32128d..640d8f21d0 100644 --- a/src/Components/Blazor/Templates/src/Microsoft.AspNetCore.Blazor.Templates.csproj +++ b/src/Components/Blazor/Templates/src/Microsoft.AspNetCore.Blazor.Templates.csproj @@ -15,6 +15,10 @@ false + + + + diff --git a/src/Components/Blazor/Templates/src/Microsoft.AspNetCore.Blazor.Templates.nuspec b/src/Components/Blazor/Templates/src/Microsoft.AspNetCore.Blazor.Templates.nuspec index 70b93d7253..babb09b520 100644 --- a/src/Components/Blazor/Templates/src/Microsoft.AspNetCore.Blazor.Templates.nuspec +++ b/src/Components/Blazor/Templates/src/Microsoft.AspNetCore.Blazor.Templates.nuspec @@ -11,5 +11,6 @@ src="content/**" exclude="**/bin/**;**/obj/**;**/.template.config.src/**;content/Directory.Build.props;content/Directory.Build.targets;" target="Content" /> + diff --git a/src/Components/Components/src/Microsoft.AspNetCore.Components.csproj b/src/Components/Components/src/Microsoft.AspNetCore.Components.csproj index a7ad3493c9..8d5bf5328e 100644 --- a/src/Components/Components/src/Microsoft.AspNetCore.Components.csproj +++ b/src/Components/Components/src/Microsoft.AspNetCore.Components.csproj @@ -48,6 +48,7 @@ + diff --git a/src/Components/Components/src/Microsoft.AspNetCore.Components.multitarget.nuspec b/src/Components/Components/src/Microsoft.AspNetCore.Components.multitarget.nuspec index 6324ea3136..14934a1d76 100644 --- a/src/Components/Components/src/Microsoft.AspNetCore.Components.multitarget.nuspec +++ b/src/Components/Components/src/Microsoft.AspNetCore.Components.multitarget.nuspec @@ -20,6 +20,7 @@ + diff --git a/src/Components/Components/src/Microsoft.AspNetCore.Components.netcoreapp3.0.nuspec b/src/Components/Components/src/Microsoft.AspNetCore.Components.netcoreapp3.0.nuspec index 8dec24f270..615d24fbdc 100644 --- a/src/Components/Components/src/Microsoft.AspNetCore.Components.netcoreapp3.0.nuspec +++ b/src/Components/Components/src/Microsoft.AspNetCore.Components.netcoreapp3.0.nuspec @@ -14,6 +14,7 @@ + diff --git a/src/Installers/Windows/SharedFramework/SharedFramework.wixproj b/src/Installers/Windows/SharedFramework/SharedFramework.wixproj index 4752953ec2..afb754e2dd 100644 --- a/src/Installers/Windows/SharedFramework/SharedFramework.wixproj +++ b/src/Installers/Windows/SharedFramework/SharedFramework.wixproj @@ -24,6 +24,10 @@ $(RepoRoot)\src\Installers\Windows\SharedFramework\SharedFrameworkPackage.nuspec + + + + $(WixExtDir)\WixDependencyExtension.dll diff --git a/src/Installers/Windows/SharedFramework/SharedFrameworkPackage.nuspec b/src/Installers/Windows/SharedFramework/SharedFrameworkPackage.nuspec index b5b8c43d9e..ecbdf5d60c 100644 --- a/src/Installers/Windows/SharedFramework/SharedFrameworkPackage.nuspec +++ b/src/Installers/Windows/SharedFramework/SharedFrameworkPackage.nuspec @@ -15,5 +15,6 @@ + diff --git a/src/Installers/Windows/TargetingPack/TargetingPack.wixproj b/src/Installers/Windows/TargetingPack/TargetingPack.wixproj index d8b2b051af..80065cb692 100644 --- a/src/Installers/Windows/TargetingPack/TargetingPack.wixproj +++ b/src/Installers/Windows/TargetingPack/TargetingPack.wixproj @@ -22,6 +22,10 @@ $(RepoRoot)\src\Installers\Windows\TargetingPack\TargetingPackPackage.nuspec + + + + $(WixExtDir)\WixDependencyExtension.dll diff --git a/src/Installers/Windows/TargetingPack/TargetingPackPackage.nuspec b/src/Installers/Windows/TargetingPack/TargetingPackPackage.nuspec index d5ef9a2069..10301e289f 100644 --- a/src/Installers/Windows/TargetingPack/TargetingPackPackage.nuspec +++ b/src/Installers/Windows/TargetingPack/TargetingPackPackage.nuspec @@ -14,5 +14,6 @@ + diff --git a/src/Mvc/Mvc.Analyzers/src/Microsoft.AspNetCore.Mvc.Analyzers.csproj b/src/Mvc/Mvc.Analyzers/src/Microsoft.AspNetCore.Mvc.Analyzers.csproj index 2ece75d8d8..b098c7cad2 100644 --- a/src/Mvc/Mvc.Analyzers/src/Microsoft.AspNetCore.Mvc.Analyzers.csproj +++ b/src/Mvc/Mvc.Analyzers/src/Microsoft.AspNetCore.Mvc.Analyzers.csproj @@ -19,6 +19,7 @@ + diff --git a/src/Mvc/Mvc.Analyzers/src/Microsoft.AspNetCore.Mvc.Analyzers.nuspec b/src/Mvc/Mvc.Analyzers/src/Microsoft.AspNetCore.Mvc.Analyzers.nuspec index f906ece217..0780ae588d 100644 --- a/src/Mvc/Mvc.Analyzers/src/Microsoft.AspNetCore.Mvc.Analyzers.nuspec +++ b/src/Mvc/Mvc.Analyzers/src/Microsoft.AspNetCore.Mvc.Analyzers.nuspec @@ -7,5 +7,6 @@ + diff --git a/src/Mvc/Mvc.Api.Analyzers/src/Microsoft.AspNetCore.Mvc.Api.Analyzers.csproj b/src/Mvc/Mvc.Api.Analyzers/src/Microsoft.AspNetCore.Mvc.Api.Analyzers.csproj index d3a6e138f1..0ae605cb69 100644 --- a/src/Mvc/Mvc.Api.Analyzers/src/Microsoft.AspNetCore.Mvc.Api.Analyzers.csproj +++ b/src/Mvc/Mvc.Api.Analyzers/src/Microsoft.AspNetCore.Mvc.Api.Analyzers.csproj @@ -24,6 +24,7 @@ + diff --git a/src/Mvc/Mvc.Api.Analyzers/src/Microsoft.AspNetCore.Mvc.Api.Analyzers.nuspec b/src/Mvc/Mvc.Api.Analyzers/src/Microsoft.AspNetCore.Mvc.Api.Analyzers.nuspec index f906ece217..0780ae588d 100644 --- a/src/Mvc/Mvc.Api.Analyzers/src/Microsoft.AspNetCore.Mvc.Api.Analyzers.nuspec +++ b/src/Mvc/Mvc.Api.Analyzers/src/Microsoft.AspNetCore.Mvc.Api.Analyzers.nuspec @@ -7,5 +7,6 @@ + diff --git a/src/ProjectTemplates/TemplateProjects.props b/src/ProjectTemplates/TemplateProjects.props index 8cfab01c93..fd6dc06fe4 100644 --- a/src/ProjectTemplates/TemplateProjects.props +++ b/src/ProjectTemplates/TemplateProjects.props @@ -21,4 +21,8 @@ + + + + diff --git a/src/ProjectTemplates/templates.nuspec b/src/ProjectTemplates/templates.nuspec index 8e85ee528c..f603e4757c 100644 --- a/src/ProjectTemplates/templates.nuspec +++ b/src/ProjectTemplates/templates.nuspec @@ -11,5 +11,6 @@ src="content/**" exclude="**/node_modules/**;**/bin/**;**/obj/**;**/.vs/**;**/.vscode/**;**/ClientApp/dist/**;**/wwwroot/dist/**;content/Directory.Build.*" target="" /> + diff --git a/src/Tools/Extensions.ApiDescription.Client/src/Microsoft.Extensions.ApiDescription.Client.csproj b/src/Tools/Extensions.ApiDescription.Client/src/Microsoft.Extensions.ApiDescription.Client.csproj index c50a0115fa..cef31805db 100644 --- a/src/Tools/Extensions.ApiDescription.Client/src/Microsoft.Extensions.ApiDescription.Client.csproj +++ b/src/Tools/Extensions.ApiDescription.Client/src/Microsoft.Extensions.ApiDescription.Client.csproj @@ -21,5 +21,6 @@ + diff --git a/src/Tools/Extensions.ApiDescription.Client/src/Microsoft.Extensions.ApiDescription.Client.nuspec b/src/Tools/Extensions.ApiDescription.Client/src/Microsoft.Extensions.ApiDescription.Client.nuspec index 23d654d168..20e8384e0c 100644 --- a/src/Tools/Extensions.ApiDescription.Client/src/Microsoft.Extensions.ApiDescription.Client.nuspec +++ b/src/Tools/Extensions.ApiDescription.Client/src/Microsoft.Extensions.ApiDescription.Client.nuspec @@ -8,5 +8,6 @@ + diff --git a/src/Tools/Extensions.ApiDescription.Server/src/Microsoft.Extensions.ApiDescription.Server.csproj b/src/Tools/Extensions.ApiDescription.Server/src/Microsoft.Extensions.ApiDescription.Server.csproj index e0d39cff01..c4c5f3aa7f 100644 --- a/src/Tools/Extensions.ApiDescription.Server/src/Microsoft.Extensions.ApiDescription.Server.csproj +++ b/src/Tools/Extensions.ApiDescription.Server/src/Microsoft.Extensions.ApiDescription.Server.csproj @@ -30,6 +30,7 @@ + diff --git a/src/Tools/Extensions.ApiDescription.Server/src/Microsoft.Extensions.ApiDescription.Server.nuspec b/src/Tools/Extensions.ApiDescription.Server/src/Microsoft.Extensions.ApiDescription.Server.nuspec index 2ffc3b4f87..7fe0e38e93 100644 --- a/src/Tools/Extensions.ApiDescription.Server/src/Microsoft.Extensions.ApiDescription.Server.nuspec +++ b/src/Tools/Extensions.ApiDescription.Server/src/Microsoft.Extensions.ApiDescription.Server.nuspec @@ -11,5 +11,6 @@ + From 8c49f8937dfa60a10bad4b327b9a3de57a0527ef Mon Sep 17 00:00:00 2001 From: wtgodbe Date: Tue, 24 Sep 2019 13:31:51 -0700 Subject: [PATCH 003/111] Add icon metadata to manually generated .nuspecs --- .../Analyzers/src/Microsoft.AspNetCore.Analyzers.nuspec | 1 + .../Blazor/Build/src/Microsoft.AspNetCore.Blazor.Build.nuspec | 1 + .../DevServer/src/Microsoft.AspNetCore.Blazor.DevServer.nuspec | 1 + .../Templates/src/Microsoft.AspNetCore.Blazor.Templates.nuspec | 1 + .../src/Microsoft.AspNetCore.Components.multitarget.nuspec | 1 + .../src/Microsoft.AspNetCore.Components.netcoreapp3.0.nuspec | 1 + .../Windows/SharedFramework/SharedFrameworkPackage.nuspec | 1 + src/Installers/Windows/TargetingPack/TargetingPackPackage.nuspec | 1 + .../Mvc.Analyzers/src/Microsoft.AspNetCore.Mvc.Analyzers.nuspec | 1 + .../src/Microsoft.AspNetCore.Mvc.Api.Analyzers.nuspec | 1 + src/ProjectTemplates/templates.nuspec | 1 + .../src/Microsoft.Extensions.ApiDescription.Client.nuspec | 1 + .../src/Microsoft.Extensions.ApiDescription.Server.nuspec | 1 + 13 files changed, 13 insertions(+) diff --git a/src/Analyzers/Analyzers/src/Microsoft.AspNetCore.Analyzers.nuspec b/src/Analyzers/Analyzers/src/Microsoft.AspNetCore.Analyzers.nuspec index 0780ae588d..106615a7da 100644 --- a/src/Analyzers/Analyzers/src/Microsoft.AspNetCore.Analyzers.nuspec +++ b/src/Analyzers/Analyzers/src/Microsoft.AspNetCore.Analyzers.nuspec @@ -2,6 +2,7 @@ $CommonMetadataElements$ + packageIcon.png diff --git a/src/Components/Blazor/Build/src/Microsoft.AspNetCore.Blazor.Build.nuspec b/src/Components/Blazor/Build/src/Microsoft.AspNetCore.Blazor.Build.nuspec index 56fee600d3..feffe95c50 100644 --- a/src/Components/Blazor/Build/src/Microsoft.AspNetCore.Blazor.Build.nuspec +++ b/src/Components/Blazor/Build/src/Microsoft.AspNetCore.Blazor.Build.nuspec @@ -5,6 +5,7 @@ + packageIcon.png diff --git a/src/Components/Blazor/DevServer/src/Microsoft.AspNetCore.Blazor.DevServer.nuspec b/src/Components/Blazor/DevServer/src/Microsoft.AspNetCore.Blazor.DevServer.nuspec index 48e4e8b238..b59725fc14 100644 --- a/src/Components/Blazor/DevServer/src/Microsoft.AspNetCore.Blazor.DevServer.nuspec +++ b/src/Components/Blazor/DevServer/src/Microsoft.AspNetCore.Blazor.DevServer.nuspec @@ -2,6 +2,7 @@ $CommonMetadataElements$ + packageIcon.png diff --git a/src/Components/Blazor/Templates/src/Microsoft.AspNetCore.Blazor.Templates.nuspec b/src/Components/Blazor/Templates/src/Microsoft.AspNetCore.Blazor.Templates.nuspec index babb09b520..cde7bc4c1f 100644 --- a/src/Components/Blazor/Templates/src/Microsoft.AspNetCore.Blazor.Templates.nuspec +++ b/src/Components/Blazor/Templates/src/Microsoft.AspNetCore.Blazor.Templates.nuspec @@ -5,6 +5,7 @@ + packageIcon.png + packageIcon.png diff --git a/src/Components/Components/src/Microsoft.AspNetCore.Components.netcoreapp3.0.nuspec b/src/Components/Components/src/Microsoft.AspNetCore.Components.netcoreapp3.0.nuspec index 615d24fbdc..d218582bba 100644 --- a/src/Components/Components/src/Microsoft.AspNetCore.Components.netcoreapp3.0.nuspec +++ b/src/Components/Components/src/Microsoft.AspNetCore.Components.netcoreapp3.0.nuspec @@ -9,6 +9,7 @@ + packageIcon.png diff --git a/src/Installers/Windows/SharedFramework/SharedFrameworkPackage.nuspec b/src/Installers/Windows/SharedFramework/SharedFrameworkPackage.nuspec index ecbdf5d60c..e0deb1cb9f 100644 --- a/src/Installers/Windows/SharedFramework/SharedFrameworkPackage.nuspec +++ b/src/Installers/Windows/SharedFramework/SharedFrameworkPackage.nuspec @@ -8,6 +8,7 @@ Microsoft https://www.microsoft.com/net/dotnet_library_license.htm https://github.com/aspnet/aspnetcore + packageIcon.png true $MAJOR$.$MINOR$ ASP.NET Core TargetingPack ($ARCH$) Windows Installer MSI as a .nupkg for internal Visual Studio build consumption © Microsoft Corporation. All rights reserved. diff --git a/src/Installers/Windows/TargetingPack/TargetingPackPackage.nuspec b/src/Installers/Windows/TargetingPack/TargetingPackPackage.nuspec index 10301e289f..c1b74d2689 100644 --- a/src/Installers/Windows/TargetingPack/TargetingPackPackage.nuspec +++ b/src/Installers/Windows/TargetingPack/TargetingPackPackage.nuspec @@ -8,6 +8,7 @@ Microsoft https://www.microsoft.com/net/dotnet_library_license.htm https://github.com/aspnet/aspnetcore + packageIcon.png true $MAJOR$.$MINOR$ ASP.NET Core TargetingPack ($ARCH$) Windows Installer MSI as a .nupkg for internal Visual Studio build consumption © Microsoft Corporation. All rights reserved. diff --git a/src/Mvc/Mvc.Analyzers/src/Microsoft.AspNetCore.Mvc.Analyzers.nuspec b/src/Mvc/Mvc.Analyzers/src/Microsoft.AspNetCore.Mvc.Analyzers.nuspec index 0780ae588d..106615a7da 100644 --- a/src/Mvc/Mvc.Analyzers/src/Microsoft.AspNetCore.Mvc.Analyzers.nuspec +++ b/src/Mvc/Mvc.Analyzers/src/Microsoft.AspNetCore.Mvc.Analyzers.nuspec @@ -2,6 +2,7 @@ $CommonMetadataElements$ + packageIcon.png diff --git a/src/Mvc/Mvc.Api.Analyzers/src/Microsoft.AspNetCore.Mvc.Api.Analyzers.nuspec b/src/Mvc/Mvc.Api.Analyzers/src/Microsoft.AspNetCore.Mvc.Api.Analyzers.nuspec index 0780ae588d..106615a7da 100644 --- a/src/Mvc/Mvc.Api.Analyzers/src/Microsoft.AspNetCore.Mvc.Api.Analyzers.nuspec +++ b/src/Mvc/Mvc.Api.Analyzers/src/Microsoft.AspNetCore.Mvc.Api.Analyzers.nuspec @@ -2,6 +2,7 @@ $CommonMetadataElements$ + packageIcon.png diff --git a/src/ProjectTemplates/templates.nuspec b/src/ProjectTemplates/templates.nuspec index f603e4757c..49a1d320ec 100644 --- a/src/ProjectTemplates/templates.nuspec +++ b/src/ProjectTemplates/templates.nuspec @@ -5,6 +5,7 @@ + packageIcon.png $CommonMetadataElements$ + packageIcon.png diff --git a/src/Tools/Extensions.ApiDescription.Server/src/Microsoft.Extensions.ApiDescription.Server.nuspec b/src/Tools/Extensions.ApiDescription.Server/src/Microsoft.Extensions.ApiDescription.Server.nuspec index 7fe0e38e93..2839a1d0b2 100644 --- a/src/Tools/Extensions.ApiDescription.Server/src/Microsoft.Extensions.ApiDescription.Server.nuspec +++ b/src/Tools/Extensions.ApiDescription.Server/src/Microsoft.Extensions.ApiDescription.Server.nuspec @@ -2,6 +2,7 @@ $CommonMetadataElements$ + packageIcon.png From 4e72e6692ad6cecf6e2e5e2218b250bd663c4bd1 Mon Sep 17 00:00:00 2001 From: wtgodbe Date: Tue, 24 Sep 2019 15:59:26 -0700 Subject: [PATCH 004/111] Update to GA SDK --- global.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global.json b/global.json index dcba24801f..80ff5760c4 100644 --- a/global.json +++ b/global.json @@ -1,9 +1,9 @@ { "sdk": { - "version": "3.0.100-preview8-013656" + "version": "3.0.100" }, "tools": { - "dotnet": "3.0.100-preview8-013656", + "dotnet": "3.0.100", "runtimes": { "dotnet/x64": [ "$(MicrosoftNETCoreAppRuntimeVersion)" From 73ffb2d975f1f0faad0badba6db3c8f1620b4884 Mon Sep 17 00:00:00 2001 From: wtgodbe Date: Tue, 24 Sep 2019 15:51:17 -0700 Subject: [PATCH 005/111] Update package baseline --- eng/Baseline.Designer.props | 1545 +++++------------ eng/Baseline.xml | 219 +-- .../BaselineGenerator.csproj | 2 +- 3 files changed, 540 insertions(+), 1226 deletions(-) diff --git a/eng/Baseline.Designer.props b/eng/Baseline.Designer.props index 0b3cfa0c07..1e28129d00 100644 --- a/eng/Baseline.Designer.props +++ b/eng/Baseline.Designer.props @@ -2,1333 +2,694 @@ $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - 2.2.7 + 3.0.0 - - - 2.2.0 + + + 3.0.0 + + + + 3.0.0 + + - 2.2.0 + 3.0.0 - - - 2.2.0 - - - - 2.2.0 - - - - 2.2.0 - - - - - - - - - 2.2.0-preview-35687 + 3.0.0 - - - - - - - - + + + + + + + + + + - - - 2.2.0 + + + 3.0.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2.2.7 - - - - - 2.2.7 - - - - - 2.2.0 - - - - - - - 2.2.0 + 3.0.0 - - - - - + + + - 2.2.0 + 3.0.0 - - - - - + + + - - - 2.2.0 + + + 3.0.0 - - - - - - 2.2.0 - - - - - - + - 2.2.0 + 3.0.0 - - - + - 2.2.2 + 3.0.0 - - - + - 2.2.0 + 3.0.0 - - - + + - 2.2.0 + 3.0.0 - - - - - - 2.2.0 + + + + 3.0.0 - - - + + - 2.2.0 + 3.0.0 - - - + + - 2.2.0 + 3.0.0 - - - + - 2.2.0 + 3.0.0 - - - - - - - - 2.2.0 - - - - - - - - - - - - - 2.2.0 - - - - + + + - 2.2.0 + 3.0.0 + + + + + - - + + + - 2.2.5 + 3.0.0 - - - + + + - - - - - - - + + + 3.0.0 + + + - 2.2.5 + 3.0.0 - - - + + + + + + 3.0.0-preview9.19465.2 + + + + + + + + + 3.0.0-preview9.19465.2 + + + + + + + 3.0.0-preview9.19465.2 + + + + 3.0.0-preview9.19465.2 + + + + + + + 3.0.0-preview9.19465.2 + + + + + + + + + + 3.0.0-preview9.19465.2 + + + + 3.0.0 + + + + + + + + + + + + + + + 3.0.0 + + + + 3.0.0 + + + + + + + + + + + + 3.0.0 + + + + + + + + + + + 3.0.0 + + + + + + + + + + + + + + + + 3.0.0 + + + + - 2.2.0 + 3.0.0 + + + + - - + + + - - - 2.2.0 - - - - - - - - - 2.2.0 - - - - - - - + + + - 2.2.0 + 3.0.0 - 2.2.0 + 3.0.0 - + - + + + + + 3.0.0 + + + + + + + + + + + + + + + + + + + + + - 2.2.0 + 3.0.0 - 2.2.0 + 3.0.0 - + - 2.2.7 + 3.0.0 - + + - - 2.2.0 + 3.0.0 - - - + + + - 2.2.0 + 3.0.0 + + + + - - + + - 2.2.5 + 3.0.0 - + - - - 2.2.0 - - - - - - - - 2.2.0 - - - - - - - - - - - - - - - 2.2.0 - - - 2.2.1 + 3.0.0 - - - + + - - - 2.2.0 + + + 3.0.0 - - - - - - - - - 2.2.0 - - - - - - - - - - - - - - - 2.2.0 - - - - - - - - - - 2.2.0 - - - - - - - - - 2.2.0 - - - - + + + - 2.2.0 + 3.0.0 - - - - - - - - - - 2.2.7 - - - - - - - - - - - - - - - - - - - 2.2.0 - - - - - - - 2.2.0 - - - - + + - 1.1.0 + 3.0.0 - - - - - - + + + + + + + + - 1.1.0 + 3.0.0 + + + - - - - - - - 1.1.0 - - - - - - - - - - - - - - - - - - - - - - - - 2.2.0 - - - - - - + + - 2.2.0 + 3.0.0 + + + + - - - - - 2.2.2 - - - - - - - - - - - 2.2.0 - - - - - - - - - 2.2.0 - - - - - - - + + - 2.2.0 + 3.0.0 - - - - + + + + + + + - 2.2.0 + 3.0.0 - - - - - - - + + + + + + + - 2.2.5 + 3.0.0 - - - - - - - - - - 2.2.0 - - - - - - + + + + - 2.2.0 + 3.0.0 - - + + - - - 2.2.0 + + + 3.0.0 - - - - - - - 2.2.0 - - - - - - - + - 2.2.0 + 3.0.0 - - - - + + - - - 2.2.0 + + + 3.0.0 - - - + + + + - - - 2.2.0 + + + 3.0.0 - - - - 2.2.6 - - - - - 2.2.0 - - - - - - - 2.2.5 - - - - - - - - - - - - - - - - - - - - - 2.2.0 - - - - - - - - 2.2.0 - - - - - - - - - 2.2.0 - - - - - - - - 2.2.0 - - - - - - - 2.2.0 - - - - - - - - - - 2.2.0 - - - - - - - - - - - - 2.2.0 - - - - - - - - - - - - - - - - - - - - - - - 2.2.5 - - - - - - - 2.2.0 - - - - - - - - + + + + - 2.2.0 + 3.0.0 - - - - - - - 2.2.0 - - - - - - - - - - - - - - 2.2.0 - - - - - - - - - - - - - - - + + + + - 2.2.0 + 3.0.0 - - - - + + + - 2.2.0 + 3.0.0 - - - - - - 2.2.0 - - - - - 2.2.0 - - - - - - 2.2.0 - - - - - - - - 2.2.0 - - - - - - - 2.2.0 - - - - - - - 2.2.0 - - - - - - - - - - - 2.2.0 - - - - - - - - - - - - - - - - - - - 2.2.0 - - - - - - - - - - - - 2.2.0 - - - - - - - 2.2.2 - - - - - - - - - - - - - - - - - - 2.2.6 - - - - - - - - - - - 2.2.6 - - - - - - - - - - - 2.2.1 - - - - - - - - - - - - - - - - - - - 2.2.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2.2.0 - - - - - - - - - - - - 2.2.0 - - - - + - 2.2.0 + 3.0.0 - - + + - - - - - - - 2.2.1 - - - - - - - - - - - - - - 2.2.0 - - - - - - - - - - 2.2.0 - - - - - - - - - - - 1.1.0 - - - - - - - + + - 1.1.0 + 3.0.0 - - + + + + + + 3.0.0 + + + + + + + + + + + + + + + - 1.1.0 + 3.0.0 - - - - - + + + - - - - - - - - 1.1.0 - - - - - - - - - + + + - 1.1.0 + 3.0.0 + + + - - + - 1.1.5 + 3.0.0 + - - - - 1.1.5 + + + 3.0.0 - - - - - + + + - 1.1.0 + 3.0.0 - - - - - - - - - - - - - + + + + + + + - 1.1.5 + 3.0.0 - + - - + - - - 1.1.0 - - - - - - - - 2.2.0 - - - - - - - - 2.2.7 + 3.0.0 - - - - + + - - - 2.2.0 + + + 3.0.0 - - - - - - + + + - 2.2.0 + 3.0.0 - - - + + - - - 2.2.1 + + + 3.0.0 - - - - - - - - - 2.2.0 + + + 3.0.0 - - - - - - - 2.2.0 + + + 3.0.0 - - - - - - - - - - - - - - - - - - - - - - - 2.2.0 + + + 3.0.0 + + + + 3.0.0 + + + + 3.0.0 + + + + 3.0.0 - - - - - - - - - - - - 2.2.0 + 3.0.0 - - - - + + + + - 2.2.0 + 3.0.0 + + + + + - - - - + + + - 2.2.0 + 3.0.0 + + + + - - - - - - - 2.2.0 - - - - - - - - 2.2.0 - - - - - - 2.2.0 - - - - + + \ No newline at end of file diff --git a/eng/Baseline.xml b/eng/Baseline.xml index b541b834a2..52cbb358f4 100644 --- a/eng/Baseline.xml +++ b/eng/Baseline.xml @@ -1,138 +1,91 @@  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eng/tools/BaselineGenerator/BaselineGenerator.csproj b/eng/tools/BaselineGenerator/BaselineGenerator.csproj index 79fd9175cf..6bf2e6e67d 100644 --- a/eng/tools/BaselineGenerator/BaselineGenerator.csproj +++ b/eng/tools/BaselineGenerator/BaselineGenerator.csproj @@ -3,7 +3,7 @@ Exe netcoreapp3.0 - -s https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json + -s https://api.nuget.org/v3/index.json $(MSBuildThisFileDirectory)../../ From c97484217fbef9ec44dbf2a2cf4042d33855f00e Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Tue, 24 Sep 2019 17:21:49 -0700 Subject: [PATCH 006/111] Update branding to 3.0.1 - aspnet/AspNetCore-Internal#3153 --- Directory.Build.targets | 6 +++++ eng/PatchConfig.props | 55 +---------------------------------------- eng/Versions.props | 9 +++---- 3 files changed, 11 insertions(+), 59 deletions(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index c31b6f65b6..67e287d0c7 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -59,6 +59,12 @@ + + true $(PackagesInPatch.Contains(' $(PackageId);')) diff --git a/eng/PatchConfig.props b/eng/PatchConfig.props index 2c26521f8c..b8b76f7355 100644 --- a/eng/PatchConfig.props +++ b/eng/PatchConfig.props @@ -4,8 +4,8 @@ This file contains a list of the package IDs which are patching in a given relea CAUTION: due to limitations in MSBuild, the format of the PackagesInPatch property is picky. When adding a new package, make sure the new line ends with a semicolon and starts with a space. -Later on, this will be checked using this condition: +Directory.Build.props checks this property using the following condition: $(PackagesInPatch.Contains(' $(PackageId);')) --> @@ -17,57 +17,4 @@ Later on, this will be checked using this condition: - - - @aspnet/signalr; - Microsoft.AspNetCore.AspNetCoreModuleV2; - Microsoft.AspNetCore.Authentication.Google; - Microsoft.AspNetCore.Http; - Microsoft.AspNetCore.Mvc.Core; - Microsoft.AspNetCore.Routing; - Microsoft.AspNetCore.Server.IIS; - java:signalr; - - - - - @aspnet/signalr; - Microsoft.AspNetCore.AspNetCoreModuleV2; - - - - - Microsoft.AspNetCore.AspNetCoreModule; - Microsoft.AspNetCore.AspNetCoreModuleV2; - Microsoft.AspNetCore.Identity.UI; - java:signalr; - Microsoft.AspNetCore.SignalR.Protocols.MessagePack; - Microsoft.AspNetCore.SignalR.Redis; - Microsoft.AspNetCore.SignalR.StackExchangeRedis; - Microsoft.AspNetCore.DataProtection.StackExchangeRedis; - Microsoft.AspNetCore.Mvc.Core; - Microsoft.AspNetCore.Mvc.RazorPages; - Microsoft.AspNetCore.AzureAppServicesIntegration; - Microsoft.AspNetCore.AzureAppServices.HostingStartup; - Microsoft.AspNetCore.AzureAppServices.SiteExtension; - - - - - Microsoft.AspNetCore.Mvc.Api.Analyzers; - Microsoft.AspNetCore.Server.HttpSys; - Microsoft.AspNetCore.Server.IIS; - - - - - Microsoft.AspNetCore.DataProtection.AzureStorage; - Microsoft.AspNetCore.Hosting; - Microsoft.AspNetCore.SpaServices; - - - - - - diff --git a/eng/Versions.props b/eng/Versions.props index 023598352f..23496f30b2 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -8,19 +8,18 @@ 3 0 - 0 - 2 + 1 - true + false release true false - rc$(PreReleasePreviewNumber) - Release Candidate $(PreReleasePreviewNumber) + servicing + Servicing 9 preview$(BlazorClientPreReleasePreviewNumber) From fcad3da55816ac4c9c94ad8e5f62196dec518c2f Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Tue, 24 Sep 2019 19:28:40 -0700 Subject: [PATCH 007/111] Disable up-to-date check of package baselines --- eng/targets/Packaging.targets | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/eng/targets/Packaging.targets b/eng/targets/Packaging.targets index fdef1de7a3..2d738a8cab 100644 --- a/eng/targets/Packaging.targets +++ b/eng/targets/Packaging.targets @@ -1,7 +1,11 @@ + From 8bfb2a77bfa68b1df79c7aa191023d3157e01fa1 Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Tue, 24 Sep 2019 20:04:57 -0700 Subject: [PATCH 008/111] Correct and centralize a couple of conditions - add `$(IgnorePackageBaselines)` property --- Directory.Build.targets | 6 +++--- eng/Versions.props | 5 +++++ eng/targets/Packaging.targets | 6 +----- eng/targets/ResolveReferences.targets | 3 ++- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index 67e287d0c7..89f3cb733c 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -60,11 +60,11 @@ true + Condition="'$(IsPackageInThisPatch)' == '' AND '$(StabilizePackageVersion)' != 'true'">true $(PackagesInPatch.Contains(' $(PackageId);')) diff --git a/eng/Versions.props b/eng/Versions.props index 23496f30b2..5aa6860892 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -26,6 +26,11 @@ $(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion) false + + true true $(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).$(AspNetCorePatchVersion) diff --git a/eng/targets/Packaging.targets b/eng/targets/Packaging.targets index 2d738a8cab..0d31c13ea6 100644 --- a/eng/targets/Packaging.targets +++ b/eng/targets/Packaging.targets @@ -1,11 +1,7 @@ - diff --git a/eng/targets/ResolveReferences.targets b/eng/targets/ResolveReferences.targets index 263edf3eaa..1000b4a1ff 100644 --- a/eng/targets/ResolveReferences.targets +++ b/eng/targets/ResolveReferences.targets @@ -45,7 +45,8 @@ * 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. --> - true + true + true true false From 2d9d13aa38af185612848fe88bd9da8fefd5e73d Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Wed, 25 Sep 2019 15:12:51 -0700 Subject: [PATCH 009/111] Further centralize choice to opt out of servicing features for now - no changes in known frameworks, targeting pack features, et cetera --- Directory.Build.targets | 9 ++------- eng/Versions.props | 10 ++++++---- eng/targets/Packaging.targets | 2 +- eng/targets/ResolveReferences.targets | 4 ++-- 4 files changed, 11 insertions(+), 14 deletions(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index 89f3cb733c..0bbb16aa49 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -58,13 +58,8 @@ - - - true + $(PackagesInPatch.Contains(' $(PackageId);')) diff --git a/eng/Versions.props b/eng/Versions.props index 5aa6860892..a0c39b7f4e 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -27,12 +27,14 @@ false - true + true - true + true $(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).$(AspNetCorePatchVersion) $(VersionPrefix) diff --git a/eng/targets/Packaging.targets b/eng/targets/Packaging.targets index 0d31c13ea6..fdef1de7a3 100644 --- a/eng/targets/Packaging.targets +++ b/eng/targets/Packaging.targets @@ -1,7 +1,7 @@ diff --git a/eng/targets/ResolveReferences.targets b/eng/targets/ResolveReferences.targets index 1000b4a1ff..3471b276f3 100644 --- a/eng/targets/ResolveReferences.targets +++ b/eng/targets/ResolveReferences.targets @@ -36,7 +36,8 @@ --> true true - true + true false - true true true false From f20a4143de1877d0a98c0d831480e6d9ca6b1d4a Mon Sep 17 00:00:00 2001 From: wtgodbe Date: Wed, 25 Sep 2019 15:55:47 -0700 Subject: [PATCH 010/111] Update to stable SDK in source build --- .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 ca0ef63a15..01b3300006 100644 --- a/.azure/pipelines/ci.yml +++ b/.azure/pipelines/ci.yml @@ -535,7 +535,7 @@ stages: # For the purpose of building Linux distros, we can't depend on features of the SDK # which may not exist in pre-built versions of the SDK # Pinning to preview 8 since preview 9 has breaking changes - version: 3.0.100-preview8-013656 + version: 3.0.100 installationPath: $(DotNetCoreSdkDir) includePreviewVersions: true - script: ./eng/scripts/ci-source-build.sh --ci --configuration Release /p:BuildManaged=true /p:BuildNodeJs=false From 86e9b45aa00da85094de2bf35f6af8a5d786496d Mon Sep 17 00:00:00 2001 From: wtgodbe Date: Thu, 26 Sep 2019 12:53:59 -0700 Subject: [PATCH 011/111] Use up-to-date nuget versions --- eng/tools/RepoTasks/RepoTasks.csproj | 2 +- src/Installers/Windows/GenerateNugetPackageWithMsi.ps1 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/tools/RepoTasks/RepoTasks.csproj b/eng/tools/RepoTasks/RepoTasks.csproj index 0bf6be98ae..6e0baa292f 100644 --- a/eng/tools/RepoTasks/RepoTasks.csproj +++ b/eng/tools/RepoTasks/RepoTasks.csproj @@ -12,7 +12,7 @@ - + diff --git a/src/Installers/Windows/GenerateNugetPackageWithMsi.ps1 b/src/Installers/Windows/GenerateNugetPackageWithMsi.ps1 index f4171751f6..4c1c4970dc 100644 --- a/src/Installers/Windows/GenerateNugetPackageWithMsi.ps1 +++ b/src/Installers/Windows/GenerateNugetPackageWithMsi.ps1 @@ -24,7 +24,7 @@ if (-not (Test-Path $NuGetDir)) { if (-not (Test-Path $NuGetExe)) { # Using 3.5.0 to workaround https://github.com/NuGet/Home/issues/5016 Write-Output "Downloading nuget.exe to $NuGetExe" - wget https://dist.nuget.org/win-x86-commandline/v3.5.0/nuget.exe -OutFile $NuGetExe + wget https://dist.nuget.org/win-x86-commandline/latest/nuget.exe -OutFile $NuGetExe } & $NuGetExe pack $NuspecFile -Version $PackageVersion -OutputDirectory $OutputDirectory -NoDefaultExcludes -NoPackageAnalysis -Properties ASPNETCORE_RUNTIME_MSI=$MsiPath`;ASPNETCORE_CAB_FILE=$CabPath`;ARCH=$Architecture`;MAJOR=$MajorVersion`;MINOR=$MinorVersion`; From ac691731677064e31bf4011c692fc492e4a123c0 Mon Sep 17 00:00:00 2001 From: wtgodbe Date: Thu, 26 Sep 2019 13:36:19 -0700 Subject: [PATCH 012/111] Update MSBuild deps --- eng/tools/RepoTasks/RepoTasks.csproj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/tools/RepoTasks/RepoTasks.csproj b/eng/tools/RepoTasks/RepoTasks.csproj index 6e0baa292f..48c529fdd8 100644 --- a/eng/tools/RepoTasks/RepoTasks.csproj +++ b/eng/tools/RepoTasks/RepoTasks.csproj @@ -17,9 +17,9 @@ - - - + + + From e233890a257b5a20b1c9b300a7a37dff92acfec0 Mon Sep 17 00:00:00 2001 From: wtgodbe Date: Thu, 26 Sep 2019 15:21:48 -0700 Subject: [PATCH 013/111] Suppress errors for removed references in Components.csproj --- .../Components/src/Microsoft.AspNetCore.Components.csproj | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Components/Components/src/Microsoft.AspNetCore.Components.csproj b/src/Components/Components/src/Microsoft.AspNetCore.Components.csproj index a7ad3493c9..b0607265dd 100644 --- a/src/Components/Components/src/Microsoft.AspNetCore.Components.csproj +++ b/src/Components/Components/src/Microsoft.AspNetCore.Components.csproj @@ -23,6 +23,14 @@ + + + + + + + + Date: Thu, 26 Sep 2019 21:56:40 -0700 Subject: [PATCH 014/111] Disable building targeting pack - `$(IsServicingBuild)` disabled at the moment --- Directory.Build.props | 2 +- eng/targets/ResolveReferences.targets | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 66e5b316b1..3e016ff908 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -86,7 +86,7 @@ aspnetcore-targeting-pack - false + false + <_TarArchiveOutputPath>$(TarArchiveOutputPath) + <_TarArchiveOutputPath + Condition="Exists('$(repoRoot)\.tools\tar.fromGit')">/$(TarArchiveOutputPath.Replace('\','/').Replace(':','')) + + + - + + + + + + From fd34e14f4aa920b57d2136295ef8408d11c84e04 Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Mon, 30 Sep 2019 19:14:00 -0700 Subject: [PATCH 018/111] Create missing directory and simplify workaround slightly --- eng/scripts/InstallTar.ps1 | 6 ++---- .../ref/Microsoft.AspNetCore.App.Ref.csproj | 14 +++----------- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/eng/scripts/InstallTar.ps1 b/eng/scripts/InstallTar.ps1 index 93f419b213..12159a8d0b 100644 --- a/eng/scripts/InstallTar.ps1 +++ b/eng/scripts/InstallTar.ps1 @@ -25,13 +25,10 @@ $installDir = "$repoRoot\.tools\Git\win-x64" $tarCommand = "$installDir\usr\bin\tar.exe" $finalCommand = "$repoRoot\.tools\tar.exe" -Write-Host "Windows version and other information, because who knows" +Write-Host "Windows version and other information..." cmd.exe /c ver systeminfo.exe - Write-Host "Processor Architecture: $env:PROCESSOR_ARCHITECTURE" -Write-Host "Dumping environment" -Get-ChildItem env:\ Write-Host "Checking $env:SystemRoot\System32\tar.exe" Get-ChildItem "$env:SystemRoot\System32\ta*.exe" @@ -68,6 +65,7 @@ else { } } +New-Item "$repoRoot\.tools\" -ErrorAction SilentlyContinue -ItemType Directory Copy-Item "$tarCommand" "$finalCommand" -Verbose Write-Host "Tar now available at '$finalCommand'" diff --git a/src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj b/src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj index f1a73df741..ff5fa19191 100644 --- a/src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj +++ b/src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj @@ -170,8 +170,8 @@ This package is an internal implementation of the .NET Core SDK and is not meant Outputs="$(ZipArchiveOutputPath);$(TarArchiveOutputPath)" Condition="'$(IsPackable)' == 'true'"> + <_TarCommand>tar <_TarCommand Condition="Exists('$(RepoRoot).tools\tar.exe')">$(RepoRoot).tools\tar.exe - <_TarCommand Condition="'$(_TarCommand)' == ''">tar <_TarArchiveOutputPath>$(TarArchiveOutputPath) @@ -185,17 +185,9 @@ This package is an internal implementation of the .NET Core SDK and is not meant Overwrite="true" /> - - + - - + WorkingDirectory="$(TargetingPackLayoutRoot)" /> From fa21e53dd9fa7f2dba385a0490fe7f17ef662572 Mon Sep 17 00:00:00 2001 From: wtgodbe Date: Tue, 1 Oct 2019 11:01:22 -0700 Subject: [PATCH 019/111] Revert to GA SDK --- global.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global.json b/global.json index 321b11a5ca..80ff5760c4 100644 --- a/global.json +++ b/global.json @@ -1,9 +1,9 @@ { "sdk": { - "version": "3.0.100-preview9-014000" + "version": "3.0.100" }, "tools": { - "dotnet": "3.0.100-preview9-014000", + "dotnet": "3.0.100", "runtimes": { "dotnet/x64": [ "$(MicrosoftNETCoreAppRuntimeVersion)" From 029a4c0a6801b5a17f07f2e25ad8e33e15ba851c Mon Sep 17 00:00:00 2001 From: Justin Kotalik Date: Wed, 2 Oct 2019 08:06:39 +0900 Subject: [PATCH 020/111] Update check for 413 in IIS (#14589) --- .../Inprocess/MaxRequestBodySizeTests.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Servers/IIS/IIS/test/Common.FunctionalTests/Inprocess/MaxRequestBodySizeTests.cs b/src/Servers/IIS/IIS/test/Common.FunctionalTests/Inprocess/MaxRequestBodySizeTests.cs index ce112e28b2..f8e88efa84 100644 --- a/src/Servers/IIS/IIS/test/Common.FunctionalTests/Inprocess/MaxRequestBodySizeTests.cs +++ b/src/Servers/IIS/IIS/test/Common.FunctionalTests/Inprocess/MaxRequestBodySizeTests.cs @@ -49,8 +49,9 @@ namespace Microsoft.AspNetCore.Server.IIS.FunctionalTests.InProcess var result = await deploymentResult.HttpClient.PostAsync("/ReadRequestBody", new StringContent("test")); - // IIS returns a 404 instead of a 413... - Assert.Equal(HttpStatusCode.NotFound, result.StatusCode); + // IIS either returns a 404 or a 413 based on versions of IIS. + // Check for both as we don't know which specific patch version. + Assert.True(result.StatusCode == HttpStatusCode.NotFound || result.StatusCode == HttpStatusCode.RequestEntityTooLarge); } [ConditionalFact] @@ -68,7 +69,8 @@ namespace Microsoft.AspNetCore.Server.IIS.FunctionalTests.InProcess "Host: localhost", "", "A"); - await connection.Receive("HTTP/1.1 404 Not Found"); + var requestLine = await connection.ReadLineAsync(); + Assert.True(requestLine.Contains("404") || requestLine.Contains("413")); } } From 59bdc3449f44912686df0ba79d7bff00117fa028 Mon Sep 17 00:00:00 2001 From: Justin Kotalik Date: Wed, 2 Oct 2019 08:06:56 +0900 Subject: [PATCH 021/111] [release/2.2] Backport memory leak fix from 3.0 (#13840) --- eng/PatchConfig.props | 1 + .../src/EntityFrameworkCoreXmlRepository.cs | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/eng/PatchConfig.props b/eng/PatchConfig.props index 36217a524c..dc15b2cbe0 100644 --- a/eng/PatchConfig.props +++ b/eng/PatchConfig.props @@ -78,6 +78,7 @@ Later on, this will be checked using this condition: + Microsoft.AspNetCore.DataProtection.EntityFrameworkCore; diff --git a/src/DataProtection/EntityFrameworkCore/src/EntityFrameworkCoreXmlRepository.cs b/src/DataProtection/EntityFrameworkCore/src/EntityFrameworkCoreXmlRepository.cs index 62250cf3ef..0c9ff11639 100644 --- a/src/DataProtection/EntityFrameworkCore/src/EntityFrameworkCoreXmlRepository.cs +++ b/src/DataProtection/EntityFrameworkCore/src/EntityFrameworkCoreXmlRepository.cs @@ -42,8 +42,10 @@ namespace Microsoft.AspNetCore.DataProtection.EntityFrameworkCore { using (var scope = _services.CreateScope()) { - var context = scope.ServiceProvider.GetRequiredService(); - return context.DataProtectionKeys.AsNoTracking().Select(key => TryParseKeyXml(key.Xml)).ToList().AsReadOnly(); + var context = scope.ServiceProvider.GetRequiredService(); + // Put logger in a local such that `this` isn't captured. + var logger = _logger; + return context.DataProtectionKeys.AsNoTracking().Select(key => TryParseKeyXml(key.Xml, logger)).ToList().AsReadOnly(); } } @@ -65,7 +67,7 @@ namespace Microsoft.AspNetCore.DataProtection.EntityFrameworkCore } } - private XElement TryParseKeyXml(string xml) + private static XElement TryParseKeyXml(string xml, ILogger logger) { try { @@ -73,7 +75,7 @@ namespace Microsoft.AspNetCore.DataProtection.EntityFrameworkCore } catch (Exception e) { - _logger?.LogExceptionWhileParsingKeyXml(xml, e); + logger?.LogExceptionWhileParsingKeyXml(xml, e); return null; } } From 668475cffa4f1b5a53b86983bb403056aba0fd31 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 2 Oct 2019 16:10:48 +0000 Subject: [PATCH 022/111] Update dependencies from https://github.com/aspnet/EntityFrameworkCore build 20191002.1 - Microsoft.EntityFrameworkCore.Tools - 3.1.0-preview1.19502.1 - Microsoft.EntityFrameworkCore.SqlServer - 3.1.0-preview1.19502.1 - dotnet-ef - 3.1.0-preview1.19502.1 - Microsoft.EntityFrameworkCore - 3.1.0-preview1.19502.1 - Microsoft.EntityFrameworkCore.InMemory - 3.1.0-preview1.19502.1 - Microsoft.EntityFrameworkCore.Relational - 3.1.0-preview1.19502.1 - Microsoft.EntityFrameworkCore.Sqlite - 3.1.0-preview1.19502.1 Dependency coherency updates - Microsoft.AspNetCore.Analyzer.Testing - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.AspNetCore.BenchmarkRunner.Sources - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ActivatorUtilities.Sources - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.Abstractions - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.Memory - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.SqlServer - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.StackExchangeRedis - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.CommandLineUtils.Sources - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Abstractions - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.AzureKeyVault - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Binder - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.CommandLine - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.EnvironmentVariables - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.FileExtensions - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Ini - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Json - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.KeyPerFile - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.UserSecrets - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Xml - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DependencyInjection.Abstractions - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DependencyInjection - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DiagnosticAdapter - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Diagnostics.HealthChecks - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Abstractions - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Composite - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Embedded - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Physical - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileSystemGlobbing - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.HashCodeCombiner.Sources - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Hosting.Abstractions - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Hosting - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.HostFactoryResolver.Sources - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Http - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Localization.Abstractions - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Localization - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Abstractions - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.AzureAppServices - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Configuration - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Console - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Debug - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.EventSource - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.EventLog - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.TraceSource - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Testing - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ObjectPool - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options.ConfigurationExtensions - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options.DataAnnotations - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ParameterDefaultValue.Sources - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Primitives - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.TypeNameHelper.Sources - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ValueStopwatch.Sources - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.WebEncoders - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Internal.Extensions.Refs - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.JSInterop - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Mono.WebAssembly.Interop - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Bcl.AsyncInterfaces - 1.1.0-preview1.19501.5 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Microsoft.NETCore.App.Runtime.win-x64 - 3.1.0-preview1.19501.15 (parent: Microsoft.Extensions.Logging) - Microsoft.Extensions.Logging - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.CSharp - 4.7.0-preview1.19501.5 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Microsoft.Win32.Registry - 4.7.0-preview1.19501.5 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Microsoft.Win32.SystemEvents - 4.7.0-preview1.19501.5 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.ComponentModel.Annotations - 4.7.0-preview1.19501.5 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Diagnostics.EventLog - 4.7.0-preview1.19501.5 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Drawing.Common - 4.7.0-preview1.19501.5 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.IO.Pipelines - 4.7.0-preview1.19501.5 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Net.Http.WinHttpHandler - 4.7.0-preview1.19501.5 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Net.WebSockets.WebSocketProtocol - 4.7.0-preview1.19501.5 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Reflection.Metadata - 1.8.0-preview1.19501.5 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Runtime.CompilerServices.Unsafe - 4.7.0-preview1.19501.5 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Cryptography.Cng - 4.7.0-preview1.19501.5 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Cryptography.Pkcs - 4.7.0-preview1.19501.5 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Cryptography.Xml - 4.7.0-preview1.19501.5 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Permissions - 4.7.0-preview1.19501.5 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Principal.Windows - 4.7.0-preview1.19501.5 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.ServiceProcess.ServiceController - 4.7.0-preview1.19501.5 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Text.Encodings.Web - 4.7.0-preview1.19501.5 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Text.Json - 4.7.0-preview1.19501.5 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Threading.Channels - 4.7.0-preview1.19501.5 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Windows.Extensions - 4.7.0-preview1.19501.5 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Microsoft.Extensions.DependencyModel - 3.1.0-preview1.19501.15 (parent: Microsoft.Extensions.Logging) - Microsoft.NETCore.App.Ref - 3.1.0-preview1.19501.15 (parent: Microsoft.Extensions.Logging) - NETStandard.Library.Ref - 2.1.0-preview1.19501.15 (parent: Microsoft.Extensions.Logging) - Microsoft.NETCore.Platforms - 3.1.0-preview1.19501.5 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Internal.AspNetCore.Analyzers - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) - Microsoft.AspNetCore.Testing - 3.1.0-preview1.19501.6 (parent: Microsoft.EntityFrameworkCore) --- eng/Version.Details.xml | 380 ++++++++++++++++++++-------------------- eng/Versions.props | 190 ++++++++++---------- 2 files changed, 285 insertions(+), 285 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 05afac0141..a8b497bb28 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -29,388 +29,388 @@ https://github.com/aspnet/AspNetCore-Tooling 1e85487b5011a3541c78be97baa4407abf87ea1a - + https://github.com/aspnet/EntityFrameworkCore - 04a13869d538a4519a403d50abfbbff28b5f41fd + 30b1c01d16f3460f28dca2c704a9fc02c1b2444b - + https://github.com/aspnet/EntityFrameworkCore - 04a13869d538a4519a403d50abfbbff28b5f41fd + 30b1c01d16f3460f28dca2c704a9fc02c1b2444b - + https://github.com/aspnet/EntityFrameworkCore - 04a13869d538a4519a403d50abfbbff28b5f41fd + 30b1c01d16f3460f28dca2c704a9fc02c1b2444b - + https://github.com/aspnet/EntityFrameworkCore - 04a13869d538a4519a403d50abfbbff28b5f41fd + 30b1c01d16f3460f28dca2c704a9fc02c1b2444b - + https://github.com/aspnet/EntityFrameworkCore - 04a13869d538a4519a403d50abfbbff28b5f41fd + 30b1c01d16f3460f28dca2c704a9fc02c1b2444b - + https://github.com/aspnet/EntityFrameworkCore - 04a13869d538a4519a403d50abfbbff28b5f41fd + 30b1c01d16f3460f28dca2c704a9fc02c1b2444b - + https://github.com/aspnet/EntityFrameworkCore - 04a13869d538a4519a403d50abfbbff28b5f41fd + 30b1c01d16f3460f28dca2c704a9fc02c1b2444b - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 - + https://github.com/dotnet/corefx - d0f0bfa5b123b4c1183c889cf4017bb529675502 + 09e0353381e2b9da8dd90d64869de076740cc800 - + https://github.com/dotnet/corefx - d0f0bfa5b123b4c1183c889cf4017bb529675502 + 09e0353381e2b9da8dd90d64869de076740cc800 - + https://github.com/dotnet/corefx - d0f0bfa5b123b4c1183c889cf4017bb529675502 + 09e0353381e2b9da8dd90d64869de076740cc800 - + https://github.com/dotnet/corefx - d0f0bfa5b123b4c1183c889cf4017bb529675502 + 09e0353381e2b9da8dd90d64869de076740cc800 - + https://github.com/dotnet/corefx - d0f0bfa5b123b4c1183c889cf4017bb529675502 + 09e0353381e2b9da8dd90d64869de076740cc800 - + https://github.com/dotnet/corefx - d0f0bfa5b123b4c1183c889cf4017bb529675502 + 09e0353381e2b9da8dd90d64869de076740cc800 - + https://github.com/dotnet/corefx - d0f0bfa5b123b4c1183c889cf4017bb529675502 + 09e0353381e2b9da8dd90d64869de076740cc800 - + https://github.com/dotnet/corefx - d0f0bfa5b123b4c1183c889cf4017bb529675502 + 09e0353381e2b9da8dd90d64869de076740cc800 - + https://github.com/dotnet/corefx - d0f0bfa5b123b4c1183c889cf4017bb529675502 + 09e0353381e2b9da8dd90d64869de076740cc800 - + https://github.com/dotnet/corefx - d0f0bfa5b123b4c1183c889cf4017bb529675502 + 09e0353381e2b9da8dd90d64869de076740cc800 - + https://github.com/dotnet/corefx - d0f0bfa5b123b4c1183c889cf4017bb529675502 + 09e0353381e2b9da8dd90d64869de076740cc800 - + https://github.com/dotnet/corefx - d0f0bfa5b123b4c1183c889cf4017bb529675502 + 09e0353381e2b9da8dd90d64869de076740cc800 - + https://github.com/dotnet/corefx - d0f0bfa5b123b4c1183c889cf4017bb529675502 + 09e0353381e2b9da8dd90d64869de076740cc800 - + https://github.com/dotnet/corefx - d0f0bfa5b123b4c1183c889cf4017bb529675502 + 09e0353381e2b9da8dd90d64869de076740cc800 - + https://github.com/dotnet/corefx - d0f0bfa5b123b4c1183c889cf4017bb529675502 + 09e0353381e2b9da8dd90d64869de076740cc800 - + https://github.com/dotnet/corefx - d0f0bfa5b123b4c1183c889cf4017bb529675502 + 09e0353381e2b9da8dd90d64869de076740cc800 - + https://github.com/dotnet/corefx - d0f0bfa5b123b4c1183c889cf4017bb529675502 + 09e0353381e2b9da8dd90d64869de076740cc800 - + https://github.com/dotnet/corefx - d0f0bfa5b123b4c1183c889cf4017bb529675502 + 09e0353381e2b9da8dd90d64869de076740cc800 - + https://github.com/dotnet/corefx - d0f0bfa5b123b4c1183c889cf4017bb529675502 + 09e0353381e2b9da8dd90d64869de076740cc800 - + https://github.com/dotnet/corefx - d0f0bfa5b123b4c1183c889cf4017bb529675502 + 09e0353381e2b9da8dd90d64869de076740cc800 - + https://github.com/dotnet/corefx - d0f0bfa5b123b4c1183c889cf4017bb529675502 + 09e0353381e2b9da8dd90d64869de076740cc800 - + https://github.com/dotnet/corefx - d0f0bfa5b123b4c1183c889cf4017bb529675502 + 09e0353381e2b9da8dd90d64869de076740cc800 - + https://github.com/dotnet/core-setup - 72b39b0473993b932a08c8fc24a8988d45b416a5 + dc615e8b193c5cc25ed7122432562f8399672181 - + https://github.com/dotnet/core-setup - 72b39b0473993b932a08c8fc24a8988d45b416a5 + dc615e8b193c5cc25ed7122432562f8399672181 - + https://github.com/dotnet/core-setup - 72b39b0473993b932a08c8fc24a8988d45b416a5 + dc615e8b193c5cc25ed7122432562f8399672181 - + https://github.com/dotnet/core-setup - 72b39b0473993b932a08c8fc24a8988d45b416a5 + dc615e8b193c5cc25ed7122432562f8399672181 - + https://github.com/dotnet/corefx - d0f0bfa5b123b4c1183c889cf4017bb529675502 + 09e0353381e2b9da8dd90d64869de076740cc800 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 https://github.com/dotnet/arcade @@ -424,9 +424,9 @@ https://github.com/dotnet/arcade f8546fbab59a74a66c83b8cb76b3f6877ce1d374 - + https://github.com/aspnet/Extensions - 3f7b2e7243e0527fc4ab879a0ff7c6eb0f524d8c + 3a51f25d2403bfd4962785f173df5d58329d8980 https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index 82c5b05c91..54dcfef0b7 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -61,107 +61,107 @@ 3.4.0-beta2-19462-08 - 3.1.0-preview1.19470.9 - 3.1.0-preview1.19470.9 - 3.1.0-preview1.19470.9 - 2.1.0-preview1.19470.9 + 3.1.0-preview1.19501.15 + 3.1.0-preview1.19501.15 + 3.1.0-preview1.19501.15 + 2.1.0-preview1.19501.15 - 1.1.0-preview1.19463.3 - 4.7.0-preview1.19463.3 - 4.7.0-preview1.19463.3 - 4.7.0-preview1.19463.3 - 4.7.0-preview1.19463.3 - 4.7.0-preview1.19463.3 - 4.7.0-preview1.19463.3 - 4.7.0-preview1.19463.3 - 4.7.0-preview1.19463.3 - 4.7.0-preview1.19463.3 - 1.8.0-preview1.19463.3 - 4.7.0-preview1.19463.3 - 4.7.0-preview1.19463.3 - 4.7.0-preview1.19463.3 - 4.7.0-preview1.19463.3 - 4.7.0-preview1.19463.3 - 4.7.0-preview1.19463.3 - 4.7.0-preview1.19463.3 - 4.7.0-preview1.19463.3 - 4.7.0-preview1.19463.3 - 4.7.0-preview1.19463.3 - 4.7.0-preview1.19463.3 + 1.1.0-preview1.19501.5 + 4.7.0-preview1.19501.5 + 4.7.0-preview1.19501.5 + 4.7.0-preview1.19501.5 + 4.7.0-preview1.19501.5 + 4.7.0-preview1.19501.5 + 4.7.0-preview1.19501.5 + 4.7.0-preview1.19501.5 + 4.7.0-preview1.19501.5 + 4.7.0-preview1.19501.5 + 1.8.0-preview1.19501.5 + 4.7.0-preview1.19501.5 + 4.7.0-preview1.19501.5 + 4.7.0-preview1.19501.5 + 4.7.0-preview1.19501.5 + 4.7.0-preview1.19501.5 + 4.7.0-preview1.19501.5 + 4.7.0-preview1.19501.5 + 4.7.0-preview1.19501.5 + 4.7.0-preview1.19501.5 + 4.7.0-preview1.19501.5 + 4.7.0-preview1.19501.5 - 3.1.0-preview1.19463.3 + 3.1.0-preview1.19501.5 3.0.0-preview9.19462.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 - 3.1.0-preview1.19470.2 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 + 3.1.0-preview1.19501.6 - 3.1.0-preview1.19472.2 - 3.1.0-preview1.19472.2 - 3.1.0-preview1.19472.2 - 3.1.0-preview1.19472.2 - 3.1.0-preview1.19472.2 - 3.1.0-preview1.19472.2 - 3.1.0-preview1.19472.2 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 3.1.0-preview1.19501.1 3.1.0-preview1.19501.1 From 90790ca541e7f14f5d14d6cbee1fd2c5e07c9a9b Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 2 Oct 2019 17:30:34 +0000 Subject: [PATCH 023/111] Update dependencies from https://github.com/aspnet/EntityFrameworkCore build 20191002.2 - Microsoft.EntityFrameworkCore.Tools - 3.1.0-preview1.19502.2 - Microsoft.EntityFrameworkCore.SqlServer - 3.1.0-preview1.19502.2 - dotnet-ef - 3.1.0-preview1.19502.2 - Microsoft.EntityFrameworkCore - 3.1.0-preview1.19502.2 - Microsoft.EntityFrameworkCore.InMemory - 3.1.0-preview1.19502.2 - Microsoft.EntityFrameworkCore.Relational - 3.1.0-preview1.19502.2 - Microsoft.EntityFrameworkCore.Sqlite - 3.1.0-preview1.19502.2 Dependency coherency updates - Microsoft.AspNetCore.Analyzer.Testing - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.AspNetCore.BenchmarkRunner.Sources - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ActivatorUtilities.Sources - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.Abstractions - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.Memory - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.SqlServer - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.StackExchangeRedis - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.CommandLineUtils.Sources - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Abstractions - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.AzureKeyVault - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Binder - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.CommandLine - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.EnvironmentVariables - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.FileExtensions - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Ini - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Json - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.KeyPerFile - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.UserSecrets - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Xml - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DependencyInjection.Abstractions - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DependencyInjection - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DiagnosticAdapter - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Diagnostics.HealthChecks - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Abstractions - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Composite - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Embedded - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Physical - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileSystemGlobbing - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.HashCodeCombiner.Sources - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Hosting.Abstractions - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Hosting - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.HostFactoryResolver.Sources - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Http - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Localization.Abstractions - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Localization - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Abstractions - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.AzureAppServices - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Configuration - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Console - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Debug - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.EventSource - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.EventLog - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.TraceSource - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Testing - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ObjectPool - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options.ConfigurationExtensions - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options.DataAnnotations - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ParameterDefaultValue.Sources - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Primitives - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.TypeNameHelper.Sources - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ValueStopwatch.Sources - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.WebEncoders - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Internal.Extensions.Refs - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.JSInterop - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Mono.WebAssembly.Interop - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Bcl.AsyncInterfaces - 1.1.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Microsoft.NETCore.App.Runtime.win-x64 - 3.1.0-preview1.19501.24 (parent: Microsoft.Extensions.Logging) - Microsoft.Extensions.Logging - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.CSharp - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Microsoft.Win32.Registry - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Microsoft.Win32.SystemEvents - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.ComponentModel.Annotations - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Diagnostics.EventLog - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Drawing.Common - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.IO.Pipelines - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Net.Http.WinHttpHandler - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Net.WebSockets.WebSocketProtocol - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Reflection.Metadata - 1.8.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Runtime.CompilerServices.Unsafe - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Cryptography.Cng - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Cryptography.Pkcs - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Cryptography.Xml - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Permissions - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Principal.Windows - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.ServiceProcess.ServiceController - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Text.Encodings.Web - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Text.Json - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Threading.Channels - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Windows.Extensions - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Microsoft.Extensions.DependencyModel - 3.1.0-preview1.19501.24 (parent: Microsoft.Extensions.Logging) - Microsoft.NETCore.App.Ref - 3.1.0-preview1.19501.24 (parent: Microsoft.Extensions.Logging) - NETStandard.Library.Ref - 2.1.0-preview1.19501.24 (parent: Microsoft.Extensions.Logging) - Microsoft.NETCore.Platforms - 3.1.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Internal.AspNetCore.Analyzers - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.AspNetCore.Testing - 3.1.0-preview1.19502.1 (parent: Microsoft.EntityFrameworkCore) --- eng/Version.Details.xml | 380 ++++++++++++++++++++-------------------- eng/Versions.props | 190 ++++++++++---------- 2 files changed, 285 insertions(+), 285 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a8b497bb28..01954589c9 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -29,388 +29,388 @@ https://github.com/aspnet/AspNetCore-Tooling 1e85487b5011a3541c78be97baa4407abf87ea1a - + https://github.com/aspnet/EntityFrameworkCore - 30b1c01d16f3460f28dca2c704a9fc02c1b2444b + 828fe096ddd64909e39fb56a11f9cee0d783c066 - + https://github.com/aspnet/EntityFrameworkCore - 30b1c01d16f3460f28dca2c704a9fc02c1b2444b + 828fe096ddd64909e39fb56a11f9cee0d783c066 - + https://github.com/aspnet/EntityFrameworkCore - 30b1c01d16f3460f28dca2c704a9fc02c1b2444b + 828fe096ddd64909e39fb56a11f9cee0d783c066 - + https://github.com/aspnet/EntityFrameworkCore - 30b1c01d16f3460f28dca2c704a9fc02c1b2444b + 828fe096ddd64909e39fb56a11f9cee0d783c066 - + https://github.com/aspnet/EntityFrameworkCore - 30b1c01d16f3460f28dca2c704a9fc02c1b2444b + 828fe096ddd64909e39fb56a11f9cee0d783c066 - + https://github.com/aspnet/EntityFrameworkCore - 30b1c01d16f3460f28dca2c704a9fc02c1b2444b + 828fe096ddd64909e39fb56a11f9cee0d783c066 - + https://github.com/aspnet/EntityFrameworkCore - 30b1c01d16f3460f28dca2c704a9fc02c1b2444b + 828fe096ddd64909e39fb56a11f9cee0d783c066 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/dotnet/corefx - 09e0353381e2b9da8dd90d64869de076740cc800 + e61772dfb9cfc9b08d95950814ebe51f22cd2de6 - + https://github.com/dotnet/corefx - 09e0353381e2b9da8dd90d64869de076740cc800 + e61772dfb9cfc9b08d95950814ebe51f22cd2de6 - + https://github.com/dotnet/corefx - 09e0353381e2b9da8dd90d64869de076740cc800 + e61772dfb9cfc9b08d95950814ebe51f22cd2de6 - + https://github.com/dotnet/corefx - 09e0353381e2b9da8dd90d64869de076740cc800 + e61772dfb9cfc9b08d95950814ebe51f22cd2de6 - + https://github.com/dotnet/corefx - 09e0353381e2b9da8dd90d64869de076740cc800 + e61772dfb9cfc9b08d95950814ebe51f22cd2de6 - + https://github.com/dotnet/corefx - 09e0353381e2b9da8dd90d64869de076740cc800 + e61772dfb9cfc9b08d95950814ebe51f22cd2de6 - + https://github.com/dotnet/corefx - 09e0353381e2b9da8dd90d64869de076740cc800 + e61772dfb9cfc9b08d95950814ebe51f22cd2de6 - + https://github.com/dotnet/corefx - 09e0353381e2b9da8dd90d64869de076740cc800 + e61772dfb9cfc9b08d95950814ebe51f22cd2de6 - + https://github.com/dotnet/corefx - 09e0353381e2b9da8dd90d64869de076740cc800 + e61772dfb9cfc9b08d95950814ebe51f22cd2de6 - + https://github.com/dotnet/corefx - 09e0353381e2b9da8dd90d64869de076740cc800 + e61772dfb9cfc9b08d95950814ebe51f22cd2de6 - + https://github.com/dotnet/corefx - 09e0353381e2b9da8dd90d64869de076740cc800 + e61772dfb9cfc9b08d95950814ebe51f22cd2de6 - + https://github.com/dotnet/corefx - 09e0353381e2b9da8dd90d64869de076740cc800 + e61772dfb9cfc9b08d95950814ebe51f22cd2de6 - + https://github.com/dotnet/corefx - 09e0353381e2b9da8dd90d64869de076740cc800 + e61772dfb9cfc9b08d95950814ebe51f22cd2de6 - + https://github.com/dotnet/corefx - 09e0353381e2b9da8dd90d64869de076740cc800 + e61772dfb9cfc9b08d95950814ebe51f22cd2de6 - + https://github.com/dotnet/corefx - 09e0353381e2b9da8dd90d64869de076740cc800 + e61772dfb9cfc9b08d95950814ebe51f22cd2de6 - + https://github.com/dotnet/corefx - 09e0353381e2b9da8dd90d64869de076740cc800 + e61772dfb9cfc9b08d95950814ebe51f22cd2de6 - + https://github.com/dotnet/corefx - 09e0353381e2b9da8dd90d64869de076740cc800 + e61772dfb9cfc9b08d95950814ebe51f22cd2de6 - + https://github.com/dotnet/corefx - 09e0353381e2b9da8dd90d64869de076740cc800 + e61772dfb9cfc9b08d95950814ebe51f22cd2de6 - + https://github.com/dotnet/corefx - 09e0353381e2b9da8dd90d64869de076740cc800 + e61772dfb9cfc9b08d95950814ebe51f22cd2de6 - + https://github.com/dotnet/corefx - 09e0353381e2b9da8dd90d64869de076740cc800 + e61772dfb9cfc9b08d95950814ebe51f22cd2de6 - + https://github.com/dotnet/corefx - 09e0353381e2b9da8dd90d64869de076740cc800 + e61772dfb9cfc9b08d95950814ebe51f22cd2de6 - + https://github.com/dotnet/corefx - 09e0353381e2b9da8dd90d64869de076740cc800 + e61772dfb9cfc9b08d95950814ebe51f22cd2de6 - + https://github.com/dotnet/core-setup - dc615e8b193c5cc25ed7122432562f8399672181 + 0b3fcd7a02fd29017f01f01a36ea562c5fda1eec - + https://github.com/dotnet/core-setup - dc615e8b193c5cc25ed7122432562f8399672181 + 0b3fcd7a02fd29017f01f01a36ea562c5fda1eec - + https://github.com/dotnet/core-setup - dc615e8b193c5cc25ed7122432562f8399672181 + 0b3fcd7a02fd29017f01f01a36ea562c5fda1eec - + https://github.com/dotnet/core-setup - dc615e8b193c5cc25ed7122432562f8399672181 + 0b3fcd7a02fd29017f01f01a36ea562c5fda1eec - + https://github.com/dotnet/corefx - 09e0353381e2b9da8dd90d64869de076740cc800 + e61772dfb9cfc9b08d95950814ebe51f22cd2de6 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 https://github.com/dotnet/arcade @@ -424,9 +424,9 @@ https://github.com/dotnet/arcade f8546fbab59a74a66c83b8cb76b3f6877ce1d374 - + https://github.com/aspnet/Extensions - 3a51f25d2403bfd4962785f173df5d58329d8980 + 08307d6b396fb7935f3df6d1583681c38fc65c32 https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index 54dcfef0b7..975f72b08d 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -61,107 +61,107 @@ 3.4.0-beta2-19462-08 - 3.1.0-preview1.19501.15 - 3.1.0-preview1.19501.15 - 3.1.0-preview1.19501.15 - 2.1.0-preview1.19501.15 + 3.1.0-preview1.19501.24 + 3.1.0-preview1.19501.24 + 3.1.0-preview1.19501.24 + 2.1.0-preview1.19501.24 - 1.1.0-preview1.19501.5 - 4.7.0-preview1.19501.5 - 4.7.0-preview1.19501.5 - 4.7.0-preview1.19501.5 - 4.7.0-preview1.19501.5 - 4.7.0-preview1.19501.5 - 4.7.0-preview1.19501.5 - 4.7.0-preview1.19501.5 - 4.7.0-preview1.19501.5 - 4.7.0-preview1.19501.5 - 1.8.0-preview1.19501.5 - 4.7.0-preview1.19501.5 - 4.7.0-preview1.19501.5 - 4.7.0-preview1.19501.5 - 4.7.0-preview1.19501.5 - 4.7.0-preview1.19501.5 - 4.7.0-preview1.19501.5 - 4.7.0-preview1.19501.5 - 4.7.0-preview1.19501.5 - 4.7.0-preview1.19501.5 - 4.7.0-preview1.19501.5 - 4.7.0-preview1.19501.5 + 1.1.0-preview1.19501.8 + 4.7.0-preview1.19501.8 + 4.7.0-preview1.19501.8 + 4.7.0-preview1.19501.8 + 4.7.0-preview1.19501.8 + 4.7.0-preview1.19501.8 + 4.7.0-preview1.19501.8 + 4.7.0-preview1.19501.8 + 4.7.0-preview1.19501.8 + 4.7.0-preview1.19501.8 + 1.8.0-preview1.19501.8 + 4.7.0-preview1.19501.8 + 4.7.0-preview1.19501.8 + 4.7.0-preview1.19501.8 + 4.7.0-preview1.19501.8 + 4.7.0-preview1.19501.8 + 4.7.0-preview1.19501.8 + 4.7.0-preview1.19501.8 + 4.7.0-preview1.19501.8 + 4.7.0-preview1.19501.8 + 4.7.0-preview1.19501.8 + 4.7.0-preview1.19501.8 - 3.1.0-preview1.19501.5 + 3.1.0-preview1.19501.8 3.0.0-preview9.19462.2 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 - 3.1.0-preview1.19501.6 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.2 + 3.1.0-preview1.19502.2 + 3.1.0-preview1.19502.2 + 3.1.0-preview1.19502.2 + 3.1.0-preview1.19502.2 + 3.1.0-preview1.19502.2 + 3.1.0-preview1.19502.2 3.1.0-preview1.19501.1 3.1.0-preview1.19501.1 From b9d0e611449d0ba7f18b9ec2daf1c798387263d8 Mon Sep 17 00:00:00 2001 From: Pranav K Date: Wed, 2 Oct 2019 12:37:10 -0700 Subject: [PATCH 024/111] Retarget Ignitor to netcoreapp3.0 (#14668) --- src/Components/Ignitor/src/Ignitor.csproj | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Components/Ignitor/src/Ignitor.csproj b/src/Components/Ignitor/src/Ignitor.csproj index d2fce7263e..2b139eb30f 100644 --- a/src/Components/Ignitor/src/Ignitor.csproj +++ b/src/Components/Ignitor/src/Ignitor.csproj @@ -1,7 +1,8 @@  - $(DefaultNetCoreTargetFramework) + + netcoreapp3.0 true false false From 9e84abec470c224b1b16e0561ea21dcd95ede5bb Mon Sep 17 00:00:00 2001 From: Pranav K Date: Wed, 2 Oct 2019 12:44:39 -0700 Subject: [PATCH 025/111] Add a few tests for generic JSInterop (#14626) Fixes https://github.com/aspnet/AspNetCore/issues/9061 --- .../test/E2ETest/Tests/InteropTest.cs | 12 +- .../BasicTestApp/InteropComponent.razor | 4 +- .../InteropTest/JavaScriptInterop.cs | 20 +++ .../BasicTestApp/wwwroot/js/jsinteroptests.js | 139 +++++++++--------- 4 files changed, 102 insertions(+), 73 deletions(-) diff --git a/src/Components/test/E2ETest/Tests/InteropTest.cs b/src/Components/test/E2ETest/Tests/InteropTest.cs index 76d2b0d188..2397ea3f9d 100644 --- a/src/Components/test/E2ETest/Tests/InteropTest.cs +++ b/src/Components/test/E2ETest/Tests/InteropTest.cs @@ -11,6 +11,7 @@ using OpenQA.Selenium; using OpenQA.Selenium.Support.UI; using Xunit; using Xunit.Abstractions; +using Xunit.Sdk; namespace Microsoft.AspNetCore.Components.E2ETest.Tests { @@ -68,6 +69,8 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests ["testDtoAsync"] = "Same", ["returnPrimitiveAsync"] = "123", ["returnArrayAsync"] = "first,second", + ["syncGenericInstanceMethod"] = @"""Initial value""", + ["asyncGenericInstanceMethod"] = @"""Updated value 1""", }; var expectedSyncValues = new Dictionary @@ -102,6 +105,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests ["testDtoSync"] = "Same", ["returnPrimitive"] = "123", ["returnArray"] = "first,second", + ["genericInstanceMethod"] = @"""Updated value 2""", }; // Include the sync assertions only when running under WebAssembly @@ -132,13 +136,17 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests // Assert foreach (var expectedValue in expectedValues) { + var actualValue = actualValues[expectedValue.Key]; if (expectedValue.Key.Contains("Exception")) { - Assert.StartsWith(expectedValue.Value, actualValues[expectedValue.Key]); + Assert.StartsWith(expectedValue.Value, actualValue); } else { - Assert.Equal(expectedValue.Value, actualValues[expectedValue.Key]); + if (expectedValue.Value != actualValue) + { + throw new AssertActualExpectedException(expectedValue.Value, actualValue, $"Scenario '{expectedValue.Key}' failed. Expected '{expectedValue.Value}, Actual {actualValue}"); + } } } } diff --git a/src/Components/test/testassets/BasicTestApp/InteropComponent.razor b/src/Components/test/testassets/BasicTestApp/InteropComponent.razor index 01504301dc..0024d8bb75 100644 --- a/src/Components/test/testassets/BasicTestApp/InteropComponent.razor +++ b/src/Components/test/testassets/BasicTestApp/InteropComponent.razor @@ -70,13 +70,15 @@ var shouldSupportSyncInterop = RuntimeInformation.IsOSPlatform(OSPlatform.Create("WEBASSEMBLY")); var testDTOTOPassByRef = new TestDTO(nonSerializedValue: 123); var instanceMethodsTarget = new JavaScriptInterop(); + var genericType = new JavaScriptInterop.GenericType { Value = "Initial value" }; Console.WriteLine("Starting interop invocations."); await JSRuntime.InvokeVoidAsync( "jsInteropTests.invokeDotNetInteropMethodsAsync", shouldSupportSyncInterop, DotNetObjectReference.Create(testDTOTOPassByRef), - DotNetObjectReference.Create(instanceMethodsTarget)); + DotNetObjectReference.Create(instanceMethodsTarget), + DotNetObjectReference.Create(genericType)); if (shouldSupportSyncInterop) { diff --git a/src/Components/test/testassets/BasicTestApp/InteropTest/JavaScriptInterop.cs b/src/Components/test/testassets/BasicTestApp/InteropTest/JavaScriptInterop.cs index ee33e39b48..18cefecd15 100644 --- a/src/Components/test/testassets/BasicTestApp/InteropTest/JavaScriptInterop.cs +++ b/src/Components/test/testassets/BasicTestApp/InteropTest/JavaScriptInterop.cs @@ -462,5 +462,25 @@ namespace BasicTestApp.InteropTest public DotNetObjectReference OutgoingByRef { get; set; } } + + public class GenericType + { + public TValue Value { get; set; } + + [JSInvokable] + public TValue Update(TValue newValue) + { + var oldValue = Value; + Value = newValue; + return oldValue; + } + + [JSInvokable] + public async Task UpdateAsync(TValue newValue) + { + await Task.Yield(); + return Update(newValue); + } + } } } diff --git a/src/Components/test/testassets/BasicTestApp/wwwroot/js/jsinteroptests.js b/src/Components/test/testassets/BasicTestApp/wwwroot/js/jsinteroptests.js index 5f1300d801..a1f7975a90 100644 --- a/src/Components/test/testassets/BasicTestApp/wwwroot/js/jsinteroptests.js +++ b/src/Components/test/testassets/BasicTestApp/wwwroot/js/jsinteroptests.js @@ -2,7 +2,7 @@ var results = {}; var assemblyName = 'BasicTestApp'; -function invokeDotNetInteropMethodsAsync(shouldSupportSyncInterop, dotNetObjectByRef, instanceMethodsTarget) { +async function invokeDotNetInteropMethodsAsync(shouldSupportSyncInterop, dotNetObjectByRef, instanceMethodsTarget, genericDotNetObjectByRef) { if (shouldSupportSyncInterop) { console.log('Invoking void sync methods.'); DotNet.invokeMethod(assemblyName, 'VoidParameterless'); @@ -15,6 +15,7 @@ function invokeDotNetInteropMethodsAsync(shouldSupportSyncInterop, dotNetObjectB DotNet.invokeMethod(assemblyName, 'VoidWithSevenParameters', ...createArgumentList(7, dotNetObjectByRef)); DotNet.invokeMethod(assemblyName, 'VoidWithEightParameters', ...createArgumentList(8, dotNetObjectByRef)); + console.log('Invoking returning sync methods.'); results['result1'] = DotNet.invokeMethod(assemblyName, 'ReturnArray'); results['result2'] = DotNet.invokeMethod(assemblyName, 'EchoOneParameter', ...createArgumentList(1, dotNetObjectByRef)); @@ -40,75 +41,73 @@ function invokeDotNetInteropMethodsAsync(shouldSupportSyncInterop, dotNetObjectB } console.log('Invoking void async methods.'); - return DotNet.invokeMethodAsync(assemblyName, 'VoidParameterlessAsync') - .then(() => DotNet.invokeMethodAsync(assemblyName, 'VoidWithOneParameterAsync', ...createArgumentList(1, dotNetObjectByRef))) - .then(() => DotNet.invokeMethodAsync(assemblyName, 'VoidWithTwoParametersAsync', ...createArgumentList(2, dotNetObjectByRef))) - .then(() => DotNet.invokeMethodAsync(assemblyName, 'VoidWithThreeParametersAsync', ...createArgumentList(3, dotNetObjectByRef))) - .then(() => DotNet.invokeMethodAsync(assemblyName, 'VoidWithFourParametersAsync', ...createArgumentList(4, dotNetObjectByRef))) - .then(() => DotNet.invokeMethodAsync(assemblyName, 'VoidWithFiveParametersAsync', ...createArgumentList(5, dotNetObjectByRef))) - .then(() => DotNet.invokeMethodAsync(assemblyName, 'VoidWithSixParametersAsync', ...createArgumentList(6, dotNetObjectByRef))) - .then(() => DotNet.invokeMethodAsync(assemblyName, 'VoidWithSevenParametersAsync', ...createArgumentList(7, dotNetObjectByRef))) - .then(() => DotNet.invokeMethodAsync(assemblyName, 'VoidWithEightParametersAsync', ...createArgumentList(8, dotNetObjectByRef))) - .then(() => { - console.log('Invoking returning async methods.'); - return DotNet.invokeMethodAsync(assemblyName, 'ReturnArrayAsync') - .then(r => results['result1Async'] = r) - .then(() => DotNet.invokeMethodAsync(assemblyName, 'EchoOneParameterAsync', ...createArgumentList(1, dotNetObjectByRef))) - .then(r => results['result2Async'] = r) - .then(() => DotNet.invokeMethodAsync(assemblyName, 'EchoTwoParametersAsync', ...createArgumentList(2, dotNetObjectByRef))) - .then(r => results['result3Async'] = r) - .then(() => DotNet.invokeMethodAsync(assemblyName, 'EchoThreeParametersAsync', ...createArgumentList(3, dotNetObjectByRef))) - .then(r => results['result4Async'] = r) - .then(() => DotNet.invokeMethodAsync(assemblyName, 'EchoFourParametersAsync', ...createArgumentList(4, dotNetObjectByRef))) - .then(r => results['result5Async'] = r) - .then(() => DotNet.invokeMethodAsync(assemblyName, 'EchoFiveParametersAsync', ...createArgumentList(5, dotNetObjectByRef))) - .then(r => results['result6Async'] = r) - .then(() => DotNet.invokeMethodAsync(assemblyName, 'EchoSixParametersAsync', ...createArgumentList(6, dotNetObjectByRef))) - .then(r => results['result7Async'] = r) - .then(() => DotNet.invokeMethodAsync(assemblyName, 'EchoSevenParametersAsync', ...createArgumentList(7, dotNetObjectByRef))) - .then(r => results['result8Async'] = r) - .then(() => DotNet.invokeMethodAsync(assemblyName, 'EchoEightParametersAsync', ...createArgumentList(8, dotNetObjectByRef))) - .then(r => results['result9Async'] = r) - .then(() => DotNet.invokeMethodAsync(assemblyName, 'ReturnDotNetObjectByRefAsync')) - .then(r => DotNet.invokeMethodAsync(assemblyName, 'ExtractNonSerializedValue', r['Some async instance'])) - .then(r => { - results['resultReturnDotNetObjectByRefAsync'] = r; - }) - .then(() => instanceMethodsTarget.invokeMethodAsync('InstanceMethodAsync', { - stringValue: 'My string', - dtoByRef: dotNetObjectByRef - })) - .then(r => { - results['instanceMethodThisTypeNameAsync'] = r.thisTypeName; - results['instanceMethodStringValueUpperAsync'] = r.stringValueUpper; - results['instanceMethodIncomingByRefAsync'] = r.incomingByRef; - return DotNet.invokeMethodAsync(assemblyName, 'ExtractNonSerializedValue', r.outgoingByRef); - }).then(r => { - results['instanceMethodOutgoingByRefAsync'] = r; - }) - }) - .then(() => { - console.log('Invoking methods that throw exceptions'); - try { - shouldSupportSyncInterop && DotNet.invokeMethod(assemblyName, 'ThrowException'); - } catch (e) { - results['ThrowException'] = e.message; - } - return DotNet.invokeMethodAsync(assemblyName, 'AsyncThrowSyncException') - .catch(e => { - results['AsyncThrowSyncException'] = e.message; + await DotNet.invokeMethodAsync(assemblyName, 'VoidParameterlessAsync'); + await DotNet.invokeMethodAsync(assemblyName, 'VoidWithOneParameterAsync', ...createArgumentList(1, dotNetObjectByRef)); + await DotNet.invokeMethodAsync(assemblyName, 'VoidWithTwoParametersAsync', ...createArgumentList(2, dotNetObjectByRef)); + await DotNet.invokeMethodAsync(assemblyName, 'VoidWithThreeParametersAsync', ...createArgumentList(3, dotNetObjectByRef)); + await DotNet.invokeMethodAsync(assemblyName, 'VoidWithFourParametersAsync', ...createArgumentList(4, dotNetObjectByRef)); + await DotNet.invokeMethodAsync(assemblyName, 'VoidWithFiveParametersAsync', ...createArgumentList(5, dotNetObjectByRef)); + await DotNet.invokeMethodAsync(assemblyName, 'VoidWithSixParametersAsync', ...createArgumentList(6, dotNetObjectByRef)); + await DotNet.invokeMethodAsync(assemblyName, 'VoidWithSevenParametersAsync', ...createArgumentList(7, dotNetObjectByRef)); + await DotNet.invokeMethodAsync(assemblyName, 'VoidWithEightParametersAsync', ...createArgumentList(8, dotNetObjectByRef)); - return DotNet.invokeMethodAsync(assemblyName, 'AsyncThrowAsyncException'); - }).catch(e => { - results['AsyncThrowAsyncException'] = e.message; + console.log('Invoking returning async methods.'); + results['result1Async'] = await DotNet.invokeMethodAsync(assemblyName, 'ReturnArrayAsync'); + results['result2Async'] = await DotNet.invokeMethodAsync(assemblyName, 'EchoOneParameterAsync', ...createArgumentList(1, dotNetObjectByRef)); + results['result3Async'] = await DotNet.invokeMethodAsync(assemblyName, 'EchoTwoParametersAsync', ...createArgumentList(2, dotNetObjectByRef)); + results['result4Async'] = await DotNet.invokeMethodAsync(assemblyName, 'EchoThreeParametersAsync', ...createArgumentList(3, dotNetObjectByRef)); + results['result5Async'] = await DotNet.invokeMethodAsync(assemblyName, 'EchoFourParametersAsync', ...createArgumentList(4, dotNetObjectByRef)); + results['result6Async'] = await DotNet.invokeMethodAsync(assemblyName, 'EchoFiveParametersAsync', ...createArgumentList(5, dotNetObjectByRef)); + results['result7Async'] = await DotNet.invokeMethodAsync(assemblyName, 'EchoSixParametersAsync', ...createArgumentList(6, dotNetObjectByRef)); + results['result8Async'] = await DotNet.invokeMethodAsync(assemblyName, 'EchoSevenParametersAsync', ...createArgumentList(7, dotNetObjectByRef)); + results['result9Async'] = await DotNet.invokeMethodAsync(assemblyName, 'EchoEightParametersAsync', ...createArgumentList(8, dotNetObjectByRef)); - console.log('Done invoking interop methods'); - }); - }); + const returnDotNetObjectByRefAsync = await DotNet.invokeMethodAsync(assemblyName, 'ReturnDotNetObjectByRefAsync'); + results['resultReturnDotNetObjectByRefAsync'] = await DotNet.invokeMethodAsync(assemblyName, 'ExtractNonSerializedValue', returnDotNetObjectByRefAsync['Some async instance']); + + const instanceMethodAsync = await instanceMethodsTarget.invokeMethodAsync('InstanceMethodAsync', { + stringValue: 'My string', + dtoByRef: dotNetObjectByRef + }); + + results['instanceMethodThisTypeNameAsync'] = instanceMethodAsync.thisTypeName; + results['instanceMethodStringValueUpperAsync'] = instanceMethodAsync.stringValueUpper; + results['instanceMethodIncomingByRefAsync'] = instanceMethodAsync.incomingByRef; + results['instanceMethodOutgoingByRefAsync'] = await DotNet.invokeMethodAsync(assemblyName, 'ExtractNonSerializedValue', instanceMethodAsync.outgoingByRef); + + console.log('Invoking generic type instance methods.'); + + results['syncGenericInstanceMethod'] = await genericDotNetObjectByRef.invokeMethodAsync('Update', 'Updated value 1'); + results['asyncGenericInstanceMethod'] = await genericDotNetObjectByRef.invokeMethodAsync('UpdateAsync', 'Updated value 2'); + + if (shouldSupportSyncInterop) { + results['genericInstanceMethod'] = genericDotNetObjectByRef.invokeMethod('Update', 'Updated Value 3'); + } + + console.log('Invoking methods that throw exceptions'); + try { + shouldSupportSyncInterop && DotNet.invokeMethod(assemblyName, 'ThrowException'); + } catch (e) { + results['ThrowException'] = e.message; + } + + try { + await DotNet.invokeMethodAsync(assemblyName, 'AsyncThrowSyncException'); + } catch (e) { + results['AsyncThrowSyncException'] = e.message; + } + + try { + await DotNet.invokeMethodAsync(assemblyName, 'AsyncThrowAsyncException'); + } catch (e) { + results['AsyncThrowAsyncException'] = e.message; + } + + console.log('Done invoking interop methods'); } -function createArgumentList(argumentNumber, dotNetObjectByRef){ +function createArgumentList(argumentNumber, dotNetObjectByRef) { const array = new Array(argumentNumber); if (argumentNumber === 0) { return []; @@ -149,7 +148,7 @@ function createArgumentList(argumentNumber, dotNetObjectByRef){ source: `Some random text with at least ${i} characters`, start: argumentNumber + 1, length: argumentNumber + 1 - } + }; break; default: console.log(i); @@ -169,7 +168,7 @@ window.jsInteropTests = { returnPrimitive: returnPrimitive, returnPrimitiveAsync: returnPrimitiveAsync, receiveDotNetObjectByRef: receiveDotNetObjectByRef, - receiveDotNetObjectByRefAsync: receiveDotNetObjectByRefAsync, + receiveDotNetObjectByRefAsync: receiveDotNetObjectByRefAsync }; function returnPrimitive() { @@ -211,9 +210,9 @@ function asyncFunctionThrowsAsyncException() { } function asyncFunctionTakesLongerThanDefaultTimeoutToResolve() { - return new Promise((resolve, reject) => { - setTimeout(() => resolve(undefined), 5000); - }); + return new Promise((resolve, reject) => { + setTimeout(() => resolve(undefined), 5000); + }); } function collectInteropResults() { From 6dc49b45c410949788cdcb47f8590e7ab65b73f2 Mon Sep 17 00:00:00 2001 From: James Newton-King Date: Tue, 24 Sep 2019 15:12:47 +1200 Subject: [PATCH 026/111] Update gRPC package version to 2.23.2 --- eng/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Versions.props b/eng/Versions.props index 82c5b05c91..ab04be2331 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -231,7 +231,7 @@ 4.2.1 4.2.1 3.8.0 - 2.23.1 + 2.23.2 3.0.0 3.0.0 3.0.0 From cca42d9624e6adcff85c3865f1189032a202c2ed Mon Sep 17 00:00:00 2001 From: Javier Calvarro Nelson Date: Thu, 3 Oct 2019 00:21:00 +0200 Subject: [PATCH 027/111] [Blazor][Fixes #13357] input type=time reseting value (#14379) * [Blazor] input type=time reseting value * Normalizes values on the client and sends proper dates and times to the server. * Normalizes values applied from the server to the client. * Introduces @bind and @bind-value support for inputs of types datetime-local, month, time. Fixes #13357 * Update JS --- .../Samples/BlazorServerApp/Pages/Index.razor | 2 +- .../Web.JS/dist/Release/blazor.server.js | 4 +- .../Web.JS/dist/Release/blazor.webassembly.js | 2 +- .../Web.JS/src/Rendering/BrowserRenderer.ts | 11 +- .../Web.JS/src/Rendering/EventForDotNet.ts | 58 +++- ...ft.AspNetCore.Components.Web.netcoreapp.cs | 6 + ...spNetCore.Components.Web.netstandard2.0.cs | 6 + src/Components/Web/src/Web/BindAttributes.cs | 14 + src/Components/test/E2ETest/Tests/BindTest.cs | 260 ++++++++++++++++++ .../BasicTestApp/BindCasesComponent.razor | 69 +++++ .../BasicTestApp/GlobalizationBindCases.razor | 9 + .../BrowserAssertFailedException.cs | 7 +- 12 files changed, 429 insertions(+), 19 deletions(-) diff --git a/src/Components/Samples/BlazorServerApp/Pages/Index.razor b/src/Components/Samples/BlazorServerApp/Pages/Index.razor index 16dac31925..e6a33ccd43 100644 --- a/src/Components/Samples/BlazorServerApp/Pages/Index.razor +++ b/src/Components/Samples/BlazorServerApp/Pages/Index.razor @@ -1,4 +1,4 @@ -@page "/" +@page "/"

Hello, world!

diff --git a/src/Components/Web.JS/dist/Release/blazor.server.js b/src/Components/Web.JS/dist/Release/blazor.server.js index 65fbad86e0..f586aefb15 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=49)}([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";n.d(t,"a",function(){return s}),n.d(t,"c",function(){return c}),n.d(t,"f",function(){return u}),n.d(t,"g",function(){return l}),n.d(t,"h",function(){return f}),n.d(t,"e",function(){return h}),n.d(t,"d",function(){return p}),n.d(t,"b",function(){return d});var r=n(0),o=n(7),i=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){e.done?o(e.value):new n(function(t){t(e.value)}).then(a,s)}c((r=r.apply(e,t||[])).next())})},a=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=(o=a.trys).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]-1&&this.subject.observers.splice(e,1),0===this.subject.observers.length&&this.subject.cancelCallback&&this.subject.cancelCallback().catch(function(e){})},e}(),d=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(e,t,n){"use strict";n.r(t);var r,o,i=n(3),a=n(4),s=n(43),c=n(0),u=(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)}),l=function(e){function t(t){var n=e.call(this)||this;return n.logger=t,n}return u(t,e),t.prototype.send=function(e){var t=this;return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new i.a):e.method?e.url?new Promise(function(n,r){var o=new XMLHttpRequest;o.open(e.method,e.url,!0),o.withCredentials=!0,o.setRequestHeader("X-Requested-With","XMLHttpRequest"),o.setRequestHeader("Content-Type","text/plain;charset=UTF-8");var s=e.headers;s&&Object.keys(s).forEach(function(e){o.setRequestHeader(e,s[e])}),e.responseType&&(o.responseType=e.responseType),e.abortSignal&&(e.abortSignal.onabort=function(){o.abort(),r(new i.a)}),e.timeout&&(o.timeout=e.timeout),o.onload=function(){e.abortSignal&&(e.abortSignal.onabort=null),o.status>=200&&o.status<300?n(new a.b(o.status,o.statusText,o.response||o.responseText)):r(new i.b(o.statusText,o.status))},o.onerror=function(){t.logger.log(c.a.Warning,"Error from HTTP request. "+o.status+": "+o.statusText+"."),r(new i.b(o.statusText,o.status))},o.ontimeout=function(){t.logger.log(c.a.Warning,"Timeout from HTTP request."),r(new i.c)},o.send(e.content||"")}):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t}(a.a),f=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)}}(),h=function(e){function t(t){var n=e.call(this)||this;return"undefined"!=typeof XMLHttpRequest?n.httpClient=new l(t):n.httpClient=new s.a(t),n}return f(t,e),t.prototype.send=function(e){return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new i.a):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}(a.a),p=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"}(o||(o={}));var d,g=n(1),y=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 E.WebSockets:if(!this.options.WebSocket)throw new Error("'WebSocket' is not supported in your environment.");return new A(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.WebSocket);case E.ServerSentEvents:if(!this.options.EventSource)throw new Error("'EventSource' is not supported in your environment.");return new O(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.EventSource);case E.LongPolling:return new x(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1);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=E[e.transport];if(null==r)return this.logger.log(c.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(c.a.Debug,"Skipping transport '"+E[r]+"' because it was disabled by the client."),new Error("'"+E[r]+"' is disabled by the client.");if(!(e.transferFormats.map(function(e){return S[e]}).indexOf(n)>=0))return this.logger.log(c.a.Debug,"Skipping transport '"+E[r]+"' because it does not support the requested transfer format '"+S[n]+"'."),new Error("'"+E[r]+"' does not support "+S[n]+".");if(r===E.WebSockets&&!this.options.WebSocket||r===E.ServerSentEvents&&!this.options.EventSource)return this.logger.log(c.a.Debug,"Skipping transport '"+E[r]+"' because it is not supported in your environment.'"),new Error("'"+E[r]+"' is not supported in your environment.");this.logger.log(c.a.Debug,"Selecting transport '"+E[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){if(this.logger.log(c.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){if("Disconnecting"===this.connectionState&&this.stopPromiseResolver(),e?this.logger.log(c.a.Error,"Connection disconnected with error '"+e+"'."):this.logger.log(c.a.Information,"Connection disconnected."),this.connectionId=void 0,this.connectionState="Disconnected",this.onclose&&this.connectionStarted){this.connectionStarted=!1;try{this.onclose(e)}catch(t){this.logger.log(c.a.Error,"HttpConnection.onclose("+e+") threw error '"+t+"'.")}}}else this.logger.log(c.a.Warning,"Call to HttpConnection.stopConnection("+e+") was ignored because the connection hasn't yet left the in the connecting state.");else this.logger.log(c.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(!g.c.isBrowser||!window.document)throw new Error("Cannot resolve '"+e+"'.");var t=window.document.createElement("a");return t.href=e,this.logger.log(c.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",n+=-1===t?"":e.substring(t)},e}();var q=function(){function e(e){this.transport=e,this.buffer=[],this.executing=!0,this.sendBufferedData=new W,this.transportResult=new W,this.sendLoopPromise=this.sendLoop()}return e.prototype.send=function(e){return this.bufferData(e),this.transportResult||(this.transportResult=new W),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 B(this,void 0,void 0,function(){var t,n,r;return j(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 W,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]-1&&this.subject.observers.splice(e,1),0===this.subject.observers.length&&this.subject.cancelCallback&&this.subject.cancelCallback().catch(function(e){})},e}(),d=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(e,t,n){"use strict";n.r(t);var r,o,i=n(3),a=n(4),s=n(43),c=n(0),u=(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)}),l=function(e){function t(t){var n=e.call(this)||this;return n.logger=t,n}return u(t,e),t.prototype.send=function(e){var t=this;return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new i.a):e.method?e.url?new Promise(function(n,r){var o=new XMLHttpRequest;o.open(e.method,e.url,!0),o.withCredentials=!0,o.setRequestHeader("X-Requested-With","XMLHttpRequest"),o.setRequestHeader("Content-Type","text/plain;charset=UTF-8");var s=e.headers;s&&Object.keys(s).forEach(function(e){o.setRequestHeader(e,s[e])}),e.responseType&&(o.responseType=e.responseType),e.abortSignal&&(e.abortSignal.onabort=function(){o.abort(),r(new i.a)}),e.timeout&&(o.timeout=e.timeout),o.onload=function(){e.abortSignal&&(e.abortSignal.onabort=null),o.status>=200&&o.status<300?n(new a.b(o.status,o.statusText,o.response||o.responseText)):r(new i.b(o.statusText,o.status))},o.onerror=function(){t.logger.log(c.a.Warning,"Error from HTTP request. "+o.status+": "+o.statusText+"."),r(new i.b(o.statusText,o.status))},o.ontimeout=function(){t.logger.log(c.a.Warning,"Timeout from HTTP request."),r(new i.c)},o.send(e.content||"")}):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t}(a.a),f=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)}}(),h=function(e){function t(t){var n=e.call(this)||this;return"undefined"!=typeof XMLHttpRequest?n.httpClient=new l(t):n.httpClient=new s.a(t),n}return f(t,e),t.prototype.send=function(e){return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new i.a):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}(a.a),p=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"}(o||(o={}));var d,g=n(1),y=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 E.WebSockets:if(!this.options.WebSocket)throw new Error("'WebSocket' is not supported in your environment.");return new A(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.WebSocket);case E.ServerSentEvents:if(!this.options.EventSource)throw new Error("'EventSource' is not supported in your environment.");return new O(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.EventSource);case E.LongPolling:return new x(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1);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=E[e.transport];if(null==r)return this.logger.log(c.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(c.a.Debug,"Skipping transport '"+E[r]+"' because it was disabled by the client."),new Error("'"+E[r]+"' is disabled by the client.");if(!(e.transferFormats.map(function(e){return S[e]}).indexOf(n)>=0))return this.logger.log(c.a.Debug,"Skipping transport '"+E[r]+"' because it does not support the requested transfer format '"+S[n]+"'."),new Error("'"+E[r]+"' does not support "+S[n]+".");if(r===E.WebSockets&&!this.options.WebSocket||r===E.ServerSentEvents&&!this.options.EventSource)return this.logger.log(c.a.Debug,"Skipping transport '"+E[r]+"' because it is not supported in your environment.'"),new Error("'"+E[r]+"' is not supported in your environment.");this.logger.log(c.a.Debug,"Selecting transport '"+E[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){if(this.logger.log(c.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){if("Disconnecting"===this.connectionState&&this.stopPromiseResolver(),e?this.logger.log(c.a.Error,"Connection disconnected with error '"+e+"'."):this.logger.log(c.a.Information,"Connection disconnected."),this.connectionId=void 0,this.connectionState="Disconnected",this.onclose&&this.connectionStarted){this.connectionStarted=!1;try{this.onclose(e)}catch(t){this.logger.log(c.a.Error,"HttpConnection.onclose("+e+") threw error '"+t+"'.")}}}else this.logger.log(c.a.Warning,"Call to HttpConnection.stopConnection("+e+") was ignored because the connection hasn't yet left the in the connecting state.");else this.logger.log(c.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(!g.c.isBrowser||!window.document)throw new Error("Cannot resolve '"+e+"'.");var t=window.document.createElement("a");return t.href=e,this.logger.log(c.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 q=function(){function e(e){this.transport=e,this.buffer=[],this.executing=!0,this.sendBufferedData=new W,this.transportResult=new W,this.sendLoopPromise=this.sendLoop()}return e.prototype.send=function(e){return this.bufferData(e),this.transportResult||(this.transportResult=new W),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 B(this,void 0,void 0,function(){var t,n,r;return j(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 W,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;o * @license MIT */ -var r=n(50),o=n(51),i=n(52);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=e[t];e[t]=e[n],e[n]=r}function y(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:v(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):v(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function v(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 I(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<=T)return String.fromCharCode.apply(String,e);var n="",r=0;for(;rthis.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 I(this,t,n);case"ascii":return k(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 R(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}.apply(this,arguments)},c.prototype.equals=function(e){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===c.compare(this,e)},c.prototype.inspect=function(){var e="",n=t.INSPECT_MAX_BYTES;return this.length>0&&(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 b(this,e,t,n);case"utf8":case"utf-8":return m(this,e,t,n);case"ascii":return w(this,e,t,n);case"latin1":case"binary":return E(this,e,t,n);case"base64":return S(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(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)}};var T=4096;function k(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 O(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 L(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 A(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 B(e,t,n,r,i){return i||A(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function j(e,t,n,r,i){return i||A(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||D(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||D(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||D(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||D(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||D(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||D(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||D(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||D(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||D(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||D(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||D(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||D(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||D(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||D(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||D(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||D(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)||O(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||O(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||O(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||O(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||O(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||O(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);O(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);O(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||O(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||O(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||O(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||O(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||O(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 B(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return j(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return j(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(10))},function(e,t,n){"use strict";n.d(t,"a",function(){return r});var r=function(){function e(){}return e.prototype.log=function(e,t){},e.instance=new e,e}()},function(e,t,n){"use strict";n.d(t,"a",function(){return r});var r=function(){function e(){}return e.write=function(t){return""+t+e.RecordSeparator},e.parse=function(t){if(t[t.length-1]!==e.RecordSeparator)throw new Error("Message is incomplete.");var n=t.split(e.RecordSeparator);return n.pop(),n},e.RecordSeparatorCode=30,e.RecordSeparator=String.fromCharCode(e.RecordSeparatorCode),e}()},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){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(23),o=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=f;var i=n(21);i.inherits=n(16);var a=n(36),s=n(41);i.inherits(f,a);for(var c=o(s.prototype),u=0;u=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";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){e.done?o(e.value):new n(function(t){t(e.value)}).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=(o=a.trys).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&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return 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,n){var r=n(6),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),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){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),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"}(t.LogLevel||(t.LogLevel={}))},function(e,t,n){"use strict";var r;!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=u();if(o.invokeDotNetFromJS){var i=JSON.stringify(r,g),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 c(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 c=JSON.stringify(i,g);u().beginInvokeDotNetFromJS(a,e,t,r,c)}catch(e){l(a,!1,e)}return s}function u(){if(null!==i)return i;throw new Error("No .NET call dispatcher has been set.")}function l(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 h(e){return e instanceof Error?e.message+"\n"+e.stack:e?e.toString():"null"}function p(e){if(r.hasOwnProperty(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;r1)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&&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="",_=!1,I=["{","}"];(p(n)&&(_=!0,I=["[","]"]),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||_&&0!=n.length?r<0?m(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=_?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,I)):I[0]+w+I[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")),k(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]"===_(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===_(e)}function S(e){return w(e)&&("[object Error]"===_(e)||e instanceof Error)}function C(e){return"function"==typeof e}function _(e){return Object.prototype.toString.call(e)}function I(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(54);var T=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function k(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){var e,n;console.log("%s - %s",(e=new Date,n=[I(e.getHours()),I(e.getMinutes()),I(e.getSeconds())].join(":"),[e.getDate(),T[e.getMonth()],n].join(" ")),t.format.apply(t,arguments))},t.inherits=n(55),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 x(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):T(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>=S?e=S:(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"),R(e)}function T(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 O(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 M(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?O(this):_(this),null;if(0===(e=C(e,t))&&t.ended)return 0===t.length&&O(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e0?D(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&O(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,R(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!==M(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?this:(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 f(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=function(){for(var e=[],t=0;t0&&(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=d(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 h(this,e,!0)},s.prototype.rawListeners=function(e){return h(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):p.call(e,t)},s.prototype.listenerCount=p,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){e.exports=n(37).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(61).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(21);u.inherits=n(16);var l={deprecate:n(64)},f=n(38),h=n(15).Buffer,p=o.Uint8Array||function(){};var d,g=n(39);function y(){}function v(e,t){s=s||n(11),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(_,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),_(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(11),!(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(),_(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"),_(e,t)})}function _(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,_(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(20),n(62).setImmediate,n(10))},function(e,t,n){"use strict";e.exports=a;var r=n(11),o=n(21);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.length=200&&c.statusCode<300?r(new a.b(c.statusCode,c.statusMessage||"",u)):o(new i.b(c.statusMessage||"",c.statusCode||0))});t.abortSignal&&(t.abortSignal.onabort=function(){f.abort(),o(new i.a)})})},n.prototype.getCookieString=function(e){return this.cookieJar.getCookieString(e)},n}(a.a)}).call(this,n(6).Buffer)},function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return i});var r=n(8),o=n(1),i=function(){function t(){}return t.prototype.writeHandshakeRequest=function(e){return r.a.write(JSON.stringify(e))},t.prototype.parseHandshakeResponse=function(t){var n,i;if(Object(o.g)(t)||void 0!==e&&t instanceof e){var a=new Uint8Array(t);if(-1===(c=a.indexOf(r.a.RecordSeparatorCode)))throw new Error("Message is incomplete.");var s=c+1;n=String.fromCharCode.apply(null,a.slice(0,s)),i=a.byteLength>s?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(6).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){e.done?o(e.value):new n(function(t){t(e.value)}).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=(o=a.trys).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?r-4:r,f=0;f>16&255,s[c++]=t>>8&255,s[c++]=255&t;2===a&&(t=o[e.charCodeAt(f)]<<2|o[e.charCodeAt(f+1)]>>4,s[c++]=255&t);1===a&&(t=o[e.charCodeAt(f)]<<10|o[e.charCodeAt(f+1)]<<4|o[e.charCodeAt(f+2)]>>2,s[c++]=t>>8&255,s[c++]=255&t);return s},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(50),o=n(51),i=n(52);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=e[t];e[t]=e[n],e[n]=r}function y(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:v(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):v(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function v(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 I(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<=T)return String.fromCharCode.apply(String,e);var n="",r=0;for(;rthis.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 I(this,t,n);case"ascii":return k(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 R(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}.apply(this,arguments)},c.prototype.equals=function(e){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===c.compare(this,e)},c.prototype.inspect=function(){var e="",n=t.INSPECT_MAX_BYTES;return this.length>0&&(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 b(this,e,t,n);case"utf8":case"utf-8":return m(this,e,t,n);case"ascii":return w(this,e,t,n);case"latin1":case"binary":return E(this,e,t,n);case"base64":return S(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(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)}};var T=4096;function k(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 O(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 L(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 A(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 B(e,t,n,r,i){return i||A(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function j(e,t,n,r,i){return i||A(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||D(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||D(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||D(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||D(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||D(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||D(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||D(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||D(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||D(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||D(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||D(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||D(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||D(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||D(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||D(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||D(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)||O(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||O(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||O(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||O(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||O(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||O(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);O(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);O(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||O(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||O(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||O(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||O(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||O(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 B(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return j(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return j(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(10))},function(e,t,n){"use strict";n.d(t,"a",function(){return r});var r=function(){function e(){}return e.prototype.log=function(e,t){},e.instance=new e,e}()},function(e,t,n){"use strict";n.d(t,"a",function(){return r});var r=function(){function e(){}return e.write=function(t){return""+t+e.RecordSeparator},e.parse=function(t){if(t[t.length-1]!==e.RecordSeparator)throw new Error("Message is incomplete.");var n=t.split(e.RecordSeparator);return n.pop(),n},e.RecordSeparatorCode=30,e.RecordSeparator=String.fromCharCode(e.RecordSeparatorCode),e}()},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){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(23),o=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=f;var i=n(21);i.inherits=n(16);var a=n(36),s=n(41);i.inherits(f,a);for(var c=o(s.prototype),u=0;u=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";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){e.done?o(e.value):new n(function(t){t(e.value)}).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=(o=a.trys).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&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return 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,n){var r=n(6),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),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){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),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"}(t.LogLevel||(t.LogLevel={}))},function(e,t,n){"use strict";var r;!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=u();if(o.invokeDotNetFromJS){var i=JSON.stringify(r,g),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 c(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 c=JSON.stringify(i,g);u().beginInvokeDotNetFromJS(a,e,t,r,c)}catch(e){l(a,!1,e)}return s}function u(){if(null!==i)return i;throw new Error("No .NET call dispatcher has been set.")}function l(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 h(e){return e instanceof Error?e.message+"\n"+e.stack:e?e.toString():"null"}function p(e){if(r.hasOwnProperty(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;r1)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&&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="",_=!1,I=["{","}"];(p(n)&&(_=!0,I=["[","]"]),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||_&&0!=n.length?r<0?m(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=_?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,I)):I[0]+w+I[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")),k(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]"===_(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===_(e)}function S(e){return w(e)&&("[object Error]"===_(e)||e instanceof Error)}function C(e){return"function"==typeof e}function _(e){return Object.prototype.toString.call(e)}function I(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(54);var T=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function k(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){var e,n;console.log("%s - %s",(e=new Date,n=[I(e.getHours()),I(e.getMinutes()),I(e.getSeconds())].join(":"),[e.getDate(),T[e.getMonth()],n].join(" ")),t.format.apply(t,arguments))},t.inherits=n(55),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 x(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):T(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>=S?e=S:(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"),R(e)}function T(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 O(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 M(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?O(this):_(this),null;if(0===(e=C(e,t))&&t.ended)return 0===t.length&&O(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e0?D(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&O(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,R(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!==M(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?this:(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 f(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=function(){for(var e=[],t=0;t0&&(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=d(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 h(this,e,!0)},s.prototype.rawListeners=function(e){return h(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):p.call(e,t)},s.prototype.listenerCount=p,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){e.exports=n(37).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(61).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(21);u.inherits=n(16);var l={deprecate:n(64)},f=n(38),h=n(15).Buffer,p=o.Uint8Array||function(){};var d,g=n(39);function y(){}function v(e,t){s=s||n(11),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(_,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),_(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(11),!(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(),_(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"),_(e,t)})}function _(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,_(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(20),n(62).setImmediate,n(10))},function(e,t,n){"use strict";e.exports=a;var r=n(11),o=n(21);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.length=200&&c.statusCode<300?r(new a.b(c.statusCode,c.statusMessage||"",u)):o(new i.b(c.statusMessage||"",c.statusCode||0))});t.abortSignal&&(t.abortSignal.onabort=function(){f.abort(),o(new i.a)})})},n.prototype.getCookieString=function(e){return this.cookieJar.getCookieString(e)},n}(a.a)}).call(this,n(6).Buffer)},function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return i});var r=n(8),o=n(1),i=function(){function t(){}return t.prototype.writeHandshakeRequest=function(e){return r.a.write(JSON.stringify(e))},t.prototype.parseHandshakeResponse=function(t){var n,i;if(Object(o.g)(t)||void 0!==e&&t instanceof e){var a=new Uint8Array(t);if(-1===(c=a.indexOf(r.a.RecordSeparatorCode)))throw new Error("Message is incomplete.");var s=c+1;n=String.fromCharCode.apply(null,a.slice(0,s)),i=a.byteLength>s?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(6).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){e.done?o(e.value):new n(function(t){t(e.value)}).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=(o=a.trys).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?r-4:r,f=0;f>16&255,s[c++]=t>>8&255,s[c++]=255&t;2===a&&(t=o[e.charCodeAt(f)]<<2|o[e.charCodeAt(f+1)]>>4,s[c++]=255&t);1===a&&(t=o[e.charCodeAt(f)]<<10|o[e.charCodeAt(f+1)]<<4|o[e.charCodeAt(f+2)]>>2,s[c++]=t>>8&255,s[c++]=255&t);return s},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){ /*! * 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 d17306dbf6..c97f0f1db7 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}),n(25),n(9);var r=n(26),o=n(14),a={},i=!1;function l(e,t,n){var o=a[e];o||(o=a[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=l,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");l(n||0,o.toLogicalElement(r,!0),t)},t.renderBatch=function(e,t){var n=a[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),l=r.values(o),u=r.count(o),s=t.referenceFrames(),c=r.values(s),f=t.diffReader,d=0;d0&&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 e[r]=[],e}function l(e,t,n){var a=e;if(e instanceof Comment&&(s(a)&&s(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=s(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 s(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===c(e).namespaceURI},t.getLogicalChildrenArray=s,t.permuteLogicalChildren=function(e,t){var n=s(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=c},,,,function(e,t,n){"use strict";var r;!function(e){window.DotNet=e;var t=[],n={},r={},o=1,a=null;function i(e){t.push(e)}function l(e,t,n,r){var o=s();if(o.invokeDotNetFromJS){var a=JSON.stringify(r,h),i=o.invokeDotNetFromJS(e,t,n,a);return i?f(i):null}throw new Error("The current dispatcher does not support synchronous calls from JS to .NET. Use invokeMethodAsync instead.")}function u(e,t,r,a){if(e&&r)throw new Error("For instance method calls, assemblyName should be null. Received '"+e+"'.");var i=o++,l=new Promise(function(e,t){n[i]={resolve:e,reject:t}});try{var u=JSON.stringify(a,h);s().beginInvokeDotNetFromJS(i,e,t,r,u)}catch(e){c(i,!1,e)}return l}function s(){if(null!==a)return a;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(r.hasOwnProperty(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){a=e},e.attachReviver=i,e.invokeMethod=function(e,t){for(var n=[],r=2;r0&&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]-1?a.substring(0,l):"",s=l>-1?a.substring(l+1):a,c=t.monoPlatform.findMethod(e,u,s,i);t.monoPlatform.callMethod(c,null,r)},callMethod:function(e,n,r){if(r.length>4)throw new Error("Currently, MonoPlatform supports passing a maximum of 4 arguments from JS to .NET. You tried to pass "+r.length+".");var o=Module.stackSave();try{for(var a=Module.stackAlloc(r.length),l=Module.stackAlloc(4),u=0;u>2,r=Module.HEAPU32[n+1];if(r>v)throw new Error("Cannot read uint64 with high order part "+r+", because the result would exceed Number.MAX_SAFE_INTEGER.");return r*h+Module.HEAPU32[n]},readFloatField:function(e,t){return Module.getValue(e+(t||0),"float")},readObjectField:function(e,t){return Module.getValue(e+(t||0),"i32")},readStringField:function(e,n){var r=Module.getValue(e+(n||0),"i32");return 0===r?null:t.monoPlatform.toJavaScriptString(r)},readStructField:function(e,t){return e+(t||0)}};var b=document.createElement("a");function w(e){return e+12}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(33),o=window.chrome&&navigator.userAgent.indexOf("Edge")<0,a=!1;function i(){return a&&o}t.hasDebuggingEnabled=i,t.attachDebuggerHotkey=function(e){a=e.some(function(e){return/\.pdb$/.test(r.getFileNameFromUrl(e))});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&&(a?o?((t=document.createElement("a")).href="_framework/debug?url="+encodeURIComponent(location.href),t.target="_blank",t.rel="noopener noreferrer",t.click()):console.error("Currently, only Chrome is 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(9),o=function(){function e(e){this.batchAddress=e,this.arrayRangeReader=a,this.arrayBuilderSegmentReader=i,this.diffReader=l,this.editReader=u,this.frameReader=s}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 c(e,t,l.structLength)},e.prototype.referenceFramesEntry=function(e,t){return c(e,t,s.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 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)}},l={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 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)}},s={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)},attributeEventHandlerId:function(e){return r.platform.readUint64Field(e,8)}};function c(e,t,n){return r.platform.getArrayEntryPtr(e,t,n)}}]); \ No newline at end of file +!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}),n(25),n(9);var r=n(26),o=n(14),a={},i=!1;function l(e,t,n){var o=a[e];o||(o=a[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=l,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");l(n||0,o.toLogicalElement(r,!0),t)},t.renderBatch=function(e,t){var n=a[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),l=r.values(o),u=r.count(o),s=t.referenceFrames(),c=r.values(s),f=t.diffReader,d=0;d0&&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 e[r]=[],e}function l(e,t,n){var a=e;if(e instanceof Comment&&(s(a)&&s(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=s(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 s(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===c(e).namespaceURI},t.getLogicalChildrenArray=s,t.permuteLogicalChildren=function(e,t){var n=s(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=c},,,,function(e,t,n){"use strict";var r;!function(e){window.DotNet=e;var t=[],n={},r={},o=1,a=null;function i(e){t.push(e)}function l(e,t,n,r){var o=s();if(o.invokeDotNetFromJS){var a=JSON.stringify(r,h),i=o.invokeDotNetFromJS(e,t,n,a);return i?f(i):null}throw new Error("The current dispatcher does not support synchronous calls from JS to .NET. Use invokeMethodAsync instead.")}function u(e,t,r,a){if(e&&r)throw new Error("For instance method calls, assemblyName should be null. Received '"+e+"'.");var i=o++,l=new Promise(function(e,t){n[i]={resolve:e,reject:t}});try{var u=JSON.stringify(a,h);s().beginInvokeDotNetFromJS(i,e,t,r,u)}catch(e){c(i,!1,e)}return l}function s(){if(null!==a)return a;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(r.hasOwnProperty(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){a=e},e.attachReviver=i,e.invokeMethod=function(e,t){for(var n=[],r=2;r0&&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]-1?a.substring(0,l):"",s=l>-1?a.substring(l+1):a,c=t.monoPlatform.findMethod(e,u,s,i);t.monoPlatform.callMethod(c,null,r)},callMethod:function(e,n,r){if(r.length>4)throw new Error("Currently, MonoPlatform supports passing a maximum of 4 arguments from JS to .NET. You tried to pass "+r.length+".");var o=Module.stackSave();try{for(var a=Module.stackAlloc(r.length),l=Module.stackAlloc(4),u=0;u>2,r=Module.HEAPU32[n+1];if(r>v)throw new Error("Cannot read uint64 with high order part "+r+", because the result would exceed Number.MAX_SAFE_INTEGER.");return r*h+Module.HEAPU32[n]},readFloatField:function(e,t){return Module.getValue(e+(t||0),"float")},readObjectField:function(e,t){return Module.getValue(e+(t||0),"i32")},readStringField:function(e,n){var r=Module.getValue(e+(n||0),"i32");return 0===r?null:t.monoPlatform.toJavaScriptString(r)},readStructField:function(e,t){return e+(t||0)}};var b=document.createElement("a");function w(e){return e+12}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(33),o=window.chrome&&navigator.userAgent.indexOf("Edge")<0,a=!1;function i(){return a&&o}t.hasDebuggingEnabled=i,t.attachDebuggerHotkey=function(e){a=e.some(function(e){return/\.pdb$/.test(r.getFileNameFromUrl(e))});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&&(a?o?((t=document.createElement("a")).href="_framework/debug?url="+encodeURIComponent(location.href),t.target="_blank",t.rel="noopener noreferrer",t.click()):console.error("Currently, only Chrome is 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(9),o=function(){function e(e){this.batchAddress=e,this.arrayRangeReader=a,this.arrayBuilderSegmentReader=i,this.diffReader=l,this.editReader=u,this.frameReader=s}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 c(e,t,l.structLength)},e.prototype.referenceFramesEntry=function(e,t){return c(e,t,s.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 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)}},l={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 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)}},s={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)},attributeEventHandlerId:function(e){return r.platform.readUint64Field(e,8)}};function c(e,t,n){return r.platform.getArrayEntryPtr(e,t,n)}}]); \ No newline at end of file diff --git a/src/Components/Web.JS/src/Rendering/BrowserRenderer.ts b/src/Components/Web.JS/src/Rendering/BrowserRenderer.ts index 15175a5583..67a01446b9 100644 --- a/src/Components/Web.JS/src/Rendering/BrowserRenderer.ts +++ b/src/Components/Web.JS/src/Rendering/BrowserRenderer.ts @@ -341,9 +341,18 @@ export class BrowserRenderer { } } - private tryApplyValueProperty(batch: RenderBatch, element: Element, attributeFrame: RenderTreeFrame | null) { + private tryApplyValueProperty(batch: RenderBatch, element: Element, attributeFrame: RenderTreeFrame | null): boolean { // Certain elements have built-in behaviour for their 'value' property const frameReader = batch.frameReader; + + if (element.tagName === 'INPUT' && element.getAttribute('type') === 'time' && !element.getAttribute('step')) { + const timeValue = attributeFrame ? frameReader.attributeValue(attributeFrame) : null; + if (timeValue) { + element['value'] = timeValue.substring(0, 5); + return true; + } + } + switch (element.tagName) { case 'INPUT': case 'SELECT': diff --git a/src/Components/Web.JS/src/Rendering/EventForDotNet.ts b/src/Components/Web.JS/src/Rendering/EventForDotNet.ts index 63dea2cc1f..042322b5a8 100644 --- a/src/Components/Web.JS/src/Rendering/EventForDotNet.ts +++ b/src/Components/Web.JS/src/Rendering/EventForDotNet.ts @@ -1,13 +1,19 @@ export class EventForDotNet { - constructor(public readonly type: EventArgsType, public readonly data: TData) { + public constructor(public readonly type: EventArgsType, public readonly data: TData) { } - static fromDOMEvent(event: Event): EventForDotNet { + public static fromDOMEvent(event: Event): EventForDotNet { const element = event.target as Element; switch (event.type) { case 'input': case 'change': { + + if (isTimeBasedInput(element)) { + const normalizedValue = normalizeTimeBasedValue(element); + return new EventForDotNet('change', { type: event.type, value: normalizedValue }); + } + const targetIsCheckbox = isCheckbox(element); const newValue = targetIsCheckbox ? !!element['checked'] : element['value']; return new EventForDotNet('change', { type: event.type, value: newValue }); @@ -36,7 +42,7 @@ export class EventForDotNet { case 'keydown': case 'keyup': case 'keypress': - return new EventForDotNet('keyboard', parseKeyboardEvent(event)); + return new EventForDotNet('keyboard', parseKeyboardEvent(event as KeyboardEvent)); case 'contextmenu': case 'click': @@ -46,10 +52,10 @@ export class EventForDotNet { case 'mousedown': case 'mouseup': case 'dblclick': - return new EventForDotNet('mouse', parseMouseEvent(event)); + return new EventForDotNet('mouse', parseMouseEvent(event as MouseEvent)); case 'error': - return new EventForDotNet('error', parseErrorEvent(event)); + return new EventForDotNet('error', parseErrorEvent(event as ErrorEvent)); case 'loadstart': case 'timeout': @@ -57,7 +63,7 @@ export class EventForDotNet { case 'load': case 'loadend': case 'progress': - return new EventForDotNet('progress', parseProgressEvent(event)); + return new EventForDotNet('progress', parseProgressEvent(event as ProgressEvent)); case 'touchcancel': case 'touchend': @@ -65,7 +71,7 @@ export class EventForDotNet { case 'touchenter': case 'touchleave': case 'touchstart': - return new EventForDotNet('touch', parseTouchEvent(event)); + return new EventForDotNet('touch', parseTouchEvent(event as TouchEvent)); case 'gotpointercapture': case 'lostpointercapture': @@ -77,11 +83,11 @@ export class EventForDotNet { case 'pointerout': case 'pointerover': case 'pointerup': - return new EventForDotNet('pointer', parsePointerEvent(event)); + return new EventForDotNet('pointer', parsePointerEvent(event as PointerEvent)); case 'wheel': case 'mousewheel': - return new EventForDotNet('wheel', parseWheelEvent(event)); + return new EventForDotNet('wheel', parseWheelEvent(event as WheelEvent)); default: return new EventForDotNet('unknown', { type: event.type }); @@ -204,8 +210,38 @@ function parseMouseEvent(event: MouseEvent) { }; } -function isCheckbox(element: Element | null) { - return element && element.tagName === 'INPUT' && element.getAttribute('type') === 'checkbox'; +function isCheckbox(element: Element | null): boolean { + return !!element && element.tagName === 'INPUT' && element.getAttribute('type') === 'checkbox'; +} + +const timeBasedInputs = [ + 'date', + 'datetime-local', + 'month', + 'time', + 'week', +]; + +function isTimeBasedInput(element: Element): element is HTMLInputElement { + return timeBasedInputs.indexOf(element.getAttribute('type')!) !== -1; +} + +function normalizeTimeBasedValue(element: HTMLInputElement): string { + const value = element.value; + const type = element.type; + switch (type) { + case 'date': + case 'datetime-local': + case 'month': + return value; + case 'time': + return value.length === 5 ? value + ':00' : value; // Convert hh:mm to hh:mm:00 + case 'week': + // For now we are not going to normalize input type week as it is not trivial + return value; + } + + throw new Error(`Invalid element type '${type}'.`); } // The following interfaces must be kept in sync with the UIEventArgs C# classes diff --git a/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.netcoreapp.cs b/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.netcoreapp.cs index 7987cfff11..73061225e9 100644 --- a/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.netcoreapp.cs +++ b/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.netcoreapp.cs @@ -172,9 +172,15 @@ namespace Microsoft.AspNetCore.Components.Web [Microsoft.AspNetCore.Components.BindInputElementAttribute("checkbox", null, "checked", "onchange", false, null)] [Microsoft.AspNetCore.Components.BindInputElementAttribute("date", "value", "value", "onchange", true, "yyyy-MM-dd")] [Microsoft.AspNetCore.Components.BindInputElementAttribute("date", null, "value", "onchange", true, "yyyy-MM-dd")] + [Microsoft.AspNetCore.Components.BindInputElementAttribute("datetime-local", "value", "value", "onchange", true, "yyyy-MM-ddTHH:mm:ss")] + [Microsoft.AspNetCore.Components.BindInputElementAttribute("datetime-local", null, "value", "onchange", true, "yyyy-MM-ddTHH:mm:ss")] + [Microsoft.AspNetCore.Components.BindInputElementAttribute("month", "value", "value", "onchange", true, "yyyy-MM")] + [Microsoft.AspNetCore.Components.BindInputElementAttribute("month", null, "value", "onchange", true, "yyyy-MM")] [Microsoft.AspNetCore.Components.BindInputElementAttribute("number", "value", "value", "onchange", true, null)] [Microsoft.AspNetCore.Components.BindInputElementAttribute("number", null, "value", "onchange", true, null)] [Microsoft.AspNetCore.Components.BindInputElementAttribute("text", null, "value", "onchange", false, null)] + [Microsoft.AspNetCore.Components.BindInputElementAttribute("time", "value", "value", "onchange", true, "HH:mm:ss")] + [Microsoft.AspNetCore.Components.BindInputElementAttribute("time", null, "value", "onchange", true, "HH:mm:ss")] [Microsoft.AspNetCore.Components.BindInputElementAttribute(null, "value", "value", "onchange", false, null)] [Microsoft.AspNetCore.Components.BindInputElementAttribute(null, null, "value", "onchange", false, null)] public static partial class BindAttributes diff --git a/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.netstandard2.0.cs b/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.netstandard2.0.cs index 7987cfff11..73061225e9 100644 --- a/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.netstandard2.0.cs +++ b/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.netstandard2.0.cs @@ -172,9 +172,15 @@ namespace Microsoft.AspNetCore.Components.Web [Microsoft.AspNetCore.Components.BindInputElementAttribute("checkbox", null, "checked", "onchange", false, null)] [Microsoft.AspNetCore.Components.BindInputElementAttribute("date", "value", "value", "onchange", true, "yyyy-MM-dd")] [Microsoft.AspNetCore.Components.BindInputElementAttribute("date", null, "value", "onchange", true, "yyyy-MM-dd")] + [Microsoft.AspNetCore.Components.BindInputElementAttribute("datetime-local", "value", "value", "onchange", true, "yyyy-MM-ddTHH:mm:ss")] + [Microsoft.AspNetCore.Components.BindInputElementAttribute("datetime-local", null, "value", "onchange", true, "yyyy-MM-ddTHH:mm:ss")] + [Microsoft.AspNetCore.Components.BindInputElementAttribute("month", "value", "value", "onchange", true, "yyyy-MM")] + [Microsoft.AspNetCore.Components.BindInputElementAttribute("month", null, "value", "onchange", true, "yyyy-MM")] [Microsoft.AspNetCore.Components.BindInputElementAttribute("number", "value", "value", "onchange", true, null)] [Microsoft.AspNetCore.Components.BindInputElementAttribute("number", null, "value", "onchange", true, null)] [Microsoft.AspNetCore.Components.BindInputElementAttribute("text", null, "value", "onchange", false, null)] + [Microsoft.AspNetCore.Components.BindInputElementAttribute("time", "value", "value", "onchange", true, "HH:mm:ss")] + [Microsoft.AspNetCore.Components.BindInputElementAttribute("time", null, "value", "onchange", true, "HH:mm:ss")] [Microsoft.AspNetCore.Components.BindInputElementAttribute(null, "value", "value", "onchange", false, null)] [Microsoft.AspNetCore.Components.BindInputElementAttribute(null, null, "value", "onchange", false, null)] public static partial class BindAttributes diff --git a/src/Components/Web/src/Web/BindAttributes.cs b/src/Components/Web/src/Web/BindAttributes.cs index ecff551b7c..a6d5ce9031 100644 --- a/src/Components/Web/src/Web/BindAttributes.cs +++ b/src/Components/Web/src/Web/BindAttributes.cs @@ -30,6 +30,20 @@ namespace Microsoft.AspNetCore.Components.Web [BindInputElement("date", null, "value", "onchange", isInvariantCulture: true, format: "yyyy-MM-dd")] [BindInputElement("date", "value", "value", "onchange", isInvariantCulture: true, format: "yyyy-MM-dd")] + // type="datetime-local" is invariant culture with a specific format. + // See https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-date-and-time-format-strings for details. + [BindInputElement("datetime-local", null, "value", "onchange", isInvariantCulture: true, format: "yyyy-MM-ddTHH:mm:ss")] + [BindInputElement("datetime-local", "value", "value", "onchange", isInvariantCulture: true, format: "yyyy-MM-ddTHH:mm:ss")] + + // type="month" is invariant culture with a specific format. + // See https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-date-and-time-format-strings for details. + [BindInputElement("month", null, "value", "onchange", isInvariantCulture: true, format: "yyyy-MM")] + [BindInputElement("month", "value", "value", "onchange", isInvariantCulture: true, format: "yyyy-MM")] + + // type="time" is invariant culture with a specific format. + [BindInputElement("time", null, "value", "onchange", isInvariantCulture: true, format: "HH:mm:ss")] + [BindInputElement("time", "value", "value", "onchange", isInvariantCulture: true, format: "HH:mm:ss")] + [BindElement("select", null, "value", "onchange")] [BindElement("textarea", null, "value", "onchange")] public static class BindAttributes diff --git a/src/Components/test/E2ETest/Tests/BindTest.cs b/src/Components/test/E2ETest/Tests/BindTest.cs index a4804336f1..40e9494a9b 100644 --- a/src/Components/test/E2ETest/Tests/BindTest.cs +++ b/src/Components/test/E2ETest/Tests/BindTest.cs @@ -2,10 +2,12 @@ // 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 BasicTestApp; using Microsoft.AspNetCore.Components.E2ETest.Infrastructure; using Microsoft.AspNetCore.Components.E2ETest.Infrastructure.ServerFixtures; using Microsoft.AspNetCore.E2ETesting; +using Moq; using OpenQA.Selenium; using OpenQA.Selenium.Support.UI; using Xunit; @@ -1018,5 +1020,263 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests Browser.Equal(expected.DateTime, () => DateTimeOffset.Parse(boundValue.Text).DateTime); Assert.Equal(expected.DateTime, DateTimeOffset.Parse(mirrorValue.GetAttribute("value")).DateTime); } + + // For date comparisons, we parse (non-formatted) values to compare them. Client-side and server-side + // Blazor have different formatting behaviour by default. + [Fact] + public void CanBindDateTimeLocalTextboxDateTime() + { + var target = Browser.FindElement(By.Id("datetime-local-textbox-datetime")); + var boundValue = Browser.FindElement(By.Id("datetime-local-textbox-datetime-value")); + var mirrorValue = Browser.FindElement(By.Id("datetime-local-textbox-datetime-mirror")); + var expected = new DateTime(1985, 3, 4); + Assert.Equal(expected, DateTime.Parse(target.GetAttribute("value"))); + Assert.Equal(expected, DateTime.Parse(boundValue.Text)); + Assert.Equal(expected, DateTime.Parse(mirrorValue.GetAttribute("value"))); + + // Clear textbox; value updates to 01/01/0001 because that's the default + target.Clear(); + expected = default; + Browser.Equal(expected, () => DateTime.Parse(target.GetAttribute("value"))); + Assert.Equal(expected, DateTime.Parse(boundValue.Text)); + Assert.Equal(expected, DateTime.Parse(mirrorValue.GetAttribute("value"))); + + // We have to do it this way because the browser gets in the way when sending keys to the input + // element directly. + ApplyInputValue("#datetime-local-textbox-datetime", "2000-01-02T04:05:06"); + expected = new DateTime(2000, 1, 2, 04, 05, 06); + Browser.Equal(expected, () => DateTime.Parse(boundValue.Text)); + Assert.Equal(expected, DateTime.Parse(mirrorValue.GetAttribute("value"))); + } + + // For date comparisons, we parse (non-formatted) values to compare them. Client-side and server-side + // Blazor have different formatting behaviour by default. + [Fact] + public void CanBindDateTimeLocalTextboxNullableDateTime() + { + var target = Browser.FindElement(By.Id("datetime-local-textbox-nullable-datetime")); + var boundValue = Browser.FindElement(By.Id("datetime-local-textbox-nullable-datetime-value")); + var mirrorValue = Browser.FindElement(By.Id("datetime-local-textbox-nullable-datetime-mirror")); + Assert.Equal(string.Empty, target.GetAttribute("value")); + Assert.Equal(string.Empty, boundValue.Text); + Assert.Equal(string.Empty, mirrorValue.GetAttribute("value")); + + // Modify target; verify value is updated and that textboxes linked to the same data are updated + target.Clear(); + Browser.Equal("", () => boundValue.Text); + Assert.Equal("", mirrorValue.GetAttribute("value")); + + // Modify target; verify value is updated and that textboxes linked to the same data are updated + // We have to do it this way because the browser gets in the way when sending keys to the input + // element directly. + ApplyInputValue("#datetime-local-textbox-nullable-datetime", "2000-01-02T04:05:06"); + var expected = new DateTime(2000, 1, 2, 04, 05, 06); + Browser.Equal(expected, () => DateTime.Parse(boundValue.Text)); + Assert.Equal(expected, DateTime.Parse(mirrorValue.GetAttribute("value"))); + + // Modify target; verify value is updated and that textboxes linked to the same data are updated + target.Clear(); + target.SendKeys("\t"); + Browser.Equal(string.Empty, () => boundValue.Text); + Assert.Equal(string.Empty, mirrorValue.GetAttribute("value")); + } + + // For date comparisons, we parse (non-formatted) values to compare them. Client-side and server-side + // Blazor have different formatting behaviour by default. + [Fact] + public void CanBindMonthTextboxDateTime() + { + var target = Browser.FindElement(By.Id("month-textbox-datetime")); + var boundValue = Browser.FindElement(By.Id("month-textbox-datetime-value")); + var mirrorValue = Browser.FindElement(By.Id("month-textbox-datetime-mirror")); + var expected = new DateTime(1985, 3, 1); + Assert.Equal(expected, DateTime.Parse(target.GetAttribute("value"))); + // When the value gets displayed the first time it gets truncated to the 1st day, + // until there is no change the bound value doesn't get updated. + Assert.Equal(expected.AddDays(3), DateTime.Parse(boundValue.Text)); + Assert.Equal(expected.AddDays(3), DateTime.Parse(mirrorValue.GetAttribute("value"))); + + // Clear textbox; value updates to 01/01/0001 because that's the default + target.Clear(); + expected = default; + Browser.Equal(expected, () => DateTime.Parse(target.GetAttribute("value"))); + Assert.Equal(expected, DateTime.Parse(boundValue.Text)); + Assert.Equal(expected, DateTime.Parse(mirrorValue.GetAttribute("value"))); + + // We have to do it this way because the browser gets in the way when sending keys to the input + // element directly. + ApplyInputValue("#month-textbox-datetime", "2000-02"); + expected = new DateTime(2000, 2, 1); + Browser.Equal(expected, () => DateTime.Parse(boundValue.Text)); + Assert.Equal(expected, DateTime.Parse(mirrorValue.GetAttribute("value"))); + } + + // For date comparisons, we parse (non-formatted) values to compare them. Client-side and server-side + // Blazor have different formatting behaviour by default. + [Fact] + public void CanBindMonthTextboxNullableDateTime() + { + var target = Browser.FindElement(By.Id("month-textbox-nullable-datetime")); + var boundValue = Browser.FindElement(By.Id("month-textbox-nullable-datetime-value")); + var mirrorValue = Browser.FindElement(By.Id("month-textbox-nullable-datetime-mirror")); + Assert.Equal(string.Empty, target.GetAttribute("value")); + Assert.Equal(string.Empty, boundValue.Text); + Assert.Equal(string.Empty, mirrorValue.GetAttribute("value")); + + // Modify target; verify value is updated and that textboxes linked to the same data are updated + target.Clear(); + Browser.Equal("", () => boundValue.Text); + Assert.Equal("", mirrorValue.GetAttribute("value")); + + // Modify target; verify value is updated and that textboxes linked to the same data are updated + // We have to do it this way because the browser gets in the way when sending keys to the input + // element directly. + ApplyInputValue("#month-textbox-nullable-datetime", "2000-02"); + var expected = new DateTime(2000, 2, 1); + Browser.Equal(expected, () => DateTime.Parse(boundValue.Text)); + Assert.Equal(expected, DateTime.Parse(mirrorValue.GetAttribute("value"))); + + // Modify target; verify value is updated and that textboxes linked to the same data are updated + target.Clear(); + target.SendKeys("\t"); + Browser.Equal(string.Empty, () => boundValue.Text); + Assert.Equal(string.Empty, mirrorValue.GetAttribute("value")); + } + + // For date comparisons, we parse (non-formatted) values to compare them. Client-side and server-side + // Blazor have different formatting behaviour by default. + [Fact] + public void CanBindTimeTextboxDateTime() + { + var target = Browser.FindElement(By.Id("time-textbox-datetime")); + var boundValue = Browser.FindElement(By.Id("time-textbox-datetime-value")); + var mirrorValue = Browser.FindElement(By.Id("time-textbox-datetime-mirror")); + var expected = DateTime.Now.Date.AddHours(8).AddMinutes(5); + Assert.Equal(expected, DateTime.Parse(target.GetAttribute("value"))); + Assert.Equal(expected, DateTime.Parse(boundValue.Text)); + Assert.Equal(expected, DateTime.Parse(mirrorValue.GetAttribute("value"))); + + // Clear textbox; value updates to 00:00 because that's the default + target.Clear(); + expected = default; + Browser.Equal(DateTime.Now.Date, () => DateTime.Parse(target.GetAttribute("value"))); + Assert.Equal(default, DateTime.Parse(boundValue.Text)); + Assert.Equal(default, DateTime.Parse(mirrorValue.GetAttribute("value"))); + + // We have to do it this way because the browser gets in the way when sending keys to the input + // element directly. + ApplyInputValue("#time-textbox-datetime", "04:05"); + expected = DateTime.Now.Date.Add(new TimeSpan(4, 5, 0)); + Browser.Equal(expected, () => DateTime.Parse(boundValue.Text)); + Assert.Equal(expected, DateTime.Parse(mirrorValue.GetAttribute("value"))); + } + + // For date comparisons, we parse (non-formatted) values to compare them. Client-side and server-side + // Blazor have different formatting behaviour by default. + [Fact] + public void CanBindTimeTextboxNullableDateTime() + { + var target = Browser.FindElement(By.Id("time-textbox-nullable-datetime")); + var boundValue = Browser.FindElement(By.Id("time-textbox-nullable-datetime-value")); + var mirrorValue = Browser.FindElement(By.Id("time-textbox-nullable-datetime-mirror")); + Assert.Equal(string.Empty, target.GetAttribute("value")); + Assert.Equal(string.Empty, boundValue.Text); + Assert.Equal(string.Empty, mirrorValue.GetAttribute("value")); + + // Modify target; verify value is updated and that textboxes linked to the same data are updated + target.Clear(); + Browser.Equal("", () => boundValue.Text); + Assert.Equal("", mirrorValue.GetAttribute("value")); + + // Modify target; verify value is updated and that textboxes linked to the same data are updated + // We have to do it this way because the browser gets in the way when sending keys to the input + // element directly. + ApplyInputValue("#time-textbox-nullable-datetime", "05:06"); + var expected = DateTime.Now.Date.Add(new TimeSpan(05, 06, 0)); + Browser.Equal(expected, () => DateTime.Parse(boundValue.Text)); + Assert.Equal(expected, DateTime.Parse(mirrorValue.GetAttribute("value"))); + + // Modify target; verify value is updated and that textboxes linked to the same data are updated + target.Clear(); + target.SendKeys("\t"); + Browser.Equal(string.Empty, () => boundValue.Text); + Assert.Equal(string.Empty, mirrorValue.GetAttribute("value")); + } + + // For date comparisons, we parse (non-formatted) values to compare them. Client-side and server-side + // Blazor have different formatting behaviour by default. + [Fact] + public void CanBindTimeStepTextboxDateTime() + { + var target = Browser.FindElement(By.Id("time-step-textbox-datetime")); + var boundValue = Browser.FindElement(By.Id("time-step-textbox-datetime-value")); + var mirrorValue = Browser.FindElement(By.Id("time-step-textbox-datetime-mirror")); + var expected = DateTime.Now.Date.Add(new TimeSpan(8, 5, 30)); + Assert.Equal(expected, DateTime.Parse(target.GetAttribute("value"))); + Assert.Equal(expected, DateTime.Parse(boundValue.Text)); + Assert.Equal(expected, DateTime.Parse(mirrorValue.GetAttribute("value"))); + + // Clear textbox; value updates to 00:00 because that's the default + target.Clear(); + expected = default; + Browser.Equal(DateTime.Now.Date, () => DateTime.Parse(target.GetAttribute("value"))); + Assert.Equal(default, DateTime.Parse(boundValue.Text)); + Assert.Equal(default, DateTime.Parse(mirrorValue.GetAttribute("value"))); + + // We have to do it this way because the browser gets in the way when sending keys to the input + // element directly. + ApplyInputValue("#time-step-textbox-datetime", "04:05:06"); + expected = DateTime.Now.Date.Add(new TimeSpan(4, 5, 6)); + Browser.Equal(expected, () => DateTime.Parse(boundValue.Text)); + Assert.Equal(expected, DateTime.Parse(mirrorValue.GetAttribute("value"))); + } + + // For date comparisons, we parse (non-formatted) values to compare them. Client-side and server-side + // Blazor have different formatting behaviour by default. + [Fact] + public void CanBindTimeStepTextboxNullableDateTime() + { + var target = Browser.FindElement(By.Id("time-step-textbox-nullable-datetime")); + var boundValue = Browser.FindElement(By.Id("time-step-textbox-nullable-datetime-value")); + var mirrorValue = Browser.FindElement(By.Id("time-step-textbox-nullable-datetime-mirror")); + Assert.Equal(string.Empty, target.GetAttribute("value")); + Assert.Equal(string.Empty, boundValue.Text); + Assert.Equal(string.Empty, mirrorValue.GetAttribute("value")); + + // Modify target; verify value is updated and that textboxes linked to the same data are updated + target.Clear(); + Browser.Equal("", () => boundValue.Text); + Assert.Equal("", mirrorValue.GetAttribute("value")); + + // Modify target; verify value is updated and that textboxes linked to the same data are updated + // We have to do it this way because the browser gets in the way when sending keys to the input + // element directly. + ApplyInputValue("#time-step-textbox-nullable-datetime", "05:06"); + var expected = DateTime.Now.Date.Add(new TimeSpan(05, 06, 0)); + Browser.Equal(expected, () => DateTime.Parse(boundValue.Text)); + Assert.Equal(expected, DateTime.Parse(mirrorValue.GetAttribute("value"))); + + // Modify target; verify value is updated and that textboxes linked to the same data are updated + target.Clear(); + target.SendKeys("\t"); + Browser.Equal(string.Empty, () => boundValue.Text); + Assert.Equal(string.Empty, mirrorValue.GetAttribute("value")); + } + + // Applies an input through javascript to datetime-local/month/time controls. + private void ApplyInputValue(string cssSelector, string value) + { + // It's very difficult to enter an invalid value into an , because + // most combinations of keystrokes get normalized to something valid. Additionally, + // using Selenium's SendKeys interacts unpredictably with this normalization logic, + // most likely based on timings. As a workaround, use JS to apply the values. This + // should only be used when strictly necessary, as it doesn't represent actual user + // interaction as authentically as SendKeys in other cases. + var javascript = (IJavaScriptExecutor)Browser; + javascript.ExecuteScript( + $"var elem = document.querySelector('{cssSelector}');" + + $"elem.value = '{value}';" + + "elem.dispatchEvent(new KeyboardEvent('change'));"); + } } } diff --git a/src/Components/test/testassets/BasicTestApp/BindCasesComponent.razor b/src/Components/test/testassets/BasicTestApp/BindCasesComponent.razor index 5cdd9087ea..71024bffb8 100644 --- a/src/Components/test/testassets/BasicTestApp/BindCasesComponent.razor +++ b/src/Components/test/testassets/BasicTestApp/BindCasesComponent.razor @@ -254,6 +254,63 @@ @selectMarkupValue

+

Time related inputs (datetime-local, month, time)

+

datetime-local

+

+ DateTime: + + @dateTimeLocalTextboxDateTimeValue + +

+

+ Nullable DateTime: + + @dateTimeLocalTextboxNullableDateTimeValue + +

+ +

month

+

+ DateTime: + + @monthTextboxDateTimeValue + +

+

+ Nullable DateTime: + + @monthTextboxNullableDateTimeValue + +

+ +

time

+

+ DateTime: + + @timeTextboxDateTimeValue + +

+

+ Nullable DateTime: + + @timeTextboxNullableDateTimeValue + +

+ +

time with step (supports seconds)

+

+ DateTime: + + @timeStepTextboxDateTimeValue + +

+

+ Nullable DateTime: + + @timeStepTextboxNullableDateTimeValue + +

+ @code { string textboxInitiallyBlankValue = null; string textboxInitiallyPopulatedValue = "Hello"; @@ -297,6 +354,18 @@ DateTime textboxDateTimeFormatInvalidValue = new DateTime(1985, 3, 4); DateTimeOffset? textboxNullableDateTimeOffsetFormatInvalidValue = null; + DateTime dateTimeLocalTextboxDateTimeValue = new DateTime(1985, 3, 4); + DateTime? dateTimeLocalTextboxNullableDateTimeValue = null; + + DateTime monthTextboxDateTimeValue = new DateTime(1985, 3, 4); + DateTime? monthTextboxNullableDateTimeValue = null; + + DateTime timeTextboxDateTimeValue = DateTime.Now.Date.Add(new TimeSpan(8, 5, 0)); + DateTime? timeTextboxNullableDateTimeValue = null; + + DateTime timeStepTextboxDateTimeValue = DateTime.Now.Date.Add(new TimeSpan(8, 5, 30)); + DateTime? timeStepTextboxNullableDateTimeValue = null; + bool includeFourthOption = false; enum SelectableValue { First, Second, Third, Fourth } SelectableValue selectValue = SelectableValue.Second; diff --git a/src/Components/test/testassets/BasicTestApp/GlobalizationBindCases.razor b/src/Components/test/testassets/BasicTestApp/GlobalizationBindCases.razor index 9f4dadf7a9..671049d358 100644 --- a/src/Components/test/testassets/BasicTestApp/GlobalizationBindCases.razor +++ b/src/Components/test/testassets/BasicTestApp/GlobalizationBindCases.razor @@ -103,4 +103,13 @@ DateTime inputDateDateTime = new DateTime(1985, 3, 4); DateTimeOffset inputDateDateTimeOffset = new DateTimeOffset(new DateTime(1985, 3, 4)); + + DateTime inputTypeDateTimeLocalDateTime = new DateTime(1985, 3, 4); + DateTimeOffset inputTypeDateTimeLocalDateTimeOffset = new DateTimeOffset(new DateTime(1985, 3, 4)); + + DateTime inputTypeMonthDateTime = new DateTime(1985, 3, 4); + DateTimeOffset inputTypeMonthDateTimeOffset = new DateTimeOffset(new DateTime(1985, 3, 4)); + + DateTime inputTypeTimeDateTime = new DateTime(1985, 3, 4); + DateTimeOffset inputTypeTimeDateTimeOffset = new DateTimeOffset(new DateTime(1985, 3, 4)); } diff --git a/src/Shared/E2ETesting/BrowserAssertFailedException.cs b/src/Shared/E2ETesting/BrowserAssertFailedException.cs index 508015b361..007db0ac79 100644 --- a/src/Shared/E2ETesting/BrowserAssertFailedException.cs +++ b/src/Shared/E2ETesting/BrowserAssertFailedException.cs @@ -14,13 +14,14 @@ namespace OpenQA.Selenium public class BrowserAssertFailedException : XunitException { public BrowserAssertFailedException(IReadOnlyList logs, Exception innerException, string screenShotPath) - : base(BuildMessage(logs, screenShotPath), innerException) + : base(BuildMessage(innerException, logs, screenShotPath), innerException) { } - private static string BuildMessage(IReadOnlyList logs, string screenShotPath) => + private static string BuildMessage(Exception innerException, IReadOnlyList logs, string screenShotPath) => + innerException.ToString() + Environment.NewLine + (File.Exists(screenShotPath) ? $"Screen shot captured at '{screenShotPath}'" + Environment.NewLine : "") + - (logs.Count > 0 ? "Encountered browser errors" : "No browser errors found") + " while running the assertion." + Environment.NewLine + + (logs.Count > 0 ? "Encountered browser logs" : "No browser logs found") + " while running the assertion." + Environment.NewLine + string.Join(Environment.NewLine, logs); } } From 6f71d6573b0815b52385e8531aacdf7d7cbc16d6 Mon Sep 17 00:00:00 2001 From: Pranav K Date: Wed, 2 Oct 2019 15:23:29 -0700 Subject: [PATCH 028/111] Obsolete ValidationVisitor.AllowShortCircuitingValidationWhenNoValidatorsArePresent (#14593) Fixes https://github.com/aspnet/AspNetCore/issues/14126 --- src/Mvc/Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.netcoreapp.cs | 1 + .../Mvc.Core/src/ModelBinding/Validation/ValidationVisitor.cs | 1 + 2 files changed, 2 insertions(+) diff --git a/src/Mvc/Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.netcoreapp.cs b/src/Mvc/Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.netcoreapp.cs index edcfcd4271..5407eaa4dc 100644 --- a/src/Mvc/Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.netcoreapp.cs +++ b/src/Mvc/Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.netcoreapp.cs @@ -3221,6 +3221,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation public partial class ValidationVisitor { public ValidationVisitor(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider validatorProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidatorCache validatorCache, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary validationState) { } + [System.ObsoleteAttribute("This property is deprecated and is no longer used by the runtime.")] public bool AllowShortCircuitingValidationWhenNoValidatorsArePresent { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } } protected Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidatorCache Cache { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } } protected object Container { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } } diff --git a/src/Mvc/Mvc.Core/src/ModelBinding/Validation/ValidationVisitor.cs b/src/Mvc/Mvc.Core/src/ModelBinding/Validation/ValidationVisitor.cs index 7bb0773499..677f850aba 100644 --- a/src/Mvc/Mvc.Core/src/ModelBinding/Validation/ValidationVisitor.cs +++ b/src/Mvc/Mvc.Core/src/ModelBinding/Validation/ValidationVisitor.cs @@ -109,6 +109,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation /// /// The default value is . /// This property is currently ignored. + [Obsolete("This property is deprecated and is no longer used by the runtime.")] public bool AllowShortCircuitingValidationWhenNoValidatorsArePresent { get; set; } = true; /// From b480a09bf704f4888c73818befe74131f42d1d5d Mon Sep 17 00:00:00 2001 From: wtgodbe Date: Wed, 2 Oct 2019 16:24:35 -0700 Subject: [PATCH 029/111] Update to newer SDK --- eng/Workarounds.props | 2 ++ global.json | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/eng/Workarounds.props b/eng/Workarounds.props index 8db4227eda..3ed1473baf 100644 --- a/eng/Workarounds.props +++ b/eng/Workarounds.props @@ -21,6 +21,8 @@ $(NoWarn);NU5131 + + $(NoWarn);NU5048 diff --git a/global.json b/global.json index 256d50f24e..a8857c8277 100644 --- a/global.json +++ b/global.json @@ -1,9 +1,9 @@ { "sdk": { - "version": "3.1.100-preview1-014024" + "version": "3.1.100-preview1-014400" }, "tools": { - "dotnet": "3.1.100-preview1-014024", + "dotnet": "3.1.100-preview1-014400", "runtimes": { "dotnet/x64": [ "$(MicrosoftNETCoreAppRuntimeVersion)" From f18dfadc03169327f35ae67d6dc0eaced0c66769 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 3 Oct 2019 06:30:31 +0000 Subject: [PATCH 030/111] Update dependencies from https://github.com/aspnet/EntityFrameworkCore build 20191002.3 - Microsoft.EntityFrameworkCore.Tools - 3.1.0-preview1.19502.3 - Microsoft.EntityFrameworkCore.SqlServer - 3.1.0-preview1.19502.3 - dotnet-ef - 3.1.0-preview1.19502.3 - Microsoft.EntityFrameworkCore - 3.1.0-preview1.19502.3 - Microsoft.EntityFrameworkCore.InMemory - 3.1.0-preview1.19502.3 - Microsoft.EntityFrameworkCore.Relational - 3.1.0-preview1.19502.3 - Microsoft.EntityFrameworkCore.Sqlite - 3.1.0-preview1.19502.3 Dependency coherency updates - Microsoft.AspNetCore.Analyzer.Testing - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.AspNetCore.BenchmarkRunner.Sources - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ActivatorUtilities.Sources - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.Abstractions - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.Memory - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.SqlServer - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.StackExchangeRedis - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.CommandLineUtils.Sources - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Abstractions - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.AzureKeyVault - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Binder - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.CommandLine - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.EnvironmentVariables - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.FileExtensions - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Ini - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Json - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.KeyPerFile - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.UserSecrets - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Xml - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DependencyInjection.Abstractions - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DependencyInjection - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DiagnosticAdapter - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Diagnostics.HealthChecks - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Abstractions - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Composite - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Embedded - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Physical - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileSystemGlobbing - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.HashCodeCombiner.Sources - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Hosting.Abstractions - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Hosting - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.HostFactoryResolver.Sources - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Http - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Localization.Abstractions - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Localization - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Abstractions - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.AzureAppServices - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Configuration - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Console - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Debug - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.EventSource - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.EventLog - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.TraceSource - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Testing - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ObjectPool - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options.ConfigurationExtensions - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options.DataAnnotations - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ParameterDefaultValue.Sources - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Primitives - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.TypeNameHelper.Sources - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ValueStopwatch.Sources - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.WebEncoders - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Internal.Extensions.Refs - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.JSInterop - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Mono.WebAssembly.Interop - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Bcl.AsyncInterfaces - 1.1.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Microsoft.NETCore.App.Runtime.win-x64 - 3.1.0-preview1.19501.24 (parent: Microsoft.Extensions.Logging) - Microsoft.Extensions.Logging - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.CSharp - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Microsoft.Win32.Registry - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Microsoft.Win32.SystemEvents - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.ComponentModel.Annotations - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Diagnostics.EventLog - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Drawing.Common - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.IO.Pipelines - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Net.Http.WinHttpHandler - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Net.WebSockets.WebSocketProtocol - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Reflection.Metadata - 1.8.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Runtime.CompilerServices.Unsafe - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Cryptography.Cng - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Cryptography.Pkcs - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Cryptography.Xml - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Permissions - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Principal.Windows - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.ServiceProcess.ServiceController - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Text.Encodings.Web - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Text.Json - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Threading.Channels - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Windows.Extensions - 4.7.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Microsoft.Extensions.DependencyModel - 3.1.0-preview1.19501.24 (parent: Microsoft.Extensions.Logging) - Microsoft.NETCore.App.Ref - 3.1.0-preview1.19501.24 (parent: Microsoft.Extensions.Logging) - NETStandard.Library.Ref - 2.1.0-preview1.19501.24 (parent: Microsoft.Extensions.Logging) - Microsoft.NETCore.Platforms - 3.1.0-preview1.19501.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Internal.AspNetCore.Analyzers - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) - Microsoft.AspNetCore.Testing - 3.1.0-preview1.19502.5 (parent: Microsoft.EntityFrameworkCore) --- eng/Version.Details.xml | 150 ++++++++++++++++++++-------------------- eng/Versions.props | 136 ++++++++++++++++++------------------ 2 files changed, 143 insertions(+), 143 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 01954589c9..9abaf2bdae 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -29,267 +29,267 @@ https://github.com/aspnet/AspNetCore-Tooling 1e85487b5011a3541c78be97baa4407abf87ea1a - + https://github.com/aspnet/EntityFrameworkCore - 828fe096ddd64909e39fb56a11f9cee0d783c066 + d9a5aa8f41a28582fd474d6bd2a40da239527168 - + https://github.com/aspnet/EntityFrameworkCore - 828fe096ddd64909e39fb56a11f9cee0d783c066 + d9a5aa8f41a28582fd474d6bd2a40da239527168 - + https://github.com/aspnet/EntityFrameworkCore - 828fe096ddd64909e39fb56a11f9cee0d783c066 + d9a5aa8f41a28582fd474d6bd2a40da239527168 - + https://github.com/aspnet/EntityFrameworkCore - 828fe096ddd64909e39fb56a11f9cee0d783c066 + d9a5aa8f41a28582fd474d6bd2a40da239527168 - + https://github.com/aspnet/EntityFrameworkCore - 828fe096ddd64909e39fb56a11f9cee0d783c066 + d9a5aa8f41a28582fd474d6bd2a40da239527168 - + https://github.com/aspnet/EntityFrameworkCore - 828fe096ddd64909e39fb56a11f9cee0d783c066 + d9a5aa8f41a28582fd474d6bd2a40da239527168 - + https://github.com/aspnet/EntityFrameworkCore - 828fe096ddd64909e39fb56a11f9cee0d783c066 + d9a5aa8f41a28582fd474d6bd2a40da239527168 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 @@ -408,7 +408,7 @@ https://github.com/dotnet/corefx e61772dfb9cfc9b08d95950814ebe51f22cd2de6 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 @@ -424,7 +424,7 @@ https://github.com/dotnet/arcade f8546fbab59a74a66c83b8cb76b3f6877ce1d374 - + https://github.com/aspnet/Extensions 08307d6b396fb7935f3df6d1583681c38fc65c32 diff --git a/eng/Versions.props b/eng/Versions.props index 975f72b08d..415468c276 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -93,75 +93,75 @@ 3.0.0-preview9.19462.2 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 - 3.1.0-preview1.19502.1 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 + 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.2 - 3.1.0-preview1.19502.2 - 3.1.0-preview1.19502.2 - 3.1.0-preview1.19502.2 - 3.1.0-preview1.19502.2 - 3.1.0-preview1.19502.2 - 3.1.0-preview1.19502.2 + 3.1.0-preview1.19502.3 + 3.1.0-preview1.19502.3 + 3.1.0-preview1.19502.3 + 3.1.0-preview1.19502.3 + 3.1.0-preview1.19502.3 + 3.1.0-preview1.19502.3 + 3.1.0-preview1.19502.3 3.1.0-preview1.19501.1 3.1.0-preview1.19501.1 From 93a25f890731b7ba6615fcb8a5020f81831ba595 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 3 Oct 2019 06:50:39 +0000 Subject: [PATCH 031/111] Update dependencies from https://github.com/aspnet/AspNetCore-Tooling build 20191002.2 - Microsoft.AspNetCore.Mvc.Razor.Extensions - 3.1.0-preview1.19502.2 - Microsoft.AspNetCore.Razor.Language - 3.1.0-preview1.19502.2 - Microsoft.CodeAnalysis.Razor - 3.1.0-preview1.19502.2 - Microsoft.NET.Sdk.Razor - 3.1.0-preview1.19502.2 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 8 ++++---- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 9abaf2bdae..4fe7c60b3f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -13,21 +13,21 @@ https://github.com/aspnet/Blazor 348e050ecd9bd8924581afb677089ae5e2d5e508 - + https://github.com/aspnet/AspNetCore-Tooling - 1e85487b5011a3541c78be97baa4407abf87ea1a + 05996cf5ff30103ce5a5c739758a9f6637e62211 - + https://github.com/aspnet/AspNetCore-Tooling - 1e85487b5011a3541c78be97baa4407abf87ea1a + 05996cf5ff30103ce5a5c739758a9f6637e62211 - + https://github.com/aspnet/AspNetCore-Tooling - 1e85487b5011a3541c78be97baa4407abf87ea1a + 05996cf5ff30103ce5a5c739758a9f6637e62211 - + https://github.com/aspnet/AspNetCore-Tooling - 1e85487b5011a3541c78be97baa4407abf87ea1a + 05996cf5ff30103ce5a5c739758a9f6637e62211 https://github.com/aspnet/EntityFrameworkCore diff --git a/eng/Versions.props b/eng/Versions.props index 415468c276..bd90d62b4f 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -163,10 +163,10 @@ 3.1.0-preview1.19502.3 3.1.0-preview1.19502.3 - 3.1.0-preview1.19501.1 - 3.1.0-preview1.19501.1 - 3.1.0-preview1.19501.1 - 3.1.0-preview1.19501.1 + 3.1.0-preview1.19502.2 + 3.1.0-preview1.19502.2 + 3.1.0-preview1.19502.2 + 3.1.0-preview1.19502.2 - 3.1.0-preview1.19502.2 - 3.1.0-preview1.19502.2 - 3.1.0-preview1.19502.2 - 3.1.0-preview1.19502.2 + 3.1.0-preview1.19502.3 + 3.1.0-preview1.19502.3 + 3.1.0-preview1.19502.3 + 3.1.0-preview1.19502.3 - + https://github.com/aspnet/Blazor - 348e050ecd9bd8924581afb677089ae5e2d5e508 + bf49a4e1a5401c0e952147f1c7452261a058813d https://github.com/aspnet/AspNetCore-Tooling diff --git a/eng/Versions.props b/eng/Versions.props index 1653709716..73d4a2a63d 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -91,7 +91,7 @@ 3.1.0-preview1.19501.8 - 3.0.0-preview9.19462.2 + 3.1.0-preview1.19503.1 3.1.0-preview1.19502.5 3.1.0-preview1.19502.5 From c36b12bd5f139bb6b363557efdd25a19651bf642 Mon Sep 17 00:00:00 2001 From: James Newton-King Date: Tue, 24 Sep 2019 15:12:47 +1200 Subject: [PATCH 035/111] Update gRPC package version to 2.23.2 --- eng/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Versions.props b/eng/Versions.props index a0c39b7f4e..c7f31b506f 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -242,7 +242,7 @@ 4.2.1 4.2.1 3.8.0 - 2.23.1 + 2.23.2 3.0.0 3.0.0 3.0.0 From a9fb7f4a6d290c21351be79c6b1a29f527dc0215 Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Thu, 3 Oct 2019 12:32:34 -0700 Subject: [PATCH 036/111] Get latest from EntityFrameworkCore for 2.1.14 --- build/submodules.props | 2 +- modules/EntityFrameworkCore | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build/submodules.props b/build/submodules.props index 4370c412c7..a088430493 100644 --- a/build/submodules.props +++ b/build/submodules.props @@ -37,6 +37,6 @@ - + diff --git a/modules/EntityFrameworkCore b/modules/EntityFrameworkCore index 688198bcdd..b8ba7191e9 160000 --- a/modules/EntityFrameworkCore +++ b/modules/EntityFrameworkCore @@ -1 +1 @@ -Subproject commit 688198bcdd754273fc3ebb63bbd75931f5841e14 +Subproject commit b8ba7191e9c39642bb340fd2b79fbf3df0f6c71c From ac48ceaab2f8d348a785492632917912d37284e7 Mon Sep 17 00:00:00 2001 From: Ryan Nowak Date: Tue, 24 Sep 2019 10:21:06 -0700 Subject: [PATCH 037/111] React to change in logging testing --- .../IIS/test/Common.FunctionalTests/FixtureLoggedTest.cs | 5 +++-- .../IIS.Shared.FunctionalTests/Properties/AssemblyInfo.cs | 1 + .../IISExpress.FunctionalTests/Properties/AssemblyInfo.cs | 1 + .../shared/test/TestApplicationErrorLoggerLoggedTest.cs | 6 +++--- .../Kestrel/test/BindTests/Properties/AssemblyInfo.cs | 1 + .../Kestrel/test/FunctionalTests/Properties/AssemblyInfo.cs | 1 + .../test/InMemory.FunctionalTests/Http2/Http2TestBase.cs | 4 ++-- .../InMemory.FunctionalTests/Properties/AssemblyInfo.cs | 1 + .../test/Interop.FunctionalTests/Properties/AssemblyInfo.cs | 1 + 9 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/Servers/IIS/IIS/test/Common.FunctionalTests/FixtureLoggedTest.cs b/src/Servers/IIS/IIS/test/Common.FunctionalTests/FixtureLoggedTest.cs index a8aaea4f2c..29af89da9b 100644 --- a/src/Servers/IIS/IIS/test/Common.FunctionalTests/FixtureLoggedTest.cs +++ b/src/Servers/IIS/IIS/test/Common.FunctionalTests/FixtureLoggedTest.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.Reflection; +using Microsoft.AspNetCore.Testing; using Microsoft.Extensions.Logging.Testing; using Xunit.Abstractions; @@ -16,9 +17,9 @@ namespace Microsoft.AspNetCore.Server.IIS.FunctionalTests _fixture = fixture; } - public override void Initialize(MethodInfo methodInfo, object[] testMethodArguments, ITestOutputHelper testOutputHelper) + public override void Initialize(TestContext context, MethodInfo methodInfo, object[] testMethodArguments, ITestOutputHelper testOutputHelper) { - base.Initialize(methodInfo, testMethodArguments, testOutputHelper); + base.Initialize(context, methodInfo, testMethodArguments, testOutputHelper); _fixture.Attach(this); } diff --git a/src/Servers/IIS/IIS/test/IIS.Shared.FunctionalTests/Properties/AssemblyInfo.cs b/src/Servers/IIS/IIS/test/IIS.Shared.FunctionalTests/Properties/AssemblyInfo.cs index 863fe8564c..595dcdb5c9 100644 --- a/src/Servers/IIS/IIS/test/IIS.Shared.FunctionalTests/Properties/AssemblyInfo.cs +++ b/src/Servers/IIS/IIS/test/IIS.Shared.FunctionalTests/Properties/AssemblyInfo.cs @@ -2,6 +2,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using Microsoft.AspNetCore.Server.IIS.FunctionalTests; +using Microsoft.AspNetCore.Testing; using Microsoft.Extensions.Logging.Testing; using Xunit; diff --git a/src/Servers/IIS/IIS/test/IISExpress.FunctionalTests/Properties/AssemblyInfo.cs b/src/Servers/IIS/IIS/test/IISExpress.FunctionalTests/Properties/AssemblyInfo.cs index 863fe8564c..595dcdb5c9 100644 --- a/src/Servers/IIS/IIS/test/IISExpress.FunctionalTests/Properties/AssemblyInfo.cs +++ b/src/Servers/IIS/IIS/test/IISExpress.FunctionalTests/Properties/AssemblyInfo.cs @@ -2,6 +2,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using Microsoft.AspNetCore.Server.IIS.FunctionalTests; +using Microsoft.AspNetCore.Testing; using Microsoft.Extensions.Logging.Testing; using Xunit; diff --git a/src/Servers/Kestrel/shared/test/TestApplicationErrorLoggerLoggedTest.cs b/src/Servers/Kestrel/shared/test/TestApplicationErrorLoggerLoggedTest.cs index c149111fdb..5d5831d942 100644 --- a/src/Servers/Kestrel/shared/test/TestApplicationErrorLoggerLoggedTest.cs +++ b/src/Servers/Kestrel/shared/test/TestApplicationErrorLoggerLoggedTest.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.Reflection; @@ -11,9 +11,9 @@ namespace Microsoft.AspNetCore.Testing { public TestApplicationErrorLogger TestApplicationErrorLogger { get; private set; } - public override void Initialize(MethodInfo methodInfo, object[] testMethodArguments, ITestOutputHelper testOutputHelper) + public override void Initialize(TestContext context, MethodInfo methodInfo, object[] testMethodArguments, ITestOutputHelper testOutputHelper) { - base.Initialize(methodInfo, testMethodArguments, testOutputHelper); + base.Initialize(context, methodInfo, testMethodArguments, testOutputHelper); TestApplicationErrorLogger = new TestApplicationErrorLogger(); LoggerFactory.AddProvider(new KestrelTestLoggerProvider(TestApplicationErrorLogger)); diff --git a/src/Servers/Kestrel/test/BindTests/Properties/AssemblyInfo.cs b/src/Servers/Kestrel/test/BindTests/Properties/AssemblyInfo.cs index 7cb6c7571b..5aa7f30840 100644 --- a/src/Servers/Kestrel/test/BindTests/Properties/AssemblyInfo.cs +++ b/src/Servers/Kestrel/test/BindTests/Properties/AssemblyInfo.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 Microsoft.AspNetCore.Testing; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Testing; diff --git a/src/Servers/Kestrel/test/FunctionalTests/Properties/AssemblyInfo.cs b/src/Servers/Kestrel/test/FunctionalTests/Properties/AssemblyInfo.cs index 5c26b3d74f..f950229354 100644 --- a/src/Servers/Kestrel/test/FunctionalTests/Properties/AssemblyInfo.cs +++ b/src/Servers/Kestrel/test/FunctionalTests/Properties/AssemblyInfo.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 Microsoft.AspNetCore.Testing; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Testing; #if MACOS diff --git a/src/Servers/Kestrel/test/InMemory.FunctionalTests/Http2/Http2TestBase.cs b/src/Servers/Kestrel/test/InMemory.FunctionalTests/Http2/Http2TestBase.cs index 137ea743b7..5b875bffab 100644 --- a/src/Servers/Kestrel/test/InMemory.FunctionalTests/Http2/Http2TestBase.cs +++ b/src/Servers/Kestrel/test/InMemory.FunctionalTests/Http2/Http2TestBase.cs @@ -378,9 +378,9 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests }; } - public override void Initialize(MethodInfo methodInfo, object[] testMethodArguments, ITestOutputHelper testOutputHelper) + public override void Initialize(TestContext context, MethodInfo methodInfo, object[] testMethodArguments, ITestOutputHelper testOutputHelper) { - base.Initialize(methodInfo, testMethodArguments, testOutputHelper); + base.Initialize(context, methodInfo, testMethodArguments, testOutputHelper); _serviceContext = new TestServiceContext(LoggerFactory, _mockKestrelTrace.Object) { diff --git a/src/Servers/Kestrel/test/InMemory.FunctionalTests/Properties/AssemblyInfo.cs b/src/Servers/Kestrel/test/InMemory.FunctionalTests/Properties/AssemblyInfo.cs index 88b33bf6cc..d5d301aba5 100644 --- a/src/Servers/Kestrel/test/InMemory.FunctionalTests/Properties/AssemblyInfo.cs +++ b/src/Servers/Kestrel/test/InMemory.FunctionalTests/Properties/AssemblyInfo.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.Runtime.CompilerServices; +using Microsoft.AspNetCore.Testing; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Testing; diff --git a/src/Servers/Kestrel/test/Interop.FunctionalTests/Properties/AssemblyInfo.cs b/src/Servers/Kestrel/test/Interop.FunctionalTests/Properties/AssemblyInfo.cs index 7cb6c7571b..5aa7f30840 100644 --- a/src/Servers/Kestrel/test/Interop.FunctionalTests/Properties/AssemblyInfo.cs +++ b/src/Servers/Kestrel/test/Interop.FunctionalTests/Properties/AssemblyInfo.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 Microsoft.AspNetCore.Testing; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Testing; From 5409bd72703d93b810177b888f2412d0f86433dd Mon Sep 17 00:00:00 2001 From: Ryan Nowak Date: Wed, 25 Sep 2019 15:11:21 -0700 Subject: [PATCH 038/111] Fix #11301 - revert workaround for test matrix I suspect that this workaround is now causing our tests to fail, and we wanted to get rid of it anyway. --- .../src/TestMatrix.cs | 38 ++++++++----------- 1 file changed, 15 insertions(+), 23 deletions(-) diff --git a/src/Hosting/Server.IntegrationTesting/src/TestMatrix.cs b/src/Hosting/Server.IntegrationTesting/src/TestMatrix.cs index 131cb2805a..5ec7e5621c 100644 --- a/src/Hosting/Server.IntegrationTesting/src/TestMatrix.cs +++ b/src/Hosting/Server.IntegrationTesting/src/TestMatrix.cs @@ -238,18 +238,14 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting VaryByAncmHostingModel(variants, server, tfm, type, arch, archSkip); } - // TODO: remove this workaround: https://github.com/aspnet/AspNetCore/issues/11301 - else if (string.IsNullOrEmpty(archSkip)) + variants.Add(new TestVariant() { - variants.Add(new TestVariant() - { - Server = server, - Tfm = tfm, - ApplicationType = type, - Architecture = arch, - Skip = archSkip, - }); - } + Server = server, + Tfm = tfm, + ApplicationType = type, + Architecture = arch, + Skip = archSkip, + }); } } @@ -291,19 +287,15 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting } } - // TODO: remove this workaround: https://github.com/aspnet/AspNetCore/issues/11301 - if (string.IsNullOrEmpty(skipAncm)) + variants.Add(new TestVariant() { - variants.Add(new TestVariant() - { - Server = server, - Tfm = tfm, - ApplicationType = type, - Architecture = arch, - HostingModel = hostingModel, - Skip = skipAncm, - }); - } + Server = server, + Tfm = tfm, + ApplicationType = type, + Architecture = arch, + HostingModel = hostingModel, + Skip = skipAncm, + }); } } From 8aaf577742f6c6081267f8fe184169beabc7fd48 Mon Sep 17 00:00:00 2001 From: Chris Ross Date: Fri, 27 Sep 2019 21:00:01 -0700 Subject: [PATCH 039/111] Unrevert else clause in TestMatrix --- .../src/TestMatrix.cs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/Hosting/Server.IntegrationTesting/src/TestMatrix.cs b/src/Hosting/Server.IntegrationTesting/src/TestMatrix.cs index 5ec7e5621c..deb7c17343 100644 --- a/src/Hosting/Server.IntegrationTesting/src/TestMatrix.cs +++ b/src/Hosting/Server.IntegrationTesting/src/TestMatrix.cs @@ -237,15 +237,17 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting { VaryByAncmHostingModel(variants, server, tfm, type, arch, archSkip); } - - variants.Add(new TestVariant() + else { - Server = server, - Tfm = tfm, - ApplicationType = type, - Architecture = arch, - Skip = archSkip, - }); + variants.Add(new TestVariant() + { + Server = server, + Tfm = tfm, + ApplicationType = type, + Architecture = arch, + Skip = archSkip, + }); + } } } From f198e559f87d113b99a0f693dffc1baaab1b782c Mon Sep 17 00:00:00 2001 From: Chris Ross Date: Thu, 3 Oct 2019 14:37:24 -0700 Subject: [PATCH 040/111] [2.1] Re-implement SameSite for 2019 (#13746) * Re-implement SameSite for 2019 #12125 * Rename compat flag * Use Microsoft.AspNetCore.SuppressSameSiteNone compat key * Backport CookiePolicy quirk and sample * Patch config --- eng/PatchConfig.props | 2 + src/Http/Headers/src/SetCookieHeaderValue.cs | 71 ++++++++-- .../Headers/test/SetCookieHeaderValueTest.cs | 124 +++++++++++++++++- .../OpenIdConnectSample.csproj | 4 +- .../samples/OpenIdConnectSample/Startup.cs | 30 +++++ .../Authentication/test/CookieTests.cs | 2 +- ...soft.AspNetCore.Authentication.Test.csproj | 3 +- .../OpenIdConnectChallengeTests.cs | 3 +- .../CookiePolicy/src/CookiePolicyOptions.cs | 14 +- .../src/ResponseCookiesWrapper.cs | 29 +--- .../CookiePolicy/test/CookiePolicyTests.cs | 32 ++++- ...rosoft.AspNetCore.CookiePolicy.Test.csproj | 3 +- src/Security/Security.sln | 7 + 13 files changed, 271 insertions(+), 53 deletions(-) diff --git a/eng/PatchConfig.props b/eng/PatchConfig.props index 71ff8312fd..3ba7babc57 100644 --- a/eng/PatchConfig.props +++ b/eng/PatchConfig.props @@ -40,6 +40,8 @@ Later on, this will be checked using this condition: + Microsoft.Net.Http.Headers; + Microsoft.AspNetCore.CookiePolicy; diff --git a/src/Http/Headers/src/SetCookieHeaderValue.cs b/src/Http/Headers/src/SetCookieHeaderValue.cs index f3477648de..e72f02b048 100644 --- a/src/Http/Headers/src/SetCookieHeaderValue.cs +++ b/src/Http/Headers/src/SetCookieHeaderValue.cs @@ -19,8 +19,14 @@ namespace Microsoft.Net.Http.Headers private const string SecureToken = "secure"; // RFC Draft: https://tools.ietf.org/html/draft-ietf-httpbis-cookie-same-site-00 private const string SameSiteToken = "samesite"; + private static readonly string SameSiteNoneToken = SameSiteMode.None.ToString().ToLower(); private static readonly string SameSiteLaxToken = SameSiteMode.Lax.ToString().ToLower(); private static readonly string SameSiteStrictToken = SameSiteMode.Strict.ToString().ToLower(); + + // True (old): https://tools.ietf.org/html/draft-west-first-party-cookies-07#section-3.1 + // False (new): https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-03#section-4.1.1 + internal static bool SuppressSameSiteNone; + private const string HttpOnlyToken = "httponly"; private const string SeparatorToken = "; "; private const string EqualsToken = "="; @@ -34,6 +40,14 @@ namespace Microsoft.Net.Http.Headers private StringSegment _name; private StringSegment _value; + static SetCookieHeaderValue() + { + if (AppContext.TryGetSwitch("Microsoft.AspNetCore.SuppressSameSiteNone", out var enabled)) + { + SuppressSameSiteNone = enabled; + } + } + private SetCookieHeaderValue() { // Used by the parser to create a new instance of this type. @@ -90,11 +104,11 @@ namespace Microsoft.Net.Http.Headers public bool Secure { get; set; } - public SameSiteMode SameSite { get; set; } + public SameSiteMode SameSite { get; set; } = SuppressSameSiteNone ? SameSiteMode.None : (SameSiteMode)(-1); // Unspecified public bool HttpOnly { get; set; } - // name="value"; expires=Sun, 06 Nov 1994 08:49:37 GMT; max-age=86400; domain=domain1; path=path1; secure; samesite={Strict|Lax}; httponly + // name="value"; expires=Sun, 06 Nov 1994 08:49:37 GMT; max-age=86400; domain=domain1; path=path1; secure; samesite={strict|lax|none}; httponly public override string ToString() { var length = _name.Length + EqualsToken.Length + _value.Length; @@ -130,9 +144,20 @@ namespace Microsoft.Net.Http.Headers length += SeparatorToken.Length + SecureToken.Length; } - if (SameSite != SameSiteMode.None) + // Allow for Unspecified (-1) to skip SameSite + if (SameSite == SameSiteMode.None && !SuppressSameSiteNone) { - sameSite = SameSite == SameSiteMode.Lax ? SameSiteLaxToken : SameSiteStrictToken; + sameSite = SameSiteNoneToken; + length += SeparatorToken.Length + SameSiteToken.Length + EqualsToken.Length + sameSite.Length; + } + else if (SameSite == SameSiteMode.Lax) + { + sameSite = SameSiteLaxToken; + length += SeparatorToken.Length + SameSiteToken.Length + EqualsToken.Length + sameSite.Length; + } + else if (SameSite == SameSiteMode.Strict) + { + sameSite = SameSiteStrictToken; length += SeparatorToken.Length + SameSiteToken.Length + EqualsToken.Length + sameSite.Length; } @@ -172,7 +197,7 @@ namespace Microsoft.Net.Http.Headers AppendSegment(ref sb, SecureToken, null); } - if (SameSite != SameSiteMode.None) + if (sameSite != null) { AppendSegment(ref sb, SameSiteToken, sameSite); } @@ -235,9 +260,18 @@ namespace Microsoft.Net.Http.Headers AppendSegment(builder, SecureToken, null); } - if (SameSite != SameSiteMode.None) + // Allow for Unspecified (-1) to skip SameSite + if (SameSite == SameSiteMode.None && !SuppressSameSiteNone) { - AppendSegment(builder, SameSiteToken, SameSite == SameSiteMode.Lax ? SameSiteLaxToken : SameSiteStrictToken); + AppendSegment(builder, SameSiteToken, SameSiteNoneToken); + } + else if (SameSite == SameSiteMode.Lax) + { + AppendSegment(builder, SameSiteToken, SameSiteLaxToken); + } + else if (SameSite == SameSiteMode.Strict) + { + AppendSegment(builder, SameSiteToken, SameSiteStrictToken); } if (HttpOnly) @@ -289,7 +323,7 @@ namespace Microsoft.Net.Http.Headers return MultipleValueParser.TryParseStrictValues(inputs, out parsedValues); } - // name=value; expires=Sun, 06 Nov 1994 08:49:37 GMT; max-age=86400; domain=domain1; path=path1; secure; samesite={Strict|Lax}; httponly + // name=value; expires=Sun, 06 Nov 1994 08:49:37 GMT; max-age=86400; domain=domain1; path=path1; secure; samesite={Strict|Lax|None}; httponly private static int GetSetCookieLength(StringSegment input, int startIndex, out SetCookieHeaderValue parsedValue) { Contract.Requires(startIndex >= 0); @@ -424,25 +458,34 @@ namespace Microsoft.Net.Http.Headers { result.Secure = true; } - // samesite-av = "SameSite" / "SameSite=" samesite-value - // samesite-value = "Strict" / "Lax" + // samesite-av = "SameSite=" samesite-value + // samesite-value = "Strict" / "Lax" / "None" else if (StringSegment.Equals(token, SameSiteToken, StringComparison.OrdinalIgnoreCase)) { if (!ReadEqualsSign(input, ref offset)) { - result.SameSite = SameSiteMode.Strict; + result.SameSite = SuppressSameSiteNone ? SameSiteMode.Strict : (SameSiteMode)(-1); // Unspecified } else { var enforcementMode = ReadToSemicolonOrEnd(input, ref offset); - if (StringSegment.Equals(enforcementMode, SameSiteLaxToken, StringComparison.OrdinalIgnoreCase)) + if (StringSegment.Equals(enforcementMode, SameSiteStrictToken, StringComparison.OrdinalIgnoreCase)) + { + result.SameSite = SameSiteMode.Strict; + } + else if (StringSegment.Equals(enforcementMode, SameSiteLaxToken, StringComparison.OrdinalIgnoreCase)) { result.SameSite = SameSiteMode.Lax; } + else if (!SuppressSameSiteNone + && StringSegment.Equals(enforcementMode, SameSiteNoneToken, StringComparison.OrdinalIgnoreCase)) + { + result.SameSite = SameSiteMode.None; + } else { - result.SameSite = SameSiteMode.Strict; + result.SameSite = SuppressSameSiteNone ? SameSiteMode.Strict : (SameSiteMode)(-1); // Unspecified } } } @@ -520,4 +563,4 @@ namespace Microsoft.Net.Http.Headers ^ HttpOnly.GetHashCode(); } } -} \ No newline at end of file +} diff --git a/src/Http/Headers/test/SetCookieHeaderValueTest.cs b/src/Http/Headers/test/SetCookieHeaderValueTest.cs index e7e8bf045a..32424363dd 100644 --- a/src/Http/Headers/test/SetCookieHeaderValueTest.cs +++ b/src/Http/Headers/test/SetCookieHeaderValueTest.cs @@ -57,7 +57,7 @@ namespace Microsoft.Net.Http.Headers { SameSite = SameSiteMode.None, }; - dataset.Add(header7, "name7=value7"); + dataset.Add(header7, "name7=value7; samesite=none"); return dataset; @@ -155,9 +155,20 @@ namespace Microsoft.Net.Http.Headers { SameSite = SameSiteMode.Strict }; - var string6a = "name6=value6; samesite"; - var string6b = "name6=value6; samesite=Strict"; - var string6c = "name6=value6; samesite=invalid"; + var string6 = "name6=value6; samesite=Strict"; + + var header7 = new SetCookieHeaderValue("name7", "value7") + { + SameSite = SameSiteMode.None + }; + var string7 = "name7=value7; samesite=None"; + + var header8 = new SetCookieHeaderValue("name8", "value8") + { + SameSite = (SameSiteMode)(-1) // Unspecified + }; + var string8a = "name8=value8; samesite"; + var string8b = "name8=value8; samesite=invalid"; dataset.Add(new[] { header1 }.ToList(), new[] { string1 }); dataset.Add(new[] { header1, header1 }.ToList(), new[] { string1, string1 }); @@ -170,9 +181,10 @@ namespace Microsoft.Net.Http.Headers dataset.Add(new[] { header1, header2, header3, header4 }.ToList(), new[] { string.Join(",", string1, string2, string3, string4) }); dataset.Add(new[] { header5 }.ToList(), new[] { string5a }); dataset.Add(new[] { header5 }.ToList(), new[] { string5b }); - dataset.Add(new[] { header6 }.ToList(), new[] { string6a }); - dataset.Add(new[] { header6 }.ToList(), new[] { string6b }); - dataset.Add(new[] { header6 }.ToList(), new[] { string6c }); + dataset.Add(new[] { header6 }.ToList(), new[] { string6 }); + dataset.Add(new[] { header7 }.ToList(), new[] { string7 }); + dataset.Add(new[] { header8 }.ToList(), new[] { string8a }); + dataset.Add(new[] { header8 }.ToList(), new[] { string8b }); return dataset; } @@ -301,6 +313,28 @@ namespace Microsoft.Net.Http.Headers Assert.Equal(expectedValue, input.ToString()); } + [Fact] + public void SetCookieHeaderValue_ToString_SameSiteNoneCompat() + { + SetCookieHeaderValue.SuppressSameSiteNone = true; + + var input = new SetCookieHeaderValue("name", "value") + { + SameSite = SameSiteMode.None, + }; + + Assert.Equal("name=value", input.ToString()); + + SetCookieHeaderValue.SuppressSameSiteNone = false; + + var input2 = new SetCookieHeaderValue("name", "value") + { + SameSite = SameSiteMode.None, + }; + + Assert.Equal("name=value; samesite=none", input2.ToString()); + } + [Theory] [MemberData(nameof(SetCookieHeaderDataSet))] public void SetCookieHeaderValue_AppendToStringBuilder(SetCookieHeaderValue input, string expectedValue) @@ -312,6 +346,32 @@ namespace Microsoft.Net.Http.Headers Assert.Equal(expectedValue, builder.ToString()); } + [Fact] + public void SetCookieHeaderValue_AppendToStringBuilder_SameSiteNoneCompat() + { + SetCookieHeaderValue.SuppressSameSiteNone = true; + + var builder = new StringBuilder(); + var input = new SetCookieHeaderValue("name", "value") + { + SameSite = SameSiteMode.None, + }; + + input.AppendToStringBuilder(builder); + Assert.Equal("name=value", builder.ToString()); + + SetCookieHeaderValue.SuppressSameSiteNone = false; + + var builder2 = new StringBuilder(); + var input2 = new SetCookieHeaderValue("name", "value") + { + SameSite = SameSiteMode.None, + }; + + input2.AppendToStringBuilder(builder2); + Assert.Equal("name=value; samesite=none", builder2.ToString()); + } + [Theory] [MemberData(nameof(SetCookieHeaderDataSet))] public void SetCookieHeaderValue_Parse_AcceptsValidValues(SetCookieHeaderValue cookie, string expectedValue) @@ -322,6 +382,31 @@ namespace Microsoft.Net.Http.Headers Assert.Equal(expectedValue, header.ToString()); } + [Fact] + public void SetCookieHeaderValue_Parse_AcceptsValidValues_SameSiteNoneCompat() + { + SetCookieHeaderValue.SuppressSameSiteNone = true; + var header = SetCookieHeaderValue.Parse("name=value; samesite=none"); + + var cookie = new SetCookieHeaderValue("name", "value") + { + SameSite = SameSiteMode.Strict, + }; + + Assert.Equal(cookie, header); + Assert.Equal("name=value; samesite=strict", header.ToString()); + SetCookieHeaderValue.SuppressSameSiteNone = false; + + var header2 = SetCookieHeaderValue.Parse("name=value; samesite=none"); + + var cookie2 = new SetCookieHeaderValue("name", "value") + { + SameSite = SameSiteMode.None, + }; + Assert.Equal(cookie2, header2); + Assert.Equal("name=value; samesite=none", header2.ToString()); + } + [Theory] [MemberData(nameof(SetCookieHeaderDataSet))] public void SetCookieHeaderValue_TryParse_AcceptsValidValues(SetCookieHeaderValue cookie, string expectedValue) @@ -332,6 +417,31 @@ namespace Microsoft.Net.Http.Headers Assert.Equal(expectedValue, header.ToString()); } + [Fact] + public void SetCookieHeaderValue_TryParse_AcceptsValidValues_SameSiteNoneCompat() + { + SetCookieHeaderValue.SuppressSameSiteNone = true; + Assert.True(SetCookieHeaderValue.TryParse("name=value; samesite=none", out var header)); + var cookie = new SetCookieHeaderValue("name", "value") + { + SameSite = SameSiteMode.Strict, + }; + + Assert.Equal(cookie, header); + Assert.Equal("name=value; samesite=strict", header.ToString()); + + SetCookieHeaderValue.SuppressSameSiteNone = false; + + Assert.True(SetCookieHeaderValue.TryParse("name=value; samesite=none", out var header2)); + var cookie2 = new SetCookieHeaderValue("name", "value") + { + SameSite = SameSiteMode.None, + }; + + Assert.Equal(cookie2, header2); + Assert.Equal("name=value; samesite=none", header2.ToString()); + } + [Theory] [MemberData(nameof(InvalidSetCookieHeaderDataSet))] public void SetCookieHeaderValue_Parse_RejectsInvalidValues(string value) diff --git a/src/Security/Authentication/OpenIdConnect/samples/OpenIdConnectSample/OpenIdConnectSample.csproj b/src/Security/Authentication/OpenIdConnect/samples/OpenIdConnectSample/OpenIdConnectSample.csproj index 6b34fabc6c..9fb07fe38f 100644 --- a/src/Security/Authentication/OpenIdConnect/samples/OpenIdConnectSample/OpenIdConnectSample.csproj +++ b/src/Security/Authentication/OpenIdConnect/samples/OpenIdConnectSample/OpenIdConnectSample.csproj @@ -1,4 +1,4 @@ - + net461;netcoreapp2.1 @@ -12,6 +12,7 @@ + @@ -21,6 +22,7 @@ + diff --git a/src/Security/Authentication/OpenIdConnect/samples/OpenIdConnectSample/Startup.cs b/src/Security/Authentication/OpenIdConnect/samples/OpenIdConnectSample/Startup.cs index 1aa7625cb0..638a6050d7 100644 --- a/src/Security/Authentication/OpenIdConnect/samples/OpenIdConnectSample/Startup.cs +++ b/src/Security/Authentication/OpenIdConnect/samples/OpenIdConnectSample/Startup.cs @@ -43,10 +43,33 @@ namespace OpenIdConnectSample public IHostingEnvironment Environment { get; set; } + private void CheckSameSite(HttpContext httpContext, CookieOptions options) + { + if (options.SameSite > (SameSiteMode)(-1)) + { + var userAgent = httpContext.Request.Headers["User-Agent"].ToString(); + // TODO: Use your User Agent library of choice here. + if (userAgent.Contains("CPU iPhone OS 12") // Also covers iPod touch + || userAgent.Contains("iPad; CPU OS 12") + // Safari 12 and 13 are both broken on Mojave + || userAgent.Contains("Macintosh; Intel Mac OS X 10_14")) + { + options.SameSite = (SameSiteMode)(-1); + } + } + } + public void ConfigureServices(IServiceCollection services) { JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear(); + services.Configure(options => + { + options.MinimumSameSitePolicy = (SameSiteMode)(-1); + options.OnAppendCookie = cookieContext => CheckSameSite(cookieContext.Context, cookieContext.CookieOptions); + options.OnDeleteCookie = cookieContext => CheckSameSite(cookieContext.Context, cookieContext.CookieOptions); + }); + services.AddAuthentication(sharedOptions => { sharedOptions.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme; @@ -56,9 +79,15 @@ namespace OpenIdConnectSample .AddCookie() .AddOpenIdConnect(o => { + /* o.ClientId = Configuration["oidc:clientid"]; o.ClientSecret = Configuration["oidc:clientsecret"]; // for code flow o.Authority = Configuration["oidc:authority"]; + */ + // https://github.com/IdentityServer/IdentityServer4.Demo/blob/master/src/IdentityServer4Demo/Config.cs + o.ClientId = "server.hybrid"; + o.ClientSecret = "secret"; // for code flow + o.Authority = "https://demo.identityserver.io/"; o.ResponseType = OpenIdConnectResponseType.CodeIdToken; o.SaveTokens = true; @@ -88,6 +117,7 @@ namespace OpenIdConnectSample public void Configure(IApplicationBuilder app, IOptionsMonitor optionsMonitor) { app.UseDeveloperExceptionPage(); + app.UseCookiePolicy(); // Before UseAuthentication or anything else that writes cookies. app.UseAuthentication(); app.Run(async context => diff --git a/src/Security/Authentication/test/CookieTests.cs b/src/Security/Authentication/test/CookieTests.cs index 766d1e2e53..c2445d747c 100644 --- a/src/Security/Authentication/test/CookieTests.cs +++ b/src/Security/Authentication/test/CookieTests.cs @@ -649,7 +649,7 @@ namespace Microsoft.AspNetCore.Authentication.Cookies Assert.Contains(" path=/foo", setCookie1); Assert.Contains(" domain=another.com", setCookie1); Assert.Contains(" secure", setCookie1); - Assert.DoesNotContain(" samesite", setCookie1); + Assert.Contains(" samesite=none", setCookie1); Assert.Contains(" httponly", setCookie1); var server2 = CreateServer(o => diff --git a/src/Security/Authentication/test/Microsoft.AspNetCore.Authentication.Test.csproj b/src/Security/Authentication/test/Microsoft.AspNetCore.Authentication.Test.csproj index d008f35ffd..94e3ae739d 100644 --- a/src/Security/Authentication/test/Microsoft.AspNetCore.Authentication.Test.csproj +++ b/src/Security/Authentication/test/Microsoft.AspNetCore.Authentication.Test.csproj @@ -1,4 +1,4 @@ - + netcoreapp2.1;net461 @@ -39,6 +39,7 @@ + diff --git a/src/Security/Authentication/test/OpenIdConnect/OpenIdConnectChallengeTests.cs b/src/Security/Authentication/test/OpenIdConnect/OpenIdConnectChallengeTests.cs index cbafc46223..9e2c47a7a7 100644 --- a/src/Security/Authentication/test/OpenIdConnect/OpenIdConnectChallengeTests.cs +++ b/src/Security/Authentication/test/OpenIdConnect/OpenIdConnectChallengeTests.cs @@ -376,6 +376,7 @@ namespace Microsoft.AspNetCore.Authentication.Test.OpenIdConnect var server = settings.CreateTestServer(); var transaction = await server.SendAsync(ChallengeEndpoint); + Assert.Contains("samesite=none", transaction.SetCookie.First()); var challengeCookies = SetCookieHeaderValue.ParseList(transaction.SetCookie); var nonceCookie = challengeCookies.Where(cookie => cookie.Name.StartsWith(OpenIdConnectDefaults.CookieNoncePrefix, StringComparison.Ordinal)).Single(); Assert.True(nonceCookie.Expires.HasValue); @@ -613,4 +614,4 @@ namespace Microsoft.AspNetCore.Authentication.Test.OpenIdConnect Assert.Contains("max_age=1234", res.Headers.Location.Query); } } -} \ No newline at end of file +} diff --git a/src/Security/CookiePolicy/src/CookiePolicyOptions.cs b/src/Security/CookiePolicy/src/CookiePolicyOptions.cs index 32d047297a..dda970a511 100644 --- a/src/Security/CookiePolicy/src/CookiePolicyOptions.cs +++ b/src/Security/CookiePolicy/src/CookiePolicyOptions.cs @@ -12,6 +12,18 @@ namespace Microsoft.AspNetCore.Builder /// public class CookiePolicyOptions { + // True (old): https://tools.ietf.org/html/draft-west-first-party-cookies-07#section-3.1 + // False (new): https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-03#section-4.1.1 + internal static bool SuppressSameSiteNone; + + static CookiePolicyOptions() + { + if (AppContext.TryGetSwitch("Microsoft.AspNetCore.SuppressSameSiteNone", out var enabled)) + { + SuppressSameSiteNone = enabled; + } + } + /// /// Affects the cookie's same site attribute. /// @@ -49,4 +61,4 @@ namespace Microsoft.AspNetCore.Builder /// public Action OnDeleteCookie { get; set; } } -} \ No newline at end of file +} diff --git a/src/Security/CookiePolicy/src/ResponseCookiesWrapper.cs b/src/Security/CookiePolicy/src/ResponseCookiesWrapper.cs index 126c4d7bd5..1db77125f6 100644 --- a/src/Security/CookiePolicy/src/ResponseCookiesWrapper.cs +++ b/src/Security/CookiePolicy/src/ResponseCookiesWrapper.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; @@ -115,7 +115,8 @@ namespace Microsoft.AspNetCore.CookiePolicy private bool CheckPolicyRequired() { return !CanTrack - || Options.MinimumSameSitePolicy != SameSiteMode.None + || (CookiePolicyOptions.SuppressSameSiteNone && Options.MinimumSameSitePolicy != SameSiteMode.None) + || (!CookiePolicyOptions.SuppressSameSiteNone && Options.MinimumSameSitePolicy != (SameSiteMode)(-1)) || Options.HttpOnly != HttpOnlyPolicy.None || Options.Secure != CookieSecurePolicy.None; } @@ -241,26 +242,10 @@ namespace Microsoft.AspNetCore.CookiePolicy default: throw new InvalidOperationException(); } - switch (Options.MinimumSameSitePolicy) + if (options.SameSite < Options.MinimumSameSitePolicy) { - case SameSiteMode.None: - break; - case SameSiteMode.Lax: - if (options.SameSite == SameSiteMode.None) - { - options.SameSite = SameSiteMode.Lax; - _logger.CookieSameSiteUpgraded(key, "lax"); - } - break; - case SameSiteMode.Strict: - if (options.SameSite != SameSiteMode.Strict) - { - options.SameSite = SameSiteMode.Strict; - _logger.CookieSameSiteUpgraded(key, "strict"); - } - break; - default: - throw new InvalidOperationException($"Unrecognized {nameof(SameSiteMode)} value {Options.MinimumSameSitePolicy.ToString()}"); + options.SameSite = Options.MinimumSameSitePolicy; + _logger.CookieSameSiteUpgraded(key, Options.MinimumSameSitePolicy.ToString()); } switch (Options.HttpOnly) { @@ -278,4 +263,4 @@ namespace Microsoft.AspNetCore.CookiePolicy } } } -} \ No newline at end of file +} diff --git a/src/Security/CookiePolicy/test/CookiePolicyTests.cs b/src/Security/CookiePolicy/test/CookiePolicyTests.cs index a2592e5575..2eec9e7b6c 100644 --- a/src/Security/CookiePolicy/test/CookiePolicyTests.cs +++ b/src/Security/CookiePolicy/test/CookiePolicyTests.cs @@ -43,6 +43,7 @@ namespace Microsoft.AspNetCore.CookiePolicy.Test context.Response.Cookies.Append("C", "C", new CookieOptions()); context.Response.Cookies.Append("D", "D", new CookieOptions { SameSite = Http.SameSiteMode.Lax }); context.Response.Cookies.Append("E", "E", new CookieOptions { SameSite = Http.SameSiteMode.Strict }); + context.Response.Cookies.Append("F", "F", new CookieOptions { SameSite = (Http.SameSiteMode)(-1) }); return Task.FromResult(0); }; @@ -198,7 +199,7 @@ namespace Microsoft.AspNetCore.CookiePolicy.Test } [Fact] - public async Task SameSiteNoneLeavesItAlone() + public async Task SameSiteNoneSetsItAlways() { await RunTest("/sameSiteNone", new CookiePolicyOptions @@ -210,11 +211,34 @@ namespace Microsoft.AspNetCore.CookiePolicy.Test transaction => { Assert.NotNull(transaction.SetCookie); - Assert.Equal("A=A; path=/", transaction.SetCookie[0]); - Assert.Equal("B=B; path=/", transaction.SetCookie[1]); + Assert.Equal("A=A; path=/; samesite=lax", transaction.SetCookie[0]); + Assert.Equal("B=B; path=/; samesite=none", transaction.SetCookie[1]); Assert.Equal("C=C; path=/; samesite=lax", transaction.SetCookie[2]); Assert.Equal("D=D; path=/; samesite=lax", transaction.SetCookie[3]); Assert.Equal("E=E; path=/; samesite=strict", transaction.SetCookie[4]); + Assert.Equal("F=F; path=/; samesite=none", transaction.SetCookie[5]); + })); + } + + [Fact] + public async Task SameSiteUnspecifiedLeavesItAlone() + { + await RunTest("/sameSiteNone", + new CookiePolicyOptions + { + MinimumSameSitePolicy = (Http.SameSiteMode)(-1) + }, + SameSiteCookieAppends, + new RequestTest("http://example.com/sameSiteNone", + transaction => + { + Assert.NotNull(transaction.SetCookie); + Assert.Equal("A=A; path=/", transaction.SetCookie[0]); + Assert.Equal("B=B; path=/; samesite=none", transaction.SetCookie[1]); + Assert.Equal("C=C; path=/; samesite=lax", transaction.SetCookie[2]); + Assert.Equal("D=D; path=/; samesite=lax", transaction.SetCookie[3]); + Assert.Equal("E=E; path=/; samesite=strict", transaction.SetCookie[4]); + Assert.Equal("F=F; path=/", transaction.SetCookie[5]); })); } @@ -468,4 +492,4 @@ namespace Microsoft.AspNetCore.CookiePolicy.Test } } } -} \ No newline at end of file +} diff --git a/src/Security/CookiePolicy/test/Microsoft.AspNetCore.CookiePolicy.Test.csproj b/src/Security/CookiePolicy/test/Microsoft.AspNetCore.CookiePolicy.Test.csproj index cf7016dd3d..6d4c6c8535 100644 --- a/src/Security/CookiePolicy/test/Microsoft.AspNetCore.CookiePolicy.Test.csproj +++ b/src/Security/CookiePolicy/test/Microsoft.AspNetCore.CookiePolicy.Test.csproj @@ -1,4 +1,4 @@ - + netcoreapp2.1;net461 @@ -13,6 +13,7 @@ + diff --git a/src/Security/Security.sln b/src/Security/Security.sln index 3d36597db9..557b68ac83 100644 --- a/src/Security/Security.sln +++ b/src/Security/Security.sln @@ -102,6 +102,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server.IISIntegration", "..\Servers\IIS\IISIntegration\src\Microsoft.AspNetCore.Server.IISIntegration.csproj", "{81D0E81F-4711-4C7B-BBD4-E168102D0D7D}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Net.Http.Headers", "..\Http\Headers\src\Microsoft.Net.Http.Headers.csproj", "{4BB8D7D7-E111-4A86-B6E5-C1201E0DA8CE}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -248,6 +250,10 @@ Global {81D0E81F-4711-4C7B-BBD4-E168102D0D7D}.Debug|Any CPU.Build.0 = Debug|Any CPU {81D0E81F-4711-4C7B-BBD4-E168102D0D7D}.Release|Any CPU.ActiveCfg = Release|Any CPU {81D0E81F-4711-4C7B-BBD4-E168102D0D7D}.Release|Any CPU.Build.0 = Release|Any CPU + {4BB8D7D7-E111-4A86-B6E5-C1201E0DA8CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4BB8D7D7-E111-4A86-B6E5-C1201E0DA8CE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4BB8D7D7-E111-4A86-B6E5-C1201E0DA8CE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4BB8D7D7-E111-4A86-B6E5-C1201E0DA8CE}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -298,6 +304,7 @@ Global {707CBFB4-4D35-479E-9BAF-39B4DA9782DE} = {A3766414-EB5C-40F7-B031-121804ED5D0A} {AFE880E8-2E9E-46FD-BE87-DFC8192E7B2D} = {A3766414-EB5C-40F7-B031-121804ED5D0A} {81D0E81F-4711-4C7B-BBD4-E168102D0D7D} = {A3766414-EB5C-40F7-B031-121804ED5D0A} + {4BB8D7D7-E111-4A86-B6E5-C1201E0DA8CE} = {A3766414-EB5C-40F7-B031-121804ED5D0A} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {ABF8089E-43D0-4010-84A7-7A9DCFE49357} From bae8fe9399c5bc1110638743816f27f055be3385 Mon Sep 17 00:00:00 2001 From: Chris Ross Date: Thu, 3 Oct 2019 14:37:36 -0700 Subject: [PATCH 041/111] [2.2] Re-implement SameSite for 2019 (#13858) * Re-implement SameSite for 2019 #12125 * Rename compat flag * References * Use Microsoft.AspNetCore.SuppressSameSiteNone compat key * Patchconfig * Port CookiePolicy fix --- eng/PatchConfig.props | 2 + src/Http/Headers/src/SetCookieHeaderValue.cs | 71 ++++++++-- .../Headers/test/SetCookieHeaderValueTest.cs | 124 +++++++++++++++++- .../OpenIdConnectSample.csproj | 4 +- .../samples/OpenIdConnectSample/Startup.cs | 30 +++++ .../samples/WsFedSample/WsFedSample.csproj | 3 +- .../samples/SocialSample/SocialSample.csproj | 3 +- .../Authentication/test/CookieTests.cs | 2 +- ...soft.AspNetCore.Authentication.Test.csproj | 3 +- .../OpenIdConnectChallengeTests.cs | 3 +- .../CookiePolicy/src/CookiePolicyOptions.cs | 14 +- .../src/ResponseCookiesWrapper.cs | 29 +--- .../CookiePolicy/test/CookiePolicyTests.cs | 32 ++++- ...rosoft.AspNetCore.CookiePolicy.Test.csproj | 3 +- src/Security/Security.sln | 7 + 15 files changed, 275 insertions(+), 55 deletions(-) diff --git a/eng/PatchConfig.props b/eng/PatchConfig.props index dc15b2cbe0..47b5678703 100644 --- a/eng/PatchConfig.props +++ b/eng/PatchConfig.props @@ -78,6 +78,8 @@ Later on, this will be checked using this condition:
+ Microsoft.Net.Http.Headers; + Microsoft.AspNetCore.CookiePolicy; Microsoft.AspNetCore.DataProtection.EntityFrameworkCore; diff --git a/src/Http/Headers/src/SetCookieHeaderValue.cs b/src/Http/Headers/src/SetCookieHeaderValue.cs index f3477648de..e72f02b048 100644 --- a/src/Http/Headers/src/SetCookieHeaderValue.cs +++ b/src/Http/Headers/src/SetCookieHeaderValue.cs @@ -19,8 +19,14 @@ namespace Microsoft.Net.Http.Headers private const string SecureToken = "secure"; // RFC Draft: https://tools.ietf.org/html/draft-ietf-httpbis-cookie-same-site-00 private const string SameSiteToken = "samesite"; + private static readonly string SameSiteNoneToken = SameSiteMode.None.ToString().ToLower(); private static readonly string SameSiteLaxToken = SameSiteMode.Lax.ToString().ToLower(); private static readonly string SameSiteStrictToken = SameSiteMode.Strict.ToString().ToLower(); + + // True (old): https://tools.ietf.org/html/draft-west-first-party-cookies-07#section-3.1 + // False (new): https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-03#section-4.1.1 + internal static bool SuppressSameSiteNone; + private const string HttpOnlyToken = "httponly"; private const string SeparatorToken = "; "; private const string EqualsToken = "="; @@ -34,6 +40,14 @@ namespace Microsoft.Net.Http.Headers private StringSegment _name; private StringSegment _value; + static SetCookieHeaderValue() + { + if (AppContext.TryGetSwitch("Microsoft.AspNetCore.SuppressSameSiteNone", out var enabled)) + { + SuppressSameSiteNone = enabled; + } + } + private SetCookieHeaderValue() { // Used by the parser to create a new instance of this type. @@ -90,11 +104,11 @@ namespace Microsoft.Net.Http.Headers public bool Secure { get; set; } - public SameSiteMode SameSite { get; set; } + public SameSiteMode SameSite { get; set; } = SuppressSameSiteNone ? SameSiteMode.None : (SameSiteMode)(-1); // Unspecified public bool HttpOnly { get; set; } - // name="value"; expires=Sun, 06 Nov 1994 08:49:37 GMT; max-age=86400; domain=domain1; path=path1; secure; samesite={Strict|Lax}; httponly + // name="value"; expires=Sun, 06 Nov 1994 08:49:37 GMT; max-age=86400; domain=domain1; path=path1; secure; samesite={strict|lax|none}; httponly public override string ToString() { var length = _name.Length + EqualsToken.Length + _value.Length; @@ -130,9 +144,20 @@ namespace Microsoft.Net.Http.Headers length += SeparatorToken.Length + SecureToken.Length; } - if (SameSite != SameSiteMode.None) + // Allow for Unspecified (-1) to skip SameSite + if (SameSite == SameSiteMode.None && !SuppressSameSiteNone) { - sameSite = SameSite == SameSiteMode.Lax ? SameSiteLaxToken : SameSiteStrictToken; + sameSite = SameSiteNoneToken; + length += SeparatorToken.Length + SameSiteToken.Length + EqualsToken.Length + sameSite.Length; + } + else if (SameSite == SameSiteMode.Lax) + { + sameSite = SameSiteLaxToken; + length += SeparatorToken.Length + SameSiteToken.Length + EqualsToken.Length + sameSite.Length; + } + else if (SameSite == SameSiteMode.Strict) + { + sameSite = SameSiteStrictToken; length += SeparatorToken.Length + SameSiteToken.Length + EqualsToken.Length + sameSite.Length; } @@ -172,7 +197,7 @@ namespace Microsoft.Net.Http.Headers AppendSegment(ref sb, SecureToken, null); } - if (SameSite != SameSiteMode.None) + if (sameSite != null) { AppendSegment(ref sb, SameSiteToken, sameSite); } @@ -235,9 +260,18 @@ namespace Microsoft.Net.Http.Headers AppendSegment(builder, SecureToken, null); } - if (SameSite != SameSiteMode.None) + // Allow for Unspecified (-1) to skip SameSite + if (SameSite == SameSiteMode.None && !SuppressSameSiteNone) { - AppendSegment(builder, SameSiteToken, SameSite == SameSiteMode.Lax ? SameSiteLaxToken : SameSiteStrictToken); + AppendSegment(builder, SameSiteToken, SameSiteNoneToken); + } + else if (SameSite == SameSiteMode.Lax) + { + AppendSegment(builder, SameSiteToken, SameSiteLaxToken); + } + else if (SameSite == SameSiteMode.Strict) + { + AppendSegment(builder, SameSiteToken, SameSiteStrictToken); } if (HttpOnly) @@ -289,7 +323,7 @@ namespace Microsoft.Net.Http.Headers return MultipleValueParser.TryParseStrictValues(inputs, out parsedValues); } - // name=value; expires=Sun, 06 Nov 1994 08:49:37 GMT; max-age=86400; domain=domain1; path=path1; secure; samesite={Strict|Lax}; httponly + // name=value; expires=Sun, 06 Nov 1994 08:49:37 GMT; max-age=86400; domain=domain1; path=path1; secure; samesite={Strict|Lax|None}; httponly private static int GetSetCookieLength(StringSegment input, int startIndex, out SetCookieHeaderValue parsedValue) { Contract.Requires(startIndex >= 0); @@ -424,25 +458,34 @@ namespace Microsoft.Net.Http.Headers { result.Secure = true; } - // samesite-av = "SameSite" / "SameSite=" samesite-value - // samesite-value = "Strict" / "Lax" + // samesite-av = "SameSite=" samesite-value + // samesite-value = "Strict" / "Lax" / "None" else if (StringSegment.Equals(token, SameSiteToken, StringComparison.OrdinalIgnoreCase)) { if (!ReadEqualsSign(input, ref offset)) { - result.SameSite = SameSiteMode.Strict; + result.SameSite = SuppressSameSiteNone ? SameSiteMode.Strict : (SameSiteMode)(-1); // Unspecified } else { var enforcementMode = ReadToSemicolonOrEnd(input, ref offset); - if (StringSegment.Equals(enforcementMode, SameSiteLaxToken, StringComparison.OrdinalIgnoreCase)) + if (StringSegment.Equals(enforcementMode, SameSiteStrictToken, StringComparison.OrdinalIgnoreCase)) + { + result.SameSite = SameSiteMode.Strict; + } + else if (StringSegment.Equals(enforcementMode, SameSiteLaxToken, StringComparison.OrdinalIgnoreCase)) { result.SameSite = SameSiteMode.Lax; } + else if (!SuppressSameSiteNone + && StringSegment.Equals(enforcementMode, SameSiteNoneToken, StringComparison.OrdinalIgnoreCase)) + { + result.SameSite = SameSiteMode.None; + } else { - result.SameSite = SameSiteMode.Strict; + result.SameSite = SuppressSameSiteNone ? SameSiteMode.Strict : (SameSiteMode)(-1); // Unspecified } } } @@ -520,4 +563,4 @@ namespace Microsoft.Net.Http.Headers ^ HttpOnly.GetHashCode(); } } -} \ No newline at end of file +} diff --git a/src/Http/Headers/test/SetCookieHeaderValueTest.cs b/src/Http/Headers/test/SetCookieHeaderValueTest.cs index 9a920f40d0..3bd2dde3aa 100644 --- a/src/Http/Headers/test/SetCookieHeaderValueTest.cs +++ b/src/Http/Headers/test/SetCookieHeaderValueTest.cs @@ -57,7 +57,7 @@ namespace Microsoft.Net.Http.Headers { SameSite = SameSiteMode.None, }; - dataset.Add(header7, "name7=value7"); + dataset.Add(header7, "name7=value7; samesite=none"); return dataset; @@ -155,9 +155,20 @@ namespace Microsoft.Net.Http.Headers { SameSite = SameSiteMode.Strict }; - var string6a = "name6=value6; samesite"; - var string6b = "name6=value6; samesite=Strict"; - var string6c = "name6=value6; samesite=invalid"; + var string6 = "name6=value6; samesite=Strict"; + + var header7 = new SetCookieHeaderValue("name7", "value7") + { + SameSite = SameSiteMode.None + }; + var string7 = "name7=value7; samesite=None"; + + var header8 = new SetCookieHeaderValue("name8", "value8") + { + SameSite = (SameSiteMode)(-1) // Unspecified + }; + var string8a = "name8=value8; samesite"; + var string8b = "name8=value8; samesite=invalid"; dataset.Add(new[] { header1 }.ToList(), new[] { string1 }); dataset.Add(new[] { header1, header1 }.ToList(), new[] { string1, string1 }); @@ -170,9 +181,10 @@ namespace Microsoft.Net.Http.Headers dataset.Add(new[] { header1, header2, header3, header4 }.ToList(), new[] { string.Join(",", string1, string2, string3, string4) }); dataset.Add(new[] { header5 }.ToList(), new[] { string5a }); dataset.Add(new[] { header5 }.ToList(), new[] { string5b }); - dataset.Add(new[] { header6 }.ToList(), new[] { string6a }); - dataset.Add(new[] { header6 }.ToList(), new[] { string6b }); - dataset.Add(new[] { header6 }.ToList(), new[] { string6c }); + dataset.Add(new[] { header6 }.ToList(), new[] { string6 }); + dataset.Add(new[] { header7 }.ToList(), new[] { string7 }); + dataset.Add(new[] { header8 }.ToList(), new[] { string8a }); + dataset.Add(new[] { header8 }.ToList(), new[] { string8b }); return dataset; } @@ -301,6 +313,28 @@ namespace Microsoft.Net.Http.Headers Assert.Equal(expectedValue, input.ToString()); } + [Fact] + public void SetCookieHeaderValue_ToString_SameSiteNoneCompat() + { + SetCookieHeaderValue.SuppressSameSiteNone = true; + + var input = new SetCookieHeaderValue("name", "value") + { + SameSite = SameSiteMode.None, + }; + + Assert.Equal("name=value", input.ToString()); + + SetCookieHeaderValue.SuppressSameSiteNone = false; + + var input2 = new SetCookieHeaderValue("name", "value") + { + SameSite = SameSiteMode.None, + }; + + Assert.Equal("name=value; samesite=none", input2.ToString()); + } + [Theory] [MemberData(nameof(SetCookieHeaderDataSet))] public void SetCookieHeaderValue_AppendToStringBuilder(SetCookieHeaderValue input, string expectedValue) @@ -312,6 +346,32 @@ namespace Microsoft.Net.Http.Headers Assert.Equal(expectedValue, builder.ToString()); } + [Fact] + public void SetCookieHeaderValue_AppendToStringBuilder_SameSiteNoneCompat() + { + SetCookieHeaderValue.SuppressSameSiteNone = true; + + var builder = new StringBuilder(); + var input = new SetCookieHeaderValue("name", "value") + { + SameSite = SameSiteMode.None, + }; + + input.AppendToStringBuilder(builder); + Assert.Equal("name=value", builder.ToString()); + + SetCookieHeaderValue.SuppressSameSiteNone = false; + + var builder2 = new StringBuilder(); + var input2 = new SetCookieHeaderValue("name", "value") + { + SameSite = SameSiteMode.None, + }; + + input2.AppendToStringBuilder(builder2); + Assert.Equal("name=value; samesite=none", builder2.ToString()); + } + [Theory] [MemberData(nameof(SetCookieHeaderDataSet))] public void SetCookieHeaderValue_Parse_AcceptsValidValues(SetCookieHeaderValue cookie, string expectedValue) @@ -322,6 +382,31 @@ namespace Microsoft.Net.Http.Headers Assert.Equal(expectedValue, header.ToString()); } + [Fact] + public void SetCookieHeaderValue_Parse_AcceptsValidValues_SameSiteNoneCompat() + { + SetCookieHeaderValue.SuppressSameSiteNone = true; + var header = SetCookieHeaderValue.Parse("name=value; samesite=none"); + + var cookie = new SetCookieHeaderValue("name", "value") + { + SameSite = SameSiteMode.Strict, + }; + + Assert.Equal(cookie, header); + Assert.Equal("name=value; samesite=strict", header.ToString()); + SetCookieHeaderValue.SuppressSameSiteNone = false; + + var header2 = SetCookieHeaderValue.Parse("name=value; samesite=none"); + + var cookie2 = new SetCookieHeaderValue("name", "value") + { + SameSite = SameSiteMode.None, + }; + Assert.Equal(cookie2, header2); + Assert.Equal("name=value; samesite=none", header2.ToString()); + } + [Theory] [MemberData(nameof(SetCookieHeaderDataSet))] public void SetCookieHeaderValue_TryParse_AcceptsValidValues(SetCookieHeaderValue cookie, string expectedValue) @@ -332,6 +417,31 @@ namespace Microsoft.Net.Http.Headers Assert.Equal(expectedValue, header.ToString()); } + [Fact] + public void SetCookieHeaderValue_TryParse_AcceptsValidValues_SameSiteNoneCompat() + { + SetCookieHeaderValue.SuppressSameSiteNone = true; + Assert.True(SetCookieHeaderValue.TryParse("name=value; samesite=none", out var header)); + var cookie = new SetCookieHeaderValue("name", "value") + { + SameSite = SameSiteMode.Strict, + }; + + Assert.Equal(cookie, header); + Assert.Equal("name=value; samesite=strict", header.ToString()); + + SetCookieHeaderValue.SuppressSameSiteNone = false; + + Assert.True(SetCookieHeaderValue.TryParse("name=value; samesite=none", out var header2)); + var cookie2 = new SetCookieHeaderValue("name", "value") + { + SameSite = SameSiteMode.None, + }; + + Assert.Equal(cookie2, header2); + Assert.Equal("name=value; samesite=none", header2.ToString()); + } + [Theory] [MemberData(nameof(InvalidSetCookieHeaderDataSet))] public void SetCookieHeaderValue_Parse_RejectsInvalidValues(string value) diff --git a/src/Security/Authentication/OpenIdConnect/samples/OpenIdConnectSample/OpenIdConnectSample.csproj b/src/Security/Authentication/OpenIdConnect/samples/OpenIdConnectSample/OpenIdConnectSample.csproj index 39d1a8055c..5111e9ac70 100644 --- a/src/Security/Authentication/OpenIdConnect/samples/OpenIdConnectSample/OpenIdConnectSample.csproj +++ b/src/Security/Authentication/OpenIdConnect/samples/OpenIdConnectSample/OpenIdConnectSample.csproj @@ -1,4 +1,4 @@ - + net461;netcoreapp2.2 @@ -12,6 +12,7 @@ + @@ -21,6 +22,7 @@ + diff --git a/src/Security/Authentication/OpenIdConnect/samples/OpenIdConnectSample/Startup.cs b/src/Security/Authentication/OpenIdConnect/samples/OpenIdConnectSample/Startup.cs index 1aa7625cb0..638a6050d7 100644 --- a/src/Security/Authentication/OpenIdConnect/samples/OpenIdConnectSample/Startup.cs +++ b/src/Security/Authentication/OpenIdConnect/samples/OpenIdConnectSample/Startup.cs @@ -43,10 +43,33 @@ namespace OpenIdConnectSample public IHostingEnvironment Environment { get; set; } + private void CheckSameSite(HttpContext httpContext, CookieOptions options) + { + if (options.SameSite > (SameSiteMode)(-1)) + { + var userAgent = httpContext.Request.Headers["User-Agent"].ToString(); + // TODO: Use your User Agent library of choice here. + if (userAgent.Contains("CPU iPhone OS 12") // Also covers iPod touch + || userAgent.Contains("iPad; CPU OS 12") + // Safari 12 and 13 are both broken on Mojave + || userAgent.Contains("Macintosh; Intel Mac OS X 10_14")) + { + options.SameSite = (SameSiteMode)(-1); + } + } + } + public void ConfigureServices(IServiceCollection services) { JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear(); + services.Configure(options => + { + options.MinimumSameSitePolicy = (SameSiteMode)(-1); + options.OnAppendCookie = cookieContext => CheckSameSite(cookieContext.Context, cookieContext.CookieOptions); + options.OnDeleteCookie = cookieContext => CheckSameSite(cookieContext.Context, cookieContext.CookieOptions); + }); + services.AddAuthentication(sharedOptions => { sharedOptions.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme; @@ -56,9 +79,15 @@ namespace OpenIdConnectSample .AddCookie() .AddOpenIdConnect(o => { + /* o.ClientId = Configuration["oidc:clientid"]; o.ClientSecret = Configuration["oidc:clientsecret"]; // for code flow o.Authority = Configuration["oidc:authority"]; + */ + // https://github.com/IdentityServer/IdentityServer4.Demo/blob/master/src/IdentityServer4Demo/Config.cs + o.ClientId = "server.hybrid"; + o.ClientSecret = "secret"; // for code flow + o.Authority = "https://demo.identityserver.io/"; o.ResponseType = OpenIdConnectResponseType.CodeIdToken; o.SaveTokens = true; @@ -88,6 +117,7 @@ namespace OpenIdConnectSample public void Configure(IApplicationBuilder app, IOptionsMonitor optionsMonitor) { app.UseDeveloperExceptionPage(); + app.UseCookiePolicy(); // Before UseAuthentication or anything else that writes cookies. app.UseAuthentication(); app.Run(async context => diff --git a/src/Security/Authentication/WsFederation/samples/WsFedSample/WsFedSample.csproj b/src/Security/Authentication/WsFederation/samples/WsFedSample/WsFedSample.csproj index 26f51963cd..6a68d49c8e 100644 --- a/src/Security/Authentication/WsFederation/samples/WsFedSample/WsFedSample.csproj +++ b/src/Security/Authentication/WsFederation/samples/WsFedSample/WsFedSample.csproj @@ -1,4 +1,4 @@ - + net461;netcoreapp2.2 @@ -15,6 +15,7 @@ + diff --git a/src/Security/Authentication/samples/SocialSample/SocialSample.csproj b/src/Security/Authentication/samples/SocialSample/SocialSample.csproj index cce4675916..2081b5cf34 100644 --- a/src/Security/Authentication/samples/SocialSample/SocialSample.csproj +++ b/src/Security/Authentication/samples/SocialSample/SocialSample.csproj @@ -1,4 +1,4 @@ - + net461;netcoreapp2.2 @@ -28,6 +28,7 @@ + diff --git a/src/Security/Authentication/test/CookieTests.cs b/src/Security/Authentication/test/CookieTests.cs index 766d1e2e53..c2445d747c 100644 --- a/src/Security/Authentication/test/CookieTests.cs +++ b/src/Security/Authentication/test/CookieTests.cs @@ -649,7 +649,7 @@ namespace Microsoft.AspNetCore.Authentication.Cookies Assert.Contains(" path=/foo", setCookie1); Assert.Contains(" domain=another.com", setCookie1); Assert.Contains(" secure", setCookie1); - Assert.DoesNotContain(" samesite", setCookie1); + Assert.Contains(" samesite=none", setCookie1); Assert.Contains(" httponly", setCookie1); var server2 = CreateServer(o => diff --git a/src/Security/Authentication/test/Microsoft.AspNetCore.Authentication.Test.csproj b/src/Security/Authentication/test/Microsoft.AspNetCore.Authentication.Test.csproj index 922a7843e5..35cea7283a 100644 --- a/src/Security/Authentication/test/Microsoft.AspNetCore.Authentication.Test.csproj +++ b/src/Security/Authentication/test/Microsoft.AspNetCore.Authentication.Test.csproj @@ -1,4 +1,4 @@ - + netcoreapp2.2;net461 @@ -39,6 +39,7 @@ + diff --git a/src/Security/Authentication/test/OpenIdConnect/OpenIdConnectChallengeTests.cs b/src/Security/Authentication/test/OpenIdConnect/OpenIdConnectChallengeTests.cs index cbafc46223..9e2c47a7a7 100644 --- a/src/Security/Authentication/test/OpenIdConnect/OpenIdConnectChallengeTests.cs +++ b/src/Security/Authentication/test/OpenIdConnect/OpenIdConnectChallengeTests.cs @@ -376,6 +376,7 @@ namespace Microsoft.AspNetCore.Authentication.Test.OpenIdConnect var server = settings.CreateTestServer(); var transaction = await server.SendAsync(ChallengeEndpoint); + Assert.Contains("samesite=none", transaction.SetCookie.First()); var challengeCookies = SetCookieHeaderValue.ParseList(transaction.SetCookie); var nonceCookie = challengeCookies.Where(cookie => cookie.Name.StartsWith(OpenIdConnectDefaults.CookieNoncePrefix, StringComparison.Ordinal)).Single(); Assert.True(nonceCookie.Expires.HasValue); @@ -613,4 +614,4 @@ namespace Microsoft.AspNetCore.Authentication.Test.OpenIdConnect Assert.Contains("max_age=1234", res.Headers.Location.Query); } } -} \ No newline at end of file +} diff --git a/src/Security/CookiePolicy/src/CookiePolicyOptions.cs b/src/Security/CookiePolicy/src/CookiePolicyOptions.cs index 32d047297a..dda970a511 100644 --- a/src/Security/CookiePolicy/src/CookiePolicyOptions.cs +++ b/src/Security/CookiePolicy/src/CookiePolicyOptions.cs @@ -12,6 +12,18 @@ namespace Microsoft.AspNetCore.Builder /// public class CookiePolicyOptions { + // True (old): https://tools.ietf.org/html/draft-west-first-party-cookies-07#section-3.1 + // False (new): https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-03#section-4.1.1 + internal static bool SuppressSameSiteNone; + + static CookiePolicyOptions() + { + if (AppContext.TryGetSwitch("Microsoft.AspNetCore.SuppressSameSiteNone", out var enabled)) + { + SuppressSameSiteNone = enabled; + } + } + /// /// Affects the cookie's same site attribute. /// @@ -49,4 +61,4 @@ namespace Microsoft.AspNetCore.Builder /// public Action OnDeleteCookie { get; set; } } -} \ No newline at end of file +} diff --git a/src/Security/CookiePolicy/src/ResponseCookiesWrapper.cs b/src/Security/CookiePolicy/src/ResponseCookiesWrapper.cs index 126c4d7bd5..1db77125f6 100644 --- a/src/Security/CookiePolicy/src/ResponseCookiesWrapper.cs +++ b/src/Security/CookiePolicy/src/ResponseCookiesWrapper.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; @@ -115,7 +115,8 @@ namespace Microsoft.AspNetCore.CookiePolicy private bool CheckPolicyRequired() { return !CanTrack - || Options.MinimumSameSitePolicy != SameSiteMode.None + || (CookiePolicyOptions.SuppressSameSiteNone && Options.MinimumSameSitePolicy != SameSiteMode.None) + || (!CookiePolicyOptions.SuppressSameSiteNone && Options.MinimumSameSitePolicy != (SameSiteMode)(-1)) || Options.HttpOnly != HttpOnlyPolicy.None || Options.Secure != CookieSecurePolicy.None; } @@ -241,26 +242,10 @@ namespace Microsoft.AspNetCore.CookiePolicy default: throw new InvalidOperationException(); } - switch (Options.MinimumSameSitePolicy) + if (options.SameSite < Options.MinimumSameSitePolicy) { - case SameSiteMode.None: - break; - case SameSiteMode.Lax: - if (options.SameSite == SameSiteMode.None) - { - options.SameSite = SameSiteMode.Lax; - _logger.CookieSameSiteUpgraded(key, "lax"); - } - break; - case SameSiteMode.Strict: - if (options.SameSite != SameSiteMode.Strict) - { - options.SameSite = SameSiteMode.Strict; - _logger.CookieSameSiteUpgraded(key, "strict"); - } - break; - default: - throw new InvalidOperationException($"Unrecognized {nameof(SameSiteMode)} value {Options.MinimumSameSitePolicy.ToString()}"); + options.SameSite = Options.MinimumSameSitePolicy; + _logger.CookieSameSiteUpgraded(key, Options.MinimumSameSitePolicy.ToString()); } switch (Options.HttpOnly) { @@ -278,4 +263,4 @@ namespace Microsoft.AspNetCore.CookiePolicy } } } -} \ No newline at end of file +} diff --git a/src/Security/CookiePolicy/test/CookiePolicyTests.cs b/src/Security/CookiePolicy/test/CookiePolicyTests.cs index a2592e5575..2eec9e7b6c 100644 --- a/src/Security/CookiePolicy/test/CookiePolicyTests.cs +++ b/src/Security/CookiePolicy/test/CookiePolicyTests.cs @@ -43,6 +43,7 @@ namespace Microsoft.AspNetCore.CookiePolicy.Test context.Response.Cookies.Append("C", "C", new CookieOptions()); context.Response.Cookies.Append("D", "D", new CookieOptions { SameSite = Http.SameSiteMode.Lax }); context.Response.Cookies.Append("E", "E", new CookieOptions { SameSite = Http.SameSiteMode.Strict }); + context.Response.Cookies.Append("F", "F", new CookieOptions { SameSite = (Http.SameSiteMode)(-1) }); return Task.FromResult(0); }; @@ -198,7 +199,7 @@ namespace Microsoft.AspNetCore.CookiePolicy.Test } [Fact] - public async Task SameSiteNoneLeavesItAlone() + public async Task SameSiteNoneSetsItAlways() { await RunTest("/sameSiteNone", new CookiePolicyOptions @@ -210,11 +211,34 @@ namespace Microsoft.AspNetCore.CookiePolicy.Test transaction => { Assert.NotNull(transaction.SetCookie); - Assert.Equal("A=A; path=/", transaction.SetCookie[0]); - Assert.Equal("B=B; path=/", transaction.SetCookie[1]); + Assert.Equal("A=A; path=/; samesite=lax", transaction.SetCookie[0]); + Assert.Equal("B=B; path=/; samesite=none", transaction.SetCookie[1]); Assert.Equal("C=C; path=/; samesite=lax", transaction.SetCookie[2]); Assert.Equal("D=D; path=/; samesite=lax", transaction.SetCookie[3]); Assert.Equal("E=E; path=/; samesite=strict", transaction.SetCookie[4]); + Assert.Equal("F=F; path=/; samesite=none", transaction.SetCookie[5]); + })); + } + + [Fact] + public async Task SameSiteUnspecifiedLeavesItAlone() + { + await RunTest("/sameSiteNone", + new CookiePolicyOptions + { + MinimumSameSitePolicy = (Http.SameSiteMode)(-1) + }, + SameSiteCookieAppends, + new RequestTest("http://example.com/sameSiteNone", + transaction => + { + Assert.NotNull(transaction.SetCookie); + Assert.Equal("A=A; path=/", transaction.SetCookie[0]); + Assert.Equal("B=B; path=/; samesite=none", transaction.SetCookie[1]); + Assert.Equal("C=C; path=/; samesite=lax", transaction.SetCookie[2]); + Assert.Equal("D=D; path=/; samesite=lax", transaction.SetCookie[3]); + Assert.Equal("E=E; path=/; samesite=strict", transaction.SetCookie[4]); + Assert.Equal("F=F; path=/", transaction.SetCookie[5]); })); } @@ -468,4 +492,4 @@ namespace Microsoft.AspNetCore.CookiePolicy.Test } } } -} \ No newline at end of file +} diff --git a/src/Security/CookiePolicy/test/Microsoft.AspNetCore.CookiePolicy.Test.csproj b/src/Security/CookiePolicy/test/Microsoft.AspNetCore.CookiePolicy.Test.csproj index 0eb3303ede..e8b2d1d106 100644 --- a/src/Security/CookiePolicy/test/Microsoft.AspNetCore.CookiePolicy.Test.csproj +++ b/src/Security/CookiePolicy/test/Microsoft.AspNetCore.CookiePolicy.Test.csproj @@ -1,4 +1,4 @@ - + netcoreapp2.2;net461 @@ -13,6 +13,7 @@ + diff --git a/src/Security/Security.sln b/src/Security/Security.sln index 3d36597db9..557b68ac83 100644 --- a/src/Security/Security.sln +++ b/src/Security/Security.sln @@ -102,6 +102,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server.IISIntegration", "..\Servers\IIS\IISIntegration\src\Microsoft.AspNetCore.Server.IISIntegration.csproj", "{81D0E81F-4711-4C7B-BBD4-E168102D0D7D}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Net.Http.Headers", "..\Http\Headers\src\Microsoft.Net.Http.Headers.csproj", "{4BB8D7D7-E111-4A86-B6E5-C1201E0DA8CE}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -248,6 +250,10 @@ Global {81D0E81F-4711-4C7B-BBD4-E168102D0D7D}.Debug|Any CPU.Build.0 = Debug|Any CPU {81D0E81F-4711-4C7B-BBD4-E168102D0D7D}.Release|Any CPU.ActiveCfg = Release|Any CPU {81D0E81F-4711-4C7B-BBD4-E168102D0D7D}.Release|Any CPU.Build.0 = Release|Any CPU + {4BB8D7D7-E111-4A86-B6E5-C1201E0DA8CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4BB8D7D7-E111-4A86-B6E5-C1201E0DA8CE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4BB8D7D7-E111-4A86-B6E5-C1201E0DA8CE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4BB8D7D7-E111-4A86-B6E5-C1201E0DA8CE}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -298,6 +304,7 @@ Global {707CBFB4-4D35-479E-9BAF-39B4DA9782DE} = {A3766414-EB5C-40F7-B031-121804ED5D0A} {AFE880E8-2E9E-46FD-BE87-DFC8192E7B2D} = {A3766414-EB5C-40F7-B031-121804ED5D0A} {81D0E81F-4711-4C7B-BBD4-E168102D0D7D} = {A3766414-EB5C-40F7-B031-121804ED5D0A} + {4BB8D7D7-E111-4A86-B6E5-C1201E0DA8CE} = {A3766414-EB5C-40F7-B031-121804ED5D0A} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {ABF8089E-43D0-4010-84A7-7A9DCFE49357} From a4f2b9201955ac310342e464a22d3d6eaeb184c4 Mon Sep 17 00:00:00 2001 From: wtgodbe Date: Thu, 3 Oct 2019 14:40:39 -0700 Subject: [PATCH 042/111] Install the runtime during source build --- eng/scripts/ci-source-build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/scripts/ci-source-build.sh b/eng/scripts/ci-source-build.sh index a1a6b6b6ae..3387125d78 100755 --- a/eng/scripts/ci-source-build.sh +++ b/eng/scripts/ci-source-build.sh @@ -9,10 +9,10 @@ set -euo pipefail scriptroot="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" reporoot="$(dirname "$(dirname "$scriptroot")")" -export DotNetBuildFromSource='true' - # Build repo tasks "$reporoot/eng/common/build.sh" --restore --build --ci --configuration Release /p:ProjectToBuild=$reporoot/eng/tools/RepoTasks/RepoTasks.csproj +export DotNetBuildFromSource='true' + # Build projects "$reporoot/eng/common/build.sh" --restore --build --pack "$@" From 784f4d542b6f49f61d68e4c828acc23d7583c41e Mon Sep 17 00:00:00 2001 From: wtgodbe Date: Thu, 3 Oct 2019 14:50:59 -0700 Subject: [PATCH 043/111] Apply workaround for template tests --- src/ProjectTemplates/test/Infrastructure/TemplateTests.props.in | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ProjectTemplates/test/Infrastructure/TemplateTests.props.in b/src/ProjectTemplates/test/Infrastructure/TemplateTests.props.in index 11b43cc0cb..560c7a1e53 100644 --- a/src/ProjectTemplates/test/Infrastructure/TemplateTests.props.in +++ b/src/ProjectTemplates/test/Infrastructure/TemplateTests.props.in @@ -12,12 +12,14 @@ Date: Thu, 3 Oct 2019 16:11:30 -0700 Subject: [PATCH 044/111] Fix workaround --- .../test/Infrastructure/TemplateTests.props.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ProjectTemplates/test/Infrastructure/TemplateTests.props.in b/src/ProjectTemplates/test/Infrastructure/TemplateTests.props.in index 560c7a1e53..2fdc320899 100644 --- a/src/ProjectTemplates/test/Infrastructure/TemplateTests.props.in +++ b/src/ProjectTemplates/test/Infrastructure/TemplateTests.props.in @@ -12,14 +12,14 @@ Date: Thu, 3 Oct 2019 17:49:43 -0700 Subject: [PATCH 045/111] remove TargetingPack metadata from workaround --- .../test/Infrastructure/TemplateTests.props.in | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/ProjectTemplates/test/Infrastructure/TemplateTests.props.in b/src/ProjectTemplates/test/Infrastructure/TemplateTests.props.in index 2fdc320899..25fbc524a4 100644 --- a/src/ProjectTemplates/test/Infrastructure/TemplateTests.props.in +++ b/src/ProjectTemplates/test/Infrastructure/TemplateTests.props.in @@ -12,15 +12,12 @@ Date: Fri, 4 Oct 2019 17:30:32 +0000 Subject: [PATCH 046/111] Update dependencies from https://github.com/aspnet/EntityFrameworkCore build 20191004.1 - Microsoft.EntityFrameworkCore.Tools - 3.1.0-preview1.19504.1 - Microsoft.EntityFrameworkCore.SqlServer - 3.1.0-preview1.19504.1 - dotnet-ef - 3.1.0-preview1.19504.1 - Microsoft.EntityFrameworkCore - 3.1.0-preview1.19504.1 - Microsoft.EntityFrameworkCore.InMemory - 3.1.0-preview1.19504.1 - Microsoft.EntityFrameworkCore.Relational - 3.1.0-preview1.19504.1 - Microsoft.EntityFrameworkCore.Sqlite - 3.1.0-preview1.19504.1 Dependency coherency updates - Microsoft.AspNetCore.Analyzer.Testing - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.AspNetCore.BenchmarkRunner.Sources - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ActivatorUtilities.Sources - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.Abstractions - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.Memory - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.SqlServer - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.StackExchangeRedis - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.CommandLineUtils.Sources - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Abstractions - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.AzureKeyVault - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Binder - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.CommandLine - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.EnvironmentVariables - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.FileExtensions - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Ini - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Json - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.KeyPerFile - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.UserSecrets - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Xml - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DependencyInjection.Abstractions - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DependencyInjection - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DiagnosticAdapter - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Diagnostics.HealthChecks - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Abstractions - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Composite - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Embedded - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Physical - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileSystemGlobbing - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.HashCodeCombiner.Sources - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Hosting.Abstractions - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Hosting - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.HostFactoryResolver.Sources - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Http - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Localization.Abstractions - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Localization - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Abstractions - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.AzureAppServices - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Configuration - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Console - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Debug - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.EventSource - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.EventLog - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.TraceSource - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Testing - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ObjectPool - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options.ConfigurationExtensions - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options.DataAnnotations - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ParameterDefaultValue.Sources - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Primitives - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.TypeNameHelper.Sources - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ValueStopwatch.Sources - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.WebEncoders - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Internal.Extensions.Refs - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.JSInterop - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Mono.WebAssembly.Interop - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Bcl.AsyncInterfaces - 1.1.0-preview1.19504.1 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Microsoft.NETCore.App.Runtime.win-x64 - 3.1.0-preview1.19504.2 (parent: Microsoft.Extensions.Logging) - Microsoft.Extensions.Logging - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.CSharp - 4.7.0-preview1.19504.1 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Microsoft.Win32.Registry - 4.7.0-preview1.19504.1 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Microsoft.Win32.SystemEvents - 4.7.0-preview1.19504.1 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.ComponentModel.Annotations - 4.7.0-preview1.19504.1 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Diagnostics.EventLog - 4.7.0-preview1.19504.1 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Drawing.Common - 4.7.0-preview1.19504.1 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.IO.Pipelines - 4.7.0-preview1.19504.1 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Net.Http.WinHttpHandler - 4.7.0-preview1.19504.1 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Net.WebSockets.WebSocketProtocol - 4.7.0-preview1.19504.1 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Reflection.Metadata - 1.8.0-preview1.19504.1 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Runtime.CompilerServices.Unsafe - 4.7.0-preview1.19504.1 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Cryptography.Cng - 4.7.0-preview1.19504.1 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Cryptography.Pkcs - 4.7.0-preview1.19504.1 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Cryptography.Xml - 4.7.0-preview1.19504.1 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Permissions - 4.7.0-preview1.19504.1 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Principal.Windows - 4.7.0-preview1.19504.1 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.ServiceProcess.ServiceController - 4.7.0-preview1.19504.1 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Text.Encodings.Web - 4.7.0-preview1.19504.1 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Text.Json - 4.7.0-preview1.19504.1 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Threading.Channels - 4.7.0-preview1.19504.1 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Windows.Extensions - 4.7.0-preview1.19504.1 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Microsoft.Extensions.DependencyModel - 3.1.0-preview1.19504.2 (parent: Microsoft.Extensions.Logging) - Microsoft.NETCore.App.Ref - 3.1.0-preview1.19504.2 (parent: Microsoft.Extensions.Logging) - NETStandard.Library.Ref - 2.1.0-preview1.19504.2 (parent: Microsoft.Extensions.Logging) - Microsoft.NETCore.Platforms - 3.1.0-preview1.19504.1 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Internal.AspNetCore.Analyzers - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) - Microsoft.AspNetCore.Testing - 3.1.0-preview1.19504.2 (parent: Microsoft.EntityFrameworkCore) --- eng/Version.Details.xml | 380 ++++++++++++++++++++-------------------- eng/Versions.props | 190 ++++++++++---------- 2 files changed, 285 insertions(+), 285 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 5703bac680..26b82c6f3f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -29,388 +29,388 @@ https://github.com/aspnet/AspNetCore-Tooling 4ccb010d3d0d0f805c2f2d645662643c5b181e25
- + https://github.com/aspnet/EntityFrameworkCore - d9a5aa8f41a28582fd474d6bd2a40da239527168 + fcc5d3a04767ffdc19f43bd604c40f2a06f9002b - + https://github.com/aspnet/EntityFrameworkCore - d9a5aa8f41a28582fd474d6bd2a40da239527168 + fcc5d3a04767ffdc19f43bd604c40f2a06f9002b - + https://github.com/aspnet/EntityFrameworkCore - d9a5aa8f41a28582fd474d6bd2a40da239527168 + fcc5d3a04767ffdc19f43bd604c40f2a06f9002b - + https://github.com/aspnet/EntityFrameworkCore - d9a5aa8f41a28582fd474d6bd2a40da239527168 + fcc5d3a04767ffdc19f43bd604c40f2a06f9002b - + https://github.com/aspnet/EntityFrameworkCore - d9a5aa8f41a28582fd474d6bd2a40da239527168 + fcc5d3a04767ffdc19f43bd604c40f2a06f9002b - + https://github.com/aspnet/EntityFrameworkCore - d9a5aa8f41a28582fd474d6bd2a40da239527168 + fcc5d3a04767ffdc19f43bd604c40f2a06f9002b - + https://github.com/aspnet/EntityFrameworkCore - d9a5aa8f41a28582fd474d6bd2a40da239527168 + fcc5d3a04767ffdc19f43bd604c40f2a06f9002b - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e - + https://github.com/dotnet/corefx - e61772dfb9cfc9b08d95950814ebe51f22cd2de6 + ba3d206594ca389b309d826604b28410f05f19e7 - + https://github.com/dotnet/corefx - e61772dfb9cfc9b08d95950814ebe51f22cd2de6 + ba3d206594ca389b309d826604b28410f05f19e7 - + https://github.com/dotnet/corefx - e61772dfb9cfc9b08d95950814ebe51f22cd2de6 + ba3d206594ca389b309d826604b28410f05f19e7 - + https://github.com/dotnet/corefx - e61772dfb9cfc9b08d95950814ebe51f22cd2de6 + ba3d206594ca389b309d826604b28410f05f19e7 - + https://github.com/dotnet/corefx - e61772dfb9cfc9b08d95950814ebe51f22cd2de6 + ba3d206594ca389b309d826604b28410f05f19e7 - + https://github.com/dotnet/corefx - e61772dfb9cfc9b08d95950814ebe51f22cd2de6 + ba3d206594ca389b309d826604b28410f05f19e7 - + https://github.com/dotnet/corefx - e61772dfb9cfc9b08d95950814ebe51f22cd2de6 + ba3d206594ca389b309d826604b28410f05f19e7 - + https://github.com/dotnet/corefx - e61772dfb9cfc9b08d95950814ebe51f22cd2de6 + ba3d206594ca389b309d826604b28410f05f19e7 - + https://github.com/dotnet/corefx - e61772dfb9cfc9b08d95950814ebe51f22cd2de6 + ba3d206594ca389b309d826604b28410f05f19e7 - + https://github.com/dotnet/corefx - e61772dfb9cfc9b08d95950814ebe51f22cd2de6 + ba3d206594ca389b309d826604b28410f05f19e7 - + https://github.com/dotnet/corefx - e61772dfb9cfc9b08d95950814ebe51f22cd2de6 + ba3d206594ca389b309d826604b28410f05f19e7 - + https://github.com/dotnet/corefx - e61772dfb9cfc9b08d95950814ebe51f22cd2de6 + ba3d206594ca389b309d826604b28410f05f19e7 - + https://github.com/dotnet/corefx - e61772dfb9cfc9b08d95950814ebe51f22cd2de6 + ba3d206594ca389b309d826604b28410f05f19e7 - + https://github.com/dotnet/corefx - e61772dfb9cfc9b08d95950814ebe51f22cd2de6 + ba3d206594ca389b309d826604b28410f05f19e7 - + https://github.com/dotnet/corefx - e61772dfb9cfc9b08d95950814ebe51f22cd2de6 + ba3d206594ca389b309d826604b28410f05f19e7 - + https://github.com/dotnet/corefx - e61772dfb9cfc9b08d95950814ebe51f22cd2de6 + ba3d206594ca389b309d826604b28410f05f19e7 - + https://github.com/dotnet/corefx - e61772dfb9cfc9b08d95950814ebe51f22cd2de6 + ba3d206594ca389b309d826604b28410f05f19e7 - + https://github.com/dotnet/corefx - e61772dfb9cfc9b08d95950814ebe51f22cd2de6 + ba3d206594ca389b309d826604b28410f05f19e7 - + https://github.com/dotnet/corefx - e61772dfb9cfc9b08d95950814ebe51f22cd2de6 + ba3d206594ca389b309d826604b28410f05f19e7 - + https://github.com/dotnet/corefx - e61772dfb9cfc9b08d95950814ebe51f22cd2de6 + ba3d206594ca389b309d826604b28410f05f19e7 - + https://github.com/dotnet/corefx - e61772dfb9cfc9b08d95950814ebe51f22cd2de6 + ba3d206594ca389b309d826604b28410f05f19e7 - + https://github.com/dotnet/corefx - e61772dfb9cfc9b08d95950814ebe51f22cd2de6 + ba3d206594ca389b309d826604b28410f05f19e7 - + https://github.com/dotnet/core-setup - 0b3fcd7a02fd29017f01f01a36ea562c5fda1eec + 50de4c0d1f33599adc6d71ae6d5b8783140c0b83 - + https://github.com/dotnet/core-setup - 0b3fcd7a02fd29017f01f01a36ea562c5fda1eec + 50de4c0d1f33599adc6d71ae6d5b8783140c0b83 - + https://github.com/dotnet/core-setup - 0b3fcd7a02fd29017f01f01a36ea562c5fda1eec + 50de4c0d1f33599adc6d71ae6d5b8783140c0b83 - + https://github.com/dotnet/core-setup - 0b3fcd7a02fd29017f01f01a36ea562c5fda1eec + 50de4c0d1f33599adc6d71ae6d5b8783140c0b83 - + https://github.com/dotnet/corefx - e61772dfb9cfc9b08d95950814ebe51f22cd2de6 + ba3d206594ca389b309d826604b28410f05f19e7 - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e https://github.com/dotnet/arcade @@ -424,9 +424,9 @@ https://github.com/dotnet/arcade f8546fbab59a74a66c83b8cb76b3f6877ce1d374 - + https://github.com/aspnet/Extensions - 08307d6b396fb7935f3df6d1583681c38fc65c32 + d302a5d25328cf14db39ea18015a9ccb4b158c1e https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index f485b38db8..83c9f694cf 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -61,107 +61,107 @@ 3.4.0-beta2-19462-08 - 3.1.0-preview1.19501.24 - 3.1.0-preview1.19501.24 - 3.1.0-preview1.19501.24 - 2.1.0-preview1.19501.24 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 2.1.0-preview1.19504.2 - 1.1.0-preview1.19501.8 - 4.7.0-preview1.19501.8 - 4.7.0-preview1.19501.8 - 4.7.0-preview1.19501.8 - 4.7.0-preview1.19501.8 - 4.7.0-preview1.19501.8 - 4.7.0-preview1.19501.8 - 4.7.0-preview1.19501.8 - 4.7.0-preview1.19501.8 - 4.7.0-preview1.19501.8 - 1.8.0-preview1.19501.8 - 4.7.0-preview1.19501.8 - 4.7.0-preview1.19501.8 - 4.7.0-preview1.19501.8 - 4.7.0-preview1.19501.8 - 4.7.0-preview1.19501.8 - 4.7.0-preview1.19501.8 - 4.7.0-preview1.19501.8 - 4.7.0-preview1.19501.8 - 4.7.0-preview1.19501.8 - 4.7.0-preview1.19501.8 - 4.7.0-preview1.19501.8 + 1.1.0-preview1.19504.1 + 4.7.0-preview1.19504.1 + 4.7.0-preview1.19504.1 + 4.7.0-preview1.19504.1 + 4.7.0-preview1.19504.1 + 4.7.0-preview1.19504.1 + 4.7.0-preview1.19504.1 + 4.7.0-preview1.19504.1 + 4.7.0-preview1.19504.1 + 4.7.0-preview1.19504.1 + 1.8.0-preview1.19504.1 + 4.7.0-preview1.19504.1 + 4.7.0-preview1.19504.1 + 4.7.0-preview1.19504.1 + 4.7.0-preview1.19504.1 + 4.7.0-preview1.19504.1 + 4.7.0-preview1.19504.1 + 4.7.0-preview1.19504.1 + 4.7.0-preview1.19504.1 + 4.7.0-preview1.19504.1 + 4.7.0-preview1.19504.1 + 4.7.0-preview1.19504.1 - 3.1.0-preview1.19501.8 + 3.1.0-preview1.19504.1 3.1.0-preview1.19503.1 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 - 3.1.0-preview1.19502.5 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.2 - 3.1.0-preview1.19502.3 - 3.1.0-preview1.19502.3 - 3.1.0-preview1.19502.3 - 3.1.0-preview1.19502.3 - 3.1.0-preview1.19502.3 - 3.1.0-preview1.19502.3 - 3.1.0-preview1.19502.3 + 3.1.0-preview1.19504.1 + 3.1.0-preview1.19504.1 + 3.1.0-preview1.19504.1 + 3.1.0-preview1.19504.1 + 3.1.0-preview1.19504.1 + 3.1.0-preview1.19504.1 + 3.1.0-preview1.19504.1 3.1.0-preview1.19502.3 3.1.0-preview1.19502.3 From dc92d92aa8ff43697eb8cf1013343a111674107b Mon Sep 17 00:00:00 2001 From: wtgodbe Date: Fri, 4 Oct 2019 11:01:06 -0700 Subject: [PATCH 047/111] Update dependencies from AspNetCore-Tooling --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 8 ++++---- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 26b82c6f3f..f8d279e2ec 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -13,21 +13,21 @@ https://github.com/aspnet/Blazor bf49a4e1a5401c0e952147f1c7452261a058813d - + https://github.com/aspnet/AspNetCore-Tooling - 4ccb010d3d0d0f805c2f2d645662643c5b181e25 + 108afbb7906c4b73bb83d9fdf82fc8ebc44fec9c - + https://github.com/aspnet/AspNetCore-Tooling - 4ccb010d3d0d0f805c2f2d645662643c5b181e25 + 108afbb7906c4b73bb83d9fdf82fc8ebc44fec9c - + https://github.com/aspnet/AspNetCore-Tooling - 4ccb010d3d0d0f805c2f2d645662643c5b181e25 + 108afbb7906c4b73bb83d9fdf82fc8ebc44fec9c - + https://github.com/aspnet/AspNetCore-Tooling - 4ccb010d3d0d0f805c2f2d645662643c5b181e25 + 108afbb7906c4b73bb83d9fdf82fc8ebc44fec9c https://github.com/aspnet/EntityFrameworkCore diff --git a/eng/Versions.props b/eng/Versions.props index 83c9f694cf..874d75862a 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -163,10 +163,10 @@ 3.1.0-preview1.19504.1 3.1.0-preview1.19504.1 - 3.1.0-preview1.19502.3 - 3.1.0-preview1.19502.3 - 3.1.0-preview1.19502.3 - 3.1.0-preview1.19502.3 + 3.1.0-preview1.19504.1 + 3.1.0-preview1.19504.1 + 3.1.0-preview1.19504.1 + 3.1.0-preview1.19504.1 - + https://github.com/dotnet/core-setup - 50de4c0d1f33599adc6d71ae6d5b8783140c0b83 + fd1162d3db7db9c79bf01d32604862f4bee25b96 - + https://github.com/dotnet/core-setup - 50de4c0d1f33599adc6d71ae6d5b8783140c0b83 + fd1162d3db7db9c79bf01d32604862f4bee25b96 @@ -408,9 +408,9 @@ https://github.com/dotnet/corefx ba3d206594ca389b309d826604b28410f05f19e7 - + https://github.com/aspnet/Extensions - d302a5d25328cf14db39ea18015a9ccb4b158c1e + 2b2039ae81b18fc4b369d1119b8b914a116db506 https://github.com/dotnet/arcade @@ -424,9 +424,9 @@ https://github.com/dotnet/arcade f8546fbab59a74a66c83b8cb76b3f6877ce1d374 - + https://github.com/aspnet/Extensions - d302a5d25328cf14db39ea18015a9ccb4b158c1e + 2b2039ae81b18fc4b369d1119b8b914a116db506 https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index 874d75862a..e4b9e5e208 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -61,10 +61,10 @@ 3.4.0-beta2-19462-08 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 2.1.0-preview1.19504.2 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 2.1.0-preview1.19504.13 1.1.0-preview1.19504.1 4.7.0-preview1.19504.1 @@ -93,75 +93,75 @@ 3.1.0-preview1.19503.1 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 - 3.1.0-preview1.19504.2 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.1 - 3.1.0-preview1.19504.1 - 3.1.0-preview1.19504.1 - 3.1.0-preview1.19504.1 - 3.1.0-preview1.19504.1 - 3.1.0-preview1.19504.1 - 3.1.0-preview1.19504.1 + 3.1.0-preview1.19504.12 + 3.1.0-preview1.19504.12 + 3.1.0-preview1.19504.12 + 3.1.0-preview1.19504.12 + 3.1.0-preview1.19504.12 + 3.1.0-preview1.19504.12 + 3.1.0-preview1.19504.12 3.1.0-preview1.19504.1 3.1.0-preview1.19504.1 From 29115e4b4c63b12294c4e630f261cb2a5ce91d1e Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 5 Oct 2019 07:00:30 +0000 Subject: [PATCH 051/111] Update dependencies from https://github.com/aspnet/EntityFrameworkCore build 20191004.14 - Microsoft.EntityFrameworkCore.Tools - 3.1.0-preview1.19504.14 - Microsoft.EntityFrameworkCore.SqlServer - 3.1.0-preview1.19504.14 - dotnet-ef - 3.1.0-preview1.19504.14 - Microsoft.EntityFrameworkCore - 3.1.0-preview1.19504.14 - Microsoft.EntityFrameworkCore.InMemory - 3.1.0-preview1.19504.14 - Microsoft.EntityFrameworkCore.Relational - 3.1.0-preview1.19504.14 - Microsoft.EntityFrameworkCore.Sqlite - 3.1.0-preview1.19504.14 Dependency coherency updates - Microsoft.AspNetCore.Analyzer.Testing - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.AspNetCore.BenchmarkRunner.Sources - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ActivatorUtilities.Sources - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.Abstractions - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.Memory - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.SqlServer - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.StackExchangeRedis - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.CommandLineUtils.Sources - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Abstractions - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.AzureKeyVault - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Binder - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.CommandLine - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.EnvironmentVariables - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.FileExtensions - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Ini - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Json - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.KeyPerFile - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.UserSecrets - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Xml - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DependencyInjection.Abstractions - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DependencyInjection - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DiagnosticAdapter - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Diagnostics.HealthChecks - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Abstractions - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Composite - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Embedded - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Physical - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileSystemGlobbing - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.HashCodeCombiner.Sources - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Hosting.Abstractions - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Hosting - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.HostFactoryResolver.Sources - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Http - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Localization.Abstractions - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Localization - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Abstractions - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.AzureAppServices - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Configuration - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Console - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Debug - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.EventSource - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.EventLog - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.TraceSource - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Testing - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ObjectPool - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options.ConfigurationExtensions - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options.DataAnnotations - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ParameterDefaultValue.Sources - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Primitives - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.TypeNameHelper.Sources - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ValueStopwatch.Sources - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.WebEncoders - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Internal.Extensions.Refs - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.JSInterop - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Mono.WebAssembly.Interop - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Bcl.AsyncInterfaces - 1.1.0-preview1.19504.6 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Microsoft.NETCore.App.Runtime.win-x64 - 3.1.0-preview1.19504.15 (parent: Microsoft.Extensions.Logging) - Microsoft.Extensions.Logging - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.CSharp - 4.7.0-preview1.19504.6 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Microsoft.Win32.Registry - 4.7.0-preview1.19504.6 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Microsoft.Win32.SystemEvents - 4.7.0-preview1.19504.6 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.ComponentModel.Annotations - 4.7.0-preview1.19504.6 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Diagnostics.EventLog - 4.7.0-preview1.19504.6 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Drawing.Common - 4.7.0-preview1.19504.6 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.IO.Pipelines - 4.7.0-preview1.19504.6 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Net.Http.WinHttpHandler - 4.7.0-preview1.19504.6 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Net.WebSockets.WebSocketProtocol - 4.7.0-preview1.19504.6 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Reflection.Metadata - 1.8.0-preview1.19504.6 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Runtime.CompilerServices.Unsafe - 4.7.0-preview1.19504.6 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Cryptography.Cng - 4.7.0-preview1.19504.6 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Cryptography.Pkcs - 4.7.0-preview1.19504.6 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Cryptography.Xml - 4.7.0-preview1.19504.6 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Permissions - 4.7.0-preview1.19504.6 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Principal.Windows - 4.7.0-preview1.19504.6 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.ServiceProcess.ServiceController - 4.7.0-preview1.19504.6 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Text.Encodings.Web - 4.7.0-preview1.19504.6 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Text.Json - 4.7.0-preview1.19504.6 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Threading.Channels - 4.7.0-preview1.19504.6 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Windows.Extensions - 4.7.0-preview1.19504.6 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Microsoft.Extensions.DependencyModel - 3.1.0-preview1.19504.15 (parent: Microsoft.Extensions.Logging) - Microsoft.NETCore.App.Ref - 3.1.0-preview1.19504.15 (parent: Microsoft.Extensions.Logging) - NETStandard.Library.Ref - 2.1.0-preview1.19504.15 (parent: Microsoft.Extensions.Logging) - Microsoft.NETCore.Platforms - 3.1.0-preview1.19504.6 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Internal.AspNetCore.Analyzers - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) - Microsoft.AspNetCore.Testing - 3.1.0-preview1.19504.11 (parent: Microsoft.EntityFrameworkCore) --- eng/Version.Details.xml | 380 ++++++++++++++++++++-------------------- eng/Versions.props | 190 ++++++++++---------- 2 files changed, 285 insertions(+), 285 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 1093345970..cd051a5e51 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -29,388 +29,388 @@ https://github.com/aspnet/AspNetCore-Tooling 108afbb7906c4b73bb83d9fdf82fc8ebc44fec9c - + https://github.com/aspnet/EntityFrameworkCore - e5129cf648bd66d0e26a2dadc2bf682ee40bfb3f + 35acfc6b24c9ca137cf737cbf3bd372295db4731 - + https://github.com/aspnet/EntityFrameworkCore - e5129cf648bd66d0e26a2dadc2bf682ee40bfb3f + 35acfc6b24c9ca137cf737cbf3bd372295db4731 - + https://github.com/aspnet/EntityFrameworkCore - e5129cf648bd66d0e26a2dadc2bf682ee40bfb3f + 35acfc6b24c9ca137cf737cbf3bd372295db4731 - + https://github.com/aspnet/EntityFrameworkCore - e5129cf648bd66d0e26a2dadc2bf682ee40bfb3f + 35acfc6b24c9ca137cf737cbf3bd372295db4731 - + https://github.com/aspnet/EntityFrameworkCore - e5129cf648bd66d0e26a2dadc2bf682ee40bfb3f + 35acfc6b24c9ca137cf737cbf3bd372295db4731 - + https://github.com/aspnet/EntityFrameworkCore - e5129cf648bd66d0e26a2dadc2bf682ee40bfb3f + 35acfc6b24c9ca137cf737cbf3bd372295db4731 - + https://github.com/aspnet/EntityFrameworkCore - e5129cf648bd66d0e26a2dadc2bf682ee40bfb3f + 35acfc6b24c9ca137cf737cbf3bd372295db4731 - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab - + https://github.com/dotnet/corefx - ba3d206594ca389b309d826604b28410f05f19e7 + f969dd277b3288d0ee07d10dacc5dc3613030674 - + https://github.com/dotnet/corefx - ba3d206594ca389b309d826604b28410f05f19e7 + f969dd277b3288d0ee07d10dacc5dc3613030674 - + https://github.com/dotnet/corefx - ba3d206594ca389b309d826604b28410f05f19e7 + f969dd277b3288d0ee07d10dacc5dc3613030674 - + https://github.com/dotnet/corefx - ba3d206594ca389b309d826604b28410f05f19e7 + f969dd277b3288d0ee07d10dacc5dc3613030674 - + https://github.com/dotnet/corefx - ba3d206594ca389b309d826604b28410f05f19e7 + f969dd277b3288d0ee07d10dacc5dc3613030674 - + https://github.com/dotnet/corefx - ba3d206594ca389b309d826604b28410f05f19e7 + f969dd277b3288d0ee07d10dacc5dc3613030674 - + https://github.com/dotnet/corefx - ba3d206594ca389b309d826604b28410f05f19e7 + f969dd277b3288d0ee07d10dacc5dc3613030674 - + https://github.com/dotnet/corefx - ba3d206594ca389b309d826604b28410f05f19e7 + f969dd277b3288d0ee07d10dacc5dc3613030674 - + https://github.com/dotnet/corefx - ba3d206594ca389b309d826604b28410f05f19e7 + f969dd277b3288d0ee07d10dacc5dc3613030674 - + https://github.com/dotnet/corefx - ba3d206594ca389b309d826604b28410f05f19e7 + f969dd277b3288d0ee07d10dacc5dc3613030674 - + https://github.com/dotnet/corefx - ba3d206594ca389b309d826604b28410f05f19e7 + f969dd277b3288d0ee07d10dacc5dc3613030674 - + https://github.com/dotnet/corefx - ba3d206594ca389b309d826604b28410f05f19e7 + f969dd277b3288d0ee07d10dacc5dc3613030674 - + https://github.com/dotnet/corefx - ba3d206594ca389b309d826604b28410f05f19e7 + f969dd277b3288d0ee07d10dacc5dc3613030674 - + https://github.com/dotnet/corefx - ba3d206594ca389b309d826604b28410f05f19e7 + f969dd277b3288d0ee07d10dacc5dc3613030674 - + https://github.com/dotnet/corefx - ba3d206594ca389b309d826604b28410f05f19e7 + f969dd277b3288d0ee07d10dacc5dc3613030674 - + https://github.com/dotnet/corefx - ba3d206594ca389b309d826604b28410f05f19e7 + f969dd277b3288d0ee07d10dacc5dc3613030674 - + https://github.com/dotnet/corefx - ba3d206594ca389b309d826604b28410f05f19e7 + f969dd277b3288d0ee07d10dacc5dc3613030674 - + https://github.com/dotnet/corefx - ba3d206594ca389b309d826604b28410f05f19e7 + f969dd277b3288d0ee07d10dacc5dc3613030674 - + https://github.com/dotnet/corefx - ba3d206594ca389b309d826604b28410f05f19e7 + f969dd277b3288d0ee07d10dacc5dc3613030674 - + https://github.com/dotnet/corefx - ba3d206594ca389b309d826604b28410f05f19e7 + f969dd277b3288d0ee07d10dacc5dc3613030674 - + https://github.com/dotnet/corefx - ba3d206594ca389b309d826604b28410f05f19e7 + f969dd277b3288d0ee07d10dacc5dc3613030674 - + https://github.com/dotnet/corefx - ba3d206594ca389b309d826604b28410f05f19e7 + f969dd277b3288d0ee07d10dacc5dc3613030674 - + https://github.com/dotnet/core-setup - fd1162d3db7db9c79bf01d32604862f4bee25b96 + ea8a25eb0679dc4d940623688189885086286adc - + https://github.com/dotnet/core-setup - fd1162d3db7db9c79bf01d32604862f4bee25b96 + ea8a25eb0679dc4d940623688189885086286adc - + https://github.com/dotnet/core-setup - fd1162d3db7db9c79bf01d32604862f4bee25b96 + ea8a25eb0679dc4d940623688189885086286adc - + https://github.com/dotnet/core-setup - fd1162d3db7db9c79bf01d32604862f4bee25b96 + ea8a25eb0679dc4d940623688189885086286adc - + https://github.com/dotnet/corefx - ba3d206594ca389b309d826604b28410f05f19e7 + f969dd277b3288d0ee07d10dacc5dc3613030674 - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab https://github.com/dotnet/arcade @@ -424,9 +424,9 @@ https://github.com/dotnet/arcade f8546fbab59a74a66c83b8cb76b3f6877ce1d374 - + https://github.com/aspnet/Extensions - 2b2039ae81b18fc4b369d1119b8b914a116db506 + 65c4719d59a8df66b28eec41b9b583ee201600ab https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index e4b9e5e208..2edd7a33c7 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -61,107 +61,107 @@ 3.4.0-beta2-19462-08 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 2.1.0-preview1.19504.13 + 3.1.0-preview1.19504.15 + 3.1.0-preview1.19504.15 + 3.1.0-preview1.19504.15 + 2.1.0-preview1.19504.15 - 1.1.0-preview1.19504.1 - 4.7.0-preview1.19504.1 - 4.7.0-preview1.19504.1 - 4.7.0-preview1.19504.1 - 4.7.0-preview1.19504.1 - 4.7.0-preview1.19504.1 - 4.7.0-preview1.19504.1 - 4.7.0-preview1.19504.1 - 4.7.0-preview1.19504.1 - 4.7.0-preview1.19504.1 - 1.8.0-preview1.19504.1 - 4.7.0-preview1.19504.1 - 4.7.0-preview1.19504.1 - 4.7.0-preview1.19504.1 - 4.7.0-preview1.19504.1 - 4.7.0-preview1.19504.1 - 4.7.0-preview1.19504.1 - 4.7.0-preview1.19504.1 - 4.7.0-preview1.19504.1 - 4.7.0-preview1.19504.1 - 4.7.0-preview1.19504.1 - 4.7.0-preview1.19504.1 + 1.1.0-preview1.19504.6 + 4.7.0-preview1.19504.6 + 4.7.0-preview1.19504.6 + 4.7.0-preview1.19504.6 + 4.7.0-preview1.19504.6 + 4.7.0-preview1.19504.6 + 4.7.0-preview1.19504.6 + 4.7.0-preview1.19504.6 + 4.7.0-preview1.19504.6 + 4.7.0-preview1.19504.6 + 1.8.0-preview1.19504.6 + 4.7.0-preview1.19504.6 + 4.7.0-preview1.19504.6 + 4.7.0-preview1.19504.6 + 4.7.0-preview1.19504.6 + 4.7.0-preview1.19504.6 + 4.7.0-preview1.19504.6 + 4.7.0-preview1.19504.6 + 4.7.0-preview1.19504.6 + 4.7.0-preview1.19504.6 + 4.7.0-preview1.19504.6 + 4.7.0-preview1.19504.6 - 3.1.0-preview1.19504.1 + 3.1.0-preview1.19504.6 3.1.0-preview1.19503.1 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 - 3.1.0-preview1.19504.10 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.12 - 3.1.0-preview1.19504.12 - 3.1.0-preview1.19504.12 - 3.1.0-preview1.19504.12 - 3.1.0-preview1.19504.12 - 3.1.0-preview1.19504.12 - 3.1.0-preview1.19504.12 + 3.1.0-preview1.19504.14 + 3.1.0-preview1.19504.14 + 3.1.0-preview1.19504.14 + 3.1.0-preview1.19504.14 + 3.1.0-preview1.19504.14 + 3.1.0-preview1.19504.14 + 3.1.0-preview1.19504.14 3.1.0-preview1.19504.1 3.1.0-preview1.19504.1 From 846b0cc6ef93f75ceed6d0bce82d50fa8caf69d7 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 5 Oct 2019 08:21:21 +0000 Subject: [PATCH 052/111] Update dependencies from https://github.com/aspnet/AspNetCore-Tooling build 20191004.12 - Microsoft.AspNetCore.Mvc.Razor.Extensions - 3.1.0-preview1.19504.12 - Microsoft.AspNetCore.Razor.Language - 3.1.0-preview1.19504.12 - Microsoft.CodeAnalysis.Razor - 3.1.0-preview1.19504.12 - Microsoft.NET.Sdk.Razor - 3.1.0-preview1.19504.12 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 8 ++++---- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index cd051a5e51..7925edcbb4 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -13,21 +13,21 @@ https://github.com/aspnet/Blazor bf49a4e1a5401c0e952147f1c7452261a058813d - + https://github.com/aspnet/AspNetCore-Tooling - 108afbb7906c4b73bb83d9fdf82fc8ebc44fec9c + c5393567de1a951a0d54880bf6b4adcc0474b277 - + https://github.com/aspnet/AspNetCore-Tooling - 108afbb7906c4b73bb83d9fdf82fc8ebc44fec9c + c5393567de1a951a0d54880bf6b4adcc0474b277 - + https://github.com/aspnet/AspNetCore-Tooling - 108afbb7906c4b73bb83d9fdf82fc8ebc44fec9c + c5393567de1a951a0d54880bf6b4adcc0474b277 - + https://github.com/aspnet/AspNetCore-Tooling - 108afbb7906c4b73bb83d9fdf82fc8ebc44fec9c + c5393567de1a951a0d54880bf6b4adcc0474b277 https://github.com/aspnet/EntityFrameworkCore diff --git a/eng/Versions.props b/eng/Versions.props index 2edd7a33c7..cadb1fbac6 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -163,10 +163,10 @@ 3.1.0-preview1.19504.14 3.1.0-preview1.19504.14 - 3.1.0-preview1.19504.1 - 3.1.0-preview1.19504.1 - 3.1.0-preview1.19504.1 - 3.1.0-preview1.19504.1 + 3.1.0-preview1.19504.12 + 3.1.0-preview1.19504.12 + 3.1.0-preview1.19504.12 + 3.1.0-preview1.19504.12 - 3.1.0-preview1.19504.14 - 3.1.0-preview1.19504.14 - 3.1.0-preview1.19504.14 - 3.1.0-preview1.19504.14 - 3.1.0-preview1.19504.14 - 3.1.0-preview1.19504.14 - 3.1.0-preview1.19504.14 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 3.1.0-preview1.19504.12 3.1.0-preview1.19504.12 From 0fb0b7a84cf85fd918a86b6abe5ec2ba09e8e0c0 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 5 Oct 2019 08:21:46 +0000 Subject: [PATCH 054/111] Dependency coherency updates - Microsoft.AspNetCore.Analyzer.Testing - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.AspNetCore.BenchmarkRunner.Sources - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ActivatorUtilities.Sources - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.Abstractions - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.Memory - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.SqlServer - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.StackExchangeRedis - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.CommandLineUtils.Sources - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Abstractions - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.AzureKeyVault - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Binder - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.CommandLine - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.EnvironmentVariables - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.FileExtensions - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Ini - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Json - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.KeyPerFile - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.UserSecrets - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Xml - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DependencyInjection.Abstractions - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DependencyInjection - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DiagnosticAdapter - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Diagnostics.HealthChecks - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Abstractions - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Composite - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Embedded - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Physical - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileSystemGlobbing - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.HashCodeCombiner.Sources - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Hosting.Abstractions - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Hosting - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.HostFactoryResolver.Sources - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Http - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Localization.Abstractions - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Localization - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Abstractions - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.AzureAppServices - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Configuration - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Console - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Debug - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.EventSource - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.EventLog - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.TraceSource - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Testing - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ObjectPool - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options.ConfigurationExtensions - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options.DataAnnotations - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ParameterDefaultValue.Sources - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Primitives - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.TypeNameHelper.Sources - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ValueStopwatch.Sources - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.WebEncoders - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Internal.Extensions.Refs - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.JSInterop - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Mono.WebAssembly.Interop - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Bcl.AsyncInterfaces - 1.1.0-preview1.19504.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Microsoft.NETCore.App.Runtime.win-x64 - 3.1.0-preview1.19504.18 (parent: Microsoft.Extensions.Logging) - Microsoft.Extensions.Logging - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.CSharp - 4.7.0-preview1.19504.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Microsoft.Win32.Registry - 4.7.0-preview1.19504.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Microsoft.Win32.SystemEvents - 4.7.0-preview1.19504.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.ComponentModel.Annotations - 4.7.0-preview1.19504.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Diagnostics.EventLog - 4.7.0-preview1.19504.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Drawing.Common - 4.7.0-preview1.19504.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.IO.Pipelines - 4.7.0-preview1.19504.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Net.Http.WinHttpHandler - 4.7.0-preview1.19504.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Net.WebSockets.WebSocketProtocol - 4.7.0-preview1.19504.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Reflection.Metadata - 1.8.0-preview1.19504.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Runtime.CompilerServices.Unsafe - 4.7.0-preview1.19504.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Cryptography.Cng - 4.7.0-preview1.19504.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Cryptography.Pkcs - 4.7.0-preview1.19504.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Cryptography.Xml - 4.7.0-preview1.19504.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Permissions - 4.7.0-preview1.19504.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Principal.Windows - 4.7.0-preview1.19504.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.ServiceProcess.ServiceController - 4.7.0-preview1.19504.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Text.Encodings.Web - 4.7.0-preview1.19504.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Text.Json - 4.7.0-preview1.19504.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Threading.Channels - 4.7.0-preview1.19504.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Windows.Extensions - 4.7.0-preview1.19504.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Microsoft.Extensions.DependencyModel - 3.1.0-preview1.19504.18 (parent: Microsoft.Extensions.Logging) - Microsoft.NETCore.App.Ref - 3.1.0-preview1.19504.18 (parent: Microsoft.Extensions.Logging) - NETStandard.Library.Ref - 2.1.0-preview1.19504.18 (parent: Microsoft.Extensions.Logging) - Microsoft.NETCore.Platforms - 3.1.0-preview1.19504.8 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Internal.AspNetCore.Analyzers - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) - Microsoft.AspNetCore.Testing - 3.1.0-preview1.19504.13 (parent: Microsoft.EntityFrameworkCore) --- eng/Version.Details.xml | 352 ++++++++++++++++++++-------------------- eng/Versions.props | 176 ++++++++++---------- 2 files changed, 264 insertions(+), 264 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 85a3528cf8..3c3172bdfb 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -57,360 +57,360 @@ https://github.com/aspnet/EntityFrameworkCore 1b81ac51a46c6134d702e8458d583f82b0eae9c6 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 - + https://github.com/dotnet/corefx - f969dd277b3288d0ee07d10dacc5dc3613030674 + f4137889514bef5b9149e25d6edbaeb66f8beba6 - + https://github.com/dotnet/corefx - f969dd277b3288d0ee07d10dacc5dc3613030674 + f4137889514bef5b9149e25d6edbaeb66f8beba6 - + https://github.com/dotnet/corefx - f969dd277b3288d0ee07d10dacc5dc3613030674 + f4137889514bef5b9149e25d6edbaeb66f8beba6 - + https://github.com/dotnet/corefx - f969dd277b3288d0ee07d10dacc5dc3613030674 + f4137889514bef5b9149e25d6edbaeb66f8beba6 - + https://github.com/dotnet/corefx - f969dd277b3288d0ee07d10dacc5dc3613030674 + f4137889514bef5b9149e25d6edbaeb66f8beba6 - + https://github.com/dotnet/corefx - f969dd277b3288d0ee07d10dacc5dc3613030674 + f4137889514bef5b9149e25d6edbaeb66f8beba6 - + https://github.com/dotnet/corefx - f969dd277b3288d0ee07d10dacc5dc3613030674 + f4137889514bef5b9149e25d6edbaeb66f8beba6 - + https://github.com/dotnet/corefx - f969dd277b3288d0ee07d10dacc5dc3613030674 + f4137889514bef5b9149e25d6edbaeb66f8beba6 - + https://github.com/dotnet/corefx - f969dd277b3288d0ee07d10dacc5dc3613030674 + f4137889514bef5b9149e25d6edbaeb66f8beba6 - + https://github.com/dotnet/corefx - f969dd277b3288d0ee07d10dacc5dc3613030674 + f4137889514bef5b9149e25d6edbaeb66f8beba6 - + https://github.com/dotnet/corefx - f969dd277b3288d0ee07d10dacc5dc3613030674 + f4137889514bef5b9149e25d6edbaeb66f8beba6 - + https://github.com/dotnet/corefx - f969dd277b3288d0ee07d10dacc5dc3613030674 + f4137889514bef5b9149e25d6edbaeb66f8beba6 - + https://github.com/dotnet/corefx - f969dd277b3288d0ee07d10dacc5dc3613030674 + f4137889514bef5b9149e25d6edbaeb66f8beba6 - + https://github.com/dotnet/corefx - f969dd277b3288d0ee07d10dacc5dc3613030674 + f4137889514bef5b9149e25d6edbaeb66f8beba6 - + https://github.com/dotnet/corefx - f969dd277b3288d0ee07d10dacc5dc3613030674 + f4137889514bef5b9149e25d6edbaeb66f8beba6 - + https://github.com/dotnet/corefx - f969dd277b3288d0ee07d10dacc5dc3613030674 + f4137889514bef5b9149e25d6edbaeb66f8beba6 - + https://github.com/dotnet/corefx - f969dd277b3288d0ee07d10dacc5dc3613030674 + f4137889514bef5b9149e25d6edbaeb66f8beba6 - + https://github.com/dotnet/corefx - f969dd277b3288d0ee07d10dacc5dc3613030674 + f4137889514bef5b9149e25d6edbaeb66f8beba6 - + https://github.com/dotnet/corefx - f969dd277b3288d0ee07d10dacc5dc3613030674 + f4137889514bef5b9149e25d6edbaeb66f8beba6 - + https://github.com/dotnet/corefx - f969dd277b3288d0ee07d10dacc5dc3613030674 + f4137889514bef5b9149e25d6edbaeb66f8beba6 - + https://github.com/dotnet/corefx - f969dd277b3288d0ee07d10dacc5dc3613030674 + f4137889514bef5b9149e25d6edbaeb66f8beba6 - + https://github.com/dotnet/corefx - f969dd277b3288d0ee07d10dacc5dc3613030674 + f4137889514bef5b9149e25d6edbaeb66f8beba6 - + https://github.com/dotnet/core-setup - ea8a25eb0679dc4d940623688189885086286adc + 27610507ac04a478c225054699afb20e86cc7881 - + https://github.com/dotnet/core-setup - ea8a25eb0679dc4d940623688189885086286adc + 27610507ac04a478c225054699afb20e86cc7881 - + https://github.com/dotnet/core-setup - ea8a25eb0679dc4d940623688189885086286adc + 27610507ac04a478c225054699afb20e86cc7881 - + https://github.com/dotnet/core-setup - ea8a25eb0679dc4d940623688189885086286adc + 27610507ac04a478c225054699afb20e86cc7881 - + https://github.com/dotnet/corefx - f969dd277b3288d0ee07d10dacc5dc3613030674 + f4137889514bef5b9149e25d6edbaeb66f8beba6 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 https://github.com/dotnet/arcade @@ -424,9 +424,9 @@ https://github.com/dotnet/arcade f8546fbab59a74a66c83b8cb76b3f6877ce1d374 - + https://github.com/aspnet/Extensions - 65c4719d59a8df66b28eec41b9b583ee201600ab + b16e1a04232ff0235fdb6445a811098df49c61b1 https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index fb62774a11..29e07e5a8f 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -61,99 +61,99 @@ 3.4.0-beta2-19462-08 - 3.1.0-preview1.19504.15 - 3.1.0-preview1.19504.15 - 3.1.0-preview1.19504.15 - 2.1.0-preview1.19504.15 + 3.1.0-preview1.19504.18 + 3.1.0-preview1.19504.18 + 3.1.0-preview1.19504.18 + 2.1.0-preview1.19504.18 - 1.1.0-preview1.19504.6 - 4.7.0-preview1.19504.6 - 4.7.0-preview1.19504.6 - 4.7.0-preview1.19504.6 - 4.7.0-preview1.19504.6 - 4.7.0-preview1.19504.6 - 4.7.0-preview1.19504.6 - 4.7.0-preview1.19504.6 - 4.7.0-preview1.19504.6 - 4.7.0-preview1.19504.6 - 1.8.0-preview1.19504.6 - 4.7.0-preview1.19504.6 - 4.7.0-preview1.19504.6 - 4.7.0-preview1.19504.6 - 4.7.0-preview1.19504.6 - 4.7.0-preview1.19504.6 - 4.7.0-preview1.19504.6 - 4.7.0-preview1.19504.6 - 4.7.0-preview1.19504.6 - 4.7.0-preview1.19504.6 - 4.7.0-preview1.19504.6 - 4.7.0-preview1.19504.6 + 1.1.0-preview1.19504.8 + 4.7.0-preview1.19504.8 + 4.7.0-preview1.19504.8 + 4.7.0-preview1.19504.8 + 4.7.0-preview1.19504.8 + 4.7.0-preview1.19504.8 + 4.7.0-preview1.19504.8 + 4.7.0-preview1.19504.8 + 4.7.0-preview1.19504.8 + 4.7.0-preview1.19504.8 + 1.8.0-preview1.19504.8 + 4.7.0-preview1.19504.8 + 4.7.0-preview1.19504.8 + 4.7.0-preview1.19504.8 + 4.7.0-preview1.19504.8 + 4.7.0-preview1.19504.8 + 4.7.0-preview1.19504.8 + 4.7.0-preview1.19504.8 + 4.7.0-preview1.19504.8 + 4.7.0-preview1.19504.8 + 4.7.0-preview1.19504.8 + 4.7.0-preview1.19504.8 - 3.1.0-preview1.19504.6 + 3.1.0-preview1.19504.8 3.1.0-preview1.19503.1 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 - 3.1.0-preview1.19504.11 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 + 3.1.0-preview1.19504.13 3.1.0-preview1.19505.1 3.1.0-preview1.19505.1 From da81bedf042a9e652c5ca93f906fdbbd7825b2c6 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 5 Oct 2019 10:10:38 +0000 Subject: [PATCH 055/111] Update dependencies from https://github.com/aspnet/AspNetCore-Tooling build 20191005.1 - Microsoft.AspNetCore.Mvc.Razor.Extensions - 3.1.0-preview1.19505.1 - Microsoft.AspNetCore.Razor.Language - 3.1.0-preview1.19505.1 - Microsoft.CodeAnalysis.Razor - 3.1.0-preview1.19505.1 - Microsoft.NET.Sdk.Razor - 3.1.0-preview1.19505.1 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 8 ++++---- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 3c3172bdfb..c11fd08772 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -13,21 +13,21 @@ https://github.com/aspnet/Blazor bf49a4e1a5401c0e952147f1c7452261a058813d - + https://github.com/aspnet/AspNetCore-Tooling - c5393567de1a951a0d54880bf6b4adcc0474b277 + 0b895a704fe53e346b7cc6a33321d6bb0ec8fda0 - + https://github.com/aspnet/AspNetCore-Tooling - c5393567de1a951a0d54880bf6b4adcc0474b277 + 0b895a704fe53e346b7cc6a33321d6bb0ec8fda0 - + https://github.com/aspnet/AspNetCore-Tooling - c5393567de1a951a0d54880bf6b4adcc0474b277 + 0b895a704fe53e346b7cc6a33321d6bb0ec8fda0 - + https://github.com/aspnet/AspNetCore-Tooling - c5393567de1a951a0d54880bf6b4adcc0474b277 + 0b895a704fe53e346b7cc6a33321d6bb0ec8fda0 https://github.com/aspnet/EntityFrameworkCore diff --git a/eng/Versions.props b/eng/Versions.props index 29e07e5a8f..3090da724d 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -163,10 +163,10 @@ 3.1.0-preview1.19505.1 3.1.0-preview1.19505.1 - 3.1.0-preview1.19504.12 - 3.1.0-preview1.19504.12 - 3.1.0-preview1.19504.12 - 3.1.0-preview1.19504.12 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.2 + 3.1.0-preview1.19505.2 + 3.1.0-preview1.19505.2 + 3.1.0-preview1.19505.2 - + https://github.com/dotnet/core-setup - 27610507ac04a478c225054699afb20e86cc7881 + 45f675b1acc38eaea182bf6ef284d1b13141d134 - + https://github.com/dotnet/core-setup - 27610507ac04a478c225054699afb20e86cc7881 + 45f675b1acc38eaea182bf6ef284d1b13141d134 - + https://github.com/dotnet/corefx - f4137889514bef5b9149e25d6edbaeb66f8beba6 + 0498dfedf8dbbd088c74399f45bc0b0c861c831a - + https://github.com/aspnet/Extensions - b16e1a04232ff0235fdb6445a811098df49c61b1 + f89df1a7ba5933a160abadeeec931642aaa79982 https://github.com/dotnet/arcade @@ -424,9 +424,9 @@ https://github.com/dotnet/arcade f8546fbab59a74a66c83b8cb76b3f6877ce1d374 - + https://github.com/aspnet/Extensions - b16e1a04232ff0235fdb6445a811098df49c61b1 + f89df1a7ba5933a160abadeeec931642aaa79982 https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index 28031109b5..e5ddf9b953 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -61,107 +61,107 @@ 3.4.0-beta2-19462-08 - 3.1.0-preview1.19504.18 - 3.1.0-preview1.19504.18 - 3.1.0-preview1.19504.18 - 2.1.0-preview1.19504.18 + 3.1.0-preview1.19504.20 + 3.1.0-preview1.19504.20 + 3.1.0-preview1.19504.20 + 2.1.0-preview1.19504.20 - 1.1.0-preview1.19504.8 - 4.7.0-preview1.19504.8 - 4.7.0-preview1.19504.8 - 4.7.0-preview1.19504.8 - 4.7.0-preview1.19504.8 - 4.7.0-preview1.19504.8 - 4.7.0-preview1.19504.8 - 4.7.0-preview1.19504.8 - 4.7.0-preview1.19504.8 - 4.7.0-preview1.19504.8 - 1.8.0-preview1.19504.8 - 4.7.0-preview1.19504.8 - 4.7.0-preview1.19504.8 - 4.7.0-preview1.19504.8 - 4.7.0-preview1.19504.8 - 4.7.0-preview1.19504.8 - 4.7.0-preview1.19504.8 - 4.7.0-preview1.19504.8 - 4.7.0-preview1.19504.8 - 4.7.0-preview1.19504.8 - 4.7.0-preview1.19504.8 - 4.7.0-preview1.19504.8 + 1.1.0-preview1.19504.10 + 4.7.0-preview1.19504.10 + 4.7.0-preview1.19504.10 + 4.7.0-preview1.19504.10 + 4.7.0-preview1.19504.10 + 4.7.0-preview1.19504.10 + 4.7.0-preview1.19504.10 + 4.7.0-preview1.19504.10 + 4.7.0-preview1.19504.10 + 4.7.0-preview1.19504.10 + 1.8.0-preview1.19504.10 + 4.7.0-preview1.19504.10 + 4.7.0-preview1.19504.10 + 4.7.0-preview1.19504.10 + 4.7.0-preview1.19504.10 + 4.7.0-preview1.19504.10 + 4.7.0-preview1.19504.10 + 4.7.0-preview1.19504.10 + 4.7.0-preview1.19504.10 + 4.7.0-preview1.19504.10 + 4.7.0-preview1.19504.10 + 4.7.0-preview1.19504.10 - 3.1.0-preview1.19504.8 + 3.1.0-preview1.19504.10 3.1.0-preview1.19503.1 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 - 3.1.0-preview1.19504.13 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.2 + 3.1.0-preview1.19505.2 + 3.1.0-preview1.19505.2 + 3.1.0-preview1.19505.2 + 3.1.0-preview1.19505.2 + 3.1.0-preview1.19505.2 + 3.1.0-preview1.19505.2 3.1.0-preview1.19505.2 3.1.0-preview1.19505.2 From 1d255bf32a83b90bfd6f5b6560c234f078095739 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sun, 6 Oct 2019 04:00:30 +0000 Subject: [PATCH 058/111] Update dependencies from https://github.com/aspnet/EntityFrameworkCore build 20191005.3 - Microsoft.EntityFrameworkCore.Tools - 3.1.0-preview1.19505.3 - Microsoft.EntityFrameworkCore.SqlServer - 3.1.0-preview1.19505.3 - dotnet-ef - 3.1.0-preview1.19505.3 - Microsoft.EntityFrameworkCore - 3.1.0-preview1.19505.3 - Microsoft.EntityFrameworkCore.InMemory - 3.1.0-preview1.19505.3 - Microsoft.EntityFrameworkCore.Relational - 3.1.0-preview1.19505.3 - Microsoft.EntityFrameworkCore.Sqlite - 3.1.0-preview1.19505.3 Dependency coherency updates - Microsoft.AspNetCore.Analyzer.Testing - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.AspNetCore.BenchmarkRunner.Sources - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ActivatorUtilities.Sources - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.Abstractions - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.Memory - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.SqlServer - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.StackExchangeRedis - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.CommandLineUtils.Sources - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Abstractions - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.AzureKeyVault - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Binder - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.CommandLine - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.EnvironmentVariables - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.FileExtensions - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Ini - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Json - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.KeyPerFile - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.UserSecrets - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Xml - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DependencyInjection.Abstractions - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DependencyInjection - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DiagnosticAdapter - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Diagnostics.HealthChecks - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Abstractions - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Composite - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Embedded - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Physical - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileSystemGlobbing - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.HashCodeCombiner.Sources - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Hosting.Abstractions - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Hosting - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.HostFactoryResolver.Sources - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Http - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Localization.Abstractions - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Localization - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Abstractions - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.AzureAppServices - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Configuration - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Console - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Debug - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.EventSource - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.EventLog - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.TraceSource - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Testing - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ObjectPool - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options.ConfigurationExtensions - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options.DataAnnotations - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ParameterDefaultValue.Sources - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Primitives - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.TypeNameHelper.Sources - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ValueStopwatch.Sources - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.WebEncoders - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Internal.Extensions.Refs - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.JSInterop - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Mono.WebAssembly.Interop - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.NETCore.App.Runtime.win-x64 - 3.1.0-preview1.19505.4 (parent: Microsoft.Extensions.Logging) - Microsoft.Extensions.Logging - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DependencyModel - 3.1.0-preview1.19505.4 (parent: Microsoft.Extensions.Logging) - Microsoft.NETCore.App.Ref - 3.1.0-preview1.19505.4 (parent: Microsoft.Extensions.Logging) - NETStandard.Library.Ref - 2.1.0-preview1.19505.4 (parent: Microsoft.Extensions.Logging) - Internal.AspNetCore.Analyzers - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) - Microsoft.AspNetCore.Testing - 3.1.0-preview1.19505.3 (parent: Microsoft.EntityFrameworkCore) --- eng/Version.Details.xml | 288 ++++++++++++++++++++-------------------- eng/Versions.props | 144 ++++++++++---------- 2 files changed, 216 insertions(+), 216 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 2998ea9401..429a91fca0 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -29,269 +29,269 @@ https://github.com/aspnet/AspNetCore-Tooling 10d1400745061415f56c6d806f0e196219b57644 - + https://github.com/aspnet/EntityFrameworkCore - b4b687e350c773f9af263389889f2ee4c717bb33 + ac472b9494f5b043d7a937fc78874f8a5addc2d8 - + https://github.com/aspnet/EntityFrameworkCore - b4b687e350c773f9af263389889f2ee4c717bb33 + ac472b9494f5b043d7a937fc78874f8a5addc2d8 - + https://github.com/aspnet/EntityFrameworkCore - b4b687e350c773f9af263389889f2ee4c717bb33 + ac472b9494f5b043d7a937fc78874f8a5addc2d8 - + https://github.com/aspnet/EntityFrameworkCore - b4b687e350c773f9af263389889f2ee4c717bb33 + ac472b9494f5b043d7a937fc78874f8a5addc2d8 - + https://github.com/aspnet/EntityFrameworkCore - b4b687e350c773f9af263389889f2ee4c717bb33 + ac472b9494f5b043d7a937fc78874f8a5addc2d8 - + https://github.com/aspnet/EntityFrameworkCore - b4b687e350c773f9af263389889f2ee4c717bb33 + ac472b9494f5b043d7a937fc78874f8a5addc2d8 - + https://github.com/aspnet/EntityFrameworkCore - b4b687e350c773f9af263389889f2ee4c717bb33 + ac472b9494f5b043d7a937fc78874f8a5addc2d8 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 https://github.com/dotnet/corefx @@ -381,25 +381,25 @@ https://github.com/dotnet/corefx 0498dfedf8dbbd088c74399f45bc0b0c861c831a - + https://github.com/dotnet/core-setup - 45f675b1acc38eaea182bf6ef284d1b13141d134 + f046fe0e33340def6bf72f939126012f740ea5b5 - + https://github.com/dotnet/core-setup - 45f675b1acc38eaea182bf6ef284d1b13141d134 + f046fe0e33340def6bf72f939126012f740ea5b5 - + https://github.com/dotnet/core-setup - 45f675b1acc38eaea182bf6ef284d1b13141d134 + f046fe0e33340def6bf72f939126012f740ea5b5 - + https://github.com/dotnet/core-setup - 45f675b1acc38eaea182bf6ef284d1b13141d134 + f046fe0e33340def6bf72f939126012f740ea5b5 @@ -408,9 +408,9 @@ https://github.com/dotnet/corefx 0498dfedf8dbbd088c74399f45bc0b0c861c831a - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 https://github.com/dotnet/arcade @@ -424,9 +424,9 @@ https://github.com/dotnet/arcade f8546fbab59a74a66c83b8cb76b3f6877ce1d374 - + https://github.com/aspnet/Extensions - f89df1a7ba5933a160abadeeec931642aaa79982 + 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index e5ddf9b953..fe0d523ee1 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -61,10 +61,10 @@ 3.4.0-beta2-19462-08 - 3.1.0-preview1.19504.20 - 3.1.0-preview1.19504.20 - 3.1.0-preview1.19504.20 - 2.1.0-preview1.19504.20 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 2.1.0-preview1.19505.4 1.1.0-preview1.19504.10 4.7.0-preview1.19504.10 @@ -93,75 +93,75 @@ 3.1.0-preview1.19503.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 - 3.1.0-preview1.19505.1 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.2 - 3.1.0-preview1.19505.2 - 3.1.0-preview1.19505.2 - 3.1.0-preview1.19505.2 - 3.1.0-preview1.19505.2 - 3.1.0-preview1.19505.2 - 3.1.0-preview1.19505.2 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.3 3.1.0-preview1.19505.2 3.1.0-preview1.19505.2 From 0a3a2aedfe52f2e11fcd90d684581378afc47964 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sun, 6 Oct 2019 06:55:45 +0000 Subject: [PATCH 059/111] Update dependencies from https://github.com/aspnet/AspNetCore-Tooling build 20191005.6 - Microsoft.AspNetCore.Mvc.Razor.Extensions - 3.1.0-preview1.19505.6 - Microsoft.AspNetCore.Razor.Language - 3.1.0-preview1.19505.6 - Microsoft.CodeAnalysis.Razor - 3.1.0-preview1.19505.6 - Microsoft.NET.Sdk.Razor - 3.1.0-preview1.19505.6 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 8 ++++---- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 429a91fca0..2f9c875709 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -13,21 +13,21 @@ https://github.com/aspnet/Blazor bf49a4e1a5401c0e952147f1c7452261a058813d - + https://github.com/aspnet/AspNetCore-Tooling - 10d1400745061415f56c6d806f0e196219b57644 + 314948277efa5ae93b907ef2e9b9b1016bcf34a1 - + https://github.com/aspnet/AspNetCore-Tooling - 10d1400745061415f56c6d806f0e196219b57644 + 314948277efa5ae93b907ef2e9b9b1016bcf34a1 - + https://github.com/aspnet/AspNetCore-Tooling - 10d1400745061415f56c6d806f0e196219b57644 + 314948277efa5ae93b907ef2e9b9b1016bcf34a1 - + https://github.com/aspnet/AspNetCore-Tooling - 10d1400745061415f56c6d806f0e196219b57644 + 314948277efa5ae93b907ef2e9b9b1016bcf34a1 https://github.com/aspnet/EntityFrameworkCore diff --git a/eng/Versions.props b/eng/Versions.props index fe0d523ee1..5635ff7887 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -163,10 +163,10 @@ 3.1.0-preview1.19505.3 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.2 - 3.1.0-preview1.19505.2 - 3.1.0-preview1.19505.2 - 3.1.0-preview1.19505.2 + 3.1.0-preview1.19505.6 + 3.1.0-preview1.19505.6 + 3.1.0-preview1.19505.6 + 3.1.0-preview1.19505.6 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 3.1.0-preview1.19505.6 3.1.0-preview1.19505.6 From 0f168356dd754b1cc6e91415771dd6ebf8c70ee0 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sun, 6 Oct 2019 06:56:09 +0000 Subject: [PATCH 061/111] Dependency coherency updates - Microsoft.AspNetCore.Analyzer.Testing - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.AspNetCore.BenchmarkRunner.Sources - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ActivatorUtilities.Sources - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.Abstractions - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.Memory - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.SqlServer - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.StackExchangeRedis - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.CommandLineUtils.Sources - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Abstractions - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.AzureKeyVault - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Binder - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.CommandLine - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.EnvironmentVariables - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.FileExtensions - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Ini - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Json - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.KeyPerFile - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.UserSecrets - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Xml - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DependencyInjection.Abstractions - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DependencyInjection - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DiagnosticAdapter - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Diagnostics.HealthChecks - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Abstractions - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Composite - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Embedded - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Physical - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileSystemGlobbing - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.HashCodeCombiner.Sources - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Hosting.Abstractions - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Hosting - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.HostFactoryResolver.Sources - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Http - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Localization.Abstractions - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Localization - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Abstractions - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.AzureAppServices - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Configuration - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Console - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Debug - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.EventSource - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.EventLog - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.TraceSource - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Testing - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ObjectPool - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options.ConfigurationExtensions - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options.DataAnnotations - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ParameterDefaultValue.Sources - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Primitives - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.TypeNameHelper.Sources - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ValueStopwatch.Sources - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.WebEncoders - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Internal.Extensions.Refs - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.JSInterop - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Mono.WebAssembly.Interop - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.NETCore.App.Runtime.win-x64 - 3.1.0-preview1.19505.5 (parent: Microsoft.Extensions.Logging) - Microsoft.Extensions.Logging - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DependencyModel - 3.1.0-preview1.19505.5 (parent: Microsoft.Extensions.Logging) - Microsoft.NETCore.App.Ref - 3.1.0-preview1.19505.5 (parent: Microsoft.Extensions.Logging) - NETStandard.Library.Ref - 2.1.0-preview1.19505.5 (parent: Microsoft.Extensions.Logging) - Internal.AspNetCore.Analyzers - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) - Microsoft.AspNetCore.Testing - 3.1.0-preview1.19505.4 (parent: Microsoft.EntityFrameworkCore) --- 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 0b5c293d46..2400edbf32 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -57,241 +57,241 @@ https://github.com/aspnet/EntityFrameworkCore e62a3b7a796b56df8a80e1bde17e12949257d29c - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b https://github.com/dotnet/corefx @@ -381,25 +381,25 @@ https://github.com/dotnet/corefx 0498dfedf8dbbd088c74399f45bc0b0c861c831a - + https://github.com/dotnet/core-setup - f046fe0e33340def6bf72f939126012f740ea5b5 + 994c4d01e6970e7110e2f0ecf95cc184dfa7569c - + https://github.com/dotnet/core-setup - f046fe0e33340def6bf72f939126012f740ea5b5 + 994c4d01e6970e7110e2f0ecf95cc184dfa7569c - + https://github.com/dotnet/core-setup - f046fe0e33340def6bf72f939126012f740ea5b5 + 994c4d01e6970e7110e2f0ecf95cc184dfa7569c - + https://github.com/dotnet/core-setup - f046fe0e33340def6bf72f939126012f740ea5b5 + 994c4d01e6970e7110e2f0ecf95cc184dfa7569c @@ -408,9 +408,9 @@ https://github.com/dotnet/corefx 0498dfedf8dbbd088c74399f45bc0b0c861c831a - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b https://github.com/dotnet/arcade @@ -424,9 +424,9 @@ https://github.com/dotnet/arcade f8546fbab59a74a66c83b8cb76b3f6877ce1d374 - + https://github.com/aspnet/Extensions - 56b0dfa99c4036aa78f0c19f21f298b7b0644e10 + 04eabf4fbda798102ab0a635a00c8f80dbf79b1b https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index b303e53cf9..b3dbc917de 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -61,10 +61,10 @@ 3.4.0-beta2-19462-08 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 2.1.0-preview1.19505.4 + 3.1.0-preview1.19505.5 + 3.1.0-preview1.19505.5 + 3.1.0-preview1.19505.5 + 2.1.0-preview1.19505.5 1.1.0-preview1.19504.10 4.7.0-preview1.19504.10 @@ -93,67 +93,67 @@ 3.1.0-preview1.19503.1 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 - 3.1.0-preview1.19505.3 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 + 3.1.0-preview1.19505.4 3.1.0-preview1.19505.4 3.1.0-preview1.19505.4 From 7faa22e77e1b0ffb2c27c3da6c56db1505e22767 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sun, 6 Oct 2019 17:55:16 +0000 Subject: [PATCH 062/111] Update dependencies from https://github.com/aspnet/AspNetCore-Tooling build 20191006.2 - Microsoft.AspNetCore.Mvc.Razor.Extensions - 3.1.0-preview1.19506.2 - Microsoft.AspNetCore.Razor.Language - 3.1.0-preview1.19506.2 - Microsoft.CodeAnalysis.Razor - 3.1.0-preview1.19506.2 - Microsoft.NET.Sdk.Razor - 3.1.0-preview1.19506.2 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 8 ++++---- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 2400edbf32..34b73f61d6 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -13,21 +13,21 @@ https://github.com/aspnet/Blazor bf49a4e1a5401c0e952147f1c7452261a058813d - + https://github.com/aspnet/AspNetCore-Tooling - 314948277efa5ae93b907ef2e9b9b1016bcf34a1 + 96fa41506a0f7b234edeb221a366540de442292d - + https://github.com/aspnet/AspNetCore-Tooling - 314948277efa5ae93b907ef2e9b9b1016bcf34a1 + 96fa41506a0f7b234edeb221a366540de442292d - + https://github.com/aspnet/AspNetCore-Tooling - 314948277efa5ae93b907ef2e9b9b1016bcf34a1 + 96fa41506a0f7b234edeb221a366540de442292d - + https://github.com/aspnet/AspNetCore-Tooling - 314948277efa5ae93b907ef2e9b9b1016bcf34a1 + 96fa41506a0f7b234edeb221a366540de442292d https://github.com/aspnet/EntityFrameworkCore diff --git a/eng/Versions.props b/eng/Versions.props index b3dbc917de..ce40498ee6 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -163,10 +163,10 @@ 3.1.0-preview1.19505.4 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.6 - 3.1.0-preview1.19505.6 - 3.1.0-preview1.19505.6 - 3.1.0-preview1.19505.6 + 3.1.0-preview1.19506.2 + 3.1.0-preview1.19506.2 + 3.1.0-preview1.19506.2 + 3.1.0-preview1.19506.2 - + https://github.com/dotnet/core-setup - 994c4d01e6970e7110e2f0ecf95cc184dfa7569c + bbf5542781136f9f3a1f30b010cb782e775d54c7 - + https://github.com/dotnet/core-setup - 994c4d01e6970e7110e2f0ecf95cc184dfa7569c + bbf5542781136f9f3a1f30b010cb782e775d54c7 @@ -408,9 +408,9 @@ https://github.com/dotnet/corefx 0498dfedf8dbbd088c74399f45bc0b0c861c831a - + https://github.com/aspnet/Extensions - 04eabf4fbda798102ab0a635a00c8f80dbf79b1b + dd3db48e9509475fff5907fc0318209988a5b657 https://github.com/dotnet/arcade @@ -424,9 +424,9 @@ https://github.com/dotnet/arcade f8546fbab59a74a66c83b8cb76b3f6877ce1d374 - + https://github.com/aspnet/Extensions - 04eabf4fbda798102ab0a635a00c8f80dbf79b1b + dd3db48e9509475fff5907fc0318209988a5b657 https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index ce40498ee6..6eb5fa6ecb 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -61,10 +61,10 @@ 3.4.0-beta2-19462-08 - 3.1.0-preview1.19505.5 - 3.1.0-preview1.19505.5 - 3.1.0-preview1.19505.5 - 2.1.0-preview1.19505.5 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 2.1.0-preview1.19506.1 1.1.0-preview1.19504.10 4.7.0-preview1.19504.10 @@ -93,75 +93,75 @@ 3.1.0-preview1.19503.1 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 + 3.1.0-preview1.19506.1 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 - 3.1.0-preview1.19505.4 + 3.1.0-preview1.19506.2 + 3.1.0-preview1.19506.2 + 3.1.0-preview1.19506.2 + 3.1.0-preview1.19506.2 + 3.1.0-preview1.19506.2 + 3.1.0-preview1.19506.2 + 3.1.0-preview1.19506.2 3.1.0-preview1.19506.2 3.1.0-preview1.19506.2 From 4cda48130caa8a882d900ca05e964f1bd17fa3ef Mon Sep 17 00:00:00 2001 From: James Newton-King Date: Mon, 7 Oct 2019 11:21:16 +1300 Subject: [PATCH 064/111] Update gRPC template package sample to follow convention (#14716) --- .../content/GrpcService-CSharp/Protos/greet.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/Protos/greet.proto b/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/Protos/greet.proto index 3e768139c4..bda0788c91 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/Protos/greet.proto +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/Protos/greet.proto @@ -2,7 +2,7 @@ syntax = "proto3"; option csharp_namespace = "GrpcService_CSharp"; -package Greet; +package greet; // The greeting service definition. service Greeter { From c3ccf5ba7fce6141761c32993c93e20d8cd581de Mon Sep 17 00:00:00 2001 From: Ryan Brandenburg Date: Mon, 7 Oct 2019 16:12:48 -0700 Subject: [PATCH 065/111] InputNumber Long (#14741) InputNumber Long --- src/Components/Web/src/Forms/InputNumber.cs | 1 + .../ServerExecutionTests/GlobalizationTest.cs | 12 ++++++++++++ .../BasicTestApp/GlobalizationBindCases.razor | 5 +++++ 3 files changed, 18 insertions(+) diff --git a/src/Components/Web/src/Forms/InputNumber.cs b/src/Components/Web/src/Forms/InputNumber.cs index 4f0377ceed..5b2a08a3b8 100644 --- a/src/Components/Web/src/Forms/InputNumber.cs +++ b/src/Components/Web/src/Forms/InputNumber.cs @@ -21,6 +21,7 @@ namespace Microsoft.AspNetCore.Components.Forms // of it for us. We will only get asked to parse the T for nonempty inputs. var targetType = Nullable.GetUnderlyingType(typeof(TValue)) ?? typeof(TValue); if (targetType == typeof(int) || + targetType == typeof(long) || targetType == typeof(float) || targetType == typeof(double) || targetType == typeof(decimal)) diff --git a/src/Components/test/E2ETest/ServerExecutionTests/GlobalizationTest.cs b/src/Components/test/E2ETest/ServerExecutionTests/GlobalizationTest.cs index ed045a6383..76a01c13f3 100644 --- a/src/Components/test/E2ETest/ServerExecutionTests/GlobalizationTest.cs +++ b/src/Components/test/E2ETest/ServerExecutionTests/GlobalizationTest.cs @@ -174,6 +174,18 @@ namespace Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests Browser.Equal(9000.ToString(cultureInfo), () => display.Text); Browser.Equal(9000.ToString(CultureInfo.InvariantCulture), () => input.GetAttribute("value")); + // long + input = Browser.FindElement(By.Id("inputnumber_long")); + display = Browser.FindElement(By.Id("inputnumber_long_value")); + Browser.Equal(4200.ToString(cultureInfo), () => display.Text); + Browser.Equal(4200.ToString(CultureInfo.InvariantCulture), () => input.GetAttribute("value")); + + input.Clear(); + input.SendKeys(90000000000.ToString(CultureInfo.InvariantCulture)); + input.SendKeys("\t"); + Browser.Equal(90000000000.ToString(cultureInfo), () => display.Text); + Browser.Equal(90000000000.ToString(CultureInfo.InvariantCulture), () => input.GetAttribute("value")); + // decimal input = Browser.FindElement(By.Id("inputnumber_decimal")); display = Browser.FindElement(By.Id("inputnumber_decimal_value")); diff --git a/src/Components/test/testassets/BasicTestApp/GlobalizationBindCases.razor b/src/Components/test/testassets/BasicTestApp/GlobalizationBindCases.razor index 671049d358..5294f2b1df 100644 --- a/src/Components/test/testassets/BasicTestApp/GlobalizationBindCases.razor +++ b/src/Components/test/testassets/BasicTestApp/GlobalizationBindCases.razor @@ -62,6 +62,10 @@ int: @inputNumberInt +
+ long: + @inputNumberLong +
decimal: @inputNumberDecimal @@ -99,6 +103,7 @@ DateTimeOffset inputTypeDateDateTimeOffset = new DateTimeOffset(new DateTime(1985, 3, 4)); int inputNumberInt = 42; + long inputNumberLong = 4200; decimal inputNumberDecimal = 4.2m; DateTime inputDateDateTime = new DateTime(1985, 3, 4); From 354d859d50f252526be5a6264434d1765df86450 Mon Sep 17 00:00:00 2001 From: John Luo Date: Mon, 7 Oct 2019 21:00:34 -0700 Subject: [PATCH 066/111] Manually add TypeForwardedTo in ref assemblies (#14538) * Manually add TypeForwardedTo in ref assemblies * Pin ref assembly version to Major.Minor.0.0 * Disable MSB3243 warning * Pin pinning implementation assembly version * Use nuget.exe v5.3.0 which support icon metadata * Fixup nuspec packing --- Directory.Build.targets | 6 +++++ eng/targets/ReferenceAssembly.targets | 9 ++++++- .../Microsoft.AspNetCore.Components.csproj | 5 ++-- ...t.AspNetCore.Components.multitarget.nuspec | 6 ++--- ...AspNetCore.Components.netcoreapp3.0.nuspec | 6 ++--- .../ref/Microsoft.AspNetCore.App.Ref.csproj | 26 +++++++++++++++++-- .../Microsoft.AspNetCore.App.UnitTests.csproj | 12 +++++++++ src/Framework/test/TargetingPackTests.cs | 9 ++++++- src/Framework/test/TestData.cs | 2 ++ ....AspNetCore.Routing.Abstractions.Manual.cs | 13 ++++++++++ ...oft.AspNetCore.Routing.Abstractions.csproj | 1 + .../Windows/GenerateNugetPackageWithMsi.ps1 | 7 ++--- .../SharedFramework/SharedFramework.wixproj | 3 ++- .../SharedFrameworkPackage.nuspec | 2 +- .../TargetingPack/TargetingPack.wixproj | 3 ++- .../TargetingPack/TargetingPackPackage.nuspec | 2 +- ...osoft.AspNetCore.Mvc.ApiExplorer.Manual.cs | 13 ++++++++++ ...icrosoft.AspNetCore.Mvc.ApiExplorer.csproj | 1 + .../Microsoft.AspNetCore.Mvc.Core.Manual.cs | 7 +++++ .../ref/Microsoft.AspNetCore.Mvc.Core.csproj | 1 + ...t.AspNetCore.Mvc.Formatters.Json.Manual.cs | 7 +++++ ...soft.AspNetCore.Mvc.Formatters.Json.csproj | 1 + ...crosoft.AspNetCore.Razor.Runtime.Manual.cs | 23 ++++++++++++++++ .../Microsoft.AspNetCore.Razor.Runtime.csproj | 1 + ...crosoft.AspNetCore.Authorization.Manual.cs | 10 +++++++ .../Microsoft.AspNetCore.Authorization.csproj | 2 ++ .../Microsoft.AspNetCore.Server.IIS.Manual.cs | 8 ++++++ .../Microsoft.AspNetCore.Server.IIS.csproj | 1 + 28 files changed, 167 insertions(+), 20 deletions(-) create mode 100644 src/Http/Routing.Abstractions/ref/Microsoft.AspNetCore.Routing.Abstractions.Manual.cs create mode 100644 src/Mvc/Mvc.ApiExplorer/ref/Microsoft.AspNetCore.Mvc.ApiExplorer.Manual.cs create mode 100644 src/Mvc/Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.Manual.cs create mode 100644 src/Mvc/Mvc.Formatters.Json/ref/Microsoft.AspNetCore.Mvc.Formatters.Json.Manual.cs create mode 100644 src/Razor/Razor.Runtime/ref/Microsoft.AspNetCore.Razor.Runtime.Manual.cs create mode 100644 src/Security/Authorization/Core/ref/Microsoft.AspNetCore.Authorization.Manual.cs create mode 100644 src/Servers/IIS/IIS/ref/Microsoft.AspNetCore.Server.IIS.Manual.cs diff --git a/Directory.Build.targets b/Directory.Build.targets index 0bbb16aa49..db3cea59f1 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -105,6 +105,12 @@ + + + + $(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).0.0 + + diff --git a/eng/targets/ReferenceAssembly.targets b/eng/targets/ReferenceAssembly.targets index bb6230e633..74cbf583e3 100644 --- a/eng/targets/ReferenceAssembly.targets +++ b/eng/targets/ReferenceAssembly.targets @@ -47,6 +47,7 @@ <_RefSourceOutputPath>$([System.IO.Directory]::GetParent('$(MSBuildProjectDirectory)'))/ref/ <_RefSourceFileName>$(AssemblyName).$(TargetFramework).cs + <_ManualRefSourceFileName>$(AssemblyName).Manual.cs <_RefSourceFileOutputPath>$(_RefSourceOutputPath)$(_RefSourceFileName) @@ -76,10 +77,16 @@ + <_ManualReferenceAssemblyContent /> + <_ManualReferenceAssemblyContent Condition="Exists('$(_RefSourceOutputPath)$(_ManualRefSourceFileName)')"> + ]]> + + - + ]]>$(_ManualReferenceAssemblyContent)'', '%0A ') ]]> diff --git a/src/Components/Components/src/Microsoft.AspNetCore.Components.csproj b/src/Components/Components/src/Microsoft.AspNetCore.Components.csproj index f4cc80aad5..bffd047457 100644 --- a/src/Components/Components/src/Microsoft.AspNetCore.Components.csproj +++ b/src/Components/Components/src/Microsoft.AspNetCore.Components.csproj @@ -53,9 +53,8 @@ - - - + + diff --git a/src/Components/Components/src/Microsoft.AspNetCore.Components.multitarget.nuspec b/src/Components/Components/src/Microsoft.AspNetCore.Components.multitarget.nuspec index 941b82323b..585e6ed49c 100644 --- a/src/Components/Components/src/Microsoft.AspNetCore.Components.multitarget.nuspec +++ b/src/Components/Components/src/Microsoft.AspNetCore.Components.multitarget.nuspec @@ -18,9 +18,9 @@ packageIcon.png - - - + + + diff --git a/src/Components/Components/src/Microsoft.AspNetCore.Components.netcoreapp3.0.nuspec b/src/Components/Components/src/Microsoft.AspNetCore.Components.netcoreapp3.0.nuspec index d218582bba..239e775650 100644 --- a/src/Components/Components/src/Microsoft.AspNetCore.Components.netcoreapp3.0.nuspec +++ b/src/Components/Components/src/Microsoft.AspNetCore.Components.netcoreapp3.0.nuspec @@ -12,9 +12,9 @@ packageIcon.png - - - + + + diff --git a/src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj b/src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj index ff5fa19191..c8c23952f8 100644 --- a/src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj +++ b/src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj @@ -36,10 +36,17 @@ This package is an internal implementation of the .NET Core SDK and is not meant true + + MSB3243 FrameworkList.xml $(ArtifactsObjDir)$(FrameworkListFileName) + + + $(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).0 + $(ReferencePackSharedFxVersion)-$(VersionSuffix) + $(ArtifactsObjDir)ref\PlatformManifest.txt @@ -93,6 +100,7 @@ This package is an internal implementation of the .NET Core SDK and is not meant @@ -109,6 +117,7 @@ This package is an internal implementation of the .NET Core SDK and is not meant Exclude=" @(_SelectedExtensionsRefAssemblies); @(ReferencePathWithRefAssemblies->WithMetadataValue('NuGetPackageId', 'Microsoft.NETCore.App.Ref')); + @(ReferencePathWithRefAssemblies->WithMetadataValue('IsReferenceAssembly', 'false')); @(ReferencePathWithRefAssemblies->WithMetadataValue('ReferenceGrouping', 'Microsoft.NETCore.App'));" /> + + + + - + @@ -128,9 +149,10 @@ This package is an internal implementation of the .NET Core SDK and is not meant DependsOnTargets="ResolveReferences" Inputs="$(MSBuildAllProjects)" Outputs="$(TargetDir)$(PackageConflictManifestFileName)"> + <_AspNetCoreAppPackageOverrides Include="@(ReferencePath->'%(NuGetPackageId)|%(NuGetPackageVersion)')" Condition=" '%(ReferencePath.NuGetPackageId)' != 'Microsoft.NETCore.App' AND '%(ReferencePath.NuGetSourceType)' == 'Package' " /> - <_AspNetCoreAppPackageOverrides Include="@(ReferencePath->'%(FileName)|$(SharedFxVersion)')" Condition=" '%(ReferencePath.ReferenceSourceTarget)' == 'ProjectReference' " /> + <_AspNetCoreAppPackageOverrides Include="@(ReferencePath->'%(FileName)|$(ReferencePackSharedFxVersion)')" Condition=" '%(ReferencePath.ReferenceSourceTarget)' == 'ProjectReference' AND '%(ReferencePath.IsReferenceAssembly)' == 'true' " /> + + + + + + + <_Parameter1>TargetingPackDependencies + <_Parameter2>@(_TargetingPackDependencies) + + <_Parameter1>RepositoryCommit <_Parameter2>$(SourceRevisionId) diff --git a/src/Framework/test/TargetingPackTests.cs b/src/Framework/test/TargetingPackTests.cs index 8222092260..8a2625b99d 100644 --- a/src/Framework/test/TargetingPackTests.cs +++ b/src/Framework/test/TargetingPackTests.cs @@ -59,8 +59,15 @@ namespace Microsoft.AspNetCore public void PlatformManifestListsAllFiles() { var platformManifestPath = Path.Combine(_targetingPackRoot, "data", "PlatformManifest.txt"); - var expectedAssemblies = TestData.GetSharedFxDependencies() + var expectedAssemblies = TestData.GetTargetingPackDependencies() .Split(';', StringSplitOptions.RemoveEmptyEntries) + .Select(i => + { + var fileName = Path.GetFileName(i); + return fileName.EndsWith(".dll", StringComparison.Ordinal) + ? fileName.Substring(0, fileName.Length - 4) + : fileName; + }) .ToHashSet(); _output.WriteLine("==== file contents ===="); diff --git a/src/Framework/test/TestData.cs b/src/Framework/test/TestData.cs index ede8565f85..594f7693a4 100644 --- a/src/Framework/test/TestData.cs +++ b/src/Framework/test/TestData.cs @@ -18,6 +18,8 @@ namespace Microsoft.AspNetCore public static string GetSharedFxDependencies() => GetTestDataValue("SharedFxDependencies"); + public static string GetTargetingPackDependencies() => GetTestDataValue("TargetingPackDependencies"); + public static string GetTestDataValue(string key) => typeof(TestData).Assembly.GetCustomAttributes().Single(d => d.Key == key).Value; } diff --git a/src/Http/Routing.Abstractions/ref/Microsoft.AspNetCore.Routing.Abstractions.Manual.cs b/src/Http/Routing.Abstractions/ref/Microsoft.AspNetCore.Routing.Abstractions.Manual.cs new file mode 100644 index 0000000000..9a0e3418cf --- /dev/null +++ b/src/Http/Routing.Abstractions/ref/Microsoft.AspNetCore.Routing.Abstractions.Manual.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. + +using System.Runtime.CompilerServices; +using Microsoft.AspNetCore.Routing; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http.Features; + +[assembly: TypeForwardedTo(typeof(IEndpointFeature))] +[assembly: TypeForwardedTo(typeof(IRouteValuesFeature))] +[assembly: TypeForwardedTo(typeof(Endpoint))] +[assembly: TypeForwardedTo(typeof(EndpointMetadataCollection))] +[assembly: TypeForwardedTo(typeof(RouteValueDictionary))] diff --git a/src/Http/Routing.Abstractions/ref/Microsoft.AspNetCore.Routing.Abstractions.csproj b/src/Http/Routing.Abstractions/ref/Microsoft.AspNetCore.Routing.Abstractions.csproj index 909f00e6e0..fe6fa231aa 100644 --- a/src/Http/Routing.Abstractions/ref/Microsoft.AspNetCore.Routing.Abstractions.csproj +++ b/src/Http/Routing.Abstractions/ref/Microsoft.AspNetCore.Routing.Abstractions.csproj @@ -5,6 +5,7 @@ + diff --git a/src/Installers/Windows/GenerateNugetPackageWithMsi.ps1 b/src/Installers/Windows/GenerateNugetPackageWithMsi.ps1 index 4c1c4970dc..b0c497b985 100644 --- a/src/Installers/Windows/GenerateNugetPackageWithMsi.ps1 +++ b/src/Installers/Windows/GenerateNugetPackageWithMsi.ps1 @@ -11,7 +11,8 @@ param( [Parameter(Mandatory=$true)][string]$PackageVersion, [Parameter(Mandatory=$true)][string]$RepoRoot, [Parameter(Mandatory=$true)][string]$MajorVersion, - [Parameter(Mandatory=$true)][string]$MinorVersion + [Parameter(Mandatory=$true)][string]$MinorVersion, + [Parameter(Mandatory=$true)][string]$PackageIconPath ) $NuGetDir = Join-Path $RepoRoot "artifacts\Tools\nuget\$Name\$Architecture" @@ -24,8 +25,8 @@ if (-not (Test-Path $NuGetDir)) { if (-not (Test-Path $NuGetExe)) { # Using 3.5.0 to workaround https://github.com/NuGet/Home/issues/5016 Write-Output "Downloading nuget.exe to $NuGetExe" - wget https://dist.nuget.org/win-x86-commandline/latest/nuget.exe -OutFile $NuGetExe + wget https://dist.nuget.org/win-x86-commandline/v5.3.0/nuget.exe -OutFile $NuGetExe } -& $NuGetExe pack $NuspecFile -Version $PackageVersion -OutputDirectory $OutputDirectory -NoDefaultExcludes -NoPackageAnalysis -Properties ASPNETCORE_RUNTIME_MSI=$MsiPath`;ASPNETCORE_CAB_FILE=$CabPath`;ARCH=$Architecture`;MAJOR=$MajorVersion`;MINOR=$MinorVersion`; +& $NuGetExe pack $NuspecFile -Version $PackageVersion -OutputDirectory $OutputDirectory -NoDefaultExcludes -NoPackageAnalysis -Properties ASPNETCORE_RUNTIME_MSI=$MsiPath`;ASPNETCORE_CAB_FILE=$CabPath`;ARCH=$Architecture`;MAJOR=$MajorVersion`;MINOR=$MinorVersion`;PACKAGE_ICON_PATH=$PackageIconPath`; Exit $LastExitCode \ No newline at end of file diff --git a/src/Installers/Windows/SharedFramework/SharedFramework.wixproj b/src/Installers/Windows/SharedFramework/SharedFramework.wixproj index afb754e2dd..4404e17ce7 100644 --- a/src/Installers/Windows/SharedFramework/SharedFramework.wixproj +++ b/src/Installers/Windows/SharedFramework/SharedFramework.wixproj @@ -106,6 +106,7 @@ '$(_GeneratedPackageVersion)' ^ '$(RepoRoot)' ^ '$(AspNetCoreMajorVersion)' ^ - '$(AspNetCoreMinorVersion)'" /> + '$(AspNetCoreMinorVersion)' ^ + '$(PackageIconFullPath)'" /> diff --git a/src/Installers/Windows/SharedFramework/SharedFrameworkPackage.nuspec b/src/Installers/Windows/SharedFramework/SharedFrameworkPackage.nuspec index e0deb1cb9f..66e9055af4 100644 --- a/src/Installers/Windows/SharedFramework/SharedFrameworkPackage.nuspec +++ b/src/Installers/Windows/SharedFramework/SharedFrameworkPackage.nuspec @@ -16,6 +16,6 @@ - + diff --git a/src/Installers/Windows/TargetingPack/TargetingPack.wixproj b/src/Installers/Windows/TargetingPack/TargetingPack.wixproj index 80065cb692..0bf3a72d58 100644 --- a/src/Installers/Windows/TargetingPack/TargetingPack.wixproj +++ b/src/Installers/Windows/TargetingPack/TargetingPack.wixproj @@ -101,6 +101,7 @@ '$(_GeneratedPackageVersion)' ^ '$(RepoRoot)' ^ '$(AspNetCoreMajorVersion)' ^ - '$(AspNetCoreMinorVersion)'" /> + '$(AspNetCoreMinorVersion)' ^ + '$(PackageIconFullPath)'" /> diff --git a/src/Installers/Windows/TargetingPack/TargetingPackPackage.nuspec b/src/Installers/Windows/TargetingPack/TargetingPackPackage.nuspec index c1b74d2689..5c85b569ba 100644 --- a/src/Installers/Windows/TargetingPack/TargetingPackPackage.nuspec +++ b/src/Installers/Windows/TargetingPack/TargetingPackPackage.nuspec @@ -15,6 +15,6 @@ - + diff --git a/src/Mvc/Mvc.ApiExplorer/ref/Microsoft.AspNetCore.Mvc.ApiExplorer.Manual.cs b/src/Mvc/Mvc.ApiExplorer/ref/Microsoft.AspNetCore.Mvc.ApiExplorer.Manual.cs new file mode 100644 index 0000000000..55c1e57727 --- /dev/null +++ b/src/Mvc/Mvc.ApiExplorer/ref/Microsoft.AspNetCore.Mvc.ApiExplorer.Manual.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. + +using System.Runtime.CompilerServices; + +[assembly: TypeForwardedTo(typeof(Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionProvider))] +[assembly: TypeForwardedTo(typeof(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription))] +[assembly: TypeForwardedTo(typeof(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionProviderContext))] +[assembly: TypeForwardedTo(typeof(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription))] +[assembly: TypeForwardedTo(typeof(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterRouteInfo))] +[assembly: TypeForwardedTo(typeof(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiRequestFormat))] +[assembly: TypeForwardedTo(typeof(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseFormat))] +[assembly: TypeForwardedTo(typeof(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseType))] diff --git a/src/Mvc/Mvc.ApiExplorer/ref/Microsoft.AspNetCore.Mvc.ApiExplorer.csproj b/src/Mvc/Mvc.ApiExplorer/ref/Microsoft.AspNetCore.Mvc.ApiExplorer.csproj index 791b79a913..10680b3401 100644 --- a/src/Mvc/Mvc.ApiExplorer/ref/Microsoft.AspNetCore.Mvc.ApiExplorer.csproj +++ b/src/Mvc/Mvc.ApiExplorer/ref/Microsoft.AspNetCore.Mvc.ApiExplorer.csproj @@ -5,6 +5,7 @@ + diff --git a/src/Mvc/Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.Manual.cs b/src/Mvc/Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.Manual.cs new file mode 100644 index 0000000000..d3e44fb471 --- /dev/null +++ b/src/Mvc/Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.Manual.cs @@ -0,0 +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.CompilerServices; +using Microsoft.AspNetCore.Mvc.Formatters; + +[assembly: TypeForwardedTo(typeof(InputFormatterException))] diff --git a/src/Mvc/Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.csproj b/src/Mvc/Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.csproj index d319a85c95..e6b5b968a8 100644 --- a/src/Mvc/Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.csproj +++ b/src/Mvc/Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.csproj @@ -5,6 +5,7 @@ + diff --git a/src/Mvc/Mvc.Formatters.Json/ref/Microsoft.AspNetCore.Mvc.Formatters.Json.Manual.cs b/src/Mvc/Mvc.Formatters.Json/ref/Microsoft.AspNetCore.Mvc.Formatters.Json.Manual.cs new file mode 100644 index 0000000000..039f419cd4 --- /dev/null +++ b/src/Mvc/Mvc.Formatters.Json/ref/Microsoft.AspNetCore.Mvc.Formatters.Json.Manual.cs @@ -0,0 +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.CompilerServices; +using Microsoft.AspNetCore.Mvc; + +[assembly: TypeForwardedTo(typeof(JsonResult))] diff --git a/src/Mvc/Mvc.Formatters.Json/ref/Microsoft.AspNetCore.Mvc.Formatters.Json.csproj b/src/Mvc/Mvc.Formatters.Json/ref/Microsoft.AspNetCore.Mvc.Formatters.Json.csproj index c32a9966a4..520d3abb20 100644 --- a/src/Mvc/Mvc.Formatters.Json/ref/Microsoft.AspNetCore.Mvc.Formatters.Json.csproj +++ b/src/Mvc/Mvc.Formatters.Json/ref/Microsoft.AspNetCore.Mvc.Formatters.Json.csproj @@ -5,6 +5,7 @@ + diff --git a/src/Razor/Razor.Runtime/ref/Microsoft.AspNetCore.Razor.Runtime.Manual.cs b/src/Razor/Razor.Runtime/ref/Microsoft.AspNetCore.Razor.Runtime.Manual.cs new file mode 100644 index 0000000000..8549a23cd4 --- /dev/null +++ b/src/Razor/Razor.Runtime/ref/Microsoft.AspNetCore.Razor.Runtime.Manual.cs @@ -0,0 +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.Runtime.CompilerServices; +using Microsoft.AspNetCore.Razor.TagHelpers; + +[assembly: TypeForwardedTo(typeof(DefaultTagHelperContent))] +[assembly: TypeForwardedTo(typeof(HtmlAttributeNameAttribute))] +[assembly: TypeForwardedTo(typeof(HtmlAttributeNotBoundAttribute))] +[assembly: TypeForwardedTo(typeof(HtmlTargetElementAttribute))] +[assembly: TypeForwardedTo(typeof(ITagHelper))] +[assembly: TypeForwardedTo(typeof(ITagHelperComponent))] +[assembly: TypeForwardedTo(typeof(NullHtmlEncoder))] +[assembly: TypeForwardedTo(typeof(OutputElementHintAttribute))] +[assembly: TypeForwardedTo(typeof(ReadOnlyTagHelperAttributeList))] +[assembly: TypeForwardedTo(typeof(RestrictChildrenAttribute))] +[assembly: TypeForwardedTo(typeof(TagHelper))] +[assembly: TypeForwardedTo(typeof(TagHelperAttribute))] +[assembly: TypeForwardedTo(typeof(TagHelperAttributeList))] +[assembly: TypeForwardedTo(typeof(TagHelperComponent))] +[assembly: TypeForwardedTo(typeof(TagHelperContent))] +[assembly: TypeForwardedTo(typeof(TagHelperContext))] +[assembly: TypeForwardedTo(typeof(TagHelperOutput))] \ No newline at end of file diff --git a/src/Razor/Razor.Runtime/ref/Microsoft.AspNetCore.Razor.Runtime.csproj b/src/Razor/Razor.Runtime/ref/Microsoft.AspNetCore.Razor.Runtime.csproj index 54f42c224a..8f18b18879 100644 --- a/src/Razor/Razor.Runtime/ref/Microsoft.AspNetCore.Razor.Runtime.csproj +++ b/src/Razor/Razor.Runtime/ref/Microsoft.AspNetCore.Razor.Runtime.csproj @@ -5,6 +5,7 @@ + diff --git a/src/Security/Authorization/Core/ref/Microsoft.AspNetCore.Authorization.Manual.cs b/src/Security/Authorization/Core/ref/Microsoft.AspNetCore.Authorization.Manual.cs new file mode 100644 index 0000000000..84fc42f7ab --- /dev/null +++ b/src/Security/Authorization/Core/ref/Microsoft.AspNetCore.Authorization.Manual.cs @@ -0,0 +1,10 @@ + +// 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.CompilerServices; +using Microsoft.AspNetCore.Authorization; + +// Microsoft.AspNetCore.Metadata +[assembly: TypeForwardedTo(typeof(IAuthorizeData))] +[assembly: TypeForwardedTo(typeof(IAllowAnonymous))] diff --git a/src/Security/Authorization/Core/ref/Microsoft.AspNetCore.Authorization.csproj b/src/Security/Authorization/Core/ref/Microsoft.AspNetCore.Authorization.csproj index 64c2d6f679..6b81f7e2ca 100644 --- a/src/Security/Authorization/Core/ref/Microsoft.AspNetCore.Authorization.csproj +++ b/src/Security/Authorization/Core/ref/Microsoft.AspNetCore.Authorization.csproj @@ -5,12 +5,14 @@ + + diff --git a/src/Servers/IIS/IIS/ref/Microsoft.AspNetCore.Server.IIS.Manual.cs b/src/Servers/IIS/IIS/ref/Microsoft.AspNetCore.Server.IIS.Manual.cs new file mode 100644 index 0000000000..ab9860b033 --- /dev/null +++ b/src/Servers/IIS/IIS/ref/Microsoft.AspNetCore.Server.IIS.Manual.cs @@ -0,0 +1,8 @@ +// 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.CompilerServices; +using Microsoft.AspNetCore.Http.Features; + +[assembly: TypeForwardedTo(typeof(IServerVariablesFeature))] + diff --git a/src/Servers/IIS/IIS/ref/Microsoft.AspNetCore.Server.IIS.csproj b/src/Servers/IIS/IIS/ref/Microsoft.AspNetCore.Server.IIS.csproj index 72d9c85999..371f23089c 100644 --- a/src/Servers/IIS/IIS/ref/Microsoft.AspNetCore.Server.IIS.csproj +++ b/src/Servers/IIS/IIS/ref/Microsoft.AspNetCore.Server.IIS.csproj @@ -5,6 +5,7 @@ + From 6fc778af6a9327930cb6842d4aeafd5e0625aa9c Mon Sep 17 00:00:00 2001 From: wtgodbe Date: Thu, 3 Oct 2019 13:31:44 -0700 Subject: [PATCH 067/111] disable building Microsoft.AspNetCore.App.Ref package in 3.0 --- src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj b/src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj index c8c23952f8..9fc826b1ab 100644 --- a/src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj +++ b/src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj @@ -85,7 +85,7 @@ This package is an internal implementation of the .NET Core SDK and is not meant - + From 527b4e1c58cded4f72484901aad47aed7d3c485a Mon Sep 17 00:00:00 2001 From: wtgodbe Date: Fri, 4 Oct 2019 15:50:40 -0700 Subject: [PATCH 068/111] Update condition for targetingPackBuilding --- Directory.Build.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Build.props b/Directory.Build.props index 1d002b3001..440c9d79a8 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -91,7 +91,7 @@ aspnetcore-targeting-pack - false + false - + $(PackageId)_$(DebPackageVersion)-$(PackageRevision)_$(DebianPackageArch).deb diff --git a/src/Installers/Windows/TargetingPack/TargetingPack.wixproj b/src/Installers/Windows/TargetingPack/TargetingPack.wixproj index 0bf3a72d58..e7cbb1f2ce 100644 --- a/src/Installers/Windows/TargetingPack/TargetingPack.wixproj +++ b/src/Installers/Windows/TargetingPack/TargetingPack.wixproj @@ -9,6 +9,7 @@ $(Name)-$(Platform) Package true + true 0AC34F1B-8056-4FFB-A398-E6BB7D67B48D true 5150;5151 diff --git a/src/Installers/Windows/Wix.targets b/src/Installers/Windows/Wix.targets index f7323ee110..a6c7224a84 100644 --- a/src/Installers/Windows/Wix.targets +++ b/src/Installers/Windows/Wix.targets @@ -63,7 +63,7 @@ From dd13c8737adb1f955ba8a48d21217313d4d16b96 Mon Sep 17 00:00:00 2001 From: William Godbe Date: Sat, 5 Oct 2019 00:03:05 -0700 Subject: [PATCH 070/111] Update src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj Co-Authored-By: Doug Bunting <6431421+dougbu@users.noreply.github.com> --- src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj b/src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj index 9fc826b1ab..4f34f355d5 100644 --- a/src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj +++ b/src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj @@ -85,7 +85,7 @@ This package is an internal implementation of the .NET Core SDK and is not meant - + From b89103fd5fba0ac879e3fa0cd9c9e17c60b54f0c Mon Sep 17 00:00:00 2001 From: wtgodbe Date: Tue, 8 Oct 2019 11:18:37 -0700 Subject: [PATCH 071/111] Fix Xunit skip attribute --- src/Framework/test/TargetingPackTests.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Framework/test/TargetingPackTests.cs b/src/Framework/test/TargetingPackTests.cs index 4d47e7894c..5e715f2e8f 100644 --- a/src/Framework/test/TargetingPackTests.cs +++ b/src/Framework/test/TargetingPackTests.cs @@ -55,8 +55,7 @@ namespace Microsoft.AspNetCore }); } - [Fact] - [Skip] + [Fact(Skip="https://github.com/aspnet/AspNetCore/issues/14832")] public void PlatformManifestListsAllFiles() { var platformManifestPath = Path.Combine(_targetingPackRoot, "data", "PlatformManifest.txt"); From 5e2e1cdfd3c540f2b165ed4feb06b7baa884b7e3 Mon Sep 17 00:00:00 2001 From: wtgodbe Date: Tue, 8 Oct 2019 12:32:37 -0700 Subject: [PATCH 072/111] disable other targeting pack test --- src/Framework/test/TargetingPackTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Framework/test/TargetingPackTests.cs b/src/Framework/test/TargetingPackTests.cs index 5e715f2e8f..ec8a646f48 100644 --- a/src/Framework/test/TargetingPackTests.cs +++ b/src/Framework/test/TargetingPackTests.cs @@ -28,7 +28,7 @@ namespace Microsoft.AspNetCore _targetingPackRoot = Path.Combine(TestData.GetTestDataValue("TargetingPackLayoutRoot"), "packs", "Microsoft.AspNetCore.App.Ref", TestData.GetTestDataValue("TargetingPackVersion")); } - [Fact] + [Fact(Skip="https://github.com/aspnet/AspNetCore/issues/14832")] public void AssembliesAreReferenceAssemblies() { IEnumerable dlls = Directory.GetFiles(_targetingPackRoot, "*.dll", SearchOption.AllDirectories); From 44b834c7ddd378e734ba9ed703b267245951d7d7 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 8 Oct 2019 23:40:15 +0000 Subject: [PATCH 073/111] Update dependencies from https://github.com/aspnet/AspNetCore-Tooling build 20191008.6 - Microsoft.AspNetCore.Mvc.Razor.Extensions - 3.1.0-preview1.19508.6 - Microsoft.AspNetCore.Razor.Language - 3.1.0-preview1.19508.6 - Microsoft.CodeAnalysis.Razor - 3.1.0-preview1.19508.6 - Microsoft.NET.Sdk.Razor - 3.1.0-preview1.19508.6 --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 8 ++++---- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index f695ab7f0a..62ae85779b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -13,21 +13,21 @@ https://github.com/aspnet/Blazor bf49a4e1a5401c0e952147f1c7452261a058813d - + https://github.com/aspnet/AspNetCore-Tooling - 96fa41506a0f7b234edeb221a366540de442292d + ce09369eb4162fe4bccf1a91bfdc5229f11afdbe - + https://github.com/aspnet/AspNetCore-Tooling - 96fa41506a0f7b234edeb221a366540de442292d + ce09369eb4162fe4bccf1a91bfdc5229f11afdbe - + https://github.com/aspnet/AspNetCore-Tooling - 96fa41506a0f7b234edeb221a366540de442292d + ce09369eb4162fe4bccf1a91bfdc5229f11afdbe - + https://github.com/aspnet/AspNetCore-Tooling - 96fa41506a0f7b234edeb221a366540de442292d + ce09369eb4162fe4bccf1a91bfdc5229f11afdbe https://github.com/aspnet/EntityFrameworkCore diff --git a/eng/Versions.props b/eng/Versions.props index 6eb5fa6ecb..fd09a9a0ea 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -163,10 +163,10 @@ 3.1.0-preview1.19506.2 3.1.0-preview1.19506.2 - 3.1.0-preview1.19506.2 - 3.1.0-preview1.19506.2 - 3.1.0-preview1.19506.2 - 3.1.0-preview1.19506.2 + 3.1.0-preview1.19508.6 + 3.1.0-preview1.19508.6 + 3.1.0-preview1.19508.6 + 3.1.0-preview1.19508.6 + Loading... @@ -31,4 +33,5 @@ + diff --git a/src/Components/test/testassets/BasicTestApp/wwwroot/style.css b/src/Components/test/testassets/BasicTestApp/wwwroot/style.css index 8bb7630162..ff403e0912 100644 --- a/src/Components/test/testassets/BasicTestApp/wwwroot/style.css +++ b/src/Components/test/testassets/BasicTestApp/wwwroot/style.css @@ -6,6 +6,14 @@ outline: 1px solid red; } +#error-ui { + display: none; +} + + #error-ui dismiss { + cursor: pointer; + } + .validation-message { color: red; } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/_Host.cshtml b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/_Host.cshtml index 0f2f4649a6..7a104af51d 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/_Host.cshtml +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/_Host.cshtml @@ -17,6 +17,17 @@ @(await Html.RenderComponentAsync(RenderMode.ServerPrerendered)) +
+ + An error has occurred. This application may no longer respond until reloaded. + + + An unhandled exception has occurred. See browser dev tools for details. + + Reload + 🗙 +
+ diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/wwwroot/css/site.css b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/wwwroot/css/site.css index c127ff7f4c..557b0acb46 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/wwwroot/css/site.css +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/wwwroot/css/site.css @@ -111,6 +111,25 @@ app { color: red; } +#error-ui { + background: lightyellow; + bottom: 0; + box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2); + display: none; + left: 0; + padding: 0.6rem 1.25rem 0.7rem 1.25rem; + position: fixed; + width: 100%; + z-index: 1000; +} + +#error-ui .dismiss { + cursor: pointer; + position: absolute; + right: 0.75rem; + top: 0.5rem; +} + @media (max-width: 767.98px) { .main .top-row { display: none; diff --git a/src/Shared/E2ETesting/WaitAssert.cs b/src/Shared/E2ETesting/WaitAssert.cs index 75d678b802..4ef1446191 100644 --- a/src/Shared/E2ETesting/WaitAssert.cs +++ b/src/Shared/E2ETesting/WaitAssert.cs @@ -47,6 +47,13 @@ namespace Microsoft.AspNetCore.E2ETesting public static IWebElement Exists(this IWebDriver driver, By finder) => Exists(driver, finder, default); + public static void DoesNotExist(this IWebDriver driver, By finder, TimeSpan timeout = default) + => WaitAssertCore(driver, () => + { + var elements = driver.FindElements(finder); + Assert.Empty(elements); + }, timeout); + public static IWebElement Exists(this IWebDriver driver, By finder, TimeSpan timeout) => WaitAssertCore(driver, () => { From 1141654673d07cb53785e52df149b020ea15bc0a Mon Sep 17 00:00:00 2001 From: Artak <34246760+mkArtakMSFT@users.noreply.github.com> Date: Wed, 9 Oct 2019 22:22:24 -0700 Subject: [PATCH 078/111] Fix the TargetFramework for Blazor WASM server app (#14865) --- .../BlazorWasm-CSharp/Server/BlazorWasm-CSharp.Server.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Components/Blazor/Templates/src/content/BlazorWasm-CSharp/Server/BlazorWasm-CSharp.Server.csproj b/src/Components/Blazor/Templates/src/content/BlazorWasm-CSharp/Server/BlazorWasm-CSharp.Server.csproj index eb9834dd9b..2742595431 100644 --- a/src/Components/Blazor/Templates/src/content/BlazorWasm-CSharp/Server/BlazorWasm-CSharp.Server.csproj +++ b/src/Components/Blazor/Templates/src/content/BlazorWasm-CSharp/Server/BlazorWasm-CSharp.Server.csproj @@ -1,7 +1,7 @@  - $(DefaultNetCoreTargetFramework) + netcoreapp3.1 7.3 From 0cf058711f16cd09826b9e7966f293656cc9e956 Mon Sep 17 00:00:00 2001 From: Adrian Wright Date: Thu, 10 Oct 2019 12:57:27 +0100 Subject: [PATCH 079/111] Rename class "error-ui" to "blazor-error-ui" --- .../BlazorWasm-CSharp/Client/wwwroot/css/site.css | 4 ++-- .../BlazorWasm-CSharp/Client/wwwroot/index.html | 2 +- .../Samples/BlazorServerApp/Shared/MainLayout.razor | 4 ++-- .../Samples/BlazorServerApp/wwwroot/css/site.css | 4 ++-- src/Components/Web.JS/dist/Release/blazor.server.js | 4 ++-- .../Web.JS/dist/Release/blazor.webassembly.js | 2 +- src/Components/Web.JS/src/BootErrors.ts | 8 ++++---- .../E2ETest/Tests/ErrorNotificationClientSideTest.cs | 12 ++++++------ .../test/testassets/BasicTestApp/Index.razor | 2 +- .../test/testassets/BasicTestApp/wwwroot/style.css | 4 ++-- .../BlazorServerWeb-CSharp/Pages/_Host.cshtml | 2 +- .../BlazorServerWeb-CSharp/wwwroot/css/site.css | 4 ++-- 12 files changed, 26 insertions(+), 26 deletions(-) diff --git a/src/Components/Blazor/Templates/src/content/BlazorWasm-CSharp/Client/wwwroot/css/site.css b/src/Components/Blazor/Templates/src/content/BlazorWasm-CSharp/Client/wwwroot/css/site.css index 5ca05274fa..22f9ecb710 100644 --- a/src/Components/Blazor/Templates/src/content/BlazorWasm-CSharp/Client/wwwroot/css/site.css +++ b/src/Components/Blazor/Templates/src/content/BlazorWasm-CSharp/Client/wwwroot/css/site.css @@ -96,7 +96,7 @@ app { color: red; } -#error-ui { +#blazor-error-ui { background: lightyellow; bottom: 0; box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2); @@ -108,7 +108,7 @@ app { z-index: 1000; } -#error-ui .dismiss { +#blazor-error-ui .dismiss { cursor: pointer; position: absolute; right: 0.75rem; diff --git a/src/Components/Blazor/Templates/src/content/BlazorWasm-CSharp/Client/wwwroot/index.html b/src/Components/Blazor/Templates/src/content/BlazorWasm-CSharp/Client/wwwroot/index.html index 1f2b1faf12..586253b52c 100644 --- a/src/Components/Blazor/Templates/src/content/BlazorWasm-CSharp/Client/wwwroot/index.html +++ b/src/Components/Blazor/Templates/src/content/BlazorWasm-CSharp/Client/wwwroot/index.html @@ -13,7 +13,7 @@ Loading... -
+
An unhandled error has occurred. Reload 🗙 diff --git a/src/Components/Samples/BlazorServerApp/Shared/MainLayout.razor b/src/Components/Samples/BlazorServerApp/Shared/MainLayout.razor index b0385366f2..0efbcd4908 100644 --- a/src/Components/Samples/BlazorServerApp/Shared/MainLayout.razor +++ b/src/Components/Samples/BlazorServerApp/Shared/MainLayout.razor @@ -1,4 +1,4 @@ -@inherits LayoutComponentBase +@inherits LayoutComponentBase
-
+
An unhandled error has occurred. Reload X diff --git a/src/Components/Samples/BlazorServerApp/wwwroot/css/site.css b/src/Components/Samples/BlazorServerApp/wwwroot/css/site.css index 9de3056b9d..4394c74a84 100644 --- a/src/Components/Samples/BlazorServerApp/wwwroot/css/site.css +++ b/src/Components/Samples/BlazorServerApp/wwwroot/css/site.css @@ -111,7 +111,7 @@ app { color: red; } -#error-ui { +#blazor-error-ui { background: lightyellow; position: fixed; border: "1px solid"; @@ -122,7 +122,7 @@ app { z-index: 1000; } -#error-ui .dismiss { +#blazor-error-ui .dismiss { position: absolute; right: 5px; top: 5px; diff --git a/src/Components/Web.JS/dist/Release/blazor.server.js b/src/Components/Web.JS/dist/Release/blazor.server.js index 98c3a447a1..3bcc27ce1e 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=50)}([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";n.d(t,"a",function(){return s}),n.d(t,"c",function(){return c}),n.d(t,"f",function(){return u}),n.d(t,"g",function(){return l}),n.d(t,"h",function(){return f}),n.d(t,"e",function(){return h}),n.d(t,"d",function(){return p}),n.d(t,"b",function(){return d});var r=n(0),o=n(7),i=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){e.done?o(e.value):new n(function(t){t(e.value)}).then(a,s)}c((r=r.apply(e,t||[])).next())})},a=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=(o=a.trys).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]-1&&this.subject.observers.splice(e,1),0===this.subject.observers.length&&this.subject.cancelCallback&&this.subject.cancelCallback().catch(function(e){})},e}(),d=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(e,t,n){"use strict";n.r(t);var r,o,i=n(3),a=n(4),s=n(44),c=n(0),u=(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)}),l=function(e){function t(t){var n=e.call(this)||this;return n.logger=t,n}return u(t,e),t.prototype.send=function(e){var t=this;return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new i.a):e.method?e.url?new Promise(function(n,r){var o=new XMLHttpRequest;o.open(e.method,e.url,!0),o.withCredentials=!0,o.setRequestHeader("X-Requested-With","XMLHttpRequest"),o.setRequestHeader("Content-Type","text/plain;charset=UTF-8");var s=e.headers;s&&Object.keys(s).forEach(function(e){o.setRequestHeader(e,s[e])}),e.responseType&&(o.responseType=e.responseType),e.abortSignal&&(e.abortSignal.onabort=function(){o.abort(),r(new i.a)}),e.timeout&&(o.timeout=e.timeout),o.onload=function(){e.abortSignal&&(e.abortSignal.onabort=null),o.status>=200&&o.status<300?n(new a.b(o.status,o.statusText,o.response||o.responseText)):r(new i.b(o.statusText,o.status))},o.onerror=function(){t.logger.log(c.a.Warning,"Error from HTTP request. "+o.status+": "+o.statusText+"."),r(new i.b(o.statusText,o.status))},o.ontimeout=function(){t.logger.log(c.a.Warning,"Timeout from HTTP request."),r(new i.c)},o.send(e.content||"")}):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t}(a.a),f=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)}}(),h=function(e){function t(t){var n=e.call(this)||this;return"undefined"!=typeof XMLHttpRequest?n.httpClient=new l(t):n.httpClient=new s.a(t),n}return f(t,e),t.prototype.send=function(e){return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new i.a):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}(a.a),p=n(45);!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"}(o||(o={}));var d,g=n(1),y=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 E.WebSockets:if(!this.options.WebSocket)throw new Error("'WebSocket' is not supported in your environment.");return new A(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.WebSocket);case E.ServerSentEvents:if(!this.options.EventSource)throw new Error("'EventSource' is not supported in your environment.");return new O(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.EventSource);case E.LongPolling:return new x(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1);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=E[e.transport];if(null==r)return this.logger.log(c.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(c.a.Debug,"Skipping transport '"+E[r]+"' because it was disabled by the client."),new Error("'"+E[r]+"' is disabled by the client.");if(!(e.transferFormats.map(function(e){return S[e]}).indexOf(n)>=0))return this.logger.log(c.a.Debug,"Skipping transport '"+E[r]+"' because it does not support the requested transfer format '"+S[n]+"'."),new Error("'"+E[r]+"' does not support "+S[n]+".");if(r===E.WebSockets&&!this.options.WebSocket||r===E.ServerSentEvents&&!this.options.EventSource)return this.logger.log(c.a.Debug,"Skipping transport '"+E[r]+"' because it is not supported in your environment.'"),new Error("'"+E[r]+"' is not supported in your environment.");this.logger.log(c.a.Debug,"Selecting transport '"+E[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){if(this.logger.log(c.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){if("Disconnecting"===this.connectionState&&this.stopPromiseResolver(),e?this.logger.log(c.a.Error,"Connection disconnected with error '"+e+"'."):this.logger.log(c.a.Information,"Connection disconnected."),this.connectionId=void 0,this.connectionState="Disconnected",this.onclose&&this.connectionStarted){this.connectionStarted=!1;try{this.onclose(e)}catch(t){this.logger.log(c.a.Error,"HttpConnection.onclose("+e+") threw error '"+t+"'.")}}}else this.logger.log(c.a.Warning,"Call to HttpConnection.stopConnection("+e+") was ignored because the connection hasn't yet left the in the connecting state.");else this.logger.log(c.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(!g.c.isBrowser||!window.document)throw new Error("Cannot resolve '"+e+"'.");var t=window.document.createElement("a");return t.href=e,this.logger.log(c.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",n+=-1===t?"":e.substring(t)},e}();var q=function(){function e(e){this.transport=e,this.buffer=[],this.executing=!0,this.sendBufferedData=new W,this.transportResult=new W,this.sendLoopPromise=this.sendLoop()}return e.prototype.send=function(e){return this.bufferData(e),this.transportResult||(this.transportResult=new W),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 B(this,void 0,void 0,function(){var t,n,r;return j(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 W,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]-1&&this.subject.observers.splice(e,1),0===this.subject.observers.length&&this.subject.cancelCallback&&this.subject.cancelCallback().catch(function(e){})},e}(),d=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(e,t,n){"use strict";n.r(t);var r,o,i=n(3),a=n(4),s=n(44),c=n(0),u=(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)}),l=function(e){function t(t){var n=e.call(this)||this;return n.logger=t,n}return u(t,e),t.prototype.send=function(e){var t=this;return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new i.a):e.method?e.url?new Promise(function(n,r){var o=new XMLHttpRequest;o.open(e.method,e.url,!0),o.withCredentials=!0,o.setRequestHeader("X-Requested-With","XMLHttpRequest"),o.setRequestHeader("Content-Type","text/plain;charset=UTF-8");var s=e.headers;s&&Object.keys(s).forEach(function(e){o.setRequestHeader(e,s[e])}),e.responseType&&(o.responseType=e.responseType),e.abortSignal&&(e.abortSignal.onabort=function(){o.abort(),r(new i.a)}),e.timeout&&(o.timeout=e.timeout),o.onload=function(){e.abortSignal&&(e.abortSignal.onabort=null),o.status>=200&&o.status<300?n(new a.b(o.status,o.statusText,o.response||o.responseText)):r(new i.b(o.statusText,o.status))},o.onerror=function(){t.logger.log(c.a.Warning,"Error from HTTP request. "+o.status+": "+o.statusText+"."),r(new i.b(o.statusText,o.status))},o.ontimeout=function(){t.logger.log(c.a.Warning,"Timeout from HTTP request."),r(new i.c)},o.send(e.content||"")}):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t}(a.a),f=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)}}(),h=function(e){function t(t){var n=e.call(this)||this;return"undefined"!=typeof XMLHttpRequest?n.httpClient=new l(t):n.httpClient=new s.a(t),n}return f(t,e),t.prototype.send=function(e){return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new i.a):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}(a.a),p=n(45);!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"}(o||(o={}));var d,g=n(1),y=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 E.WebSockets:if(!this.options.WebSocket)throw new Error("'WebSocket' is not supported in your environment.");return new A(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.WebSocket);case E.ServerSentEvents:if(!this.options.EventSource)throw new Error("'EventSource' is not supported in your environment.");return new O(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.EventSource);case E.LongPolling:return new P(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1);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=E[e.transport];if(null==r)return this.logger.log(c.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(c.a.Debug,"Skipping transport '"+E[r]+"' because it was disabled by the client."),new Error("'"+E[r]+"' is disabled by the client.");if(!(e.transferFormats.map(function(e){return S[e]}).indexOf(n)>=0))return this.logger.log(c.a.Debug,"Skipping transport '"+E[r]+"' because it does not support the requested transfer format '"+S[n]+"'."),new Error("'"+E[r]+"' does not support "+S[n]+".");if(r===E.WebSockets&&!this.options.WebSocket||r===E.ServerSentEvents&&!this.options.EventSource)return this.logger.log(c.a.Debug,"Skipping transport '"+E[r]+"' because it is not supported in your environment.'"),new Error("'"+E[r]+"' is not supported in your environment.");this.logger.log(c.a.Debug,"Selecting transport '"+E[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){if(this.logger.log(c.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){if("Disconnecting"===this.connectionState&&this.stopPromiseResolver(),e?this.logger.log(c.a.Error,"Connection disconnected with error '"+e+"'."):this.logger.log(c.a.Information,"Connection disconnected."),this.connectionId=void 0,this.connectionState="Disconnected",this.onclose&&this.connectionStarted){this.connectionStarted=!1;try{this.onclose(e)}catch(t){this.logger.log(c.a.Error,"HttpConnection.onclose("+e+") threw error '"+t+"'.")}}}else this.logger.log(c.a.Warning,"Call to HttpConnection.stopConnection("+e+") was ignored because the connection hasn't yet left the in the connecting state.");else this.logger.log(c.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(!g.c.isBrowser||!window.document)throw new Error("Cannot resolve '"+e+"'.");var t=window.document.createElement("a");return t.href=e,this.logger.log(c.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 q=function(){function e(e){this.transport=e,this.buffer=[],this.executing=!0,this.sendBufferedData=new W,this.transportResult=new W,this.sendLoopPromise=this.sendLoop()}return e.prototype.send=function(e){return this.bufferData(e),this.transportResult||(this.transportResult=new W),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 B(this,void 0,void 0,function(){var t,n,r;return j(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 W,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;o * @license MIT */ -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=e[t];e[t]=e[n],e[n]=r}function y(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:v(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):v(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function v(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 I(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<=k)return String.fromCharCode.apply(String,e);var n="",r=0;for(;rthis.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 I(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 R(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}.apply(this,arguments)},c.prototype.equals=function(e){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===c.compare(this,e)},c.prototype.inspect=function(){var e="",n=t.INSPECT_MAX_BYTES;return this.length>0&&(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 b(this,e,t,n);case"utf8":case"utf-8":return m(this,e,t,n);case"ascii":return w(this,e,t,n);case"latin1":case"binary":return E(this,e,t,n);case"base64":return S(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(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)}};var k=4096;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 O(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 L(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 A(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 B(e,t,n,r,i){return i||A(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function j(e,t,n,r,i){return i||A(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||D(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||D(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||D(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||D(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||D(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||D(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||D(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||D(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||D(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||D(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||D(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||D(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||D(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||D(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||D(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||D(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)||O(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||O(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||O(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||O(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||O(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||O(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);O(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);O(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||O(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||O(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||O(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||O(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||O(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 B(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return j(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return j(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(10))},function(e,t,n){"use strict";n.d(t,"a",function(){return r});var r=function(){function e(){}return e.prototype.log=function(e,t){},e.instance=new e,e}()},function(e,t,n){"use strict";n.d(t,"a",function(){return r});var r=function(){function e(){}return e.write=function(t){return""+t+e.RecordSeparator},e.parse=function(t){if(t[t.length-1]!==e.RecordSeparator)throw new Error("Message is incomplete.");var n=t.split(e.RecordSeparator);return n.pop(),n},e.RecordSeparatorCode=30,e.RecordSeparator=String.fromCharCode(e.RecordSeparatorCode),e}()},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){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(23),o=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=f;var i=n(21);i.inherits=n(16);var a=n(37),s=n(42);i.inherits(f,a);for(var c=o(s.prototype),u=0;u=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";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){e.done?o(e.value):new n(function(t){t(e.value)}).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=(o=a.trys).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&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return 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,n){var r=n(6),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),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){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),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"}(t.LogLevel||(t.LogLevel={}))},function(e,t,n){"use strict";var r;!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=u();if(o.invokeDotNetFromJS){var i=JSON.stringify(r,g),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 c(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 c=JSON.stringify(i,g);u().beginInvokeDotNetFromJS(a,e,t,r,c)}catch(e){l(a,!1,e)}return s}function u(){if(null!==i)return i;throw new Error("No .NET call dispatcher has been set.")}function l(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 h(e){return e instanceof Error?e.message+"\n"+e.stack:e?e.toString():"null"}function p(e){if(r.hasOwnProperty(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;r1)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&&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]=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="",_=!1,I=["{","}"];(p(n)&&(_=!0,I=["[","]"]),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||_&&0!=n.length?r<0?m(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=_?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,I)):I[0]+w+I[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")),T(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]"===_(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===_(e)}function S(e){return w(e)&&("[object Error]"===_(e)||e instanceof Error)}function C(e){return"function"==typeof e}function _(e){return Object.prototype.toString.call(e)}function I(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(55);var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function T(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){var e,n;console.log("%s - %s",(e=new Date,n=[I(e.getHours()),I(e.getMinutes()),I(e.getSeconds())].join(":"),[e.getDate(),k[e.getMonth()],n].join(" ")),t.format.apply(t,arguments))},t.inherits=n(56),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 x(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):k(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>=S?e=S:(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"),R(e)}function k(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(T,e,t))}function T(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 O(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 M(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?O(this):_(this),null;if(0===(e=C(e,t))&&t.ended)return 0===t.length&&O(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e0?D(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&O(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,R(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!==M(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?this:(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 f(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=function(){for(var e=[],t=0;t0&&(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=d(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 h(this,e,!0)},s.prototype.rawListeners=function(e){return h(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):p.call(e,t)},s.prototype.listenerCount=p,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(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(62).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(21);u.inherits=n(16);var l={deprecate:n(65)},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(11),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(_,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),_(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(11),!(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(),_(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"),_(e,t)})}function _(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,_(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(20),n(63).setImmediate,n(10))},function(e,t,n){"use strict";e.exports=a;var r=n(11),o=n(21);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.length=200&&c.statusCode<300?r(new a.b(c.statusCode,c.statusMessage||"",u)):o(new i.b(c.statusMessage||"",c.statusCode||0))});t.abortSignal&&(t.abortSignal.onabort=function(){f.abort(),o(new i.a)})})},n.prototype.getCookieString=function(e){return this.cookieJar.getCookieString(e)},n}(a.a)}).call(this,n(6).Buffer)},function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return i});var r=n(8),o=n(1),i=function(){function t(){}return t.prototype.writeHandshakeRequest=function(e){return r.a.write(JSON.stringify(e))},t.prototype.parseHandshakeResponse=function(t){var n,i;if(Object(o.g)(t)||void 0!==e&&t instanceof e){var a=new Uint8Array(t);if(-1===(c=a.indexOf(r.a.RecordSeparatorCode)))throw new Error("Message is incomplete.");var s=c+1;n=String.fromCharCode.apply(null,a.slice(0,s)),i=a.byteLength>s?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(6).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){e.done?o(e.value):new n(function(t){t(e.value)}).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=(o=a.trys).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?r-4:r,f=0;f>16&255,s[c++]=t>>8&255,s[c++]=255&t;2===a&&(t=o[e.charCodeAt(f)]<<2|o[e.charCodeAt(f+1)]>>4,s[c++]=255&t);1===a&&(t=o[e.charCodeAt(f)]<<10|o[e.charCodeAt(f+1)]<<4|o[e.charCodeAt(f+2)]>>2,s[c++]=t>>8&255,s[c++]=255&t);return s},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(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=e[t];e[t]=e[n],e[n]=r}function y(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:v(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):v(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function v(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 I(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<=k)return String.fromCharCode.apply(String,e);var n="",r=0;for(;rthis.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 I(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return x(this,t,n);case"base64":return _(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}}.apply(this,arguments)},c.prototype.equals=function(e){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===c.compare(this,e)},c.prototype.inspect=function(){var e="",n=t.INSPECT_MAX_BYTES;return this.length>0&&(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 b(this,e,t,n);case"utf8":case"utf-8":return m(this,e,t,n);case"ascii":return w(this,e,t,n);case"latin1":case"binary":return E(this,e,t,n);case"base64":return S(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(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)}};var k=4096;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 O(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 L(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 A(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 B(e,t,n,r,i){return i||A(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function j(e,t,n,r,i){return i||A(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||D(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||D(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||D(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||D(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||D(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||D(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||D(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||D(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||D(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||D(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||D(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||D(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||D(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||D(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||D(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||D(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)||O(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||O(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||O(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||O(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||O(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||O(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);O(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);O(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||O(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||O(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||O(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||O(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||O(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 B(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return j(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return j(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(10))},function(e,t,n){"use strict";n.d(t,"a",function(){return r});var r=function(){function e(){}return e.prototype.log=function(e,t){},e.instance=new e,e}()},function(e,t,n){"use strict";n.d(t,"a",function(){return r});var r=function(){function e(){}return e.write=function(t){return""+t+e.RecordSeparator},e.parse=function(t){if(t[t.length-1]!==e.RecordSeparator)throw new Error("Message is incomplete.");var n=t.split(e.RecordSeparator);return n.pop(),n},e.RecordSeparatorCode=30,e.RecordSeparator=String.fromCharCode(e.RecordSeparatorCode),e}()},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){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(23),o=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=f;var i=n(21);i.inherits=n(16);var a=n(37),s=n(42);i.inherits(f,a);for(var c=o(s.prototype),u=0;u=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";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){e.done?o(e.value):new n(function(t){t(e.value)}).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=(o=a.trys).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&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return 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,n){var r=n(6),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),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){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),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"}(t.LogLevel||(t.LogLevel={}))},function(e,t,n){"use strict";var r;!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=u();if(o.invokeDotNetFromJS){var i=JSON.stringify(r,g),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 c(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 c=JSON.stringify(i,g);u().beginInvokeDotNetFromJS(a,e,t,r,c)}catch(e){l(a,!1,e)}return s}function u(){if(null!==i)return i;throw new Error("No .NET call dispatcher has been set.")}function l(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 h(e){return e instanceof Error?e.message+"\n"+e.stack:e?e.toString():"null"}function p(e){if(r.hasOwnProperty(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;r1)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&&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]=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="",_=!1,I=["{","}"];(p(n)&&(_=!0,I=["[","]"]),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||_&&0!=n.length?r<0?m(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=_?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,I)):I[0]+w+I[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")),T(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]"===_(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===_(e)}function S(e){return w(e)&&("[object Error]"===_(e)||e instanceof Error)}function C(e){return"function"==typeof e}function _(e){return Object.prototype.toString.call(e)}function I(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(55);var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function T(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){var e,n;console.log("%s - %s",(e=new Date,n=[I(e.getHours()),I(e.getMinutes()),I(e.getSeconds())].join(":"),[e.getDate(),k[e.getMonth()],n].join(" ")),t.format.apply(t,arguments))},t.inherits=n(56),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 P(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):k(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>=S?e=S:(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"),R(e)}function k(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(T,e,t))}function T(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 O(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 M(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?O(this):_(this),null;if(0===(e=C(e,t))&&t.ended)return 0===t.length&&O(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e0?D(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&O(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,R(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!==M(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?this:(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 f(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=function(){for(var e=[],t=0;t0&&(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=d(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 h(this,e,!0)},s.prototype.rawListeners=function(e){return h(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):p.call(e,t)},s.prototype.listenerCount=p,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(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(62).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(21);u.inherits=n(16);var l={deprecate:n(65)},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(11),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(_,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),_(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(11),!(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(),_(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"),_(e,t)})}function _(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,_(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(20),n(63).setImmediate,n(10))},function(e,t,n){"use strict";e.exports=a;var r=n(11),o=n(21);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.length=200&&c.statusCode<300?r(new a.b(c.statusCode,c.statusMessage||"",u)):o(new i.b(c.statusMessage||"",c.statusCode||0))});t.abortSignal&&(t.abortSignal.onabort=function(){f.abort(),o(new i.a)})})},n.prototype.getCookieString=function(e){return this.cookieJar.getCookieString(e)},n}(a.a)}).call(this,n(6).Buffer)},function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return i});var r=n(8),o=n(1),i=function(){function t(){}return t.prototype.writeHandshakeRequest=function(e){return r.a.write(JSON.stringify(e))},t.prototype.parseHandshakeResponse=function(t){var n,i;if(Object(o.g)(t)||void 0!==e&&t instanceof e){var a=new Uint8Array(t);if(-1===(c=a.indexOf(r.a.RecordSeparatorCode)))throw new Error("Message is incomplete.");var s=c+1;n=String.fromCharCode.apply(null,a.slice(0,s)),i=a.byteLength>s?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(6).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){e.done?o(e.value):new n(function(t){t(e.value)}).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=(o=a.trys).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?r-4:r,f=0;f>16&255,s[c++]=t>>8&255,s[c++]=255&t;2===a&&(t=o[e.charCodeAt(f)]<<2|o[e.charCodeAt(f+1)]>>4,s[c++]=255&t);1===a&&(t=o[e.charCodeAt(f)]<<10|o[e.charCodeAt(f+1)]<<4|o[e.charCodeAt(f+2)]>>2,s[c++]=t>>8&255,s[c++]=255&t);return s},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){ /*! * 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 631507f758..d808b04f12 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=46)}([,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(25),n(9);var r=n(26),o=n(14),a={},i=!1;function l(e,t,n){var o=a[e];o||(o=a[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=l,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");l(n||0,o.toLogicalElement(r,!0),t)},t.renderBatch=function(e,t){var n=a[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),l=r.values(o),u=r.count(o),s=t.referenceFrames(),c=r.values(s),f=t.diffReader,d=0;d0&&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 e[r]=[],e}function l(e,t,n){var a=e;if(e instanceof Comment&&(s(a)&&s(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=s(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 s(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===c(e).namespaceURI},t.getLogicalChildrenArray=s,t.permuteLogicalChildren=function(e,t){var n=s(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=c},,,,function(e,t,n){"use strict";var r;!function(e){window.DotNet=e;var t=[],n={},r={},o=1,a=null;function i(e){t.push(e)}function l(e,t,n,r){var o=s();if(o.invokeDotNetFromJS){var a=JSON.stringify(r,h),i=o.invokeDotNetFromJS(e,t,n,a);return i?f(i):null}throw new Error("The current dispatcher does not support synchronous calls from JS to .NET. Use invokeMethodAsync instead.")}function u(e,t,r,a){if(e&&r)throw new Error("For instance method calls, assemblyName should be null. Received '"+e+"'.");var i=o++,l=new Promise(function(e,t){n[i]={resolve:e,reject:t}});try{var u=JSON.stringify(a,h);s().beginInvokeDotNetFromJS(i,e,t,r,u)}catch(e){c(i,!1,e)}return l}function s(){if(null!==a)return a;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(r.hasOwnProperty(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){a=e},e.attachReviver=i,e.invokeMethod=function(e,t){for(var n=[],r=2;r0&&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]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]-1?a.substring(0,l):"",s=l>-1?a.substring(l+1):a,c=t.monoPlatform.findMethod(e,u,s,i);t.monoPlatform.callMethod(c,null,r)},callMethod:function(e,n,r){if(r.length>4)throw new Error("Currently, MonoPlatform supports passing a maximum of 4 arguments from JS to .NET. You tried to pass "+r.length+".");var o=Module.stackSave();try{for(var a=Module.stackAlloc(r.length),l=Module.stackAlloc(4),u=0;u>2,r=Module.HEAPU32[n+1];if(r>y)throw new Error("Cannot read uint64 with high order part "+r+", because the result would exceed Number.MAX_SAFE_INTEGER.");return r*v+Module.HEAPU32[n]},readFloatField:function(e,t){return Module.getValue(e+(t||0),"float")},readObjectField:function(e,t){return Module.getValue(e+(t||0),"i32")},readStringField:function(e,n){var r=Module.getValue(e+(n||0),"i32");return 0===r?null:t.monoPlatform.toJavaScriptString(r)},readStructField:function(e,t){return e+(t||0)}};var w=document.createElement("a");function E(e){return e+12}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(33),o=window.chrome&&navigator.userAgent.indexOf("Edge")<0,a=!1;function i(){return a&&o}t.hasDebuggingEnabled=i,t.attachDebuggerHotkey=function(e){a=e.some(function(e){return/\.pdb$/.test(r.getFileNameFromUrl(e))});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&&(a?o?((t=document.createElement("a")).href="_framework/debug?url="+encodeURIComponent(location.href),t.target="_blank",t.rel="noopener noreferrer",t.click()):console.error("Currently, only Chrome is 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(9),o=function(){function e(e){this.batchAddress=e,this.arrayRangeReader=a,this.arrayBuilderSegmentReader=i,this.diffReader=l,this.editReader=u,this.frameReader=s}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 c(e,t,l.structLength)},e.prototype.referenceFramesEntry=function(e,t){return c(e,t,s.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 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)}},l={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 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)}},s={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)},attributeEventHandlerId:function(e){return r.platform.readUint64Field(e,8)}};function c(e,t,n){return r.platform.getArrayEntryPtr(e,t,n)}}]); \ No newline at end of file +!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=46)}([,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(25),n(9);var r=n(26),o=n(14),a={},i=!1;function l(e,t,n){var o=a[e];o||(o=a[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=l,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");l(n||0,o.toLogicalElement(r,!0),t)},t.renderBatch=function(e,t){var n=a[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),l=r.values(o),u=r.count(o),s=t.referenceFrames(),c=r.values(s),f=t.diffReader,d=0;d0&&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 e[r]=[],e}function l(e,t,n){var a=e;if(e instanceof Comment&&(s(a)&&s(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=s(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 s(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===c(e).namespaceURI},t.getLogicalChildrenArray=s,t.permuteLogicalChildren=function(e,t){var n=s(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=c},,,,function(e,t,n){"use strict";var r;!function(e){window.DotNet=e;var t=[],n={},r={},o=1,a=null;function i(e){t.push(e)}function l(e,t,n,r){var o=s();if(o.invokeDotNetFromJS){var a=JSON.stringify(r,h),i=o.invokeDotNetFromJS(e,t,n,a);return i?f(i):null}throw new Error("The current dispatcher does not support synchronous calls from JS to .NET. Use invokeMethodAsync instead.")}function u(e,t,r,a){if(e&&r)throw new Error("For instance method calls, assemblyName should be null. Received '"+e+"'.");var i=o++,l=new Promise(function(e,t){n[i]={resolve:e,reject:t}});try{var u=JSON.stringify(a,h);s().beginInvokeDotNetFromJS(i,e,t,r,u)}catch(e){c(i,!1,e)}return l}function s(){if(null!==a)return a;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(r.hasOwnProperty(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){a=e},e.attachReviver=i,e.invokeMethod=function(e,t){for(var n=[],r=2;r0&&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]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]-1?a.substring(0,l):"",s=l>-1?a.substring(l+1):a,c=t.monoPlatform.findMethod(e,u,s,i);t.monoPlatform.callMethod(c,null,r)},callMethod:function(e,n,r){if(r.length>4)throw new Error("Currently, MonoPlatform supports passing a maximum of 4 arguments from JS to .NET. You tried to pass "+r.length+".");var o=Module.stackSave();try{for(var a=Module.stackAlloc(r.length),l=Module.stackAlloc(4),u=0;u>2,r=Module.HEAPU32[n+1];if(r>y)throw new Error("Cannot read uint64 with high order part "+r+", because the result would exceed Number.MAX_SAFE_INTEGER.");return r*v+Module.HEAPU32[n]},readFloatField:function(e,t){return Module.getValue(e+(t||0),"float")},readObjectField:function(e,t){return Module.getValue(e+(t||0),"i32")},readStringField:function(e,n){var r=Module.getValue(e+(n||0),"i32");return 0===r?null:t.monoPlatform.toJavaScriptString(r)},readStructField:function(e,t){return e+(t||0)}};var w=document.createElement("a");function E(e){return e+12}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(33),o=window.chrome&&navigator.userAgent.indexOf("Edge")<0,a=!1;function i(){return a&&o}t.hasDebuggingEnabled=i,t.attachDebuggerHotkey=function(e){a=e.some(function(e){return/\.pdb$/.test(r.getFileNameFromUrl(e))});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&&(a?o?((t=document.createElement("a")).href="_framework/debug?url="+encodeURIComponent(location.href),t.target="_blank",t.rel="noopener noreferrer",t.click()):console.error("Currently, only Chrome is 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(9),o=function(){function e(e){this.batchAddress=e,this.arrayRangeReader=a,this.arrayBuilderSegmentReader=i,this.diffReader=l,this.editReader=u,this.frameReader=s}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 c(e,t,l.structLength)},e.prototype.referenceFramesEntry=function(e,t){return c(e,t,s.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 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)}},l={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 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)}},s={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)},attributeEventHandlerId:function(e){return r.platform.readUint64Field(e,8)}};function c(e,t,n){return r.platform.getArrayEntryPtr(e,t,n)}}]); \ No newline at end of file diff --git a/src/Components/Web.JS/src/BootErrors.ts b/src/Components/Web.JS/src/BootErrors.ts index 0a3eb475ce..3db688e427 100644 --- a/src/Components/Web.JS/src/BootErrors.ts +++ b/src/Components/Web.JS/src/BootErrors.ts @@ -1,14 +1,14 @@ let hasFailed = false; export async function showErrorNotification() { - let errorUi = document.querySelector('#error-ui') as HTMLElement; + let errorUi = document.querySelector('#blazor-error-ui') as HTMLElement; if (errorUi) { errorUi.style.display = 'block'; } if (!hasFailed) { hasFailed = true; - const errorUiReloads = document.querySelectorAll('#error-ui .reload'); + const errorUiReloads = document.querySelectorAll('#blazor-error-ui .reload'); errorUiReloads.forEach(reload => { reload.onclick = function (e) { location.reload(); @@ -16,10 +16,10 @@ export async function showErrorNotification() { }; }); - let errorUiDismiss = document.querySelectorAll('#error-ui .dismiss'); + let errorUiDismiss = document.querySelectorAll('#blazor-error-ui .dismiss'); errorUiDismiss.forEach(dismiss => { dismiss.onclick = function (e) { - const errorUi = document.querySelector('#error-ui'); + const errorUi = document.querySelector('#blazor-error-ui'); if (errorUi) { errorUi.style.display = 'none'; } diff --git a/src/Components/test/E2ETest/Tests/ErrorNotificationClientSideTest.cs b/src/Components/test/E2ETest/Tests/ErrorNotificationClientSideTest.cs index ec05d29025..7c0705acde 100644 --- a/src/Components/test/E2ETest/Tests/ErrorNotificationClientSideTest.cs +++ b/src/Components/test/E2ETest/Tests/ErrorNotificationClientSideTest.cs @@ -28,20 +28,20 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests // On WebAssembly, page reloads are expensive so skip if possible Navigate(ServerPathBase, noReload: _serverFixture.ExecutionMode == ExecutionMode.Client); Browser.MountTestComponent(); - Browser.Exists(By.Id("error-ui")); + Browser.Exists(By.Id("blazor-error-ui")); Browser.Exists(By.TagName("button")); } [Fact] public void ShowsErrorNotification_OnError_Dismiss() { - var errorUi = Browser.FindElement(By.Id("error-ui")); + var errorUi = Browser.FindElement(By.Id("blazor-error-ui")); Assert.Equal("none", errorUi.GetCssValue("display")); var causeErrorButton = Browser.FindElement(By.TagName("button")); causeErrorButton.Click(); - Browser.Exists(By.CssSelector("#error-ui[style='display: block;']"), TimeSpan.FromSeconds(10)); + Browser.Exists(By.CssSelector("#blazor-error-ui[style='display: block;']"), TimeSpan.FromSeconds(10)); var reload = Browser.FindElement(By.ClassName("reload")); reload.Click(); @@ -53,15 +53,15 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests public void ShowsErrorNotification_OnError_Reload() { var causeErrorButton = Browser.Exists(By.TagName("button")); - var errorUi = Browser.FindElement(By.Id("error-ui")); + var errorUi = Browser.FindElement(By.Id("blazor-error-ui")); Assert.Equal("none", errorUi.GetCssValue("display")); causeErrorButton.Click(); - Browser.Exists(By.CssSelector("#error-ui[style='display: block;']")); + Browser.Exists(By.CssSelector("#blazor-error-ui[style='display: block;']")); var dismiss = Browser.FindElement(By.ClassName("dismiss")); dismiss.Click(); - Browser.Exists(By.CssSelector("#error-ui[style='display: none;']")); + Browser.Exists(By.CssSelector("#blazor-error-ui[style='display: none;']")); } } } diff --git a/src/Components/test/testassets/BasicTestApp/Index.razor b/src/Components/test/testassets/BasicTestApp/Index.razor index c1465052eb..fe94ad595e 100644 --- a/src/Components/test/testassets/BasicTestApp/Index.razor +++ b/src/Components/test/testassets/BasicTestApp/Index.razor @@ -83,7 +83,7 @@ @((RenderFragment)RenderSelectedComponent) -
+
An unhandled error has occurred. Reload 🗙 diff --git a/src/Components/test/testassets/BasicTestApp/wwwroot/style.css b/src/Components/test/testassets/BasicTestApp/wwwroot/style.css index ff403e0912..777375d9e0 100644 --- a/src/Components/test/testassets/BasicTestApp/wwwroot/style.css +++ b/src/Components/test/testassets/BasicTestApp/wwwroot/style.css @@ -6,11 +6,11 @@ outline: 1px solid red; } -#error-ui { +#blazor-error-ui { display: none; } - #error-ui dismiss { + #blazor-error-ui dismiss { cursor: pointer; } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/_Host.cshtml b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/_Host.cshtml index 7a104af51d..6a276409e6 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/_Host.cshtml +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/_Host.cshtml @@ -17,7 +17,7 @@ @(await Html.RenderComponentAsync(RenderMode.ServerPrerendered)) -
+
An error has occurred. This application may no longer respond until reloaded. diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/wwwroot/css/site.css b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/wwwroot/css/site.css index 557b0acb46..0ddeb1311e 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/wwwroot/css/site.css +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/wwwroot/css/site.css @@ -111,7 +111,7 @@ app { color: red; } -#error-ui { +#blazor-error-ui { background: lightyellow; bottom: 0; box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2); @@ -123,7 +123,7 @@ app { z-index: 1000; } -#error-ui .dismiss { +#blazor-error-ui .dismiss { cursor: pointer; position: absolute; right: 0.75rem; From 1377ced819a7cb6a89d7a0896cdf80caa65374aa Mon Sep 17 00:00:00 2001 From: Ryan Brandenburg Date: Thu, 10 Oct 2019 13:34:29 -0700 Subject: [PATCH 080/111] Fix log levels (#14748) --- .../BlazorServerWeb-CSharp/appsettings.Development.json | 6 +++--- .../content/EmptyWeb-CSharp/appsettings.Development.json | 6 +++--- .../content/EmptyWeb-FSharp/appsettings.Development.json | 6 +++--- .../content/EmptyWeb-FSharp/appsettings.json | 3 ++- .../content/GrpcService-CSharp/appsettings.json | 3 ++- .../RazorPagesWeb-CSharp/appsettings.Development.json | 6 +++--- .../content/StarterWeb-CSharp/appsettings.Development.json | 6 +++--- .../content/StarterWeb-FSharp/appsettings.Development.json | 6 +++--- .../content/StarterWeb-FSharp/appsettings.json | 3 ++- .../content/WebApi-CSharp/appsettings.Development.json | 6 +++--- .../content/WebApi-FSharp/appsettings.Development.json | 6 +++--- .../content/WebApi-FSharp/appsettings.json | 3 ++- .../content/Worker-CSharp/appsettings.Development.json | 6 +++--- .../content/Angular-CSharp/appsettings.Development.json | 6 +++--- .../content/Angular-CSharp/appsettings.json | 4 +++- .../content/React-CSharp/appsettings.Development.json | 6 +++--- .../content/React-CSharp/appsettings.json | 4 +++- .../content/ReactRedux-CSharp/appsettings.Development.json | 6 +++--- .../content/ReactRedux-CSharp/appsettings.json | 4 +++- 19 files changed, 53 insertions(+), 43 deletions(-) diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/appsettings.Development.json b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/appsettings.Development.json index e203e9407e..dba68eb124 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/appsettings.Development.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/appsettings.Development.json @@ -1,9 +1,9 @@ { "Logging": { "LogLevel": { - "Default": "Debug", - "System": "Information", - "Microsoft": "Information" + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" } } } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/appsettings.Development.json b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/appsettings.Development.json index e203e9407e..dba68eb124 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/appsettings.Development.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/appsettings.Development.json @@ -1,9 +1,9 @@ { "Logging": { "LogLevel": { - "Default": "Debug", - "System": "Information", - "Microsoft": "Information" + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" } } } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/appsettings.Development.json b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/appsettings.Development.json index e203e9407e..dba68eb124 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/appsettings.Development.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/appsettings.Development.json @@ -1,9 +1,9 @@ { "Logging": { "LogLevel": { - "Default": "Debug", - "System": "Information", - "Microsoft": "Information" + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" } } } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/appsettings.json b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/appsettings.json index 7cb5ac8193..238d518d39 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/appsettings.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/appsettings.json @@ -1,7 +1,8 @@ { "Logging": { "LogLevel": { - "Default": "Warning", + "Default": "Information", + "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/appsettings.json b/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/appsettings.json index efb26250e8..f5ef230f62 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/appsettings.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/appsettings.json @@ -1,7 +1,8 @@ { "Logging": { "LogLevel": { - "Default": "Warning", + "Default": "Information", + "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/appsettings.Development.json b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/appsettings.Development.json index e203e9407e..dba68eb124 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/appsettings.Development.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/appsettings.Development.json @@ -1,9 +1,9 @@ { "Logging": { "LogLevel": { - "Default": "Debug", - "System": "Information", - "Microsoft": "Information" + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" } } } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/appsettings.Development.json b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/appsettings.Development.json index e203e9407e..dba68eb124 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/appsettings.Development.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/appsettings.Development.json @@ -1,9 +1,9 @@ { "Logging": { "LogLevel": { - "Default": "Debug", - "System": "Information", - "Microsoft": "Information" + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" } } } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-FSharp/appsettings.Development.json b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-FSharp/appsettings.Development.json index e203e9407e..dba68eb124 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-FSharp/appsettings.Development.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-FSharp/appsettings.Development.json @@ -1,9 +1,9 @@ { "Logging": { "LogLevel": { - "Default": "Debug", - "System": "Information", - "Microsoft": "Information" + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" } } } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-FSharp/appsettings.json b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-FSharp/appsettings.json index 7cb5ac8193..238d518d39 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-FSharp/appsettings.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-FSharp/appsettings.json @@ -1,7 +1,8 @@ { "Logging": { "LogLevel": { - "Default": "Warning", + "Default": "Information", + "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/appsettings.Development.json b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/appsettings.Development.json index e203e9407e..dba68eb124 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/appsettings.Development.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/appsettings.Development.json @@ -1,9 +1,9 @@ { "Logging": { "LogLevel": { - "Default": "Debug", - "System": "Information", - "Microsoft": "Information" + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" } } } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/appsettings.Development.json b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/appsettings.Development.json index e203e9407e..dba68eb124 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/appsettings.Development.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/appsettings.Development.json @@ -1,9 +1,9 @@ { "Logging": { "LogLevel": { - "Default": "Debug", - "System": "Information", - "Microsoft": "Information" + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" } } } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/appsettings.json b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/appsettings.json index 7cb5ac8193..238d518d39 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/appsettings.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/appsettings.json @@ -1,7 +1,8 @@ { "Logging": { "LogLevel": { - "Default": "Warning", + "Default": "Information", + "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/Worker-CSharp/appsettings.Development.json b/src/ProjectTemplates/Web.ProjectTemplates/content/Worker-CSharp/appsettings.Development.json index e203e9407e..dba68eb124 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/Worker-CSharp/appsettings.Development.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/Worker-CSharp/appsettings.Development.json @@ -1,9 +1,9 @@ { "Logging": { "LogLevel": { - "Default": "Debug", - "System": "Information", - "Microsoft": "Information" + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" } } } diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/appsettings.Development.json b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/appsettings.Development.json index a5aba11187..c9719186fb 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/appsettings.Development.json +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/appsettings.Development.json @@ -1,9 +1,9 @@ { "Logging": { "LogLevel": { - "Default": "Debug", - "System": "Information", - "Microsoft": "Information" + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" } ////#if (IndividualLocalAuth) // }, diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/appsettings.json b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/appsettings.json index 4a96c3499d..8861bc9d6c 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/appsettings.json +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/appsettings.json @@ -10,7 +10,9 @@ ////#endif "Logging": { "LogLevel": { - "Default": "Warning" + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" } }, ////#if (IndividualLocalAuth) diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/appsettings.Development.json b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/appsettings.Development.json index a5aba11187..c9719186fb 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/appsettings.Development.json +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/appsettings.Development.json @@ -1,9 +1,9 @@ { "Logging": { "LogLevel": { - "Default": "Debug", - "System": "Information", - "Microsoft": "Information" + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" } ////#if (IndividualLocalAuth) // }, diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/appsettings.json b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/appsettings.json index 4a96c3499d..8861bc9d6c 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/appsettings.json +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/appsettings.json @@ -10,7 +10,9 @@ ////#endif "Logging": { "LogLevel": { - "Default": "Warning" + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" } }, ////#if (IndividualLocalAuth) diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/appsettings.Development.json b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/appsettings.Development.json index e203e9407e..dba68eb124 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/appsettings.Development.json +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/appsettings.Development.json @@ -1,9 +1,9 @@ { "Logging": { "LogLevel": { - "Default": "Debug", - "System": "Information", - "Microsoft": "Information" + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" } } } diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/appsettings.json b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/appsettings.json index def9159a7d..d48929ec8c 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/appsettings.json +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/appsettings.json @@ -1,7 +1,9 @@ { "Logging": { "LogLevel": { - "Default": "Warning" + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" } }, "AllowedHosts": "*" From a071e40e34c237cfc9a0a76ceebb1b615defad91 Mon Sep 17 00:00:00 2001 From: wtgodbe Date: Thu, 10 Oct 2019 13:41:07 -0700 Subject: [PATCH 081/111] Disable DebBuild when we're not building targetingPack --- src/Installers/Debian/Directory.Build.targets | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/Installers/Debian/Directory.Build.targets b/src/Installers/Debian/Directory.Build.targets index 68f3fed93e..571343b359 100644 --- a/src/Installers/Debian/Directory.Build.targets +++ b/src/Installers/Debian/Directory.Build.targets @@ -23,7 +23,7 @@ - + @@ -49,9 +49,7 @@ - + $(PackageId)_$(DebPackageVersion)-$(PackageRevision)_$(DebianPackageArch).deb From fcc20ace2a78c24f923ea185fad0cafabd2199ad Mon Sep 17 00:00:00 2001 From: Pranav K Date: Thu, 10 Oct 2019 13:52:02 -0700 Subject: [PATCH 082/111] Ensure EnableBuffering works with NewtonsoftJsonInputFormatter (#14870) Fixes https://github.com/aspnet/AspNetCore/issues/14396 --- .../Formatters/JsonInputFormatterTestBase.cs | 28 ++++++++++++++- ...XmlDataContractSerializerInputFormatter.cs | 7 ++-- .../src/XmlSerializerInputFormatter.cs | 7 ++-- ...ataContractSerializerInputFormatterTest.cs | 34 +++++++++++++++++++ .../test/XmlSerializerInputFormatterTest.cs | 34 +++++++++++++++++++ .../src/NewtonsoftJsonInputFormatter.cs | 7 ++-- 6 files changed, 110 insertions(+), 7 deletions(-) diff --git a/src/Mvc/Mvc.Core/test/Formatters/JsonInputFormatterTestBase.cs b/src/Mvc/Mvc.Core/test/Formatters/JsonInputFormatterTestBase.cs index fd76501888..11c8ce9baf 100644 --- a/src/Mvc/Mvc.Core/test/Formatters/JsonInputFormatterTestBase.cs +++ b/src/Mvc/Mvc.Core/test/Formatters/JsonInputFormatterTestBase.cs @@ -12,7 +12,9 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.ModelBinding; using Microsoft.Extensions.Logging.Testing; +using Microsoft.AspNetCore.WebUtilities; using Newtonsoft.Json; +using Moq; using Xunit; namespace Microsoft.AspNetCore.Mvc.Formatters @@ -462,6 +464,30 @@ namespace Microsoft.AspNetCore.Mvc.Formatters Assert.Single(formatterContext.ModelState["Person.Name"].Errors); } + [Fact] + public async Task ReadAsync_DoesNotDisposeBufferedReadStream() + { + // Arrange + var formatter = GetInputFormatter(); + + var content = "{\"name\": \"Test\"}"; + var contentBytes = Encoding.UTF8.GetBytes(content); + var httpContext = GetHttpContext(contentBytes); + var testBufferedReadStream = new Mock(httpContext.Request.Body, 1024) { CallBase = true }; + httpContext.Request.Body = testBufferedReadStream.Object; + + var formatterContext = CreateInputFormatterContext(typeof(ComplexModel), httpContext); + + // Act + var result = await formatter.ReadAsync(formatterContext); + + // Assert + var userModel = Assert.IsType(result.Model); + Assert.Equal("Test", userModel.Name); + + testBufferedReadStream.Verify(v => v.DisposeAsync(), Times.Never()); + } + internal abstract string JsonFormatter_EscapedKeys_Bracket_Expected { get; } internal abstract string JsonFormatter_EscapedKeys_Expected { get; } @@ -517,7 +543,7 @@ namespace Microsoft.AspNetCore.Mvc.Formatters protected sealed class ComplexPoco { public int Id { get; set; } - public Person Person{ get; set; } + public Person Person { get; set; } } protected sealed class Person diff --git a/src/Mvc/Mvc.Formatters.Xml/src/XmlDataContractSerializerInputFormatter.cs b/src/Mvc/Mvc.Formatters.Xml/src/XmlDataContractSerializerInputFormatter.cs index 362c8db997..e23a508053 100644 --- a/src/Mvc/Mvc.Formatters.Xml/src/XmlDataContractSerializerInputFormatter.cs +++ b/src/Mvc/Mvc.Formatters.Xml/src/XmlDataContractSerializerInputFormatter.cs @@ -118,6 +118,7 @@ namespace Microsoft.AspNetCore.Mvc.Formatters var request = context.HttpContext.Request; Stream readStream = new NonDisposableStream(request.Body); + var disposeReadStream = false; if (!request.Body.CanSeek && !_options.SuppressInputFormatterBuffering) { @@ -135,6 +136,8 @@ namespace Microsoft.AspNetCore.Mvc.Formatters await readStream.DrainAsync(CancellationToken.None); readStream.Seek(0L, SeekOrigin.Begin); + + disposeReadStream = true; } try @@ -162,9 +165,9 @@ namespace Microsoft.AspNetCore.Mvc.Formatters } finally { - if (readStream is FileBufferingReadStream fileBufferingReadStream) + if (disposeReadStream) { - await fileBufferingReadStream.DisposeAsync(); + await readStream.DisposeAsync(); } } } diff --git a/src/Mvc/Mvc.Formatters.Xml/src/XmlSerializerInputFormatter.cs b/src/Mvc/Mvc.Formatters.Xml/src/XmlSerializerInputFormatter.cs index 4debb6fe69..78e592370b 100644 --- a/src/Mvc/Mvc.Formatters.Xml/src/XmlSerializerInputFormatter.cs +++ b/src/Mvc/Mvc.Formatters.Xml/src/XmlSerializerInputFormatter.cs @@ -99,6 +99,8 @@ namespace Microsoft.AspNetCore.Mvc.Formatters var request = context.HttpContext.Request; Stream readStream = new NonDisposableStream(request.Body); + var disposeReadStream = false; + if (!request.Body.CanSeek && !_options.SuppressInputFormatterBuffering) { // XmlSerializer does synchronous reads. In order to avoid blocking on the stream, we asynchronously @@ -115,6 +117,7 @@ namespace Microsoft.AspNetCore.Mvc.Formatters await readStream.DrainAsync(CancellationToken.None); readStream.Seek(0L, SeekOrigin.Begin); + disposeReadStream = true; } try @@ -155,9 +158,9 @@ namespace Microsoft.AspNetCore.Mvc.Formatters } finally { - if (readStream is FileBufferingReadStream fileBufferingReadStream) + if (disposeReadStream) { - await fileBufferingReadStream.DisposeAsync(); + await readStream.DisposeAsync(); } } } diff --git a/src/Mvc/Mvc.Formatters.Xml/test/XmlDataContractSerializerInputFormatterTest.cs b/src/Mvc/Mvc.Formatters.Xml/test/XmlDataContractSerializerInputFormatterTest.cs index 50ddb255a4..aff89dfc78 100644 --- a/src/Mvc/Mvc.Formatters.Xml/test/XmlDataContractSerializerInputFormatterTest.cs +++ b/src/Mvc/Mvc.Formatters.Xml/test/XmlDataContractSerializerInputFormatterTest.cs @@ -12,6 +12,7 @@ using System.Xml; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http.Features; using Microsoft.AspNetCore.Mvc.ModelBinding; +using Microsoft.AspNetCore.WebUtilities; using Moq; using Xunit; @@ -166,6 +167,39 @@ namespace Microsoft.AspNetCore.Mvc.Formatters.Xml Assert.Equal(expectedString, model.sampleString); } + [Fact] + public async Task ReadAsync_DoesNotDisposeBufferedStreamIfItDidNotCreateIt() + { + // Arrange + var expectedInt = 10; + var expectedString = "TestString"; + + var input = "" + + "" + expectedInt + "" + + "" + expectedString + ""; + + var formatter = new XmlDataContractSerializerInputFormatter(new MvcOptions()); + + var contentBytes = Encoding.UTF8.GetBytes(input); + var httpContext = new DefaultHttpContext(); + var testBufferedReadStream = new Mock(new MemoryStream(contentBytes), 1024) { CallBase = true }; + httpContext.Request.Body = testBufferedReadStream.Object; + var context = GetInputFormatterContext(httpContext, typeof(TestLevelOne)); + + // Act + var result = await formatter.ReadAsync(context); + + // Assert + Assert.NotNull(result); + Assert.False(result.HasError); + var model = Assert.IsType(result.Model); + + Assert.Equal(expectedInt, model.SampleInt); + Assert.Equal(expectedString, model.sampleString); + + testBufferedReadStream.Verify(v => v.DisposeAsync(), Times.Never()); + } + [Fact] public async Task SuppressInputFormatterBufferingSetToTrue_DoesNotBufferRequestBody() { diff --git a/src/Mvc/Mvc.Formatters.Xml/test/XmlSerializerInputFormatterTest.cs b/src/Mvc/Mvc.Formatters.Xml/test/XmlSerializerInputFormatterTest.cs index 27b6fd72f9..366e1a8dbc 100644 --- a/src/Mvc/Mvc.Formatters.Xml/test/XmlSerializerInputFormatterTest.cs +++ b/src/Mvc/Mvc.Formatters.Xml/test/XmlSerializerInputFormatterTest.cs @@ -13,6 +13,7 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http.Features; using Microsoft.AspNetCore.Mvc.ModelBinding; using Microsoft.AspNetCore.Testing; +using Microsoft.AspNetCore.WebUtilities; using Moq; using Xunit; @@ -622,6 +623,39 @@ namespace Microsoft.AspNetCore.Mvc.Formatters.Xml Assert.Equal(XmlConvert.ToDateTime(expectedDateTime, XmlDateTimeSerializationMode.Utc), model.SampleDate); } + [Fact] + public async Task ReadAsync_DoesNotDisposeBufferedStreamIfItDidNotCreateIt() + { + // Arrange + var expectedInt = 10; + var expectedString = "TestString"; + + var input = "" + + "" + expectedInt + "" + + "" + expectedString + ""; + + var formatter = new XmlSerializerInputFormatter(new MvcOptions()); + + var contentBytes = Encoding.UTF8.GetBytes(input); + var httpContext = new DefaultHttpContext(); + var testBufferedReadStream = new Mock(new MemoryStream(contentBytes), 1024) { CallBase = true }; + httpContext.Request.Body = testBufferedReadStream.Object; + var context = GetInputFormatterContext(httpContext, typeof(TestLevelOne)); + + // Act + var result = await formatter.ReadAsync(context); + + // Assert + Assert.NotNull(result); + Assert.False(result.HasError); + var model = Assert.IsType(result.Model); + + Assert.Equal(expectedInt, model.SampleInt); + Assert.Equal(expectedString, model.sampleString); + + testBufferedReadStream.Verify(v => v.DisposeAsync(), Times.Never()); + } + private InputFormatterContext GetInputFormatterContext(byte[] contentBytes, Type modelType) { var httpContext = GetHttpContext(contentBytes); diff --git a/src/Mvc/Mvc.NewtonsoftJson/src/NewtonsoftJsonInputFormatter.cs b/src/Mvc/Mvc.NewtonsoftJson/src/NewtonsoftJsonInputFormatter.cs index 8975f9f426..1d30afcbac 100644 --- a/src/Mvc/Mvc.NewtonsoftJson/src/NewtonsoftJsonInputFormatter.cs +++ b/src/Mvc/Mvc.NewtonsoftJson/src/NewtonsoftJsonInputFormatter.cs @@ -129,6 +129,7 @@ namespace Microsoft.AspNetCore.Mvc.Formatters var suppressInputFormatterBuffering = _options.SuppressInputFormatterBuffering; var readStream = request.Body; + var disposeReadStream = false; if (!request.Body.CanSeek && !suppressInputFormatterBuffering) { // JSON.Net does synchronous reads. In order to avoid blocking on the stream, we asynchronously @@ -145,6 +146,8 @@ namespace Microsoft.AspNetCore.Mvc.Formatters await readStream.DrainAsync(CancellationToken.None); readStream.Seek(0L, SeekOrigin.Begin); + + disposeReadStream = true; } var successful = true; @@ -170,9 +173,9 @@ namespace Microsoft.AspNetCore.Mvc.Formatters jsonSerializer.Error -= ErrorHandler; ReleaseJsonSerializer(jsonSerializer); - if (readStream is FileBufferingReadStream fileBufferingReadStream) + if (disposeReadStream) { - await fileBufferingReadStream.DisposeAsync(); + await readStream.DisposeAsync(); } } } From 8c39137944717cc4118efe9ee251e86cd16083cd Mon Sep 17 00:00:00 2001 From: Pranav K Date: Thu, 10 Oct 2019 14:14:43 -0700 Subject: [PATCH 083/111] Port Throw when UseAuthorization is incorrectly configured (#14893) * Port Throw when UseAuthorization is incorrectly configured * fixup --- .../test/testassets/TestServer/Startup.cs | 24 +- src/Http/HttpAbstractions.sln | 30 +++ src/Http/Routing/src/EndpointMiddleware.cs | 9 +- .../EndpointRoutingIntegrationTest.cs | 240 ++++++++++++++++++ ....AspNetCore.Routing.FunctionalTests.csproj | 2 + .../test/UnitTests/EndpointMiddlewareTest.cs | 6 +- .../CORS/src/Infrastructure/CorsMiddleware.cs | 25 +- .../test/UnitTests/CorsMiddlewareTests.cs | 29 ++- .../Policy/src/AuthorizationMiddleware.cs | 14 +- 9 files changed, 341 insertions(+), 38 deletions(-) create mode 100644 src/Http/Routing/test/FunctionalTests/EndpointRoutingIntegrationTest.cs diff --git a/src/Components/test/testassets/TestServer/Startup.cs b/src/Components/test/testassets/TestServer/Startup.cs index 4012408864..1e608b39f3 100644 --- a/src/Components/test/testassets/TestServer/Startup.cs +++ b/src/Components/test/testassets/TestServer/Startup.cs @@ -24,7 +24,15 @@ namespace TestServer services.AddMvc().AddNewtonsoftJson(); services.AddCors(options => { - options.AddPolicy("AllowAll", _ => { /* Controlled below */ }); + // It's not enough just to return "Access-Control-Allow-Origin: *", because + // browsers don't allow wildcards in conjunction with credentials. So we must + // specify explicitly which origin we want to allow. + options.AddPolicy("AllowAll", policy => + policy.SetIsOriginAllowed(host => host.StartsWith("http://localhost:") || host.StartsWith("http://127.0.0.1:")) + .AllowAnyHeader() + .WithExposedHeaders("MyCustomHeader") + .AllowAnyMethod() + .AllowCredentials()); }); services.AddServerSideBlazor() .AddCircuitOptions(o => @@ -49,18 +57,6 @@ namespace TestServer app.UseDeveloperExceptionPage(); } - // It's not enough just to return "Access-Control-Allow-Origin: *", because - // browsers don't allow wildcards in conjunction with credentials. So we must - // specify explicitly which origin we want to allow. - app.UseCors(policy => - { - policy.SetIsOriginAllowed(host => host.StartsWith("http://localhost:") || host.StartsWith("http://127.0.0.1:")) - .AllowAnyHeader() - .WithExposedHeaders("MyCustomHeader") - .AllowAnyMethod() - .AllowCredentials(); - }); - app.UseAuthentication(); // Mount the server-side Blazor app on /subdir @@ -119,6 +115,8 @@ namespace TestServer }); app.UseRouting(); + + app.UseCors(); app.UseEndpoints(endpoints => { diff --git a/src/Http/HttpAbstractions.sln b/src/Http/HttpAbstractions.sln index 10cac06923..e2595c4f40 100644 --- a/src/Http/HttpAbstractions.sln +++ b/src/Http/HttpAbstractions.sln @@ -113,6 +113,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.WebUtilities.Performance", "WebUtilities\perf\Microsoft.AspNetCore.WebUtilities.Performance\Microsoft.AspNetCore.WebUtilities.Performance.csproj", "{21AC56E7-4E77-4B0E-B63E-C8E836E4D14E}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Authorization.Policy", "..\Security\Authorization\Policy\src\Microsoft.AspNetCore.Authorization.Policy.csproj", "{8BCAA9EC-0ACD-435C-BF8A-8C843499FF7B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Cors", "..\Middleware\CORS\src\Microsoft.AspNetCore.Cors.csproj", "{09168958-FD5B-4D25-8FBF-75E2C80D903B}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -603,6 +607,30 @@ Global {21AC56E7-4E77-4B0E-B63E-C8E836E4D14E}.Release|x64.Build.0 = Release|Any CPU {21AC56E7-4E77-4B0E-B63E-C8E836E4D14E}.Release|x86.ActiveCfg = Release|Any CPU {21AC56E7-4E77-4B0E-B63E-C8E836E4D14E}.Release|x86.Build.0 = Release|Any CPU + {8BCAA9EC-0ACD-435C-BF8A-8C843499FF7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8BCAA9EC-0ACD-435C-BF8A-8C843499FF7B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8BCAA9EC-0ACD-435C-BF8A-8C843499FF7B}.Debug|x64.ActiveCfg = Debug|Any CPU + {8BCAA9EC-0ACD-435C-BF8A-8C843499FF7B}.Debug|x64.Build.0 = Debug|Any CPU + {8BCAA9EC-0ACD-435C-BF8A-8C843499FF7B}.Debug|x86.ActiveCfg = Debug|Any CPU + {8BCAA9EC-0ACD-435C-BF8A-8C843499FF7B}.Debug|x86.Build.0 = Debug|Any CPU + {8BCAA9EC-0ACD-435C-BF8A-8C843499FF7B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8BCAA9EC-0ACD-435C-BF8A-8C843499FF7B}.Release|Any CPU.Build.0 = Release|Any CPU + {8BCAA9EC-0ACD-435C-BF8A-8C843499FF7B}.Release|x64.ActiveCfg = Release|Any CPU + {8BCAA9EC-0ACD-435C-BF8A-8C843499FF7B}.Release|x64.Build.0 = Release|Any CPU + {8BCAA9EC-0ACD-435C-BF8A-8C843499FF7B}.Release|x86.ActiveCfg = Release|Any CPU + {8BCAA9EC-0ACD-435C-BF8A-8C843499FF7B}.Release|x86.Build.0 = Release|Any CPU + {09168958-FD5B-4D25-8FBF-75E2C80D903B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {09168958-FD5B-4D25-8FBF-75E2C80D903B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {09168958-FD5B-4D25-8FBF-75E2C80D903B}.Debug|x64.ActiveCfg = Debug|Any CPU + {09168958-FD5B-4D25-8FBF-75E2C80D903B}.Debug|x64.Build.0 = Debug|Any CPU + {09168958-FD5B-4D25-8FBF-75E2C80D903B}.Debug|x86.ActiveCfg = Debug|Any CPU + {09168958-FD5B-4D25-8FBF-75E2C80D903B}.Debug|x86.Build.0 = Debug|Any CPU + {09168958-FD5B-4D25-8FBF-75E2C80D903B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {09168958-FD5B-4D25-8FBF-75E2C80D903B}.Release|Any CPU.Build.0 = Release|Any CPU + {09168958-FD5B-4D25-8FBF-75E2C80D903B}.Release|x64.ActiveCfg = Release|Any CPU + {09168958-FD5B-4D25-8FBF-75E2C80D903B}.Release|x64.Build.0 = Release|Any CPU + {09168958-FD5B-4D25-8FBF-75E2C80D903B}.Release|x86.ActiveCfg = Release|Any CPU + {09168958-FD5B-4D25-8FBF-75E2C80D903B}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -651,6 +679,8 @@ Global {611794D2-EF3A-422A-A077-23E61C7ADE49} = {793FFE24-138A-4C3D-81AB-18D625E36230} {1062FCDE-E145-40EC-B175-FDBCAA0C59A0} = {793FFE24-138A-4C3D-81AB-18D625E36230} {21AC56E7-4E77-4B0E-B63E-C8E836E4D14E} = {80A090C8-ED02-4DE3-875A-30DCCDBD84BA} + {8BCAA9EC-0ACD-435C-BF8A-8C843499FF7B} = {793FFE24-138A-4C3D-81AB-18D625E36230} + {09168958-FD5B-4D25-8FBF-75E2C80D903B} = {793FFE24-138A-4C3D-81AB-18D625E36230} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {85B5E151-2E9D-419C-83DD-0DDCF446C83A} diff --git a/src/Http/Routing/src/EndpointMiddleware.cs b/src/Http/Routing/src/EndpointMiddleware.cs index a2101c40cd..9b06b673ad 100644 --- a/src/Http/Routing/src/EndpointMiddleware.cs +++ b/src/Http/Routing/src/EndpointMiddleware.cs @@ -6,7 +6,6 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Cors.Infrastructure; using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Http.Features; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; @@ -14,8 +13,8 @@ namespace Microsoft.AspNetCore.Routing { internal sealed class EndpointMiddleware { - internal const string AuthorizationMiddlewareInvokedKey = "__AuthorizationMiddlewareInvoked"; - internal const string CorsMiddlewareInvokedKey = "__CorsMiddlewareInvoked"; + internal const string AuthorizationMiddlewareInvokedKey = "__AuthorizationMiddlewareWithEndpointInvoked"; + internal const string CorsMiddlewareInvokedKey = "__CorsMiddlewareWithEndpointInvoked"; private readonly ILogger _logger; private readonly RequestDelegate _next; @@ -91,7 +90,7 @@ namespace Microsoft.AspNetCore.Routing throw new InvalidOperationException($"Endpoint {endpoint.DisplayName} contains authorization metadata, " + "but a middleware was not found that supports authorization." + Environment.NewLine + - "Configure your application startup by adding app.UseAuthorization() inside the call to Configure(..) in the application startup code."); + "Configure your application startup by adding app.UseAuthorization() inside the call to Configure(..) in the application startup code. The call to app.UseAuthorization() must appear between app.UseRouting() and app.UseEndpoints(...)."); } private static void ThrowMissingCorsMiddlewareException(Endpoint endpoint) @@ -99,7 +98,7 @@ namespace Microsoft.AspNetCore.Routing throw new InvalidOperationException($"Endpoint {endpoint.DisplayName} contains CORS metadata, " + "but a middleware was not found that supports CORS." + Environment.NewLine + - "Configure your application startup by adding app.UseCors() inside the call to Configure(..) in the application startup code."); + "Configure your application startup by adding app.UseCors() inside the call to Configure(..) in the application startup code. The call to app.UseAuthorization() must appear between app.UseRouting() and app.UseEndpoints(...)."); } private static class Log diff --git a/src/Http/Routing/test/FunctionalTests/EndpointRoutingIntegrationTest.cs b/src/Http/Routing/test/FunctionalTests/EndpointRoutingIntegrationTest.cs new file mode 100644 index 0000000000..4b33dcb669 --- /dev/null +++ b/src/Http/Routing/test/FunctionalTests/EndpointRoutingIntegrationTest.cs @@ -0,0 +1,240 @@ +// 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.Net; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.TestHost; +using Microsoft.Extensions.DependencyInjection; +using Xunit; + +namespace Microsoft.AspNetCore.Routing.FunctionalTests +{ + public class EndpointRoutingIntegrationTest + { + private static readonly RequestDelegate TestDelegate = async context => await Task.Yield(); + private static readonly string AuthErrorMessage = "Endpoint / contains authorization metadata, but a middleware was not found that supports authorization." + + Environment.NewLine + + "Configure your application startup by adding app.UseAuthorization() inside the call to Configure(..) in the application startup code. " + + "The call to app.UseAuthorization() must appear between app.UseRouting() and app.UseEndpoints(...)."; + + private static readonly string CORSErrorMessage = "Endpoint / contains CORS metadata, but a middleware was not found that supports CORS." + + Environment.NewLine + + "Configure your application startup by adding app.UseCors() inside the call to Configure(..) in the application startup code. " + + "The call to app.UseAuthorization() must appear between app.UseRouting() and app.UseEndpoints(...)."; + + [Fact] + public async Task AuthorizationMiddleware_WhenNoAuthMetadataIsConfigured() + { + // Arrange + var builder = new WebHostBuilder(); + builder.Configure(app => + { + app.UseRouting(); + app.UseAuthorization(); + app.UseEndpoints(b => b.Map("/", TestDelegate)); + }) + .ConfigureServices(services => + { + services.AddAuthorization(); + services.AddRouting(); + }); + + using var server = new TestServer(builder); + + var response = await server.CreateRequest("/").SendAsync("GET"); + + response.EnsureSuccessStatusCode(); + } + + [Fact] + public async Task AuthorizationMiddleware_WhenEndpointIsNotFound() + { + // Arrange + var builder = new WebHostBuilder(); + builder.Configure(app => + { + app.UseRouting(); + app.UseAuthorization(); + app.UseEndpoints(b => b.Map("/", TestDelegate)); + }) + .ConfigureServices(services => + { + services.AddAuthorization(); + services.AddRouting(); + }); + + using var server = new TestServer(builder); + + var response = await server.CreateRequest("/not-found").SendAsync("GET"); + + Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); + } + + [Fact] + public async Task AuthorizationMiddleware_WithAuthorizedEndpoint() + { + // Arrange + var builder = new WebHostBuilder(); + builder.Configure(app => + { + app.UseRouting(); + app.UseAuthorization(); + app.UseEndpoints(b => b.Map("/", TestDelegate).RequireAuthorization()); + }) + .ConfigureServices(services => + { + services.AddAuthorization(options => options.DefaultPolicy = new AuthorizationPolicyBuilder().RequireAssertion(_ => true).Build()); + services.AddRouting(); + }); + + using var server = new TestServer(builder); + + var response = await server.CreateRequest("/").SendAsync("GET"); + + response.EnsureSuccessStatusCode(); + } + + [Fact] + public async Task AuthorizationMiddleware_NotConfigured_Throws() + { + // Arrange + var builder = new WebHostBuilder(); + builder.Configure(app => + { + app.UseRouting(); + app.UseEndpoints(b => b.Map("/", TestDelegate).RequireAuthorization()); + + }) + .ConfigureServices(services => + { + services.AddAuthorization(options => options.DefaultPolicy = new AuthorizationPolicyBuilder().RequireAssertion(_ => true).Build()); + services.AddRouting(); + }); + + using var server = new TestServer(builder); + + var ex = await Assert.ThrowsAsync(() => server.CreateRequest("/").SendAsync("GET")); + Assert.Equal(AuthErrorMessage, ex.Message); + } + + [Fact] + public async Task AuthorizationMiddleware_NotConfigured_WhenEndpointIsNotFound() + { + // Arrange + var builder = new WebHostBuilder(); + builder.Configure(app => + { + app.UseRouting(); + app.UseEndpoints(b => b.Map("/", TestDelegate).RequireAuthorization()); + }) + .ConfigureServices(services => + { + services.AddRouting(); + }); + + using var server = new TestServer(builder); + + var response = await server.CreateRequest("/not-found").SendAsync("GET"); + + Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); + } + + [Fact] + public async Task AuthorizationMiddleware_ConfiguredBeforeRouting_Throws() + { + // Arrange + var builder = new WebHostBuilder(); + builder.Configure(app => + { + app.UseAuthorization(); + app.UseRouting(); + app.UseEndpoints(b => b.Map("/", TestDelegate).RequireAuthorization()); + }) + .ConfigureServices(services => + { + services.AddAuthorization(options => options.DefaultPolicy = new AuthorizationPolicyBuilder().RequireAssertion(_ => true).Build()); + services.AddRouting(); + }); + + using var server = new TestServer(builder); + + var ex = await Assert.ThrowsAsync(() => server.CreateRequest("/").SendAsync("GET")); + Assert.Equal(AuthErrorMessage, ex.Message); + } + + [Fact] + public async Task AuthorizationMiddleware_ConfiguredAfterRouting_Throws() + { + // Arrange + var builder = new WebHostBuilder(); + builder.Configure(app => + { + app.UseRouting(); + app.UseEndpoints(b => b.Map("/", TestDelegate).RequireAuthorization()); + app.UseAuthorization(); + }) + .ConfigureServices(services => + { + services.AddAuthorization(options => options.DefaultPolicy = new AuthorizationPolicyBuilder().RequireAssertion(_ => true).Build()); + services.AddRouting(); + }); + + using var server = new TestServer(builder); + + var ex = await Assert.ThrowsAsync(() => server.CreateRequest("/").SendAsync("GET")); + Assert.Equal(AuthErrorMessage, ex.Message); + } + + [Fact] + public async Task CorsMiddleware_WithCorsEndpoint() + { + // Arrange + var builder = new WebHostBuilder(); + builder.Configure(app => + { + app.UseRouting(); + app.UseCors(); + app.UseEndpoints(b => b.Map("/", TestDelegate).RequireCors(policy => policy.AllowAnyOrigin())); + }) + .ConfigureServices(services => + { + services.AddCors(); + services.AddRouting(); + }); + + using var server = new TestServer(builder); + + var response = await server.CreateRequest("/").SendAsync("PUT"); + + response.EnsureSuccessStatusCode(); + } + + [Fact] + public async Task CorsMiddleware_ConfiguredBeforeRouting_Throws() + { + // Arrange + var builder = new WebHostBuilder(); + builder.Configure(app => + { + app.UseCors(); + app.UseRouting(); + app.UseEndpoints(b => b.Map("/", TestDelegate).RequireCors(policy => policy.AllowAnyOrigin())); + }) + .ConfigureServices(services => + { + services.AddCors(); + services.AddRouting(); + }); + + using var server = new TestServer(builder); + + var ex = await Assert.ThrowsAsync(() => server.CreateRequest("/").SendAsync("GET")); + Assert.Equal(CORSErrorMessage, ex.Message); + } + } +} \ No newline at end of file diff --git a/src/Http/Routing/test/FunctionalTests/Microsoft.AspNetCore.Routing.FunctionalTests.csproj b/src/Http/Routing/test/FunctionalTests/Microsoft.AspNetCore.Routing.FunctionalTests.csproj index c281194c0c..e0f8b35388 100644 --- a/src/Http/Routing/test/FunctionalTests/Microsoft.AspNetCore.Routing.FunctionalTests.csproj +++ b/src/Http/Routing/test/FunctionalTests/Microsoft.AspNetCore.Routing.FunctionalTests.csproj @@ -10,6 +10,8 @@ + + diff --git a/src/Http/Routing/test/UnitTests/EndpointMiddlewareTest.cs b/src/Http/Routing/test/UnitTests/EndpointMiddlewareTest.cs index 1467425222..7a638e7e8c 100644 --- a/src/Http/Routing/test/UnitTests/EndpointMiddlewareTest.cs +++ b/src/Http/Routing/test/UnitTests/EndpointMiddlewareTest.cs @@ -101,7 +101,8 @@ namespace Microsoft.AspNetCore.Routing // Arrange var expected = "Endpoint Test contains authorization metadata, but a middleware was not found that supports authorization." + Environment.NewLine + - "Configure your application startup by adding app.UseAuthorization() inside the call to Configure(..) in the application startup code."; + "Configure your application startup by adding app.UseAuthorization() inside the call to Configure(..) in the application startup code. " + + "The call to app.UseAuthorization() must appear between app.UseRouting() and app.UseEndpoints(...)."; var httpContext = new DefaultHttpContext { RequestServices = new ServiceProvider() @@ -197,7 +198,8 @@ namespace Microsoft.AspNetCore.Routing // Arrange var expected = "Endpoint Test contains CORS metadata, but a middleware was not found that supports CORS." + Environment.NewLine + - "Configure your application startup by adding app.UseCors() inside the call to Configure(..) in the application startup code."; + "Configure your application startup by adding app.UseCors() inside the call to Configure(..) in the application startup code. " + + "The call to app.UseAuthorization() must appear between app.UseRouting() and app.UseEndpoints(...)."; var httpContext = new DefaultHttpContext { RequestServices = new ServiceProvider() diff --git a/src/Middleware/CORS/src/Infrastructure/CorsMiddleware.cs b/src/Middleware/CORS/src/Infrastructure/CorsMiddleware.cs index ed3f743dfc..02e5c7a0d1 100644 --- a/src/Middleware/CORS/src/Infrastructure/CorsMiddleware.cs +++ b/src/Middleware/CORS/src/Infrastructure/CorsMiddleware.cs @@ -14,8 +14,8 @@ namespace Microsoft.AspNetCore.Cors.Infrastructure public class CorsMiddleware { // Property key is used by other systems, e.g. MVC, to check if CORS middleware has run - private const string CorsMiddlewareInvokedKey = "__CorsMiddlewareInvoked"; - private static readonly object CorsMiddlewareInvokedValue = new object(); + private const string CorsMiddlewareWithEndpointInvokedKey = "__CorsMiddlewareWithEndpointInvoked"; + private static readonly object CorsMiddlewareWithEndpointInvokedValue = new object(); private readonly Func OnResponseStartingDelegate = OnResponseStarting; private readonly RequestDelegate _next; @@ -116,14 +116,6 @@ namespace Microsoft.AspNetCore.Cors.Infrastructure /// public Task Invoke(HttpContext context, ICorsPolicyProvider corsPolicyProvider) { - // Flag to indicate to other systems, that CORS middleware was run for this request - context.Items[CorsMiddlewareInvokedKey] = CorsMiddlewareInvokedValue; - - if (!context.Request.Headers.ContainsKey(CorsConstants.Origin)) - { - return _next(context); - } - // CORS policy resolution rules: // // 1. If there is an endpoint with IDisableCorsAttribute then CORS is not run @@ -131,9 +123,20 @@ namespace Microsoft.AspNetCore.Cors.Infrastructure // there is an endpoint with IEnableCorsAttribute that has a policy name then // fetch policy by name, prioritizing it above policy on middleware // 3. If there is no policy on middleware then use name on middleware - var endpoint = context.GetEndpoint(); + if (endpoint != null) + { + // EndpointRoutingMiddleware uses this flag to check if the CORS middleware processed CORS metadata on the endpoint. + // The CORS middleware can only make this claim if it observes an actual endpoint. + context.Items[CorsMiddlewareWithEndpointInvokedKey] = CorsMiddlewareWithEndpointInvokedValue; + } + + if (!context.Request.Headers.ContainsKey(CorsConstants.Origin)) + { + return _next(context); + } + // Get the most significant CORS metadata for the endpoint // For backwards compatibility reasons this is then downcast to Enable/Disable metadata var corsMetadata = endpoint?.Metadata.GetMetadata(); diff --git a/src/Middleware/CORS/test/UnitTests/CorsMiddlewareTests.cs b/src/Middleware/CORS/test/UnitTests/CorsMiddlewareTests.cs index ebd44aa2d0..4b53a43a5b 100644 --- a/src/Middleware/CORS/test/UnitTests/CorsMiddlewareTests.cs +++ b/src/Middleware/CORS/test/UnitTests/CorsMiddlewareTests.cs @@ -918,7 +918,7 @@ namespace Microsoft.AspNetCore.Cors.Infrastructure await middleware.Invoke(httpContext, mockProvider); // Assert - Assert.Contains(httpContext.Items, item => string.Equals(item.Key as string, "__CorsMiddlewareInvoked")); + Assert.Contains(httpContext.Items, item => string.Equals(item.Key as string, "__CorsMiddlewareWithEndpointInvoked")); } [Fact] @@ -936,12 +936,37 @@ namespace Microsoft.AspNetCore.Cors.Infrastructure "DefaultPolicyName"); var httpContext = new DefaultHttpContext(); + httpContext.SetEndpoint(new Endpoint(c => Task.CompletedTask, new EndpointMetadataCollection(new EnableCorsAttribute("MetadataPolicyName"), new DisableCorsAttribute()), "Test endpoint")); // Act await middleware.Invoke(httpContext, mockProvider); // Assert - Assert.Contains(httpContext.Items, item => string.Equals(item.Key as string, "__CorsMiddlewareInvoked")); + Assert.Contains(httpContext.Items, item => string.Equals(item.Key as string, "__CorsMiddlewareWithEndpointInvoked")); + } + + [Fact] + public async Task Invoke_WithoutEndpoint_InvokeFlagSet() + { + // Arrange + var corsService = Mock.Of(); + var mockProvider = Mock.Of(); + var loggerFactory = NullLoggerFactory.Instance; + + var middleware = new CorsMiddleware( + Mock.Of(), + corsService, + loggerFactory, + "DefaultPolicyName"); + + var httpContext = new DefaultHttpContext(); + httpContext.Request.Headers.Add(CorsConstants.Origin, new[] { "http://example.com" }); + + // Act + await middleware.Invoke(httpContext, mockProvider); + + // Assert + Assert.DoesNotContain(httpContext.Items, item => string.Equals(item.Key as string, "__CorsMiddlewareWithEndpointInvoked")); } } } diff --git a/src/Security/Authorization/Policy/src/AuthorizationMiddleware.cs b/src/Security/Authorization/Policy/src/AuthorizationMiddleware.cs index 184209557a..686374d829 100644 --- a/src/Security/Authorization/Policy/src/AuthorizationMiddleware.cs +++ b/src/Security/Authorization/Policy/src/AuthorizationMiddleware.cs @@ -13,9 +13,9 @@ namespace Microsoft.AspNetCore.Authorization { public class AuthorizationMiddleware { - // Property key is used by other systems, e.g. MVC, to check if authorization middleware has run - private const string AuthorizationMiddlewareInvokedKey = "__AuthorizationMiddlewareInvoked"; - private static readonly object AuthorizationMiddlewareInvokedValue = new object(); + // Property key is used by Endpoint routing to determine if Authorization has run + private const string AuthorizationMiddlewareInvokedWithEndpointKey = "__AuthorizationMiddlewareWithEndpointInvoked"; + private static readonly object AuthorizationMiddlewareWithEndpointInvokedValue = new object(); private readonly RequestDelegate _next; private readonly IAuthorizationPolicyProvider _policyProvider; @@ -35,8 +35,12 @@ namespace Microsoft.AspNetCore.Authorization var endpoint = context.GetEndpoint(); - // Flag to indicate to other systems, e.g. MVC, that authorization middleware was run for this request - context.Items[AuthorizationMiddlewareInvokedKey] = AuthorizationMiddlewareInvokedValue; + if (endpoint != null) + { + // EndpointRoutingMiddleware uses this flag to check if the Authorization middleware processed auth metadata on the endpoint. + // The Authorization middleware can only make this claim if it observes an actual endpoint. + context.Items[AuthorizationMiddlewareInvokedWithEndpointKey] = AuthorizationMiddlewareWithEndpointInvokedValue; + } // IMPORTANT: Changes to authorization logic should be mirrored in MVC's AuthorizeFilter var authorizeData = endpoint?.Metadata.GetOrderedMetadata() ?? Array.Empty(); From d7faa8fc486687dc4116578bf74f3535161cb1fa Mon Sep 17 00:00:00 2001 From: wtgodbe Date: Thu, 10 Oct 2019 14:17:15 -0700 Subject: [PATCH 084/111] Disable RPMBuild if not building RefPack, fix template test RefPack version --- src/Installers/Rpm/Directory.Build.targets | 2 +- .../test/Infrastructure/GenerateTestProps.targets | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/Installers/Rpm/Directory.Build.targets b/src/Installers/Rpm/Directory.Build.targets index 9a4eb927b0..3dc3ab8202 100644 --- a/src/Installers/Rpm/Directory.Build.targets +++ b/src/Installers/Rpm/Directory.Build.targets @@ -32,7 +32,7 @@ - + DATE=$([System.DateTime]::UtcNow.ToString(ddd MMM dd yyyy)) diff --git a/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets b/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets index 4ce37d3f61..51e7e7f883 100644 --- a/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets +++ b/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets @@ -4,12 +4,20 @@ DependsOnTargets="PrepareForTest" Condition="$(DesignTimeBuild) != true"> + + SkipNonexistentProjects="false" + Condition="'$(IsTargetingPackBuilding)' != 'false'"> + + + @(_TargetingPackVersionInfo->'%(PackageVersion)' + $(AspNetCoreBaselineVersion) + + '%(PackageVersion)'); + MicrosoftAspNetCoreAppRefPackageVersion=$(MicrosoftAspNetCoreAppRefPackageVersion); MicrosoftAspNetCoreAppRuntimePackageVersion=@(_RuntimePackageVersionInfo->'%(PackageVersion)'); SupportedRuntimeIdentifiers=$(SupportedRuntimeIdentifiers); From 62a62fae7dffa007aba64acd78696acd416854ff Mon Sep 17 00:00:00 2001 From: wtgodbe Date: Thu, 10 Oct 2019 14:43:16 -0700 Subject: [PATCH 085/111] Fix item metadata evaluation --- .../test/Infrastructure/GenerateTestProps.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets b/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets index 51e7e7f883..b9b5903ff2 100644 --- a/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets +++ b/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets @@ -14,7 +14,7 @@ - @(_TargetingPackVersionInfo->'%(PackageVersion)' + @(TargetingPackVersionInfo.PackageVersion) $(AspNetCoreBaselineVersion) From 08eafcddbd51c7b8b381e14bd519b4713767e34e Mon Sep 17 00:00:00 2001 From: Javier Calvarro Nelson Date: Fri, 11 Oct 2019 18:38:11 +0200 Subject: [PATCH 086/111] [Templating][Fixes #14920] Exclude app.db from publish to single file (#14921) Otherwise the published application fails when the code tries to access the missing database. --- .../Web.ProjectTemplates/BlazorServerWeb-CSharp.csproj.in | 2 +- .../Web.ProjectTemplates/RazorPagesWeb-CSharp.csproj.in | 2 +- .../Web.ProjectTemplates/StarterWeb-CSharp.csproj.in | 2 +- .../Web.Spa.ProjectTemplates/Angular-CSharp.csproj.in | 2 +- .../Web.Spa.ProjectTemplates/React-CSharp.csproj.in | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ProjectTemplates/Web.ProjectTemplates/BlazorServerWeb-CSharp.csproj.in b/src/ProjectTemplates/Web.ProjectTemplates/BlazorServerWeb-CSharp.csproj.in index b4020a5d98..868f60d4af 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/BlazorServerWeb-CSharp.csproj.in +++ b/src/ProjectTemplates/Web.ProjectTemplates/BlazorServerWeb-CSharp.csproj.in @@ -11,7 +11,7 @@ - + diff --git a/src/ProjectTemplates/Web.ProjectTemplates/RazorPagesWeb-CSharp.csproj.in b/src/ProjectTemplates/Web.ProjectTemplates/RazorPagesWeb-CSharp.csproj.in index b23eae2881..ab090ad09e 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/RazorPagesWeb-CSharp.csproj.in +++ b/src/ProjectTemplates/Web.ProjectTemplates/RazorPagesWeb-CSharp.csproj.in @@ -13,7 +13,7 @@ - + diff --git a/src/ProjectTemplates/Web.ProjectTemplates/StarterWeb-CSharp.csproj.in b/src/ProjectTemplates/Web.ProjectTemplates/StarterWeb-CSharp.csproj.in index a33301f1a2..70d65ede37 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/StarterWeb-CSharp.csproj.in +++ b/src/ProjectTemplates/Web.ProjectTemplates/StarterWeb-CSharp.csproj.in @@ -13,7 +13,7 @@ - + diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/Angular-CSharp.csproj.in b/src/ProjectTemplates/Web.Spa.ProjectTemplates/Angular-CSharp.csproj.in index 621db9e5b6..950d707d42 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/Angular-CSharp.csproj.in +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/Angular-CSharp.csproj.in @@ -27,7 +27,7 @@ - + diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/React-CSharp.csproj.in b/src/ProjectTemplates/Web.Spa.ProjectTemplates/React-CSharp.csproj.in index 69925a032f..5682766065 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/React-CSharp.csproj.in +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/React-CSharp.csproj.in @@ -24,7 +24,7 @@ - + From 80d019d72625b630618291c900b1ac56d3da3395 Mon Sep 17 00:00:00 2001 From: Javier Calvarro Nelson Date: Thu, 26 Sep 2019 10:48:40 -0700 Subject: [PATCH 087/111] Introduce ComponentTagHelper Fixes https://github.com/aspnet/AspNetCore/issues/13726 --- .../BlazorServerApp/Pages/_Host.cshtml | 4 +- .../ComponentWithParametersTest.cs | 75 +++++++ .../ComponentWithParameters.razor | 48 +++++ .../ComponentsApp.Server/Pages/_Host.cshtml | 2 +- .../Pages/ComponentWithParameters.cshtml | 37 ++++ .../Pages/MultipleComponents.cshtml | 20 +- .../TestServer/Pages/PrerenderedHost.cshtml | 3 +- .../TestServer/Pages/_ServerHost.cshtml | 3 +- .../TestServer/Pages/_ViewImports.cshtml | 3 + ...ft.AspNetCore.Mvc.TagHelpers.netcoreapp.cs | 16 ++ .../Mvc.TagHelpers/src/ComponentTagHelper.cs | 80 +++++++ .../test/ComponentTagHelperTest.cs | 75 +++++++ ...MvcViewFeaturesMvcCoreBuilderExtensions.cs | 4 +- .../src/HtmlHelperComponentExtensions.cs | 127 ----------- .../src/RazorComponents/ComponentRenderer.cs | 110 ++++++++++ .../src/RazorComponents/IComponentRenderer.cs | 19 ++ .../StaticComponentRenderer.cs | 3 +- .../UnsupportedJavaScriptRuntime.cs | 1 - .../HtmlHelperComponentExtensions.cs | 50 +++++ src/Mvc/Mvc.ViewFeatures/src/Resources.resx | 3 + .../ComponentRendererTest.cs} | 204 +++++++----------- .../test/RazorComponents/HtmlRendererTest.cs | 4 +- .../HtmlHelperComponentExtensionsTest.cs | 56 +++++ .../samples/MvcSandbox/Components/App.razor | 13 +- .../MvcSandbox/Components/NotFound.razor | 4 - .../MvcSandbox/Pages/Components.cshtml | 6 +- .../MvcSandbox/Pages/Components.cshtml.cs | 16 -- .../MvcSandbox/Views/Shared/_Layout.cshtml | 3 + .../BlazorServerWeb-CSharp/Pages/_Host.cshtml | 4 +- 29 files changed, 689 insertions(+), 304 deletions(-) create mode 100644 src/Components/test/E2ETest/ServerExecutionTests/ComponentWithParametersTest.cs create mode 100644 src/Components/test/testassets/BasicTestApp/ComponentWithParameters.razor create mode 100644 src/Components/test/testassets/TestServer/Pages/ComponentWithParameters.cshtml create mode 100644 src/Components/test/testassets/TestServer/Pages/_ViewImports.cshtml create mode 100644 src/Mvc/Mvc.TagHelpers/src/ComponentTagHelper.cs create mode 100644 src/Mvc/Mvc.TagHelpers/test/ComponentTagHelperTest.cs delete mode 100644 src/Mvc/Mvc.ViewFeatures/src/HtmlHelperComponentExtensions.cs create mode 100644 src/Mvc/Mvc.ViewFeatures/src/RazorComponents/ComponentRenderer.cs create mode 100644 src/Mvc/Mvc.ViewFeatures/src/RazorComponents/IComponentRenderer.cs create mode 100644 src/Mvc/Mvc.ViewFeatures/src/Rendering/HtmlHelperComponentExtensions.cs rename src/Mvc/Mvc.ViewFeatures/test/{HtmlHelperComponentExtensionsTests.cs => RazorComponents/ComponentRendererTest.cs} (83%) create mode 100644 src/Mvc/Mvc.ViewFeatures/test/Rendering/HtmlHelperComponentExtensionsTest.cs delete mode 100644 src/Mvc/samples/MvcSandbox/Components/NotFound.razor delete mode 100644 src/Mvc/samples/MvcSandbox/Pages/Components.cshtml.cs diff --git a/src/Components/Samples/BlazorServerApp/Pages/_Host.cshtml b/src/Components/Samples/BlazorServerApp/Pages/_Host.cshtml index 7818ea3afd..4fe357cf81 100644 --- a/src/Components/Samples/BlazorServerApp/Pages/_Host.cshtml +++ b/src/Components/Samples/BlazorServerApp/Pages/_Host.cshtml @@ -13,9 +13,7 @@ - - @(await Html.RenderComponentAsync(RenderMode.ServerPrerendered)) - + diff --git a/src/Components/test/E2ETest/ServerExecutionTests/ComponentWithParametersTest.cs b/src/Components/test/E2ETest/ServerExecutionTests/ComponentWithParametersTest.cs new file mode 100644 index 0000000000..858c68f069 --- /dev/null +++ b/src/Components/test/E2ETest/ServerExecutionTests/ComponentWithParametersTest.cs @@ -0,0 +1,75 @@ +// 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 System.Text.Json; +using System.Text.RegularExpressions; +using System.Threading.Tasks; +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.ServerExecutionTests +{ + public class ComponentWithParametersTest : ServerTestBase> + { + public ComponentWithParametersTest( + BrowserFixture browserFixture, + BasicTestAppServerSiteFixture serverFixture, + ITestOutputHelper output) + : base(browserFixture, serverFixture, output) + { + } + + public DateTime LastLogTimeStamp { get; set; } = DateTime.MinValue; + + public override async Task InitializeAsync() + { + await base.InitializeAsync(); + + // Capture the last log timestamp so that we can filter logs when we + // check for duplicate connections. + var lastLog = Browser.Manage().Logs.GetLog(LogType.Browser).LastOrDefault(); + if (lastLog != null) + { + LastLogTimeStamp = lastLog.Timestamp; + } + } + + [Fact] + public void PassingParametersToComponentsWorks() + { + Navigate("/prerendered/componentwithparameters?QueryValue=testQueryValue"); + + BeginInteractivity(); + + Browser.Exists(By.CssSelector(".interactive")); + + var parameter1 = Browser.FindElement(By.CssSelector(".Param1")); + Assert.Equal(100, parameter1.FindElements(By.CssSelector("li")).Count); + Assert.Equal("99 99", parameter1.FindElement(By.CssSelector("li:last-child")).Text); + + // The assigned value is of a more derived type than the declared model type. This check + // verifies we use the actual model type during round tripping. + var parameter2 = Browser.FindElement(By.CssSelector(".Param2")); + Assert.Equal("Value Derived-Value", parameter2.Text); + + // This check verifies CaptureUnmatchedValues works + var parameter3 = Browser.FindElements(By.CssSelector(".Param3 li")); + Assert.Collection( + parameter3, + p => Assert.Equal("key1 testQueryValue", p.Text), + p => Assert.Equal("key2 43", p.Text)); + } + + private void BeginInteractivity() + { + Browser.FindElement(By.Id("load-boot-script")).Click(); + } + } +} diff --git a/src/Components/test/testassets/BasicTestApp/ComponentWithParameters.razor b/src/Components/test/testassets/BasicTestApp/ComponentWithParameters.razor new file mode 100644 index 0000000000..8ec03cf1f0 --- /dev/null +++ b/src/Components/test/testassets/BasicTestApp/ComponentWithParameters.razor @@ -0,0 +1,48 @@ +

Component With Parameters

+ +
    + @foreach (var value in Param1) + { +
  • @value.StringProperty @value.IntProperty
  • + } +
+ +@* Making sure polymorphism works *@ +
@DerivedParam2.StringProperty @DerivedParam2.DerivedProperty
+ +@* Making sure CaptureUnmatchedValues works *@ + +
    + @foreach (var value in Param3.OrderBy(kvp => kvp.Key)) + { +
  • @value.Key @value.Value
  • + } +
+ +@code +{ + [Parameter] public List Param1 { get; set; } + + [Parameter] public TestModel Param2 { get; set; } + + [Parameter(CaptureUnmatchedValues = true)] public IDictionary Param3 { get; set; } + + private DerivedModel DerivedParam2 => (DerivedModel)Param2; + + public static List TestModelValues => Enumerable.Range(0, 100).Select(c => new TestModel { StringProperty = c.ToString(), IntProperty = c }).ToList(); + + public static DerivedModel DerivedModelValue = new DerivedModel { StringProperty = "Value", DerivedProperty = "Derived-Value" }; + + public class TestModel + { + + public string StringProperty { get; set; } + + public int IntProperty { get; set; } + } + + public class DerivedModel : TestModel + { + public string DerivedProperty { get; set; } + } +} diff --git a/src/Components/test/testassets/ComponentsApp.Server/Pages/_Host.cshtml b/src/Components/test/testassets/ComponentsApp.Server/Pages/_Host.cshtml index 77d00063ca..9aa4ff85ad 100644 --- a/src/Components/test/testassets/ComponentsApp.Server/Pages/_Host.cshtml +++ b/src/Components/test/testassets/ComponentsApp.Server/Pages/_Host.cshtml @@ -12,7 +12,7 @@ - @(await Html.RenderComponentAsync(RenderMode.Server)) + + + +@functions +{ + [BindProperty(SupportsGet = true)] + public string QueryValue { get; set; } +} diff --git a/src/Components/test/testassets/TestServer/Pages/MultipleComponents.cshtml b/src/Components/test/testassets/TestServer/Pages/MultipleComponents.cshtml index 61ce8d6efb..a42238a5c9 100644 --- a/src/Components/test/testassets/TestServer/Pages/MultipleComponents.cshtml +++ b/src/Components/test/testassets/TestServer/Pages/MultipleComponents.cshtml @@ -10,26 +10,26 @@
- @(await Html.RenderComponentAsync(RenderMode.ServerPrerendered)) - @(await Html.RenderComponentAsync(RenderMode.Server)) - @(await Html.RenderComponentAsync(RenderMode.Static, new { Name = "John" })) - @(await Html.RenderComponentAsync(RenderMode.Server)) + + + +

Some content before

- @(await Html.RenderComponentAsync(RenderMode.Server)) +

Some content between

- @(await Html.RenderComponentAsync(RenderMode.ServerPrerendered)) +

Some content after

Some content before

- @(await Html.RenderComponentAsync(RenderMode.Server)) - @(await Html.RenderComponentAsync(RenderMode.ServerPrerendered)) + +

Some content after

- @(await Html.RenderComponentAsync(RenderMode.Server, new { Name = "Albert" })) - @(await Html.RenderComponentAsync(RenderMode.ServerPrerendered, new { Name = "Abraham" })) + +
diff --git a/src/Components/test/testassets/TestServer/Pages/PrerenderedHost.cshtml b/src/Components/test/testassets/TestServer/Pages/PrerenderedHost.cshtml index 1ba6f2f1c9..2d7eacfb9b 100644 --- a/src/Components/test/testassets/TestServer/Pages/PrerenderedHost.cshtml +++ b/src/Components/test/testassets/TestServer/Pages/PrerenderedHost.cshtml @@ -1,5 +1,6 @@ @page @using BasicTestApp.RouterTest + @@ -7,7 +8,7 @@ - @(await Html.RenderComponentAsync(RenderMode.ServerPrerendered)) + @* So that E2E tests can make assertions about both the prerendered and diff --git a/src/Components/test/testassets/TestServer/Pages/_ServerHost.cshtml b/src/Components/test/testassets/TestServer/Pages/_ServerHost.cshtml index 668123d6f9..af2f28f658 100644 --- a/src/Components/test/testassets/TestServer/Pages/_ServerHost.cshtml +++ b/src/Components/test/testassets/TestServer/Pages/_ServerHost.cshtml @@ -1,4 +1,5 @@ @page "" +@addTagHelper "*, Microsoft.AspNetCore.Mvc.TagHelpers" @@ -11,7 +12,7 @@ - @(await Html.RenderComponentAsync(RenderMode.Server)) + diff --git a/src/Components/test/testassets/TestServer/Pages/_ViewImports.cshtml b/src/Components/test/testassets/TestServer/Pages/_ViewImports.cshtml new file mode 100644 index 0000000000..59d4a92b6d --- /dev/null +++ b/src/Components/test/testassets/TestServer/Pages/_ViewImports.cshtml @@ -0,0 +1,3 @@ +@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers +@using BasicTestApp + diff --git a/src/Mvc/Mvc.TagHelpers/ref/Microsoft.AspNetCore.Mvc.TagHelpers.netcoreapp.cs b/src/Mvc/Mvc.TagHelpers/ref/Microsoft.AspNetCore.Mvc.TagHelpers.netcoreapp.cs index b940696196..ee158337cc 100644 --- a/src/Mvc/Mvc.TagHelpers/ref/Microsoft.AspNetCore.Mvc.TagHelpers.netcoreapp.cs +++ b/src/Mvc/Mvc.TagHelpers/ref/Microsoft.AspNetCore.Mvc.TagHelpers.netcoreapp.cs @@ -105,6 +105,22 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers public CacheTagHelperOptions() { } public long SizeLimit { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } } } + [Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute("component", Attributes="type")] + public partial class ComponentTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper + { + public ComponentTagHelper() { } + [Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute("type")] + public System.Type ComponentType { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } } + [Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute("parameters", DictionaryAttributePrefix="parameter-")] + public System.Collections.Generic.IDictionary Parameters { get { throw null; } set { } } + [Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute("render-mode")] + public Microsoft.AspNetCore.Mvc.Rendering.RenderMode RenderMode { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } } + [Microsoft.AspNetCore.Mvc.ViewFeatures.ViewContextAttribute] + [Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNotBoundAttribute] + public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } } + [System.Diagnostics.DebuggerStepThroughAttribute] + public override System.Threading.Tasks.Task ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) { throw null; } + } [Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute("distributed-cache", Attributes="name")] public partial class DistributedCacheTagHelper : Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase { diff --git a/src/Mvc/Mvc.TagHelpers/src/ComponentTagHelper.cs b/src/Mvc/Mvc.TagHelpers/src/ComponentTagHelper.cs new file mode 100644 index 0000000000..be05af7bad --- /dev/null +++ b/src/Mvc/Mvc.TagHelpers/src/ComponentTagHelper.cs @@ -0,0 +1,80 @@ +// 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.Threading.Tasks; +using Microsoft.AspNetCore.Mvc.Rendering; +using Microsoft.AspNetCore.Mvc.ViewFeatures; +using Microsoft.AspNetCore.Razor.TagHelpers; +using Microsoft.Extensions.DependencyInjection; + +namespace Microsoft.AspNetCore.Mvc.TagHelpers +{ + /// + /// A that renders a Razor component. + /// + [HtmlTargetElement("component", Attributes = ComponentTypeName, TagStructure = TagStructure.WithoutEndTag)] + public class ComponentTagHelper : TagHelper + { + private const string ComponentParameterName = "parameters"; + private const string ComponentParameterPrefix = "parameter-"; + private const string ComponentTypeName = "type"; + private const string RenderModeName = "render-mode"; + private IDictionary _parameters; + + /// + /// Gets or sets the for the current request. + /// + [HtmlAttributeNotBound] + [ViewContext] + public ViewContext ViewContext { get; set; } + + /// + /// Gets or sets values for component parameters. + /// + [HtmlAttributeName(ComponentParameterName, DictionaryAttributePrefix = ComponentParameterPrefix)] + public IDictionary Parameters + { + get + { + _parameters ??= new Dictionary(StringComparer.OrdinalIgnoreCase); + return _parameters; + } + set => _parameters = value; + } + + /// + /// Gets or sets the component type. This value is required. + /// + [HtmlAttributeName(ComponentTypeName)] + public Type ComponentType { get; set; } + + /// + /// Gets or sets the + /// + [HtmlAttributeName(RenderModeName)] + public RenderMode RenderMode { get; set; } + + /// + public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output) + { + if (context == null) + { + throw new ArgumentNullException(nameof(context)); + } + + if (output == null) + { + throw new ArgumentNullException(nameof(output)); + } + + var componentRenderer = ViewContext.HttpContext.RequestServices.GetRequiredService(); + var result = await componentRenderer.RenderComponentAsync(ViewContext, ComponentType, RenderMode, _parameters); + + // Reset the TagName. We don't want `component` to render. + output.TagName = null; + output.Content.SetHtmlContent(result); + } + } +} diff --git a/src/Mvc/Mvc.TagHelpers/test/ComponentTagHelperTest.cs b/src/Mvc/Mvc.TagHelpers/test/ComponentTagHelperTest.cs new file mode 100644 index 0000000000..5c1aff4a7e --- /dev/null +++ b/src/Mvc/Mvc.TagHelpers/test/ComponentTagHelperTest.cs @@ -0,0 +1,75 @@ +// 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.IO.Pipes; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Html; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc.Rendering; +using Microsoft.AspNetCore.Mvc.ViewFeatures; +using Microsoft.AspNetCore.Razor.TagHelpers; +using Microsoft.Extensions.DependencyInjection; +using Moq; +using Xunit; + +namespace Microsoft.AspNetCore.Mvc.TagHelpers +{ + public class ComponentTagHelperTest + { + [Fact] + public async Task ProcessAsync_RendersComponent() + { + // Arrange + var tagHelper = new ComponentTagHelper + { + ViewContext = GetViewContext(), + }; + var context = GetTagHelperContext(); + var output = GetTagHelperOutput(); + + // Act + await tagHelper.ProcessAsync(context, output); + + // Assert + var content = HtmlContentUtilities.HtmlContentToString(output.Content); + Assert.Equal("Hello world", content); + Assert.Null(output.TagName); + } + + private static TagHelperContext GetTagHelperContext() + { + return new TagHelperContext( + "component", + new TagHelperAttributeList(), + new Dictionary(), + Guid.NewGuid().ToString("N")); + } + + private static TagHelperOutput GetTagHelperOutput() + { + return new TagHelperOutput( + "component", + new TagHelperAttributeList(), + (_, __) => Task.FromResult(new DefaultTagHelperContent())); + } + + private ViewContext GetViewContext() + { + var htmlContent = new HtmlContentBuilder().AppendHtml("Hello world"); + var renderer = Mock.Of(c => + c.RenderComponentAsync(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny()) == Task.FromResult(htmlContent)); + + var httpContext = new DefaultHttpContext + { + RequestServices = new ServiceCollection().AddSingleton(renderer).BuildServiceProvider(), + }; + + return new ViewContext + { + HttpContext = httpContext, + }; + } + } +} diff --git a/src/Mvc/Mvc.ViewFeatures/src/DependencyInjection/MvcViewFeaturesMvcCoreBuilderExtensions.cs b/src/Mvc/Mvc.ViewFeatures/src/DependencyInjection/MvcViewFeaturesMvcCoreBuilderExtensions.cs index 7b17edbe29..84ffe50ce1 100644 --- a/src/Mvc/Mvc.ViewFeatures/src/DependencyInjection/MvcViewFeaturesMvcCoreBuilderExtensions.cs +++ b/src/Mvc/Mvc.ViewFeatures/src/DependencyInjection/MvcViewFeaturesMvcCoreBuilderExtensions.cs @@ -18,7 +18,6 @@ using Microsoft.AspNetCore.Mvc.ViewFeatures; using Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers; using Microsoft.AspNetCore.Mvc.ViewFeatures.Filters; using Microsoft.AspNetCore.Mvc.ViewFeatures.Infrastructure; -using Microsoft.AspNetCore.Mvc.ViewFeatures.RazorComponents; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Options; using Microsoft.JSInterop; @@ -206,8 +205,9 @@ namespace Microsoft.Extensions.DependencyInjection services.TryAddSingleton(); // - // Component prerendering + // Component rendering // + services.TryAddScoped(); services.TryAddScoped(); services.TryAddScoped(); services.TryAddScoped(); diff --git a/src/Mvc/Mvc.ViewFeatures/src/HtmlHelperComponentExtensions.cs b/src/Mvc/Mvc.ViewFeatures/src/HtmlHelperComponentExtensions.cs deleted file mode 100644 index 303c820cc9..0000000000 --- a/src/Mvc/Mvc.ViewFeatures/src/HtmlHelperComponentExtensions.cs +++ /dev/null @@ -1,127 +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.Threading.Tasks; -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Html; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc.ViewFeatures; -using Microsoft.AspNetCore.Mvc.ViewFeatures.RazorComponents; -using Microsoft.Extensions.DependencyInjection; - -namespace Microsoft.AspNetCore.Mvc.Rendering -{ - /// - /// Extensions for rendering components. - /// - public static class HtmlHelperComponentExtensions - { - private static readonly object ComponentSequenceKey = new object(); - - /// - /// Renders the . - /// - /// The . - /// The for the component. - /// The HTML produced by the rendered . - public static Task RenderComponentAsync(this IHtmlHelper htmlHelper, RenderMode renderMode) where TComponent : IComponent - { - if (htmlHelper == null) - { - throw new ArgumentNullException(nameof(htmlHelper)); - } - - return htmlHelper.RenderComponentAsync(renderMode, null); - } - - /// - /// Renders the . - /// - /// The . - /// An containing the parameters to pass - /// to the component. - /// The for the component. - /// The HTML produced by the rendered . - public static async Task RenderComponentAsync( - this IHtmlHelper htmlHelper, - RenderMode renderMode, - object parameters) where TComponent : IComponent - { - if (htmlHelper == null) - { - throw new ArgumentNullException(nameof(htmlHelper)); - } - - var context = htmlHelper.ViewContext.HttpContext; - return renderMode switch - { - RenderMode.Server => NonPrerenderedServerComponent(context, GetOrCreateInvocationId(htmlHelper.ViewContext), typeof(TComponent), GetParametersCollection(parameters)), - RenderMode.ServerPrerendered => await PrerenderedServerComponentAsync(context, GetOrCreateInvocationId(htmlHelper.ViewContext), typeof(TComponent), GetParametersCollection(parameters)), - RenderMode.Static => await StaticComponentAsync(context, typeof(TComponent), GetParametersCollection(parameters)), - _ => throw new ArgumentException("Invalid render mode", nameof(renderMode)), - }; - } - - private static ServerComponentInvocationSequence GetOrCreateInvocationId(ViewContext viewContext) - { - if (!viewContext.Items.TryGetValue(ComponentSequenceKey, out var result)) - { - result = new ServerComponentInvocationSequence(); - viewContext.Items[ComponentSequenceKey] = result; - } - - return (ServerComponentInvocationSequence)result; - } - - private static ParameterView GetParametersCollection(object parameters) => parameters == null ? - ParameterView.Empty : - ParameterView.FromDictionary(HtmlHelper.ObjectToDictionary(parameters)); - - private static async Task StaticComponentAsync(HttpContext context, Type type, ParameterView parametersCollection) - { - var serviceProvider = context.RequestServices; - var prerenderer = serviceProvider.GetRequiredService(); - - - var result = await prerenderer.PrerenderComponentAsync( - parametersCollection, - context, - type); - - return new ComponentHtmlContent(result); - } - - private static async Task PrerenderedServerComponentAsync(HttpContext context, ServerComponentInvocationSequence invocationId, Type type, ParameterView parametersCollection) - { - var serviceProvider = context.RequestServices; - var prerenderer = serviceProvider.GetRequiredService(); - var invocationSerializer = serviceProvider.GetRequiredService(); - - var currentInvocation = invocationSerializer.SerializeInvocation( - invocationId, - type, - parametersCollection, - prerendered: true); - - var result = await prerenderer.PrerenderComponentAsync( - parametersCollection, - context, - type); - - return new ComponentHtmlContent( - invocationSerializer.GetPreamble(currentInvocation), - result, - invocationSerializer.GetEpilogue(currentInvocation)); - } - - private static IHtmlContent NonPrerenderedServerComponent(HttpContext context, ServerComponentInvocationSequence invocationId, Type type, ParameterView parametersCollection) - { - var serviceProvider = context.RequestServices; - var invocationSerializer = serviceProvider.GetRequiredService(); - var currentInvocation = invocationSerializer.SerializeInvocation(invocationId, type, parametersCollection, prerendered: false); - - return new ComponentHtmlContent(invocationSerializer.GetPreamble(currentInvocation)); - } - } -} diff --git a/src/Mvc/Mvc.ViewFeatures/src/RazorComponents/ComponentRenderer.cs b/src/Mvc/Mvc.ViewFeatures/src/RazorComponents/ComponentRenderer.cs new file mode 100644 index 0000000000..44a618fb04 --- /dev/null +++ b/src/Mvc/Mvc.ViewFeatures/src/RazorComponents/ComponentRenderer.cs @@ -0,0 +1,110 @@ +// 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.Tasks; +using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Html; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc.Rendering; + +namespace Microsoft.AspNetCore.Mvc.ViewFeatures +{ + internal class ComponentRenderer : IComponentRenderer + { + private static readonly object ComponentSequenceKey = new object(); + private readonly StaticComponentRenderer _staticComponentRenderer; + private readonly ServerComponentSerializer _serverComponentSerializer; + + public ComponentRenderer( + StaticComponentRenderer staticComponentRenderer, + ServerComponentSerializer serverComponentSerializer) + { + _staticComponentRenderer = staticComponentRenderer; + _serverComponentSerializer = serverComponentSerializer; + } + + public async Task RenderComponentAsync( + ViewContext viewContext, + Type componentType, + RenderMode renderMode, + object parameters) + { + if (viewContext is null) + { + throw new ArgumentNullException(nameof(viewContext)); + } + + if (componentType is null) + { + throw new ArgumentNullException(nameof(componentType)); + } + + if (!typeof(IComponent).IsAssignableFrom(componentType)) + { + throw new ArgumentException(Resources.FormatTypeMustDeriveFromType(componentType, typeof(IComponent))); + } + + var context = viewContext.HttpContext; + var parameterView = parameters is null ? + ParameterView.Empty : + ParameterView.FromDictionary(HtmlHelper.ObjectToDictionary(parameters)); + + return renderMode switch + { + RenderMode.Server => NonPrerenderedServerComponent(context, GetOrCreateInvocationId(viewContext), componentType, parameterView), + RenderMode.ServerPrerendered => await PrerenderedServerComponentAsync(context, GetOrCreateInvocationId(viewContext), componentType, parameterView), + RenderMode.Static => await StaticComponentAsync(context, componentType, parameterView), + _ => throw new ArgumentException(Resources.FormatUnsupportedRenderMode(renderMode), nameof(renderMode)), + }; + } + + private static ServerComponentInvocationSequence GetOrCreateInvocationId(ViewContext viewContext) + { + if (!viewContext.Items.TryGetValue(ComponentSequenceKey, out var result)) + { + result = new ServerComponentInvocationSequence(); + viewContext.Items[ComponentSequenceKey] = result; + } + + return (ServerComponentInvocationSequence)result; + } + + private async Task StaticComponentAsync(HttpContext context, Type type, ParameterView parametersCollection) + { + var result = await _staticComponentRenderer.PrerenderComponentAsync( + parametersCollection, + context, + type); + + return new ComponentHtmlContent(result); + } + + private async Task PrerenderedServerComponentAsync(HttpContext context, ServerComponentInvocationSequence invocationId, Type type, ParameterView parametersCollection) + { + var currentInvocation = _serverComponentSerializer.SerializeInvocation( + invocationId, + type, + parametersCollection, + prerendered: true); + + var result = await _staticComponentRenderer.PrerenderComponentAsync( + parametersCollection, + context, + type); + + return new ComponentHtmlContent( + _serverComponentSerializer.GetPreamble(currentInvocation), + result, + _serverComponentSerializer.GetEpilogue(currentInvocation)); + } + + private IHtmlContent NonPrerenderedServerComponent(HttpContext context, ServerComponentInvocationSequence invocationId, Type type, ParameterView parametersCollection) + { + var serviceProvider = context.RequestServices; + var currentInvocation = _serverComponentSerializer.SerializeInvocation(invocationId, type, parametersCollection, prerendered: false); + + return new ComponentHtmlContent(_serverComponentSerializer.GetPreamble(currentInvocation)); + } + } +} diff --git a/src/Mvc/Mvc.ViewFeatures/src/RazorComponents/IComponentRenderer.cs b/src/Mvc/Mvc.ViewFeatures/src/RazorComponents/IComponentRenderer.cs new file mode 100644 index 0000000000..90df64f9f7 --- /dev/null +++ b/src/Mvc/Mvc.ViewFeatures/src/RazorComponents/IComponentRenderer.cs @@ -0,0 +1,19 @@ +// 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.Tasks; +using Microsoft.AspNetCore.Html; +using Microsoft.AspNetCore.Mvc.Rendering; + +namespace Microsoft.AspNetCore.Mvc.ViewFeatures +{ + internal interface IComponentRenderer + { + Task RenderComponentAsync( + ViewContext viewContext, + Type componentType, + RenderMode renderMode, + object parameters); + } +} diff --git a/src/Mvc/Mvc.ViewFeatures/src/RazorComponents/StaticComponentRenderer.cs b/src/Mvc/Mvc.ViewFeatures/src/RazorComponents/StaticComponentRenderer.cs index 72e89faf5f..89304873c1 100644 --- a/src/Mvc/Mvc.ViewFeatures/src/RazorComponents/StaticComponentRenderer.cs +++ b/src/Mvc/Mvc.ViewFeatures/src/RazorComponents/StaticComponentRenderer.cs @@ -11,11 +11,10 @@ using Microsoft.AspNetCore.Components.Rendering; using Microsoft.AspNetCore.Components.Routing; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http.Extensions; -using Microsoft.AspNetCore.Http.Features; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; -namespace Microsoft.AspNetCore.Mvc.ViewFeatures.RazorComponents +namespace Microsoft.AspNetCore.Mvc.ViewFeatures { internal class StaticComponentRenderer { diff --git a/src/Mvc/Mvc.ViewFeatures/src/RazorComponents/UnsupportedJavaScriptRuntime.cs b/src/Mvc/Mvc.ViewFeatures/src/RazorComponents/UnsupportedJavaScriptRuntime.cs index bcb36c37a0..da84020294 100644 --- a/src/Mvc/Mvc.ViewFeatures/src/RazorComponents/UnsupportedJavaScriptRuntime.cs +++ b/src/Mvc/Mvc.ViewFeatures/src/RazorComponents/UnsupportedJavaScriptRuntime.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.Collections.Generic; using System.Threading; using System.Threading.Tasks; using Microsoft.JSInterop; diff --git a/src/Mvc/Mvc.ViewFeatures/src/Rendering/HtmlHelperComponentExtensions.cs b/src/Mvc/Mvc.ViewFeatures/src/Rendering/HtmlHelperComponentExtensions.cs new file mode 100644 index 0000000000..178ef697dc --- /dev/null +++ b/src/Mvc/Mvc.ViewFeatures/src/Rendering/HtmlHelperComponentExtensions.cs @@ -0,0 +1,50 @@ +// 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.Tasks; +using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Html; +using Microsoft.AspNetCore.Mvc.ViewFeatures; +using Microsoft.Extensions.DependencyInjection; + +namespace Microsoft.AspNetCore.Mvc.Rendering +{ + /// + /// Extensions for rendering components. + /// + public static class HtmlHelperComponentExtensions + { + /// + /// Renders the . + /// + /// The . + /// The for the component. + /// The HTML produced by the rendered . + public static Task RenderComponentAsync(this IHtmlHelper htmlHelper, RenderMode renderMode) where TComponent : IComponent + => RenderComponentAsync(htmlHelper, renderMode, parameters: null); + + /// + /// Renders the . + /// + /// The . + /// An containing the parameters to pass + /// to the component. + /// The for the component. + /// The HTML produced by the rendered . + public static Task RenderComponentAsync( + this IHtmlHelper htmlHelper, + RenderMode renderMode, + object parameters) where TComponent : IComponent + { + if (htmlHelper is null) + { + throw new ArgumentNullException(nameof(htmlHelper)); + } + + var viewContext = htmlHelper.ViewContext; + var componentRenderer = viewContext.HttpContext.RequestServices.GetRequiredService(); + return componentRenderer.RenderComponentAsync(viewContext, typeof(TComponent), renderMode, parameters); + } + } +} diff --git a/src/Mvc/Mvc.ViewFeatures/src/Resources.resx b/src/Mvc/Mvc.ViewFeatures/src/Resources.resx index e7362a9bf5..ae6a29aa81 100644 --- a/src/Mvc/Mvc.ViewFeatures/src/Resources.resx +++ b/src/Mvc/Mvc.ViewFeatures/src/Resources.resx @@ -295,4 +295,7 @@ Unsupported data type '{0}'. + + Unsupported RenderMode '{0}'. + \ No newline at end of file diff --git a/src/Mvc/Mvc.ViewFeatures/test/HtmlHelperComponentExtensionsTests.cs b/src/Mvc/Mvc.ViewFeatures/test/RazorComponents/ComponentRendererTest.cs similarity index 83% rename from src/Mvc/Mvc.ViewFeatures/test/HtmlHelperComponentExtensionsTests.cs rename to src/Mvc/Mvc.ViewFeatures/test/RazorComponents/ComponentRendererTest.cs index a7629497a7..1e89472473 100644 --- a/src/Mvc/Mvc.ViewFeatures/test/HtmlHelperComponentExtensionsTests.cs +++ b/src/Mvc/Mvc.ViewFeatures/test/RazorComponents/ComponentRendererTest.cs @@ -13,7 +13,7 @@ using Microsoft.AspNetCore.DataProtection; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http.Features; using Microsoft.AspNetCore.Mvc.Rendering; -using Microsoft.AspNetCore.Mvc.ViewFeatures.RazorComponents; +using Microsoft.AspNetCore.Testing; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; @@ -22,24 +22,26 @@ using Microsoft.Net.Http.Headers; using Moq; using Xunit; -namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Test +namespace Microsoft.AspNetCore.Mvc.ViewFeatures { - public class HtmlHelperComponentExtensionsTests + public class ComponentRendererTest { private const string PrerenderedServerComponentPattern = "^(?.+?)$"; private const string ServerComponentPattern = "^$"; private static readonly IDataProtectionProvider _dataprotectorProvider = new EphemeralDataProtectionProvider(); + private readonly ComponentRenderer renderer = GetComponentRenderer(); + [Fact] public async Task CanRender_ParameterlessComponent() { // Arrange - var helper = CreateHelper(); + var viewContext = GetViewContext(); var writer = new StringWriter(); // Act - var result = await helper.RenderComponentAsync(RenderMode.Static); + var result = await renderer.RenderComponentAsync(viewContext, typeof(TestComponent), RenderMode.Static, null); result.WriteTo(writer, HtmlEncoder.Default); var content = writer.ToString(); @@ -51,15 +53,13 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Test public async Task CanRender_ParameterlessComponent_ServerMode() { // Arrange - var helper = CreateHelper(); - var writer = new StringWriter(); + var viewContext = GetViewContext(); var protector = _dataprotectorProvider.CreateProtector(ServerComponentSerializationSettings.DataProtectionProviderPurpose) .ToTimeLimitedDataProtector(); // Act - var result = await helper.RenderComponentAsync(RenderMode.Server); - result.WriteTo(writer, HtmlEncoder.Default); - var content = writer.ToString(); + var result = await renderer.RenderComponentAsync(viewContext, typeof(TestComponent), RenderMode.Server, null); + var content = HtmlContentUtilities.HtmlContentToString(result); var match = Regex.Match(content, ServerComponentPattern); // Assert @@ -82,15 +82,13 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Test public async Task CanPrerender_ParameterlessComponent_ServerMode() { // Arrange - var helper = CreateHelper(); - var writer = new StringWriter(); + var viewContext = GetViewContext(); var protector = _dataprotectorProvider.CreateProtector(ServerComponentSerializationSettings.DataProtectionProviderPurpose) .ToTimeLimitedDataProtector(); // Act - var result = await helper.RenderComponentAsync(RenderMode.ServerPrerendered); - result.WriteTo(writer, HtmlEncoder.Default); - var content = writer.ToString(); + var result = await renderer.RenderComponentAsync(viewContext, typeof(TestComponent), RenderMode.ServerPrerendered, null); + var content = HtmlContentUtilities.HtmlContentToString(result); var match = Regex.Match(content, PrerenderedServerComponentPattern, RegexOptions.Multiline); // Assert @@ -125,21 +123,17 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Test public async Task CanRenderMultipleServerComponents() { // Arrange - var helper = CreateHelper(); - var firstWriter = new StringWriter(); - var secondWriter = new StringWriter(); + var viewContext = GetViewContext(); var protector = _dataprotectorProvider.CreateProtector(ServerComponentSerializationSettings.DataProtectionProviderPurpose) .ToTimeLimitedDataProtector(); // Act - var firstResult = await helper.RenderComponentAsync(RenderMode.ServerPrerendered); - firstResult.WriteTo(firstWriter, HtmlEncoder.Default); - var firstComponent = firstWriter.ToString(); + var firstResult = await renderer.RenderComponentAsync(viewContext, typeof(TestComponent), RenderMode.ServerPrerendered, null); + var firstComponent = HtmlContentUtilities.HtmlContentToString(firstResult); var firstMatch = Regex.Match(firstComponent, PrerenderedServerComponentPattern, RegexOptions.Multiline); - var secondResult = await helper.RenderComponentAsync(RenderMode.Server); - secondResult.WriteTo(secondWriter, HtmlEncoder.Default); - var secondComponent = secondWriter.ToString(); + var secondResult = await renderer.RenderComponentAsync(viewContext, typeof(TestComponent), RenderMode.Server, null); + var secondComponent = HtmlContentUtilities.HtmlContentToString(secondResult); var secondMatch = Regex.Match(secondComponent, ServerComponentPattern); // Assert @@ -171,20 +165,13 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Test public async Task CanRender_ComponentWithParametersObject() { // Arrange - var helper = CreateHelper(); - var writer = new StringWriter(); + var viewContext = GetViewContext(); // Act - var result = await helper.RenderComponentAsync( - RenderMode.Static, - new - { - Name = "Steve" - }); - result.WriteTo(writer, HtmlEncoder.Default); - var content = writer.ToString(); + var result = await renderer.RenderComponentAsync(viewContext, typeof(GreetingComponent), RenderMode.Static, new { Name = "Steve" }); // Assert + var content = HtmlContentUtilities.HtmlContentToString(result); Assert.Equal("

Hello Steve!

", content); } @@ -192,20 +179,13 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Test public async Task CanRender_ComponentWithParameters_ServerMode() { // Arrange - var helper = CreateHelper(); - var writer = new StringWriter(); + var viewContext = GetViewContext(); var protector = _dataprotectorProvider.CreateProtector(ServerComponentSerializationSettings.DataProtectionProviderPurpose) .ToTimeLimitedDataProtector(); // Act - var result = await helper.RenderComponentAsync( - RenderMode.Server, - new - { - Name = "Daniel" - }); - result.WriteTo(writer, HtmlEncoder.Default); - var content = writer.ToString(); + var result = await renderer.RenderComponentAsync(viewContext, typeof(GreetingComponent), RenderMode.Server, new { Name = "Daniel" }); + var content = HtmlContentUtilities.HtmlContentToString(result); var match = Regex.Match(content, ServerComponentPattern); // Assert @@ -237,20 +217,14 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Test public async Task CanRender_ComponentWithNullParameters_ServerMode() { // Arrange - var helper = CreateHelper(); - var writer = new StringWriter(); + var viewContext = GetViewContext(); var protector = _dataprotectorProvider.CreateProtector(ServerComponentSerializationSettings.DataProtectionProviderPurpose) .ToTimeLimitedDataProtector(); // Act - var result = await helper.RenderComponentAsync( - RenderMode.Server, - new - { - Name = (string)null - }); - result.WriteTo(writer, HtmlEncoder.Default); - var content = writer.ToString(); + + var result = await renderer.RenderComponentAsync(viewContext, typeof(GreetingComponent), RenderMode.Server, new { Name = (string)null }); + var content = HtmlContentUtilities.HtmlContentToString(result); var match = Regex.Match(content, ServerComponentPattern); // Assert @@ -274,28 +248,22 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Test Assert.Null(parameterDefinition.TypeName); Assert.Null(parameterDefinition.Assembly); - var value = Assert.Single(serverComponent.ParameterValues);; + var value = Assert.Single(serverComponent.ParameterValues); ; Assert.Null(value); } [Fact] - public async Task CanPrerender_ComponentWithParameters_ServerMode() + public async Task CanPrerender_ComponentWithParameters_ServerPrerenderedMode() { // Arrange - var helper = CreateHelper(); + var viewContext = GetViewContext(); var writer = new StringWriter(); var protector = _dataprotectorProvider.CreateProtector(ServerComponentSerializationSettings.DataProtectionProviderPurpose) .ToTimeLimitedDataProtector(); // Act - var result = await helper.RenderComponentAsync( - RenderMode.ServerPrerendered, - new - { - Name = "Daniel" - }); - result.WriteTo(writer, HtmlEncoder.Default); - var content = writer.ToString(); + var result = await renderer.RenderComponentAsync(viewContext, typeof(GreetingComponent), RenderMode.ServerPrerendered, new { Name = "Daniel" }); + var content = HtmlContentUtilities.HtmlContentToString(result); var match = Regex.Match(content, PrerenderedServerComponentPattern, RegexOptions.Multiline); // Assert @@ -336,23 +304,17 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Test } [Fact] - public async Task CanPrerender_ComponentWithNullParameters_ServerMode() + public async Task CanPrerender_ComponentWithNullParameters_ServerPrerenderedMode() { // Arrange - var helper = CreateHelper(); + var viewContext = GetViewContext(); var writer = new StringWriter(); var protector = _dataprotectorProvider.CreateProtector(ServerComponentSerializationSettings.DataProtectionProviderPurpose) .ToTimeLimitedDataProtector(); // Act - var result = await helper.RenderComponentAsync( - RenderMode.ServerPrerendered, - new - { - Name = (string)null - }); - result.WriteTo(writer, HtmlEncoder.Default); - var content = writer.ToString(); + var result = await renderer.RenderComponentAsync(viewContext, typeof(GreetingComponent), RenderMode.ServerPrerendered, new { Name = (string)null }); + var content = HtmlContentUtilities.HtmlContentToString(result); var match = Regex.Match(content, PrerenderedServerComponentPattern, RegexOptions.Multiline); // Assert @@ -396,39 +358,28 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Test public async Task ComponentWithInvalidRenderMode_Throws() { // Arrange - var helper = CreateHelper(); - var writer = new StringWriter(); + var viewContext = GetViewContext(); // Act & Assert - var result = await Assert.ThrowsAsync(() => helper.RenderComponentAsync( - default, - new - { - Name = "Steve" - })); - Assert.Equal("renderMode", result.ParamName); + var ex = await ExceptionAssert.ThrowsArgumentAsync( + () => renderer.RenderComponentAsync(viewContext, typeof(GreetingComponent), default, new { Name = "Daniel" }), + "renderMode", + $"Unsupported RenderMode '{(RenderMode)default}'"); } [Fact] public async Task RenderComponent_DoesNotInvokeOnAfterRenderInComponent() { // Arrange - var helper = CreateHelper(); - var writer = new StringWriter(); + var viewContext = GetViewContext(); // Act var state = new OnAfterRenderState(); - var result = await helper.RenderComponentAsync( - RenderMode.Static, - new - { - State = state - }); - - result.WriteTo(writer, HtmlEncoder.Default); + var result = await renderer.RenderComponentAsync(viewContext, typeof(OnAfterRenderComponent), RenderMode.Static, new { state }); // Assert - Assert.Equal("

Hello

", writer.ToString()); + var content = HtmlContentUtilities.HtmlContentToString(result); + Assert.Equal("

Hello

", content); Assert.False(state.OnAfterRenderRan); } @@ -436,10 +387,12 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Test public async Task CanCatch_ComponentWithSynchronousException() { // Arrange - var helper = CreateHelper(); + var viewContext = GetViewContext(); // Act & Assert - var exception = await Assert.ThrowsAsync(() => helper.RenderComponentAsync( + var exception = await Assert.ThrowsAsync(() => renderer.RenderComponentAsync( + viewContext, + typeof(ExceptionComponent), RenderMode.Static, new { @@ -454,10 +407,12 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Test public async Task CanCatch_ComponentWithAsynchronousException() { // Arrange - var helper = CreateHelper(); + var viewContext = GetViewContext(); // Act & Assert - var exception = await Assert.ThrowsAsync(() => helper.RenderComponentAsync( + var exception = await Assert.ThrowsAsync(() => renderer.RenderComponentAsync( + viewContext, + typeof(ExceptionComponent), RenderMode.Static, new { @@ -472,10 +427,12 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Test public async Task Rendering_ComponentWithJsInteropThrows() { // Arrange - var helper = CreateHelper(); + var viewContext = GetViewContext(); // Act & Assert - var exception = await Assert.ThrowsAsync(() => helper.RenderComponentAsync( + var exception = await Assert.ThrowsAsync(() => renderer.RenderComponentAsync( + viewContext, + typeof(ExceptionComponent), RenderMode.Static, new { @@ -503,11 +460,12 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Test var responseMock = new Mock(); responseMock.Setup(r => r.HasStarted).Returns(true); ctx.Features.Set(responseMock.Object); - var helper = CreateHelper(ctx); - var writer = new StringWriter(); + var viewContext = GetViewContext(ctx); // Act - var exception = await Assert.ThrowsAsync(() => helper.RenderComponentAsync( + var exception = await Assert.ThrowsAsync(() => renderer.RenderComponentAsync( + viewContext, + typeof(RedirectComponent), RenderMode.Static, new { @@ -515,8 +473,8 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Test })); Assert.Equal("A navigation command was attempted during prerendering after the server already started sending the response. " + - "Navigation commands can not be issued during server-side prerendering after the response from the server has started. Applications must buffer the" + - "reponse and avoid using features like FlushAsync() before all components on the page have been rendered to prevent failed navigation commands.", + "Navigation commands can not be issued during server-side prerendering after the response from the server has started. Applications must buffer the" + + "reponse and avoid using features like FlushAsync() before all components on the page have been rendered to prevent failed navigation commands.", exception.Message); } @@ -530,10 +488,12 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Test ctx.Request.PathBase = "/base"; ctx.Request.Path = "/path"; ctx.Request.QueryString = new QueryString("?query=value"); - var helper = CreateHelper(ctx); + var viewContext = GetViewContext(ctx); // Act - await helper.RenderComponentAsync( + await renderer.RenderComponentAsync( + viewContext, + typeof(RedirectComponent), RenderMode.Static, new { @@ -549,8 +509,7 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Test public async Task CanRender_AsyncComponent() { // Arrange - var helper = CreateHelper(); - var writer = new StringWriter(); + var viewContext = GetViewContext(); var expectedContent = @" @@ -595,29 +554,29 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Test
"; // Act - var result = await helper.RenderComponentAsync(RenderMode.Static); - result.WriteTo(writer, HtmlEncoder.Default); - var content = writer.ToString(); + var result = await renderer.RenderComponentAsync(viewContext,typeof(AsyncComponent), RenderMode.Static, null); + var content = HtmlContentUtilities.HtmlContentToString(result); // Assert Assert.Equal(expectedContent.Replace("\r\n", "\n"), content); } - private static IHtmlHelper CreateHelper(HttpContext ctx = null, Action configureServices = null) + private static ComponentRenderer GetComponentRenderer() => + new ComponentRenderer( + new StaticComponentRenderer(HtmlEncoder.Default), + new ServerComponentSerializer(_dataprotectorProvider)); + + private static ViewContext GetViewContext(HttpContext context = null, Action configureServices = null) { var services = new ServiceCollection(); - services.AddSingleton(HtmlEncoder.Default); - services.AddSingleton(); services.AddSingleton(_dataprotectorProvider); services.AddSingleton(); services.AddSingleton(); - services.AddSingleton(); services.AddSingleton(); configureServices?.Invoke(services); - var helper = new Mock(); - var context = ctx ?? new DefaultHttpContext(); + context ??= new DefaultHttpContext(); context.RequestServices = services.BuildServiceProvider(); context.Request.Scheme = "http"; context.Request.Host = new HostString("localhost"); @@ -625,12 +584,7 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Test context.Request.Path = "/path"; context.Request.QueryString = QueryString.FromUriComponent("?query=value"); - helper.Setup(h => h.ViewContext) - .Returns(new ViewContext() - { - HttpContext = context - }); - return helper.Object; + return new ViewContext { HttpContext = context }; } private class TestComponent : IComponent diff --git a/src/Mvc/Mvc.ViewFeatures/test/RazorComponents/HtmlRendererTest.cs b/src/Mvc/Mvc.ViewFeatures/test/RazorComponents/HtmlRendererTest.cs index 7a670696fb..67778e4163 100644 --- a/src/Mvc/Mvc.ViewFeatures/test/RazorComponents/HtmlRendererTest.cs +++ b/src/Mvc/Mvc.ViewFeatures/test/RazorComponents/HtmlRendererTest.cs @@ -6,13 +6,11 @@ using System.Collections.Generic; using System.Runtime.ExceptionServices; using System.Text.Encodings.Web; using System.Threading.Tasks; -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.Rendering; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging.Abstractions; using Xunit; -namespace Microsoft.AspNetCore.Mvc.RazorComponents +namespace Microsoft.AspNetCore.Components.Rendering { public class HtmlRendererTest { diff --git a/src/Mvc/Mvc.ViewFeatures/test/Rendering/HtmlHelperComponentExtensionsTest.cs b/src/Mvc/Mvc.ViewFeatures/test/Rendering/HtmlHelperComponentExtensionsTest.cs new file mode 100644 index 0000000000..470b4b3ab0 --- /dev/null +++ b/src/Mvc/Mvc.ViewFeatures/test/Rendering/HtmlHelperComponentExtensionsTest.cs @@ -0,0 +1,56 @@ +// 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.Tasks; +using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Html; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc.ViewFeatures; +using Microsoft.Extensions.DependencyInjection; +using Moq; +using Xunit; + +namespace Microsoft.AspNetCore.Mvc.Rendering +{ + public class HtmlHelperComponentExtensionsTest + { + [Fact] + public async Task RenderComponentAsync_Works() + { + // Arrange + var viewContext = GetViewContext(); + var htmlHelper = Mock.Of(h => h.ViewContext == viewContext); + + // Act + var result = await HtmlHelperComponentExtensions.RenderComponentAsync(htmlHelper, RenderMode.Static); + + // Assert + Assert.Equal("Hello world", HtmlContentUtilities.HtmlContentToString(result)); + } + + private static ViewContext GetViewContext() + { + var htmlContent = new HtmlContentBuilder().AppendHtml("Hello world"); + var renderer = Mock.Of(c => + c.RenderComponentAsync(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny()) == Task.FromResult(htmlContent)); + + var httpContext = new DefaultHttpContext + { + RequestServices = new ServiceCollection().AddSingleton(renderer).BuildServiceProvider(), + }; + + var viewContext = new ViewContext { HttpContext = httpContext }; + return viewContext; + } + + private class TestComponent : IComponent + { + public void Attach(RenderHandle renderHandle) + { + } + + public Task SetParametersAsync(ParameterView parameters) => null; + } + } +} diff --git a/src/Mvc/samples/MvcSandbox/Components/App.razor b/src/Mvc/samples/MvcSandbox/Components/App.razor index 2bf3672b80..1c9b07ba20 100644 --- a/src/Mvc/samples/MvcSandbox/Components/App.razor +++ b/src/Mvc/samples/MvcSandbox/Components/App.razor @@ -1,2 +1,13 @@ @using Microsoft.AspNetCore.Components.Routing - \ No newline at end of file +@using MvcSandbox.Components.Shared + + + + + + + +

Sorry, there's nothing at this address.

+
+
+
diff --git a/src/Mvc/samples/MvcSandbox/Components/NotFound.razor b/src/Mvc/samples/MvcSandbox/Components/NotFound.razor deleted file mode 100644 index 369bfb8dde..0000000000 --- a/src/Mvc/samples/MvcSandbox/Components/NotFound.razor +++ /dev/null @@ -1,4 +0,0 @@ -@using MvcSandbox.Components.Shared -@layout MainLayout -

Not Found

-

Sorry, nothing was found.

\ No newline at end of file diff --git a/src/Mvc/samples/MvcSandbox/Pages/Components.cshtml b/src/Mvc/samples/MvcSandbox/Pages/Components.cshtml index cdafd22f68..89401bf85b 100644 --- a/src/Mvc/samples/MvcSandbox/Pages/Components.cshtml +++ b/src/Mvc/samples/MvcSandbox/Pages/Components.cshtml @@ -1,5 +1,4 @@ @page -@model MvcSandbox.Pages.ComponentsModel @{ Layout = null; } @@ -15,8 +14,7 @@ - @(await Html.RenderComponentAsync(RenderMode.Static)) - - + + diff --git a/src/Mvc/samples/MvcSandbox/Pages/Components.cshtml.cs b/src/Mvc/samples/MvcSandbox/Pages/Components.cshtml.cs deleted file mode 100644 index fce8214cb5..0000000000 --- a/src/Mvc/samples/MvcSandbox/Pages/Components.cshtml.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.RazorPages; - -namespace MvcSandbox.Pages -{ - public class ComponentsModel : PageModel - { - public void OnGet() - { - } - } -} \ No newline at end of file diff --git a/src/Mvc/samples/MvcSandbox/Views/Shared/_Layout.cshtml b/src/Mvc/samples/MvcSandbox/Views/Shared/_Layout.cshtml index a3da90da30..1b670c2b65 100644 --- a/src/Mvc/samples/MvcSandbox/Views/Shared/_Layout.cshtml +++ b/src/Mvc/samples/MvcSandbox/Views/Shared/_Layout.cshtml @@ -19,6 +19,9 @@ + diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/_Host.cshtml b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/_Host.cshtml index 7a104af51d..70eaf5f755 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/_Host.cshtml +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/_Host.cshtml @@ -13,9 +13,7 @@ - - @(await Html.RenderComponentAsync(RenderMode.ServerPrerendered)) - +
From d1faff412631e15269d9c8d62ebf823bf82807bd Mon Sep 17 00:00:00 2001 From: Pranav K Date: Tue, 1 Oct 2019 13:42:32 -0700 Subject: [PATCH 088/111] Fixup --- .../ComponentWithParametersTest.cs | 15 --------------- .../Pages/ComponentWithParameters.cshtml | 8 ++++---- .../TestServer/Pages/MultipleComponents.cshtml | 6 +++--- src/Mvc/Mvc.TagHelpers/src/ComponentTagHelper.cs | 4 ++-- 4 files changed, 9 insertions(+), 24 deletions(-) diff --git a/src/Components/test/E2ETest/ServerExecutionTests/ComponentWithParametersTest.cs b/src/Components/test/E2ETest/ServerExecutionTests/ComponentWithParametersTest.cs index 858c68f069..87ed133449 100644 --- a/src/Components/test/E2ETest/ServerExecutionTests/ComponentWithParametersTest.cs +++ b/src/Components/test/E2ETest/ServerExecutionTests/ComponentWithParametersTest.cs @@ -26,21 +26,6 @@ namespace Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests { } - public DateTime LastLogTimeStamp { get; set; } = DateTime.MinValue; - - public override async Task InitializeAsync() - { - await base.InitializeAsync(); - - // Capture the last log timestamp so that we can filter logs when we - // check for duplicate connections. - var lastLog = Browser.Manage().Logs.GetLog(LogType.Browser).LastOrDefault(); - if (lastLog != null) - { - LastLogTimeStamp = lastLog.Timestamp; - } - } - [Fact] public void PassingParametersToComponentsWorks() { diff --git a/src/Components/test/testassets/TestServer/Pages/ComponentWithParameters.cshtml b/src/Components/test/testassets/TestServer/Pages/ComponentWithParameters.cshtml index b182ce21e9..3d630a05fd 100644 --- a/src/Components/test/testassets/TestServer/Pages/ComponentWithParameters.cshtml +++ b/src/Components/test/testassets/TestServer/Pages/ComponentWithParameters.cshtml @@ -2,10 +2,10 @@ + param-Param1="ComponentWithParameters.TestModelValues" + param-Param2="ComponentWithParameters.DerivedModelValue" + param-key1="QueryValue" + param-key2="43" /> @* So that E2E tests can make assertions about both the prerendered and diff --git a/src/Components/test/testassets/TestServer/Pages/MultipleComponents.cshtml b/src/Components/test/testassets/TestServer/Pages/MultipleComponents.cshtml index a42238a5c9..47c7677829 100644 --- a/src/Components/test/testassets/TestServer/Pages/MultipleComponents.cshtml +++ b/src/Components/test/testassets/TestServer/Pages/MultipleComponents.cshtml @@ -12,7 +12,7 @@
- +

Some content before

@@ -28,8 +28,8 @@
- - + +
diff --git a/src/Mvc/Mvc.TagHelpers/src/ComponentTagHelper.cs b/src/Mvc/Mvc.TagHelpers/src/ComponentTagHelper.cs index be05af7bad..7015c687e4 100644 --- a/src/Mvc/Mvc.TagHelpers/src/ComponentTagHelper.cs +++ b/src/Mvc/Mvc.TagHelpers/src/ComponentTagHelper.cs @@ -17,8 +17,8 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers [HtmlTargetElement("component", Attributes = ComponentTypeName, TagStructure = TagStructure.WithoutEndTag)] public class ComponentTagHelper : TagHelper { - private const string ComponentParameterName = "parameters"; - private const string ComponentParameterPrefix = "parameter-"; + private const string ComponentParameterName = "params"; + private const string ComponentParameterPrefix = "param-"; private const string ComponentTypeName = "type"; private const string RenderModeName = "render-mode"; private IDictionary _parameters; From a7d40aeb0383868a89b2d4925ade8ed2da691e62 Mon Sep 17 00:00:00 2001 From: Pranav K Date: Tue, 1 Oct 2019 13:47:39 -0700 Subject: [PATCH 089/111] Update ref --- .../ref/Microsoft.AspNetCore.Mvc.TagHelpers.netcoreapp.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Mvc/Mvc.TagHelpers/ref/Microsoft.AspNetCore.Mvc.TagHelpers.netcoreapp.cs b/src/Mvc/Mvc.TagHelpers/ref/Microsoft.AspNetCore.Mvc.TagHelpers.netcoreapp.cs index ee158337cc..d453996255 100644 --- a/src/Mvc/Mvc.TagHelpers/ref/Microsoft.AspNetCore.Mvc.TagHelpers.netcoreapp.cs +++ b/src/Mvc/Mvc.TagHelpers/ref/Microsoft.AspNetCore.Mvc.TagHelpers.netcoreapp.cs @@ -105,13 +105,13 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers public CacheTagHelperOptions() { } public long SizeLimit { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } } } - [Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute("component", Attributes="type")] + [Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute("component", Attributes="type", TagStructure=Microsoft.AspNetCore.Razor.TagHelpers.TagStructure.WithoutEndTag)] public partial class ComponentTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { public ComponentTagHelper() { } [Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute("type")] public System.Type ComponentType { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } } - [Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute("parameters", DictionaryAttributePrefix="parameter-")] + [Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute("params", DictionaryAttributePrefix="param-")] public System.Collections.Generic.IDictionary Parameters { get { throw null; } set { } } [Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute("render-mode")] public Microsoft.AspNetCore.Mvc.Rendering.RenderMode RenderMode { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } } From 2e7ff1e9b8c9da8af9cc23d11c8c6ba5f4f3c80a Mon Sep 17 00:00:00 2001 From: Pranav K Date: Wed, 2 Oct 2019 13:03:32 -0700 Subject: [PATCH 090/111] Restore the app element --- .../content/BlazorServerWeb-CSharp/Pages/_Host.cshtml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/_Host.cshtml b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/_Host.cshtml index 70eaf5f755..14d8ae4c3e 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/_Host.cshtml +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/_Host.cshtml @@ -13,7 +13,9 @@ - + + +
From 0557585b0aee860bad50bac30db135519e31d877 Mon Sep 17 00:00:00 2001 From: Pranav K Date: Wed, 2 Oct 2019 15:20:17 -0700 Subject: [PATCH 091/111] More fixups --- .../ref/Microsoft.AspNetCore.Mvc.ViewFeatures.netcoreapp.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Mvc/Mvc.ViewFeatures/ref/Microsoft.AspNetCore.Mvc.ViewFeatures.netcoreapp.cs b/src/Mvc/Mvc.ViewFeatures/ref/Microsoft.AspNetCore.Mvc.ViewFeatures.netcoreapp.cs index e9618a4842..9c94c22443 100644 --- a/src/Mvc/Mvc.ViewFeatures/ref/Microsoft.AspNetCore.Mvc.ViewFeatures.netcoreapp.cs +++ b/src/Mvc/Mvc.ViewFeatures/ref/Microsoft.AspNetCore.Mvc.ViewFeatures.netcoreapp.cs @@ -325,7 +325,6 @@ namespace Microsoft.AspNetCore.Mvc.Rendering public static partial class HtmlHelperComponentExtensions { public static System.Threading.Tasks.Task RenderComponentAsync(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, Microsoft.AspNetCore.Mvc.Rendering.RenderMode renderMode) where TComponent : Microsoft.AspNetCore.Components.IComponent { throw null; } - [System.Diagnostics.DebuggerStepThroughAttribute] public static System.Threading.Tasks.Task RenderComponentAsync(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, Microsoft.AspNetCore.Mvc.Rendering.RenderMode renderMode, object parameters) where TComponent : Microsoft.AspNetCore.Components.IComponent { throw null; } } public static partial class HtmlHelperDisplayExtensions From 3fe0e303c61c4e4fe3dc9c6cfc0f8773731ca036 Mon Sep 17 00:00:00 2001 From: Pranav K Date: Wed, 9 Oct 2019 12:33:54 -0700 Subject: [PATCH 092/111] Make sealed --- .../ref/Microsoft.AspNetCore.Mvc.TagHelpers.netcoreapp.cs | 2 +- src/Mvc/Mvc.TagHelpers/src/ComponentTagHelper.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Mvc/Mvc.TagHelpers/ref/Microsoft.AspNetCore.Mvc.TagHelpers.netcoreapp.cs b/src/Mvc/Mvc.TagHelpers/ref/Microsoft.AspNetCore.Mvc.TagHelpers.netcoreapp.cs index d453996255..ef7a542790 100644 --- a/src/Mvc/Mvc.TagHelpers/ref/Microsoft.AspNetCore.Mvc.TagHelpers.netcoreapp.cs +++ b/src/Mvc/Mvc.TagHelpers/ref/Microsoft.AspNetCore.Mvc.TagHelpers.netcoreapp.cs @@ -106,7 +106,7 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers public long SizeLimit { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } } } [Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute("component", Attributes="type", TagStructure=Microsoft.AspNetCore.Razor.TagHelpers.TagStructure.WithoutEndTag)] - public partial class ComponentTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper + public sealed partial class ComponentTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { public ComponentTagHelper() { } [Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute("type")] diff --git a/src/Mvc/Mvc.TagHelpers/src/ComponentTagHelper.cs b/src/Mvc/Mvc.TagHelpers/src/ComponentTagHelper.cs index 7015c687e4..6dc9bfe722 100644 --- a/src/Mvc/Mvc.TagHelpers/src/ComponentTagHelper.cs +++ b/src/Mvc/Mvc.TagHelpers/src/ComponentTagHelper.cs @@ -15,7 +15,7 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers /// A that renders a Razor component. /// [HtmlTargetElement("component", Attributes = ComponentTypeName, TagStructure = TagStructure.WithoutEndTag)] - public class ComponentTagHelper : TagHelper + public sealed class ComponentTagHelper : TagHelper { private const string ComponentParameterName = "params"; private const string ComponentParameterPrefix = "param-"; From 79a1769e47ac951f9471541c537d2c5098b2d3ce Mon Sep 17 00:00:00 2001 From: Pranav K Date: Fri, 11 Oct 2019 13:46:45 -0700 Subject: [PATCH 093/111] fixup --- .../ComponentWithParametersTest.cs | 2 +- .../Pages/MultipleComponents.cshtml | 4 +-- ....AspNetCore.Mvc.ViewFeatures.netcoreapp.cs | 1 + .../HtmlHelperComponentExtensions.cs | 26 ++++++++++++++++--- 4 files changed, 27 insertions(+), 6 deletions(-) diff --git a/src/Components/test/E2ETest/ServerExecutionTests/ComponentWithParametersTest.cs b/src/Components/test/E2ETest/ServerExecutionTests/ComponentWithParametersTest.cs index 87ed133449..1aefbe2b8e 100644 --- a/src/Components/test/E2ETest/ServerExecutionTests/ComponentWithParametersTest.cs +++ b/src/Components/test/E2ETest/ServerExecutionTests/ComponentWithParametersTest.cs @@ -27,7 +27,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests } [Fact] - public void PassingParametersToComponentsWorks() + public void PassingParametersToComponentsFromThePageWorks() { Navigate("/prerendered/componentwithparameters?QueryValue=testQueryValue"); diff --git a/src/Components/test/testassets/TestServer/Pages/MultipleComponents.cshtml b/src/Components/test/testassets/TestServer/Pages/MultipleComponents.cshtml index 47c7677829..c387700129 100644 --- a/src/Components/test/testassets/TestServer/Pages/MultipleComponents.cshtml +++ b/src/Components/test/testassets/TestServer/Pages/MultipleComponents.cshtml @@ -10,8 +10,8 @@
- - + @(await Html.RenderComponentAsync(RenderMode.ServerPrerendered)) + @(await Html.RenderComponentAsync(RenderMode.Server))
diff --git a/src/Mvc/Mvc.ViewFeatures/ref/Microsoft.AspNetCore.Mvc.ViewFeatures.netcoreapp.cs b/src/Mvc/Mvc.ViewFeatures/ref/Microsoft.AspNetCore.Mvc.ViewFeatures.netcoreapp.cs index 9c94c22443..dfbd0dec1b 100644 --- a/src/Mvc/Mvc.ViewFeatures/ref/Microsoft.AspNetCore.Mvc.ViewFeatures.netcoreapp.cs +++ b/src/Mvc/Mvc.ViewFeatures/ref/Microsoft.AspNetCore.Mvc.ViewFeatures.netcoreapp.cs @@ -324,6 +324,7 @@ namespace Microsoft.AspNetCore.Mvc.Rendering } public static partial class HtmlHelperComponentExtensions { + public static System.Threading.Tasks.Task RenderComponentAsync(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Type componentType, Microsoft.AspNetCore.Mvc.Rendering.RenderMode renderMode, object parameters) { throw null; } public static System.Threading.Tasks.Task RenderComponentAsync(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, Microsoft.AspNetCore.Mvc.Rendering.RenderMode renderMode) where TComponent : Microsoft.AspNetCore.Components.IComponent { throw null; } public static System.Threading.Tasks.Task RenderComponentAsync(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, Microsoft.AspNetCore.Mvc.Rendering.RenderMode renderMode, object parameters) where TComponent : Microsoft.AspNetCore.Components.IComponent { throw null; } } diff --git a/src/Mvc/Mvc.ViewFeatures/src/Rendering/HtmlHelperComponentExtensions.cs b/src/Mvc/Mvc.ViewFeatures/src/Rendering/HtmlHelperComponentExtensions.cs index 178ef697dc..16f021574a 100644 --- a/src/Mvc/Mvc.ViewFeatures/src/Rendering/HtmlHelperComponentExtensions.cs +++ b/src/Mvc/Mvc.ViewFeatures/src/Rendering/HtmlHelperComponentExtensions.cs @@ -16,7 +16,7 @@ namespace Microsoft.AspNetCore.Mvc.Rendering public static class HtmlHelperComponentExtensions { /// - /// Renders the . + /// Renders the . /// /// The . /// The for the component. @@ -25,7 +25,7 @@ namespace Microsoft.AspNetCore.Mvc.Rendering => RenderComponentAsync(htmlHelper, renderMode, parameters: null); /// - /// Renders the . + /// Renders the . /// /// The . /// An containing the parameters to pass @@ -36,15 +36,35 @@ namespace Microsoft.AspNetCore.Mvc.Rendering this IHtmlHelper htmlHelper, RenderMode renderMode, object parameters) where TComponent : IComponent + => RenderComponentAsync(htmlHelper, typeof(TComponent), renderMode, parameters); + + /// + /// Renders the specified . + /// + /// The . + /// The component type. + /// An containing the parameters to pass + /// to the component. + /// The for the component. + public static Task RenderComponentAsync( + this IHtmlHelper htmlHelper, + Type componentType, + RenderMode renderMode, + object parameters) { if (htmlHelper is null) { throw new ArgumentNullException(nameof(htmlHelper)); } + if (componentType is null) + { + throw new ArgumentNullException(nameof(componentType)); + } + var viewContext = htmlHelper.ViewContext; var componentRenderer = viewContext.HttpContext.RequestServices.GetRequiredService(); - return componentRenderer.RenderComponentAsync(viewContext, typeof(TComponent), renderMode, parameters); + return componentRenderer.RenderComponentAsync(viewContext, componentType, renderMode, parameters); } } } From 6dee2f548a6acd3673de4ce65fab5d201e894230 Mon Sep 17 00:00:00 2001 From: Pranav K Date: Fri, 11 Oct 2019 13:53:16 -0700 Subject: [PATCH 094/111] Ensure Microsoft.AspNetCore.Razor.RuntimeCompilation has the right build targets (#14863) * Include build and build transitive folders in RuntimeCompilation package * Use a different folder name to allow GitHub indexing. See https://github.com/aspnet/AspNetCore/issues/14846 * Add a test to verify transitive build targets work Fixes https://github.com/aspnet/AspNetCore/issues/14813 Fixes https://github.com/aspnet/AspNetCore/issues/12768 --- .../Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.csproj | 3 ++- .../Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.targets | 0 .../test/WebSites/RazorBuildWebSite/RazorBuildWebSite.csproj | 3 ++- src/ProjectTemplates/test/MvcTemplateTest.cs | 3 +-- 4 files changed, 5 insertions(+), 4 deletions(-) rename src/Mvc/Mvc.Razor.RuntimeCompilation/src/{build/netcoreapp3.0 => targets}/Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.targets (100%) diff --git a/src/Mvc/Mvc.Razor.RuntimeCompilation/src/Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.csproj b/src/Mvc/Mvc.Razor.RuntimeCompilation/src/Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.csproj index 5d40de9229..1476267dfc 100644 --- a/src/Mvc/Mvc.Razor.RuntimeCompilation/src/Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.csproj +++ b/src/Mvc/Mvc.Razor.RuntimeCompilation/src/Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.csproj @@ -23,6 +23,7 @@ - + + diff --git a/src/Mvc/Mvc.Razor.RuntimeCompilation/src/build/netcoreapp3.0/Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.targets b/src/Mvc/Mvc.Razor.RuntimeCompilation/src/targets/Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.targets similarity index 100% rename from src/Mvc/Mvc.Razor.RuntimeCompilation/src/build/netcoreapp3.0/Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.targets rename to src/Mvc/Mvc.Razor.RuntimeCompilation/src/targets/Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.targets diff --git a/src/Mvc/test/WebSites/RazorBuildWebSite/RazorBuildWebSite.csproj b/src/Mvc/test/WebSites/RazorBuildWebSite/RazorBuildWebSite.csproj index 6f9e357218..4664e85890 100644 --- a/src/Mvc/test/WebSites/RazorBuildWebSite/RazorBuildWebSite.csproj +++ b/src/Mvc/test/WebSites/RazorBuildWebSite/RazorBuildWebSite.csproj @@ -2,7 +2,6 @@ $(DefaultNetCoreTargetFramework) - $(DefineConstants) false true @@ -21,4 +20,6 @@ + + diff --git a/src/ProjectTemplates/test/MvcTemplateTest.cs b/src/ProjectTemplates/test/MvcTemplateTest.cs index 9ebaf1afc6..af43914ed2 100644 --- a/src/ProjectTemplates/test/MvcTemplateTest.cs +++ b/src/ProjectTemplates/test/MvcTemplateTest.cs @@ -25,13 +25,12 @@ namespace Templates.Test public ProjectFactoryFixture ProjectFactory { get; } public ITestOutputHelper Output { get; } - [Fact(Skip = "https://github.com/aspnet/AspNetCore/issues/14022")] + [Fact] public async Task MvcTemplate_NoAuthFSharp() => await MvcTemplateCore(languageOverride: "F#"); [Fact] public async Task MvcTemplate_NoAuthCSharp() => await MvcTemplateCore(languageOverride: null); - private async Task MvcTemplateCore(string languageOverride) { Project = await ProjectFactory.GetOrCreateProject("mvcnoauth" + (languageOverride == "F#" ? "fsharp" : "csharp"), Output); From 64ec8d8c34e013f4bbdc55ba6ad3b3abdbf831cd Mon Sep 17 00:00:00 2001 From: wtgodbe Date: Mon, 14 Oct 2019 13:24:37 -0700 Subject: [PATCH 095/111] Fix bad merge in ReferenceAssembly.targets --- eng/targets/ReferenceAssembly.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/targets/ReferenceAssembly.targets b/eng/targets/ReferenceAssembly.targets index 418cc77518..149d4e2443 100644 --- a/eng/targets/ReferenceAssembly.targets +++ b/eng/targets/ReferenceAssembly.targets @@ -97,7 +97,7 @@ - + ]]>$(_ManualReferenceAssemblyContent)'', '%0A ') ]]> From 35f148b7fc853e0baa0a2f95e801c2ad66d65e41 Mon Sep 17 00:00:00 2001 From: wtgodbe Date: Mon, 14 Oct 2019 13:28:08 -0700 Subject: [PATCH 096/111] Don't skip RefPack tests --- src/Framework/test/TargetingPackTests.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Framework/test/TargetingPackTests.cs b/src/Framework/test/TargetingPackTests.cs index ec8a646f48..8a2625b99d 100644 --- a/src/Framework/test/TargetingPackTests.cs +++ b/src/Framework/test/TargetingPackTests.cs @@ -28,7 +28,7 @@ namespace Microsoft.AspNetCore _targetingPackRoot = Path.Combine(TestData.GetTestDataValue("TargetingPackLayoutRoot"), "packs", "Microsoft.AspNetCore.App.Ref", TestData.GetTestDataValue("TargetingPackVersion")); } - [Fact(Skip="https://github.com/aspnet/AspNetCore/issues/14832")] + [Fact] public void AssembliesAreReferenceAssemblies() { IEnumerable dlls = Directory.GetFiles(_targetingPackRoot, "*.dll", SearchOption.AllDirectories); @@ -55,7 +55,7 @@ namespace Microsoft.AspNetCore }); } - [Fact(Skip="https://github.com/aspnet/AspNetCore/issues/14832")] + [Fact] public void PlatformManifestListsAllFiles() { var platformManifestPath = Path.Combine(_targetingPackRoot, "data", "PlatformManifest.txt"); From 1a71156f6ae4392af92e894351e8683f15d77feb Mon Sep 17 00:00:00 2001 From: wtgodbe Date: Mon, 14 Oct 2019 15:59:40 -0700 Subject: [PATCH 097/111] Fix typo in GenerateTestProps.targets --- .../test/Infrastructure/GenerateTestProps.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets b/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets index 58b1170428..b4a8c86501 100644 --- a/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets +++ b/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets @@ -14,7 +14,7 @@ - @(TargetingPackVersionInfo.PackageVersion) + @(_TargetingPackVersionInfo.PackageVersion) $(AspNetCoreBaselineVersion) From d74a2b00eba223e4c7ace8eeb0ab9218f0c5ad01 Mon Sep 17 00:00:00 2001 From: William Godbe Date: Tue, 15 Oct 2019 10:10:24 -0700 Subject: [PATCH 098/111] Fix Item->Property conversion in GenerateTestProps.targets --- .../test/Infrastructure/GenerateTestProps.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets b/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets index b4a8c86501..c654f40572 100644 --- a/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets +++ b/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets @@ -14,7 +14,7 @@ - @(_TargetingPackVersionInfo.PackageVersion) + @(_TargetingPackVersionInfo->'%(PackageVersion)' $(AspNetCoreBaselineVersion) From 0dad6fec71fda7263ff33b160ad9ffbdec6d9b6b Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2019 17:16:21 +0000 Subject: [PATCH 099/111] [release/3.1] Update dependencies from dotnet/arcade (#14982) * Update dependencies from https://github.com/dotnet/arcade build 20191010.3 - Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19510.3 - Microsoft.DotNet.GenAPI - 1.0.0-beta.19510.3 - Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19510.3 * Add 'dotnet-tools' feed --- NuGet.config | 1 + eng/Version.Details.xml | 12 +-- eng/Versions.props | 2 +- eng/common/enable-cross-org-publishing.ps1 | 6 ++ eng/common/sdl/extract-artifact-packages.ps1 | 7 ++ eng/common/templates/job/performance.yml | 4 +- .../channels/netcore-3-tools-validation.yml | 95 +++++++++++++++++++ ...netcore-dev-30.yml => netcore-3-tools.yml} | 44 +++++---- .../post-build/channels/netcore-dev-31.yml | 8 +- .../post-build/channels/netcore-dev-5.yml | 8 +- .../channels/netcore-internal-30.yml | 8 +- .../channels/netcore-release-30.yml | 8 +- .../channels/netcore-release-31.yml | 8 +- .../channels/netcore-tools-latest.yml | 8 +- ...lease.yml => netcore-tools-validation.yml} | 12 ++- .../templates/post-build/common-variables.yml | 14 ++- .../templates/post-build/post-build.yml | 19 ++-- global.json | 4 +- 18 files changed, 209 insertions(+), 59 deletions(-) create mode 100644 eng/common/enable-cross-org-publishing.ps1 create mode 100644 eng/common/templates/post-build/channels/netcore-3-tools-validation.yml rename eng/common/templates/post-build/channels/{netcore-dev-30.yml => netcore-3-tools.yml} (82%) rename eng/common/templates/post-build/channels/{public-validation-release.yml => netcore-tools-validation.yml} (90%) diff --git a/NuGet.config b/NuGet.config index d0a37a8d8e..90058d74d5 100644 --- a/NuGet.config +++ b/NuGet.config @@ -3,6 +3,7 @@ + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 62ae85779b..619c1dd333 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -412,17 +412,17 @@ https://github.com/aspnet/Extensions dd3db48e9509475fff5907fc0318209988a5b657 - + https://github.com/dotnet/arcade - f8546fbab59a74a66c83b8cb76b3f6877ce1d374 + f70d1fca3d5d4045be75694006f1bee0e0aec572 - + https://github.com/dotnet/arcade - f8546fbab59a74a66c83b8cb76b3f6877ce1d374 + f70d1fca3d5d4045be75694006f1bee0e0aec572 - + https://github.com/dotnet/arcade - f8546fbab59a74a66c83b8cb76b3f6877ce1d374 + f70d1fca3d5d4045be75694006f1bee0e0aec572 https://github.com/aspnet/Extensions diff --git a/eng/Versions.props b/eng/Versions.props index 395f32d063..055b16af21 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -57,7 +57,7 @@ --> - 1.0.0-beta.19462.4 + 1.0.0-beta.19510.3 3.4.0-beta2-19462-08 diff --git a/eng/common/enable-cross-org-publishing.ps1 b/eng/common/enable-cross-org-publishing.ps1 new file mode 100644 index 0000000000..eccbf9f1b1 --- /dev/null +++ b/eng/common/enable-cross-org-publishing.ps1 @@ -0,0 +1,6 @@ +param( + [string] $token +) + +Write-Host "##vso[task.setvariable variable=VSS_NUGET_ACCESSTOKEN]$token" +Write-Host "##vso[task.setvariable variable=VSS_NUGET_URI_PREFIXES]https://dnceng.pkgs.visualstudio.com/;https://pkgs.dev.azure.com/dnceng/;https://devdiv.pkgs.visualstudio.com/;https://pkgs.dev.azure.com/devdiv/" diff --git a/eng/common/sdl/extract-artifact-packages.ps1 b/eng/common/sdl/extract-artifact-packages.ps1 index 1fdbb14329..6e6825013b 100644 --- a/eng/common/sdl/extract-artifact-packages.ps1 +++ b/eng/common/sdl/extract-artifact-packages.ps1 @@ -5,6 +5,13 @@ param( $ErrorActionPreference = "Stop" Set-StrictMode -Version 2.0 + +# `tools.ps1` checks $ci to perform some actions. Since the post-build +# scripts don't necessarily execute in the same agent that run the +# build.ps1/sh script this variable isn't automatically set. +$ci = $true +. $PSScriptRoot\..\tools.ps1 + $ExtractPackage = { param( [string] $PackagePath # Full path to a NuGet package diff --git a/eng/common/templates/job/performance.yml b/eng/common/templates/job/performance.yml index f3e1ca3e64..f877fd7a89 100644 --- a/eng/common/templates/job/performance.yml +++ b/eng/common/templates/job/performance.yml @@ -20,7 +20,7 @@ jobs: enableTelemetry: ${{ parameters.enableTelemetry }} enablePublishBuildArtifacts: true continueOnError: ${{ parameters.continueOnError }} - + jobs: - job: '${{ parameters.jobName }}' @@ -51,7 +51,7 @@ jobs: - ${{ if ne(parameters.osGroup, 'Windows_NT') }}: - HelixPreCommand: 'export PERFLAB_UPLOAD_TOKEN="$(PerfCommandUploadTokenLinux)"' - IsInternal: --internal - + - group: DotNet-HelixApi-Access - group: dotnet-benchview diff --git a/eng/common/templates/post-build/channels/netcore-3-tools-validation.yml b/eng/common/templates/post-build/channels/netcore-3-tools-validation.yml new file mode 100644 index 0000000000..cdb74031fc --- /dev/null +++ b/eng/common/templates/post-build/channels/netcore-3-tools-validation.yml @@ -0,0 +1,95 @@ +parameters: + artifactsPublishingAdditionalParameters: '' + publishInstallersAndChecksums: false + +stages: +- stage: NetCore_3_Tools_Validation_Publish + dependsOn: validate + variables: + - template: ../common-variables.yml + displayName: .NET 3 Tools - Validation Publishing + jobs: + - template: ../setup-maestro-vars.yml + + - job: publish_assets + displayName: Publish Assets + dependsOn: setupMaestroVars + variables: + - group: DotNet-Blob-Feed + - group: AzureDevOps-Artifact-Feeds-Pats + - name: BARBuildId + value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ] + - name: IsStableBuild + value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.IsStableBuild'] ] + condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.NETCore_3_Tools_Validation_Channel_Id)) + pool: + vmImage: 'windows-2019' + steps: + - task: DownloadBuildArtifacts@0 + displayName: Download Package Artifacts + inputs: + buildType: current + artifactName: PackageArtifacts + + - task: DownloadBuildArtifacts@0 + displayName: Download Blob Artifacts + inputs: + buildType: current + artifactName: BlobArtifacts + + - task: DownloadBuildArtifacts@0 + displayName: Download Asset Manifests + inputs: + buildType: current + artifactName: AssetManifests + + - task: NuGetToolInstaller@1 + displayName: 'Install NuGet.exe' + + # This is necessary whenever we want to publish/restore to an AzDO private feed + - task: NuGetAuthenticate@0 + displayName: 'Authenticate to AzDO Feeds' + + - task: PowerShell@2 + displayName: Enable cross-org publishing + inputs: + filePath: eng\common\enable-cross-org-publishing.ps1 + arguments: -token $(dn-bot-dnceng-artifact-feeds-rw) + + - task: PowerShell@2 + displayName: Publish Assets + inputs: + filePath: eng\common\sdk-task.ps1 + arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet + /p:ArtifactsCategory=$(_DotNetValidationArtifactsCategory) + /p:IsStableBuild=$(IsStableBuild) + /p:IsInternalBuild=$(IsInternalBuild) + /p:RepositoryName=$(Build.Repository.Name) + /p:CommitSha=$(Build.SourceVersion) + /p:NugetPath=$(NuGetExeToolPath) + /p:AzdoTargetFeedPAT='$(dn-bot-dnceng-universal-packages-rw)' + /p:AzureStorageTargetFeedPAT='$(dotnetfeed-storage-access-key-1)' + /p:BARBuildId=$(BARBuildId) + /p:MaestroApiEndpoint='$(MaestroApiEndPoint)' + /p:BuildAssetRegistryToken='$(MaestroApiAccessToken)' + /p:ManifestsBasePath='$(Build.ArtifactStagingDirectory)/AssetManifests/' + /p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/' + /p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts/' + /p:Configuration=Release + /p:PublishInstallersAndChecksums=${{ parameters.publishInstallersAndChecksums }} + /p:InstallersTargetStaticFeed=$(InstallersBlobFeedUrl) + /p:InstallersAzureAccountKey=$(dotnetcli-storage-key) + /p:ChecksumsTargetStaticFeed=$(ChecksumsBlobFeedUrl) + /p:ChecksumsAzureAccountKey=$(dotnetclichecksums-storage-key) + /p:PublishToAzureDevOpsNuGetFeeds=true + /p:AzureDevOpsStaticShippingFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json' + /p:AzureDevOpsStaticShippingFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)' + /p:AzureDevOpsStaticTransportFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json' + /p:AzureDevOpsStaticTransportFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)' + /p:AzureDevOpsStaticSymbolsFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools-symbols/nuget/v3/index.json' + /p:AzureDevOpsStaticSymbolsFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)' + ${{ parameters.artifactsPublishingAdditionalParameters }} + + - template: ../../steps/promote-build.yml + parameters: + ChannelId: ${{ variables.NETCore_3_Tools_Validation_Channel_Id }} diff --git a/eng/common/templates/post-build/channels/netcore-dev-30.yml b/eng/common/templates/post-build/channels/netcore-3-tools.yml similarity index 82% rename from eng/common/templates/post-build/channels/netcore-dev-30.yml rename to eng/common/templates/post-build/channels/netcore-3-tools.yml index 69f1a9013e..70eec773e7 100644 --- a/eng/common/templates/post-build/channels/netcore-dev-30.yml +++ b/eng/common/templates/post-build/channels/netcore-3-tools.yml @@ -4,18 +4,18 @@ parameters: publishInstallersAndChecksums: false stages: -- stage: NetCore_Dev30_Publish +- stage: NetCore_3_Tools_Publish dependsOn: validate variables: - template: ../common-variables.yml - displayName: .NET Core 3.0 Dev Publishing + displayName: .NET 3 Tools Publishing jobs: - template: ../setup-maestro-vars.yml - job: displayName: Symbol Publishing dependsOn: setupMaestroVars - condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicDevRelease_30_Channel_Id)) + condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.NetCore_3_Tools_Channel_Id)) variables: - group: DotNet-Symbol-Server-Pats pool: @@ -56,7 +56,7 @@ stages: value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ] - name: IsStableBuild value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.IsStableBuild'] ] - condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicDevRelease_30_Channel_Id)) + condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.NetCore_3_Tools_Channel_Id)) pool: vmImage: 'windows-2019' steps: @@ -85,42 +85,46 @@ stages: - task: NuGetAuthenticate@0 displayName: 'Authenticate to AzDO Feeds' + - task: PowerShell@2 + displayName: Enable cross-org publishing + inputs: + filePath: eng\common\enable-cross-org-publishing.ps1 + arguments: -token $(dn-bot-dnceng-artifact-feeds-rw) + - task: PowerShell@2 displayName: Publish Assets - env: - AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-universal-packages-rw) inputs: filePath: eng\common\sdk-task.ps1 - arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet + arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet /p:ArtifactsCategory=$(_DotNetArtifactsCategory) /p:IsStableBuild=$(IsStableBuild) /p:IsInternalBuild=$(IsInternalBuild) /p:RepositoryName=$(Build.Repository.Name) /p:CommitSha=$(Build.SourceVersion) /p:NugetPath=$(NuGetExeToolPath) - /p:AzdoTargetFeedPAT='$(dn-bot-dnceng-universal-packages-rw)' - /p:AzureStorageTargetFeedPAT='$(dotnetfeed-storage-access-key-1)' - /p:BARBuildId=$(BARBuildId) - /p:MaestroApiEndpoint='$(MaestroApiEndPoint)' - /p:BuildAssetRegistryToken='$(MaestroApiAccessToken)' - /p:ManifestsBasePath='$(Build.ArtifactStagingDirectory)/AssetManifests/' - /p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/' - /p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts/' - /p:Configuration=Release + /p:AzdoTargetFeedPAT='$(dn-bot-dnceng-universal-packages-rw)' + /p:AzureStorageTargetFeedPAT='$(dotnetfeed-storage-access-key-1)' + /p:BARBuildId=$(BARBuildId) + /p:MaestroApiEndpoint='$(MaestroApiEndPoint)' + /p:BuildAssetRegistryToken='$(MaestroApiAccessToken)' + /p:ManifestsBasePath='$(Build.ArtifactStagingDirectory)/AssetManifests/' + /p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/' + /p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts/' + /p:Configuration=Release /p:PublishInstallersAndChecksums=${{ parameters.publishInstallersAndChecksums }} /p:InstallersTargetStaticFeed=$(InstallersBlobFeedUrl) /p:InstallersAzureAccountKey=$(dotnetcli-storage-key) /p:ChecksumsTargetStaticFeed=$(ChecksumsBlobFeedUrl) /p:ChecksumsAzureAccountKey=$(dotnetclichecksums-storage-key) /p:PublishToAzureDevOpsNuGetFeeds=true - /p:AzureDevOpsStaticShippingFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3/nuget/v3/index.json' + /p:AzureDevOpsStaticShippingFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json' /p:AzureDevOpsStaticShippingFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)' - /p:AzureDevOpsStaticTransportFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3-transport/nuget/v3/index.json' + /p:AzureDevOpsStaticTransportFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json' /p:AzureDevOpsStaticTransportFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)' - /p:AzureDevOpsStaticSymbolsFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3-symbols/nuget/v3/index.json' + /p:AzureDevOpsStaticSymbolsFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools-symbols/nuget/v3/index.json' /p:AzureDevOpsStaticSymbolsFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)' ${{ parameters.artifactsPublishingAdditionalParameters }} - template: ../../steps/promote-build.yml parameters: - ChannelId: ${{ variables.PublicDevRelease_30_Channel_Id }} + ChannelId: ${{ variables.NetCore_3_Tools_Channel_Id }} \ No newline at end of file diff --git a/eng/common/templates/post-build/channels/netcore-dev-31.yml b/eng/common/templates/post-build/channels/netcore-dev-31.yml index 720a0ab08a..db21254187 100644 --- a/eng/common/templates/post-build/channels/netcore-dev-31.yml +++ b/eng/common/templates/post-build/channels/netcore-dev-31.yml @@ -85,10 +85,14 @@ stages: - task: NuGetAuthenticate@0 displayName: 'Authenticate to AzDO Feeds' + - task: PowerShell@2 + displayName: Enable cross-org publishing + inputs: + filePath: eng\common\enable-cross-org-publishing.ps1 + arguments: -token $(dn-bot-dnceng-artifact-feeds-rw) + - task: PowerShell@2 displayName: Publish Assets - env: - AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-universal-packages-rw) inputs: filePath: eng\common\sdk-task.ps1 arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet diff --git a/eng/common/templates/post-build/channels/netcore-dev-5.yml b/eng/common/templates/post-build/channels/netcore-dev-5.yml index 9c81e39e9c..c4f5a16acb 100644 --- a/eng/common/templates/post-build/channels/netcore-dev-5.yml +++ b/eng/common/templates/post-build/channels/netcore-dev-5.yml @@ -85,10 +85,14 @@ stages: - task: NuGetAuthenticate@0 displayName: 'Authenticate to AzDO Feeds' + - task: PowerShell@2 + displayName: Enable cross-org publishing + inputs: + filePath: eng\common\enable-cross-org-publishing.ps1 + arguments: -token $(dn-bot-dnceng-artifact-feeds-rw) + - task: PowerShell@2 displayName: Publish Assets - env: - AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-universal-packages-rw) inputs: filePath: eng\common\sdk-task.ps1 arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet diff --git a/eng/common/templates/post-build/channels/netcore-internal-30.yml b/eng/common/templates/post-build/channels/netcore-internal-30.yml index 053163cf6a..177b38df35 100644 --- a/eng/common/templates/post-build/channels/netcore-internal-30.yml +++ b/eng/common/templates/post-build/channels/netcore-internal-30.yml @@ -84,10 +84,14 @@ stages: - task: NuGetAuthenticate@0 displayName: 'Authenticate to AzDO Feeds' + - task: PowerShell@2 + displayName: Enable cross-org publishing + inputs: + filePath: eng\common\enable-cross-org-publishing.ps1 + arguments: -token $(dn-bot-dnceng-artifact-feeds-rw) + - task: PowerShell@2 displayName: Publish Assets - env: - AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-universal-packages-rw) inputs: filePath: eng\common\sdk-task.ps1 arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet diff --git a/eng/common/templates/post-build/channels/netcore-release-30.yml b/eng/common/templates/post-build/channels/netcore-release-30.yml index 8ba9237ffc..16ade0db29 100644 --- a/eng/common/templates/post-build/channels/netcore-release-30.yml +++ b/eng/common/templates/post-build/channels/netcore-release-30.yml @@ -85,10 +85,14 @@ stages: - task: NuGetAuthenticate@0 displayName: 'Authenticate to AzDO Feeds' + - task: PowerShell@2 + displayName: Enable cross-org publishing + inputs: + filePath: eng\common\enable-cross-org-publishing.ps1 + arguments: -token $(dn-bot-dnceng-artifact-feeds-rw) + - task: PowerShell@2 displayName: Publish Assets - env: - AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-universal-packages-rw) inputs: filePath: eng\common\sdk-task.ps1 arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet diff --git a/eng/common/templates/post-build/channels/netcore-release-31.yml b/eng/common/templates/post-build/channels/netcore-release-31.yml index d8270eadae..01d56410c7 100644 --- a/eng/common/templates/post-build/channels/netcore-release-31.yml +++ b/eng/common/templates/post-build/channels/netcore-release-31.yml @@ -85,10 +85,14 @@ stages: - task: NuGetAuthenticate@0 displayName: 'Authenticate to AzDO Feeds' + - task: PowerShell@2 + displayName: Enable cross-org publishing + inputs: + filePath: eng\common\enable-cross-org-publishing.ps1 + arguments: -token $(dn-bot-dnceng-artifact-feeds-rw) + - task: PowerShell@2 displayName: Publish Assets - env: - AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-universal-packages-rw) inputs: filePath: eng\common\sdk-task.ps1 arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet diff --git a/eng/common/templates/post-build/channels/netcore-tools-latest.yml b/eng/common/templates/post-build/channels/netcore-tools-latest.yml index c75d186733..157d2d4b97 100644 --- a/eng/common/templates/post-build/channels/netcore-tools-latest.yml +++ b/eng/common/templates/post-build/channels/netcore-tools-latest.yml @@ -85,10 +85,14 @@ stages: - task: NuGetAuthenticate@0 displayName: 'Authenticate to AzDO Feeds' + - task: PowerShell@2 + displayName: Enable cross-org publishing + inputs: + filePath: eng\common\enable-cross-org-publishing.ps1 + arguments: -token $(dn-bot-dnceng-artifact-feeds-rw) + - task: PowerShell@2 displayName: Publish Assets - env: - AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-universal-packages-rw) inputs: filePath: eng\common\sdk-task.ps1 arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet diff --git a/eng/common/templates/post-build/channels/public-validation-release.yml b/eng/common/templates/post-build/channels/netcore-tools-validation.yml similarity index 90% rename from eng/common/templates/post-build/channels/public-validation-release.yml rename to eng/common/templates/post-build/channels/netcore-tools-validation.yml index fb2c23d0f4..d8447e49af 100644 --- a/eng/common/templates/post-build/channels/public-validation-release.yml +++ b/eng/common/templates/post-build/channels/netcore-tools-validation.yml @@ -21,7 +21,7 @@ stages: value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ] - name: IsStableBuild value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.IsStableBuild'] ] - condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicValidationRelease_30_Channel_Id)) + condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.NetCore_Tools_Validation_Channel_Id)) pool: vmImage: 'windows-2019' steps: @@ -50,10 +50,14 @@ stages: - task: NuGetAuthenticate@0 displayName: 'Authenticate to AzDO Feeds' + - task: PowerShell@2 + displayName: Enable cross-org publishing + inputs: + filePath: eng\common\enable-cross-org-publishing.ps1 + arguments: -token $(dn-bot-dnceng-artifact-feeds-rw) + - task: PowerShell@2 displayName: Publish Assets - env: - AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-universal-packages-rw) inputs: filePath: eng\common\sdk-task.ps1 arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet @@ -88,4 +92,4 @@ stages: - template: ../../steps/promote-build.yml parameters: - ChannelId: ${{ variables.PublicValidationRelease_30_Channel_Id }} + ChannelId: ${{ variables.NetCore_Tools_Validation_Channel_Id }} diff --git a/eng/common/templates/post-build/common-variables.yml b/eng/common/templates/post-build/common-variables.yml index adb2a854f2..b4eed6f186 100644 --- a/eng/common/templates/post-build/common-variables.yml +++ b/eng/common/templates/post-build/common-variables.yml @@ -3,10 +3,6 @@ variables: - group: DotNet-DotNetCli-Storage - group: DotNet-MSRC-Storage - # .NET Core 3 Dev - - name: PublicDevRelease_30_Channel_Id - value: 3 - # .NET Core 3.1 Dev - name: PublicDevRelease_31_Channel_Id value: 128 @@ -16,13 +12,21 @@ variables: value: 131 # .NET Tools - Validation - - name: PublicValidationRelease_30_Channel_Id + - name: NetCore_Tools_Validation_Channel_Id value: 9 # .NET Tools - Latest - name: NetCore_Tools_Latest_Channel_Id value: 2 + # .NET 3 Tools - Validation + - name: NETCore_3_Tools_Validation_Channel_Id + value: 390 + + # .NET 3 Tools - Latest + - name: NetCore_3_Tools_Channel_Id + value: 344 + # .NET Core 3.0 Internal Servicing - name: InternalServicing_30_Channel_Id value: 184 diff --git a/eng/common/templates/post-build/post-build.yml b/eng/common/templates/post-build/post-build.yml index 5b9d0a5d99..7ee82d9ff1 100644 --- a/eng/common/templates/post-build/post-build.yml +++ b/eng/common/templates/post-build/post-build.yml @@ -101,12 +101,6 @@ stages: artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} -- template: \eng\common\templates\post-build\channels\netcore-dev-30.yml - parameters: - symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} - artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} - publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} - - template: \eng\common\templates\post-build\channels\netcore-dev-31.yml parameters: symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} @@ -119,11 +113,22 @@ stages: artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} -- template: \eng\common\templates\post-build\channels\public-validation-release.yml +- template: \eng\common\templates\post-build\channels\netcore-tools-validation.yml parameters: artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} +- template: \eng\common\templates\post-build\channels\netcore-3-tools-validation.yml + parameters: + artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} + publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} + +- template: \eng\common\templates\post-build\channels\netcore-3-tools.yml + parameters: + symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} + artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} + publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} + - template: \eng\common\templates\post-build\channels\netcore-release-30.yml parameters: symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} diff --git a/global.json b/global.json index a8857c8277..80408643cf 100644 --- a/global.json +++ b/global.json @@ -25,7 +25,7 @@ }, "msbuild-sdks": { "Yarn.MSBuild": "1.15.2", - "Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19462.4", - "Microsoft.DotNet.Helix.Sdk": "2.0.0-beta.19462.4" + "Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19510.3", + "Microsoft.DotNet.Helix.Sdk": "2.0.0-beta.19510.3" } } From eccabc68ff25dce2611121cb3735630cd656a1a8 Mon Sep 17 00:00:00 2001 From: William Godbe Date: Tue, 15 Oct 2019 11:26:57 -0700 Subject: [PATCH 100/111] Another fixup to item->prop conversion --- .../test/Infrastructure/GenerateTestProps.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets b/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets index c654f40572..8e36725eff 100644 --- a/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets +++ b/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets @@ -14,7 +14,7 @@ - @(_TargetingPackVersionInfo->'%(PackageVersion)' + @(_TargetingPackVersionInfo->'%(_TargetingPackVersionInfo.PackageVersion)' $(AspNetCoreBaselineVersion) From 700f4301ea618f499a6b2c36d26a4477a2da9360 Mon Sep 17 00:00:00 2001 From: William Godbe Date: Tue, 15 Oct 2019 12:16:07 -0700 Subject: [PATCH 101/111] Fixup prop --- .../test/Infrastructure/GenerateTestProps.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets b/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets index 8e36725eff..4fa7130601 100644 --- a/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets +++ b/src/ProjectTemplates/test/Infrastructure/GenerateTestProps.targets @@ -14,7 +14,7 @@ - @(_TargetingPackVersionInfo->'%(_TargetingPackVersionInfo.PackageVersion)' + %(_TargetingPackVersionInfo.PackageVersion) $(AspNetCoreBaselineVersion) From 579f30f591d6b13a33a17ed6cc47a6a0883712e7 Mon Sep 17 00:00:00 2001 From: Javier Calvarro Nelson Date: Tue, 15 Oct 2019 22:17:05 +0200 Subject: [PATCH 102/111] [Blazor][Fixes #14999] Razor Class Library Static Assets with spaces do not resolve (#15024) --- .../StaticWebAssets/StaticWebAssetsFileProvider.cs | 4 ++-- .../test/Microsoft.AspNetCore.Hosting.Tests.csproj | 1 + .../StaticWebAssetsFileProviderTests.cs | 11 +++++++++++ .../test/testroot/wwwroot/Static Web Assets.txt | 1 + 4 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 src/Hosting/Hosting/test/testroot/wwwroot/Static Web Assets.txt diff --git a/src/Hosting/Hosting/src/StaticWebAssets/StaticWebAssetsFileProvider.cs b/src/Hosting/Hosting/src/StaticWebAssets/StaticWebAssetsFileProvider.cs index 9db5c7b611..5c634ab208 100644 --- a/src/Hosting/Hosting/src/StaticWebAssets/StaticWebAssetsFileProvider.cs +++ b/src/Hosting/Hosting/src/StaticWebAssets/StaticWebAssetsFileProvider.cs @@ -46,7 +46,7 @@ namespace Microsoft.AspNetCore.Hosting.StaticWebAssets } else { - return InnerProvider.GetDirectoryContents(physicalPath); + return InnerProvider.GetDirectoryContents(physicalPath.Value); } } @@ -59,7 +59,7 @@ namespace Microsoft.AspNetCore.Hosting.StaticWebAssets } else { - return InnerProvider.GetFileInfo(physicalPath); + return InnerProvider.GetFileInfo(physicalPath.Value); } } diff --git a/src/Hosting/Hosting/test/Microsoft.AspNetCore.Hosting.Tests.csproj b/src/Hosting/Hosting/test/Microsoft.AspNetCore.Hosting.Tests.csproj index 55c6f7fa54..7c9b9141a1 100644 --- a/src/Hosting/Hosting/test/Microsoft.AspNetCore.Hosting.Tests.csproj +++ b/src/Hosting/Hosting/test/Microsoft.AspNetCore.Hosting.Tests.csproj @@ -9,6 +9,7 @@ + diff --git a/src/Hosting/Hosting/test/StaticWebAssets/StaticWebAssetsFileProviderTests.cs b/src/Hosting/Hosting/test/StaticWebAssets/StaticWebAssetsFileProviderTests.cs index dd52fced46..249f0a1670 100644 --- a/src/Hosting/Hosting/test/StaticWebAssets/StaticWebAssetsFileProviderTests.cs +++ b/src/Hosting/Hosting/test/StaticWebAssets/StaticWebAssetsFileProviderTests.cs @@ -37,6 +37,17 @@ namespace Microsoft.AspNetCore.Hosting.StaticWebAssets Assert.Equal("/_content", provider.BasePath); } + [Fact] + public void StaticWebAssetsFileProvider_FindsFileWithSpaces() + { + // Arrange & Act + var provider = new StaticWebAssetsFileProvider("/_content", + Path.Combine(AppContext.BaseDirectory, "testroot", "wwwroot")); + + // Assert + Assert.True(provider.GetFileInfo("/_content/Static Web Assets.txt").Exists); + } + [Fact] public void GetFileInfo_DoesNotMatch_IncompletePrefixSegments() { diff --git a/src/Hosting/Hosting/test/testroot/wwwroot/Static Web Assets.txt b/src/Hosting/Hosting/test/testroot/wwwroot/Static Web Assets.txt new file mode 100644 index 0000000000..3ecb6a0ed7 --- /dev/null +++ b/src/Hosting/Hosting/test/testroot/wwwroot/Static Web Assets.txt @@ -0,0 +1 @@ +This file is here to validate that the static web assets file provider respect spaces. From 30b31d70869b0545e4a217584f15ff96dcb3a34e Mon Sep 17 00:00:00 2001 From: Pranav K Date: Tue, 15 Oct 2019 13:17:58 -0700 Subject: [PATCH 103/111] Account for Layout ordering in Blazor (#15001) The server requires that clients send descriptors in sequence. Since MVC executes Layouts in an inside-out manner, modify the client to explicitly order descriptors Fixes https://github.com/aspnet/AspNetCore/issues/14474 --- .../appsettings.Development.json | 2 +- .../Web.JS/dist/Release/blazor.server.js | 2 +- .../src/Platform/Circuits/CircuitManager.ts | 2 +- .../MultipleRootComponentsTest.cs | 21 +++-- .../TestServer/MultipleComponents.cs | 51 ++++++++++++ .../Pages/MultipleComponents.cshtml | 82 ++++++------------- .../Pages/MultipleComponentsLayout.cshtml | 43 ++++++++++ .../test/testassets/TestServer/Program.cs | 6 +- 8 files changed, 138 insertions(+), 71 deletions(-) create mode 100644 src/Components/test/testassets/TestServer/MultipleComponents.cs create mode 100644 src/Components/test/testassets/TestServer/Pages/MultipleComponentsLayout.cshtml diff --git a/src/Components/Samples/BlazorServerApp/appsettings.Development.json b/src/Components/Samples/BlazorServerApp/appsettings.Development.json index e203e9407e..d61bc2b736 100644 --- a/src/Components/Samples/BlazorServerApp/appsettings.Development.json +++ b/src/Components/Samples/BlazorServerApp/appsettings.Development.json @@ -3,7 +3,7 @@ "LogLevel": { "Default": "Debug", "System": "Information", - "Microsoft": "Information" + "Microsoft": "Debug" } } } diff --git a/src/Components/Web.JS/dist/Release/blazor.server.js b/src/Components/Web.JS/dist/Release/blazor.server.js index 3bcc27ce1e..3b085c3f0c 100644 --- a/src/Components/Web.JS/dist/Release/blazor.server.js +++ b/src/Components/Web.JS/dist/Release/blazor.server.js @@ -12,4 +12,4 @@ var r=n(51),o=n(52),i=n(53);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647 * @author Feross Aboukhadijeh * @license MIT */ -function r(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(c=l[u],!b(e[c],t[c],n,r))return!1;return!0}(e,t,n,a))}return n?e===t:e==t}function m(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function w(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 E(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&&y(o,n,"Missing expected exception"+r);var a="string"==typeof r,s=!e&&o&&!n;if((!e&&i.isError(o)&&a&&w(o,n)||s)&&y(o,n,"Got unwanted exception"+r),e&&o&&n&&!w(o,n)||!e&&o)throw o}f.AssertionError=function(e){var t;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=d(g((t=this).actual),128)+" "+t.operator+" "+d(g(t.expected),128),this.generatedMessage=!0);var n=e.stackStartFunction||y;if(Error.captureStackTrace)Error.captureStackTrace(this,n);else{var r=new Error;if(r.stack){var o=r.stack,i=p(n),a=o.indexOf("\n"+i);if(a>=0){var s=o.indexOf("\n",a+1);o=o.substring(s+1)}this.stack=o}}},i.inherits(f.AssertionError,Error),f.fail=y,f.ok=v,f.equal=function(e,t,n){e!=t&&y(e,t,n,"==",f.equal)},f.notEqual=function(e,t,n){e==t&&y(e,t,n,"!=",f.notEqual)},f.deepEqual=function(e,t,n){b(e,t,!1)||y(e,t,n,"deepEqual",f.deepEqual)},f.deepStrictEqual=function(e,t,n){b(e,t,!0)||y(e,t,n,"deepStrictEqual",f.deepStrictEqual)},f.notDeepEqual=function(e,t,n){b(e,t,!1)&&y(e,t,n,"notDeepEqual",f.notDeepEqual)},f.notDeepStrictEqual=function e(t,n,r){b(t,n,!0)&&y(t,n,r,"notDeepStrictEqual",e)},f.strictEqual=function(e,t,n){e!==t&&y(e,t,n,"===",f.strictEqual)},f.notStrictEqual=function(e,t,n){e===t&&y(e,t,n,"!==",f.notStrictEqual)},f.throws=function(e,t,n){E(!0,e,t,n)},f.doesNotThrow=function(e,t,n){E(!1,e,t,n)},f.ifError=function(e){if(e)throw e};var S=Object.keys||function(e){var t=[];for(var n in e)a.call(e,n)&&t.push(n);return t}}).call(this,n(10))},function(e,t){e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t,n){e.exports=n(11)},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t){},function(e,t,n){"use strict";var r=n(15).Buffer,o=n(61);e.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.head=null,this.tail=null,this.length=0}return e.prototype.push=function(e){var t={data:e,next:null};this.length>0?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(6),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),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(64),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(10))},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(11),t.Transform=n(43),t.PassThrough=n(68)},function(e,t,n){"use strict";e.exports=i;var r=n(43),o=n(21);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(22);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;ai)&&((n=r.allocUnsafe(9))[0]=203,n.writeDoubleBE(e,1)),n}e.exports=function(e,t,n,i){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(!i&&"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=-1,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 a(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 a(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 a(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){e.done?o(e.value):new n(function(t){t(e.value)}).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=(o=a.trys).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(73),o=Math.pow(2,32),i=Math.pow(2,21)-1,a=function(){function e(e){this.batchData=e;var t=new l(e);this.arrayRangeReader=new f(e),this.arrayBuilderSegmentReader=new h(e),this.diffReader=new s(e),this.editReader=new c(e,t),this.frameReader=new u(e,t)}return e.prototype.updatedComponents=function(){return p(this.batchData,this.batchData.length-20)},e.prototype.referenceFrames=function(){return p(this.batchData,this.batchData.length-16)},e.prototype.disposedComponentIds=function(){return p(this.batchData,this.batchData.length-12)},e.prototype.disposedEventHandlerIds=function(){return p(this.batchData,this.batchData.length-8)},e.prototype.updatedComponentsEntry=function(e,t){var n=e+4*t;return p(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 p(this.batchData,n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=e+8*t;return g(this.batchData,n)},e}();t.OutOfProcessRenderBatch=a;var s=function(){function e(e){this.batchDataUint8=e}return e.prototype.componentId=function(e){return p(this.batchDataUint8,e)},e.prototype.edits=function(e){return e+4},e.prototype.editsEntry=function(e,t){return e+16*t},e}(),c=function(){function e(e,t){this.batchDataUint8=e,this.stringReader=t}return e.prototype.editType=function(e){return p(this.batchDataUint8,e)},e.prototype.siblingIndex=function(e){return p(this.batchDataUint8,e+4)},e.prototype.newTreeIndex=function(e){return p(this.batchDataUint8,e+8)},e.prototype.moveToSiblingIndex=function(e){return p(this.batchDataUint8,e+8)},e.prototype.removedAttributeName=function(e){var t=p(this.batchDataUint8,e+12);return this.stringReader.readString(t)},e}(),u=function(){function e(e,t){this.batchDataUint8=e,this.stringReader=t}return e.prototype.frameType=function(e){return p(this.batchDataUint8,e)},e.prototype.subtreeLength=function(e){return p(this.batchDataUint8,e+4)},e.prototype.elementReferenceCaptureId=function(e){var t=p(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.componentId=function(e){return p(this.batchDataUint8,e+8)},e.prototype.elementName=function(e){var t=p(this.batchDataUint8,e+8);return this.stringReader.readString(t)},e.prototype.textContent=function(e){var t=p(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.markupContent=function(e){var t=p(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.attributeName=function(e){var t=p(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.attributeValue=function(e){var t=p(this.batchDataUint8,e+8);return this.stringReader.readString(t)},e.prototype.attributeEventHandlerId=function(e){return g(this.batchDataUint8,e+12)},e}(),l=function(){function e(e){this.batchDataUint8=e,this.stringTableStartIndex=p(e,e.length-4)}return e.prototype.readString=function(e){if(-1===e)return null;var t,n=p(this.batchDataUint8,this.stringTableStartIndex+4*e),o=function(e,t){for(var n=0,r=0,o=0;o<4;o++){var i=e[t+o];if(n|=(127&i)<>>0)}function g(e,t){var n=d(e,t+4);if(n>i)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*o+d(e,t)}},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=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){e.done?o(e.value):new n(function(t){t(e.value)}).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=(o=a.trys).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);var r=n(6),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=new Uint8Array([145,i.MessageType.Ping]),c=function(){function e(){this.name="messagepack",this.version=1,this.transferFormat=i.TransferFormat.Binary,this.errorResult=1,this.voidResult=2,this.nonVoidResult=3}return e.prototype.parseMessages=function(e,t){if(!(e instanceof r.Buffer||(n=e,n&&"undefined"!=typeof ArrayBuffer&&(n instanceof ArrayBuffer||n.constructor&&"ArrayBuffer"===n.constructor.name))))throw new Error("Invalid input for MessagePack hub protocol. Expected an ArrayBuffer or Buffer.");var n;null===t&&(t=i.NullLogger.instance);for(var o=[],s=0,c=a.parse(e);s=0;u--)if(l[u]!==f[u])return!1;for(u=l.length-1;u>=0;u--)if(c=l[u],!b(e[c],t[c],n,r))return!1;return!0}(e,t,n,a))}return n?e===t:e==t}function m(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function w(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 E(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&&y(o,n,"Missing expected exception"+r);var a="string"==typeof r,s=!e&&o&&!n;if((!e&&i.isError(o)&&a&&w(o,n)||s)&&y(o,n,"Got unwanted exception"+r),e&&o&&n&&!w(o,n)||!e&&o)throw o}f.AssertionError=function(e){var t;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=d(g((t=this).actual),128)+" "+t.operator+" "+d(g(t.expected),128),this.generatedMessage=!0);var n=e.stackStartFunction||y;if(Error.captureStackTrace)Error.captureStackTrace(this,n);else{var r=new Error;if(r.stack){var o=r.stack,i=p(n),a=o.indexOf("\n"+i);if(a>=0){var s=o.indexOf("\n",a+1);o=o.substring(s+1)}this.stack=o}}},i.inherits(f.AssertionError,Error),f.fail=y,f.ok=v,f.equal=function(e,t,n){e!=t&&y(e,t,n,"==",f.equal)},f.notEqual=function(e,t,n){e==t&&y(e,t,n,"!=",f.notEqual)},f.deepEqual=function(e,t,n){b(e,t,!1)||y(e,t,n,"deepEqual",f.deepEqual)},f.deepStrictEqual=function(e,t,n){b(e,t,!0)||y(e,t,n,"deepStrictEqual",f.deepStrictEqual)},f.notDeepEqual=function(e,t,n){b(e,t,!1)&&y(e,t,n,"notDeepEqual",f.notDeepEqual)},f.notDeepStrictEqual=function e(t,n,r){b(t,n,!0)&&y(t,n,r,"notDeepStrictEqual",e)},f.strictEqual=function(e,t,n){e!==t&&y(e,t,n,"===",f.strictEqual)},f.notStrictEqual=function(e,t,n){e===t&&y(e,t,n,"!==",f.notStrictEqual)},f.throws=function(e,t,n){E(!0,e,t,n)},f.doesNotThrow=function(e,t,n){E(!1,e,t,n)},f.ifError=function(e){if(e)throw e};var S=Object.keys||function(e){var t=[];for(var n in e)a.call(e,n)&&t.push(n);return t}}).call(this,n(10))},function(e,t){e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t,n){e.exports=n(11)},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t){},function(e,t,n){"use strict";var r=n(15).Buffer,o=n(61);e.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.head=null,this.tail=null,this.length=0}return e.prototype.push=function(e){var t={data:e,next:null};this.length>0?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(6),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),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(64),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(10))},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(11),t.Transform=n(43),t.PassThrough=n(68)},function(e,t,n){"use strict";e.exports=i;var r=n(43),o=n(21);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(22);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;ai)&&((n=r.allocUnsafe(9))[0]=203,n.writeDoubleBE(e,1)),n}e.exports=function(e,t,n,i){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(!i&&"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=-1,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 a(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 a(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 a(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){e.done?o(e.value):new n(function(t){t(e.value)}).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=(o=a.trys).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(73),o=Math.pow(2,32),i=Math.pow(2,21)-1,a=function(){function e(e){this.batchData=e;var t=new l(e);this.arrayRangeReader=new f(e),this.arrayBuilderSegmentReader=new h(e),this.diffReader=new s(e),this.editReader=new c(e,t),this.frameReader=new u(e,t)}return e.prototype.updatedComponents=function(){return p(this.batchData,this.batchData.length-20)},e.prototype.referenceFrames=function(){return p(this.batchData,this.batchData.length-16)},e.prototype.disposedComponentIds=function(){return p(this.batchData,this.batchData.length-12)},e.prototype.disposedEventHandlerIds=function(){return p(this.batchData,this.batchData.length-8)},e.prototype.updatedComponentsEntry=function(e,t){var n=e+4*t;return p(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 p(this.batchData,n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=e+8*t;return g(this.batchData,n)},e}();t.OutOfProcessRenderBatch=a;var s=function(){function e(e){this.batchDataUint8=e}return e.prototype.componentId=function(e){return p(this.batchDataUint8,e)},e.prototype.edits=function(e){return e+4},e.prototype.editsEntry=function(e,t){return e+16*t},e}(),c=function(){function e(e,t){this.batchDataUint8=e,this.stringReader=t}return e.prototype.editType=function(e){return p(this.batchDataUint8,e)},e.prototype.siblingIndex=function(e){return p(this.batchDataUint8,e+4)},e.prototype.newTreeIndex=function(e){return p(this.batchDataUint8,e+8)},e.prototype.moveToSiblingIndex=function(e){return p(this.batchDataUint8,e+8)},e.prototype.removedAttributeName=function(e){var t=p(this.batchDataUint8,e+12);return this.stringReader.readString(t)},e}(),u=function(){function e(e,t){this.batchDataUint8=e,this.stringReader=t}return e.prototype.frameType=function(e){return p(this.batchDataUint8,e)},e.prototype.subtreeLength=function(e){return p(this.batchDataUint8,e+4)},e.prototype.elementReferenceCaptureId=function(e){var t=p(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.componentId=function(e){return p(this.batchDataUint8,e+8)},e.prototype.elementName=function(e){var t=p(this.batchDataUint8,e+8);return this.stringReader.readString(t)},e.prototype.textContent=function(e){var t=p(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.markupContent=function(e){var t=p(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.attributeName=function(e){var t=p(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.attributeValue=function(e){var t=p(this.batchDataUint8,e+8);return this.stringReader.readString(t)},e.prototype.attributeEventHandlerId=function(e){return g(this.batchDataUint8,e+12)},e}(),l=function(){function e(e){this.batchDataUint8=e,this.stringTableStartIndex=p(e,e.length-4)}return e.prototype.readString=function(e){if(-1===e)return null;var t,n=p(this.batchDataUint8,this.stringTableStartIndex+4*e),o=function(e,t){for(var n=0,r=0,o=0;o<4;o++){var i=e[t+o];if(n|=(127&i)<>>0)}function g(e,t){var n=d(e,t+4);if(n>i)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*o+d(e,t)}},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=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){e.done?o(e.value):new n(function(t){t(e.value)}).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=(o=a.trys).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);var r=n(6),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=new Uint8Array([145,i.MessageType.Ping]),c=function(){function e(){this.name="messagepack",this.version=1,this.transferFormat=i.TransferFormat.Binary,this.errorResult=1,this.voidResult=2,this.nonVoidResult=3}return e.prototype.parseMessages=function(e,t){if(!(e instanceof r.Buffer||(n=e,n&&"undefined"!=typeof ArrayBuffer&&(n instanceof ArrayBuffer||n.constructor&&"ArrayBuffer"===n.constructor.name))))throw new Error("Invalid input for MessagePack hub protocol. Expected an ArrayBuffer or Buffer.");var n;null===t&&(t=i.NullLogger.instance);for(var o=[],s=0,c=a.parse(e);s a.sequence - b.sequence); } diff --git a/src/Components/test/E2ETest/ServerExecutionTests/MultipleRootComponentsTest.cs b/src/Components/test/E2ETest/ServerExecutionTests/MultipleRootComponentsTest.cs index b3523741a6..6fc25c2c46 100644 --- a/src/Components/test/E2ETest/ServerExecutionTests/MultipleRootComponentsTest.cs +++ b/src/Components/test/E2ETest/ServerExecutionTests/MultipleRootComponentsTest.cs @@ -16,13 +16,13 @@ using Xunit.Abstractions; namespace Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests { - public class MultipleComponentsTest : ServerTestBase> + public class MultipleComponentsTest : ServerTestBase> { private const string MarkerPattern = ".*?.*?"; public MultipleComponentsTest( BrowserFixture browserFixture, - BasicTestAppServerSiteFixture serverFixture, + BasicTestAppServerSiteFixture serverFixture, ITestOutputHelper output) : base(browserFixture, serverFixture, output) { @@ -46,7 +46,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests [Fact] public void DoesNotStartMultipleConnections() { - Navigate("/prerendered/multiple-components"); + Navigate("/multiple-components"); BeginInteractivity(); Browser.Exists(By.CssSelector("h3.interactive")); @@ -60,17 +60,18 @@ namespace Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests }); } - [Fact] public void CanRenderMultipleRootComponents() { - Navigate("/prerendered/multiple-components"); + Navigate("/multiple-components"); var greets = Browser.FindElements(By.CssSelector(".greet-wrapper .greet")).Select(e => e.Text).ToArray(); - Assert.Equal(5, greets.Length); // 1 statically rendered + 3 prerendered + 1 server prerendered + Assert.Equal(7, greets.Length); // 1 statically rendered + 5 prerendered + 1 server prerendered + Assert.DoesNotContain("Hello Red fish", greets); Assert.Single(greets, "Hello John"); Assert.Single(greets, "Hello Abraham"); + Assert.Equal(2, greets.Where(g => g == "Hello Blue fish").Count()); Assert.Equal(3, greets.Where(g => string.Equals("Hello", g)).Count()); // 3 server prerendered without parameters var content = Browser.FindElement(By.Id("test-container")).GetAttribute("innerHTML"); var markers = ReadMarkers(content); @@ -86,7 +87,11 @@ namespace Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests false, true, false, - true + true, + false, + true, + false, + true, }; Assert.Equal(expectedComponentSequence, componentSequence); @@ -96,6 +101,8 @@ namespace Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests Browser.Exists(By.CssSelector("h3.interactive")); var updatedGreets = Browser.FindElements(By.CssSelector(".greet-wrapper .greet")).Select(e => e.Text).ToArray(); Assert.Equal(7, updatedGreets.Where(g => string.Equals("Hello Alfred", g)).Count()); + Assert.Equal(2, updatedGreets.Where(g => g == "Hello Red fish").Count()); + Assert.Equal(2, updatedGreets.Where(g => g == "Hello Blue fish").Count()); Assert.Single(updatedGreets.Where(g => string.Equals("Hello Albert", g))); Assert.Single(updatedGreets.Where(g => string.Equals("Hello Abraham", g))); } diff --git a/src/Components/test/testassets/TestServer/MultipleComponents.cs b/src/Components/test/testassets/TestServer/MultipleComponents.cs new file mode 100644 index 0000000000..b48de346df --- /dev/null +++ b/src/Components/test/testassets/TestServer/MultipleComponents.cs @@ -0,0 +1,51 @@ +using Microsoft.AspNetCore.Authentication.Cookies; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; + +namespace TestServer +{ + public class MultipleComponents + { + public MultipleComponents(IConfiguration configuration) + { + Configuration = configuration; + } + + public IConfiguration Configuration { get; } + + // This method gets called by the runtime. Use this method to add services to the container. + public void ConfigureServices(IServiceCollection services) + { + services.AddMvc(); + services.AddServerSideBlazor(); + services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie(); + } + + // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. + public void Configure(IApplicationBuilder app, IWebHostEnvironment env) + { + if (env.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + } + + app.Map("/multiple-components", app => + { + app.UseStaticFiles(); + + app.UseAuthentication(); + + app.UseRouting(); + app.UseEndpoints(endpoints => + { + endpoints.MapRazorPages(); + endpoints.MapFallbackToPage("/MultipleComponents"); + endpoints.MapBlazorHub(); + }); + }); + } + } +} diff --git a/src/Components/test/testassets/TestServer/Pages/MultipleComponents.cshtml b/src/Components/test/testassets/TestServer/Pages/MultipleComponents.cshtml index c387700129..7ad48b9f84 100644 --- a/src/Components/test/testassets/TestServer/Pages/MultipleComponents.cshtml +++ b/src/Components/test/testassets/TestServer/Pages/MultipleComponents.cshtml @@ -1,59 +1,29 @@ @page "/multiple-components" @using BasicTestApp.MultipleComponents; - - - - Multiple component entry points - - @* This page is used to validate the ability to render multiple root components in a blazor server-side application. - *@ - - -
- @(await Html.RenderComponentAsync(RenderMode.ServerPrerendered)) - @(await Html.RenderComponentAsync(RenderMode.Server)) - - -
-

Some content before

- -

Some content between

- -

Some content after

-
-

Some content before

- - -

Some content after

-
-
-
- - -
+ +@{ + Layout = "./MultipleComponentsLayout.cshtml"; +} + + +@(await Html.RenderComponentAsync(RenderMode.ServerPrerendered)) +@(await Html.RenderComponentAsync(RenderMode.Server)) + + +
+

Some content before

+ +

Some content between

+ +

Some content after

+
+

Some content before

+ + +

Some content after

- - @* - So that E2E tests can make assertions about both the prerendered and - interactive states, we only load the .js file when told to. - *@ -
- - - - - - - +
+
+ + +
diff --git a/src/Components/test/testassets/TestServer/Pages/MultipleComponentsLayout.cshtml b/src/Components/test/testassets/TestServer/Pages/MultipleComponentsLayout.cshtml new file mode 100644 index 0000000000..8f96aa4835 --- /dev/null +++ b/src/Components/test/testassets/TestServer/Pages/MultipleComponentsLayout.cshtml @@ -0,0 +1,43 @@ +@using BasicTestApp.MultipleComponents; + + + + + Multiple component entry points + + @* This page is used to validate the ability to render multiple root components in a blazor server-side application. + *@ + + +
+ + + @RenderBody() + + +
+ + @* + So that E2E tests can make assertions about both the prerendered and + interactive states, we only load the .js file when told to. + *@ +
+ + + + + + + diff --git a/src/Components/test/testassets/TestServer/Program.cs b/src/Components/test/testassets/TestServer/Program.cs index 27753b49a6..77f09efedc 100644 --- a/src/Components/test/testassets/TestServer/Program.cs +++ b/src/Components/test/testassets/TestServer/Program.cs @@ -1,15 +1,10 @@ -using System; using System.Collections.Generic; using System.Linq; using System.Reflection; -using System.Threading; using System.Threading.Tasks; -using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting.Server; using Microsoft.AspNetCore.Hosting.Server.Features; -using Microsoft.AspNetCore.Http.Features; -using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; @@ -28,6 +23,7 @@ namespace TestServer ["Server authentication"] = (BuildWebHost(CreateAdditionalArgs(args)), "/subdir"), ["CORS (WASM)"] = (BuildWebHost(CreateAdditionalArgs(args)), "/subdir"), ["Prerendering (Server-side)"] = (BuildWebHost(CreateAdditionalArgs(args)), "/prerendered"), + ["Multiple components (Server-side)"] = (BuildWebHost(CreateAdditionalArgs(args)), "/multiple-components"), ["Globalization + Localization (Server-side)"] = (BuildWebHost(CreateAdditionalArgs(args)), "/subdir"), ["Server-side blazor"] = (BuildWebHost(CreateAdditionalArgs(args)), "/subdir"), ["Hosted client-side blazor"] = (BuildWebHost(CreateAdditionalArgs(args)), "/subdir"), From 504f7f6856db07ffc2d41e1098e68a8ce7037748 Mon Sep 17 00:00:00 2001 From: Pranav K Date: Tue, 15 Oct 2019 16:46:35 -0700 Subject: [PATCH 104/111] Produce a ModelState error when reading the form throws (#14994) * Introduce ValueProviderException analogous to InputFormatterException * Record ValueProviderException as a model state error * Fixup bug in reading ProblemDetails \ ValidationProblemDetails using the converter Fixes https://github.com/aspnet/AspNetCore/issues/10291 --- ....AspNetCore.Mvc.Abstractions.netcoreapp.cs | 5 ++ .../src/ModelBinding/ModelStateDictionary.cs | 12 +++- .../ModelBinding/ValueProviderException.cs | 33 ++++++++++ .../ModelBinding/ModelStateDictionaryTest.cs | 47 ++++++++++++-- src/Mvc/Mvc.Core/src/ControllerBase.cs | 28 +++++++-- .../ControllerBinderDelegateProvider.cs | 7 ++- .../ProblemDetailsJsonConverter.cs | 2 +- .../ValidationProblemDetailsJsonConverter.cs | 2 +- .../ModelBinding/CompositeValueProvider.cs | 16 +++++ .../FormFileValueProviderFactory.cs | 18 +++++- .../ModelBinding/FormValueProviderFactory.cs | 16 ++++- src/Mvc/Mvc.Core/src/Resources.resx | 3 + src/Mvc/Mvc.Core/test/ControllerBaseTest.cs | 31 +++++++++- .../ControllerBinderDelegateProviderTest.cs | 48 +++++++++++++++ ....cs => ProblemDetailsJsonConverterTest.cs} | 33 +++++++++- ...idationProblemDetailsJsonConverterTest.cs} | 61 +++++++++++++++++-- .../src/Infrastructure/PageBinderFactory.cs | 13 +++- src/Mvc/Mvc.RazorPages/src/PageBase.cs | 29 +++++++-- src/Mvc/Mvc.RazorPages/src/PageModel.cs | 28 +++++++-- .../Infrastructure/PageBinderFactoryTest.cs | 51 ++++++++++++++++ src/Mvc/Mvc.RazorPages/test/PageModelTest.cs | 29 +++++++++ src/Mvc/Mvc.RazorPages/test/PageTest.cs | 29 +++++++++ .../test/Mvc.FunctionalTests/BasicTests.cs | 36 ++++++++--- .../Controllers/HomeController.cs | 5 ++ 24 files changed, 538 insertions(+), 44 deletions(-) create mode 100644 src/Mvc/Mvc.Abstractions/src/ModelBinding/ValueProviderException.cs rename src/Mvc/Mvc.Core/test/Infrastructure/{ProblemDetailsConverterTest.cs => ProblemDetailsJsonConverterTest.cs} (80%) rename src/Mvc/Mvc.Core/test/Infrastructure/{ValidationProblemDetailsConverterTest.cs => ValidationProblemDetailsJsonConverterTest.cs} (70%) diff --git a/src/Mvc/Mvc.Abstractions/ref/Microsoft.AspNetCore.Mvc.Abstractions.netcoreapp.cs b/src/Mvc/Mvc.Abstractions/ref/Microsoft.AspNetCore.Mvc.Abstractions.netcoreapp.cs index 3dc69d93e8..a13240eca5 100644 --- a/src/Mvc/Mvc.Abstractions/ref/Microsoft.AspNetCore.Mvc.Abstractions.netcoreapp.cs +++ b/src/Mvc/Mvc.Abstractions/ref/Microsoft.AspNetCore.Mvc.Abstractions.netcoreapp.cs @@ -823,6 +823,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding { public TooManyModelErrorsException(string message) { } } + public sealed partial class ValueProviderException : System.Exception + { + public ValueProviderException(string message) { } + public ValueProviderException(string message, System.Exception innerException) { } + } public partial class ValueProviderFactoryContext { public ValueProviderFactoryContext(Microsoft.AspNetCore.Mvc.ActionContext context) { } diff --git a/src/Mvc/Mvc.Abstractions/src/ModelBinding/ModelStateDictionary.cs b/src/Mvc/Mvc.Abstractions/src/ModelBinding/ModelStateDictionary.cs index 40cb92c44c..53c475d199 100644 --- a/src/Mvc/Mvc.Abstractions/src/ModelBinding/ModelStateDictionary.cs +++ b/src/Mvc/Mvc.Abstractions/src/ModelBinding/ModelStateDictionary.cs @@ -203,6 +203,13 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding throw new ArgumentNullException(nameof(exception)); } + if ((exception is InputFormatterException || exception is ValueProviderException) + && !string.IsNullOrEmpty(exception.Message)) + { + // InputFormatterException, ValueProviderException is a signal that the message is safe to expose to clients + return TryAddModelError(key, exception.Message); + } + if (ErrorCount >= MaxAllowedErrors - 1) { EnsureMaxErrorsReachedRecorded(); @@ -311,9 +318,10 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding return TryAddModelError(key, errorMessage); } - else if (exception is InputFormatterException && !string.IsNullOrEmpty(exception.Message)) + else if ((exception is InputFormatterException || exception is ValueProviderException) + && !string.IsNullOrEmpty(exception.Message)) { - // InputFormatterException is a signal that the message is safe to expose to clients + // InputFormatterException, ValueProviderException is a signal that the message is safe to expose to clients return TryAddModelError(key, exception.Message); } diff --git a/src/Mvc/Mvc.Abstractions/src/ModelBinding/ValueProviderException.cs b/src/Mvc/Mvc.Abstractions/src/ModelBinding/ValueProviderException.cs new file mode 100644 index 0000000000..7607c72722 --- /dev/null +++ b/src/Mvc/Mvc.Abstractions/src/ModelBinding/ValueProviderException.cs @@ -0,0 +1,33 @@ +// 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.AspNetCore.Mvc.ModelBinding +{ + /// + /// Exception thrown by when the input is unable to be read. + /// + public sealed class ValueProviderException : Exception + { + /// + /// Initializes a new instance of with the specified . + /// + /// The exception message. + public ValueProviderException(string message) + : base(message) + { + } + + /// + /// Initializes a new instance of with the specified and + /// inner exception that is the cause of this exception. + /// + /// The exception message. + /// The exception that is the cause of the current exception. + public ValueProviderException(string message, Exception innerException) + : base(message, innerException) + { + } + } +} diff --git a/src/Mvc/Mvc.Abstractions/test/ModelBinding/ModelStateDictionaryTest.cs b/src/Mvc/Mvc.Abstractions/test/ModelBinding/ModelStateDictionaryTest.cs index 2af7b47324..d5f13654f5 100644 --- a/src/Mvc/Mvc.Abstractions/test/ModelBinding/ModelStateDictionaryTest.cs +++ b/src/Mvc/Mvc.Abstractions/test/ModelBinding/ModelStateDictionaryTest.cs @@ -1207,8 +1207,9 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding public void TryAddModelException_AddsErrorMessage_ForInputFormatterException() { // Arrange + var expectedMessage = "This is an InputFormatterException"; var dictionary = new ModelStateDictionary(); - var exception = new InputFormatterException("This is an InputFormatterException."); + var exception = new InputFormatterException(expectedMessage); // Act dictionary.TryAddModelException("key", exception); @@ -1217,7 +1218,25 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding var entry = Assert.Single(dictionary); Assert.Equal("key", entry.Key); var error = Assert.Single(entry.Value.Errors); - Assert.Same(exception, error.Exception); + Assert.Equal(expectedMessage, error.ErrorMessage); + } + + [Fact] + public void TryAddModelException_AddsErrorMessage_ForValueProviderException() + { + // Arrange + var expectedMessage = "This is an ValueProviderException"; + var dictionary = new ModelStateDictionary(); + var exception = new ValueProviderException(expectedMessage); + + // Act + dictionary.TryAddModelException("key", exception); + + // Assert + var entry = Assert.Single(dictionary); + Assert.Equal("key", entry.Key); + var error = Assert.Single(entry.Value.Errors); + Assert.Equal(expectedMessage, error.ErrorMessage); } [Fact] @@ -1227,9 +1246,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding var expectedMessage = "This is an InputFormatterException"; var dictionary = new ModelStateDictionary(); - var bindingMetadataProvider = new DefaultBindingMetadataProvider(); - var compositeProvider = new DefaultCompositeMetadataDetailsProvider(new[] { bindingMetadataProvider }); - var provider = new DefaultModelMetadataProvider(compositeProvider, new OptionsAccessor()); + var provider = new EmptyModelMetadataProvider(); var metadata = provider.GetMetadataForType(typeof(int)); // Act @@ -1242,6 +1259,26 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding Assert.Equal(expectedMessage, error.ErrorMessage); } + [Fact] + public void ModelStateDictionary_AddsErrorMessage_ForValueProviderException() + { + // Arrange + var expectedMessage = "This is an ValueProviderException"; + var dictionary = new ModelStateDictionary(); + + var provider = new EmptyModelMetadataProvider(); + var metadata = provider.GetMetadataForType(typeof(int)); + + // Act + dictionary.TryAddModelError("key", new ValueProviderException(expectedMessage), metadata); + + // Assert + var entry = Assert.Single(dictionary); + Assert.Equal("key", entry.Key); + var error = Assert.Single(entry.Value.Errors); + Assert.Equal(expectedMessage, error.ErrorMessage); + } + [Fact] public void ModelStateDictionary_ClearEntriesThatMatchWithKey_NonEmptyKey() { diff --git a/src/Mvc/Mvc.Core/src/ControllerBase.cs b/src/Mvc/Mvc.Core/src/ControllerBase.cs index dd83af24ad..90282b41a0 100644 --- a/src/Mvc/Mvc.Core/src/ControllerBase.cs +++ b/src/Mvc/Mvc.Core/src/ControllerBase.cs @@ -2452,7 +2452,12 @@ namespace Microsoft.AspNetCore.Mvc throw new ArgumentNullException(nameof(prefix)); } - var valueProvider = await CompositeValueProvider.CreateAsync(ControllerContext); + var (success, valueProvider) = await CompositeValueProvider.TryCreateAsync(ControllerContext, ControllerContext.ValueProviderFactories); + if (!success) + { + return false; + } + return await TryUpdateModelAsync(model, prefix, valueProvider); } @@ -2526,7 +2531,12 @@ namespace Microsoft.AspNetCore.Mvc throw new ArgumentNullException(nameof(includeExpressions)); } - var valueProvider = await CompositeValueProvider.CreateAsync(ControllerContext); + var (success, valueProvider) = await CompositeValueProvider.TryCreateAsync(ControllerContext, ControllerContext.ValueProviderFactories); + if (!success) + { + return false; + } + return await ModelBindingHelper.TryUpdateModelAsync( model, prefix, @@ -2565,7 +2575,12 @@ namespace Microsoft.AspNetCore.Mvc throw new ArgumentNullException(nameof(propertyFilter)); } - var valueProvider = await CompositeValueProvider.CreateAsync(ControllerContext); + var (success, valueProvider) = await CompositeValueProvider.TryCreateAsync(ControllerContext, ControllerContext.ValueProviderFactories); + if (!success) + { + return false; + } + return await ModelBindingHelper.TryUpdateModelAsync( model, prefix, @@ -2693,7 +2708,12 @@ namespace Microsoft.AspNetCore.Mvc throw new ArgumentNullException(nameof(modelType)); } - var valueProvider = await CompositeValueProvider.CreateAsync(ControllerContext); + var (success, valueProvider) = await CompositeValueProvider.TryCreateAsync(ControllerContext, ControllerContext.ValueProviderFactories); + if (!success) + { + return false; + } + return await ModelBindingHelper.TryUpdateModelAsync( model, modelType, diff --git a/src/Mvc/Mvc.Core/src/Controllers/ControllerBinderDelegateProvider.cs b/src/Mvc/Mvc.Core/src/Controllers/ControllerBinderDelegateProvider.cs index fcb0cd0d11..e7668e7b96 100644 --- a/src/Mvc/Mvc.Core/src/Controllers/ControllerBinderDelegateProvider.cs +++ b/src/Mvc/Mvc.Core/src/Controllers/ControllerBinderDelegateProvider.cs @@ -59,7 +59,12 @@ namespace Microsoft.AspNetCore.Mvc.Controllers async Task Bind(ControllerContext controllerContext, object controller, Dictionary arguments) { - var valueProvider = await CompositeValueProvider.CreateAsync(controllerContext); + var (success, valueProvider) = await CompositeValueProvider.TryCreateAsync(controllerContext, controllerContext.ValueProviderFactories); + if (!success) + { + return; + } + var parameters = actionDescriptor.Parameters; for (var i = 0; i < parameters.Count; i++) diff --git a/src/Mvc/Mvc.Core/src/Infrastructure/ProblemDetailsJsonConverter.cs b/src/Mvc/Mvc.Core/src/Infrastructure/ProblemDetailsJsonConverter.cs index 8b7e1f5576..267e25f758 100644 --- a/src/Mvc/Mvc.Core/src/Infrastructure/ProblemDetailsJsonConverter.cs +++ b/src/Mvc/Mvc.Core/src/Infrastructure/ProblemDetailsJsonConverter.cs @@ -20,7 +20,7 @@ namespace Microsoft.AspNetCore.Mvc.Infrastructure { var problemDetails = new ProblemDetails(); - if (!reader.Read()) + if (reader.TokenType != JsonTokenType.StartObject) { throw new JsonException(Resources.UnexpectedJsonEnd); } diff --git a/src/Mvc/Mvc.Core/src/Infrastructure/ValidationProblemDetailsJsonConverter.cs b/src/Mvc/Mvc.Core/src/Infrastructure/ValidationProblemDetailsJsonConverter.cs index d112ff7f18..0d24be6a83 100644 --- a/src/Mvc/Mvc.Core/src/Infrastructure/ValidationProblemDetailsJsonConverter.cs +++ b/src/Mvc/Mvc.Core/src/Infrastructure/ValidationProblemDetailsJsonConverter.cs @@ -18,7 +18,7 @@ namespace Microsoft.AspNetCore.Mvc.Infrastructure { var problemDetails = new ValidationProblemDetails(); - if (!reader.Read()) + if (reader.TokenType != JsonTokenType.StartObject) { throw new JsonException(Resources.UnexpectedJsonEnd); } diff --git a/src/Mvc/Mvc.Core/src/ModelBinding/CompositeValueProvider.cs b/src/Mvc/Mvc.Core/src/ModelBinding/CompositeValueProvider.cs index eaf15df1be..b102fdb1c7 100644 --- a/src/Mvc/Mvc.Core/src/ModelBinding/CompositeValueProvider.cs +++ b/src/Mvc/Mvc.Core/src/ModelBinding/CompositeValueProvider.cs @@ -80,6 +80,22 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding return new CompositeValueProvider(valueProviderFactoryContext.ValueProviders); } + internal static async ValueTask<(bool success, CompositeValueProvider valueProvider)> TryCreateAsync( + ActionContext actionContext, + IList factories) + { + try + { + var valueProvider = await CreateAsync(actionContext, factories); + return (true, valueProvider); + } + catch (ValueProviderException exception) + { + actionContext.ModelState.TryAddModelException(key: string.Empty, exception); + return (false, null); + } + } + /// public virtual bool ContainsPrefix(string prefix) { diff --git a/src/Mvc/Mvc.Core/src/ModelBinding/FormFileValueProviderFactory.cs b/src/Mvc/Mvc.Core/src/ModelBinding/FormFileValueProviderFactory.cs index 0f3ae8b8ff..df90de5039 100644 --- a/src/Mvc/Mvc.Core/src/ModelBinding/FormFileValueProviderFactory.cs +++ b/src/Mvc/Mvc.Core/src/ModelBinding/FormFileValueProviderFactory.cs @@ -2,8 +2,10 @@ // 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.Threading.Tasks; using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc.Core; namespace Microsoft.AspNetCore.Mvc.ModelBinding { @@ -32,10 +34,20 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding private static async Task AddValueProviderAsync(ValueProviderFactoryContext context, HttpRequest request) { - var formCollection = await request.ReadFormAsync(); - if (formCollection.Files.Count > 0) + IFormCollection form; + + try { - var valueProvider = new FormFileValueProvider(formCollection.Files); + form = await request.ReadFormAsync(); + } + catch (InvalidDataException ex) + { + throw new ValueProviderException(Resources.FormatFailedToReadRequestForm(ex.Message), ex); + } + + if (form.Files.Count > 0) + { + var valueProvider = new FormFileValueProvider(form.Files); context.ValueProviders.Add(valueProvider); } } diff --git a/src/Mvc/Mvc.Core/src/ModelBinding/FormValueProviderFactory.cs b/src/Mvc/Mvc.Core/src/ModelBinding/FormValueProviderFactory.cs index f9febdef06..e7cbed8e11 100644 --- a/src/Mvc/Mvc.Core/src/ModelBinding/FormValueProviderFactory.cs +++ b/src/Mvc/Mvc.Core/src/ModelBinding/FormValueProviderFactory.cs @@ -3,7 +3,10 @@ using System; using System.Globalization; +using System.IO; using System.Threading.Tasks; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc.Core; namespace Microsoft.AspNetCore.Mvc.ModelBinding { @@ -33,9 +36,20 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding private static async Task AddValueProviderAsync(ValueProviderFactoryContext context) { var request = context.ActionContext.HttpContext.Request; + IFormCollection form; + + try + { + form = await request.ReadFormAsync(); + } + catch (InvalidDataException ex) + { + throw new ValueProviderException(Resources.FormatFailedToReadRequestForm(ex.Message), ex); + } + var valueProvider = new FormValueProvider( BindingSource.Form, - await request.ReadFormAsync(), + form, CultureInfo.CurrentCulture); context.ValueProviders.Add(valueProvider); diff --git a/src/Mvc/Mvc.Core/src/Resources.resx b/src/Mvc/Mvc.Core/src/Resources.resx index 03647f8e23..273ac8531a 100644 --- a/src/Mvc/Mvc.Core/src/Resources.resx +++ b/src/Mvc/Mvc.Core/src/Resources.resx @@ -513,4 +513,7 @@ An error occured while processing your request. + + Failed to read the request form. {0} + \ No newline at end of file diff --git a/src/Mvc/Mvc.Core/test/ControllerBaseTest.cs b/src/Mvc/Mvc.Core/test/ControllerBaseTest.cs index 74e99b5942..32e9b998d7 100644 --- a/src/Mvc/Mvc.Core/test/ControllerBaseTest.cs +++ b/src/Mvc/Mvc.Core/test/ControllerBaseTest.cs @@ -2607,6 +2607,31 @@ namespace Microsoft.AspNetCore.Mvc.Core.Test Assert.NotEqual(0, binder.BindModelCount); } + [Fact] + public async Task TryUpdateModel_ReturnsFalse_IfValueProviderFactoryThrows() + { + // Arrange + var modelName = "mymodel"; + + var valueProviderFactory = new Mock(); + valueProviderFactory.Setup(f => f.CreateValueProviderAsync(It.IsAny())) + .Throws(new ValueProviderException("some error")); + + var controller = GetController(new StubModelBinder()); + controller.ControllerContext.ValueProviderFactories.Add(valueProviderFactory.Object); + var model = new MyModel(); + + // Act + var result = await controller.TryUpdateModelAsync(model, modelName); + + // Assert + Assert.False(result); + var modelState = Assert.Single(controller.ModelState); + Assert.Empty(modelState.Key); + var error = Assert.Single(modelState.Value.Errors); + Assert.Equal("some error", error.ErrorMessage); + } + [Fact] public async Task TryUpdateModel_PropertyFilterOverload_UsesPassedArguments() { @@ -3037,7 +3062,7 @@ namespace Microsoft.AspNetCore.Mvc.Core.Test }); } - private static ControllerBase GetController(IModelBinder binder, IValueProvider valueProvider) + private static ControllerBase GetController(IModelBinder binder, IValueProvider valueProvider = null) { var metadataProvider = new EmptyModelMetadataProvider(); var services = new ServiceCollection(); @@ -3056,11 +3081,11 @@ namespace Microsoft.AspNetCore.Mvc.Core.Test stringLocalizerFactory: null), }; - valueProvider = valueProvider ?? new SimpleValueProvider(); + valueProvider ??= new SimpleValueProvider(); var controllerContext = new ControllerContext() { HttpContext = httpContext, - ValueProviderFactories = new[] { new SimpleValueProviderFactory(valueProvider), }, + ValueProviderFactories = new List { new SimpleValueProviderFactory(valueProvider), }, }; var binderFactory = new Mock(); diff --git a/src/Mvc/Mvc.Core/test/Controllers/ControllerBinderDelegateProviderTest.cs b/src/Mvc/Mvc.Core/test/Controllers/ControllerBinderDelegateProviderTest.cs index a1bd64a817..97f879169e 100644 --- a/src/Mvc/Mvc.Core/test/Controllers/ControllerBinderDelegateProviderTest.cs +++ b/src/Mvc/Mvc.Core/test/Controllers/ControllerBinderDelegateProviderTest.cs @@ -1202,6 +1202,54 @@ namespace Microsoft.AspNetCore.Mvc.Controllers Assert.Equal(250.0, transferInfo.Amount); } + [Fact] + public async Task BinderDelegateRecordsErrorWhenValueProviderThrowsValueProviderException() + { + // Arrange + var actionDescriptor = new ControllerActionDescriptor() + { + BoundProperties = new List(), + Parameters = new[] { new ParameterDescriptor { Name = "name", ParameterType = typeof(string) } }, + }; + var modelMetadataProvider = new EmptyModelMetadataProvider(); + var modelBinderProvider = Mock.Of(); + var factory = TestModelBinderFactory.CreateDefault(modelBinderProvider); + var modelValidatorProvider = Mock.Of(); + var parameterBinder = new ParameterBinder( + new EmptyModelMetadataProvider(), + factory, + GetObjectValidator(modelMetadataProvider, modelValidatorProvider), + _optionsAccessor, + NullLoggerFactory.Instance); + + var valueProviderFactory = new Mock(); + valueProviderFactory.Setup(f => f.CreateValueProviderAsync(It.IsAny())) + .Throws(new ValueProviderException("Some error")); + + var controllerContext = GetControllerContext(actionDescriptor); + controllerContext.ValueProviderFactories.Add(valueProviderFactory.Object); + + var arguments = new Dictionary(StringComparer.Ordinal); + var modelState = controllerContext.ModelState; + + // Act + var binderDelegate = ControllerBinderDelegateProvider.CreateBinderDelegate( + parameterBinder, + factory, + TestModelMetadataProvider.CreateDefaultProvider(), + actionDescriptor, + _options); + + await binderDelegate(controllerContext, new TestController(), arguments); + + // Assert + var entry = Assert.Single(modelState); + Assert.Empty(entry.Key); + var error = Assert.Single(entry.Value.Errors); + + Assert.Equal("Some error", error.ErrorMessage); + } + private static ControllerContext GetControllerContext(ControllerActionDescriptor descriptor = null) { var services = new ServiceCollection(); diff --git a/src/Mvc/Mvc.Core/test/Infrastructure/ProblemDetailsConverterTest.cs b/src/Mvc/Mvc.Core/test/Infrastructure/ProblemDetailsJsonConverterTest.cs similarity index 80% rename from src/Mvc/Mvc.Core/test/Infrastructure/ProblemDetailsConverterTest.cs rename to src/Mvc/Mvc.Core/test/Infrastructure/ProblemDetailsJsonConverterTest.cs index aad71ca605..dd75501369 100644 --- a/src/Mvc/Mvc.Core/test/Infrastructure/ProblemDetailsConverterTest.cs +++ b/src/Mvc/Mvc.Core/test/Infrastructure/ProblemDetailsJsonConverterTest.cs @@ -8,7 +8,7 @@ using Xunit; namespace Microsoft.AspNetCore.Mvc.Infrastructure { - public class ProblemDetailsConverterTest + public class ProblemDetailsJsonConverterTest { private static JsonSerializerOptions JsonSerializerOptions => new JsonOptions().JsonSerializerOptions; @@ -41,6 +41,7 @@ namespace Microsoft.AspNetCore.Mvc.Infrastructure var json = $"{{\"type\":\"{type}\",\"title\":\"{title}\",\"status\":{status},\"detail\":\"{detail}\", \"instance\":\"{instance}\",\"traceId\":\"{traceId}\"}}"; var converter = new ProblemDetailsJsonConverter(); var reader = new Utf8JsonReader(Encoding.UTF8.GetBytes(json)); + reader.Read(); // Act var problemDetails = converter.Read(ref reader, typeof(ProblemDetails), JsonSerializerOptions); @@ -59,6 +60,35 @@ namespace Microsoft.AspNetCore.Mvc.Infrastructure }); } + [Fact] + public void Read_UsingJsonSerializerWorks() + { + // Arrange + var type = "https://tools.ietf.org/html/rfc7231#section-6.5.4"; + var title = "Not found"; + var status = 404; + var detail = "Product not found"; + var instance = "http://example.com/products/14"; + var traceId = "|37dd3dd5-4a9619f953c40a16."; + var json = $"{{\"type\":\"{type}\",\"title\":\"{title}\",\"status\":{status},\"detail\":\"{detail}\", \"instance\":\"{instance}\",\"traceId\":\"{traceId}\"}}"; + + // Act + var problemDetails = JsonSerializer.Deserialize(json, JsonSerializerOptions); + + Assert.Equal(type, problemDetails.Type); + Assert.Equal(title, problemDetails.Title); + Assert.Equal(status, problemDetails.Status); + Assert.Equal(instance, problemDetails.Instance); + Assert.Equal(detail, problemDetails.Detail); + Assert.Collection( + problemDetails.Extensions, + kvp => + { + Assert.Equal("traceId", kvp.Key); + Assert.Equal(traceId, kvp.Value.ToString()); + }); + } + [Fact] public void Read_WithSomeMissingValues_Works() { @@ -70,6 +100,7 @@ namespace Microsoft.AspNetCore.Mvc.Infrastructure var json = $"{{\"type\":\"{type}\",\"title\":\"{title}\",\"status\":{status},\"traceId\":\"{traceId}\"}}"; var converter = new ProblemDetailsJsonConverter(); var reader = new Utf8JsonReader(Encoding.UTF8.GetBytes(json)); + reader.Read(); // Act var problemDetails = converter.Read(ref reader, typeof(ProblemDetails), JsonSerializerOptions); diff --git a/src/Mvc/Mvc.Core/test/Infrastructure/ValidationProblemDetailsConverterTest.cs b/src/Mvc/Mvc.Core/test/Infrastructure/ValidationProblemDetailsJsonConverterTest.cs similarity index 70% rename from src/Mvc/Mvc.Core/test/Infrastructure/ValidationProblemDetailsConverterTest.cs rename to src/Mvc/Mvc.Core/test/Infrastructure/ValidationProblemDetailsJsonConverterTest.cs index f55da67a20..d81546315b 100644 --- a/src/Mvc/Mvc.Core/test/Infrastructure/ValidationProblemDetailsConverterTest.cs +++ b/src/Mvc/Mvc.Core/test/Infrastructure/ValidationProblemDetailsJsonConverterTest.cs @@ -9,7 +9,7 @@ using Xunit; namespace Microsoft.AspNetCore.Mvc.Infrastructure { - public class ValidationProblemDetailsConverterTest + public class ValidationProblemDetailsJsonConverterTest { private static JsonSerializerOptions JsonSerializerOptions => new JsonOptions().JsonSerializerOptions; @@ -27,6 +27,7 @@ namespace Microsoft.AspNetCore.Mvc.Infrastructure "\"errors\":{\"key0\":[\"error0\"],\"key1\":[\"error1\",\"error2\"]}}"; var converter = new ValidationProblemDetailsJsonConverter(); var reader = new Utf8JsonReader(Encoding.UTF8.GetBytes(json)); + reader.Read(); // Act var problemDetails = converter.Read(ref reader, typeof(ValidationProblemDetails), JsonSerializerOptions); @@ -65,12 +66,14 @@ namespace Microsoft.AspNetCore.Mvc.Infrastructure var title = "Not found"; var status = 404; var traceId = "|37dd3dd5-4a9619f953c40a16."; - var json = $"{{\"type\":\"{type}\",\"title\":\"{title}\",\"status\":{status},\"traceId\":\"{traceId}\"}}"; - var converter = new ProblemDetailsJsonConverter(); + var json = $"{{\"type\":\"{type}\",\"title\":\"{title}\",\"status\":{status},\"traceId\":\"{traceId}\"," + + "\"errors\":{\"key0\":[\"error0\"],\"key1\":[\"error1\",\"error2\"]}}"; + var converter = new ValidationProblemDetailsJsonConverter(); var reader = new Utf8JsonReader(Encoding.UTF8.GetBytes(json)); + reader.Read(); // Act - var problemDetails = converter.Read(ref reader, typeof(ProblemDetails), JsonSerializerOptions); + var problemDetails = converter.Read(ref reader, typeof(ValidationProblemDetails), JsonSerializerOptions); Assert.Equal(type, problemDetails.Type); Assert.Equal(title, problemDetails.Title); @@ -82,6 +85,56 @@ namespace Microsoft.AspNetCore.Mvc.Infrastructure Assert.Equal("traceId", kvp.Key); Assert.Equal(traceId, kvp.Value.ToString()); }); + Assert.Collection( + problemDetails.Errors.OrderBy(kvp => kvp.Key), + kvp => + { + Assert.Equal("key0", kvp.Key); + Assert.Equal(new[] { "error0" }, kvp.Value); + }, + kvp => + { + Assert.Equal("key1", kvp.Key); + Assert.Equal(new[] { "error1", "error2" }, kvp.Value); + }); + } + + [Fact] + public void ReadUsingJsonSerializerWorks() + { + // Arrange + var type = "https://tools.ietf.org/html/rfc7231#section-6.5.4"; + var title = "Not found"; + var status = 404; + var traceId = "|37dd3dd5-4a9619f953c40a16."; + var json = $"{{\"type\":\"{type}\",\"title\":\"{title}\",\"status\":{status},\"traceId\":\"{traceId}\"," + + "\"errors\":{\"key0\":[\"error0\"],\"key1\":[\"error1\",\"error2\"]}}"; + + // Act + var problemDetails = JsonSerializer.Deserialize(json, JsonSerializerOptions); + + Assert.Equal(type, problemDetails.Type); + Assert.Equal(title, problemDetails.Title); + Assert.Equal(status, problemDetails.Status); + Assert.Collection( + problemDetails.Extensions, + kvp => + { + Assert.Equal("traceId", kvp.Key); + Assert.Equal(traceId, kvp.Value.ToString()); + }); + Assert.Collection( + problemDetails.Errors.OrderBy(kvp => kvp.Key), + kvp => + { + Assert.Equal("key0", kvp.Key); + Assert.Equal(new[] { "error0" }, kvp.Value); + }, + kvp => + { + Assert.Equal("key1", kvp.Key); + Assert.Equal(new[] { "error1", "error2" }, kvp.Value); + }); } [Fact] diff --git a/src/Mvc/Mvc.RazorPages/src/Infrastructure/PageBinderFactory.cs b/src/Mvc/Mvc.RazorPages/src/Infrastructure/PageBinderFactory.cs index 574cf6e123..aab346896f 100644 --- a/src/Mvc/Mvc.RazorPages/src/Infrastructure/PageBinderFactory.cs +++ b/src/Mvc/Mvc.RazorPages/src/Infrastructure/PageBinderFactory.cs @@ -55,7 +55,12 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure async Task Bind(PageContext pageContext, object instance) { - var valueProvider = await CompositeValueProvider.CreateAsync(pageContext, pageContext.ValueProviderFactories); + var (success, valueProvider) = await CompositeValueProvider.TryCreateAsync(pageContext, pageContext.ValueProviderFactories); + if (!success) + { + return; + } + for (var i = 0; i < properties.Count; i++) { var property = properties[i]; @@ -131,7 +136,11 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure async Task Bind(PageContext pageContext, IDictionary arguments) { - var valueProvider = await CompositeValueProvider.CreateAsync(pageContext, pageContext.ValueProviderFactories); + var (success, valueProvider) = await CompositeValueProvider.TryCreateAsync(pageContext, pageContext.ValueProviderFactories); + if (!success) + { + return; + } for (var i = 0; i < parameterBindingInfo.Length; i++) { diff --git a/src/Mvc/Mvc.RazorPages/src/PageBase.cs b/src/Mvc/Mvc.RazorPages/src/PageBase.cs index 32f6810281..73b9fc03b2 100644 --- a/src/Mvc/Mvc.RazorPages/src/PageBase.cs +++ b/src/Mvc/Mvc.RazorPages/src/PageBase.cs @@ -1335,7 +1335,13 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages { throw new ArgumentNullException(nameof(prefix)); } - var valueProvider = await CompositeValueProvider.CreateAsync(PageContext, PageContext.ValueProviderFactories); + + var (success, valueProvider) = await CompositeValueProvider.TryCreateAsync(PageContext, PageContext.ValueProviderFactories); + if (!success) + { + return false; + } + return await TryUpdateModelAsync(model, prefix, valueProvider); } @@ -1407,7 +1413,12 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages throw new ArgumentNullException(nameof(includeExpressions)); } - var valueProvider = await CompositeValueProvider.CreateAsync(PageContext, PageContext.ValueProviderFactories); + var (success, valueProvider) = await CompositeValueProvider.TryCreateAsync(PageContext, PageContext.ValueProviderFactories); + if (!success) + { + return false; + } + return await ModelBindingHelper.TryUpdateModelAsync( model, prefix, @@ -1445,7 +1456,12 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages throw new ArgumentNullException(nameof(propertyFilter)); } - var valueProvider = await CompositeValueProvider.CreateAsync(PageContext, PageContext.ValueProviderFactories); + var (success, valueProvider) = await CompositeValueProvider.TryCreateAsync(PageContext, PageContext.ValueProviderFactories); + if (!success) + { + return false; + } + return await ModelBindingHelper.TryUpdateModelAsync( model, prefix, @@ -1570,7 +1586,12 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages throw new ArgumentNullException(nameof(modelType)); } - var valueProvider = await CompositeValueProvider.CreateAsync(PageContext, PageContext.ValueProviderFactories); + var (success, valueProvider) = await CompositeValueProvider.TryCreateAsync(PageContext, PageContext.ValueProviderFactories); + if (!success) + { + return false; + } + return await ModelBindingHelper.TryUpdateModelAsync( model, modelType, diff --git a/src/Mvc/Mvc.RazorPages/src/PageModel.cs b/src/Mvc/Mvc.RazorPages/src/PageModel.cs index b3dbc5b9da..9821bb3a93 100644 --- a/src/Mvc/Mvc.RazorPages/src/PageModel.cs +++ b/src/Mvc/Mvc.RazorPages/src/PageModel.cs @@ -222,7 +222,12 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages throw new ArgumentNullException(nameof(name)); } - var valueProvider = await CompositeValueProvider.CreateAsync(PageContext, PageContext.ValueProviderFactories); + var (success, valueProvider) = await CompositeValueProvider.TryCreateAsync(PageContext, PageContext.ValueProviderFactories); + if (!success) + { + return false; + } + return await TryUpdateModelAsync(model, name, valueProvider); } @@ -294,7 +299,12 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages throw new ArgumentNullException(nameof(includeExpressions)); } - var valueProvider = await CompositeValueProvider.CreateAsync(PageContext, PageContext.ValueProviderFactories); + var (success, valueProvider) = await CompositeValueProvider.TryCreateAsync(PageContext, PageContext.ValueProviderFactories); + if (!success) + { + return false; + } + return await ModelBindingHelper.TryUpdateModelAsync( model, name, @@ -332,7 +342,12 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages throw new ArgumentNullException(nameof(propertyFilter)); } - var valueProvider = await CompositeValueProvider.CreateAsync(PageContext, PageContext.ValueProviderFactories); + var (success, valueProvider) = await CompositeValueProvider.TryCreateAsync(PageContext, PageContext.ValueProviderFactories); + if (!success) + { + return false; + } + return await ModelBindingHelper.TryUpdateModelAsync( model, name, @@ -457,7 +472,12 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages throw new ArgumentNullException(nameof(modelType)); } - var valueProvider = await CompositeValueProvider.CreateAsync(PageContext, PageContext.ValueProviderFactories); + var (success, valueProvider) = await CompositeValueProvider.TryCreateAsync(PageContext, PageContext.ValueProviderFactories); + if (!success) + { + return false; + } + return await ModelBindingHelper.TryUpdateModelAsync( model, modelType, diff --git a/src/Mvc/Mvc.RazorPages/test/Infrastructure/PageBinderFactoryTest.cs b/src/Mvc/Mvc.RazorPages/test/Infrastructure/PageBinderFactoryTest.cs index 5458d7e339..ca9078bd72 100644 --- a/src/Mvc/Mvc.RazorPages/test/Infrastructure/PageBinderFactoryTest.cs +++ b/src/Mvc/Mvc.RazorPages/test/Infrastructure/PageBinderFactoryTest.cs @@ -709,6 +709,57 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure }); } + [Fact] + public async Task FactoryRecordsErrorWhenValueProviderThrowsValueProviderException() + { + // Arrange + var type = typeof(PageModelWithExecutors); + var actionDescriptor = GetActionDescriptorWithHandlerMethod(type, nameof(PageModelWithExecutors.OnGet)); + + // Act + var parameterBinder = new TestParameterBinder(new Dictionary() + { + { "id", "value" }, + }); + + var modelMetadataProvider = TestModelMetadataProvider.CreateDefaultProvider(); + var modelBinderFactory = TestModelBinderFactory.CreateDefault(); + var factory = PageBinderFactory.CreateHandlerBinder( + parameterBinder, + modelMetadataProvider, + modelBinderFactory, + actionDescriptor, + actionDescriptor.HandlerMethods[0], + _options); + + var pageContext = GetPageContext(); + var page = new PageWithProperty + { + PageContext = pageContext, + }; + + var valueProviderFactory = new Mock(); + valueProviderFactory.Setup(f => f.CreateValueProviderAsync(It.IsAny())) + .Throws(new ValueProviderException("Some error")); + + pageContext.ValueProviderFactories.Add(valueProviderFactory.Object); + + var model = new PageModelWithExecutors(); + var arguments = new Dictionary(); + + // Act + await factory(page.PageContext, arguments); + + // Assert + var modelState = pageContext.ModelState; + var entry = Assert.Single(modelState); + Assert.Empty(entry.Key); + var error = Assert.Single(entry.Value.Errors); + + Assert.Equal("Some error", error.ErrorMessage); + } + + private static CompiledPageActionDescriptor GetActionDescriptorWithHandlerMethod(Type type, string method) { var handlerMethodInfo = type.GetMethod(method); diff --git a/src/Mvc/Mvc.RazorPages/test/PageModelTest.cs b/src/Mvc/Mvc.RazorPages/test/PageModelTest.cs index 762f22e5d1..3ec9ed5f6a 100644 --- a/src/Mvc/Mvc.RazorPages/test/PageModelTest.cs +++ b/src/Mvc/Mvc.RazorPages/test/PageModelTest.cs @@ -1739,6 +1739,35 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages Assert.Same(viewData, pageModel.ViewData); } + [Fact] + public async Task TryUpdateModel_ReturnsFalse_IfValueProviderFactoryThrows() + { + // Arrange + var valueProviderFactory = new Mock(); + valueProviderFactory.Setup(f => f.CreateValueProviderAsync(It.IsAny())) + .Throws(new ValueProviderException("some error")); + + var pageModel = new TestPageModel + { + PageContext = new PageContext + { + ValueProviderFactories = new[] { valueProviderFactory.Object }, + } + }; + + var model = new object(); + + // Act + var result = await pageModel.TryUpdateModelAsync(model); + + // Assert + Assert.False(result); + var modelState = Assert.Single(pageModel.ModelState); + Assert.Empty(modelState.Key); + var error = Assert.Single(modelState.Value.Errors); + Assert.Equal("some error", error.ErrorMessage); + } + [Fact] public void UrlHelperIsSet() { diff --git a/src/Mvc/Mvc.RazorPages/test/PageTest.cs b/src/Mvc/Mvc.RazorPages/test/PageTest.cs index 634986bdff..473fac2cde 100644 --- a/src/Mvc/Mvc.RazorPages/test/PageTest.cs +++ b/src/Mvc/Mvc.RazorPages/test/PageTest.cs @@ -1817,6 +1817,35 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages Assert.Same(viewData, result.ViewData); } + [Fact] + public async Task TryUpdateModel_ReturnsFalse_IfValueProviderFactoryThrows() + { + // Arrange + var valueProviderFactory = new Mock(); + valueProviderFactory.Setup(f => f.CreateValueProviderAsync(It.IsAny())) + .Throws(new ValueProviderException("some error")); + + var pageModel = new TestPage + { + PageContext = new PageContext + { + ValueProviderFactories = new[] { valueProviderFactory.Object }, + } + }; + + var model = new object(); + + // Act + var result = await pageModel.TryUpdateModelAsync(model); + + // Assert + Assert.False(result); + var modelState = Assert.Single(pageModel.ModelState); + Assert.Empty(modelState.Key); + var error = Assert.Single(modelState.Value.Errors); + Assert.Equal("some error", error.ErrorMessage); + } + public static IEnumerable RedirectTestData { get diff --git a/src/Mvc/test/Mvc.FunctionalTests/BasicTests.cs b/src/Mvc/test/Mvc.FunctionalTests/BasicTests.cs index 7477929732..7af4c54524 100644 --- a/src/Mvc/test/Mvc.FunctionalTests/BasicTests.cs +++ b/src/Mvc/test/Mvc.FunctionalTests/BasicTests.cs @@ -9,8 +9,7 @@ using System.Net.Http.Headers; using System.Reflection; using System.Threading.Tasks; using BasicWebSite.Models; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; +using System.Text.Json; using Xunit; namespace Microsoft.AspNetCore.Mvc.FunctionalTests @@ -444,7 +443,7 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests var response = await Client.GetStringAsync(url); // Assert - var result = JsonConvert.DeserializeObject(response); + var result = JsonSerializer.Deserialize(response, TestJsonSerializerOptionsProvider.Options); Assert.Equal(10, result.SampleInt); } @@ -458,7 +457,7 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests var response = await Client.GetStringAsync(url); // Assert - var result = JsonConvert.DeserializeObject(response); + var result = JsonSerializer.Deserialize(response, TestJsonSerializerOptionsProvider.Options); Assert.Equal(2, result.Length); } @@ -477,7 +476,7 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests { // Act var response = await Client.GetStringAsync("Home/GetAssemblyPartData"); - var assemblyParts = JsonConvert.DeserializeObject>(response); + var assemblyParts = JsonSerializer.Deserialize>(response, TestJsonSerializerOptionsProvider.Options); var expected = new[] { "BasicWebSite", @@ -548,7 +547,7 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests // Assert await response.AssertStatusCodeAsync(HttpStatusCode.OK); var content = await response.Content.ReadAsStringAsync(); - var data = JsonConvert.DeserializeObject(content); + var data = JsonSerializer.Deserialize(content, TestJsonSerializerOptionsProvider.Options); Assert.Equal("TestName", data.Name); Assert.Equal(10, data.Id); @@ -571,7 +570,7 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests // Assert await response.AssertStatusCodeAsync(HttpStatusCode.OK); var content = await response.Content.ReadAsStringAsync(); - var data = JsonConvert.DeserializeObject(content); + var data = JsonSerializer.Deserialize(content, TestJsonSerializerOptionsProvider.Options); Assert.Equal(10, data.Id); Assert.Null(data.IdFromRoute); @@ -593,7 +592,7 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests // Assert await response.AssertStatusCodeAsync(HttpStatusCode.OK); var content = await response.Content.ReadAsStringAsync(); - var data = JsonConvert.DeserializeObject(content); + var data = JsonSerializer.Deserialize(content, TestJsonSerializerOptionsProvider.Options); Assert.Null(data.BindNeverProperty); } @@ -628,6 +627,27 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests Assert.Equal("OnGetTestName", content); } + [Fact] + public async Task InvalidForm_ResultsInModelError() + { + // Arrange + var request = new HttpRequestMessage(HttpMethod.Post, "/Home/Product"); + request.Content = new MultipartFormDataContent(); + + var response = await Client.SendAsync(request); + + await response.AssertStatusCodeAsync(HttpStatusCode.BadRequest); + var content = await response.Content.ReadAsStringAsync(); + var problemDetails = JsonSerializer.Deserialize(content, TestJsonSerializerOptionsProvider.Options); + Assert.Collection( + problemDetails.Errors, + kvp => + { + Assert.Empty(kvp.Key); + Assert.Equal("Failed to read the request form. Form section has invalid Content-Disposition value: ", string.Join(" ", kvp.Value)); + }); + } + public class BindPropertyControllerData { public string Name { get; set; } diff --git a/src/Mvc/test/WebSites/BasicWebSite/Controllers/HomeController.cs b/src/Mvc/test/WebSites/BasicWebSite/Controllers/HomeController.cs index c2f1f402c2..802d738297 100644 --- a/src/Mvc/test/WebSites/BasicWebSite/Controllers/HomeController.cs +++ b/src/Mvc/test/WebSites/BasicWebSite/Controllers/HomeController.cs @@ -120,6 +120,11 @@ namespace BasicWebSite.Controllers [HttpPost] public IActionResult Product(Product product) { + if (!ModelState.IsValid) + { + return ValidationProblem(); + } + return RedirectToAction(); } From 49191f4d5695764e74ee1c78221a4ed09a5763a2 Mon Sep 17 00:00:00 2001 From: TeBeCo Date: Wed, 16 Oct 2019 17:59:51 +0200 Subject: [PATCH 105/111] Make ApiDescriptionActionData public (#15023) * Make ApiDescriptionActionData public Fixes https://github.com/aspnet/AspNetCore/issues/14954 --- .../Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.netcoreapp.cs | 5 +++++ src/Mvc/Mvc.Core/src/ApiExplorer/ApiDescriptionActionData.cs | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Mvc/Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.netcoreapp.cs b/src/Mvc/Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.netcoreapp.cs index 5407eaa4dc..5da8649bbc 100644 --- a/src/Mvc/Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.netcoreapp.cs +++ b/src/Mvc/Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.netcoreapp.cs @@ -137,6 +137,11 @@ namespace Microsoft.AspNetCore.Mvc public ApiConventionTypeAttribute(System.Type conventionType) { } public System.Type ConventionType { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } } } + public partial class ApiDescriptionActionData + { + public ApiDescriptionActionData() { } + public string GroupName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } } + } [System.AttributeUsageAttribute(System.AttributeTargets.Class | System.AttributeTargets.Method, AllowMultiple=false, Inherited=true)] public partial class ApiExplorerSettingsAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionGroupNameProvider, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionVisibilityProvider { diff --git a/src/Mvc/Mvc.Core/src/ApiExplorer/ApiDescriptionActionData.cs b/src/Mvc/Mvc.Core/src/ApiExplorer/ApiDescriptionActionData.cs index bba3427bd7..89b8e1f1f1 100644 --- a/src/Mvc/Mvc.Core/src/ApiExplorer/ApiDescriptionActionData.cs +++ b/src/Mvc/Mvc.Core/src/ApiExplorer/ApiDescriptionActionData.cs @@ -7,7 +7,7 @@ namespace Microsoft.AspNetCore.Mvc /// Represents data used to build an ApiDescription, stored as part of the /// . /// - internal class ApiDescriptionActionData + public class ApiDescriptionActionData { /// /// The ApiDescription.GroupName of ApiDescription objects for the associated From cad6e06a83a5be37cf00fb021d287d486dc9f2bd Mon Sep 17 00:00:00 2001 From: Javier Calvarro Nelson Date: Wed, 16 Oct 2019 18:50:08 +0200 Subject: [PATCH 106/111] [Templating][Fixes #15048] Fixes build hang in template tests caused by an unbound blocking collection (#15058) --- .../test/Helpers/AspNetProcess.cs | 30 +++++++++++++++---- .../test/Helpers/ProcessEx.cs | 4 ++- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/src/ProjectTemplates/test/Helpers/AspNetProcess.cs b/src/ProjectTemplates/test/Helpers/AspNetProcess.cs index deb0c199d2..6222a5e8a1 100644 --- a/src/ProjectTemplates/test/Helpers/AspNetProcess.cs +++ b/src/ProjectTemplates/test/Helpers/AspNetProcess.cs @@ -60,7 +60,7 @@ namespace Templates.Test.Helpers Process = ProcessEx.Run(output, workingDirectory, DotNetMuxer.MuxerPathOrDefault(), arguments, envVars: environmentVariables); if (hasListeningUri) { - ListeningUri = GetListeningUri(output); + ListeningUri = GetListeningUri(output) ?? throw new InvalidOperationException("Couldn't find the listening URL."); } } @@ -175,16 +175,15 @@ namespace Templates.Test.Helpers { // Wait until the app is accepting HTTP requests output.WriteLine("Waiting until ASP.NET application is accepting connections..."); - var listeningMessage = Process - .OutputLinesAsEnumerable - .Where(line => line != null) - .FirstOrDefault(line => line.Trim().StartsWith(ListeningMessagePrefix, StringComparison.Ordinal)); + var listeningMessage = GetListeningMessage(); if (!string.IsNullOrEmpty(listeningMessage)) { listeningMessage = listeningMessage.Trim(); // Verify we have a valid URL to make requests to - var listeningUrlString = listeningMessage.Substring(ListeningMessagePrefix.Length); + var listeningUrlString = listeningMessage.Substring(listeningMessage.IndexOf( + ListeningMessagePrefix, StringComparison.Ordinal) + ListeningMessagePrefix.Length); + output.WriteLine($"Detected that ASP.NET application is accepting connections on: {listeningUrlString}"); listeningUrlString = listeningUrlString.Substring(0, listeningUrlString.IndexOf(':')) + "://localhost" + @@ -199,6 +198,25 @@ namespace Templates.Test.Helpers } } + private string GetListeningMessage() + { + try + { + return Process + // This will timeout at most after 5 minutes. + .OutputLinesAsEnumerable + .Where(line => line != null) + // This used to do StartsWith, but this is less strict and can prevent issues (very rare) where + // console logging interleaves with other console output in a bad way. For example: + // dbugNow listening on: http://127.0.0.1:12857 + .FirstOrDefault(line => line.Trim().Contains(ListeningMessagePrefix, StringComparison.Ordinal)); + } + catch (OperationCanceledException) + { + return null; + } + } + private bool IsSuccessStatusCode(HttpResponseMessage response) { return response.IsSuccessStatusCode || response.StatusCode == HttpStatusCode.Redirect; diff --git a/src/ProjectTemplates/test/Helpers/ProcessEx.cs b/src/ProjectTemplates/test/Helpers/ProcessEx.cs index 2f3cbbc361..517c23e7a8 100644 --- a/src/ProjectTemplates/test/Helpers/ProcessEx.cs +++ b/src/ProjectTemplates/test/Helpers/ProcessEx.cs @@ -9,6 +9,7 @@ using System.Linq; using System.Reflection; using System.Runtime.InteropServices; using System.Text; +using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Internal; using Xunit.Abstractions; @@ -26,6 +27,7 @@ namespace Templates.Test.Helpers private readonly object _pipeCaptureLock = new object(); private BlockingCollection _stdoutLines; private TaskCompletionSource _exited; + private CancellationTokenSource _stdoutLinesCancellationSource = new CancellationTokenSource(TimeSpan.FromMinutes(5)); public ProcessEx(ITestOutputHelper output, Process proc) { @@ -71,7 +73,7 @@ namespace Templates.Test.Helpers } } - public IEnumerable OutputLinesAsEnumerable => _stdoutLines.GetConsumingEnumerable(); + public IEnumerable OutputLinesAsEnumerable => _stdoutLines.GetConsumingEnumerable(_stdoutLinesCancellationSource.Token); public int ExitCode => _process.ExitCode; From efc2f024f38978d135407f08db7445077e590a45 Mon Sep 17 00:00:00 2001 From: Javier Calvarro Nelson Date: Wed, 16 Oct 2019 19:04:19 +0200 Subject: [PATCH 107/111] [Blazor][Fixes #14959] Update navlink to perform case-insensitive matches (#14991) Otherwise the link doesn't get highlighted even though the route matches (routing is case insensitive). --- src/Components/Web/src/Routing/NavLink.cs | 2 +- .../test/testassets/BasicTestApp/RouterTest/Links.razor | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Components/Web/src/Routing/NavLink.cs b/src/Components/Web/src/Routing/NavLink.cs index cb3e68a2d4..799405f602 100644 --- a/src/Components/Web/src/Routing/NavLink.cs +++ b/src/Components/Web/src/Routing/NavLink.cs @@ -175,7 +175,7 @@ namespace Microsoft.AspNetCore.Components.Routing var prefixLength = prefix.Length; if (value.Length > prefixLength) { - return value.StartsWith(prefix, StringComparison.Ordinal) + return value.StartsWith(prefix, StringComparison.OrdinalIgnoreCase) && ( // Only match when there's a separator character either at the end of the // prefix or right after it. diff --git a/src/Components/test/testassets/BasicTestApp/RouterTest/Links.razor b/src/Components/test/testassets/BasicTestApp/RouterTest/Links.razor index 291c325fec..98f6dd5497 100644 --- a/src/Components/test/testassets/BasicTestApp/RouterTest/Links.razor +++ b/src/Components/test/testassets/BasicTestApp/RouterTest/Links.razor @@ -14,7 +14,7 @@
  • With extension
  • Other
  • Other with base-relative URL (matches all)
  • -
  • Other with query
  • +
  • Other with query
  • Other with hash
  • With parameters
  • With more parameters
  • From d3f1f5a6ea4331109c3d8d95d49628d7fe8477f6 Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Wed, 16 Oct 2019 19:35:34 +0100 Subject: [PATCH 108/111] Make InputBase respond to validation state notifications (#14818) * InputBase subscribes to OnValidationStateChanged. Fixes #11914 * E2E test --- ...ft.AspNetCore.Components.Web.netcoreapp.cs | 4 +- ...spNetCore.Components.Web.netstandard2.0.cs | 4 +- src/Components/Web/src/Forms/InputBase.cs | 27 ++++++- .../Web/test/Forms/InputBaseTest.cs | 75 ++++++++++++++++++- .../test/E2ETest/Tests/FormsTest.cs | 18 +++++ .../TypicalValidationComponent.razor | 34 ++++++++- 6 files changed, 154 insertions(+), 8 deletions(-) diff --git a/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.netcoreapp.cs b/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.netcoreapp.cs index 73061225e9..cb686083cd 100644 --- a/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.netcoreapp.cs +++ b/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.netcoreapp.cs @@ -42,7 +42,7 @@ namespace Microsoft.AspNetCore.Components.Forms protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) { } protected override void OnParametersSet() { } } - public abstract partial class InputBase : Microsoft.AspNetCore.Components.ComponentBase + public abstract partial class InputBase : Microsoft.AspNetCore.Components.ComponentBase, System.IDisposable { protected InputBase() { } [Microsoft.AspNetCore.Components.ParameterAttribute(CaptureUnmatchedValues=true)] @@ -58,8 +58,10 @@ namespace Microsoft.AspNetCore.Components.Forms public Microsoft.AspNetCore.Components.EventCallback ValueChanged { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } } [Microsoft.AspNetCore.Components.ParameterAttribute] public System.Linq.Expressions.Expression> ValueExpression { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } } + protected virtual void Dispose(bool disposing) { } protected virtual string FormatValueAsString(TValue value) { throw null; } public override System.Threading.Tasks.Task SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters) { throw null; } + void System.IDisposable.Dispose() { } protected abstract bool TryParseValueFromString(string value, out TValue result, out string validationErrorMessage); } public partial class InputCheckbox : Microsoft.AspNetCore.Components.Forms.InputBase diff --git a/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.netstandard2.0.cs b/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.netstandard2.0.cs index 73061225e9..cb686083cd 100644 --- a/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.netstandard2.0.cs +++ b/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.netstandard2.0.cs @@ -42,7 +42,7 @@ namespace Microsoft.AspNetCore.Components.Forms protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) { } protected override void OnParametersSet() { } } - public abstract partial class InputBase : Microsoft.AspNetCore.Components.ComponentBase + public abstract partial class InputBase : Microsoft.AspNetCore.Components.ComponentBase, System.IDisposable { protected InputBase() { } [Microsoft.AspNetCore.Components.ParameterAttribute(CaptureUnmatchedValues=true)] @@ -58,8 +58,10 @@ namespace Microsoft.AspNetCore.Components.Forms public Microsoft.AspNetCore.Components.EventCallback ValueChanged { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } } [Microsoft.AspNetCore.Components.ParameterAttribute] public System.Linq.Expressions.Expression> ValueExpression { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } } + protected virtual void Dispose(bool disposing) { } protected virtual string FormatValueAsString(TValue value) { throw null; } public override System.Threading.Tasks.Task SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters) { throw null; } + void System.IDisposable.Dispose() { } protected abstract bool TryParseValueFromString(string value, out TValue result, out string validationErrorMessage); } public partial class InputCheckbox : Microsoft.AspNetCore.Components.Forms.InputBase diff --git a/src/Components/Web/src/Forms/InputBase.cs b/src/Components/Web/src/Forms/InputBase.cs index f60c330326..5b438ecdb6 100644 --- a/src/Components/Web/src/Forms/InputBase.cs +++ b/src/Components/Web/src/Forms/InputBase.cs @@ -13,8 +13,9 @@ namespace Microsoft.AspNetCore.Components.Forms /// integrates with an , which must be supplied /// as a cascading parameter. ///
    - public abstract class InputBase : ComponentBase + public abstract class InputBase : ComponentBase, IDisposable { + private readonly EventHandler _validationStateChangedHandler; private bool _previousParsingAttemptFailed; private ValidationMessageStore _parsingValidationMessages; private Type _nullableUnderlyingType; @@ -121,6 +122,14 @@ namespace Microsoft.AspNetCore.Components.Forms } } + /// + /// Constructs an instance of . + /// + protected InputBase() + { + _validationStateChangedHandler = (sender, eventArgs) => StateHasChanged(); + } + /// /// Formats the value as a string. Derived classes can override this to determine the formating used for . /// @@ -193,6 +202,8 @@ namespace Microsoft.AspNetCore.Components.Forms EditContext = CascadedEditContext; FieldIdentifier = FieldIdentifier.Create(ValueExpression); _nullableUnderlyingType = Nullable.GetUnderlyingType(typeof(TValue)); + + EditContext.OnValidationStateChanged += _validationStateChangedHandler; } else if (CascadedEditContext != EditContext) { @@ -208,5 +219,19 @@ namespace Microsoft.AspNetCore.Components.Forms // For derived components, retain the usual lifecycle with OnInit/OnParametersSet/etc. return base.SetParametersAsync(ParameterView.Empty); } + + protected virtual void Dispose(bool disposing) + { + } + + void IDisposable.Dispose() + { + if (EditContext != null) + { + EditContext.OnValidationStateChanged -= _validationStateChangedHandler; + } + + Dispose(disposing: true); + } } } diff --git a/src/Components/Web/test/Forms/InputBaseTest.cs b/src/Components/Web/test/Forms/InputBaseTest.cs index 570b0f9283..ce1bf7bfa2 100644 --- a/src/Components/Web/test/Forms/InputBaseTest.cs +++ b/src/Components/Web/test/Forms/InputBaseTest.cs @@ -294,7 +294,7 @@ namespace Microsoft.AspNetCore.Components.Forms rootComponent.EditContext.OnValidationStateChanged += (sender, eventArgs) => { numValidationStateChanges++; }; // Act - inputComponent.CurrentValueAsString = "1991/11/20"; + await inputComponent.SetCurrentValueAsStringAsync("1991/11/20"); // Assert var receivedParsedValue = valueChangedArgs.Single(); @@ -324,14 +324,14 @@ namespace Microsoft.AspNetCore.Components.Forms rootComponent.EditContext.OnValidationStateChanged += (sender, eventArgs) => { numValidationStateChanges++; }; // Act/Assert 1: Transition to invalid - inputComponent.CurrentValueAsString = "1991/11/40"; + await inputComponent.SetCurrentValueAsStringAsync("1991/11/40"); Assert.Empty(valueChangedArgs); Assert.True(rootComponent.EditContext.IsModified(fieldIdentifier)); Assert.Equal(new[] { "Bad date value" }, rootComponent.EditContext.GetValidationMessages(fieldIdentifier)); Assert.Equal(1, numValidationStateChanges); // Act/Assert 2: Transition to valid - inputComponent.CurrentValueAsString = "1991/11/20"; + await inputComponent.SetCurrentValueAsStringAsync("1991/11/20"); var receivedParsedValue = valueChangedArgs.Single(); Assert.Equal(1991, receivedParsedValue.Year); Assert.Equal(11, receivedParsedValue.Month); @@ -341,6 +341,65 @@ namespace Microsoft.AspNetCore.Components.Forms Assert.Equal(2, numValidationStateChanges); } + [Fact] + public async Task RespondsToValidationStateChangeNotifications() + { + // Arrange + var model = new TestModel(); + var rootComponent = new TestInputHostComponent> + { + EditContext = new EditContext(model), + ValueExpression = () => model.StringProperty + }; + var fieldIdentifier = FieldIdentifier.Create(() => model.StringProperty); + var renderer = new TestRenderer(); + var rootComponentId = renderer.AssignRootComponentId(rootComponent); + await renderer.RenderRootComponentAsync(rootComponentId); + + // Initally, it rendered one batch and is valid + var batch1 = renderer.Batches.Single(); + var componentFrame1 = batch1.GetComponentFrames>().Single(); + var inputComponentId = componentFrame1.ComponentId; + var component = (TestInputComponent)componentFrame1.Component; + Assert.Equal("valid", component.CssClass); + + // Act: update the field state in the EditContext and notify + var messageStore = new ValidationMessageStore(rootComponent.EditContext); + messageStore.Add(fieldIdentifier, "Some message"); + await renderer.Dispatcher.InvokeAsync(rootComponent.EditContext.NotifyValidationStateChanged); + + // Assert: The input component rendered itself again and now has the new class + var batch2 = renderer.Batches.Skip(1).Single(); + Assert.Equal(inputComponentId, batch2.DiffsByComponentId.Keys.Single()); + Assert.Equal("invalid", component.CssClass); + } + + [Fact] + public async Task UnsubscribesFromValidationStateChangeNotifications() + { + // Arrange + var model = new TestModel(); + var rootComponent = new TestInputHostComponent> + { + EditContext = new EditContext(model), + ValueExpression = () => model.StringProperty + }; + var fieldIdentifier = FieldIdentifier.Create(() => model.StringProperty); + var renderer = new TestRenderer(); + var rootComponentId = renderer.AssignRootComponentId(rootComponent); + await renderer.RenderRootComponentAsync(rootComponentId); + var component = renderer.Batches.Single().GetComponentFrames>().Single().Component; + + // Act: dispose, then update the field state in the EditContext and notify + ((IDisposable)component).Dispose(); + var messageStore = new ValidationMessageStore(rootComponent.EditContext); + messageStore.Add(fieldIdentifier, "Some message"); + await renderer.Dispatcher.InvokeAsync(rootComponent.EditContext.NotifyValidationStateChanged); + + // Assert: No additional render + Assert.Empty(renderer.Batches.Skip(1)); + } + private static TComponent FindComponent(CapturedBatch batch) => batch.ReferenceFrames .Where(f => f.FrameType == RenderTreeFrameType.Component) @@ -376,7 +435,6 @@ namespace Microsoft.AspNetCore.Components.Forms public new string CurrentValueAsString { get => base.CurrentValueAsString; - set { base.CurrentValueAsString = value; } } public new IReadOnlyDictionary AdditionalAttributes => base.AdditionalAttributes; @@ -391,6 +449,15 @@ namespace Microsoft.AspNetCore.Components.Forms { throw new NotImplementedException(); } + + public async Task SetCurrentValueAsStringAsync(string value) + { + // This is equivalent to the subclass writing to CurrentValueAsString + // (e.g., from @bind), except to simplify the test code there's an InvokeAsync + // here. In production code it wouldn't normally be required because @bind + // calls run on the sync context anyway. + await InvokeAsync(() => { base.CurrentValueAsString = value; }); + } } class TestDateInputComponent : TestInputComponent diff --git a/src/Components/test/E2ETest/Tests/FormsTest.cs b/src/Components/test/E2ETest/Tests/FormsTest.cs index d2108dbec7..2d622ba864 100644 --- a/src/Components/test/E2ETest/Tests/FormsTest.cs +++ b/src/Components/test/E2ETest/Tests/FormsTest.cs @@ -376,6 +376,24 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests Browser.Equal("Premium", () => selectedTicketClassDisplay.Text); } + [Fact] + public void InputComponentsRespondToAsynchronouslyAddedMessages() + { + var appElement = Browser.MountTestComponent(); + var input = appElement.FindElement(By.CssSelector(".username input")); + var triggerAsyncErrorButton = appElement.FindElement(By.CssSelector(".username button")); + var messagesAccessor = CreateValidationMessagesAccessor(appElement); + + // Initially shows no error + Browser.Empty(() => messagesAccessor()); + Browser.Equal("valid", () => input.GetAttribute("class")); + + // Can trigger async error + triggerAsyncErrorButton.Click(); + Browser.Equal(new[] { "This is invalid, asynchronously" }, messagesAccessor); + Browser.Equal("invalid", () => input.GetAttribute("class")); + } + private Func CreateValidationMessagesAccessor(IWebElement appElement) { return () => appElement.FindElements(By.ClassName("validation-message")) diff --git a/src/Components/test/testassets/BasicTestApp/FormsTest/TypicalValidationComponent.razor b/src/Components/test/testassets/BasicTestApp/FormsTest/TypicalValidationComponent.razor index 9c8467b8c8..1bd3b748d1 100644 --- a/src/Components/test/testassets/BasicTestApp/FormsTest/TypicalValidationComponent.razor +++ b/src/Components/test/testassets/BasicTestApp/FormsTest/TypicalValidationComponent.razor @@ -1,7 +1,7 @@ @using System.ComponentModel.DataAnnotations @using Microsoft.AspNetCore.Components.Forms - +

    @@ -42,6 +42,10 @@

    Is evil:

    +

    + Username (optional): + +

    @@ -52,6 +56,14 @@ @code { Person person = new Person(); + EditContext editContext; + ValidationMessageStore customValidationMessageStore; + + protected override void OnInitialized() + { + editContext = new EditContext(person); + customValidationMessageStore = new ValidationMessageStore(editContext); + } // Usually this would be in a different file class Person @@ -83,6 +95,8 @@ [Required, EnumDataType(typeof(TicketClass))] public TicketClass TicketClass { get; set; } + + public string Username { get; set; } } enum TicketClass { Economy, Premium, First } @@ -93,4 +107,22 @@ { submissionLog.Add("OnValidSubmit"); } + + void TriggerAsyncValidationError() + { + customValidationMessageStore.Clear(); + + // Note that this method returns void, so the renderer doesn't react to + // its async flow by default. This is to simulate some external system + // implementing async validation. + Task.Run(async () => + { + // The duration of the delay doesn't matter to the test, as long as it's not + // so long that we time out. Picking a value that's long enough for humans + // to observe the asynchrony too. + await Task.Delay(500); + customValidationMessageStore.Add(editContext.Field(nameof(Person.Username)), "This is invalid, asynchronously"); + _ = InvokeAsync(editContext.NotifyValidationStateChanged); + }); + } } From 1046cc2daab602d6f10a9c2be6e312044b9dc429 Mon Sep 17 00:00:00 2001 From: Javier Calvarro Nelson Date: Wed, 16 Oct 2019 22:12:25 +0200 Subject: [PATCH 109/111] [Blazor] Fix sample and turn debug logs and detailed errors client and server-side on the sample (#15052) --- .../BlazorServerApp/Pages/_Host.cshtml | 12 +++++++++-- .../BlazorServerApp/Shared/NavMenu.razor | 2 +- .../appsettings.Development.json | 1 + .../BlazorServerApp/wwwroot/css/site.css | 20 ++++++++++--------- 4 files changed, 23 insertions(+), 12 deletions(-) diff --git a/src/Components/Samples/BlazorServerApp/Pages/_Host.cshtml b/src/Components/Samples/BlazorServerApp/Pages/_Host.cshtml index 4fe357cf81..1c35c6954a 100644 --- a/src/Components/Samples/BlazorServerApp/Pages/_Host.cshtml +++ b/src/Components/Samples/BlazorServerApp/Pages/_Host.cshtml @@ -13,8 +13,16 @@ - + - + + diff --git a/src/Components/Samples/BlazorServerApp/Shared/NavMenu.razor b/src/Components/Samples/BlazorServerApp/Shared/NavMenu.razor index 99495049ac..f96cc8326c 100644 --- a/src/Components/Samples/BlazorServerApp/Shared/NavMenu.razor +++ b/src/Components/Samples/BlazorServerApp/Shared/NavMenu.razor @@ -1,4 +1,4 @@ -