diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index 66f05f7500..0000000000
--- a/.gitmodules
+++ /dev/null
@@ -1,3 +0,0 @@
-[submodule "modules/jsinterop"]
- path = modules/jsinterop
- url = https://github.com/dotnet/jsinterop.git
diff --git a/Components.sln b/Components.sln
index b0625d90d6..f9d4642e5c 100644
--- a/Components.sln
+++ b/Components.sln
@@ -17,8 +17,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Compon
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MonoSanityClient", "blazor\samples\MonoSanityClient\MonoSanityClient.csproj", "{06AAAE9E-96DE-4574-97DA-9C4C7D9FE990}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Blazor.BuildTools", "blazor\src\Microsoft.AspNetCore.Blazor.BuildTools\Microsoft.AspNetCore.Blazor.BuildTools.csproj", "{BB34336F-E68E-4411-9805-CAAA919F5EA1}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HostedInAspNet", "HostedInAspNet", "{4D367450-96E9-4C8C-8B56-EED8ADE3A20D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HostedInAspNet.Client", "blazor\samples\HostedInAspNet.Client\HostedInAspNet.Client.csproj", "{B4335F7C-4E86-4559-821F-F1B1C75F5FAE}"
@@ -91,20 +89,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Blazor
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Components.TagHelperWorkaround", "src\Microsoft.AspNetCore.Components.TagHelperWorkaround\Microsoft.AspNetCore.Components.TagHelperWorkaround.csproj", "{F71D78AB-A07E-415D-BF3F-1B9991628214}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Mono.WebAssembly.Interop", "modules\jsinterop\src\Mono.WebAssembly.Interop\Mono.WebAssembly.Interop.csproj", "{37856984-9702-4062-B8B7-91A38AD8F2BF}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.JSInterop", "modules\jsinterop\src\Microsoft.JSInterop\Microsoft.JSInterop.csproj", "{5F992F3C-4980-4E8E-BEE0-6EC08E369A57}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.JSInterop.JS", "modules\jsinterop\src\Microsoft.JSInterop.JS\Microsoft.JSInterop.JS.csproj", "{4A5D7F9D-9CED-44C1-983E-054D8E99A292}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "jsinterop", "jsinterop", "{1386F99B-3862-40C2-B24D-796C07DC7921}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "modules", "modules", "{F380B6B6-9486-42BC-9B24-C388F8BF13A3}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.JSInterop.Test", "modules\jsinterop\test\Microsoft.JSInterop.Test\Microsoft.JSInterop.Test.csproj", "{ECF02708-4CA4-44B3-B23F-274F4B417FA5}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Blazor.Mono", "blazor\src\Microsoft.AspNetCore.Blazor.Mono\Microsoft.AspNetCore.Blazor.Mono.csproj", "{DEEAE26E-D00C-4A3C-BE12-7A51A63CE55E}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "blazor", "blazor", "{E5DDF29D-DFC9-43E3-AC3A-5B6D54B786D5}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "benchmarks", "benchmarks", "{DDE4B710-6936-4E17-9CA0-54C45333ED15}"
@@ -167,14 +151,6 @@ Global
{06AAAE9E-96DE-4574-97DA-9C4C7D9FE990}.Release|Any CPU.Build.0 = Release|Any CPU
{06AAAE9E-96DE-4574-97DA-9C4C7D9FE990}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{06AAAE9E-96DE-4574-97DA-9C4C7D9FE990}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
- {BB34336F-E68E-4411-9805-CAAA919F5EA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {BB34336F-E68E-4411-9805-CAAA919F5EA1}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {BB34336F-E68E-4411-9805-CAAA919F5EA1}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
- {BB34336F-E68E-4411-9805-CAAA919F5EA1}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
- {BB34336F-E68E-4411-9805-CAAA919F5EA1}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {BB34336F-E68E-4411-9805-CAAA919F5EA1}.Release|Any CPU.Build.0 = Release|Any CPU
- {BB34336F-E68E-4411-9805-CAAA919F5EA1}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
- {BB34336F-E68E-4411-9805-CAAA919F5EA1}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
{B4335F7C-4E86-4559-821F-F1B1C75F5FAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B4335F7C-4E86-4559-821F-F1B1C75F5FAE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B4335F7C-4E86-4559-821F-F1B1C75F5FAE}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
@@ -389,46 +365,6 @@ Global
{F71D78AB-A07E-415D-BF3F-1B9991628214}.Release|Any CPU.Build.0 = Release|Any CPU
{F71D78AB-A07E-415D-BF3F-1B9991628214}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
{F71D78AB-A07E-415D-BF3F-1B9991628214}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
- {37856984-9702-4062-B8B7-91A38AD8F2BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {37856984-9702-4062-B8B7-91A38AD8F2BF}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {37856984-9702-4062-B8B7-91A38AD8F2BF}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
- {37856984-9702-4062-B8B7-91A38AD8F2BF}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
- {37856984-9702-4062-B8B7-91A38AD8F2BF}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {37856984-9702-4062-B8B7-91A38AD8F2BF}.Release|Any CPU.Build.0 = Release|Any CPU
- {37856984-9702-4062-B8B7-91A38AD8F2BF}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
- {37856984-9702-4062-B8B7-91A38AD8F2BF}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
- {5F992F3C-4980-4E8E-BEE0-6EC08E369A57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5F992F3C-4980-4E8E-BEE0-6EC08E369A57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5F992F3C-4980-4E8E-BEE0-6EC08E369A57}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
- {5F992F3C-4980-4E8E-BEE0-6EC08E369A57}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
- {5F992F3C-4980-4E8E-BEE0-6EC08E369A57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5F992F3C-4980-4E8E-BEE0-6EC08E369A57}.Release|Any CPU.Build.0 = Release|Any CPU
- {5F992F3C-4980-4E8E-BEE0-6EC08E369A57}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
- {5F992F3C-4980-4E8E-BEE0-6EC08E369A57}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
- {4A5D7F9D-9CED-44C1-983E-054D8E99A292}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4A5D7F9D-9CED-44C1-983E-054D8E99A292}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4A5D7F9D-9CED-44C1-983E-054D8E99A292}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
- {4A5D7F9D-9CED-44C1-983E-054D8E99A292}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
- {4A5D7F9D-9CED-44C1-983E-054D8E99A292}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4A5D7F9D-9CED-44C1-983E-054D8E99A292}.Release|Any CPU.Build.0 = Release|Any CPU
- {4A5D7F9D-9CED-44C1-983E-054D8E99A292}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
- {4A5D7F9D-9CED-44C1-983E-054D8E99A292}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
- {ECF02708-4CA4-44B3-B23F-274F4B417FA5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {ECF02708-4CA4-44B3-B23F-274F4B417FA5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {ECF02708-4CA4-44B3-B23F-274F4B417FA5}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
- {ECF02708-4CA4-44B3-B23F-274F4B417FA5}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
- {ECF02708-4CA4-44B3-B23F-274F4B417FA5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {ECF02708-4CA4-44B3-B23F-274F4B417FA5}.Release|Any CPU.Build.0 = Release|Any CPU
- {ECF02708-4CA4-44B3-B23F-274F4B417FA5}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
- {ECF02708-4CA4-44B3-B23F-274F4B417FA5}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
- {DEEAE26E-D00C-4A3C-BE12-7A51A63CE55E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {DEEAE26E-D00C-4A3C-BE12-7A51A63CE55E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {DEEAE26E-D00C-4A3C-BE12-7A51A63CE55E}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
- {DEEAE26E-D00C-4A3C-BE12-7A51A63CE55E}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
- {DEEAE26E-D00C-4A3C-BE12-7A51A63CE55E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {DEEAE26E-D00C-4A3C-BE12-7A51A63CE55E}.Release|Any CPU.Build.0 = Release|Any CPU
- {DEEAE26E-D00C-4A3C-BE12-7A51A63CE55E}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
- {DEEAE26E-D00C-4A3C-BE12-7A51A63CE55E}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
{8C5D8A27-E6E6-4E5B-9389-206B5519658C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8C5D8A27-E6E6-4E5B-9389-206B5519658C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8C5D8A27-E6E6-4E5B-9389-206B5519658C}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
@@ -494,7 +430,6 @@ Global
{5A694793-3257-4D37-BB74-4A41B3894685} = {B867E038-B3CE-43E3-9292-61568C46CDEB}
{5BC2A10D-B6CA-43AE-B73C-2A41AE1039F9} = {ADA3AE29-F6DE-49F6-8C7C-B321508CAE8E}
{06AAAE9E-96DE-4574-97DA-9C4C7D9FE990} = {2A076721-6081-4517-8329-B9E5110D6DAC}
- {BB34336F-E68E-4411-9805-CAAA919F5EA1} = {AD41FFD8-2C0C-4F0C-9537-25C2A3A7A1F4}
{4D367450-96E9-4C8C-8B56-EED8ADE3A20D} = {C7B9207E-BF85-422D-9EBC-E243C399F619}
{B4335F7C-4E86-4559-821F-F1B1C75F5FAE} = {4D367450-96E9-4C8C-8B56-EED8ADE3A20D}
{F8996835-41F7-4663-91DF-3B5652ADC37D} = {4D367450-96E9-4C8C-8B56-EED8ADE3A20D}
@@ -530,12 +465,6 @@ Global
{6BDD3018-3961-488E-97D3-1FB7320A8AC6} = {E8EBA72C-D555-43AE-BC98-F0B2D05F6A07}
{CCEC81C4-1A3C-40DC-952F-074712C46180} = {DDE4B710-6936-4E17-9CA0-54C45333ED15}
{F71D78AB-A07E-415D-BF3F-1B9991628214} = {B867E038-B3CE-43E3-9292-61568C46CDEB}
- {37856984-9702-4062-B8B7-91A38AD8F2BF} = {1386F99B-3862-40C2-B24D-796C07DC7921}
- {5F992F3C-4980-4E8E-BEE0-6EC08E369A57} = {1386F99B-3862-40C2-B24D-796C07DC7921}
- {4A5D7F9D-9CED-44C1-983E-054D8E99A292} = {1386F99B-3862-40C2-B24D-796C07DC7921}
- {1386F99B-3862-40C2-B24D-796C07DC7921} = {F380B6B6-9486-42BC-9B24-C388F8BF13A3}
- {ECF02708-4CA4-44B3-B23F-274F4B417FA5} = {ADA3AE29-F6DE-49F6-8C7C-B321508CAE8E}
- {DEEAE26E-D00C-4A3C-BE12-7A51A63CE55E} = {AD41FFD8-2C0C-4F0C-9537-25C2A3A7A1F4}
{DDE4B710-6936-4E17-9CA0-54C45333ED15} = {E5DDF29D-DFC9-43E3-AC3A-5B6D54B786D5}
{C7B9207E-BF85-422D-9EBC-E243C399F619} = {E5DDF29D-DFC9-43E3-AC3A-5B6D54B786D5}
{AD41FFD8-2C0C-4F0C-9537-25C2A3A7A1F4} = {E5DDF29D-DFC9-43E3-AC3A-5B6D54B786D5}
diff --git a/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/BuildToolsExe.props b/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/BuildToolsExe.props
deleted file mode 100644
index 414ce1387d..0000000000
--- a/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/BuildToolsExe.props
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- dotnet "$(ArtifactsBinDir)Microsoft.AspNetCore.Blazor.BuildTools/netcoreapp2.1/Microsoft.AspNetCore.Blazor.BuildTools.dll"
-
-
diff --git a/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/Cli/Commands/CheckNodeJsInstalledCommand.cs b/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/Cli/Commands/CheckNodeJsInstalledCommand.cs
deleted file mode 100644
index 64247a901a..0000000000
--- a/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/Cli/Commands/CheckNodeJsInstalledCommand.cs
+++ /dev/null
@@ -1,96 +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 Microsoft.Extensions.CommandLineUtils;
-using System;
-using System.Diagnostics;
-using System.Text.RegularExpressions;
-
-namespace Microsoft.AspNetCore.Blazor.BuildTools.Cli.Commands
-{
- class CheckNodeJsInstalledCommand
- {
- private static Regex NodeVersionRegex = new Regex(@"^v(\d+\.\d+\.\d+)");
-
- public static void Command(CommandLineApplication command)
- {
- command.Description = "Asserts that Node.js is installed.";
- command.HelpOption("-?|-h|--help");
-
- var minVersionOption = command.Option(
- "-v|--version",
- "Specifies a minimum acceptable version of Node.js.",
- CommandOptionType.SingleValue);
-
- command.OnExecute(() =>
- {
- var foundNodeVersion = GetInstalledNodeVersion();
- if (foundNodeVersion == null)
- {
- return 1;
- }
-
- if (minVersionOption.HasValue())
- {
- var minVersion = new Version(minVersionOption.Value());
- if (foundNodeVersion < minVersion)
- {
- Console.WriteLine($"ERROR: The installed version of Node.js is too old. Required version: {minVersion}; Found version: {foundNodeVersion}.");
- return 1;
- }
- }
-
- Console.WriteLine($"Found Node.js version {foundNodeVersion}");
- return 0;
- });
- }
-
- private static Version GetInstalledNodeVersion()
- {
- var versionString = InvokeNodeVersionCommand();
- if (versionString == null)
- {
- return null;
- }
-
- var versionStringMatch = NodeVersionRegex.Match(versionString);
- if (!versionStringMatch.Success)
- {
- Console.WriteLine($"ERROR: Got unparseable Node.js version string: {versionStringMatch}");
- return null;
- }
-
- return new Version(versionStringMatch.Groups[1].Value);
- }
-
- private static string InvokeNodeVersionCommand()
- {
- try
- {
- var process = Process.Start(new ProcessStartInfo
- {
- FileName = "node",
- Arguments = "-v",
- RedirectStandardOutput = true
- });
- process.WaitForExit();
-
- if (process.ExitCode != 0)
- {
- Console.WriteLine($"ERROR: The command 'node -v' exited with code {process.ExitCode}.");
- return null;
- }
- else
- {
- return process.StandardOutput.ReadToEnd();
- }
- }
- catch (Exception ex)
- {
- Console.WriteLine("ERROR: Node.js was not found. Ensure that Node.js is installed and that 'node' is present on the system PATH.");
- Console.WriteLine("The underlying error was: " + ex.Message);
- return null;
- }
- }
- }
-}
diff --git a/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/Cli/Commands/ILWipeCommand.cs b/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/Cli/Commands/ILWipeCommand.cs
deleted file mode 100644
index e2eccef17d..0000000000
--- a/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/Cli/Commands/ILWipeCommand.cs
+++ /dev/null
@@ -1,110 +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.IO;
-using System.Linq;
-using Microsoft.AspNetCore.Blazor.BuildTools.Core.ILWipe;
-using Microsoft.Extensions.CommandLineUtils;
-
-namespace Microsoft.AspNetCore.Blazor.BuildTools.Cli.Commands
-{
- static class ILWipeCommand
- {
- public static void Command(CommandLineApplication command)
- {
- command.Description = "Wipes code from .NET assemblies.";
- command.HelpOption("-?|-h|--help");
-
- var inputDirOption = command.Option(
- "-i|--input",
- "The directory containing assemblies from which code should be wiped.",
- CommandOptionType.SingleValue);
-
- var specFileOption = command.Option(
- "-s|--spec",
- "The directory containing spec files describing which members to wipe from the assemblies.",
- CommandOptionType.SingleValue);
-
- var verboseOption = command.Option(
- "-v|--verbose",
- "If set, logs additional information to the console.",
- CommandOptionType.NoValue);
-
- var listOption = command.Option(
- "-l|--list",
- "If set, just writes lists the assembly contents to disk.",
- CommandOptionType.NoValue);
-
- var outputOption = command.Option(
- "-o|--output",
- "The directory to which the wiped assembly files should be written.",
- CommandOptionType.SingleValue);
-
- command.OnExecute(() =>
- {
- var inputDir = GetRequiredOptionValue(inputDirOption);
- var outputDir = GetRequiredOptionValue(outputOption);
- var specDir = GetRequiredOptionValue(specFileOption);
-
- var specFiles = Directory.EnumerateFiles(
- specDir, "*.txt",
- new EnumerationOptions { RecurseSubdirectories = true });
-
- foreach (var specFilePath in specFiles)
- {
- var specFileRelativePath = Path.GetRelativePath(specDir, specFilePath);
- var assemblyRelativePath = Path.ChangeExtension(specFileRelativePath, ".dll");
- var inputAssemblyPath = Path.Combine(inputDir, assemblyRelativePath);
- var outputAssemblyPath = Path.Combine(outputDir, assemblyRelativePath);
- var inputAssemblySize = new FileInfo(inputAssemblyPath).Length;
-
- if (listOption.HasValue())
- {
- var outputList = AssemblyItem
- .ListContents(inputAssemblyPath)
- .Select(item => item.ToString());
- File.WriteAllLines(
- Path.ChangeExtension(outputAssemblyPath, ".txt"),
- outputList);
- }
- else
- {
- WipeAssembly.Exec(
- inputAssemblyPath,
- outputAssemblyPath,
- specFilePath,
- verboseOption.HasValue());
-
- Console.WriteLine(
- $"{assemblyRelativePath.PadRight(40)} " +
- $"{FormatFileSize(inputAssemblySize)} ==> " +
- $"{FormatFileSize(outputAssemblyPath)}");
- }
- }
-
- return 0;
- });
- }
-
- private static string FormatFileSize(string path)
- {
- return FormatFileSize(new FileInfo(path).Length);
- }
-
- private static string FormatFileSize(long length)
- {
- return string.Format("{0:0.000} MB", ((double)length) / (1024*1024));
- }
-
- private static string GetRequiredOptionValue(CommandOption option)
- {
- if (!option.HasValue())
- {
- throw new InvalidOperationException($"Missing value for required option '{option.LongName}'.");
- }
-
- return option.Value();
- }
- }
-}
diff --git a/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/Cli/Program.cs b/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/Cli/Program.cs
deleted file mode 100644
index 661701ac16..0000000000
--- a/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/Cli/Program.cs
+++ /dev/null
@@ -1,33 +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 Microsoft.AspNetCore.Blazor.BuildTools.Cli.Commands;
-using Microsoft.Extensions.CommandLineUtils;
-
-namespace Microsoft.AspNetCore.Blazor.BuildTools
-{
- static class Program
- {
- static int Main(string[] args)
- {
- var app = new CommandLineApplication
- {
- Name = "blazor-buildtools"
- };
- app.HelpOption("-?|-h|--help");
-
- app.Command("checknodejs", CheckNodeJsInstalledCommand.Command);
- app.Command("ilwipe", ILWipeCommand.Command);
-
- if (args.Length > 0)
- {
- return app.Execute(args);
- }
- else
- {
- app.ShowHelp();
- return 0;
- }
- }
- }
-}
diff --git a/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/Core/ILWipe/AssemblyItem.cs b/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/Core/ILWipe/AssemblyItem.cs
deleted file mode 100644
index ae58899aa1..0000000000
--- a/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/Core/ILWipe/AssemblyItem.cs
+++ /dev/null
@@ -1,92 +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 Mono.Cecil;
-using System.Collections.Generic;
-using System.Linq;
-using Mono.Cecil.Cil;
-
-namespace Microsoft.AspNetCore.Blazor.BuildTools.Core.ILWipe
-{
- class AssemblyItem
- {
- public static IEnumerable ListContents(string assemblyPath)
- {
- var moduleDefinition = ModuleDefinition.ReadModule(assemblyPath);
- return ListContents(moduleDefinition);
- }
-
- public static IEnumerable ListContents(ModuleDefinition moduleDefinition)
- {
- return moduleDefinition.Types
- .SelectMany(GetNestedTypesRecursive)
- .SelectMany(type => type.Methods)
- .Select(method => new AssemblyItem(method))
- .OrderBy(item => item.ToString(), StringComparer.Ordinal);
- }
-
- public MethodDefinition Method { get; }
-
- public AssemblyItem(MethodDefinition method)
- {
- Method = method ?? throw new ArgumentNullException(nameof(method));
- }
-
- public void WipeFromAssembly(MethodDefinition createMethodWipedException)
- {
- if (!Method.HasBody)
- {
- return; // Nothing to do
- }
-
- if (Method.HasCustomAttributes)
- {
- for (int i = 0; i < Method.CustomAttributes.Count; i++)
- {
- if (Method.CustomAttributes[i].AttributeType.FullName == "System.Runtime.CompilerServices.AsyncStateMachineAttribute")
- {
- Method.CustomAttributes.RemoveAt(i);
- break;
- }
- }
- }
-
- // We don't want to actually remove the method definition from the assembly, because
- // then you'd have an assembly that was invalid (it could contain calls to the method
- // that no longer exists). Instead, remove all the instructions from its body, and
- // replace it with "throw CreateMethodWipedException()". Then:
- // [1] The method body is very short, while still definitely being valid (still OK for
- // it to have any return type)
- // [2] We've removed its references to other methods/types, so they are more likely
- // to be actually removed fully by a subsequent IL linker pass
- // [3] If the method is actually invoked at runtime, the stack trace will make clear
- // which method is being excessively wiped
- var il = Method.Body.GetILProcessor();
- il.Body.Instructions.Clear();
- il.Body.Variables.Clear();
- il.Body.ExceptionHandlers.Clear();
- il.Append(il.Create(OpCodes.Call, createMethodWipedException));
- il.Append(il.Create(OpCodes.Throw));
- }
-
- public override string ToString()
- {
- var result = Method.ToString();
- return result.Substring(result.IndexOf(' ') + 1);
- }
-
- public int CodeSize
- => Method.Body?.CodeSize ?? 0;
-
- private static IEnumerable GetNestedTypesRecursive(TypeDefinition type)
- {
- yield return type;
-
- foreach (var descendant in type.NestedTypes.SelectMany(GetNestedTypesRecursive))
- {
- yield return descendant;
- }
- }
- }
-}
diff --git a/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/Core/ILWipe/MethodWipedExceptionMethod.cs b/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/Core/ILWipe/MethodWipedExceptionMethod.cs
deleted file mode 100644
index 82d7c4d8e4..0000000000
--- a/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/Core/ILWipe/MethodWipedExceptionMethod.cs
+++ /dev/null
@@ -1,76 +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 Mono.Cecil;
-using Mono.Cecil.Cil;
-using System;
-
-namespace Microsoft.AspNetCore.Blazor.BuildTools.Core.ILWipe
-{
- static class MethodWipedExceptionMethod
- {
- public static MethodDefinition AddToAssembly(ModuleDefinition moduleDefinition)
- {
- // Adds the following method to the assembly:
- // namespace ILWipe
- // {
- // internal static class ILWipeHelpers
- // {
- // public static Exception CreateMethodWipedException()
- // {
- // return new NotImplementedException("Cannot call method because it was wiped. See stack trace for details.");
- // }
- // }
- // }
- var ilWipeHelpersType = new TypeDefinition("ILWipe", "ILWipeHelpers",
- TypeAttributes.NotPublic | TypeAttributes.Class | TypeAttributes.Abstract | TypeAttributes.Sealed | TypeAttributes.BeforeFieldInit,
- moduleDefinition.TypeSystem.Object);
- moduleDefinition.Types.Add(ilWipeHelpersType);
-
- var methodAttributes =
- MethodAttributes.Public |
- MethodAttributes.HideBySig |
- MethodAttributes.Static;
- var createMethodWipedExceptionMethod = new MethodDefinition(
- "CreateMethodWipedException",
- methodAttributes,
- ImportEquivalentTypeFromMscorlib(moduleDefinition, typeof(Exception)));
- ilWipeHelpersType.Methods.Add(createMethodWipedExceptionMethod);
-
- var notImplExceptionType = ImportEquivalentTypeFromMscorlib(moduleDefinition, typeof(NotImplementedException));
- var notImplExceptionCtor = new MethodReference(".ctor", moduleDefinition.TypeSystem.Void, notImplExceptionType);
- notImplExceptionCtor.HasThis = true;
- notImplExceptionCtor.Parameters.Add(new ParameterDefinition(moduleDefinition.TypeSystem.String));
-
- var il = createMethodWipedExceptionMethod.Body.GetILProcessor();
- il.Append(il.Create(OpCodes.Ldstr, "Cannot invoke method because it was wiped. See stack trace for details."));
- il.Append(il.Create(OpCodes.Newobj, notImplExceptionCtor));
- il.Append(il.Create(OpCodes.Ret));
-
- return createMethodWipedExceptionMethod;
- }
-
- static TypeReference ImportEquivalentTypeFromMscorlib(ModuleDefinition module, Type type)
- {
- // We have to do this instead of module.ImportReference(type), because the latter
- // would try to reference it in System.Private.CoreLib because this tool itself
- // compiles to target netcoreapp rather than netstandard
- IMetadataScope mscorlibScope;
- if (module.TryGetTypeReference(typeof(object).FullName, out var objectRef))
- {
- mscorlibScope = objectRef.Scope;
- }
- else if (module.Name == "mscorlib.dll")
- {
- mscorlibScope = module;
- }
- else
- {
- throw new InvalidOperationException($"Could not resolve System.Object type within '{module.FileName}'.");
- }
-
- var typeRef = new TypeReference(type.Namespace, type.Name, module, mscorlibScope, type.IsValueType);
- return module.ImportReference(typeRef);
- }
- }
-}
diff --git a/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/Core/ILWipe/SpecList.cs b/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/Core/ILWipe/SpecList.cs
deleted file mode 100644
index f49e5e1ba7..0000000000
--- a/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/Core/ILWipe/SpecList.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-using System.Collections.Generic;
-using System.Linq;
-
-namespace Microsoft.AspNetCore.Blazor.BuildTools.Core.ILWipe
-{
- class SpecList
- {
- private List _itemSpecs;
-
- public SpecList(string[] fromSpecLines)
- {
- var linesToUse = fromSpecLines.Where(
- line => !string.IsNullOrWhiteSpace(line) && !line.StartsWith('#'));
- _itemSpecs = new List(
- linesToUse.Select(line => new SpecListEntry(line)));
- }
-
- public bool IsEmpty
- {
- get => _itemSpecs.Count == 0;
- }
-
- public bool Match(AssemblyItem item)
- {
- // If this needs to be faster, consider implementing some kind of matching tree.
- var lastMatchingSpec = _itemSpecs.LastOrDefault(spec => spec.IsMatch(item));
- return lastMatchingSpec == null ? false : !lastMatchingSpec.Negated;
- }
- }
-}
diff --git a/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/Core/ILWipe/SpecListEntry.cs b/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/Core/ILWipe/SpecListEntry.cs
deleted file mode 100644
index 98da3b7f41..0000000000
--- a/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/Core/ILWipe/SpecListEntry.cs
+++ /dev/null
@@ -1,121 +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;
-
-namespace Microsoft.AspNetCore.Blazor.BuildTools.Core.ILWipe
-{
- class SpecListEntry
- {
- public bool Negated { get; }
- public string TypeName { get; }
- public string MethodName { get; }
- public string Args { get; }
-
- public SpecListEntry(string parseSpecLine)
- {
- parseSpecLine = parseSpecLine.Trim();
-
- if (parseSpecLine.StartsWith('!'))
- {
- Negated = true;
- parseSpecLine = parseSpecLine.Substring(1);
- }
-
- var colonsPos = parseSpecLine.IndexOf("::");
- if (colonsPos < 0)
- {
- TypeName = parseSpecLine;
- }
- else
- {
- TypeName = parseSpecLine.Substring(0, colonsPos);
- parseSpecLine = parseSpecLine.Substring(colonsPos + 2);
-
- var bracketPos = parseSpecLine.IndexOf('(');
- if (bracketPos < 0)
- {
- MethodName = parseSpecLine;
- }
- else
- {
- MethodName = parseSpecLine.Substring(0, bracketPos);
- Args = parseSpecLine.Substring(bracketPos + 1, parseSpecLine.Length - bracketPos - 2);
- }
- }
- }
-
- public bool IsMatch(AssemblyItem item)
- {
- return MatchesType(item)
- && MatchesMethod(item)
- && MatchesArgs(item);
- }
-
- private bool MatchesArgs(AssemblyItem item)
- {
- if (Args == null)
- {
- return true;
- }
- else
- {
- var methodString = item.Method.ToString();
- var bracketPos = methodString.IndexOf('(');
- var argsString = methodString.Substring(bracketPos + 1, methodString.Length - bracketPos - 2);
- return string.Equals(argsString, Args, StringComparison.Ordinal);
- }
- }
-
- private bool MatchesMethod(AssemblyItem item)
- {
- if (MethodName == null)
- {
- return true;
- }
- else if (MethodName.EndsWith('*'))
- {
- return item.Method.Name.StartsWith(
- MethodName.Substring(0, MethodName.Length - 1),
- StringComparison.Ordinal);
- }
- else
- {
- return string.Equals(item.Method.Name, MethodName, StringComparison.Ordinal);
- }
- }
-
- private bool MatchesType(AssemblyItem item)
- {
- var declaringTypeFullName = item.Method.DeclaringType.FullName;
- if (TypeName.EndsWith('*'))
- {
- // Wildcard match
- return declaringTypeFullName.StartsWith(
- TypeName.Substring(0, TypeName.Length - 1),
- StringComparison.Ordinal);
- }
- else
- {
- // Exact match
- if (string.Equals(
- item.Method.DeclaringType.FullName,
- TypeName,
- StringComparison.Ordinal))
- {
- return true;
- }
-
- // If we're matching all members of the type, include nested types
- if (MethodName == null && declaringTypeFullName.StartsWith(
- $"{TypeName}/",
- StringComparison.Ordinal))
- {
- return true;
- }
-
- return false;
- }
- }
- }
-}
diff --git a/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/Core/ILWipe/WipeAssembly.cs b/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/Core/ILWipe/WipeAssembly.cs
deleted file mode 100644
index cff68bf17f..0000000000
--- a/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/Core/ILWipe/WipeAssembly.cs
+++ /dev/null
@@ -1,55 +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.IO;
-using Mono.Cecil;
-using System.Linq;
-
-namespace Microsoft.AspNetCore.Blazor.BuildTools.Core.ILWipe
-{
- static class WipeAssembly
- {
- public static void Exec(string inputPath, string outputPath, string specFilePath, bool logVerbose)
- {
- if (string.IsNullOrEmpty(outputPath))
- {
- outputPath = Path.ChangeExtension(inputPath, ".wiped" + Path.GetExtension(inputPath));
- }
-
- var specLines = File.ReadAllLines(specFilePath);
- var wipeSpecList = new SpecList(specLines);
- var moduleDefinition = ModuleDefinition.ReadModule(inputPath);
-
- if (!wipeSpecList.IsEmpty)
- {
- var createMethodWipedException = MethodWipedExceptionMethod.AddToAssembly(moduleDefinition);
-
- var contents = AssemblyItem.ListContents(moduleDefinition).ToList();
- foreach (var contentItem in contents)
- {
- var shouldWipe = wipeSpecList.Match(contentItem)
- && contentItem.Method != createMethodWipedException;
-
- if (logVerbose)
- {
- Console.WriteLine($"{(shouldWipe ? "Wiping" : "Retaining")}: {contentItem}");
- }
-
- if (shouldWipe)
- {
- contentItem.WipeFromAssembly(createMethodWipedException);
- }
- }
- }
-
- // Also resolve referenced assemblies in the same directory
- if (moduleDefinition.AssemblyResolver is DefaultAssemblyResolver resolver)
- {
- resolver.AddSearchDirectory(Path.GetDirectoryName(inputPath));
- }
-
- moduleDefinition.Write(outputPath);
- }
- }
-}
diff --git a/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/Microsoft.AspNetCore.Blazor.BuildTools.csproj b/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/Microsoft.AspNetCore.Blazor.BuildTools.csproj
deleted file mode 100644
index dfc69d032e..0000000000
--- a/blazor/src/Microsoft.AspNetCore.Blazor.BuildTools/Microsoft.AspNetCore.Blazor.BuildTools.csproj
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
- netcoreapp2.1
- Exe
- false
-
-
-
-
-
-
-
-
diff --git a/build/SignToolData.json b/build/SignToolData.json
index e36f9b408e..107916826f 100644
--- a/build/SignToolData.json
+++ b/build/SignToolData.json
@@ -13,10 +13,8 @@
"bin/Microsoft.AspNetCore.Components.Razor.Extensions/net461/Microsoft.AspNetCore.Components.Razor.Extensions.dll",
"bin/Microsoft.AspNetCore.Components.Razor.Extensions/netstandard2.0/Microsoft.AspNetCore.Components.Razor.Extensions.dll",
"bin/Microsoft.AspNetCore.Components/netstandard2.0/Microsoft.AspNetCore.Components.dll",
- "bin/Microsoft.JSInterop/netstandard2.0/Microsoft.JSInterop.dll",
"bin/Microsoft.VisualStudio.BlazorExtension/Microsoft.VisualStudio.BlazorExtension.dll",
- "bin/Microsoft.VisualStudio.LanguageServices.Blazor/net461/Microsoft.VisualStudio.LanguageServices.Blazor.dll",
- "bin/Mono.WebAssembly.Interop/netstandard2.0/Mono.WebAssembly.Interop.dll"
+ "bin/Microsoft.VisualStudio.LanguageServices.Blazor/net461/Microsoft.VisualStudio.LanguageServices.Blazor.dll"
]
},
{
diff --git a/modules/Directory.Build.props b/modules/Directory.Build.props
deleted file mode 100644
index 05002e1cac..0000000000
--- a/modules/Directory.Build.props
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/modules/Directory.Build.targets b/modules/Directory.Build.targets
deleted file mode 100644
index 5d4870b330..0000000000
--- a/modules/Directory.Build.targets
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/modules/jsinterop b/modules/jsinterop
deleted file mode 160000
index ce65976593..0000000000
--- a/modules/jsinterop
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit ce659765931a681031aaa504d26078bb6f3cd846