Compare commits

..

48 Commits

Author SHA1 Message Date
Pavel Krymets
7819c2f950 Remove obsolete API usage (#1784) 2018-11-06 14:10:24 -08:00
ASP.NET CI
cdfa5d85f6 Update package branding for 2.2 RTM 2018-10-16 12:48:16 -07:00
ASP.NET CI
3265b92086 Update dependencies.props
[auto-updated: dependencies]
2018-10-07 19:22:47 +00:00
ASP.NET CI
ef999a57fd Update dependencies.props
[auto-updated: dependencies]
2018-09-30 12:22:07 -07:00
Nate McMaster
e231b29e58 automated: bulk infrastructure updates. Update bootstrapper scripts and remove unnecessary signing properties 2018-09-28 17:10:35 -07:00
ASP.NET CI
d8662392a0 Update dependencies.props
[auto-updated: dependencies]
2018-09-23 19:21:56 +00:00
Pranav K
587ead92e4 Reference Microsoft.NET.Sdk.Razor in projects with Razor files 2018-09-20 13:55:13 -07:00
ASP.NET CI
622be9084a Update dependencies.props
[auto-updated: dependencies]
2018-09-16 12:19:15 -07:00
ASP.NET CI
817c0e4f24 Update dependencies.props
[auto-updated: dependencies]
2018-09-09 12:20:43 -07:00
Ryan Brandenburg
c2f15f4199 Don't use depricated constructor 2018-09-06 11:39:34 -07:00
ASP.NET CI
24ebd9ff3e Update branding to 2.2.0-preview3 2018-09-05 16:34:59 -07:00
ASP.NET CI
15884cbadb Update dependencies.props
[auto-updated: dependencies]
2018-09-02 12:18:24 -07:00
ASP.NET CI
4bc67d6a60 Update package branding for 2.2.0-preview2 2018-08-21 13:33:50 -07:00
ASP.NET CI
9281cbaf72 Update dependencies.props
[auto-updated: dependencies]
2018-08-12 19:19:23 +00:00
ASP.NET CI
cd2b52bbd0 Update dependencies.props
[auto-updated: dependencies]
2018-08-06 20:42:28 +00:00
ASP.NET CI
78dd174aed Update dependencies.props
[auto-updated: dependencies]
2018-08-05 19:19:50 +00:00
ASP.NET CI
4d7485bba2 Update dependencies.props
[auto-updated: dependencies]
2018-07-29 12:17:46 -07:00
Nate McMaster
a4bb72e58c Merge branch 'release/2.1' into release/2.2 2018-07-24 12:07:21 -07:00
ASP.NET CI
9c741600d2 Update dependencies.props
[auto-updated: dependencies]
2018-07-22 12:18:10 -07:00
ASP.NET CI
c8342594a8 Update dependencies.props
[auto-updated: dependencies]
2018-07-15 12:18:43 -07:00
Nate McMaster
ea3a7bc897 Pin version variables to the ASP.NET Core 2.1.2 baseline
This reverts our previous policy of cascading versions on all servicing updates.
This moves variables into the 'pinned' section, and points them to the latest
stable release (versions that were used at the time of the 2.1.2 release).
2018-07-12 11:54:22 -07:00
Nate McMaster
578124e1ce Updating dependencies to 2.1.2 and adding a section for pinned variable versions 2018-07-11 18:49:03 -07:00
Nate McMaster
0da7460fa2 Reverting version from 2.1.2 back to 2.1.1
As a result of changing the way we apply servicing updates to aspnet core, this repo did not need the version bump because there are no planned product changes in this repo.
2018-07-11 15:06:34 -07:00
ASP.NET CI
5fa87a0313 Update dependencies.props
[auto-updated: dependencies]
2018-07-08 12:19:17 -07:00
Nate McMaster
067298bead Update infrastructure for the 2.2 release 2018-06-28 16:20:26 -07:00
ASP.NET CI
cf659b3fda Update dependencies.props
[auto-updated: dependencies]
2018-06-25 11:20:23 -07:00
Ryan Brandenburg
1e85713d75 Set 2.1 baselines 2018-06-14 11:29:34 -07:00
Ryan Brandenburg
a04813edc3 Set 2.1 baselines 2018-06-14 11:29:25 -07:00
Nate McMaster
e49b0e439e Bumping version from 2.1.1 to 2.1.2 2018-06-12 14:01:30 -07:00
ASP.NET CI
d65a4f3b6d Update dependencies.props
[auto-updated: dependencies]
2018-06-12 19:25:28 +00:00
Ryan Brandenburg
47828ee727 Adding VSTS file 2018-06-08 09:53:25 -07:00
ASP.NET CI
0d1c99c1d1 Update dependencies.props
[auto-updated: dependencies]
2018-06-07 19:40:16 +00:00
Nate McMaster
240dd82473 Add certificate names for code signing 2018-06-05 22:32:57 -07:00
ASP.NET CI
b616db4918 Update dependencies.props
[auto-updated: dependencies]
2018-06-03 19:19:20 +00:00
Steve Sanderson
447359af84 Bump aspnet-webpack version to 3.0.0 2018-05-29 10:02:23 +01:00
Matt Perry
823630c508 Add webpack 4 support to aspnet-webpack 2018-05-29 09:58:04 +01:00
ASP.NET CI
c35a3a17c0 Update dependencies.props
[auto-updated: dependencies]
2018-05-27 19:20:08 +00:00
Nate McMaster (automated)
98c47a1c70 Update bootstrapper scripts (automated commit) [ci skip] 2018-05-25 16:15:48 -07:00
ASP.NET CI
0a1c83ab81 Update dependencies.props
[auto-updated: dependencies]
2018-05-20 19:37:28 +00:00
ASP.NET CI
2167b28ffd Update dependencies.props
[auto-updated: dependencies]
2018-05-13 14:14:19 -07:00
Ryan Brandenburg
966bfcb172 Upgrade to netcoreapp22 2018-05-07 16:30:25 -07:00
ASP.NET CI
b8f85dc2d9 Update dependencies.props
[auto-updated: dependencies]
2018-05-06 12:21:32 -07:00
Nate McMaster (automated)
944e8d396d Merge branch release/2.1 into dev 2018-04-30 15:53:06 -07:00
ASP.NET CI
961619c5c9 Update dependencies.props
[auto-updated: dependencies]
2018-04-29 12:22:20 -07:00
ASP.NET CI
da66cc1fee Update dependencies.props
[auto-updated: dependencies]
2018-04-23 12:15:04 -07:00
Nate McMaster
b7ba837d6e Merge branch release/2.1 into dev 2018-04-20 15:08:38 -07:00
Ryan Brandenburg
67267eabf7 Update version number to 2.2.0 2018-04-16 16:58:37 -07:00
Ryan Brandenburg
1e5b6f864e Merge branch 'release/2.1' into dev 2018-04-16 16:58:37 -07:00
42 changed files with 16998 additions and 1578 deletions

View File

@@ -0,0 +1,13 @@
trigger:
- master
- release/*
resources:
repositories:
- repository: buildtools
type: git
name: aspnet-BuildTools
ref: refs/heads/release/2.2
phases:
- template: .vsts-pipelines/templates/project-ci.yml@buildtools

View File

@@ -0,0 +1,15 @@
trigger:
- master
- release/*
# See https://github.com/aspnet/BuildTools
resources:
repositories:
- repository: buildtools
type: github
endpoint: DotNet-Bot GitHub Connection
name: aspnet/BuildTools
ref: refs/heads/release/2.2
phases:
- template: .vsts-pipelines/templates/project-ci.yml@buildtools

View File

@@ -10,7 +10,6 @@
<RepositoryRoot>$(MSBuildThisFileDirectory)</RepositoryRoot> <RepositoryRoot>$(MSBuildThisFileDirectory)</RepositoryRoot>
<AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)build\Key.snk</AssemblyOriginatorKeyFile> <AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)build\Key.snk</AssemblyOriginatorKeyFile>
<SignAssembly>true</SignAssembly> <SignAssembly>true</SignAssembly>
<PublicSign Condition="'$(OS)' != 'Windows_NT'">true</PublicSign>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors> <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View File

@@ -1,7 +1,10 @@
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<RuntimeFrameworkVersion Condition=" '$(TargetFramework)' == 'netcoreapp2.0' ">$(MicrosoftNETCoreApp20PackageVersion)</RuntimeFrameworkVersion> <RuntimeFrameworkVersion Condition=" '$(TargetFramework)' == 'netcoreapp2.0' ">$(MicrosoftNETCoreApp20PackageVersion)</RuntimeFrameworkVersion>
<RuntimeFrameworkVersion Condition=" '$(TargetFramework)' == 'netcoreapp2.1' ">$(MicrosoftNETCoreApp21PackageVersion)</RuntimeFrameworkVersion> <RuntimeFrameworkVersion Condition=" '$(TargetFramework)' == 'netcoreapp2.1' ">$(MicrosoftNETCoreApp21PackageVersion)</RuntimeFrameworkVersion>
<RuntimeFrameworkVersion Condition=" '$(TargetFramework)' == 'netcoreapp2.2' ">$(MicrosoftNETCoreApp22PackageVersion)</RuntimeFrameworkVersion>
<NETStandardImplicitPackageVersion Condition=" '$(TargetFramework)' == 'netstandard2.0' ">$(NETStandardLibrary20PackageVersion)</NETStandardImplicitPackageVersion> <NETStandardImplicitPackageVersion Condition=" '$(TargetFramework)' == 'netstandard2.0' ">$(NETStandardLibrary20PackageVersion)</NETStandardImplicitPackageVersion>
<!-- aspnet/BuildTools#662 Don't police what version of NetCoreApp we use -->
<NETCoreAppMaximumVersion>99.9</NETCoreAppMaximumVersion>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View File

@@ -3,26 +3,29 @@
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects> <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Label="Package Versions"> <PropertyGroup Label="Package Versions">
<InternalAspNetCoreSdkPackageVersion>2.1.1-rtm-15790</InternalAspNetCoreSdkPackageVersion> <InternalAspNetCoreSdkPackageVersion>2.2.0-preview2-20181004.6</InternalAspNetCoreSdkPackageVersion>
<MicrosoftAspNetCoreDiagnosticsPackageVersion>2.1.0</MicrosoftAspNetCoreDiagnosticsPackageVersion> <MicrosoftAspNetCoreDiagnosticsPackageVersion>2.2.0-preview3-35425</MicrosoftAspNetCoreDiagnosticsPackageVersion>
<MicrosoftAspNetCoreHostingAbstractionsPackageVersion>2.1.0</MicrosoftAspNetCoreHostingAbstractionsPackageVersion> <MicrosoftAspNetCoreHostingAbstractionsPackageVersion>2.2.0-preview3-35425</MicrosoftAspNetCoreHostingAbstractionsPackageVersion>
<MicrosoftAspNetCoreHostingPackageVersion>2.1.0</MicrosoftAspNetCoreHostingPackageVersion> <MicrosoftAspNetCoreHostingPackageVersion>2.2.0-preview3-35425</MicrosoftAspNetCoreHostingPackageVersion>
<MicrosoftAspNetCoreMvcPackageVersion>2.1.0</MicrosoftAspNetCoreMvcPackageVersion> <MicrosoftAspNetCoreMvcPackageVersion>2.2.0-preview3-35425</MicrosoftAspNetCoreMvcPackageVersion>
<MicrosoftAspNetCoreMvcTagHelpersPackageVersion>2.1.0</MicrosoftAspNetCoreMvcTagHelpersPackageVersion> <MicrosoftAspNetCoreMvcTagHelpersPackageVersion>2.2.0-preview3-35425</MicrosoftAspNetCoreMvcTagHelpersPackageVersion>
<MicrosoftAspNetCoreMvcViewFeaturesPackageVersion>2.1.0</MicrosoftAspNetCoreMvcViewFeaturesPackageVersion> <MicrosoftAspNetCoreMvcViewFeaturesPackageVersion>2.2.0-preview3-35425</MicrosoftAspNetCoreMvcViewFeaturesPackageVersion>
<MicrosoftAspNetCoreServerIISIntegrationPackageVersion>2.1.0</MicrosoftAspNetCoreServerIISIntegrationPackageVersion> <MicrosoftAspNetCoreServerIISIntegrationPackageVersion>2.2.0-preview3-35425</MicrosoftAspNetCoreServerIISIntegrationPackageVersion>
<MicrosoftAspNetCoreServerKestrelPackageVersion>2.1.0</MicrosoftAspNetCoreServerKestrelPackageVersion> <MicrosoftAspNetCoreServerKestrelPackageVersion>2.2.0-preview3-35425</MicrosoftAspNetCoreServerKestrelPackageVersion>
<MicrosoftAspNetCoreStaticFilesPackageVersion>2.1.0</MicrosoftAspNetCoreStaticFilesPackageVersion> <MicrosoftAspNetCoreStaticFilesPackageVersion>2.2.0-preview3-35425</MicrosoftAspNetCoreStaticFilesPackageVersion>
<MicrosoftAspNetCoreWebSocketsPackageVersion>2.1.0</MicrosoftAspNetCoreWebSocketsPackageVersion> <MicrosoftAspNetCoreWebSocketsPackageVersion>2.2.0-preview3-35425</MicrosoftAspNetCoreWebSocketsPackageVersion>
<MicrosoftExtensionsDependencyInjectionPackageVersion>2.1.0</MicrosoftExtensionsDependencyInjectionPackageVersion> <MicrosoftExtensionsDependencyInjectionPackageVersion>2.2.0-preview3-35425</MicrosoftExtensionsDependencyInjectionPackageVersion>
<MicrosoftExtensionsFileProvidersPhysicalPackageVersion>2.1.0</MicrosoftExtensionsFileProvidersPhysicalPackageVersion> <MicrosoftExtensionsFileProvidersPhysicalPackageVersion>2.2.0-preview3-35425</MicrosoftExtensionsFileProvidersPhysicalPackageVersion>
<MicrosoftExtensionsLoggingConsolePackageVersion>2.1.0</MicrosoftExtensionsLoggingConsolePackageVersion> <MicrosoftExtensionsLoggingConsolePackageVersion>2.2.0-preview3-35425</MicrosoftExtensionsLoggingConsolePackageVersion>
<MicrosoftExtensionsLoggingDebugPackageVersion>2.1.0</MicrosoftExtensionsLoggingDebugPackageVersion> <MicrosoftExtensionsLoggingDebugPackageVersion>2.2.0-preview3-35425</MicrosoftExtensionsLoggingDebugPackageVersion>
<MicrosoftNETCoreApp20PackageVersion>2.0.0</MicrosoftNETCoreApp20PackageVersion> <MicrosoftNETCoreApp20PackageVersion>2.0.9</MicrosoftNETCoreApp20PackageVersion>
<MicrosoftNETCoreApp21PackageVersion>2.1.0</MicrosoftNETCoreApp21PackageVersion> <MicrosoftNETCoreApp21PackageVersion>2.1.3</MicrosoftNETCoreApp21PackageVersion>
<MicrosoftNETCoreApp22PackageVersion>2.2.0-preview3-27001-02</MicrosoftNETCoreApp22PackageVersion>
<MicrosoftNETSdkRazorPackageVersion>2.2.0-preview3-35425</MicrosoftNETSdkRazorPackageVersion>
<NETStandardLibrary20PackageVersion>2.0.3</NETStandardLibrary20PackageVersion> <NETStandardLibrary20PackageVersion>2.0.3</NETStandardLibrary20PackageVersion>
<NewtonsoftJsonPackageVersion>11.0.2</NewtonsoftJsonPackageVersion> <NewtonsoftJsonPackageVersion>11.0.2</NewtonsoftJsonPackageVersion>
<SystemThreadingTasksDataflowPackageVersion>4.9.0</SystemThreadingTasksDataflowPackageVersion> <SystemThreadingTasksDataflowPackageVersion>4.9.0</SystemThreadingTasksDataflowPackageVersion>
</PropertyGroup> </PropertyGroup>
<Import Project="$(DotNetPackageVersionPropsPath)" Condition=" '$(DotNetPackageVersionPropsPath)' != '' " /> <Import Project="$(DotNetPackageVersionPropsPath)" Condition=" '$(DotNetPackageVersionPropsPath)' != '' " />
<PropertyGroup Label="Package Versions: Pinned" />
</Project> </Project>

View File

@@ -4,12 +4,13 @@
<PropertyGroup> <PropertyGroup>
<!-- These properties are use by the automation that updates dependencies.props --> <!-- These properties are use by the automation that updates dependencies.props -->
<LineupPackageId>Internal.AspNetCore.Universe.Lineup</LineupPackageId> <LineupPackageId>Internal.AspNetCore.Universe.Lineup</LineupPackageId>
<LineupPackageVersion>2.1.0-rc1-*</LineupPackageVersion> <LineupPackageVersion>2.2.0-*</LineupPackageVersion>
<LineupPackageRestoreSource>https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json</LineupPackageRestoreSource> <LineupPackageRestoreSource>https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json</LineupPackageRestoreSource>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<DotNetCoreRuntime Include="$(MicrosoftNETCoreApp20PackageVersion)" /> <DotNetCoreRuntime Include="$(MicrosoftNETCoreApp20PackageVersion)" />
<DotNetCoreRuntime Include="$(MicrosoftNETCoreApp21PackageVersion)" /> <DotNetCoreRuntime Include="$(MicrosoftNETCoreApp21PackageVersion)" />
<DotNetCoreRuntime Include="$(MicrosoftNETCoreApp22PackageVersion)" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -1,2 +1,2 @@
version:2.1.1-rtm-15790 version:2.2.0-preview2-20181004.6
commithash:274c65868e735f29f4078c1884c61c4371ee1fc0 commithash:c04c4b2f5018632647f96210ab01876661302dac

View File

@@ -1,6 +1,6 @@
{ {
"$schema": "https://raw.githubusercontent.com/aspnet/BuildTools/release/2.1/tools/korebuild.schema.json", "$schema": "https://raw.githubusercontent.com/aspnet/BuildTools/release/2.2/tools/korebuild.schema.json",
"channel": "release/2.1", "channel": "release/2.2",
"toolsets": { "toolsets": {
"nodejs": { "nodejs": {
"required": true, "required": true,

31
run.ps1
View File

@@ -26,12 +26,18 @@ The base url where build tools can be downloaded. Overrides the value from the c
.PARAMETER Update .PARAMETER Update
Updates KoreBuild to the latest version even if a lock file is present. Updates KoreBuild to the latest version even if a lock file is present.
.PARAMETER Reinstall
Re-installs KoreBuild
.PARAMETER ConfigFile .PARAMETER ConfigFile
The path to the configuration file that stores values. Defaults to korebuild.json. The path to the configuration file that stores values. Defaults to korebuild.json.
.PARAMETER ToolsSourceSuffix .PARAMETER ToolsSourceSuffix
The Suffix to append to the end of the ToolsSource. Useful for query strings in blob stores. The Suffix to append to the end of the ToolsSource. Useful for query strings in blob stores.
.PARAMETER CI
Sets up CI specific settings and variables.
.PARAMETER Arguments .PARAMETER Arguments
Arguments to be passed to the command Arguments to be passed to the command
@@ -46,8 +52,8 @@ in the file are overridden by command line parameters.
Example config file: Example config file:
```json ```json
{ {
"$schema": "https://raw.githubusercontent.com/aspnet/BuildTools/dev/tools/korebuild.schema.json", "$schema": "https://raw.githubusercontent.com/aspnet/BuildTools/master/tools/korebuild.schema.json",
"channel": "dev", "channel": "master",
"toolsSource": "https://aspnetcore.blob.core.windows.net/buildtools" "toolsSource": "https://aspnetcore.blob.core.windows.net/buildtools"
} }
``` ```
@@ -65,8 +71,10 @@ param(
[string]$ToolsSource, [string]$ToolsSource,
[Alias('u')] [Alias('u')]
[switch]$Update, [switch]$Update,
[string]$ConfigFile, [switch]$Reinstall,
[string]$ToolsSourceSuffix, [string]$ToolsSourceSuffix,
[string]$ConfigFile = $null,
[switch]$CI,
[Parameter(ValueFromRemainingArguments = $true)] [Parameter(ValueFromRemainingArguments = $true)]
[string[]]$Arguments [string[]]$Arguments
) )
@@ -93,6 +101,10 @@ function Get-KoreBuild {
$version = $version.TrimStart('version:').Trim() $version = $version.TrimStart('version:').Trim()
$korebuildPath = Join-Paths $DotNetHome ('buildtools', 'korebuild', $version) $korebuildPath = Join-Paths $DotNetHome ('buildtools', 'korebuild', $version)
if ($Reinstall -and (Test-Path $korebuildPath)) {
Remove-Item -Force -Recurse $korebuildPath
}
if (!(Test-Path $korebuildPath)) { if (!(Test-Path $korebuildPath)) {
Write-Host -ForegroundColor Magenta "Downloading KoreBuild $version" Write-Host -ForegroundColor Magenta "Downloading KoreBuild $version"
New-Item -ItemType Directory -Path $korebuildPath | Out-Null New-Item -ItemType Directory -Path $korebuildPath | Out-Null
@@ -101,9 +113,9 @@ function Get-KoreBuild {
try { try {
$tmpfile = Join-Path ([IO.Path]::GetTempPath()) "KoreBuild-$([guid]::NewGuid()).zip" $tmpfile = Join-Path ([IO.Path]::GetTempPath()) "KoreBuild-$([guid]::NewGuid()).zip"
Get-RemoteFile $remotePath $tmpfile $ToolsSourceSuffix Get-RemoteFile $remotePath $tmpfile $ToolsSourceSuffix
if (Get-Command -Name 'Expand-Archive' -ErrorAction Ignore) { if (Get-Command -Name 'Microsoft.PowerShell.Archive\Expand-Archive' -ErrorAction Ignore) {
# Use built-in commands where possible as they are cross-plat compatible # Use built-in commands where possible as they are cross-plat compatible
Expand-Archive -Path $tmpfile -DestinationPath $korebuildPath Microsoft.PowerShell.Archive\Expand-Archive -Path $tmpfile -DestinationPath $korebuildPath
} }
else { else {
# Fallback to old approach for old installations of PowerShell # Fallback to old approach for old installations of PowerShell
@@ -167,8 +179,9 @@ if (Test-Path $ConfigFile) {
} }
} }
catch { catch {
Write-Warning "$ConfigFile could not be read. Its settings will be ignored." Write-Host -ForegroundColor Red $Error[0]
Write-Warning $Error[0] Write-Error "$ConfigFile contains invalid JSON."
exit 1
} }
} }
@@ -179,7 +192,7 @@ if (!$DotNetHome) {
else { Join-Path $PSScriptRoot '.dotnet'} else { Join-Path $PSScriptRoot '.dotnet'}
} }
if (!$Channel) { $Channel = 'dev' } if (!$Channel) { $Channel = 'master' }
if (!$ToolsSource) { $ToolsSource = 'https://aspnetcore.blob.core.windows.net/buildtools' } if (!$ToolsSource) { $ToolsSource = 'https://aspnetcore.blob.core.windows.net/buildtools' }
# Execute # Execute
@@ -188,7 +201,7 @@ $korebuildPath = Get-KoreBuild
Import-Module -Force -Scope Local (Join-Path $korebuildPath 'KoreBuild.psd1') Import-Module -Force -Scope Local (Join-Path $korebuildPath 'KoreBuild.psd1')
try { try {
Set-KoreBuildSettings -ToolsSource $ToolsSource -DotNetHome $DotNetHome -RepoPath $Path -ConfigFile $ConfigFile Set-KoreBuildSettings -ToolsSource $ToolsSource -DotNetHome $DotNetHome -RepoPath $Path -ConfigFile $ConfigFile -CI:$CI
Invoke-KoreBuildCommand $Command @Arguments Invoke-KoreBuildCommand $Command @Arguments
} }
finally { finally {

35
run.sh
View File

@@ -14,10 +14,12 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
[ -z "${DOTNET_HOME:-}" ] && DOTNET_HOME="$HOME/.dotnet" [ -z "${DOTNET_HOME:-}" ] && DOTNET_HOME="$HOME/.dotnet"
verbose=false verbose=false
update=false update=false
reinstall=false
repo_path="$DIR" repo_path="$DIR"
channel='' channel=''
tools_source='' tools_source=''
tools_source_suffix='' tools_source_suffix=''
ci=false
# #
# Functions # Functions
@@ -38,6 +40,8 @@ __usage() {
echo " -s|--tools-source|-ToolsSource <URL> The base url where build tools can be downloaded. Overrides the value from the config file." echo " -s|--tools-source|-ToolsSource <URL> The base url where build tools can be downloaded. Overrides the value from the config file."
echo " --tools-source-suffix|-ToolsSourceSuffix <SUFFIX> The suffix to append to tools-source. Useful for query strings." echo " --tools-source-suffix|-ToolsSourceSuffix <SUFFIX> The suffix to append to tools-source. Useful for query strings."
echo " -u|--update Update to the latest KoreBuild even if the lock file is present." echo " -u|--update Update to the latest KoreBuild even if the lock file is present."
echo " --reinstall Reinstall KoreBuild."
echo " --ci Apply CI specific settings and environment variables."
echo "" echo ""
echo "Description:" echo "Description:"
echo " This function will create a file \$DIR/korebuild-lock.txt. This lock file can be committed to source, but does not have to be." echo " This function will create a file \$DIR/korebuild-lock.txt. This lock file can be committed to source, but does not have to be."
@@ -62,6 +66,10 @@ get_korebuild() {
version="$(echo "${version#version:}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')" version="$(echo "${version#version:}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
local korebuild_path="$DOTNET_HOME/buildtools/korebuild/$version" local korebuild_path="$DOTNET_HOME/buildtools/korebuild/$version"
if [ "$reinstall" = true ] && [ -d "$korebuild_path" ]; then
rm -rf "$korebuild_path"
fi
{ {
if [ ! -d "$korebuild_path" ]; then if [ ! -d "$korebuild_path" ]; then
mkdir -p "$korebuild_path" mkdir -p "$korebuild_path"
@@ -175,6 +183,12 @@ while [[ $# -gt 0 ]]; do
-u|--update|-Update) -u|--update|-Update)
update=true update=true
;; ;;
--reinstall|-[Rr]einstall)
reinstall=true
;;
--ci|-[Cc][Ii])
ci=true
;;
--verbose|-Verbose) --verbose|-Verbose)
verbose=true verbose=true
;; ;;
@@ -206,26 +220,37 @@ if [ -f "$config_file" ]; then
config_channel="$(jq -r 'select(.channel!=null) | .channel' "$config_file")" config_channel="$(jq -r 'select(.channel!=null) | .channel' "$config_file")"
config_tools_source="$(jq -r 'select(.toolsSource!=null) | .toolsSource' "$config_file")" config_tools_source="$(jq -r 'select(.toolsSource!=null) | .toolsSource' "$config_file")"
else else
__warn "$config_file is invalid JSON. Its settings will be ignored." __error "$config_file contains invalid JSON."
exit 1
fi fi
elif __machine_has python ; then elif __machine_has python ; then
if python -c "import json,codecs;obj=json.load(codecs.open('$config_file', 'r', 'utf-8-sig'))" >/dev/null ; then if python -c "import json,codecs;obj=json.load(codecs.open('$config_file', 'r', 'utf-8-sig'))" >/dev/null ; then
config_channel="$(python -c "import json,codecs;obj=json.load(codecs.open('$config_file', 'r', 'utf-8-sig'));print(obj['channel'] if 'channel' in obj else '')")" config_channel="$(python -c "import json,codecs;obj=json.load(codecs.open('$config_file', 'r', 'utf-8-sig'));print(obj['channel'] if 'channel' in obj else '')")"
config_tools_source="$(python -c "import json,codecs;obj=json.load(codecs.open('$config_file', 'r', 'utf-8-sig'));print(obj['toolsSource'] if 'toolsSource' in obj else '')")" config_tools_source="$(python -c "import json,codecs;obj=json.load(codecs.open('$config_file', 'r', 'utf-8-sig'));print(obj['toolsSource'] if 'toolsSource' in obj else '')")"
else else
__warn "$config_file is invalid JSON. Its settings will be ignored." __error "$config_file contains invalid JSON."
exit 1
fi
elif __machine_has python3 ; then
if python3 -c "import json,codecs;obj=json.load(codecs.open('$config_file', 'r', 'utf-8-sig'))" >/dev/null ; then
config_channel="$(python3 -c "import json,codecs;obj=json.load(codecs.open('$config_file', 'r', 'utf-8-sig'));print(obj['channel'] if 'channel' in obj else '')")"
config_tools_source="$(python3 -c "import json,codecs;obj=json.load(codecs.open('$config_file', 'r', 'utf-8-sig'));print(obj['toolsSource'] if 'toolsSource' in obj else '')")"
else
__error "$config_file contains invalid JSON."
exit 1
fi fi
else else
__warn 'Missing required command: jq or pyton. Could not parse the JSON file. Its settings will be ignored.' __error 'Missing required command: jq or python. Could not parse the JSON file.'
exit 1
fi fi
[ ! -z "${config_channel:-}" ] && channel="$config_channel" [ ! -z "${config_channel:-}" ] && channel="$config_channel"
[ ! -z "${config_tools_source:-}" ] && tools_source="$config_tools_source" [ ! -z "${config_tools_source:-}" ] && tools_source="$config_tools_source"
fi fi
[ -z "$channel" ] && channel='dev' [ -z "$channel" ] && channel='master'
[ -z "$tools_source" ] && tools_source='https://aspnetcore.blob.core.windows.net/buildtools' [ -z "$tools_source" ] && tools_source='https://aspnetcore.blob.core.windows.net/buildtools'
get_korebuild get_korebuild
set_korebuildsettings "$tools_source" "$DOTNET_HOME" "$repo_path" "$config_file" set_korebuildsettings "$tools_source" "$DOTNET_HOME" "$repo_path" "$config_file" "$ci"
invoke_korebuild_command "$command" "$@" invoke_korebuild_command "$command" "$@"

View File

@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netcoreapp2.1;net461</TargetFrameworks> <TargetFrameworks>netcoreapp2.2;net461</TargetFrameworks>
<IsPackable>false</IsPackable> <IsPackable>false</IsPackable>
<OutputType>exe</OutputType> <OutputType>exe</OutputType>
</PropertyGroup> </PropertyGroup>

View File

@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netcoreapp2.1;net461</TargetFrameworks> <TargetFrameworks>netcoreapp2.2;net461</TargetFrameworks>
<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked> <TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
<IsPackable>false</IsPackable> <IsPackable>false</IsPackable>
</PropertyGroup> </PropertyGroup>
@@ -18,6 +18,7 @@
<PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="$(MicrosoftAspNetCoreServerKestrelPackageVersion)" /> <PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="$(MicrosoftAspNetCoreServerKestrelPackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="$(MicrosoftAspNetCoreStaticFilesPackageVersion)" /> <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="$(MicrosoftAspNetCoreStaticFilesPackageVersion)" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="$(MicrosoftExtensionsLoggingDebugPackageVersion)" /> <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="$(MicrosoftExtensionsLoggingDebugPackageVersion)" />
<PackageReference Include="Microsoft.NET.Sdk.Razor" Version="$(MicrosoftNETSdkRazorPackageVersion)" PrivateAssets="All" />
</ItemGroup> </ItemGroup>
<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish"> <Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">

View File

@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netcoreapp2.1;net461</TargetFrameworks> <TargetFrameworks>netcoreapp2.2;net461</TargetFrameworks>
<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked> <TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
<IsPackable>false</IsPackable> <IsPackable>false</IsPackable>
</PropertyGroup> </PropertyGroup>
@@ -18,6 +18,7 @@
<PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="$(MicrosoftAspNetCoreServerKestrelPackageVersion)" /> <PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="$(MicrosoftAspNetCoreServerKestrelPackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="$(MicrosoftAspNetCoreStaticFilesPackageVersion)" /> <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="$(MicrosoftAspNetCoreStaticFilesPackageVersion)" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="$(MicrosoftExtensionsLoggingDebugPackageVersion)" /> <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="$(MicrosoftExtensionsLoggingDebugPackageVersion)" />
<PackageReference Include="Microsoft.NET.Sdk.Razor" Version="$(MicrosoftNETSdkRazorPackageVersion)" PrivateAssets="All" />
</ItemGroup> </ItemGroup>
<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish"> <Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">

View File

@@ -0,0 +1,28 @@
[cmdletbinding(SupportsShouldProcess = $true)]
param(
)
$ErrorActionPreference = 'Stop'
Set-StrictMode -Version 2
Push-Location "src"
try {
$dirs = Get-ChildItem -Directory
foreach($dir in $dirs)
{
Push-Location $dir
try{
if(Test-Path -Path "package.json")
{
npm install
npm run build
}
}
finally{
Pop-Location
}
}
}
finally {
Pop-Location
}

View File

@@ -1,57 +1,103 @@
(function(e, a) { for(var i in a) e[i] = a[i]; }(exports, /******/ (function(modules) { // webpackBootstrap (function(e, a) { for(var i in a) e[i] = a[i]; }(exports, /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache /******/ // The module cache
/******/ var installedModules = {}; /******/ var installedModules = {};
/******/
/******/ // The require function /******/ // The require function
/******/ function __webpack_require__(moduleId) { /******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache /******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) /******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports; /******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache) /******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = { /******/ var module = installedModules[moduleId] = {
/******/ exports: {}, /******/ i: moduleId,
/******/ id: moduleId, /******/ l: false,
/******/ loaded: false /******/ exports: {}
/******/ }; /******/ };
/******/
/******/ // Execute the module function /******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded /******/ // Flag the module as loaded
/******/ module.loaded = true; /******/ module.l = true;
/******/
/******/ // Return the exports of the module /******/ // Return the exports of the module
/******/ return module.exports; /******/ return module.exports;
/******/ } /******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__) /******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules; /******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache /******/ // expose the module cache
/******/ __webpack_require__.c = installedModules; /******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__ /******/ // __webpack_public_path__
/******/ __webpack_require__.p = ""; /******/ __webpack_require__.p = "";
/******/
/******/
/******/ // Load entry module and return exports /******/ // Load entry module and return exports
/******/ return __webpack_require__(0); /******/ return __webpack_require__(__webpack_require__.s = 0);
/******/ }) /******/ })
/************************************************************************/ /************************************************************************/
/******/ ([ /******/ ([
/* 0 */ /* 0 */
/***/ function(module, exports, __webpack_require__) { /***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(1); module.exports = __webpack_require__(1);
/***/ }, /***/ }),
/* 1 */ /* 1 */
/***/ function(module, exports, __webpack_require__) { /***/ (function(module, exports, __webpack_require__) {
"use strict"; "use strict";
exports.__esModule = true;
// Limit dependencies to core Node modules. This means the code in this file has to be very low-level and unattractive, // Limit dependencies to core Node modules. This means the code in this file has to be very low-level and unattractive,
// but simplifies things for the consumer of this module. // but simplifies things for the consumer of this module.
__webpack_require__(2); __webpack_require__(2);
@@ -115,12 +161,12 @@
var parsedArgs = ArgsUtil_1.parseArgs(process.argv); var parsedArgs = ArgsUtil_1.parseArgs(process.argv);
var listenAddress = (useWindowsNamedPipes ? '\\\\.\\pipe\\' : '/tmp/') + parsedArgs.listenAddress; var listenAddress = (useWindowsNamedPipes ? '\\\\.\\pipe\\' : '/tmp/') + parsedArgs.listenAddress;
server.listen(listenAddress); server.listen(listenAddress);
ExitWhenParentExits_1.exitWhenParentExits(parseInt(parsedArgs.parentPid)); ExitWhenParentExits_1.exitWhenParentExits(parseInt(parsedArgs.parentPid), /* ignoreSigint */ true);
/***/ }, /***/ }),
/* 2 */ /* 2 */
/***/ function(module, exports) { /***/ (function(module, exports) {
// When Node writes to stdout/strerr, we capture that and convert the lines into calls on the // When Node writes to stdout/strerr, we capture that and convert the lines into calls on the
// active .NET ILogger. But by default, stdout/stderr don't have any way of distinguishing // active .NET ILogger. But by default, stdout/stderr don't have any way of distinguishing
@@ -159,29 +205,31 @@
} }
/***/ }, /***/ }),
/* 3 */ /* 3 */
/***/ function(module, exports) { /***/ (function(module, exports) {
module.exports = require("net"); module.exports = require("net");
/***/ }, /***/ }),
/* 4 */ /* 4 */
/***/ function(module, exports) { /***/ (function(module, exports) {
module.exports = require("path"); module.exports = require("path");
/***/ }, /***/ }),
/* 5 */ /* 5 */
/***/ function(module, exports) { /***/ (function(module, exports) {
module.exports = require("readline"); module.exports = require("readline");
/***/ }, /***/ }),
/* 6 */ /* 6 */
/***/ function(module, exports) { /***/ (function(module, exports, __webpack_require__) {
"use strict"; "use strict";
exports.__esModule = true;
function parseArgs(args) { function parseArgs(args) {
// Very simplistic parsing which is sufficient for the cases needed. We don't want to bring in any external // Very simplistic parsing which is sufficient for the cases needed. We don't want to bring in any external
// dependencies (such as an args-parsing library) to this file. // dependencies (such as an args-parsing library) to this file.
@@ -203,9 +251,11 @@
exports.parseArgs = parseArgs; exports.parseArgs = parseArgs;
/***/ }, /***/ }),
/* 7 */ /* 7 */
/***/ function(module, exports) { /***/ (function(module, exports, __webpack_require__) {
"use strict";
/* /*
In general, we want the Node child processes to be terminated as soon as the parent .NET processes exit, In general, we want the Node child processes to be terminated as soon as the parent .NET processes exit,
@@ -240,9 +290,9 @@
Of these, the only cross-platform approach that is actually documented as a valid strategy is simply polling Of these, the only cross-platform approach that is actually documented as a valid strategy is simply polling
to check whether the parent PID is still running. So that's what we do here. to check whether the parent PID is still running. So that's what we do here.
*/ */
"use strict"; exports.__esModule = true;
var pollIntervalMs = 1000; var pollIntervalMs = 1000;
function exitWhenParentExits(parentPid) { function exitWhenParentExits(parentPid, ignoreSigint) {
setInterval(function () { setInterval(function () {
if (!processExists(parentPid)) { if (!processExists(parentPid)) {
// Can't log anything at this point, because out stdout was connected to the parent, // Can't log anything at this point, because out stdout was connected to the parent,
@@ -250,6 +300,24 @@
process.exit(); process.exit();
} }
}, pollIntervalMs); }, pollIntervalMs);
if (ignoreSigint) {
// Pressing ctrl+c in the terminal sends a SIGINT to all processes in the foreground process tree.
// By default, the Node process would then exit before the .NET process, because ASP.NET implements
// a delayed shutdown to allow ongoing requests to complete.
//
// This is problematic, because if Node exits first, the CopyToAsync code in ConditionalProxyMiddleware
// will experience a read fault, and logs a huge load of errors. Fortunately, since the Node process is
// already set up to shut itself down if it detects the .NET process is terminated, all we have to do is
// ignore the SIGINT. The Node process will then terminate automatically after the .NET process does.
//
// A better solution would be to have WebpackDevMiddleware listen for SIGINT and gracefully close any
// ongoing EventSource connections before letting the Node process exit, independently of the .NET
// process exiting. However, doing this well in general is very nontrivial (see all the discussion at
// https://github.com/nodejs/node/issues/2642).
process.on('SIGINT', function () {
console.log('Received SIGINT. Waiting for .NET process to exit...');
});
}
} }
exports.exitWhenParentExits = exitWhenParentExits; exports.exitWhenParentExits = exitWhenParentExits;
function processExists(pid) { function processExists(pid) {
@@ -270,11 +338,13 @@
} }
/***/ }, /***/ }),
/* 8 */ /* 8 */
/***/ function(module, exports, __webpack_require__) { /***/ (function(module, exports, __webpack_require__) {
"use strict"; "use strict";
exports.__esModule = true;
var events_1 = __webpack_require__(9); var events_1 = __webpack_require__(9);
var VirtualConnection_1 = __webpack_require__(10); var VirtualConnection_1 = __webpack_require__(10);
// Keep this in sync with the equivalent constant in the .NET code. Both sides split up their transmissions into frames with this max length, // Keep this in sync with the equivalent constant in the .NET code. Both sides split up their transmissions into frames with this max length,
@@ -300,7 +370,7 @@
/** /**
* Tracks the 'virtual connections' associated with a single physical socket connection. * Tracks the 'virtual connections' associated with a single physical socket connection.
*/ */
var VirtualConnectionsCollection = (function () { var VirtualConnectionsCollection = /** @class */ (function () {
function VirtualConnectionsCollection(_socket, _onVirtualConnectionCallback) { function VirtualConnectionsCollection(_socket, _onVirtualConnectionCallback) {
var _this = this; var _this = this;
this._socket = _socket; this._socket = _socket;
@@ -382,7 +452,7 @@
newVirtualConnection.on('finish', function () { newVirtualConnection.on('finish', function () {
// The virtual connection was closed locally. Clean up locally, and notify the remote that we're done. // The virtual connection was closed locally. Clean up locally, and notify the remote that we're done.
_this._onVirtualConnectionWasClosed(header.connectionIdString); _this._onVirtualConnectionWasClosed(header.connectionIdString);
_this._sendFrame(header.connectionIdBinary, new Buffer(0)); _this._sendFrame(header.connectionIdBinary, Buffer.alloc(0));
}); });
this._virtualConnections[header.connectionIdString] = newVirtualConnection; this._virtualConnections[header.connectionIdString] = newVirtualConnection;
this._onVirtualConnectionCallback(newVirtualConnection); this._onVirtualConnectionCallback(newVirtualConnection);
@@ -444,7 +514,7 @@
* Sends a number serialized in the correct format for .NET to receive as a System.Int32 * Sends a number serialized in the correct format for .NET to receive as a System.Int32
*/ */
VirtualConnectionsCollection.prototype._sendInt32LE = function (value, callback) { VirtualConnectionsCollection.prototype._sendInt32LE = function (value, callback) {
var buf = new Buffer(4); var buf = Buffer.alloc(4);
buf.writeInt32LE(value, 0); buf.writeInt32LE(value, 0);
this._socket.write(buf, callback); this._socket.write(buf, callback);
}; };
@@ -457,27 +527,37 @@
}()); }());
/***/ }, /***/ }),
/* 9 */ /* 9 */
/***/ function(module, exports) { /***/ (function(module, exports) {
module.exports = require("events"); module.exports = require("events");
/***/ }, /***/ }),
/* 10 */ /* 10 */
/***/ function(module, exports, __webpack_require__) { /***/ (function(module, exports, __webpack_require__) {
"use strict"; "use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
}
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; } function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
}; };
})();
exports.__esModule = true;
var stream_1 = __webpack_require__(11); var stream_1 = __webpack_require__(11);
/** /**
* Represents a virtual connection. Multiple virtual connections may be multiplexed over a single physical socket connection. * Represents a virtual connection. Multiple virtual connections may be multiplexed over a single physical socket connection.
*/ */
var VirtualConnection = (function (_super) { var VirtualConnection = /** @class */ (function (_super) {
__extends(VirtualConnection, _super); __extends(VirtualConnection, _super);
function VirtualConnection(_beginWriteCallback) { function VirtualConnection(_beginWriteCallback) {
var _this = _super.call(this) || this; var _this = _super.call(this) || this;
@@ -497,7 +577,7 @@
}; };
VirtualConnection.prototype._write = function (chunk, encodingIfString, callback) { VirtualConnection.prototype._write = function (chunk, encodingIfString, callback) {
if (typeof chunk === 'string') { if (typeof chunk === 'string') {
chunk = new Buffer(chunk, encodingIfString); chunk = Buffer.from(chunk, encodingIfString);
} }
this._beginWriteCallback(chunk, callback); this._beginWriteCallback(chunk, callback);
}; };
@@ -514,11 +594,11 @@
exports.VirtualConnection = VirtualConnection; exports.VirtualConnection = VirtualConnection;
/***/ }, /***/ }),
/* 11 */ /* 11 */
/***/ function(module, exports) { /***/ (function(module, exports) {
module.exports = require("stream"); module.exports = require("stream");
/***/ } /***/ })
/******/ ]))); /******/ ])));

