diff --git a/.appveyor.yml b/.appveyor.yml deleted file mode 100755 index 77f1912..0000000 --- a/.appveyor.yml +++ /dev/null @@ -1,19 +0,0 @@ -init: -- git config --global core.autocrlf true -install: -- ps: Install-Product node 6.9.2 x64 -branches: - only: - - master - - /^release\/.*$/ - - /^(.*\/)?ci-.*$/ -build_script: -- ps: .\run.ps1 default-build -clone_depth: 1 -environment: - global: - DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true - DOTNET_CLI_TELEMETRY_OPTOUT: 1 -test: 'off' -deploy: 'off' -os: Visual Studio 2017 diff --git a/.gitattributes b/.gitattributes deleted file mode 100755 index d0a46d6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,51 +0,0 @@ -*.doc diff=astextplain -*.DOC diff=astextplain -*.docx diff=astextplain -*.DOCX diff=astextplain -*.dot diff=astextplain -*.DOT diff=astextplain -*.pdf diff=astextplain -*.PDF diff=astextplain -*.rtf diff=astextplain -*.RTF diff=astextplain - -*.jpg binary -*.png binary -*.gif binary - -*.cs text=auto diff=csharp -*.vb text=auto -*.resx text=auto -*.c text=auto -*.cpp text=auto -*.cxx text=auto -*.h text=auto -*.hxx text=auto -*.py text=auto -*.rb text=auto -*.java text=auto -*.html text=auto -*.htm text=auto -*.css text=auto -*.scss text=auto -*.sass text=auto -*.less text=auto -*.js text=auto -*.lisp text=auto -*.clj text=auto -*.sql text=auto -*.php text=auto -*.lua text=auto -*.m text=auto -*.asm text=auto -*.erl text=auto -*.fs text=auto -*.fsx text=auto -*.hs text=auto - -*.csproj text=auto -*.vbproj text=auto -*.fsproj text=auto -*.dbproj text=auto -*.sln text=auto eol=crlf -*.sh eol=lf diff --git a/.travis.yml b/.travis.yml deleted file mode 100755 index d974c56..0000000 --- a/.travis.yml +++ /dev/null @@ -1,24 +0,0 @@ -language: csharp -sudo: required -dist: trusty -addons: - apt: - packages: - - gettext - - libcurl4-openssl-dev - - libicu-dev - - libssl-dev - - libunwind8 - - zlib1g -mono: none -os: -- linux -- osx -osx_image: xcode7.1 -script: -- ./build.sh -branches: - only: - - master - - /^release\/.*$/ - - /^(.*\/)?ci-.*$/ diff --git a/.vsts-pipelines/builds/ci-internal.yml b/.vsts-pipelines/builds/ci-internal.yml deleted file mode 100644 index c2c5336..0000000 --- a/.vsts-pipelines/builds/ci-internal.yml +++ /dev/null @@ -1,13 +0,0 @@ -trigger: -- master -- release/* - -resources: - repositories: - - repository: buildtools - type: git - name: aspnet-BuildTools - ref: refs/heads/master - -phases: -- template: .vsts-pipelines/templates/project-ci.yml@buildtools diff --git a/.vsts-pipelines/builds/ci-public.yml b/.vsts-pipelines/builds/ci-public.yml deleted file mode 100644 index 507c89b..0000000 --- a/.vsts-pipelines/builds/ci-public.yml +++ /dev/null @@ -1,15 +0,0 @@ -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/master - -phases: -- template: .vsts-pipelines/templates/project-ci.yml@buildtools diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index eac4268..0000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,4 +0,0 @@ -Contributing -====== - -Information on contributing to this repo is in the [Contributing Guide](https://github.com/aspnet/Home/blob/master/CONTRIBUTING.md) in the Home repo. diff --git a/LICENSE.txt b/LICENSE.txt deleted file mode 100644 index b3b180c..0000000 --- a/LICENSE.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright (c) .NET Foundation and Contributors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/NuGet.config b/NuGet.config deleted file mode 100644 index e32bddf..0000000 --- a/NuGet.config +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/build.cmd b/build.cmd deleted file mode 100755 index c0050bd..0000000 --- a/build.cmd +++ /dev/null @@ -1,2 +0,0 @@ -@ECHO OFF -PowerShell -NoProfile -NoLogo -ExecutionPolicy unrestricted -Command "[System.Threading.Thread]::CurrentThread.CurrentCulture = ''; [System.Threading.Thread]::CurrentThread.CurrentUICulture = '';& '%~dp0run.ps1' default-build %*; exit $LASTEXITCODE" diff --git a/build.sh b/build.sh deleted file mode 100755 index 98a4b22..0000000 --- a/build.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -# Call "sync" between "chmod" and execution to prevent "text file busy" error in Docker (aufs) -chmod +x "$DIR/run.sh"; sync -"$DIR/run.sh" default-build "$@" diff --git a/korebuild-lock.txt b/korebuild-lock.txt deleted file mode 100644 index 7361354..0000000 --- a/korebuild-lock.txt +++ /dev/null @@ -1,2 +0,0 @@ -version:3.0.0-build-20181114.5 -commithash:880e9a204d4ee4a18dfd83c9fb05a192a28bca60 diff --git a/korebuild.json b/korebuild.json deleted file mode 100644 index f098e7f..0000000 --- a/korebuild.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/aspnet/BuildTools/master/tools/korebuild.schema.json", - "channel": "master", - "toolsets": { - "nodejs": { - "required": true, - "minVersion": "6.9" - } - } -} diff --git a/run.cmd b/run.cmd deleted file mode 100644 index d52d5c7..0000000 --- a/run.cmd +++ /dev/null @@ -1,2 +0,0 @@ -@ECHO OFF -PowerShell -NoProfile -NoLogo -ExecutionPolicy unrestricted -Command "[System.Threading.Thread]::CurrentThread.CurrentCulture = ''; [System.Threading.Thread]::CurrentThread.CurrentUICulture = '';& '%~dp0run.ps1' %*; exit $LASTEXITCODE" diff --git a/run.ps1 b/run.ps1 deleted file mode 100644 index 34604c7..0000000 --- a/run.ps1 +++ /dev/null @@ -1,209 +0,0 @@ -#!/usr/bin/env powershell -#requires -version 4 - -<# -.SYNOPSIS -Executes KoreBuild commands. - -.DESCRIPTION -Downloads korebuild if required. Then executes the KoreBuild command. To see available commands, execute with `-Command help`. - -.PARAMETER Command -The KoreBuild command to run. - -.PARAMETER Path -The folder to build. Defaults to the folder containing this script. - -.PARAMETER Channel -The channel of KoreBuild to download. Overrides the value from the config file. - -.PARAMETER DotNetHome -The directory where .NET Core tools will be stored. - -.PARAMETER ToolsSource -The base url where build tools can be downloaded. Overrides the value from the config file. - -.PARAMETER Update -Updates KoreBuild to the latest version even if a lock file is present. - -.PARAMETER Reinstall -Re-installs KoreBuild - -.PARAMETER ConfigFile -The path to the configuration file that stores values. Defaults to korebuild.json. - -.PARAMETER ToolsSourceSuffix -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 -Arguments to be passed to the command - -.NOTES -This function will create a file $PSScriptRoot/korebuild-lock.txt. This lock file can be committed to source, but does not have to be. -When the lockfile is not present, KoreBuild will create one using latest available version from $Channel. - -The $ConfigFile is expected to be an JSON file. It is optional, and the configuration values in it are optional as well. Any options set -in the file are overridden by command line parameters. - -.EXAMPLE -Example config file: -```json -{ - "$schema": "https://raw.githubusercontent.com/aspnet/BuildTools/master/tools/korebuild.schema.json", - "channel": "master", - "toolsSource": "https://aspnetcore.blob.core.windows.net/buildtools" -} -``` -#> -[CmdletBinding(PositionalBinding = $false)] -param( - [Parameter(Mandatory = $true, Position = 0)] - [string]$Command, - [string]$Path = $PSScriptRoot, - [Alias('c')] - [string]$Channel, - [Alias('d')] - [string]$DotNetHome, - [Alias('s')] - [string]$ToolsSource, - [Alias('u')] - [switch]$Update, - [switch]$Reinstall, - [string]$ToolsSourceSuffix, - [string]$ConfigFile = $null, - [switch]$CI, - [Parameter(ValueFromRemainingArguments = $true)] - [string[]]$Arguments -) - -Set-StrictMode -Version 2 -$ErrorActionPreference = 'Stop' - -# -# Functions -# - -function Get-KoreBuild { - - $lockFile = Join-Path $Path 'korebuild-lock.txt' - - if (!(Test-Path $lockFile) -or $Update) { - Get-RemoteFile "$ToolsSource/korebuild/channels/$Channel/latest.txt" $lockFile $ToolsSourceSuffix - } - - $version = Get-Content $lockFile | Where-Object { $_ -like 'version:*' } | Select-Object -first 1 - if (!$version) { - Write-Error "Failed to parse version from $lockFile. Expected a line that begins with 'version:'" - } - $version = $version.TrimStart('version:').Trim() - $korebuildPath = Join-Paths $DotNetHome ('buildtools', 'korebuild', $version) - - if ($Reinstall -and (Test-Path $korebuildPath)) { - Remove-Item -Force -Recurse $korebuildPath - } - - if (!(Test-Path $korebuildPath)) { - Write-Host -ForegroundColor Magenta "Downloading KoreBuild $version" - New-Item -ItemType Directory -Path $korebuildPath | Out-Null - $remotePath = "$ToolsSource/korebuild/artifacts/$version/korebuild.$version.zip" - - try { - $tmpfile = Join-Path ([IO.Path]::GetTempPath()) "KoreBuild-$([guid]::NewGuid()).zip" - Get-RemoteFile $remotePath $tmpfile $ToolsSourceSuffix - if (Get-Command -Name 'Microsoft.PowerShell.Archive\Expand-Archive' -ErrorAction Ignore) { - # Use built-in commands where possible as they are cross-plat compatible - Microsoft.PowerShell.Archive\Expand-Archive -Path $tmpfile -DestinationPath $korebuildPath - } - else { - # Fallback to old approach for old installations of PowerShell - Add-Type -AssemblyName System.IO.Compression.FileSystem - [System.IO.Compression.ZipFile]::ExtractToDirectory($tmpfile, $korebuildPath) - } - } - catch { - Remove-Item -Recurse -Force $korebuildPath -ErrorAction Ignore - throw - } - finally { - Remove-Item $tmpfile -ErrorAction Ignore - } - } - - return $korebuildPath -} - -function Join-Paths([string]$path, [string[]]$childPaths) { - $childPaths | ForEach-Object { $path = Join-Path $path $_ } - return $path -} - -function Get-RemoteFile([string]$RemotePath, [string]$LocalPath, [string]$RemoteSuffix) { - if ($RemotePath -notlike 'http*') { - Copy-Item $RemotePath $LocalPath - return - } - - $retries = 10 - while ($retries -gt 0) { - $retries -= 1 - try { - Invoke-WebRequest -UseBasicParsing -Uri $($RemotePath + $RemoteSuffix) -OutFile $LocalPath - return - } - catch { - Write-Verbose "Request failed. $retries retries remaining" - } - } - - Write-Error "Download failed: '$RemotePath'." -} - -# -# Main -# - -# Load configuration or set defaults - -$Path = Resolve-Path $Path -if (!$ConfigFile) { $ConfigFile = Join-Path $Path 'korebuild.json' } - -if (Test-Path $ConfigFile) { - try { - $config = Get-Content -Raw -Encoding UTF8 -Path $ConfigFile | ConvertFrom-Json - if ($config) { - if (!($Channel) -and (Get-Member -Name 'channel' -InputObject $config)) { [string] $Channel = $config.channel } - if (!($ToolsSource) -and (Get-Member -Name 'toolsSource' -InputObject $config)) { [string] $ToolsSource = $config.toolsSource} - } - } - catch { - Write-Host -ForegroundColor Red $Error[0] - Write-Error "$ConfigFile contains invalid JSON." - exit 1 - } -} - -if (!$DotNetHome) { - $DotNetHome = if ($env:DOTNET_HOME) { $env:DOTNET_HOME } ` - elseif ($env:USERPROFILE) { Join-Path $env:USERPROFILE '.dotnet'} ` - elseif ($env:HOME) {Join-Path $env:HOME '.dotnet'}` - else { Join-Path $PSScriptRoot '.dotnet'} -} - -if (!$Channel) { $Channel = 'master' } -if (!$ToolsSource) { $ToolsSource = 'https://aspnetcore.blob.core.windows.net/buildtools' } - -# Execute - -$korebuildPath = Get-KoreBuild -Import-Module -Force -Scope Local (Join-Path $korebuildPath 'KoreBuild.psd1') - -try { - Set-KoreBuildSettings -ToolsSource $ToolsSource -DotNetHome $DotNetHome -RepoPath $Path -ConfigFile $ConfigFile -CI:$CI - Invoke-KoreBuildCommand $Command @Arguments -} -finally { - Remove-Module 'KoreBuild' -ErrorAction Ignore -} diff --git a/run.sh b/run.sh deleted file mode 100755 index 4c1fed5..0000000 --- a/run.sh +++ /dev/null @@ -1,256 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -# -# variables -# - -RESET="\033[0m" -RED="\033[0;31m" -YELLOW="\033[0;33m" -MAGENTA="\033[0;95m" -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -[ -z "${DOTNET_HOME:-}" ] && DOTNET_HOME="$HOME/.dotnet" -verbose=false -update=false -reinstall=false -repo_path="$DIR" -channel='' -tools_source='' -tools_source_suffix='' -ci=false - -# -# Functions -# -__usage() { - echo "Usage: $(basename "${BASH_SOURCE[0]}") command [options] [[--] ...]" - echo "" - echo "Arguments:" - echo " command The command to be run." - echo " ... Arguments passed to the command. Variable number of arguments allowed." - echo "" - echo "Options:" - echo " --verbose Show verbose output." - echo " -c|--channel The channel of KoreBuild to download. Overrides the value from the config file.." - echo " --config-file The path to the configuration file that stores values. Defaults to korebuild.json." - echo " -d|--dotnet-home The directory where .NET Core tools will be stored. Defaults to '\$DOTNET_HOME' or '\$HOME/.dotnet." - echo " --path The directory to build. Defaults to the directory containing the script." - echo " -s|--tools-source|-ToolsSource The base url where build tools can be downloaded. Overrides the value from the config file." - echo " --tools-source-suffix|-ToolsSourceSuffix 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 " --reinstall Reinstall KoreBuild." - echo " --ci Apply CI specific settings and environment variables." - echo "" - 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 " When the lockfile is not present, KoreBuild will create one using latest available version from \$channel." - - if [[ "${1:-}" != '--no-exit' ]]; then - exit 2 - fi -} - -get_korebuild() { - local version - local lock_file="$repo_path/korebuild-lock.txt" - if [ ! -f "$lock_file" ] || [ "$update" = true ]; then - __get_remote_file "$tools_source/korebuild/channels/$channel/latest.txt" "$lock_file" "$tools_source_suffix" - fi - version="$(grep 'version:*' -m 1 "$lock_file")" - if [[ "$version" == '' ]]; then - __error "Failed to parse version from $lock_file. Expected a line that begins with 'version:'" - return 1 - fi - version="$(echo "${version#version:}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')" - 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 - mkdir -p "$korebuild_path" - local remote_path="$tools_source/korebuild/artifacts/$version/korebuild.$version.zip" - tmpfile="$(mktemp)" - echo -e "${MAGENTA}Downloading KoreBuild ${version}${RESET}" - if __get_remote_file "$remote_path" "$tmpfile" "$tools_source_suffix"; then - unzip -q -d "$korebuild_path" "$tmpfile" - fi - rm "$tmpfile" || true - fi - - source "$korebuild_path/KoreBuild.sh" - } || { - if [ -d "$korebuild_path" ]; then - echo "Cleaning up after failed installation" - rm -rf "$korebuild_path" || true - fi - return 1 - } -} - -__error() { - echo -e "${RED}error: $*${RESET}" 1>&2 -} - -__warn() { - echo -e "${YELLOW}warning: $*${RESET}" -} - -__machine_has() { - hash "$1" > /dev/null 2>&1 - return $? -} - -__get_remote_file() { - local remote_path=$1 - local local_path=$2 - local remote_path_suffix=$3 - - if [[ "$remote_path" != 'http'* ]]; then - cp "$remote_path" "$local_path" - return 0 - fi - - local failed=false - if __machine_has wget; then - wget --tries 10 --quiet -O "$local_path" "${remote_path}${remote_path_suffix}" || failed=true - else - failed=true - fi - - if [ "$failed" = true ] && __machine_has curl; then - failed=false - curl --retry 10 -sSL -f --create-dirs -o "$local_path" "${remote_path}${remote_path_suffix}" || failed=true - fi - - if [ "$failed" = true ]; then - __error "Download failed: $remote_path" 1>&2 - return 1 - fi -} - -# -# main -# - -command="${1:-}" -shift - -while [[ $# -gt 0 ]]; do - case $1 in - -\?|-h|--help) - __usage --no-exit - exit 0 - ;; - -c|--channel|-Channel) - shift - channel="${1:-}" - [ -z "$channel" ] && __usage - ;; - --config-file|-ConfigFile) - shift - config_file="${1:-}" - [ -z "$config_file" ] && __usage - if [ ! -f "$config_file" ]; then - __error "Invalid value for --config-file. $config_file does not exist." - exit 1 - fi - ;; - -d|--dotnet-home|-DotNetHome) - shift - DOTNET_HOME="${1:-}" - [ -z "$DOTNET_HOME" ] && __usage - ;; - --path|-Path) - shift - repo_path="${1:-}" - [ -z "$repo_path" ] && __usage - ;; - -s|--tools-source|-ToolsSource) - shift - tools_source="${1:-}" - [ -z "$tools_source" ] && __usage - ;; - --tools-source-suffix|-ToolsSourceSuffix) - shift - tools_source_suffix="${1:-}" - [ -z "$tools_source_suffix" ] && __usage - ;; - -u|--update|-Update) - update=true - ;; - --reinstall|-[Rr]einstall) - reinstall=true - ;; - --ci|-[Cc][Ii]) - ci=true - ;; - --verbose|-Verbose) - verbose=true - ;; - --) - shift - break - ;; - *) - break - ;; - esac - shift -done - -if ! __machine_has unzip; then - __error 'Missing required command: unzip' - exit 1 -fi - -if ! __machine_has curl && ! __machine_has wget; then - __error 'Missing required command. Either wget or curl is required.' - exit 1 -fi - -[ -z "${config_file:-}" ] && config_file="$repo_path/korebuild.json" -if [ -f "$config_file" ]; then - if __machine_has jq ; then - if jq '.' "$config_file" >/dev/null ; then - config_channel="$(jq -r 'select(.channel!=null) | .channel' "$config_file")" - config_tools_source="$(jq -r 'select(.toolsSource!=null) | .toolsSource' "$config_file")" - else - __error "$config_file contains invalid JSON." - exit 1 - fi - 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 - 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 '')")" - else - __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 - else - __error 'Missing required command: jq or python. Could not parse the JSON file.' - exit 1 - fi - - [ ! -z "${config_channel:-}" ] && channel="$config_channel" - [ ! -z "${config_tools_source:-}" ] && tools_source="$config_tools_source" -fi - -[ -z "$channel" ] && channel='master' -[ -z "$tools_source" ] && tools_source='https://aspnetcore.blob.core.windows.net/buildtools' - -get_korebuild -set_korebuildsettings "$tools_source" "$DOTNET_HOME" "$repo_path" "$config_file" "$ci" -invoke_korebuild_command "$command" "$@" diff --git a/.gitignore b/src/JavaScriptServices/.gitignore similarity index 100% rename from .gitignore rename to src/JavaScriptServices/.gitignore diff --git a/Directory.Build.props b/src/JavaScriptServices/Directory.Build.props similarity index 100% rename from Directory.Build.props rename to src/JavaScriptServices/Directory.Build.props diff --git a/Directory.Build.targets b/src/JavaScriptServices/Directory.Build.targets similarity index 100% rename from Directory.Build.targets rename to src/JavaScriptServices/Directory.Build.targets diff --git a/JavaScriptServices.sln b/src/JavaScriptServices/JavaScriptServices.sln similarity index 100% rename from JavaScriptServices.sln rename to src/JavaScriptServices/JavaScriptServices.sln diff --git a/NuGetPackageVerifier.json b/src/JavaScriptServices/NuGetPackageVerifier.json similarity index 100% rename from NuGetPackageVerifier.json rename to src/JavaScriptServices/NuGetPackageVerifier.json diff --git a/README.md b/src/JavaScriptServices/README.md similarity index 100% rename from README.md rename to src/JavaScriptServices/README.md diff --git a/build/Key.snk b/src/JavaScriptServices/build/Key.snk similarity index 100% rename from build/Key.snk rename to src/JavaScriptServices/build/Key.snk diff --git a/build/dependencies.props b/src/JavaScriptServices/build/dependencies.props similarity index 100% rename from build/dependencies.props rename to src/JavaScriptServices/build/dependencies.props diff --git a/build/repo.props b/src/JavaScriptServices/build/repo.props similarity index 100% rename from build/repo.props rename to src/JavaScriptServices/build/repo.props diff --git a/build/sources.props b/src/JavaScriptServices/build/sources.props similarity index 100% rename from build/sources.props rename to src/JavaScriptServices/build/sources.props diff --git a/samples/misc/LatencyTest/LatencyTest.csproj b/src/JavaScriptServices/samples/misc/LatencyTest/LatencyTest.csproj similarity index 100% rename from samples/misc/LatencyTest/LatencyTest.csproj rename to src/JavaScriptServices/samples/misc/LatencyTest/LatencyTest.csproj diff --git a/samples/misc/LatencyTest/Program.cs b/src/JavaScriptServices/samples/misc/LatencyTest/Program.cs old mode 100755 new mode 100644 similarity index 100% rename from samples/misc/LatencyTest/Program.cs rename to src/JavaScriptServices/samples/misc/LatencyTest/Program.cs diff --git a/samples/misc/LatencyTest/latencyTest.js b/src/JavaScriptServices/samples/misc/LatencyTest/latencyTest.js similarity index 100% rename from samples/misc/LatencyTest/latencyTest.js rename to src/JavaScriptServices/samples/misc/LatencyTest/latencyTest.js diff --git a/samples/misc/NodeServicesExamples/.gitignore b/src/JavaScriptServices/samples/misc/NodeServicesExamples/.gitignore similarity index 100% rename from samples/misc/NodeServicesExamples/.gitignore rename to src/JavaScriptServices/samples/misc/NodeServicesExamples/.gitignore diff --git a/samples/misc/NodeServicesExamples/Controllers/HomeController.cs b/src/JavaScriptServices/samples/misc/NodeServicesExamples/Controllers/HomeController.cs old mode 100755 new mode 100644 similarity index 100% rename from samples/misc/NodeServicesExamples/Controllers/HomeController.cs rename to src/JavaScriptServices/samples/misc/NodeServicesExamples/Controllers/HomeController.cs diff --git a/samples/misc/NodeServicesExamples/Node/prerenderPage.js b/src/JavaScriptServices/samples/misc/NodeServicesExamples/Node/prerenderPage.js similarity index 100% rename from samples/misc/NodeServicesExamples/Node/prerenderPage.js rename to src/JavaScriptServices/samples/misc/NodeServicesExamples/Node/prerenderPage.js diff --git a/samples/misc/NodeServicesExamples/Node/renderChart.js b/src/JavaScriptServices/samples/misc/NodeServicesExamples/Node/renderChart.js similarity index 100% rename from samples/misc/NodeServicesExamples/Node/renderChart.js rename to src/JavaScriptServices/samples/misc/NodeServicesExamples/Node/renderChart.js diff --git a/samples/misc/NodeServicesExamples/Node/transpilation.js b/src/JavaScriptServices/samples/misc/NodeServicesExamples/Node/transpilation.js similarity index 100% rename from samples/misc/NodeServicesExamples/Node/transpilation.js rename to src/JavaScriptServices/samples/misc/NodeServicesExamples/Node/transpilation.js diff --git a/samples/misc/NodeServicesExamples/NodeServicesExamples.csproj b/src/JavaScriptServices/samples/misc/NodeServicesExamples/NodeServicesExamples.csproj similarity index 100% rename from samples/misc/NodeServicesExamples/NodeServicesExamples.csproj rename to src/JavaScriptServices/samples/misc/NodeServicesExamples/NodeServicesExamples.csproj diff --git a/samples/misc/NodeServicesExamples/Startup.cs b/src/JavaScriptServices/samples/misc/NodeServicesExamples/Startup.cs old mode 100755 new mode 100644 similarity index 100% rename from samples/misc/NodeServicesExamples/Startup.cs rename to src/JavaScriptServices/samples/misc/NodeServicesExamples/Startup.cs diff --git a/samples/misc/NodeServicesExamples/Views/Home/Chart.cshtml b/src/JavaScriptServices/samples/misc/NodeServicesExamples/Views/Home/Chart.cshtml similarity index 100% rename from samples/misc/NodeServicesExamples/Views/Home/Chart.cshtml rename to src/JavaScriptServices/samples/misc/NodeServicesExamples/Views/Home/Chart.cshtml diff --git a/samples/misc/NodeServicesExamples/Views/Home/ES2015Transpilation.cshtml b/src/JavaScriptServices/samples/misc/NodeServicesExamples/Views/Home/ES2015Transpilation.cshtml old mode 100755 new mode 100644 similarity index 100% rename from samples/misc/NodeServicesExamples/Views/Home/ES2015Transpilation.cshtml rename to src/JavaScriptServices/samples/misc/NodeServicesExamples/Views/Home/ES2015Transpilation.cshtml diff --git a/samples/misc/NodeServicesExamples/Views/Home/Index.cshtml b/src/JavaScriptServices/samples/misc/NodeServicesExamples/Views/Home/Index.cshtml similarity index 100% rename from samples/misc/NodeServicesExamples/Views/Home/Index.cshtml rename to src/JavaScriptServices/samples/misc/NodeServicesExamples/Views/Home/Index.cshtml diff --git a/samples/misc/NodeServicesExamples/Views/Home/Prerendering.cshtml b/src/JavaScriptServices/samples/misc/NodeServicesExamples/Views/Home/Prerendering.cshtml similarity index 100% rename from samples/misc/NodeServicesExamples/Views/Home/Prerendering.cshtml rename to src/JavaScriptServices/samples/misc/NodeServicesExamples/Views/Home/Prerendering.cshtml diff --git a/samples/misc/NodeServicesExamples/Views/Shared/Error.cshtml b/src/JavaScriptServices/samples/misc/NodeServicesExamples/Views/Shared/Error.cshtml old mode 100755 new mode 100644 similarity index 100% rename from samples/misc/NodeServicesExamples/Views/Shared/Error.cshtml rename to src/JavaScriptServices/samples/misc/NodeServicesExamples/Views/Shared/Error.cshtml diff --git a/samples/misc/NodeServicesExamples/Views/Shared/_Layout.cshtml b/src/JavaScriptServices/samples/misc/NodeServicesExamples/Views/Shared/_Layout.cshtml old mode 100755 new mode 100644 similarity index 100% rename from samples/misc/NodeServicesExamples/Views/Shared/_Layout.cshtml rename to src/JavaScriptServices/samples/misc/NodeServicesExamples/Views/Shared/_Layout.cshtml diff --git a/samples/misc/NodeServicesExamples/Views/_ViewImports.cshtml b/src/JavaScriptServices/samples/misc/NodeServicesExamples/Views/_ViewImports.cshtml old mode 100755 new mode 100644 similarity index 100% rename from samples/misc/NodeServicesExamples/Views/_ViewImports.cshtml rename to src/JavaScriptServices/samples/misc/NodeServicesExamples/Views/_ViewImports.cshtml diff --git a/samples/misc/NodeServicesExamples/Views/_ViewStart.cshtml b/src/JavaScriptServices/samples/misc/NodeServicesExamples/Views/_ViewStart.cshtml old mode 100755 new mode 100644 similarity index 100% rename from samples/misc/NodeServicesExamples/Views/_ViewStart.cshtml rename to src/JavaScriptServices/samples/misc/NodeServicesExamples/Views/_ViewStart.cshtml diff --git a/samples/misc/NodeServicesExamples/appsettings.json b/src/JavaScriptServices/samples/misc/NodeServicesExamples/appsettings.json old mode 100755 new mode 100644 similarity index 100% rename from samples/misc/NodeServicesExamples/appsettings.json rename to src/JavaScriptServices/samples/misc/NodeServicesExamples/appsettings.json diff --git a/samples/misc/NodeServicesExamples/jsconfig.json b/src/JavaScriptServices/samples/misc/NodeServicesExamples/jsconfig.json similarity index 100% rename from samples/misc/NodeServicesExamples/jsconfig.json rename to src/JavaScriptServices/samples/misc/NodeServicesExamples/jsconfig.json diff --git a/samples/misc/NodeServicesExamples/package.json b/src/JavaScriptServices/samples/misc/NodeServicesExamples/package.json similarity index 100% rename from samples/misc/NodeServicesExamples/package.json rename to src/JavaScriptServices/samples/misc/NodeServicesExamples/package.json diff --git a/samples/misc/NodeServicesExamples/wwwroot/css/chartist.min.css b/src/JavaScriptServices/samples/misc/NodeServicesExamples/wwwroot/css/chartist.min.css similarity index 100% rename from samples/misc/NodeServicesExamples/wwwroot/css/chartist.min.css rename to src/JavaScriptServices/samples/misc/NodeServicesExamples/wwwroot/css/chartist.min.css diff --git a/samples/misc/NodeServicesExamples/wwwroot/favicon.ico b/src/JavaScriptServices/samples/misc/NodeServicesExamples/wwwroot/favicon.ico old mode 100755 new mode 100644 similarity index 100% rename from samples/misc/NodeServicesExamples/wwwroot/favicon.ico rename to src/JavaScriptServices/samples/misc/NodeServicesExamples/wwwroot/favicon.ico diff --git a/samples/misc/NodeServicesExamples/wwwroot/js/main.js b/src/JavaScriptServices/samples/misc/NodeServicesExamples/wwwroot/js/main.js similarity index 100% rename from samples/misc/NodeServicesExamples/wwwroot/js/main.js rename to src/JavaScriptServices/samples/misc/NodeServicesExamples/wwwroot/js/main.js diff --git a/samples/misc/NodeServicesExamples/wwwroot/web.config b/src/JavaScriptServices/samples/misc/NodeServicesExamples/wwwroot/web.config similarity index 100% rename from samples/misc/NodeServicesExamples/wwwroot/web.config rename to src/JavaScriptServices/samples/misc/NodeServicesExamples/wwwroot/web.config diff --git a/samples/misc/Webpack/.gitignore b/src/JavaScriptServices/samples/misc/Webpack/.gitignore similarity index 100% rename from samples/misc/Webpack/.gitignore rename to src/JavaScriptServices/samples/misc/Webpack/.gitignore diff --git a/samples/misc/Webpack/ActionResults/PrerenderResult.cs b/src/JavaScriptServices/samples/misc/Webpack/ActionResults/PrerenderResult.cs similarity index 100% rename from samples/misc/Webpack/ActionResults/PrerenderResult.cs rename to src/JavaScriptServices/samples/misc/Webpack/ActionResults/PrerenderResult.cs diff --git a/samples/misc/Webpack/ActionResults/PrerenderResultExtensions.cs b/src/JavaScriptServices/samples/misc/Webpack/ActionResults/PrerenderResultExtensions.cs similarity index 100% rename from samples/misc/Webpack/ActionResults/PrerenderResultExtensions.cs rename to src/JavaScriptServices/samples/misc/Webpack/ActionResults/PrerenderResultExtensions.cs diff --git a/samples/misc/Webpack/Clientside/App.ts b/src/JavaScriptServices/samples/misc/Webpack/Clientside/App.ts similarity index 100% rename from samples/misc/Webpack/Clientside/App.ts rename to src/JavaScriptServices/samples/misc/Webpack/Clientside/App.ts diff --git a/samples/misc/Webpack/Clientside/HelloWorld.ts b/src/JavaScriptServices/samples/misc/Webpack/Clientside/HelloWorld.ts similarity index 100% rename from samples/misc/Webpack/Clientside/HelloWorld.ts rename to src/JavaScriptServices/samples/misc/Webpack/Clientside/HelloWorld.ts diff --git a/samples/misc/Webpack/Clientside/styles/main.less b/src/JavaScriptServices/samples/misc/Webpack/Clientside/styles/main.less similarity index 100% rename from samples/misc/Webpack/Clientside/styles/main.less rename to src/JavaScriptServices/samples/misc/Webpack/Clientside/styles/main.less diff --git a/samples/misc/Webpack/Controllers/HomeController.cs b/src/JavaScriptServices/samples/misc/Webpack/Controllers/HomeController.cs old mode 100755 new mode 100644 similarity index 100% rename from samples/misc/Webpack/Controllers/HomeController.cs rename to src/JavaScriptServices/samples/misc/Webpack/Controllers/HomeController.cs diff --git a/samples/misc/Webpack/Properties/launchSettings.json b/src/JavaScriptServices/samples/misc/Webpack/Properties/launchSettings.json similarity index 100% rename from samples/misc/Webpack/Properties/launchSettings.json rename to src/JavaScriptServices/samples/misc/Webpack/Properties/launchSettings.json diff --git a/samples/misc/Webpack/Startup.cs b/src/JavaScriptServices/samples/misc/Webpack/Startup.cs old mode 100755 new mode 100644 similarity index 100% rename from samples/misc/Webpack/Startup.cs rename to src/JavaScriptServices/samples/misc/Webpack/Startup.cs diff --git a/samples/misc/Webpack/Views/Home/Index.cshtml b/src/JavaScriptServices/samples/misc/Webpack/Views/Home/Index.cshtml old mode 100755 new mode 100644 similarity index 100% rename from samples/misc/Webpack/Views/Home/Index.cshtml rename to src/JavaScriptServices/samples/misc/Webpack/Views/Home/Index.cshtml diff --git a/samples/misc/Webpack/Views/Shared/Error.cshtml b/src/JavaScriptServices/samples/misc/Webpack/Views/Shared/Error.cshtml old mode 100755 new mode 100644 similarity index 100% rename from samples/misc/Webpack/Views/Shared/Error.cshtml rename to src/JavaScriptServices/samples/misc/Webpack/Views/Shared/Error.cshtml diff --git a/samples/misc/Webpack/Views/Shared/_Layout.cshtml b/src/JavaScriptServices/samples/misc/Webpack/Views/Shared/_Layout.cshtml old mode 100755 new mode 100644 similarity index 100% rename from samples/misc/Webpack/Views/Shared/_Layout.cshtml rename to src/JavaScriptServices/samples/misc/Webpack/Views/Shared/_Layout.cshtml diff --git a/samples/misc/Webpack/Views/_ViewImports.cshtml b/src/JavaScriptServices/samples/misc/Webpack/Views/_ViewImports.cshtml old mode 100755 new mode 100644 similarity index 100% rename from samples/misc/Webpack/Views/_ViewImports.cshtml rename to src/JavaScriptServices/samples/misc/Webpack/Views/_ViewImports.cshtml diff --git a/samples/misc/Webpack/Views/_ViewStart.cshtml b/src/JavaScriptServices/samples/misc/Webpack/Views/_ViewStart.cshtml old mode 100755 new mode 100644 similarity index 100% rename from samples/misc/Webpack/Views/_ViewStart.cshtml rename to src/JavaScriptServices/samples/misc/Webpack/Views/_ViewStart.cshtml diff --git a/samples/misc/Webpack/Webpack.csproj b/src/JavaScriptServices/samples/misc/Webpack/Webpack.csproj similarity index 100% rename from samples/misc/Webpack/Webpack.csproj rename to src/JavaScriptServices/samples/misc/Webpack/Webpack.csproj diff --git a/samples/misc/Webpack/appsettings.json b/src/JavaScriptServices/samples/misc/Webpack/appsettings.json old mode 100755 new mode 100644 similarity index 100% rename from samples/misc/Webpack/appsettings.json rename to src/JavaScriptServices/samples/misc/Webpack/appsettings.json diff --git a/samples/misc/Webpack/package.json b/src/JavaScriptServices/samples/misc/Webpack/package.json similarity index 100% rename from samples/misc/Webpack/package.json rename to src/JavaScriptServices/samples/misc/Webpack/package.json diff --git a/samples/misc/Webpack/tsconfig.json b/src/JavaScriptServices/samples/misc/Webpack/tsconfig.json similarity index 100% rename from samples/misc/Webpack/tsconfig.json rename to src/JavaScriptServices/samples/misc/Webpack/tsconfig.json diff --git a/samples/misc/Webpack/webpack.config.dev.js b/src/JavaScriptServices/samples/misc/Webpack/webpack.config.dev.js similarity index 100% rename from samples/misc/Webpack/webpack.config.dev.js rename to src/JavaScriptServices/samples/misc/Webpack/webpack.config.dev.js diff --git a/samples/misc/Webpack/webpack.config.js b/src/JavaScriptServices/samples/misc/Webpack/webpack.config.js similarity index 100% rename from samples/misc/Webpack/webpack.config.js rename to src/JavaScriptServices/samples/misc/Webpack/webpack.config.js diff --git a/samples/misc/Webpack/webpack.config.prod.js b/src/JavaScriptServices/samples/misc/Webpack/webpack.config.prod.js similarity index 100% rename from samples/misc/Webpack/webpack.config.prod.js rename to src/JavaScriptServices/samples/misc/Webpack/webpack.config.prod.js diff --git a/samples/misc/Webpack/wwwroot/favicon.ico b/src/JavaScriptServices/samples/misc/Webpack/wwwroot/favicon.ico old mode 100755 new mode 100644 similarity index 100% rename from samples/misc/Webpack/wwwroot/favicon.ico rename to src/JavaScriptServices/samples/misc/Webpack/wwwroot/favicon.ico diff --git a/samples/misc/Webpack/wwwroot/web.config b/src/JavaScriptServices/samples/misc/Webpack/wwwroot/web.config similarity index 100% rename from samples/misc/Webpack/wwwroot/web.config rename to src/JavaScriptServices/samples/misc/Webpack/wwwroot/web.config diff --git a/scripts/Regenerate-JSFiles.ps1 b/src/JavaScriptServices/scripts/Regenerate-JSFiles.ps1 similarity index 100% rename from scripts/Regenerate-JSFiles.ps1 rename to src/JavaScriptServices/scripts/Regenerate-JSFiles.ps1 diff --git a/src/Directory.Build.props b/src/JavaScriptServices/src/Directory.Build.props similarity index 100% rename from src/Directory.Build.props rename to src/JavaScriptServices/src/Directory.Build.props diff --git a/src/Microsoft.AspNetCore.NodeServices.Sockets/.gitignore b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/.gitignore similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices.Sockets/.gitignore rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/.gitignore diff --git a/src/Microsoft.AspNetCore.NodeServices.Sockets/Content/Node/entrypoint-socket.js b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/Content/Node/entrypoint-socket.js similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices.Sockets/Content/Node/entrypoint-socket.js rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/Content/Node/entrypoint-socket.js diff --git a/src/Microsoft.AspNetCore.NodeServices.Sockets/Microsoft.AspNetCore.NodeServices.Sockets.csproj b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/Microsoft.AspNetCore.NodeServices.Sockets.csproj similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices.Sockets/Microsoft.AspNetCore.NodeServices.Sockets.csproj rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/Microsoft.AspNetCore.NodeServices.Sockets.csproj diff --git a/src/Microsoft.AspNetCore.NodeServices.Sockets/PhysicalConnections/NamedPipeConnection.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/PhysicalConnections/NamedPipeConnection.cs similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices.Sockets/PhysicalConnections/NamedPipeConnection.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/PhysicalConnections/NamedPipeConnection.cs diff --git a/src/Microsoft.AspNetCore.NodeServices.Sockets/PhysicalConnections/StreamConnection.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/PhysicalConnections/StreamConnection.cs similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices.Sockets/PhysicalConnections/StreamConnection.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/PhysicalConnections/StreamConnection.cs diff --git a/src/Microsoft.AspNetCore.NodeServices.Sockets/PhysicalConnections/UnixDomainSocketConnection.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/PhysicalConnections/UnixDomainSocketConnection.cs similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices.Sockets/PhysicalConnections/UnixDomainSocketConnection.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/PhysicalConnections/UnixDomainSocketConnection.cs diff --git a/src/Microsoft.AspNetCore.NodeServices.Sockets/PhysicalConnections/UnixDomainSocketEndPoint.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/PhysicalConnections/UnixDomainSocketEndPoint.cs similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices.Sockets/PhysicalConnections/UnixDomainSocketEndPoint.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/PhysicalConnections/UnixDomainSocketEndPoint.cs diff --git a/src/Microsoft.AspNetCore.NodeServices.Sockets/SocketNodeInstance.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/SocketNodeInstance.cs similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices.Sockets/SocketNodeInstance.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/SocketNodeInstance.cs diff --git a/src/Microsoft.AspNetCore.NodeServices.Sockets/SocketNodeServicesOptionsExtensions.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/SocketNodeServicesOptionsExtensions.cs similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices.Sockets/SocketNodeServicesOptionsExtensions.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/SocketNodeServicesOptionsExtensions.cs diff --git a/src/Microsoft.AspNetCore.NodeServices.Sockets/TypeScript/SocketNodeInstanceEntryPoint.ts b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/TypeScript/SocketNodeInstanceEntryPoint.ts similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices.Sockets/TypeScript/SocketNodeInstanceEntryPoint.ts rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/TypeScript/SocketNodeInstanceEntryPoint.ts diff --git a/src/Microsoft.AspNetCore.NodeServices.Sockets/TypeScript/VirtualConnections/VirtualConnection.ts b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/TypeScript/VirtualConnections/VirtualConnection.ts similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices.Sockets/TypeScript/VirtualConnections/VirtualConnection.ts rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/TypeScript/VirtualConnections/VirtualConnection.ts diff --git a/src/Microsoft.AspNetCore.NodeServices.Sockets/TypeScript/VirtualConnections/VirtualConnectionServer.ts b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/TypeScript/VirtualConnections/VirtualConnectionServer.ts similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices.Sockets/TypeScript/VirtualConnections/VirtualConnectionServer.ts rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/TypeScript/VirtualConnections/VirtualConnectionServer.ts diff --git a/src/Microsoft.AspNetCore.NodeServices.Sockets/TypeScript/tsconfig.json b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/TypeScript/tsconfig.json similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices.Sockets/TypeScript/tsconfig.json rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/TypeScript/tsconfig.json diff --git a/src/Microsoft.AspNetCore.NodeServices.Sockets/VirtualConnections/VirtualConnection.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/VirtualConnections/VirtualConnection.cs similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices.Sockets/VirtualConnections/VirtualConnection.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/VirtualConnections/VirtualConnection.cs diff --git a/src/Microsoft.AspNetCore.NodeServices.Sockets/VirtualConnections/VirtualConnectionClient.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/VirtualConnections/VirtualConnectionClient.cs similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices.Sockets/VirtualConnections/VirtualConnectionClient.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/VirtualConnections/VirtualConnectionClient.cs diff --git a/src/Microsoft.AspNetCore.NodeServices.Sockets/baseline.netcore.json b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/baseline.netcore.json similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices.Sockets/baseline.netcore.json rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/baseline.netcore.json diff --git a/src/Microsoft.AspNetCore.NodeServices.Sockets/package-lock.json b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/package-lock.json similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices.Sockets/package-lock.json rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/package-lock.json diff --git a/src/Microsoft.AspNetCore.NodeServices.Sockets/package.json b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/package.json similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices.Sockets/package.json rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/package.json diff --git a/src/Microsoft.AspNetCore.NodeServices.Sockets/webpack.config.js b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/webpack.config.js similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices.Sockets/webpack.config.js rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices.Sockets/webpack.config.js diff --git a/src/Microsoft.AspNetCore.NodeServices/.gitignore b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/.gitignore similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices/.gitignore rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/.gitignore diff --git a/src/Microsoft.AspNetCore.NodeServices/Configuration/NodeServicesFactory.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/Configuration/NodeServicesFactory.cs similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices/Configuration/NodeServicesFactory.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/Configuration/NodeServicesFactory.cs diff --git a/src/Microsoft.AspNetCore.NodeServices/Configuration/NodeServicesOptions.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/Configuration/NodeServicesOptions.cs similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices/Configuration/NodeServicesOptions.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/Configuration/NodeServicesOptions.cs diff --git a/src/Microsoft.AspNetCore.NodeServices/Configuration/NodeServicesServiceCollectionExtensions.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/Configuration/NodeServicesServiceCollectionExtensions.cs similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices/Configuration/NodeServicesServiceCollectionExtensions.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/Configuration/NodeServicesServiceCollectionExtensions.cs diff --git a/src/Microsoft.AspNetCore.NodeServices/Content/Node/entrypoint-http.js b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/Content/Node/entrypoint-http.js similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices/Content/Node/entrypoint-http.js rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/Content/Node/entrypoint-http.js diff --git a/src/Microsoft.AspNetCore.NodeServices/HostingModels/HttpNodeInstance.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/HostingModels/HttpNodeInstance.cs similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices/HostingModels/HttpNodeInstance.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/HostingModels/HttpNodeInstance.cs diff --git a/src/Microsoft.AspNetCore.NodeServices/HostingModels/INodeInstance.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/HostingModels/INodeInstance.cs similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices/HostingModels/INodeInstance.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/HostingModels/INodeInstance.cs diff --git a/src/Microsoft.AspNetCore.NodeServices/HostingModels/NodeInvocationException.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/HostingModels/NodeInvocationException.cs similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices/HostingModels/NodeInvocationException.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/HostingModels/NodeInvocationException.cs diff --git a/src/Microsoft.AspNetCore.NodeServices/HostingModels/NodeInvocationInfo.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/HostingModels/NodeInvocationInfo.cs similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices/HostingModels/NodeInvocationInfo.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/HostingModels/NodeInvocationInfo.cs diff --git a/src/Microsoft.AspNetCore.NodeServices/HostingModels/NodeServicesOptionsExtensions.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/HostingModels/NodeServicesOptionsExtensions.cs similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices/HostingModels/NodeServicesOptionsExtensions.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/HostingModels/NodeServicesOptionsExtensions.cs diff --git a/src/Microsoft.AspNetCore.NodeServices/HostingModels/OutOfProcessNodeInstance.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/HostingModels/OutOfProcessNodeInstance.cs similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices/HostingModels/OutOfProcessNodeInstance.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/HostingModels/OutOfProcessNodeInstance.cs diff --git a/src/Microsoft.AspNetCore.NodeServices/INodeServices.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/INodeServices.cs similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices/INodeServices.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/INodeServices.cs diff --git a/src/Microsoft.AspNetCore.NodeServices/Microsoft.AspNetCore.NodeServices.csproj b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/Microsoft.AspNetCore.NodeServices.csproj similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices/Microsoft.AspNetCore.NodeServices.csproj rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/Microsoft.AspNetCore.NodeServices.csproj diff --git a/src/Microsoft.AspNetCore.NodeServices/NodeServicesImpl.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/NodeServicesImpl.cs similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices/NodeServicesImpl.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/NodeServicesImpl.cs diff --git a/src/Microsoft.AspNetCore.NodeServices/README.md b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/README.md similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices/README.md rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/README.md diff --git a/src/Microsoft.AspNetCore.NodeServices/TypeScript/HttpNodeInstanceEntryPoint.ts b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/TypeScript/HttpNodeInstanceEntryPoint.ts similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices/TypeScript/HttpNodeInstanceEntryPoint.ts rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/TypeScript/HttpNodeInstanceEntryPoint.ts diff --git a/src/Microsoft.AspNetCore.NodeServices/TypeScript/Util/ArgsUtil.ts b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/TypeScript/Util/ArgsUtil.ts similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices/TypeScript/Util/ArgsUtil.ts rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/TypeScript/Util/ArgsUtil.ts diff --git a/src/Microsoft.AspNetCore.NodeServices/TypeScript/Util/ExitWhenParentExits.ts b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/TypeScript/Util/ExitWhenParentExits.ts similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices/TypeScript/Util/ExitWhenParentExits.ts rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/TypeScript/Util/ExitWhenParentExits.ts diff --git a/src/Microsoft.AspNetCore.NodeServices/TypeScript/Util/OverrideStdOutputs.ts b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/TypeScript/Util/OverrideStdOutputs.ts similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices/TypeScript/Util/OverrideStdOutputs.ts rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/TypeScript/Util/OverrideStdOutputs.ts diff --git a/src/Microsoft.AspNetCore.NodeServices/TypeScript/Util/PatchModuleResolutionLStat.ts b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/TypeScript/Util/PatchModuleResolutionLStat.ts similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices/TypeScript/Util/PatchModuleResolutionLStat.ts rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/TypeScript/Util/PatchModuleResolutionLStat.ts diff --git a/src/Microsoft.AspNetCore.NodeServices/TypeScript/tsconfig.json b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/TypeScript/tsconfig.json similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices/TypeScript/tsconfig.json rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/TypeScript/tsconfig.json diff --git a/src/Microsoft.AspNetCore.NodeServices/Util/EmbeddedResourceReader.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/Util/EmbeddedResourceReader.cs similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices/Util/EmbeddedResourceReader.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/Util/EmbeddedResourceReader.cs diff --git a/src/Microsoft.AspNetCore.NodeServices/Util/StringAsTempFile.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/Util/StringAsTempFile.cs similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices/Util/StringAsTempFile.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/Util/StringAsTempFile.cs diff --git a/src/Microsoft.AspNetCore.NodeServices/Util/TaskExtensions.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/Util/TaskExtensions.cs similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices/Util/TaskExtensions.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/Util/TaskExtensions.cs diff --git a/src/Microsoft.AspNetCore.NodeServices/baseline.netcore.json b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/baseline.netcore.json similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices/baseline.netcore.json rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/baseline.netcore.json diff --git a/src/Microsoft.AspNetCore.NodeServices/package-lock.json b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/package-lock.json similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices/package-lock.json rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/package-lock.json diff --git a/src/Microsoft.AspNetCore.NodeServices/package.json b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/package.json similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices/package.json rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/package.json diff --git a/src/Microsoft.AspNetCore.NodeServices/webpack.config.js b/src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/webpack.config.js similarity index 100% rename from src/Microsoft.AspNetCore.NodeServices/webpack.config.js rename to src/JavaScriptServices/src/Microsoft.AspNetCore.NodeServices/webpack.config.js diff --git a/src/Microsoft.AspNetCore.SpaServices.Extensions/AngularCli/AngularCliBuilder.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/AngularCli/AngularCliBuilder.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices.Extensions/AngularCli/AngularCliBuilder.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/AngularCli/AngularCliBuilder.cs diff --git a/src/Microsoft.AspNetCore.SpaServices.Extensions/AngularCli/AngularCliMiddleware.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/AngularCli/AngularCliMiddleware.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices.Extensions/AngularCli/AngularCliMiddleware.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/AngularCli/AngularCliMiddleware.cs diff --git a/src/Microsoft.AspNetCore.SpaServices.Extensions/AngularCli/AngularCliMiddlewareExtensions.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/AngularCli/AngularCliMiddlewareExtensions.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices.Extensions/AngularCli/AngularCliMiddlewareExtensions.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/AngularCli/AngularCliMiddlewareExtensions.cs diff --git a/src/Microsoft.AspNetCore.SpaServices.Extensions/DefaultSpaBuilder.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/DefaultSpaBuilder.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices.Extensions/DefaultSpaBuilder.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/DefaultSpaBuilder.cs diff --git a/src/Microsoft.AspNetCore.SpaServices.Extensions/ISpaBuilder.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/ISpaBuilder.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices.Extensions/ISpaBuilder.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/ISpaBuilder.cs diff --git a/src/Microsoft.AspNetCore.SpaServices.Extensions/Microsoft.AspNetCore.SpaServices.Extensions.csproj b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/Microsoft.AspNetCore.SpaServices.Extensions.csproj similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices.Extensions/Microsoft.AspNetCore.SpaServices.Extensions.csproj rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/Microsoft.AspNetCore.SpaServices.Extensions.csproj diff --git a/src/Microsoft.AspNetCore.SpaServices.Extensions/Npm/NpmScriptRunner.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/Npm/NpmScriptRunner.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices.Extensions/Npm/NpmScriptRunner.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/Npm/NpmScriptRunner.cs diff --git a/src/Microsoft.AspNetCore.SpaServices.Extensions/Prerendering/ISpaPrerendererBuilder.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/Prerendering/ISpaPrerendererBuilder.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices.Extensions/Prerendering/ISpaPrerendererBuilder.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/Prerendering/ISpaPrerendererBuilder.cs diff --git a/src/Microsoft.AspNetCore.SpaServices.Extensions/Prerendering/SpaPrerenderingExtensions.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/Prerendering/SpaPrerenderingExtensions.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices.Extensions/Prerendering/SpaPrerenderingExtensions.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/Prerendering/SpaPrerenderingExtensions.cs diff --git a/src/Microsoft.AspNetCore.SpaServices.Extensions/Prerendering/SpaPrerenderingOptions.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/Prerendering/SpaPrerenderingOptions.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices.Extensions/Prerendering/SpaPrerenderingOptions.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/Prerendering/SpaPrerenderingOptions.cs diff --git a/src/Microsoft.AspNetCore.SpaServices.Extensions/Proxying/ConditionalProxyMiddleware.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/Proxying/ConditionalProxyMiddleware.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices.Extensions/Proxying/ConditionalProxyMiddleware.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/Proxying/ConditionalProxyMiddleware.cs diff --git a/src/Microsoft.AspNetCore.SpaServices.Extensions/Proxying/SpaProxy.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/Proxying/SpaProxy.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices.Extensions/Proxying/SpaProxy.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/Proxying/SpaProxy.cs diff --git a/src/Microsoft.AspNetCore.SpaServices.Extensions/Proxying/SpaProxyingExtensions.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/Proxying/SpaProxyingExtensions.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices.Extensions/Proxying/SpaProxyingExtensions.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/Proxying/SpaProxyingExtensions.cs diff --git a/src/Microsoft.AspNetCore.SpaServices.Extensions/ReactDevelopmentServer/ReactDevelopmentServerMiddleware.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/ReactDevelopmentServer/ReactDevelopmentServerMiddleware.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices.Extensions/ReactDevelopmentServer/ReactDevelopmentServerMiddleware.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/ReactDevelopmentServer/ReactDevelopmentServerMiddleware.cs diff --git a/src/Microsoft.AspNetCore.SpaServices.Extensions/ReactDevelopmentServer/ReactDevelopmentServerMiddlewareExtensions.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/ReactDevelopmentServer/ReactDevelopmentServerMiddlewareExtensions.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices.Extensions/ReactDevelopmentServer/ReactDevelopmentServerMiddlewareExtensions.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/ReactDevelopmentServer/ReactDevelopmentServerMiddlewareExtensions.cs diff --git a/src/Microsoft.AspNetCore.SpaServices.Extensions/SpaApplicationBuilderExtensions.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/SpaApplicationBuilderExtensions.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices.Extensions/SpaApplicationBuilderExtensions.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/SpaApplicationBuilderExtensions.cs diff --git a/src/Microsoft.AspNetCore.SpaServices.Extensions/SpaDefaultPageMiddleware.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/SpaDefaultPageMiddleware.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices.Extensions/SpaDefaultPageMiddleware.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/SpaDefaultPageMiddleware.cs diff --git a/src/Microsoft.AspNetCore.SpaServices.Extensions/SpaOptions.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/SpaOptions.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices.Extensions/SpaOptions.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/SpaOptions.cs diff --git a/src/Microsoft.AspNetCore.SpaServices.Extensions/StaticFiles/DefaultSpaStaticFileProvider.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/StaticFiles/DefaultSpaStaticFileProvider.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices.Extensions/StaticFiles/DefaultSpaStaticFileProvider.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/StaticFiles/DefaultSpaStaticFileProvider.cs diff --git a/src/Microsoft.AspNetCore.SpaServices.Extensions/StaticFiles/ISpaStaticFileProvider.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/StaticFiles/ISpaStaticFileProvider.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices.Extensions/StaticFiles/ISpaStaticFileProvider.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/StaticFiles/ISpaStaticFileProvider.cs diff --git a/src/Microsoft.AspNetCore.SpaServices.Extensions/StaticFiles/SpaStaticFilesExtensions.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/StaticFiles/SpaStaticFilesExtensions.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices.Extensions/StaticFiles/SpaStaticFilesExtensions.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/StaticFiles/SpaStaticFilesExtensions.cs diff --git a/src/Microsoft.AspNetCore.SpaServices.Extensions/StaticFiles/SpaStaticFilesOptions.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/StaticFiles/SpaStaticFilesOptions.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices.Extensions/StaticFiles/SpaStaticFilesOptions.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/StaticFiles/SpaStaticFilesOptions.cs diff --git a/src/Microsoft.AspNetCore.SpaServices.Extensions/Util/EventedStreamReader.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/Util/EventedStreamReader.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices.Extensions/Util/EventedStreamReader.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/Util/EventedStreamReader.cs diff --git a/src/Microsoft.AspNetCore.SpaServices.Extensions/Util/EventedStreamStringReader.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/Util/EventedStreamStringReader.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices.Extensions/Util/EventedStreamStringReader.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/Util/EventedStreamStringReader.cs diff --git a/src/Microsoft.AspNetCore.SpaServices.Extensions/Util/LoggerFinder.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/Util/LoggerFinder.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices.Extensions/Util/LoggerFinder.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/Util/LoggerFinder.cs diff --git a/src/Microsoft.AspNetCore.SpaServices.Extensions/Util/TaskTimeoutExtensions.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/Util/TaskTimeoutExtensions.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices.Extensions/Util/TaskTimeoutExtensions.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/Util/TaskTimeoutExtensions.cs diff --git a/src/Microsoft.AspNetCore.SpaServices.Extensions/Util/TcpPortFinder.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/Util/TcpPortFinder.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices.Extensions/Util/TcpPortFinder.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/Util/TcpPortFinder.cs diff --git a/src/Microsoft.AspNetCore.SpaServices.Extensions/baseline.netcore.json b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/baseline.netcore.json similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices.Extensions/baseline.netcore.json rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices.Extensions/baseline.netcore.json diff --git a/src/Microsoft.AspNetCore.SpaServices/.gitignore b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/.gitignore similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/.gitignore rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/.gitignore diff --git a/src/Microsoft.AspNetCore.SpaServices/Content/Node/prerenderer.js b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Content/Node/prerenderer.js similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/Content/Node/prerenderer.js rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Content/Node/prerenderer.js diff --git a/src/Microsoft.AspNetCore.SpaServices/Content/Node/webpack-dev-middleware.js b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Content/Node/webpack-dev-middleware.js similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/Content/Node/webpack-dev-middleware.js rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Content/Node/webpack-dev-middleware.js diff --git a/src/Microsoft.AspNetCore.SpaServices/Microsoft.AspNetCore.SpaServices.csproj b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Microsoft.AspNetCore.SpaServices.csproj similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/Microsoft.AspNetCore.SpaServices.csproj rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Microsoft.AspNetCore.SpaServices.csproj diff --git a/src/Microsoft.AspNetCore.SpaServices/Prerendering/DefaultSpaPrerenderer.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Prerendering/DefaultSpaPrerenderer.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/Prerendering/DefaultSpaPrerenderer.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Prerendering/DefaultSpaPrerenderer.cs diff --git a/src/Microsoft.AspNetCore.SpaServices/Prerendering/ISpaPrerenderer.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Prerendering/ISpaPrerenderer.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/Prerendering/ISpaPrerenderer.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Prerendering/ISpaPrerenderer.cs diff --git a/src/Microsoft.AspNetCore.SpaServices/Prerendering/JavaScriptModuleExport.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Prerendering/JavaScriptModuleExport.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/Prerendering/JavaScriptModuleExport.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Prerendering/JavaScriptModuleExport.cs diff --git a/src/Microsoft.AspNetCore.SpaServices/Prerendering/PrerenderTagHelper.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Prerendering/PrerenderTagHelper.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/Prerendering/PrerenderTagHelper.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Prerendering/PrerenderTagHelper.cs diff --git a/src/Microsoft.AspNetCore.SpaServices/Prerendering/Prerenderer.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Prerendering/Prerenderer.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/Prerendering/Prerenderer.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Prerendering/Prerenderer.cs diff --git a/src/Microsoft.AspNetCore.SpaServices/Prerendering/PrerenderingServiceCollectionExtensions.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Prerendering/PrerenderingServiceCollectionExtensions.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/Prerendering/PrerenderingServiceCollectionExtensions.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Prerendering/PrerenderingServiceCollectionExtensions.cs diff --git a/src/Microsoft.AspNetCore.SpaServices/Prerendering/RenderToStringResult.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Prerendering/RenderToStringResult.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/Prerendering/RenderToStringResult.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Prerendering/RenderToStringResult.cs diff --git a/src/Microsoft.AspNetCore.SpaServices/README.md b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/README.md similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/README.md rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/README.md diff --git a/src/Microsoft.AspNetCore.SpaServices/Routing/SpaRouteConstraint.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Routing/SpaRouteConstraint.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/Routing/SpaRouteConstraint.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Routing/SpaRouteConstraint.cs diff --git a/src/Microsoft.AspNetCore.SpaServices/Routing/SpaRouteExtensions.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Routing/SpaRouteExtensions.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/Routing/SpaRouteExtensions.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Routing/SpaRouteExtensions.cs diff --git a/src/Microsoft.AspNetCore.SpaServices/TypeScript/Prerenderer.ts b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/TypeScript/Prerenderer.ts similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/TypeScript/Prerenderer.ts rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/TypeScript/Prerenderer.ts diff --git a/src/Microsoft.AspNetCore.SpaServices/TypeScript/WebpackDevMiddleware.ts b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/TypeScript/WebpackDevMiddleware.ts similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/TypeScript/WebpackDevMiddleware.ts rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/TypeScript/WebpackDevMiddleware.ts diff --git a/src/Microsoft.AspNetCore.SpaServices/TypeScript/tsconfig.json b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/TypeScript/tsconfig.json similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/TypeScript/tsconfig.json rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/TypeScript/tsconfig.json diff --git a/src/Microsoft.AspNetCore.SpaServices/Webpack/ConditionalProxyMiddleware.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Webpack/ConditionalProxyMiddleware.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/Webpack/ConditionalProxyMiddleware.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Webpack/ConditionalProxyMiddleware.cs diff --git a/src/Microsoft.AspNetCore.SpaServices/Webpack/ConditionalProxyMiddlewareOptions.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Webpack/ConditionalProxyMiddlewareOptions.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/Webpack/ConditionalProxyMiddlewareOptions.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Webpack/ConditionalProxyMiddlewareOptions.cs diff --git a/src/Microsoft.AspNetCore.SpaServices/Webpack/WebpackDevMiddleware.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Webpack/WebpackDevMiddleware.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/Webpack/WebpackDevMiddleware.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Webpack/WebpackDevMiddleware.cs diff --git a/src/Microsoft.AspNetCore.SpaServices/Webpack/WebpackDevMiddlewareOptions.cs b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Webpack/WebpackDevMiddlewareOptions.cs similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/Webpack/WebpackDevMiddlewareOptions.cs rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/Webpack/WebpackDevMiddlewareOptions.cs diff --git a/src/Microsoft.AspNetCore.SpaServices/baseline.netcore.json b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/baseline.netcore.json similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/baseline.netcore.json rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/baseline.netcore.json diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-angular/.gitignore b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-angular/.gitignore similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-angular/.gitignore rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-angular/.gitignore diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-angular/.npmignore b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-angular/.npmignore similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-angular/.npmignore rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-angular/.npmignore diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-angular/LICENSE.txt b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-angular/LICENSE.txt similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-angular/LICENSE.txt rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-angular/LICENSE.txt diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-angular/package.json b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-angular/package.json similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-angular/package.json rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-angular/package.json diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-angular/src/HttpWithStateTransfer.ts b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-angular/src/HttpWithStateTransfer.ts similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-angular/src/HttpWithStateTransfer.ts rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-angular/src/HttpWithStateTransfer.ts diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-angular/src/index.ts b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-angular/src/index.ts similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-angular/src/index.ts rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-angular/src/index.ts diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-angular/tsconfig.json b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-angular/tsconfig.json similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-angular/tsconfig.json rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-angular/tsconfig.json diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/.gitignore b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/.gitignore similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/.gitignore rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/.gitignore diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/.npmignore b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/.npmignore similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/.npmignore rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/.npmignore diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/LICENSE.txt b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/LICENSE.txt similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/LICENSE.txt rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/LICENSE.txt diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/README.md b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/README.md similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/README.md rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/README.md diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/package.json b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/package.json similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/package.json rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/package.json diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/src/Prerendering.ts b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/src/Prerendering.ts similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/src/Prerendering.ts rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/src/Prerendering.ts diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/src/PrerenderingInterfaces.ts b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/src/PrerenderingInterfaces.ts similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/src/PrerenderingInterfaces.ts rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/src/PrerenderingInterfaces.ts diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/src/index.ts b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/src/index.ts similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/src/index.ts rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/src/index.ts diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/tsconfig.json b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/tsconfig.json similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/tsconfig.json rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/tsconfig.json diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/.gitignore b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/.gitignore similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/.gitignore rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/.gitignore diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/.npmignore b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/.npmignore similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/.npmignore rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/.npmignore diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/LICENSE.txt b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/LICENSE.txt similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/LICENSE.txt rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/LICENSE.txt diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/README.md b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/README.md similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/README.md rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/README.md diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/package.json b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/package.json similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/package.json rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/package.json diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/src/HotModuleReplacement.ts b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/src/HotModuleReplacement.ts similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/src/HotModuleReplacement.ts rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/src/HotModuleReplacement.ts diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/src/index.ts b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/src/index.ts similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/src/index.ts rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/src/index.ts diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/tsconfig.json b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/tsconfig.json similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/tsconfig.json rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack-react/tsconfig.json diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/.gitignore b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/.gitignore similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/.gitignore rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/.gitignore diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/.npmignore b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/.npmignore similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/.npmignore rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/.npmignore diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/LICENSE.txt b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/LICENSE.txt similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/LICENSE.txt rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/LICENSE.txt diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/README.md b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/README.md similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/README.md rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/README.md diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/package-lock.json b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/package-lock.json similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/package-lock.json rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/package-lock.json diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/package.json b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/package.json similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/package.json rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/package.json diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/LoadViaWebpack.ts b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/LoadViaWebpack.ts similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/LoadViaWebpack.ts rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/LoadViaWebpack.ts diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/RequireNewCopy.ts b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/RequireNewCopy.ts similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/RequireNewCopy.ts rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/RequireNewCopy.ts diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/WebpackDevMiddleware.ts b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/WebpackDevMiddleware.ts similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/WebpackDevMiddleware.ts rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/WebpackDevMiddleware.ts diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/WebpackTestPermissions.ts b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/WebpackTestPermissions.ts similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/WebpackTestPermissions.ts rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/WebpackTestPermissions.ts diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/index.ts b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/index.ts similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/index.ts rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/index.ts diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/typings/memory-fs.d.ts b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/typings/memory-fs.d.ts similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/typings/memory-fs.d.ts rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/typings/memory-fs.d.ts diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/typings/require-from-string.d.ts b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/typings/require-from-string.d.ts similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/typings/require-from-string.d.ts rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/typings/require-from-string.d.ts diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/typings/webpack-node-externals.d.ts b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/typings/webpack-node-externals.d.ts similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/typings/webpack-node-externals.d.ts rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/typings/webpack-node-externals.d.ts diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/tsconfig.json b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/tsconfig.json similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/tsconfig.json rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/tsconfig.json diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/.gitignore b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/.gitignore similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/domain-task/.gitignore rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/.gitignore diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/.npmignore b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/.npmignore similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/domain-task/.npmignore rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/.npmignore diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/LICENSE.txt b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/LICENSE.txt similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/domain-task/LICENSE.txt rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/LICENSE.txt diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/README.md b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/README.md similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/domain-task/README.md rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/README.md diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/package.json b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/package.json similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/domain-task/package.json rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/package.json diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/src/domain-context.d.ts b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/src/domain-context.d.ts similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/domain-task/src/domain-context.d.ts rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/src/domain-context.d.ts diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/src/fetch.ts b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/src/fetch.ts similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/domain-task/src/fetch.ts rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/src/fetch.ts diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/src/index.ts b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/src/index.ts similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/domain-task/src/index.ts rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/src/index.ts diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/src/main.ts b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/src/main.ts similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/domain-task/src/main.ts rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/src/main.ts diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/tsconfig.json b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/tsconfig.json similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/npm/domain-task/tsconfig.json rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/npm/domain-task/tsconfig.json diff --git a/src/Microsoft.AspNetCore.SpaServices/package-lock.json b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/package-lock.json similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/package-lock.json rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/package-lock.json diff --git a/src/Microsoft.AspNetCore.SpaServices/package.json b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/package.json similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/package.json rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/package.json diff --git a/src/Microsoft.AspNetCore.SpaServices/webpack.config.js b/src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/webpack.config.js similarity index 100% rename from src/Microsoft.AspNetCore.SpaServices/webpack.config.js rename to src/JavaScriptServices/src/Microsoft.AspNetCore.SpaServices/webpack.config.js diff --git a/templates/WhereHaveTheTemplatesGone.md b/src/JavaScriptServices/templates/WhereHaveTheTemplatesGone.md similarity index 100% rename from templates/WhereHaveTheTemplatesGone.md rename to src/JavaScriptServices/templates/WhereHaveTheTemplatesGone.md diff --git a/version.props b/src/JavaScriptServices/version.props similarity index 100% rename from version.props rename to src/JavaScriptServices/version.props