View File

@@ -27,7 +27,7 @@ export class VirtualConnection extends Duplex {
public _write(chunk: Buffer | string, encodingIfString: string, callback: EndWriteCallback) { public _write(chunk: Buffer | string, encodingIfString: string, callback: EndWriteCallback) {
if (typeof chunk === 'string') { if (typeof chunk === 'string') {
chunk = new Buffer(chunk as string, encodingIfString); chunk = Buffer.from(chunk as string, encodingIfString);
} }
this._beginWriteCallback(chunk as Buffer, callback); this._beginWriteCallback(chunk as Buffer, callback);

View File

@@ -113,7 +113,7 @@ class VirtualConnectionsCollection {
newVirtualConnection.on('finish', () => { newVirtualConnection.on('finish', () => {
// The virtual connection was closed locally. Clean up locally, and notify the remote that we're done. // The virtual connection was closed locally. Clean up locally, and notify the remote that we're done.
this._onVirtualConnectionWasClosed(header.connectionIdString); this._onVirtualConnectionWasClosed(header.connectionIdString);
this._sendFrame(header.connectionIdBinary, new Buffer(0)); this._sendFrame(header.connectionIdBinary, Buffer.alloc(0));
}); });
this._virtualConnections[header.connectionIdString] = newVirtualConnection; this._virtualConnections[header.connectionIdString] = newVirtualConnection;
@@ -180,7 +180,7 @@ class VirtualConnectionsCollection {
* Sends a number serialized in the correct format for .NET to receive as a System.Int32 * Sends a number serialized in the correct format for .NET to receive as a System.Int32
*/ */
private _sendInt32LE(value: number, callback?: EndWriteCallback) { private _sendInt32LE(value: number, callback?: EndWriteCallback) {
const buf = new Buffer(4); const buf = Buffer.alloc(4);
buf.writeInt32LE(value, 0); buf.writeInt32LE(value, 0);
this._socket.write(buf, callback); this._socket.write(buf, callback);
} }

View File

@@ -1,5 +1,5 @@
{ {
"AssemblyIdentity": "Microsoft.AspNetCore.NodeServices.Sockets, Version=2.0.3.0, Culture=neutral, PublicKeyToken=adb9793829ddae60", "AssemblyIdentity": "Microsoft.AspNetCore.NodeServices.Sockets, Version=2.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60",
"Types": [ "Types": [
{ {
"Name": "Microsoft.AspNetCore.NodeServices.Sockets.NodeServicesOptionsExtensions", "Name": "Microsoft.AspNetCore.NodeServices.Sockets.NodeServicesOptionsExtensions",

File diff suppressed because it is too large Load Diff

View File

@@ -5,14 +5,15 @@
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
"test": "echo \"Error: no test specified\" && exit 1", "test": "echo \"Error: no test specified\" && exit 1",
"build": "./node_modules/.bin/webpack" "build": "webpack --mode production"
}, },
"author": "Microsoft", "author": "Microsoft",
"license": "Apache-2.0", "license": "Apache-2.0",
"devDependencies": { "devDependencies": {
"@types/node": "^6.0.42", "@types/node": "^10.9.2",
"ts-loader": "^0.8.2", "ts-loader": "^4.5.0",
"typescript": "^2.0.0", "typescript": "^3.0.1",
"webpack": "^1.13.1" "webpack": "^4.17.1",
"webpack-cli": "^3.1.0"
} }
} }

View File

@@ -1,12 +1,13 @@
const path = require('path');
module.exports = { module.exports = {
target: 'node', target: 'node',
externals: ['fs', 'net', 'events', 'readline', 'stream'],
resolve: { resolve: {
extensions: [ '.ts' ] extensions: [ '.ts' ]
}, },
module: { module: {
loaders: [ rules: [
{ test: /\.ts$/, loader: 'ts-loader' }, { test: /\.ts$/, use: 'ts-loader' },
] ]
}, },
entry: { entry: {
@@ -14,7 +15,10 @@ module.exports = {
}, },
output: { output: {
libraryTarget: 'commonjs', libraryTarget: 'commonjs',
path: './Content/Node', path: path.join(__dirname, 'Content', 'Node'),
filename: '[name].js' filename: '[name].js'
},
optimization: {
minimize: false
} }
}; };

View File

@@ -58,8 +58,9 @@ namespace Microsoft.AspNetCore.NodeServices
var loggerFactory = serviceProvider.GetService<ILoggerFactory>(); var loggerFactory = serviceProvider.GetService<ILoggerFactory>();
NodeInstanceOutputLogger = loggerFactory != null NodeInstanceOutputLogger = loggerFactory != null
? loggerFactory.CreateLogger(LogCategoryName) ? loggerFactory.CreateLogger(LogCategoryName)
#pragma warning disable CS0618 // Type or member is obsolete
: new ConsoleLogger(LogCategoryName, null, false); : new ConsoleLogger(LogCategoryName, null, false);
#pragma warning restore CS0618
// By default, we use this package's built-in out-of-process-via-HTTP hosting/transport // By default, we use this package's built-in out-of-process-via-HTTP hosting/transport
this.UseHttpHosting(); this.UseHttpHosting();
} }

View File

@@ -1,63 +1,115 @@
(function(e, a) { for(var i in a) e[i] = a[i]; }(exports, /******/ (function(modules) { // webpackBootstrap (function(e, a) { for(var i in a) e[i] = a[i]; }(exports, /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache /******/ // The module cache
/******/ var installedModules = {}; /******/ var installedModules = {};
/******/
/******/ // The require function /******/ // The require function
/******/ function __webpack_require__(moduleId) { /******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache /******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) /******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports; /******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache) /******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = { /******/ var module = installedModules[moduleId] = {
/******/ exports: {}, /******/ i: moduleId,
/******/ id: moduleId, /******/ l: false,
/******/ loaded: false /******/ exports: {}
/******/ }; /******/ };
/******/
/******/ // Execute the module function /******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded /******/ // Flag the module as loaded
/******/ module.loaded = true; /******/ module.l = true;
/******/
/******/ // Return the exports of the module /******/ // Return the exports of the module
/******/ return module.exports; /******/ return module.exports;
/******/ } /******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__) /******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules; /******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache /******/ // expose the module cache
/******/ __webpack_require__.c = installedModules; /******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__ /******/ // __webpack_public_path__
/******/ __webpack_require__.p = ""; /******/ __webpack_require__.p = "";
/******/
/******/
/******/ // Load entry module and return exports /******/ // Load entry module and return exports
/******/ return __webpack_require__(0); /******/ return __webpack_require__(__webpack_require__.s = 1);
/******/ }) /******/ })
/************************************************************************/ /************************************************************************/
/******/ ([ /******/ ([
/* 0 */ /* 0 */
/***/ function(module, exports, __webpack_require__) { /***/ (function(module, exports) {
module.exports = __webpack_require__(1); module.exports = require("path");
/***/ }),
/***/ },
/* 1 */ /* 1 */
/***/ function(module, exports, __webpack_require__) { /***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(2);
/***/ }),
/* 2 */
/***/ (function(module, exports, __webpack_require__) {
"use strict"; "use strict";
exports.__esModule = true;
// Limit dependencies to core Node modules. This means the code in this file has to be very low-level and unattractive, // Limit dependencies to core Node modules. This means the code in this file has to be very low-level and unattractive,
// but simplifies things for the consumer of this module. // but simplifies things for the consumer of this module.
__webpack_require__(2); __webpack_require__(3);
__webpack_require__(4); __webpack_require__(4);
var http = __webpack_require__(5); var http = __webpack_require__(5);
var path = __webpack_require__(3); var path = __webpack_require__(0);
var ArgsUtil_1 = __webpack_require__(6); var ArgsUtil_1 = __webpack_require__(6);
var ExitWhenParentExits_1 = __webpack_require__(7); var ExitWhenParentExits_1 = __webpack_require__(7);
// Webpack doesn't support dynamic requires for files not present at compile time, so grab a direct // Webpack doesn't support dynamic requires for files not present at compile time, so grab a direct
@@ -121,8 +173,9 @@
var parsedArgs = ArgsUtil_1.parseArgs(process.argv); var parsedArgs = ArgsUtil_1.parseArgs(process.argv);
var requestedPortOrZero = parsedArgs.port || 0; // 0 means 'let the OS decide' var requestedPortOrZero = parsedArgs.port || 0; // 0 means 'let the OS decide'
server.listen(requestedPortOrZero, 'localhost', function () { server.listen(requestedPortOrZero, 'localhost', function () {
var addressInfo = server.address();
// Signal to HttpNodeHost which loopback IP address (IPv4 or IPv6) and port it should make its HTTP connections on // Signal to HttpNodeHost which loopback IP address (IPv4 or IPv6) and port it should make its HTTP connections on
console.log('[Microsoft.AspNetCore.NodeServices.HttpNodeHost:Listening on {' + server.address().address + '} port ' + server.address().port + '\]'); console.log('[Microsoft.AspNetCore.NodeServices.HttpNodeHost:Listening on {' + addressInfo.address + '} port ' + addressInfo.port + '\]');
// Signal to the NodeServices base class that we're ready to accept invocations // Signal to the NodeServices base class that we're ready to accept invocations
console.log('[Microsoft.AspNetCore.NodeServices:Listening]'); console.log('[Microsoft.AspNetCore.NodeServices:Listening]');
}); });
@@ -141,12 +194,14 @@
} }
/***/ }, /***/ }),
/* 2 */ /* 3 */
/***/ function(module, exports, __webpack_require__) { /***/ (function(module, exports, __webpack_require__) {
"use strict"; "use strict";
var path = __webpack_require__(3);
exports.__esModule = true;
var path = __webpack_require__(0);
var startsWith = function (str, prefix) { return str.substring(0, prefix.length) === prefix; }; var startsWith = function (str, prefix) { return str.substring(0, prefix.length) === prefix; };
var appRootDir = process.cwd(); var appRootDir = process.cwd();
function patchedLStat(pathToStatLong, fsReqWrap) { function patchedLStat(pathToStatLong, fsReqWrap) {
@@ -189,19 +244,15 @@
} }
} }
catch (ex) { catch (ex) {
// If some future version of Node throws (e.g., to prevent use of process.binding()),
// don't apply the patch, but still let the application run.
} }
} }
/***/ }, /***/ }),
/* 3 */
/***/ function(module, exports) {
module.exports = require("path");
/***/ },
/* 4 */ /* 4 */
/***/ function(module, exports) { /***/ (function(module, exports) {
// When Node writes to stdout/strerr, we capture that and convert the lines into calls on the // When Node writes to stdout/strerr, we capture that and convert the lines into calls on the
// active .NET ILogger. But by default, stdout/stderr don't have any way of distinguishing // active .NET ILogger. But by default, stdout/stderr don't have any way of distinguishing
@@ -240,17 +291,19 @@
} }
/***/ }, /***/ }),
/* 5 */ /* 5 */
/***/ function(module, exports) { /***/ (function(module, exports) {
module.exports = require("http"); module.exports = require("http");
/***/ }, /***/ }),
/* 6 */ /* 6 */
/***/ function(module, exports) { /***/ (function(module, exports, __webpack_require__) {
"use strict"; "use strict";
exports.__esModule = true;
function parseArgs(args) { function parseArgs(args) {
// Very simplistic parsing which is sufficient for the cases needed. We don't want to bring in any external // Very simplistic parsing which is sufficient for the cases needed. We don't want to bring in any external
// dependencies (such as an args-parsing library) to this file. // dependencies (such as an args-parsing library) to this file.
@@ -272,9 +325,11 @@
exports.parseArgs = parseArgs; exports.parseArgs = parseArgs;
/***/ }, /***/ }),
/* 7 */ /* 7 */
/***/ function(module, exports) { /***/ (function(module, exports, __webpack_require__) {
"use strict";
/* /*
In general, we want the Node child processes to be terminated as soon as the parent .NET processes exit, In general, we want the Node child processes to be terminated as soon as the parent .NET processes exit,
@@ -309,7 +364,7 @@
Of these, the only cross-platform approach that is actually documented as a valid strategy is simply polling Of these, the only cross-platform approach that is actually documented as a valid strategy is simply polling
to check whether the parent PID is still running. So that's what we do here. to check whether the parent PID is still running. So that's what we do here.
*/ */
"use strict"; exports.__esModule = true;
var pollIntervalMs = 1000; var pollIntervalMs = 1000;
function exitWhenParentExits(parentPid, ignoreSigint) { function exitWhenParentExits(parentPid, ignoreSigint) {
setInterval(function () { setInterval(function () {
@@ -357,5 +412,5 @@
} }
/***/ } /***/ })
/******/ ]))); /******/ ])));

View File

@@ -6,6 +6,7 @@ import * as http from 'http';
import * as path from 'path'; import * as path from 'path';
import { parseArgs } from './Util/ArgsUtil'; import { parseArgs } from './Util/ArgsUtil';
import { exitWhenParentExits } from './Util/ExitWhenParentExits'; import { exitWhenParentExits } from './Util/ExitWhenParentExits';
import { AddressInfo } from 'net';
// Webpack doesn't support dynamic requires for files not present at compile time, so grab a direct // Webpack doesn't support dynamic requires for files not present at compile time, so grab a direct
// reference to Node's runtime 'require' function. // reference to Node's runtime 'require' function.
@@ -70,8 +71,10 @@ const server = http.createServer((req, res) => {
const parsedArgs = parseArgs(process.argv); const parsedArgs = parseArgs(process.argv);
const requestedPortOrZero = parsedArgs.port || 0; // 0 means 'let the OS decide' const requestedPortOrZero = parsedArgs.port || 0; // 0 means 'let the OS decide'
server.listen(requestedPortOrZero, 'localhost', function () { server.listen(requestedPortOrZero, 'localhost', function () {
const addressInfo = server.address() as AddressInfo;
// Signal to HttpNodeHost which loopback IP address (IPv4 or IPv6) and port it should make its HTTP connections on // Signal to HttpNodeHost which loopback IP address (IPv4 or IPv6) and port it should make its HTTP connections on
console.log('[Microsoft.AspNetCore.NodeServices.HttpNodeHost:Listening on {' + server.address().address + '} port ' + server.address().port + '\]'); console.log('[Microsoft.AspNetCore.NodeServices.HttpNodeHost:Listening on {' + addressInfo.address + '} port ' + addressInfo.port + '\]');
// Signal to the NodeServices base class that we're ready to accept invocations // Signal to the NodeServices base class that we're ready to accept invocations
console.log('[Microsoft.AspNetCore.NodeServices:Listening]'); console.log('[Microsoft.AspNetCore.NodeServices:Listening]');

View File

@@ -1,5 +1,5 @@
{ {
"AssemblyIdentity": "Microsoft.AspNetCore.NodeServices, Version=2.0.3.0, Culture=neutral, PublicKeyToken=adb9793829ddae60", "AssemblyIdentity": "Microsoft.AspNetCore.NodeServices, Version=2.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60",
"Types": [ "Types": [
{ {
"Name": "Microsoft.Extensions.DependencyInjection.NodeServicesServiceCollectionExtensions", "Name": "Microsoft.Extensions.DependencyInjection.NodeServicesServiceCollectionExtensions",
@@ -714,6 +714,17 @@
"Microsoft.AspNetCore.NodeServices.HostingModels.INodeInstance" "Microsoft.AspNetCore.NodeServices.HostingModels.INodeInstance"
], ],
"Members": [ "Members": [
{
"Kind": "Method",
"Name": "Dispose",
"Parameters": [],
"ReturnType": "System.Void",
"Sealed": true,
"Virtual": true,
"ImplementedInterface": "System.IDisposable",
"Visibility": "Public",
"GenericParameter": []
},
{ {
"Kind": "Method", "Kind": "Method",
"Name": "InvokeExportAsync<T0>", "Name": "InvokeExportAsync<T0>",
@@ -749,17 +760,6 @@
} }
] ]
}, },
{
"Kind": "Method",
"Name": "Dispose",
"Parameters": [],
"ReturnType": "System.Void",
"Sealed": true,
"Virtual": true,
"ImplementedInterface": "System.IDisposable",
"Visibility": "Public",
"GenericParameter": []
},
{ {
"Kind": "Method", "Kind": "Method",
"Name": "InvokeExportAsync<T0>", "Name": "InvokeExportAsync<T0>",

File diff suppressed because it is too large Load Diff

View File

@@ -5,14 +5,15 @@
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
"test": "echo \"Error: no test specified\" && exit 1", "test": "echo \"Error: no test specified\" && exit 1",
"build": "./node_modules/.bin/webpack" "build": "webpack --mode production"
}, },
"author": "Microsoft", "author": "Microsoft",
"license": "Apache-2.0", "license": "Apache-2.0",
"devDependencies": { "devDependencies": {
"@types/node": "^6.0.42", "@types/node": "^10.9.2",
"ts-loader": "^0.8.2", "ts-loader": "^4.5.0",
"typescript": "^2.0.0", "typescript": "^3.0.1",
"webpack": "^1.13.1" "webpack": "^4.17.1",
"webpack-cli": "^3.1.0"
} }
} }

View File

@@ -1,12 +1,13 @@
const path = require('path');
module.exports = { module.exports = {
target: 'node', target: 'node',
externals: ['fs', 'net', 'events', 'readline', 'stream'],
resolve: { resolve: {
extensions: [ '.ts' ] extensions: [ '.ts' ]
}, },
module: { module: {
loaders: [ rules: [
{ test: /\.ts$/, loader: 'ts-loader' }, { test: /\.ts$/, use: 'ts-loader' },
] ]
}, },
entry: { entry: {
@@ -14,7 +15,10 @@ module.exports = {
}, },
output: { output: {
libraryTarget: 'commonjs', libraryTarget: 'commonjs',
path: './Content/Node', path: path.join(__dirname, 'Content', 'Node'),
filename: '[name].js' filename: '[name].js'
},
optimization: {
minimize: false
} }
}; };

View File

@@ -18,7 +18,9 @@ namespace Microsoft.AspNetCore.SpaServices.Util
var loggerFactory = appBuilder.ApplicationServices.GetService<ILoggerFactory>(); var loggerFactory = appBuilder.ApplicationServices.GetService<ILoggerFactory>();
var logger = loggerFactory != null var logger = loggerFactory != null
? loggerFactory.CreateLogger(logCategoryName) ? loggerFactory.CreateLogger(logCategoryName)
#pragma warning disable CS0618 // Type or member is obsolete
: new ConsoleLogger(logCategoryName, null, false); : new ConsoleLogger(logCategoryName, null, false);
#pragma warning restore CS0618
return logger; return logger;
} }
} }

View File

@@ -0,0 +1,825 @@
{
"AssemblyIdentity": "Microsoft.AspNetCore.SpaServices.Extensions, Version=2.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60",
"Types": [
{
"Name": "Microsoft.Extensions.DependencyInjection.SpaStaticFilesExtensions",
"Visibility": "Public",
"Kind": "Class",
"Abstract": true,
"Static": true,
"Sealed": true,
"ImplementedInterfaces": [],
"Members": [
{
"Kind": "Method",
"Name": "AddSpaStaticFiles",
"Parameters": [
{
"Name": "services",
"Type": "Microsoft.Extensions.DependencyInjection.IServiceCollection"
},
{
"Name": "configuration",
"Type": "System.Action<Microsoft.AspNetCore.SpaServices.StaticFiles.SpaStaticFilesOptions>",
"DefaultValue": "null"
}
],
"ReturnType": "System.Void",
"Static": true,
"Extension": true,
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Method",
"Name": "UseSpaStaticFiles",
"Parameters": [
{
"Name": "applicationBuilder",
"Type": "Microsoft.AspNetCore.Builder.IApplicationBuilder"
}
],
"ReturnType": "System.Void",
"Static": true,
"Extension": true,
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Method",
"Name": "UseSpaStaticFiles",
"Parameters": [
{
"Name": "applicationBuilder",
"Type": "Microsoft.AspNetCore.Builder.IApplicationBuilder"
},
{
"Name": "options",
"Type": "Microsoft.AspNetCore.Builder.StaticFileOptions"
}
],
"ReturnType": "System.Void",
"Static": true,
"Extension": true,
"Visibility": "Public",
"GenericParameter": []
}
],
"GenericParameters": []
},
{
"Name": "Microsoft.AspNetCore.Builder.SpaPrerenderingExtensions",
"Visibility": "Public",
"Kind": "Class",
"Abstract": true,
"Static": true,
"Sealed": true,
"ImplementedInterfaces": [],
"Members": [
{
"Kind": "Method",
"Name": "UseSpaPrerendering",
"Parameters": [
{
"Name": "spaBuilder",
"Type": "Microsoft.AspNetCore.SpaServices.ISpaBuilder"
},
{
"Name": "configuration",
"Type": "System.Action<Microsoft.AspNetCore.Builder.SpaPrerenderingOptions>"
}
],
"ReturnType": "System.Void",
"Static": true,
"Extension": true,
"Visibility": "Public",
"GenericParameter": []
}
],
"GenericParameters": []
},
{
"Name": "Microsoft.AspNetCore.Builder.SpaPrerenderingOptions",
"Visibility": "Public",
"Kind": "Class",
"ImplementedInterfaces": [],
"Members": [
{
"Kind": "Method",
"Name": "get_BootModuleBuilder",
"Parameters": [],
"ReturnType": "Microsoft.AspNetCore.SpaServices.Prerendering.ISpaPrerendererBuilder",
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Method",
"Name": "set_BootModuleBuilder",
"Parameters": [
{
"Name": "value",
"Type": "Microsoft.AspNetCore.SpaServices.Prerendering.ISpaPrerendererBuilder"
}
],
"ReturnType": "System.Void",
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Method",
"Name": "get_BootModulePath",
"Parameters": [],
"ReturnType": "System.String",
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Method",
"Name": "set_BootModulePath",
"Parameters": [
{
"Name": "value",
"Type": "System.String"
}
],
"ReturnType": "System.Void",
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Method",
"Name": "get_ExcludeUrls",
"Parameters": [],
"ReturnType": "System.String[]",
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Method",
"Name": "set_ExcludeUrls",
"Parameters": [
{
"Name": "value",
"Type": "System.String[]"
}
],
"ReturnType": "System.Void",
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Method",
"Name": "get_SupplyData",
"Parameters": [],
"ReturnType": "System.Action<Microsoft.AspNetCore.Http.HttpContext, System.Collections.Generic.IDictionary<System.String, System.Object>>",
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Method",
"Name": "set_SupplyData",
"Parameters": [
{
"Name": "value",
"Type": "System.Action<Microsoft.AspNetCore.Http.HttpContext, System.Collections.Generic.IDictionary<System.String, System.Object>>"
}
],
"ReturnType": "System.Void",
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Constructor",
"Name": ".ctor",
"Parameters": [],
"Visibility": "Public",
"GenericParameter": []
}
],
"GenericParameters": []
},
{
"Name": "Microsoft.AspNetCore.Builder.SpaProxyingExtensions",
"Visibility": "Public",
"Kind": "Class",
"Abstract": true,
"Static": true,
"Sealed": true,
"ImplementedInterfaces": [],
"Members": [
{
"Kind": "Method",
"Name": "UseProxyToSpaDevelopmentServer",
"Parameters": [
{
"Name": "spaBuilder",
"Type": "Microsoft.AspNetCore.SpaServices.ISpaBuilder"
},
{
"Name": "baseUri",
"Type": "System.String"
}
],
"ReturnType": "System.Void",
"Static": true,
"Extension": true,
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Method",
"Name": "UseProxyToSpaDevelopmentServer",
"Parameters": [
{
"Name": "spaBuilder",
"Type": "Microsoft.AspNetCore.SpaServices.ISpaBuilder"
},
{
"Name": "baseUri",
"Type": "System.Uri"
}
],
"ReturnType": "System.Void",
"Static": true,
"Extension": true,
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Method",
"Name": "UseProxyToSpaDevelopmentServer",
"Parameters": [
{
"Name": "spaBuilder",
"Type": "Microsoft.AspNetCore.SpaServices.ISpaBuilder"
},
{
"Name": "baseUriTaskFactory",
"Type": "System.Func<System.Threading.Tasks.Task<System.Uri>>"
}
],
"ReturnType": "System.Void",
"Static": true,
"Extension": true,
"Visibility": "Public",
"GenericParameter": []
}
],
"GenericParameters": []
},
{
"Name": "Microsoft.AspNetCore.Builder.SpaApplicationBuilderExtensions",
"Visibility": "Public",
"Kind": "Class",
"Abstract": true,
"Static": true,
"Sealed": true,
"ImplementedInterfaces": [],
"Members": [
{
"Kind": "Method",
"Name": "UseSpa",
"Parameters": [
{
"Name": "app",
"Type": "Microsoft.AspNetCore.Builder.IApplicationBuilder"
},
{
"Name": "configuration",
"Type": "System.Action<Microsoft.AspNetCore.SpaServices.ISpaBuilder>"
}
],
"ReturnType": "System.Void",
"Static": true,
"Extension": true,
"Visibility": "Public",
"GenericParameter": []
}
],
"GenericParameters": []
},
{
"Name": "Microsoft.AspNetCore.SpaServices.ISpaBuilder",
"Visibility": "Public",
"Kind": "Interface",
"Abstract": true,
"ImplementedInterfaces": [],
"Members": [
{
"Kind": "Method",
"Name": "get_ApplicationBuilder",
"Parameters": [],
"ReturnType": "Microsoft.AspNetCore.Builder.IApplicationBuilder",
"GenericParameter": []
},
{
"Kind": "Method",
"Name": "get_Options",
"Parameters": [],
"ReturnType": "Microsoft.AspNetCore.SpaServices.SpaOptions",
"GenericParameter": []
}
],
"GenericParameters": []
},
{
"Name": "Microsoft.AspNetCore.SpaServices.SpaOptions",
"Visibility": "Public",
"Kind": "Class",
"ImplementedInterfaces": [],
"Members": [
{
"Kind": "Method",
"Name": "get_DefaultPage",
"Parameters": [],
"ReturnType": "Microsoft.AspNetCore.Http.PathString",
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Method",
"Name": "set_DefaultPage",
"Parameters": [
{
"Name": "value",
"Type": "Microsoft.AspNetCore.Http.PathString"
}
],
"ReturnType": "System.Void",
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Method",
"Name": "get_DefaultPageStaticFileOptions",
"Parameters": [],
"ReturnType": "Microsoft.AspNetCore.Builder.StaticFileOptions",
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Method",
"Name": "set_DefaultPageStaticFileOptions",
"Parameters": [
{
"Name": "value",
"Type": "Microsoft.AspNetCore.Builder.StaticFileOptions"
}
],
"ReturnType": "System.Void",
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Method",
"Name": "get_SourcePath",
"Parameters": [],
"ReturnType": "System.String",
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Method",
"Name": "set_SourcePath",
"Parameters": [
{
"Name": "value",
"Type": "System.String"
}
],
"ReturnType": "System.Void",
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Method",
"Name": "get_StartupTimeout",
"Parameters": [],
"ReturnType": "System.TimeSpan",
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Method",
"Name": "set_StartupTimeout",
"Parameters": [
{
"Name": "value",
"Type": "System.TimeSpan"
}
],
"ReturnType": "System.Void",
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Constructor",
"Name": ".ctor",
"Parameters": [],
"Visibility": "Public",
"GenericParameter": []
}
],
"GenericParameters": []
},
{
"Name": "Microsoft.AspNetCore.SpaServices.StaticFiles.ISpaStaticFileProvider",
"Visibility": "Public",
"Kind": "Interface",
"Abstract": true,
"ImplementedInterfaces": [],
"Members": [
{
"Kind": "Method",
"Name": "get_FileProvider",
"Parameters": [],
"ReturnType": "Microsoft.Extensions.FileProviders.IFileProvider",
"GenericParameter": []
}
],
"GenericParameters": []
},
{
"Name": "Microsoft.AspNetCore.SpaServices.StaticFiles.SpaStaticFilesOptions",
"Visibility": "Public",
"Kind": "Class",
"ImplementedInterfaces": [],
"Members": [
{
"Kind": "Method",
"Name": "get_RootPath",
"Parameters": [],
"ReturnType": "System.String",
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Method",
"Name": "set_RootPath",
"Parameters": [
{
"Name": "value",
"Type": "System.String"
}
],
"ReturnType": "System.Void",
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Constructor",
"Name": ".ctor",
"Parameters": [],
"Visibility": "Public",
"GenericParameter": []
}
],
"GenericParameters": []
},
{
"Name": "Microsoft.AspNetCore.SpaServices.ReactDevelopmentServer.ReactDevelopmentServerMiddlewareExtensions",
"Visibility": "Public",
"Kind": "Class",
"Abstract": true,
"Static": true,
"Sealed": true,
"ImplementedInterfaces": [],
"Members": [
{
"Kind": "Method",
"Name": "UseReactDevelopmentServer",
"Parameters": [
{
"Name": "spaBuilder",
"Type": "Microsoft.AspNetCore.SpaServices.ISpaBuilder"
},
{
"Name": "npmScript",
"Type": "System.String"
}
],
"ReturnType": "System.Void",
"Static": true,
"Extension": true,
"Visibility": "Public",
"GenericParameter": []
}
],
"GenericParameters": []
},
{
"Name": "Microsoft.AspNetCore.SpaServices.Prerendering.ISpaPrerendererBuilder",
"Visibility": "Public",
"Kind": "Interface",
"Abstract": true,
"ImplementedInterfaces": [],
"Members": [
{
"Kind": "Method",
"Name": "Build",
"Parameters": [
{
"Name": "spaBuilder",
"Type": "Microsoft.AspNetCore.SpaServices.ISpaBuilder"
}
],
"ReturnType": "System.Threading.Tasks.Task",
"GenericParameter": []
}
],
"GenericParameters": []
},
{
"Name": "Microsoft.AspNetCore.SpaServices.AngularCli.AngularCliBuilder",
"Visibility": "Public",
"Kind": "Class",
"ImplementedInterfaces": [
"Microsoft.AspNetCore.SpaServices.Prerendering.ISpaPrerendererBuilder"
],
"Members": [
{
"Kind": "Method",
"Name": "Build",
"Parameters": [
{
"Name": "spaBuilder",
"Type": "Microsoft.AspNetCore.SpaServices.ISpaBuilder"
}
],
"ReturnType": "System.Threading.Tasks.Task",
"Sealed": true,
"Virtual": true,
"ImplementedInterface": "Microsoft.AspNetCore.SpaServices.Prerendering.ISpaPrerendererBuilder",
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Constructor",
"Name": ".ctor",
"Parameters": [
{
"Name": "npmScript",
"Type": "System.String"
}
],
"Visibility": "Public",
"GenericParameter": []
}
],
"GenericParameters": []
},
{
"Name": "Microsoft.AspNetCore.SpaServices.AngularCli.AngularCliMiddlewareExtensions",
"Visibility": "Public",
"Kind": "Class",
"Abstract": true,
"Static": true,
"Sealed": true,
"ImplementedInterfaces": [],
"Members": [
{
"Kind": "Method",
"Name": "UseAngularCliServer",
"Parameters": [
{
"Name": "spaBuilder",
"Type": "Microsoft.AspNetCore.SpaServices.ISpaBuilder"
},
{
"Name": "npmScript",
"Type": "System.String"
}
],
"ReturnType": "System.Void",
"Static": true,
"Extension": true,
"Visibility": "Public",
"GenericParameter": []
}
],
"GenericParameters": []
},
{
"Name": "Microsoft.AspNetCore.NodeServices.Util.EventedStreamReader+OnReceivedChunkHandler",
"Visibility": "Public",
"Kind": "Class",
"Sealed": true,
"BaseType": "System.MulticastDelegate",
"ImplementedInterfaces": [],
"Members": [
{
"Kind": "Method",
"Name": "Invoke",
"Parameters": [
{
"Name": "chunk",
"Type": "System.ArraySegment<System.Char>"
}
],
"ReturnType": "System.Void",
"Virtual": true,
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Method",
"Name": "BeginInvoke",
"Parameters": [
{
"Name": "chunk",
"Type": "System.ArraySegment<System.Char>"
},
{
"Name": "callback",
"Type": "System.AsyncCallback"
},
{
"Name": "object",
"Type": "System.Object"
}
],
"ReturnType": "System.IAsyncResult",
"Virtual": true,
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Method",
"Name": "EndInvoke",
"Parameters": [
{
"Name": "result",
"Type": "System.IAsyncResult"
}
],
"ReturnType": "System.Void",
"Virtual": true,
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Constructor",
"Name": ".ctor",
"Parameters": [
{
"Name": "object",
"Type": "System.Object"
},
{
"Name": "method",
"Type": "System.IntPtr"
}
],
"Visibility": "Public",
"GenericParameter": []
}
],
"GenericParameters": []
},
{
"Name": "Microsoft.AspNetCore.NodeServices.Util.EventedStreamReader+OnReceivedLineHandler",
"Visibility": "Public",
"Kind": "Class",
"Sealed": true,
"BaseType": "System.MulticastDelegate",
"ImplementedInterfaces": [],
"Members": [
{
"Kind": "Method",
"Name": "Invoke",
"Parameters": [
{
"Name": "line",
"Type": "System.String"
}
],
"ReturnType": "System.Void",
"Virtual": true,
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Method",
"Name": "BeginInvoke",
"Parameters": [
{
"Name": "line",
"Type": "System.String"
},
{
"Name": "callback",
"Type": "System.AsyncCallback"
},
{
"Name": "object",
"Type": "System.Object"
}
],
"ReturnType": "System.IAsyncResult",
"Virtual": true,
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Method",
"Name": "EndInvoke",
"Parameters": [
{
"Name": "result",
"Type": "System.IAsyncResult"
}
],
"ReturnType": "System.Void",
"Virtual": true,
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Constructor",
"Name": ".ctor",
"Parameters": [
{
"Name": "object",
"Type": "System.Object"
},
{
"Name": "method",
"Type": "System.IntPtr"
}
],
"Visibility": "Public",
"GenericParameter": []
}
],
"GenericParameters": []
},
{
"Name": "Microsoft.AspNetCore.NodeServices.Util.EventedStreamReader+OnStreamClosedHandler",
"Visibility": "Public",
"Kind": "Class",
"Sealed": true,
"BaseType": "System.MulticastDelegate",
"ImplementedInterfaces": [],
"Members": [
{
"Kind": "Method",
"Name": "Invoke",
"Parameters": [],
"ReturnType": "System.Void",
"Virtual": true,
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Method",
"Name": "BeginInvoke",
"Parameters": [
{
"Name": "callback",
"Type": "System.AsyncCallback"
},
{
"Name": "object",
"Type": "System.Object"
}
],
"ReturnType": "System.IAsyncResult",
"Virtual": true,
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Method",
"Name": "EndInvoke",
"Parameters": [
{
"Name": "result",
"Type": "System.IAsyncResult"
}
],
"ReturnType": "System.Void",
"Virtual": true,
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Constructor",
"Name": ".ctor",
"Parameters": [
{
"Name": "object",
"Type": "System.Object"
},
{
"Name": "method",
"Type": "System.IntPtr"
}
],
"Visibility": "Public",
"GenericParameter": []
}
],
"GenericParameters": []
}
]
}

View File

@@ -1,57 +1,103 @@
(function(e, a) { for(var i in a) e[i] = a[i]; }(exports, /******/ (function(modules) { // webpackBootstrap (function(e, a) { for(var i in a) e[i] = a[i]; }(exports, /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache /******/ // The module cache
/******/ var installedModules = {}; /******/ var installedModules = {};
/******/
/******/ // The require function /******/ // The require function
/******/ function __webpack_require__(moduleId) { /******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache /******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) /******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports; /******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache) /******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = { /******/ var module = installedModules[moduleId] = {
/******/ exports: {}, /******/ i: moduleId,
/******/ id: moduleId, /******/ l: false,
/******/ loaded: false /******/ exports: {}
/******/ }; /******/ };
/******/
/******/ // Execute the module function /******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded /******/ // Flag the module as loaded
/******/ module.loaded = true; /******/ module.l = true;
/******/
/******/ // Return the exports of the module /******/ // Return the exports of the module
/******/ return module.exports; /******/ return module.exports;
/******/ } /******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__) /******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules; /******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache /******/ // expose the module cache
/******/ __webpack_require__.c = installedModules; /******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__ /******/ // __webpack_public_path__
/******/ __webpack_require__.p = ""; /******/ __webpack_require__.p = "";
/******/
/******/
/******/ // Load entry module and return exports /******/ // Load entry module and return exports
/******/ return __webpack_require__(0); /******/ return __webpack_require__(__webpack_require__.s = 0);
/******/ }) /******/ })
/************************************************************************/ /************************************************************************/
/******/ ([ /******/ ([
/* 0 */ /* 0 */
/***/ function(module, exports, __webpack_require__) { /***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(1); module.exports = __webpack_require__(1);
/***/ }, /***/ }),
/* 1 */ /* 1 */
/***/ function(module, exports, __webpack_require__) { /***/ (function(module, exports, __webpack_require__) {
"use strict"; "use strict";
exports.__esModule = true;
var path = __webpack_require__(2); var path = __webpack_require__(2);
// Separate declaration and export just to add type checking on function signature // Separate declaration and export just to add type checking on function signature
exports.renderToString = renderToStringImpl; exports.renderToString = renderToStringImpl;
@@ -125,7 +171,7 @@
} }
else if (typeof foundBootModule !== 'function') { else if (typeof foundBootModule !== 'function') {
// TypeScript-style default export // TypeScript-style default export
renderToStringFunc = foundBootModule.default; renderToStringFunc = foundBootModule["default"];
} }
else { else {
// Native default export // Native default export
@@ -162,17 +208,17 @@
} }
/***/ }, /***/ }),
/* 2 */ /* 2 */
/***/ function(module, exports) { /***/ (function(module, exports) {
module.exports = require("path"); module.exports = require("path");
/***/ }, /***/ }),
/* 3 */ /* 3 */
/***/ function(module, exports) { /***/ (function(module, exports) {
module.exports = require("aspnet-prerendering"); module.exports = require("aspnet-prerendering");
/***/ } /***/ })
/******/ ]))); /******/ ])));

View File

@@ -1,65 +1,112 @@
(function(e, a) { for(var i in a) e[i] = a[i]; }(exports, /******/ (function(modules) { // webpackBootstrap (function(e, a) { for(var i in a) e[i] = a[i]; }(exports, /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache /******/ // The module cache
/******/ var installedModules = {}; /******/ var installedModules = {};
/******/
/******/ // The require function /******/ // The require function
/******/ function __webpack_require__(moduleId) { /******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache /******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) /******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports; /******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache) /******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = { /******/ var module = installedModules[moduleId] = {
/******/ exports: {}, /******/ i: moduleId,
/******/ id: moduleId, /******/ l: false,
/******/ loaded: false /******/ exports: {}
/******/ }; /******/ };
/******/
/******/ // Execute the module function /******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded /******/ // Flag the module as loaded
/******/ module.loaded = true; /******/ module.l = true;
/******/
/******/ // Return the exports of the module /******/ // Return the exports of the module
/******/ return module.exports; /******/ return module.exports;
/******/ } /******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__) /******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules; /******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache /******/ // expose the module cache
/******/ __webpack_require__.c = installedModules; /******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__ /******/ // __webpack_public_path__
/******/ __webpack_require__.p = ""; /******/ __webpack_require__.p = "";
/******/
/******/
/******/ // Load entry module and return exports /******/ // Load entry module and return exports
/******/ return __webpack_require__(0); /******/ return __webpack_require__(__webpack_require__.s = 4);
/******/ }) /******/ })
/************************************************************************/ /************************************************************************/
/******/ ([ /******/ ([
/* 0 */ /* 0 */,
/***/ function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(4);
/***/ },
/* 1 */, /* 1 */,
/* 2 */, /* 2 */,
/* 3 */, /* 3 */,
/* 4 */ /* 4 */
/***/ function(module, exports, __webpack_require__) { /***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(5);
/***/ }),
/* 5 */
/***/ (function(module, exports, __webpack_require__) {
"use strict"; "use strict";
exports.__esModule = true;
// Pass through the invocation to the 'aspnet-webpack' package, verifying that it can be loaded // Pass through the invocation to the 'aspnet-webpack' package, verifying that it can be loaded
function createWebpackDevServer(callback) { function createWebpackDevServer(callback) {
var aspNetWebpack; var aspNetWebpack;
try { try {
aspNetWebpack = __webpack_require__(5); aspNetWebpack = __webpack_require__(6);
} }
catch (ex) { catch (ex) {
// Developers sometimes have trouble with badly-configured Node installations, where it's unable // Developers sometimes have trouble with badly-configured Node installations, where it's unable
@@ -76,11 +123,11 @@
exports.createWebpackDevServer = createWebpackDevServer; exports.createWebpackDevServer = createWebpackDevServer;
/***/ }, /***/ }),
/* 5 */ /* 6 */
/***/ function(module, exports) { /***/ (function(module, exports) {
module.exports = require("aspnet-webpack"); module.exports = require("aspnet-webpack");
/***/ } /***/ })
/******/ ]))); /******/ ])));

View File

@@ -1,7 +1,5 @@
/// <reference path="../npm/aspnet-prerendering/src/PrerenderingInterfaces.d.ts" /> import { BootModuleInfo, RenderToStringFunc, RenderToStringCallback } from '../npm/aspnet-prerendering/src/PrerenderingInterfaces';
import * as url from 'url';
import * as path from 'path'; import * as path from 'path';
import * as fs from 'fs';
declare var __non_webpack_require__; declare var __non_webpack_require__;
// Separate declaration and export just to add type checking on function signature // Separate declaration and export just to add type checking on function signature

View File

@@ -1,5 +1,5 @@
{ {
"AssemblyIdentity": "Microsoft.AspNetCore.SpaServices, Version=2.0.3.0, Culture=neutral, PublicKeyToken=adb9793829ddae60", "AssemblyIdentity": "Microsoft.AspNetCore.SpaServices, Version=2.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60",
"Types": [ "Types": [
{ {
"Name": "Microsoft.Extensions.DependencyInjection.PrerenderingServiceCollectionExtensions", "Name": "Microsoft.Extensions.DependencyInjection.PrerenderingServiceCollectionExtensions",
@@ -316,6 +316,27 @@
"Visibility": "Public", "Visibility": "Public",
"GenericParameter": [] "GenericParameter": []
}, },
{
"Kind": "Method",
"Name": "get_EnvParam",
"Parameters": [],
"ReturnType": "System.Object",
"Visibility": "Public",
"GenericParameter": []
},
{
"Kind": "Method",
"Name": "set_EnvParam",
"Parameters": [
{
"Name": "value",
"Type": "System.Object"
}
],
"ReturnType": "System.Void",
"Visibility": "Public",
"GenericParameter": []
},
{ {
"Kind": "Constructor", "Kind": "Constructor",
"Name": ".ctor", "Name": ".ctor",
@@ -478,6 +499,26 @@
"BaseType": "Microsoft.AspNetCore.Razor.TagHelpers.TagHelper", "BaseType": "Microsoft.AspNetCore.Razor.TagHelpers.TagHelper",
"ImplementedInterfaces": [], "ImplementedInterfaces": [],
"Members": [ "Members": [
{
"Kind": "Method",
"Name": "ProcessAsync",
"Parameters": [
{
"Name": "context",
"Type": "Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext"
},
{
"Name": "output",
"Type": "Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput"
}
],
"ReturnType": "System.Threading.Tasks.Task",
"Virtual": true,
"Override": true,
"ImplementedInterface": "Microsoft.AspNetCore.Razor.TagHelpers.ITagHelperComponent",
"Visibility": "Public",
"GenericParameter": []
},
{ {
"Kind": "Method", "Kind": "Method",
"Name": "get_ModuleName", "Name": "get_ModuleName",
@@ -583,26 +624,6 @@
"Visibility": "Public", "Visibility": "Public",
"GenericParameter": [] "GenericParameter": []
}, },
{
"Kind": "Method",
"Name": "ProcessAsync",
"Parameters": [
{
"Name": "context",
"Type": "Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext"
},
{
"Name": "output",
"Type": "Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput"
}
],
"ReturnType": "System.Threading.Tasks.Task",
"Virtual": true,
"Override": true,
"ImplementedInterface": "Microsoft.AspNetCore.Razor.TagHelpers.ITagHelperComponent",
"Visibility": "Public",
"GenericParameter": []
},
{ {
"Kind": "Constructor", "Kind": "Constructor",
"Name": ".ctor", "Name": ".ctor",

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{ {
"name": "aspnet-webpack", "name": "aspnet-webpack",
"version": "2.0.3", "version": "3.0.0",
"description": "Helpers for using Webpack in ASP.NET Core projects. Works in conjunction with the Microsoft.AspNetCore.SpaServices NuGet package.", "description": "Helpers for using Webpack in ASP.NET Core projects. Works in conjunction with the Microsoft.AspNetCore.SpaServices NuGet package.",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
@@ -21,18 +21,18 @@
"es6-promise": "^3.1.2", "es6-promise": "^3.1.2",
"memory-fs": "^0.3.0", "memory-fs": "^0.3.0",
"require-from-string": "^1.1.0", "require-from-string": "^1.1.0",
"webpack-dev-middleware": "^1.8.4",
"webpack-node-externals": "^1.4.3" "webpack-node-externals": "^1.4.3"
}, },
"devDependencies": { "devDependencies": {
"@types/connect": "^3.4.30", "@types/connect": "^3.4.30",
"@types/node": "^6.0.42", "@types/node": "^6.0.42",
"@types/webpack": "^2.2.0", "@types/webpack": "^4.1.3",
"rimraf": "^2.5.4", "rimraf": "^2.5.4",
"typescript": "^2.0.0", "typescript": "^2.0.0",
"webpack": "^1.13.2" "webpack": "^4.5.0"
}, },
"peerDependencies": { "peerDependencies": {
"webpack": "^1.13.2 || ^2.1.0-beta || ^3.0.0" "webpack": "^1.13.2 || ^2.1.0-beta || ^3.0.0 || ^4.0.0",
"webpack-dev-middleware": "^1.8.4 || ^3.0.0"
} }
} }

View File

@@ -90,9 +90,12 @@ function loadViaWebpackNoCache<T>(webpackConfigPath: string, modulePath: string)
})); }));
// The CommonsChunkPlugin is not compatible with a CommonJS environment like Node, nor is it needed in that case // The CommonsChunkPlugin is not compatible with a CommonJS environment like Node, nor is it needed in that case
const ChunkPlugin = webpack.optimize['CommonsChunkPlugin'];
if (ChunkPlugin !== undefined) {
webpackConfig.plugins = webpackConfig.plugins.filter(plugin => { webpackConfig.plugins = webpackConfig.plugins.filter(plugin => {
return !(plugin instanceof webpack.optimize.CommonsChunkPlugin); return !(plugin instanceof ChunkPlugin);
}); });
}
// The typical use case for DllReferencePlugin is for referencing vendor modules. In a Node // The typical use case for DllReferencePlugin is for referencing vendor modules. In a Node
// environment, it doesn't make sense to load them from a DLL bundle, nor would that even // environment, it doesn't make sense to load them from a DLL bundle, nor would that even

View File

@@ -121,6 +121,7 @@ function attachWebpackDevMiddleware(app: any, webpackConfig: webpack.Configurati
const compiler = webpack(webpackConfig); const compiler = webpack(webpackConfig);
app.use(require('webpack-dev-middleware')(compiler, { app.use(require('webpack-dev-middleware')(compiler, {
noInfo: true, noInfo: true,
stats: webpackConfig.stats,
publicPath: ensureLeadingSlash(webpackConfig.output.publicPath), publicPath: ensureLeadingSlash(webpackConfig.output.publicPath),
watchOptions: webpackConfig.watchOptions watchOptions: webpackConfig.watchOptions
})); }));
@@ -133,9 +134,12 @@ function attachWebpackDevMiddleware(app: any, webpackConfig: webpack.Configurati
// middleware's in-memory filesystem only (and not on disk) would confuse the debugger, because the // middleware's in-memory filesystem only (and not on disk) would confuse the debugger, because the
// file on disk wouldn't match the file served to the browser, and the source map line numbers wouldn't // file on disk wouldn't match the file served to the browser, and the source map line numbers wouldn't
// match up. Breakpoints would either not be hit, or would hit the wrong lines. // match up. Breakpoints would either not be hit, or would hit the wrong lines.
(compiler as any).plugin('done', stats => { const copy = stats => copyRecursiveToRealFsSync(compiler.outputFileSystem, '/', [/\.hot-update\.(js|json|js\.map)$/]);
copyRecursiveToRealFsSync(compiler.outputFileSystem, '/', [/\.hot-update\.(js|json|js\.map)$/]); if (compiler.hooks) {
}); compiler.hooks.done.tap('aspnet-webpack', copy);
} else {
compiler.plugin('done', copy);
}
if (enableHotModuleReplacement) { if (enableHotModuleReplacement) {
let webpackHotMiddlewareModule; let webpackHotMiddlewareModule;

File diff suppressed because it is too large Load Diff

View File

@@ -5,14 +5,15 @@
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
"test": "echo \"Error: no test specified\" && exit 1", "test": "echo \"Error: no test specified\" && exit 1",
"build": "./node_modules/.bin/webpack" "build": "webpack --mode production"
}, },
"author": "Microsoft", "author": "Microsoft",
"license": "Apache-2.0", "license": "Apache-2.0",
"devDependencies": { "devDependencies": {
"@types/node": "^6.0.42", "@types/node": "^10.9.2",
"ts-loader": "^0.8.2", "ts-loader": "^4.5.0",
"typescript": "^2.0.0", "typescript": "^3.0.1",
"webpack": "^1.13.1" "webpack": "^4.17.1",
"webpack-cli": "^3.1.0"
} }
} }

View File

@@ -1,3 +1,5 @@
const path = require('path');
module.exports = { module.exports = {
target: 'node', target: 'node',
externals: [ externals: [
@@ -10,8 +12,8 @@ module.exports = {
extensions: [ '.ts' ] extensions: [ '.ts' ]
}, },
module: { module: {
loaders: [ rules: [
{ test: /\.ts$/, loader: 'ts-loader' }, { test: /\.ts$/, use: 'ts-loader' },
] ]
}, },
entry: { entry: {
@@ -20,7 +22,10 @@ module.exports = {
}, },
output: { output: {
libraryTarget: 'commonjs', libraryTarget: 'commonjs',
path: './Content/Node', path: path.join(__dirname, 'Content', 'Node'),
filename: '[name].js' filename: '[name].js'
},
optimization: {
minimize: false
} }
}; };

View File

@@ -1,6 +1,6 @@
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<VersionPrefix>2.1.1</VersionPrefix> <VersionPrefix>2.2.0</VersionPrefix>
<VersionSuffix>rtm</VersionSuffix> <VersionSuffix>rtm</VersionSuffix>
<PackageVersion Condition="'$(IsFinalBuild)' == 'true' AND '$(VersionSuffix)' == 'rtm' ">$(VersionPrefix)</PackageVersion> <PackageVersion Condition="'$(IsFinalBuild)' == 'true' AND '$(VersionSuffix)' == 'rtm' ">$(VersionPrefix)</PackageVersion>
<PackageVersion Condition="'$(IsFinalBuild)' == 'true' AND '$(VersionSuffix)' != 'rtm' ">$(VersionPrefix)-$(VersionSuffix)-final</PackageVersion> <PackageVersion Condition="'$(IsFinalBuild)' == 'true' AND '$(VersionSuffix)' != 'rtm' ">$(VersionPrefix)-$(VersionSuffix)-final</PackageVersion>