From 5ed1a35ce0ff373e8a61278a096226b9dc5fe472 Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Thu, 3 Aug 2017 18:00:46 +0100 Subject: [PATCH 001/195] Fix problems with AoT when using Angular Material. Fixes #1168 --- templates/AngularSpa/webpack.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/AngularSpa/webpack.config.js b/templates/AngularSpa/webpack.config.js index 85e238de..3354909a 100644 --- a/templates/AngularSpa/webpack.config.js +++ b/templates/AngularSpa/webpack.config.js @@ -17,7 +17,7 @@ module.exports = (env) => { }, module: { rules: [ - { test: /\.ts$/, include: /ClientApp/, use: isDevBuild ? ['awesome-typescript-loader?silent=true', 'angular2-template-loader'] : '@ngtools/webpack' }, + { test: /\.ts$/, use: isDevBuild ? ['awesome-typescript-loader?silent=true', 'angular2-template-loader'] : '@ngtools/webpack' }, { test: /\.html$/, use: 'html-loader?minimize=false' }, { test: /\.css$/, use: [ 'to-string-loader', isDevBuild ? 'css-loader' : 'css-loader?minimize' ] }, { test: /\.(png|jpg|jpeg|gif|svg)$/, use: 'url-loader?limit=25000' } From 128683be0ec7661a4bfaad50a83b1efb564aa5c4 Mon Sep 17 00:00:00 2001 From: Pranav K Date: Thu, 17 Aug 2017 15:00:10 -0700 Subject: [PATCH 002/195] Pinning versions for 2.0.0 --- NuGet.config | 2 +- build/dependencies.props | 14 +++++++------- version.props | 1 - 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/NuGet.config b/NuGet.config index 37f0d27e..6a62aeda 100644 --- a/NuGet.config +++ b/NuGet.config @@ -2,7 +2,7 @@ - + diff --git a/build/dependencies.props b/build/dependencies.props index fdda160f..bf628533 100644 --- a/build/dependencies.props +++ b/build/dependencies.props @@ -1,12 +1,12 @@ - + - 2.0.0-* + 2.0.0 5.0.2 - 2.0.1-* + 2.0.1-rtm-15400 10.0.1 - 2.0.0-* - 2.0.0-* - 2.0.0-* - 4.8.0-* + 2.0.0 + 2.0.0 + 2.0.0 + 4.8.0 diff --git a/version.props b/version.props index eba6b167..e69e2c65 100644 --- a/version.props +++ b/version.props @@ -2,6 +2,5 @@ 2.0.0 - rtm From 6dddc9d01d4c827544d7a4406804c1fa552c9e4e Mon Sep 17 00:00:00 2001 From: alejandro garcia Date: Sat, 19 Aug 2017 13:07:49 +0200 Subject: [PATCH 003/195] Removed json loader from react redux template --- templates/ReactReduxSpa/package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/templates/ReactReduxSpa/package.json b/templates/ReactReduxSpa/package.json index cf2a4a36..c7c82883 100644 --- a/templates/ReactReduxSpa/package.json +++ b/templates/ReactReduxSpa/package.json @@ -25,7 +25,6 @@ "file-loader": "0.11.2", "history": "4.6.3", "jquery": "3.2.1", - "json-loader": "0.5.4", "node-noop": "1.0.0", "react": "15.6.1", "react-dom": "15.6.1", From a7e715c88f1bd8b9390540abdb57f35b0c423542 Mon Sep 17 00:00:00 2001 From: Steve Lathrop Date: Wed, 16 Aug 2017 03:03:34 -0400 Subject: [PATCH 004/195] Small grammatical fix to README.md --- src/Microsoft.AspNetCore.NodeServices/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Microsoft.AspNetCore.NodeServices/README.md b/src/Microsoft.AspNetCore.NodeServices/README.md index fe905c58..c314db36 100644 --- a/src/Microsoft.AspNetCore.NodeServices/README.md +++ b/src/Microsoft.AspNetCore.NodeServices/README.md @@ -317,7 +317,7 @@ module.exports = { ## Hosting models -NodeServices has a pluggable hosting/transport mechanism, because it is an abstraction over various possible ways to invoke Node.js from .NET. This allows more high-level facilities (e.g., for Angular prerendering) to be agnostic to the details of launching Node and communicating it - those high-level facilities can just trust that *somehow* we can invoke code in Node for them. +NodeServices has a pluggable hosting/transport mechanism, because it is an abstraction over various possible ways to invoke Node.js from .NET. This allows more high-level facilities (e.g., for Angular prerendering) to be agnostic to the details of launching Node and communicating with it - those high-level facilities can just trust that *somehow* we can invoke code in Node for them. Using this abstraction, we could run Node inside the .NET process, in a separate process on the same machine, or even on a different machine altogether. At the time of writing, all the built-in hosting mechanisms work by launching Node as a separate process on the same machine as your .NET code. From fc398d602a9e908b62028c26fb7ecde827a519f7 Mon Sep 17 00:00:00 2001 From: frederikprijck Date: Tue, 15 Aug 2017 23:45:31 +0200 Subject: [PATCH 005/195] Allow lazy loading with AngularSpa in dev build Previously, the AngularSpa didn't include `angular2-router-loader`. This commit ensures it does. Closes #1194 --- templates/AngularSpa/package.json | 1 + templates/AngularSpa/webpack.config.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/templates/AngularSpa/package.json b/templates/AngularSpa/package.json index 4d1b203d..523908ac 100644 --- a/templates/AngularSpa/package.json +++ b/templates/AngularSpa/package.json @@ -19,6 +19,7 @@ "@angular/router": "4.2.5", "@ngtools/webpack": "1.5.0", "@types/webpack-env": "1.13.0", + "angular2-router-loader": "0.3.5", "angular2-template-loader": "0.6.2", "aspnet-prerendering": "^3.0.1", "aspnet-webpack": "^2.0.1", diff --git a/templates/AngularSpa/webpack.config.js b/templates/AngularSpa/webpack.config.js index 3354909a..c5e834ba 100644 --- a/templates/AngularSpa/webpack.config.js +++ b/templates/AngularSpa/webpack.config.js @@ -17,7 +17,7 @@ module.exports = (env) => { }, module: { rules: [ - { test: /\.ts$/, use: isDevBuild ? ['awesome-typescript-loader?silent=true', 'angular2-template-loader'] : '@ngtools/webpack' }, + { test: /\.ts$/, use: isDevBuild ? ['awesome-typescript-loader?silent=true', 'angular2-template-loader', 'angular2-router-loader'] : '@ngtools/webpack' }, { test: /\.html$/, use: 'html-loader?minimize=false' }, { test: /\.css$/, use: [ 'to-string-loader', isDevBuild ? 'css-loader' : 'css-loader?minimize' ] }, { test: /\.(png|jpg|jpeg|gif|svg)$/, use: 'url-loader?limit=25000' } From c2a284d5b8e2a42514ca9b55161bd3499c28fc65 Mon Sep 17 00:00:00 2001 From: Stephan Troyer Date: Thu, 13 Jul 2017 12:16:29 +0200 Subject: [PATCH 006/195] small Knockout cleanup --- templates/KnockoutSpa/ClientApp/router.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/templates/KnockoutSpa/ClientApp/router.ts b/templates/KnockoutSpa/ClientApp/router.ts index 61317504..eeb1b405 100644 --- a/templates/KnockoutSpa/ClientApp/router.ts +++ b/templates/KnockoutSpa/ClientApp/router.ts @@ -43,8 +43,7 @@ export class Router { $(document).on('click', 'a', this.clickEventListener); // Initialize Crossroads with starting location - // Need to cast history to 'any' because @types/history is out-of-date - crossroads.parse((history as any).location.pathname); + crossroads.parse(history.location.pathname); } public link(url: string): string { From a40adab38dba34458b25ecc2b3884278a8b2394c Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Mon, 21 Aug 2017 16:40:25 -0700 Subject: [PATCH 007/195] In non-ASP.NET apps, default project path to current working directory. Fixes #1100. --- samples/misc/LatencyTest/Program.cs | 1 - .../Configuration/NodeServicesOptions.cs | 9 +++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/samples/misc/LatencyTest/Program.cs b/samples/misc/LatencyTest/Program.cs index 9d426b68..bafe4b9f 100755 --- a/samples/misc/LatencyTest/Program.cs +++ b/samples/misc/LatencyTest/Program.cs @@ -21,7 +21,6 @@ public static void Main(string[] args) { // Since .NET Core 1.1, the HTTP hosting model has become basically as fast as the Socket hosting model //options.UseSocketHosting(); - options.ProjectPath = Directory.GetCurrentDirectory(); options.WatchFileExtensions = new string[] {}; // Don't watch anything }); var serviceProvider = services.BuildServiceProvider(); diff --git a/src/Microsoft.AspNetCore.NodeServices/Configuration/NodeServicesOptions.cs b/src/Microsoft.AspNetCore.NodeServices/Configuration/NodeServicesOptions.cs index 73dd2289..384abad0 100644 --- a/src/Microsoft.AspNetCore.NodeServices/Configuration/NodeServicesOptions.cs +++ b/src/Microsoft.AspNetCore.NodeServices/Configuration/NodeServicesOptions.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.IO; using System.Threading; using Microsoft.AspNetCore.NodeServices.HostingModels; using Microsoft.Extensions.Logging; @@ -34,14 +35,18 @@ public NodeServicesOptions(IServiceProvider serviceProvider) InvocationTimeoutMilliseconds = DefaultInvocationTimeoutMilliseconds; WatchFileExtensions = (string[])DefaultWatchFileExtensions.Clone(); - // In an ASP.NET environment, we can use the IHostingEnvironment data to auto-populate a few - // things that you'd otherwise have to specify manually var hostEnv = serviceProvider.GetService(); if (hostEnv != null) { + // In an ASP.NET environment, we can use the IHostingEnvironment data to auto-populate a few + // things that you'd otherwise have to specify manually ProjectPath = hostEnv.ContentRootPath; EnvironmentVariables["NODE_ENV"] = hostEnv.IsDevelopment() ? "development" : "production"; // De-facto standard values for Node } + else + { + ProjectPath = Directory.GetCurrentDirectory(); + } var applicationLifetime = serviceProvider.GetService(); if (applicationLifetime != null) From a94ac6f37e12c50705be6a7912f21e253c4aacc1 Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Mon, 21 Aug 2017 16:48:30 -0700 Subject: [PATCH 008/195] For Redux dev tools, use newer __REDUX_DEVTOOLS_EXTENSION__ API. Fixes #1196 --- templates/ReactReduxSpa/ClientApp/configureStore.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/ReactReduxSpa/ClientApp/configureStore.ts b/templates/ReactReduxSpa/ClientApp/configureStore.ts index 79c22aba..7a3b4f44 100644 --- a/templates/ReactReduxSpa/ClientApp/configureStore.ts +++ b/templates/ReactReduxSpa/ClientApp/configureStore.ts @@ -9,7 +9,7 @@ export default function configureStore(history: History, initialState?: Applicat // Build middleware. These are functions that can process the actions before they reach the store. const windowIfDefined = typeof window === 'undefined' ? null : window as any; // If devTools is installed, connect to it - const devToolsExtension = windowIfDefined && windowIfDefined.devToolsExtension as () => GenericStoreEnhancer; + const devToolsExtension = windowIfDefined && windowIfDefined.__REDUX_DEVTOOLS_EXTENSION__ as () => GenericStoreEnhancer; const createStoreWithMiddleware = compose( applyMiddleware(thunk, routerMiddleware(history)), devToolsExtension ? devToolsExtension() : (next: StoreEnhancerStoreCreator) => next From d6ae8829b6c27b2306dc683017ecb7ba3483450c Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Mon, 21 Aug 2017 17:11:47 -0700 Subject: [PATCH 009/195] In HMR, don't rely on default JsonSerializer settings. Fixes #688 --- .../Webpack/WebpackDevMiddleware.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Microsoft.AspNetCore.SpaServices/Webpack/WebpackDevMiddleware.cs b/src/Microsoft.AspNetCore.SpaServices/Webpack/WebpackDevMiddleware.cs index ef8ac001..190fb492 100644 --- a/src/Microsoft.AspNetCore.SpaServices/Webpack/WebpackDevMiddleware.cs +++ b/src/Microsoft.AspNetCore.SpaServices/Webpack/WebpackDevMiddleware.cs @@ -15,6 +15,12 @@ public static class WebpackDevMiddleware { private const string DefaultConfigFile = "webpack.config.js"; + private static readonly JsonSerializerSettings jsonSerializerSettings = new JsonSerializerSettings + { + ContractResolver = new CamelCasePropertyNamesContractResolver(), + TypeNameHandling = TypeNameHandling.None + }; + /// /// Enables Webpack dev middleware support. This hosts an instance of the Webpack compiler in memory /// in your application so that you can always serve up-to-date Webpack-built resources without having @@ -88,7 +94,7 @@ public static void UseWebpackDevMiddleware( }; var devServerInfo = nodeServices.InvokeExportAsync(nodeScript.FileName, "createWebpackDevServer", - JsonConvert.SerializeObject(devServerOptions, new JsonSerializerSettings() { ContractResolver = new DefaultContractResolver() })).Result; + JsonConvert.SerializeObject(devServerOptions, jsonSerializerSettings)).Result; // If we're talking to an older version of aspnet-webpack, it will return only a single PublicPath, // not an array of PublicPaths. Handle that scenario. From eea2066a6d37938413cf068d012a3fac65215487 Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Tue, 22 Aug 2017 14:33:30 -0700 Subject: [PATCH 010/195] Remove Yeoman generator - replace it with deprecation notice. --- .../package-builder/src/yeoman/.gitignore | 1 - .../package-builder/src/yeoman/README.md | 21 +- .../package-builder/src/yeoman/app/index.ts | 238 ------------------ .../package-builder/src/yeoman/package.json | 12 +- 4 files changed, 12 insertions(+), 260 deletions(-) delete mode 100644 templates/package-builder/src/yeoman/.gitignore delete mode 100644 templates/package-builder/src/yeoman/app/index.ts diff --git a/templates/package-builder/src/yeoman/.gitignore b/templates/package-builder/src/yeoman/.gitignore deleted file mode 100644 index 2ccbe465..00000000 --- a/templates/package-builder/src/yeoman/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/node_modules/ diff --git a/templates/package-builder/src/yeoman/README.md b/templates/package-builder/src/yeoman/README.md index fc87aa22..a64e1f90 100644 --- a/templates/package-builder/src/yeoman/README.md +++ b/templates/package-builder/src/yeoman/README.md @@ -1,14 +1,15 @@ -Generates ASP.NET Core projects for single-page applications. +# Please use "dotnet new" templates instead -Can generate projects with: +As of .NET Core 2.0, it's no longer necessary to use Yeoman to create new Single-Page Application projects. - * Angular - * Aurelia - * Knockout - * React - * React with Redux - * Vue +Using the .NET Core 2.0 SDK, you can run any of the following commands in an empty directory, without needing to install any external packages first: -For more information about features and usage, see [this blog post](https://blogs.msdn.microsoft.com/webdev/2017/02/14/building-single-page-applications-on-asp-net-core-with-javascriptservices/). + * `dotnet new angular` + * `dotnet new react` + * `dotnet new redux` -To learn more about the underlying technologies, or to report any issues, see [this project's GitHub repo](https://github.com/aspnet/JavaScriptServices). +Or, if you want to create an Aurelia, Knockout, or Vue application, you should run `dotnet new --install Microsoft.AspNetCore.SpaTemplates::*` first. This will add `aurelia`, `knockout`, and `vue` templates to `dotnet new`. + +#### This Yeoman generator is DEPRECATED + +Please don't use `generator-aspnetcore-spa` to create new projects. Its output is outdated and no longer maintained. Instead, use `dotnet new` as described above (or if you're on Windows and use Visual Studio, you can just use *File->New Project* to create Angular, React, or React+Redux projects). diff --git a/templates/package-builder/src/yeoman/app/index.ts b/templates/package-builder/src/yeoman/app/index.ts deleted file mode 100644 index 709af7ab..00000000 --- a/templates/package-builder/src/yeoman/app/index.ts +++ /dev/null @@ -1,238 +0,0 @@ -import * as fs from 'fs'; -import * as path from 'path'; -import * as yeoman from 'yeoman-generator'; -import * as uuid from 'node-uuid'; -import * as glob from 'glob'; -import * as semver from 'semver'; -import * as chalk from 'chalk'; -import { execSync } from 'child_process'; -const yosay = require('yosay'); -const toPascalCase = require('to-pascal-case'); -const isWindows = /^win/.test(process.platform); -const generatorPackageJson = require(path.resolve(__dirname, '../package.json')); - -// Paths matching these regexes will only be included if the user wants tests -const testSpecificPaths = [ - /\.spec.ts$/, // Files ending '.spec.ts' - /(^|\/|\\)test($|\/|\\)/ // Files under any directory called 'test' -]; - -// These NPM dependencies will only be included if the user wants tests -const testSpecificNpmPackages = [ - "@types/chai", - "@types/jasmine", - "chai", - "jasmine-core", - "karma", - "karma-chai", - "karma-chrome-launcher", - "karma-cli", - "karma-jasmine", - "karma-webpack" -]; - -type YeomanPrompt = (opt: yeoman.IPromptOptions | yeoman.IPromptOptions[], callback: (answers: any) => void) => void; -const optionOrPrompt: YeomanPrompt = require('yeoman-option-or-prompt'); - -interface TemplateConfig { - value: string; // Internal unique ID for Yeoman prompt - rootDir: string; // Which of the template root directories should be used - name: string; // Display name - tests: boolean; -} - -const templates: TemplateConfig[] = [ - { value: 'angular', rootDir: 'angular', name: 'Angular', tests: true }, - { value: 'aurelia', rootDir: 'aurelia', name: 'Aurelia', tests: false }, - { value: 'knockout', rootDir: 'knockout', name: 'Knockout', tests: false }, - { value: 'react', rootDir: 'react', name: 'React', tests: false }, - { value: 'react-redux', rootDir: 'react-redux', name: 'React with Redux', tests: false }, - { value: 'vue', rootDir: 'vue', name: 'Vue', tests: false } -]; - -class MyGenerator extends yeoman.Base { - private _answers: any; - private _optionOrPrompt: YeomanPrompt; - - constructor(args: string | string[], options: any) { - super(args, options); - this._optionOrPrompt = optionOrPrompt; - this.log(yosay('Welcome to the ASP.NET Core Single-Page App generator!\n\nVersion: ' + generatorPackageJson.version)); - - if (isWindows) { - assertNpmVersionIsAtLeast('3.0.0'); - } - - assertDotNetSDKVersionIsAtLeast('1.0.0'); - } - - prompting() { - this.option('projectguid'); - - const done = this.async(); - this._optionOrPrompt([{ - type: 'list', - name: 'framework', - message: 'Framework', - choices: templates - }], firstAnswers => { - const templateConfig = templates.filter(t => t.value === firstAnswers.framework)[0]; - const furtherQuestions = [{ - type: 'input', - name: 'name', - message: 'Your project name', - default: this.appname - }]; - - if (templateConfig.tests) { - furtherQuestions.unshift({ - type: 'confirm', - name: 'tests', - message: 'Do you want to include unit tests?', - default: true as any - }); - } - - this._optionOrPrompt(furtherQuestions, answers => { - answers.framework = firstAnswers.framework; - this._answers = answers; - this._answers.framework = firstAnswers.framework; - this._answers.templateConfig = templateConfig; - this._answers.namePascalCase = toPascalCase(answers.name); - this._answers.projectGuid = this.options['projectguid'] || uuid.v4(); - this._answers.sdkVersion = getDotNetSDKVersion(); - - done(); - }); - }); - } - - writing() { - const templateConfig = this._answers.templateConfig as TemplateConfig; - const templateRoot = this.templatePath(templateConfig.rootDir); - glob.sync('**/*', { cwd: templateRoot, dot: true, nodir: true }).forEach(fn => { - // Token replacement in filenames - let outputFn = fn.replace(/tokenreplace\-([^\.\/]*)/g, (substr, token) => this._answers[token]); - - // Rename template_gitignore to .gitignore in output - if (path.basename(fn) === 'template_gitignore') { - outputFn = path.join(path.dirname(fn), '.gitignore'); - } - - // Decide whether to emit this file - const isTestSpecificFile = testSpecificPaths.some(regex => regex.test(outputFn)); - const emitFile = (this._answers.tests || !isTestSpecificFile); - - if (emitFile) { - let inputFullPath = path.join(templateRoot, fn); - let destinationFullPath = this.destinationPath(outputFn); - let deleteInputFileAfter = false; - if (path.basename(fn) === 'package.json') { - // Special handling for package.json, because we rewrite it dynamically - const tempPath = destinationFullPath + '.tmp'; - this.fs.writeJSON( - tempPath, - rewritePackageJson(JSON.parse(fs.readFileSync(inputFullPath, 'utf8')), this._answers.tests), - /* replacer */ null, - /* space */ 2 - ); - inputFullPath = tempPath; - deleteInputFileAfter = true; - } - - const outputDirBasename = path.basename(path.dirname(destinationFullPath)); - if (outputDirBasename === 'dist') { - // Don't do token replacement in 'dist' files, as they might just randomly contain - // sequences like '<%=' even though they aren't actually template files - this.fs.copy( - inputFullPath, - destinationFullPath - ); - } else { - this.fs.copyTpl( - inputFullPath, - destinationFullPath, - this._answers - ); - } - - if (deleteInputFileAfter) { - this.fs.delete(inputFullPath); - } - } - }); - } - - installingDeps() { - this.installDependencies({ - npm: true, - bower: false, - callback: () => { - this.spawnCommandSync('dotnet', ['restore']); - this.spawnCommandSync('./node_modules/.bin/webpack', ['--config', 'webpack.config.vendor.js']); - this.spawnCommandSync('./node_modules/.bin/webpack'); - } - }); - } -} - -function assertNpmVersionIsAtLeast(minVersion: string) { - const runningVersion = execSync('npm -v').toString(); - if (!semver.gte(runningVersion, minVersion, /* loose */ true)) { - console.error(`This generator requires NPM version ${minVersion} or later. You are running NPM version ${runningVersion}`); - process.exit(1); - } -} - -function assertDotNetSDKVersionIsAtLeast(minVersion: string) { - const runningVersion = getDotNetSDKVersion(); - if (!runningVersion) { - console.error('Could not find dotnet tool on system path. Please install dotnet core SDK then try again.'); - console.error('Try running "dotnet --version" to verify you have it.'); - process.exit(1); - } else if (!semver.gte(runningVersion, minVersion, /* loose */ true)) { - console.error(`This generator requires dotnet SDK version ${minVersion} or later. You have version ${runningVersion}`); - console.error('Please update your dotnet SDK then try again. You can run "dotnet --version" to check your version.'); - process.exit(1); - } -} - -function getDotNetSDKVersion() { - try { - return execSync('dotnet --version').toString().replace(/\r|\n/g, ''); - } catch (ex) { - return null; - } -} - -function rewritePackageJson(contents, includeTests) { - if (!includeTests) { - // Delete any test-specific packages from dependencies and devDependencies - ['dependencies', 'devDependencies'].forEach(dependencyListName => { - var packageList = contents[dependencyListName]; - if (packageList) { - testSpecificNpmPackages.forEach(packageToRemove => { - delete packageList[packageToRemove]; - }); - - if (Object.getOwnPropertyNames(packageList).length === 0) { - delete contents[dependencyListName]; - } - } - }); - - // Delete any script called 'test' - const scripts = contents.scripts; - if (scripts && scripts.test) { - delete scripts.test; - if (Object.getOwnPropertyNames(scripts).length === 0) { - delete contents.scripts; - } - } - } - - return contents; -} - -declare var module: any; -(module).exports = MyGenerator; diff --git a/templates/package-builder/src/yeoman/package.json b/templates/package-builder/src/yeoman/package.json index 3a41f2f9..7cbccd53 100644 --- a/templates/package-builder/src/yeoman/package.json +++ b/templates/package-builder/src/yeoman/package.json @@ -1,12 +1,9 @@ { "name": "generator-aspnetcore-spa", "version": "1.0.0", - "description": "Single-Page App templates for ASP.NET Core", + "description": "DEPRECATED. Do not use. Use 'dotnet new' to create ASP.NET Core Single-Page Application projects instead.", "author": "Microsoft", "license": "Apache-2.0", - "files": [ - "app" - ], "keywords": [ "yeoman-generator" ], @@ -18,12 +15,5 @@ "url": "https://github.com/aspnet/JavaScriptServices.git" }, "dependencies": { - "chalk": "^1.1.3", - "glob": "^7.0.3", - "node-uuid": "^1.4.7", - "to-pascal-case": "^1.0.0", - "yeoman-generator": "^0.20.2", - "yeoman-option-or-prompt": "^1.0.2", - "yosay": "^1.1.1" } } From e057cb35ec879f3b22bf6983a9b6c61bdefaf5a6 Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Tue, 22 Aug 2017 14:43:51 -0700 Subject: [PATCH 011/195] Remove Yeoman from the template build process --- templates/package-builder/README.md | 4 +- templates/package-builder/package.json | 5 +-- templates/package-builder/src/build/build.ts | 37 ------------------- .../Microsoft.AspNetCore.SpaTemplates.nuspec | 2 +- 4 files changed, 5 insertions(+), 43 deletions(-) diff --git a/templates/package-builder/README.md b/templates/package-builder/README.md index 74d42abf..a4b9d47c 100644 --- a/templates/package-builder/README.md +++ b/templates/package-builder/README.md @@ -1,5 +1,5 @@ -To generator the Yeoman generator, execute: +To generator the package generator, execute: npm run build -Output will appear in the `generator-aspnetcore-spa` directory. +Output will appear in the `dist/artifacts` directory. diff --git a/templates/package-builder/package.json b/templates/package-builder/package.json index 4b91c7a4..d3b248c8 100644 --- a/templates/package-builder/package.json +++ b/templates/package-builder/package.json @@ -1,11 +1,11 @@ { "name": "generator-aspnetcore-spa-generator", "version": "1.0.0", - "description": "Creates the Yeoman generator and 'dotnet new' package for ASP.NET Core SPA templates", + "description": "Creates the 'dotnet new' package for ASP.NET Core SPA templates", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", - "build": "tsc && node ./tmp/build/build.js" + "build": "tsc && node ./tmp/build.js" }, "author": "Microsoft", "license": "Apache-2.0", @@ -28,7 +28,6 @@ "@types/node": "^6.0.45", "@types/node-uuid": "0.0.28", "@types/rimraf": "0.0.28", - "@types/yeoman-generator": "0.0.30", "typescript": "^2.0.0" } } diff --git a/templates/package-builder/src/build/build.ts b/templates/package-builder/src/build/build.ts index fab6d48b..c0827deb 100644 --- a/templates/package-builder/src/build/build.ts +++ b/templates/package-builder/src/build/build.ts @@ -10,7 +10,6 @@ import * as targz from 'tar.gz'; const isWindows = /^win/.test(process.platform); const textFileExtensions = ['.gitignore', 'template_gitignore', '.config', '.cs', '.cshtml', '.csproj', '.html', '.js', '.json', '.jsx', '.md', '.nuspec', '.ts', '.tsx']; -const yeomanGeneratorSource = './src/yeoman'; const webToolsVSPackageGuid = '{0CD94836-1526-4E85-87D3-FB5274C5AFC9}'; const dotNetPackages = { @@ -100,31 +99,6 @@ function getBuildNumber(): string { return Math.floor((new Date().valueOf() - new Date(2017, 0, 1).valueOf()) / (60*1000)) + '-local'; } -function buildYeomanNpmPackage(outputRoot: string) { - const outputTemplatesRoot = path.join(outputRoot, 'app/templates'); - rimraf.sync(outputTemplatesRoot); - - // Copy template files - const filenameReplacements = [ - { from: /.*\.csproj$/, to: 'tokenreplace-namePascalCase.csproj' } - ]; - const contentReplacements = [ - // Currently, there are none - ]; - _.forEach(templates, (templateConfig, templateName) => { - const outputDir = path.join(outputTemplatesRoot, templateName); - writeTemplate(templateConfig.dir, outputDir, contentReplacements, filenameReplacements); - }); - - // Also copy the generator files (that's the compiled .js files, plus all other non-.ts files) - const tempRoot = './tmp'; - copyRecursive(path.join(tempRoot, 'yeoman'), outputRoot, '**/*.js'); - copyRecursive(yeomanGeneratorSource, outputRoot, '**/!(*.ts)'); - - // Clean up - rimraf.sync(tempRoot); -} - function buildDotNetNewNuGetPackages(outputDir: string) { const dotNetPackageIds = _.values(dotNetPackages); dotNetPackageIds.forEach(packageId => { @@ -275,12 +249,10 @@ function buildDotNetNewNuGetPackage(packageId: string) { }); // Create the .nuspec file - const yeomanPackageVersion = JSON.parse(fs.readFileSync(path.join(yeomanGeneratorSource, 'package.json'), 'utf8')).version; const nuspecContentTemplate = fs.readFileSync(`./src/dotnetnew/${ packageId }.nuspec`); writeFileEnsuringDirExists(outputRoot, `${ packageId }.nuspec`, applyContentReplacements(nuspecContentTemplate, [ - { from: /\{yeomanversion\}/g, to: yeomanPackageVersion }, { from: /\{buildnumber\}/g, to: getBuildNumber() }, ]) ); @@ -313,16 +285,7 @@ function runPrepublishScripts(rootDir: string, scripts: string[]) { const distDir = './dist'; const artifactsDir = path.join(distDir, 'artifacts'); -const yeomanOutputRoot = path.join(distDir, 'generator-aspnetcore-spa'); rimraf.sync(distDir); mkdirp.sync(artifactsDir); -buildYeomanNpmPackage(yeomanOutputRoot); buildDotNetNewNuGetPackages(artifactsDir); - -// Finally, create a .tar.gz file containing the built generator-aspnetcore-spa. -// The CI system can treat this as the final built artifact. -// Note that the targz APIs only come in async flavor. -targz().compress(yeomanOutputRoot, path.join(artifactsDir, 'generator-aspnetcore-spa.tar.gz'), err => { - if (err) { throw err; } -}); diff --git a/templates/package-builder/src/dotnetnew/Microsoft.AspNetCore.SpaTemplates.nuspec b/templates/package-builder/src/dotnetnew/Microsoft.AspNetCore.SpaTemplates.nuspec index 615d8b0b..e873687a 100644 --- a/templates/package-builder/src/dotnetnew/Microsoft.AspNetCore.SpaTemplates.nuspec +++ b/templates/package-builder/src/dotnetnew/Microsoft.AspNetCore.SpaTemplates.nuspec @@ -2,7 +2,7 @@ Microsoft.AspNetCore.SpaTemplates - {yeomanversion} + 1.0.{buildnumber} Single Page Application templates for ASP.NET Core Microsoft en-US From cd9ad38a99c443ca576b1d52c394ee709051bb04 Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Tue, 22 Aug 2017 16:13:34 -0700 Subject: [PATCH 012/195] Run tests against 'dotnet new' output instead of Yeoman output --- test/package.json | 3 +- test/templates/angular.spec.ts | 19 ++++++---- test/templates/util/dotnetnew.ts | 63 ++++++++++++++++++++++++++++++++ test/templates/util/yeoman.ts | 52 -------------------------- 4 files changed, 75 insertions(+), 62 deletions(-) create mode 100644 test/templates/util/dotnetnew.ts delete mode 100644 test/templates/util/yeoman.ts diff --git a/test/package.json b/test/package.json index 9bcf24a2..39e4e4a9 100644 --- a/test/package.json +++ b/test/package.json @@ -23,8 +23,7 @@ "selenium-standalone": "^5.9.0", "tree-kill": "^1.1.0", "typescript": "^2.1.4", - "webdriverio": "^4.5.0", - "yo": "^1.8.5" + "webdriverio": "^4.5.0" }, "devDependencies": { "wdio-junit-reporter": "^0.2.0", diff --git a/test/templates/angular.spec.ts b/test/templates/angular.spec.ts index 9a96d139..fc214e2d 100644 --- a/test/templates/angular.spec.ts +++ b/test/templates/angular.spec.ts @@ -1,21 +1,24 @@ import * as fs from 'fs'; import * as path from 'path'; +import * as rimraf from 'rimraf'; import { expect } from 'chai'; -import { generateProjectSync } from './util/yeoman'; +import { generateProjectSync } from './util/dotnetnew'; import { AspNetProcess, AspNetCoreEnviroment, defaultUrl, publishProjectSync } from './util/aspnet'; import { getValue, getCssPropertyValue } from './util/webdriverio'; -// First, generate a new project using the locally-built generator-aspnetcore-spa +// First, generate a new project using the locally-built templates package // Do this outside the Mocha fixture, otherwise Mocha will time out const appDir = path.resolve(__dirname, '../generated/angular'); const publishedAppDir = path.resolve(appDir, './bin/Release/published'); +const publishedAppDllName = path.basename(appDir) + '.dll'; if (!process.env.SKIP_PROJECT_GENERATION) { - generateProjectSync(appDir, { - framework: 'angular', - name: 'Test App', - tests: true - }); + generateProjectSync(appDir, 'angular'); publishProjectSync(appDir, publishedAppDir); + + // Clear out any artifacts produced during publishing so they don't affect + // the dev-mode application + rimraf.sync(path.join(appDir, 'ClientApp/dist')); + rimraf.sync(path.join(appDir, 'wwwroot/dist')); } function testBasicNavigation() { @@ -95,6 +98,6 @@ describe('Angular template: dev mode', () => { }); describe('Angular template: production mode', () => { - AspNetProcess.RunInMochaContext(publishedAppDir, AspNetCoreEnviroment.production, 'TestApp.dll'); + AspNetProcess.RunInMochaContext(publishedAppDir, AspNetCoreEnviroment.production, publishedAppDllName); testBasicNavigation(); }); \ No newline at end of file diff --git a/test/templates/util/dotnetnew.ts b/test/templates/util/dotnetnew.ts new file mode 100644 index 00000000..171607a5 --- /dev/null +++ b/test/templates/util/dotnetnew.ts @@ -0,0 +1,63 @@ +import * as childProcess from 'child_process'; +import * as fs from 'fs'; +import * as path from 'path'; +import * as rimraf from 'rimraf'; +import * as mkdirp from 'mkdirp'; + +const templatePackageName = 'Microsoft.DotNet.Web.Spa.ProjectTemplates'; +const templatePackageArtifactsDir = '../templates/package-builder/dist/artifacts'; + +export function generateProjectSync(targetDir: string, templateName: string) { + installTemplatePackage(targetDir, templatePackageName, templateName); + executeDotNetNewTemplateSync(targetDir, templateName); + executeCommand('npm install', /* quiet */ false, targetDir); +} + +function installTemplatePackage(targetDir: string, packageName: string, templateName: string) { + // First figure out which file is the latest one for this package + const packagePaths = fs.readdirSync(templatePackageArtifactsDir) + .filter(name => name.startsWith(templatePackageName + '.')) + .filter(name => path.extname(name) === '.nupkg') + .map(name => path.join(templatePackageArtifactsDir, name)) + .sort(); + const latestPackagePath = packagePaths[packagePaths.length - 1]; + + if (!latestPackagePath) { + throw new Error(`Could not find ${packageName}.*.nupkg in directory ${templatePackageArtifactsDir}`); + } + + // Uninstall any older version so we can be sure the new one did install + try { + console.log(`Uninstalling any prior version of ${packageName}...`); + executeCommand(`dotnet new --uninstall ${packageName}`, /* quiet */ true); + } catch (ex) { + // Either no prior version existed, or we failed to uninstall. We'll determine + // which it was next. + } + try { + console.log(`Verifying that no prior version of ${packageName} is still installed...`); + executeDotNetNewTemplateSync(targetDir, templateName, /* quiet */ true); + throw new Error(`Failed to uninstall template package ${packageName}. The template '${templateName}' was not removed as expected.`); + } catch (ex) { + // Looks like we successfully uninstalled it + console.log(`Confirmed that no prior version of ${templatePackageName} remains installed.`); + } + + // Now install the new version + console.log(`Installing new templates package at ${latestPackagePath}...`); + executeCommand(`dotnet new --install ${latestPackagePath}`, /* quiet */ true); +} + +function executeDotNetNewTemplateSync(targetDir: string, templateName: string, quiet?: boolean) { + rimraf.sync(targetDir); + mkdirp.sync(targetDir); + executeCommand(`dotnet new ${templateName}`, quiet, targetDir); +} + +function executeCommand(command: string, quiet?: boolean, cwd?: string) { + childProcess.execSync(command, { + cwd, + stdio: quiet ? null : 'inherit', + encoding: 'utf8' + }); +} diff --git a/test/templates/util/yeoman.ts b/test/templates/util/yeoman.ts deleted file mode 100644 index 12177fc7..00000000 --- a/test/templates/util/yeoman.ts +++ /dev/null @@ -1,52 +0,0 @@ -import * as childProcess from 'child_process'; -import * as path from 'path'; -import * as rimraf from 'rimraf'; -import * as mkdirp from 'mkdirp'; - -const generatorDirRelative = '../templates/package-builder/dist/generator-aspnetcore-spa'; -const yoPackageDirAbsolute = path.resolve('./node_modules/yo'); - -export interface GeneratorOptions { - framework: string; - name: string; - tests?: boolean; -} - -export function generateProjectSync(targetDir: string, generatorOptions: GeneratorOptions) { - const generatorDirAbsolute = path.resolve(generatorDirRelative); - console.log(`Running NPM install to prepare Yeoman generator at ${ generatorDirAbsolute }`); - childProcess.execSync(`npm install`, { stdio: 'inherit', cwd: generatorDirAbsolute }); - - console.log(`Ensuring empty output directory at ${ targetDir }`); - rimraf.sync(targetDir); - mkdirp.sync(targetDir); - - const yoExecutableAbsolute = findYeomanCliScript(); - console.log(`Will invoke Yeoman at ${ yoExecutableAbsolute } to generate application in ${ targetDir } with options:`); - console.log(JSON.stringify(generatorOptions, null, 2)); - const command = `node "${ yoExecutableAbsolute }" "${ path.resolve(generatorDirAbsolute, './app/index.js') }"`; - const args = makeYeomanCommandLineArgs(generatorOptions); - childProcess.execSync(`${ command } ${ args }`, { - stdio: 'inherit', - cwd: targetDir - }); -} - -function findYeomanCliScript() { - // On Windows, you can't invoke ./node_modules/.bin/yo from the shell for some reason. - // So instead, we'll locate the CLI entrypoint that yeoman would expose if it was installed globally. - const yeomanPackageJsonPath = path.join(yoPackageDirAbsolute, './package.json'); - const yeomanPackageJson = require(yeomanPackageJsonPath); - const yeomanCliScriptRelative = yeomanPackageJson.bin.yo; - if (!yeomanCliScriptRelative) { - throw new Error(`Could not find Yeoman CLI script. Looked for a bin/yo entry in ${ yeomanPackageJsonPath }`); - } - - return path.join(yoPackageDirAbsolute, yeomanCliScriptRelative); -} - -function makeYeomanCommandLineArgs(generatorOptions: GeneratorOptions) { - return Object.getOwnPropertyNames(generatorOptions) - .map(key => `--${ key }="${ generatorOptions[key] }"`) - .join(' '); -} From ad758b10601a7ef188cefb6c072016d63174442b Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Tue, 22 Aug 2017 16:20:25 -0700 Subject: [PATCH 013/195] Update AppVeyor config to remove Yeoman artifact reference --- appveyor.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index f4cfc668..00f7bb63 100755 --- a/appveyor.yml +++ b/appveyor.yml @@ -18,8 +18,6 @@ build_script: - npm run build - ps: Pop-Location artifacts: - - path: templates\package-builder\dist\artifacts\generator-aspnetcore-spa.tar.gz - name: generator-aspnetcore-spa - path: templates\package-builder\dist\artifacts\*.nupkg name: Microsoft.AspNetCore.SpaTemplates type: NuGetPackage From 900e9ca835c77e347b10ebf619706f7b88401df7 Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Tue, 22 Aug 2017 17:11:02 -0700 Subject: [PATCH 014/195] Add deprecation notice to Yeoman package --- templates/package-builder/src/yeoman/.gitignore | 1 + templates/package-builder/src/yeoman/README.md | 4 ++-- templates/package-builder/src/yeoman/app/index.js | 15 +++++++++++++++ templates/package-builder/src/yeoman/package.json | 7 +++++++ 4 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 templates/package-builder/src/yeoman/.gitignore create mode 100644 templates/package-builder/src/yeoman/app/index.js diff --git a/templates/package-builder/src/yeoman/.gitignore b/templates/package-builder/src/yeoman/.gitignore new file mode 100644 index 00000000..07e6e472 --- /dev/null +++ b/templates/package-builder/src/yeoman/.gitignore @@ -0,0 +1 @@ +/node_modules diff --git a/templates/package-builder/src/yeoman/README.md b/templates/package-builder/src/yeoman/README.md index a64e1f90..549f7cf0 100644 --- a/templates/package-builder/src/yeoman/README.md +++ b/templates/package-builder/src/yeoman/README.md @@ -1,4 +1,4 @@ -# Please use "dotnet new" templates instead +## Please use "dotnet new" templates instead As of .NET Core 2.0, it's no longer necessary to use Yeoman to create new Single-Page Application projects. @@ -10,6 +10,6 @@ Using the .NET Core 2.0 SDK, you can run any of the following commands in an emp Or, if you want to create an Aurelia, Knockout, or Vue application, you should run `dotnet new --install Microsoft.AspNetCore.SpaTemplates::*` first. This will add `aurelia`, `knockout`, and `vue` templates to `dotnet new`. -#### This Yeoman generator is DEPRECATED +### This Yeoman generator is DEPRECATED Please don't use `generator-aspnetcore-spa` to create new projects. Its output is outdated and no longer maintained. Instead, use `dotnet new` as described above (or if you're on Windows and use Visual Studio, you can just use *File->New Project* to create Angular, React, or React+Redux projects). diff --git a/templates/package-builder/src/yeoman/app/index.js b/templates/package-builder/src/yeoman/app/index.js new file mode 100644 index 00000000..bcddcc5f --- /dev/null +++ b/templates/package-builder/src/yeoman/app/index.js @@ -0,0 +1,15 @@ +var Generator = require('yeoman-generator'); +var fs = require('fs'); +var path = require('path'); +var marked = require('marked'); +var TerminalRenderer = require('marked-terminal'); + +marked.setOptions({ renderer: new TerminalRenderer() }); + +module.exports = class extends Generator { + run() { + // Just display deprecation notice from README.md + const readmePath = path.join(__dirname, '../README.md'); + console.log(marked(fs.readFileSync(readmePath, 'utf8'))); + } +}; diff --git a/templates/package-builder/src/yeoman/package.json b/templates/package-builder/src/yeoman/package.json index 7cbccd53..252f1aec 100644 --- a/templates/package-builder/src/yeoman/package.json +++ b/templates/package-builder/src/yeoman/package.json @@ -4,6 +4,10 @@ "description": "DEPRECATED. Do not use. Use 'dotnet new' to create ASP.NET Core Single-Page Application projects instead.", "author": "Microsoft", "license": "Apache-2.0", + "files": [ + "app", + "README.md" + ], "keywords": [ "yeoman-generator" ], @@ -15,5 +19,8 @@ "url": "https://github.com/aspnet/JavaScriptServices.git" }, "dependencies": { + "marked": "^0.3.6", + "marked-terminal": "^2.0.0", + "yeoman-generator": "^1.0.0" } } From 7c52be5e42df10973e54b0a4110d27ce235adf91 Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Tue, 22 Aug 2017 18:06:48 -0700 Subject: [PATCH 015/195] Stop generating .template.config files dynamically. Convert them to plain files on disk. --- .../.template.config/dotnetcli.host.json | 17 +++ .../AngularSpa/.template.config/template.json | 87 +++++++++++ .../.template.config/vs-2017.3.host.json | 20 +++ .../.template.config/dotnetcli.host.json | 17 +++ .../AureliaSpa/.template.config/template.json | 87 +++++++++++ .../.template.config/vs-2017.3.host.json | 20 +++ .../.template.config/dotnetcli.host.json | 17 +++ .../.template.config/template.json | 87 +++++++++++ .../.template.config/vs-2017.3.host.json | 20 +++ .../.template.config/dotnetcli.host.json | 17 +++ .../.template.config/template.json | 87 +++++++++++ .../.template.config/vs-2017.3.host.json | 20 +++ .../.template.config/dotnetcli.host.json | 17 +++ .../ReactSpa/.template.config/template.json | 87 +++++++++++ .../.template.config/vs-2017.3.host.json | 20 +++ .../.template.config/dotnetcli.host.json | 17 +++ .../VueSpa/.template.config/template.json | 87 +++++++++++ .../.template.config/vs-2017.3.host.json | 20 +++ templates/package-builder/src/build/build.ts | 142 +----------------- 19 files changed, 750 insertions(+), 136 deletions(-) create mode 100644 templates/AngularSpa/.template.config/dotnetcli.host.json create mode 100644 templates/AngularSpa/.template.config/template.json create mode 100644 templates/AngularSpa/.template.config/vs-2017.3.host.json create mode 100644 templates/AureliaSpa/.template.config/dotnetcli.host.json create mode 100644 templates/AureliaSpa/.template.config/template.json create mode 100644 templates/AureliaSpa/.template.config/vs-2017.3.host.json create mode 100644 templates/KnockoutSpa/.template.config/dotnetcli.host.json create mode 100644 templates/KnockoutSpa/.template.config/template.json create mode 100644 templates/KnockoutSpa/.template.config/vs-2017.3.host.json create mode 100644 templates/ReactReduxSpa/.template.config/dotnetcli.host.json create mode 100644 templates/ReactReduxSpa/.template.config/template.json create mode 100644 templates/ReactReduxSpa/.template.config/vs-2017.3.host.json create mode 100644 templates/ReactSpa/.template.config/dotnetcli.host.json create mode 100644 templates/ReactSpa/.template.config/template.json create mode 100644 templates/ReactSpa/.template.config/vs-2017.3.host.json create mode 100644 templates/VueSpa/.template.config/dotnetcli.host.json create mode 100644 templates/VueSpa/.template.config/template.json create mode 100644 templates/VueSpa/.template.config/vs-2017.3.host.json diff --git a/templates/AngularSpa/.template.config/dotnetcli.host.json b/templates/AngularSpa/.template.config/dotnetcli.host.json new file mode 100644 index 00000000..c15c6681 --- /dev/null +++ b/templates/AngularSpa/.template.config/dotnetcli.host.json @@ -0,0 +1,17 @@ +{ + "$schema": "http://json.schemastore.org/dotnetcli.host", + "symbolInfo": { + "TargetFrameworkOverride": { + "isHidden": "true", + "longName": "target-framework-override", + "shortName": "" + }, + "Framework": { + "longName": "framework" + }, + "skipRestore": { + "longName": "no-restore", + "shortName": "" + } + } +} \ No newline at end of file diff --git a/templates/AngularSpa/.template.config/template.json b/templates/AngularSpa/.template.config/template.json new file mode 100644 index 00000000..179a495b --- /dev/null +++ b/templates/AngularSpa/.template.config/template.json @@ -0,0 +1,87 @@ +{ + "author": "Microsoft", + "classifications": [ + "Web", + "MVC", + "SPA" + ], + "groupIdentity": "Microsoft.DotNet.Web.Spa.ProjectTemplates.Angular", + "identity": "Microsoft.DotNet.Web.Spa.ProjectTemplates.Angular.CSharp", + "name": "ASP.NET Core with Angular", + "preferNameDirectory": true, + "primaryOutputs": [ + { + "path": "WebApplicationBasic.csproj" + } + ], + "shortName": "angular", + "sourceName": "WebApplicationBasic", + "sources": [ + { + "source": "./", + "target": "./", + "exclude": [ + ".template.config/**" + ] + } + ], + "symbols": { + "TargetFrameworkOverride": { + "type": "parameter", + "description": "Overrides the target framework", + "replaces": "TargetFrameworkOverride", + "datatype": "string", + "defaultValue": "" + }, + "Framework": { + "type": "parameter", + "description": "The target framework for the project.", + "datatype": "choice", + "choices": [ + { + "choice": "netcoreapp2.0", + "description": "Target netcoreapp2.0" + } + ], + "replaces": "netcoreapp2.0", + "defaultValue": "netcoreapp2.0" + }, + "HostIdentifier": { + "type": "bind", + "binding": "HostIdentifier" + }, + "skipRestore": { + "type": "parameter", + "datatype": "bool", + "description": "If specified, skips the automatic restore of the project on create.", + "defaultValue": "false" + } + }, + "tags": { + "language": "C#", + "type": "project" + }, + "postActions": [ + { + "condition": "(!skipRestore)", + "description": "Restore NuGet packages required by this project.", + "manualInstructions": [ + { + "text": "Run 'dotnet restore'" + } + ], + "actionId": "210D431B-A78B-4D2F-B762-4ED3E3EA9025", + "continueOnError": true + }, + { + "condition": "(HostIdentifier == \"dotnetcli\" || HostIdentifier == \"dotnetcli-preview\")", + "actionId": "AC1156F7-BB77-4DB8-B28F-24EEBCCA1E5C", + "description": "\n\n-------------------------------------------------------------------\nIMPORTANT: Before running this project on the command line,\n you must restore NPM packages by running \"npm install\"\n-------------------------------------------------------------------\n", + "manualInstructions": [ + { + "text": "Run \"npm install\"" + } + ] + } + ] +} \ No newline at end of file diff --git a/templates/AngularSpa/.template.config/vs-2017.3.host.json b/templates/AngularSpa/.template.config/vs-2017.3.host.json new file mode 100644 index 00000000..c260ba3c --- /dev/null +++ b/templates/AngularSpa/.template.config/vs-2017.3.host.json @@ -0,0 +1,20 @@ +{ + "$schema": "http://json.schemastore.org/vs-2017.3.host", + "name": { + "text": "Angular", + "package": "{0CD94836-1526-4E85-87D3-FB5274C5AFC9}", + "id": "1100" + }, + "description": { + "text": "A project template for creating an ASP.NET Core application with Angular", + "package": "{0CD94836-1526-4E85-87D3-FB5274C5AFC9}", + "id": "1101" + }, + "order": 301, + "icon": "icon.png", + "learnMoreLink": "https://github.com/aspnet/JavaScriptServices", + "uiFilters": [ + "oneaspnet" + ], + "minFullFrameworkVersion": "4.6.1" +} \ No newline at end of file diff --git a/templates/AureliaSpa/.template.config/dotnetcli.host.json b/templates/AureliaSpa/.template.config/dotnetcli.host.json new file mode 100644 index 00000000..c15c6681 --- /dev/null +++ b/templates/AureliaSpa/.template.config/dotnetcli.host.json @@ -0,0 +1,17 @@ +{ + "$schema": "http://json.schemastore.org/dotnetcli.host", + "symbolInfo": { + "TargetFrameworkOverride": { + "isHidden": "true", + "longName": "target-framework-override", + "shortName": "" + }, + "Framework": { + "longName": "framework" + }, + "skipRestore": { + "longName": "no-restore", + "shortName": "" + } + } +} \ No newline at end of file diff --git a/templates/AureliaSpa/.template.config/template.json b/templates/AureliaSpa/.template.config/template.json new file mode 100644 index 00000000..5c2277b3 --- /dev/null +++ b/templates/AureliaSpa/.template.config/template.json @@ -0,0 +1,87 @@ +{ + "author": "Microsoft", + "classifications": [ + "Web", + "MVC", + "SPA" + ], + "groupIdentity": "Microsoft.AspNetCore.SpaTemplates.Aurelia", + "identity": "Microsoft.AspNetCore.SpaTemplates.Aurelia.CSharp", + "name": "ASP.NET Core with Aurelia", + "preferNameDirectory": true, + "primaryOutputs": [ + { + "path": "WebApplicationBasic.csproj" + } + ], + "shortName": "aurelia", + "sourceName": "WebApplicationBasic", + "sources": [ + { + "source": "./", + "target": "./", + "exclude": [ + ".template.config/**" + ] + } + ], + "symbols": { + "TargetFrameworkOverride": { + "type": "parameter", + "description": "Overrides the target framework", + "replaces": "TargetFrameworkOverride", + "datatype": "string", + "defaultValue": "" + }, + "Framework": { + "type": "parameter", + "description": "The target framework for the project.", + "datatype": "choice", + "choices": [ + { + "choice": "netcoreapp2.0", + "description": "Target netcoreapp2.0" + } + ], + "replaces": "netcoreapp2.0", + "defaultValue": "netcoreapp2.0" + }, + "HostIdentifier": { + "type": "bind", + "binding": "HostIdentifier" + }, + "skipRestore": { + "type": "parameter", + "datatype": "bool", + "description": "If specified, skips the automatic restore of the project on create.", + "defaultValue": "false" + } + }, + "tags": { + "language": "C#", + "type": "project" + }, + "postActions": [ + { + "condition": "(!skipRestore)", + "description": "Restore NuGet packages required by this project.", + "manualInstructions": [ + { + "text": "Run 'dotnet restore'" + } + ], + "actionId": "210D431B-A78B-4D2F-B762-4ED3E3EA9025", + "continueOnError": true + }, + { + "condition": "(HostIdentifier == \"dotnetcli\" || HostIdentifier == \"dotnetcli-preview\")", + "actionId": "AC1156F7-BB77-4DB8-B28F-24EEBCCA1E5C", + "description": "\n\n-------------------------------------------------------------------\nIMPORTANT: Before running this project on the command line,\n you must restore NPM packages by running \"npm install\"\n-------------------------------------------------------------------\n", + "manualInstructions": [ + { + "text": "Run \"npm install\"" + } + ] + } + ] +} \ No newline at end of file diff --git a/templates/AureliaSpa/.template.config/vs-2017.3.host.json b/templates/AureliaSpa/.template.config/vs-2017.3.host.json new file mode 100644 index 00000000..18e8697a --- /dev/null +++ b/templates/AureliaSpa/.template.config/vs-2017.3.host.json @@ -0,0 +1,20 @@ +{ + "$schema": "http://json.schemastore.org/vs-2017.3.host", + "name": { + "text": "Aurelia", + "package": "{0CD94836-1526-4E85-87D3-FB5274C5AFC9}", + "id": "1200" + }, + "description": { + "text": "A project template for creating an ASP.NET Core application with Aurelia", + "package": "{0CD94836-1526-4E85-87D3-FB5274C5AFC9}", + "id": "1201" + }, + "order": 301, + "icon": "icon.png", + "learnMoreLink": "https://github.com/aspnet/JavaScriptServices", + "uiFilters": [ + "oneaspnet" + ], + "minFullFrameworkVersion": "4.6.1" +} \ No newline at end of file diff --git a/templates/KnockoutSpa/.template.config/dotnetcli.host.json b/templates/KnockoutSpa/.template.config/dotnetcli.host.json new file mode 100644 index 00000000..c15c6681 --- /dev/null +++ b/templates/KnockoutSpa/.template.config/dotnetcli.host.json @@ -0,0 +1,17 @@ +{ + "$schema": "http://json.schemastore.org/dotnetcli.host", + "symbolInfo": { + "TargetFrameworkOverride": { + "isHidden": "true", + "longName": "target-framework-override", + "shortName": "" + }, + "Framework": { + "longName": "framework" + }, + "skipRestore": { + "longName": "no-restore", + "shortName": "" + } + } +} \ No newline at end of file diff --git a/templates/KnockoutSpa/.template.config/template.json b/templates/KnockoutSpa/.template.config/template.json new file mode 100644 index 00000000..a9e8dd43 --- /dev/null +++ b/templates/KnockoutSpa/.template.config/template.json @@ -0,0 +1,87 @@ +{ + "author": "Microsoft", + "classifications": [ + "Web", + "MVC", + "SPA" + ], + "groupIdentity": "Microsoft.AspNetCore.SpaTemplates.Knockout", + "identity": "Microsoft.AspNetCore.SpaTemplates.Knockout.CSharp", + "name": "ASP.NET Core with Knockout.js", + "preferNameDirectory": true, + "primaryOutputs": [ + { + "path": "WebApplicationBasic.csproj" + } + ], + "shortName": "knockout", + "sourceName": "WebApplicationBasic", + "sources": [ + { + "source": "./", + "target": "./", + "exclude": [ + ".template.config/**" + ] + } + ], + "symbols": { + "TargetFrameworkOverride": { + "type": "parameter", + "description": "Overrides the target framework", + "replaces": "TargetFrameworkOverride", + "datatype": "string", + "defaultValue": "" + }, + "Framework": { + "type": "parameter", + "description": "The target framework for the project.", + "datatype": "choice", + "choices": [ + { + "choice": "netcoreapp2.0", + "description": "Target netcoreapp2.0" + } + ], + "replaces": "netcoreapp2.0", + "defaultValue": "netcoreapp2.0" + }, + "HostIdentifier": { + "type": "bind", + "binding": "HostIdentifier" + }, + "skipRestore": { + "type": "parameter", + "datatype": "bool", + "description": "If specified, skips the automatic restore of the project on create.", + "defaultValue": "false" + } + }, + "tags": { + "language": "C#", + "type": "project" + }, + "postActions": [ + { + "condition": "(!skipRestore)", + "description": "Restore NuGet packages required by this project.", + "manualInstructions": [ + { + "text": "Run 'dotnet restore'" + } + ], + "actionId": "210D431B-A78B-4D2F-B762-4ED3E3EA9025", + "continueOnError": true + }, + { + "condition": "(HostIdentifier == \"dotnetcli\" || HostIdentifier == \"dotnetcli-preview\")", + "actionId": "AC1156F7-BB77-4DB8-B28F-24EEBCCA1E5C", + "description": "\n\n-------------------------------------------------------------------\nIMPORTANT: Before running this project on the command line,\n you must restore NPM packages by running \"npm install\"\n-------------------------------------------------------------------\n", + "manualInstructions": [ + { + "text": "Run \"npm install\"" + } + ] + } + ] +} \ No newline at end of file diff --git a/templates/KnockoutSpa/.template.config/vs-2017.3.host.json b/templates/KnockoutSpa/.template.config/vs-2017.3.host.json new file mode 100644 index 00000000..7ce1189f --- /dev/null +++ b/templates/KnockoutSpa/.template.config/vs-2017.3.host.json @@ -0,0 +1,20 @@ +{ + "$schema": "http://json.schemastore.org/vs-2017.3.host", + "name": { + "text": "Knockout.js", + "package": "{0CD94836-1526-4E85-87D3-FB5274C5AFC9}", + "id": "1300" + }, + "description": { + "text": "A project template for creating an ASP.NET Core application with Knockout.js", + "package": "{0CD94836-1526-4E85-87D3-FB5274C5AFC9}", + "id": "1301" + }, + "order": 301, + "icon": "icon.png", + "learnMoreLink": "https://github.com/aspnet/JavaScriptServices", + "uiFilters": [ + "oneaspnet" + ], + "minFullFrameworkVersion": "4.6.1" +} \ No newline at end of file diff --git a/templates/ReactReduxSpa/.template.config/dotnetcli.host.json b/templates/ReactReduxSpa/.template.config/dotnetcli.host.json new file mode 100644 index 00000000..c15c6681 --- /dev/null +++ b/templates/ReactReduxSpa/.template.config/dotnetcli.host.json @@ -0,0 +1,17 @@ +{ + "$schema": "http://json.schemastore.org/dotnetcli.host", + "symbolInfo": { + "TargetFrameworkOverride": { + "isHidden": "true", + "longName": "target-framework-override", + "shortName": "" + }, + "Framework": { + "longName": "framework" + }, + "skipRestore": { + "longName": "no-restore", + "shortName": "" + } + } +} \ No newline at end of file diff --git a/templates/ReactReduxSpa/.template.config/template.json b/templates/ReactReduxSpa/.template.config/template.json new file mode 100644 index 00000000..0dc06ba6 --- /dev/null +++ b/templates/ReactReduxSpa/.template.config/template.json @@ -0,0 +1,87 @@ +{ + "author": "Microsoft", + "classifications": [ + "Web", + "MVC", + "SPA" + ], + "groupIdentity": "Microsoft.DotNet.Web.Spa.ProjectTemplates.ReactRedux", + "identity": "Microsoft.DotNet.Web.Spa.ProjectTemplates.ReactRedux.CSharp", + "name": "ASP.NET Core with React.js and Redux", + "preferNameDirectory": true, + "primaryOutputs": [ + { + "path": "WebApplicationBasic.csproj" + } + ], + "shortName": "reactredux", + "sourceName": "WebApplicationBasic", + "sources": [ + { + "source": "./", + "target": "./", + "exclude": [ + ".template.config/**" + ] + } + ], + "symbols": { + "TargetFrameworkOverride": { + "type": "parameter", + "description": "Overrides the target framework", + "replaces": "TargetFrameworkOverride", + "datatype": "string", + "defaultValue": "" + }, + "Framework": { + "type": "parameter", + "description": "The target framework for the project.", + "datatype": "choice", + "choices": [ + { + "choice": "netcoreapp2.0", + "description": "Target netcoreapp2.0" + } + ], + "replaces": "netcoreapp2.0", + "defaultValue": "netcoreapp2.0" + }, + "HostIdentifier": { + "type": "bind", + "binding": "HostIdentifier" + }, + "skipRestore": { + "type": "parameter", + "datatype": "bool", + "description": "If specified, skips the automatic restore of the project on create.", + "defaultValue": "false" + } + }, + "tags": { + "language": "C#", + "type": "project" + }, + "postActions": [ + { + "condition": "(!skipRestore)", + "description": "Restore NuGet packages required by this project.", + "manualInstructions": [ + { + "text": "Run 'dotnet restore'" + } + ], + "actionId": "210D431B-A78B-4D2F-B762-4ED3E3EA9025", + "continueOnError": true + }, + { + "condition": "(HostIdentifier == \"dotnetcli\" || HostIdentifier == \"dotnetcli-preview\")", + "actionId": "AC1156F7-BB77-4DB8-B28F-24EEBCCA1E5C", + "description": "\n\n-------------------------------------------------------------------\nIMPORTANT: Before running this project on the command line,\n you must restore NPM packages by running \"npm install\"\n-------------------------------------------------------------------\n", + "manualInstructions": [ + { + "text": "Run \"npm install\"" + } + ] + } + ] +} \ No newline at end of file diff --git a/templates/ReactReduxSpa/.template.config/vs-2017.3.host.json b/templates/ReactReduxSpa/.template.config/vs-2017.3.host.json new file mode 100644 index 00000000..02f9d521 --- /dev/null +++ b/templates/ReactReduxSpa/.template.config/vs-2017.3.host.json @@ -0,0 +1,20 @@ +{ + "$schema": "http://json.schemastore.org/vs-2017.3.host", + "name": { + "text": "React.js and Redux", + "package": "{0CD94836-1526-4E85-87D3-FB5274C5AFC9}", + "id": "1400" + }, + "description": { + "text": "A project template for creating an ASP.NET Core application with React.js and Redux", + "package": "{0CD94836-1526-4E85-87D3-FB5274C5AFC9}", + "id": "1401" + }, + "order": 301, + "icon": "icon.png", + "learnMoreLink": "https://github.com/aspnet/JavaScriptServices", + "uiFilters": [ + "oneaspnet" + ], + "minFullFrameworkVersion": "4.6.1" +} \ No newline at end of file diff --git a/templates/ReactSpa/.template.config/dotnetcli.host.json b/templates/ReactSpa/.template.config/dotnetcli.host.json new file mode 100644 index 00000000..c15c6681 --- /dev/null +++ b/templates/ReactSpa/.template.config/dotnetcli.host.json @@ -0,0 +1,17 @@ +{ + "$schema": "http://json.schemastore.org/dotnetcli.host", + "symbolInfo": { + "TargetFrameworkOverride": { + "isHidden": "true", + "longName": "target-framework-override", + "shortName": "" + }, + "Framework": { + "longName": "framework" + }, + "skipRestore": { + "longName": "no-restore", + "shortName": "" + } + } +} \ No newline at end of file diff --git a/templates/ReactSpa/.template.config/template.json b/templates/ReactSpa/.template.config/template.json new file mode 100644 index 00000000..9aaf30f1 --- /dev/null +++ b/templates/ReactSpa/.template.config/template.json @@ -0,0 +1,87 @@ +{ + "author": "Microsoft", + "classifications": [ + "Web", + "MVC", + "SPA" + ], + "groupIdentity": "Microsoft.DotNet.Web.Spa.ProjectTemplates.React", + "identity": "Microsoft.DotNet.Web.Spa.ProjectTemplates.React.CSharp", + "name": "ASP.NET Core with React.js", + "preferNameDirectory": true, + "primaryOutputs": [ + { + "path": "WebApplicationBasic.csproj" + } + ], + "shortName": "react", + "sourceName": "WebApplicationBasic", + "sources": [ + { + "source": "./", + "target": "./", + "exclude": [ + ".template.config/**" + ] + } + ], + "symbols": { + "TargetFrameworkOverride": { + "type": "parameter", + "description": "Overrides the target framework", + "replaces": "TargetFrameworkOverride", + "datatype": "string", + "defaultValue": "" + }, + "Framework": { + "type": "parameter", + "description": "The target framework for the project.", + "datatype": "choice", + "choices": [ + { + "choice": "netcoreapp2.0", + "description": "Target netcoreapp2.0" + } + ], + "replaces": "netcoreapp2.0", + "defaultValue": "netcoreapp2.0" + }, + "HostIdentifier": { + "type": "bind", + "binding": "HostIdentifier" + }, + "skipRestore": { + "type": "parameter", + "datatype": "bool", + "description": "If specified, skips the automatic restore of the project on create.", + "defaultValue": "false" + } + }, + "tags": { + "language": "C#", + "type": "project" + }, + "postActions": [ + { + "condition": "(!skipRestore)", + "description": "Restore NuGet packages required by this project.", + "manualInstructions": [ + { + "text": "Run 'dotnet restore'" + } + ], + "actionId": "210D431B-A78B-4D2F-B762-4ED3E3EA9025", + "continueOnError": true + }, + { + "condition": "(HostIdentifier == \"dotnetcli\" || HostIdentifier == \"dotnetcli-preview\")", + "actionId": "AC1156F7-BB77-4DB8-B28F-24EEBCCA1E5C", + "description": "\n\n-------------------------------------------------------------------\nIMPORTANT: Before running this project on the command line,\n you must restore NPM packages by running \"npm install\"\n-------------------------------------------------------------------\n", + "manualInstructions": [ + { + "text": "Run \"npm install\"" + } + ] + } + ] +} \ No newline at end of file diff --git a/templates/ReactSpa/.template.config/vs-2017.3.host.json b/templates/ReactSpa/.template.config/vs-2017.3.host.json new file mode 100644 index 00000000..f77016a3 --- /dev/null +++ b/templates/ReactSpa/.template.config/vs-2017.3.host.json @@ -0,0 +1,20 @@ +{ + "$schema": "http://json.schemastore.org/vs-2017.3.host", + "name": { + "text": "React.js", + "package": "{0CD94836-1526-4E85-87D3-FB5274C5AFC9}", + "id": "1500" + }, + "description": { + "text": "A project template for creating an ASP.NET Core application with React.js", + "package": "{0CD94836-1526-4E85-87D3-FB5274C5AFC9}", + "id": "1501" + }, + "order": 301, + "icon": "icon.png", + "learnMoreLink": "https://github.com/aspnet/JavaScriptServices", + "uiFilters": [ + "oneaspnet" + ], + "minFullFrameworkVersion": "4.6.1" +} \ No newline at end of file diff --git a/templates/VueSpa/.template.config/dotnetcli.host.json b/templates/VueSpa/.template.config/dotnetcli.host.json new file mode 100644 index 00000000..c15c6681 --- /dev/null +++ b/templates/VueSpa/.template.config/dotnetcli.host.json @@ -0,0 +1,17 @@ +{ + "$schema": "http://json.schemastore.org/dotnetcli.host", + "symbolInfo": { + "TargetFrameworkOverride": { + "isHidden": "true", + "longName": "target-framework-override", + "shortName": "" + }, + "Framework": { + "longName": "framework" + }, + "skipRestore": { + "longName": "no-restore", + "shortName": "" + } + } +} \ No newline at end of file diff --git a/templates/VueSpa/.template.config/template.json b/templates/VueSpa/.template.config/template.json new file mode 100644 index 00000000..2986930f --- /dev/null +++ b/templates/VueSpa/.template.config/template.json @@ -0,0 +1,87 @@ +{ + "author": "Microsoft", + "classifications": [ + "Web", + "MVC", + "SPA" + ], + "groupIdentity": "Microsoft.AspNetCore.SpaTemplates.Vue", + "identity": "Microsoft.AspNetCore.SpaTemplates.Vue.CSharp", + "name": "ASP.NET Core with Vue.js", + "preferNameDirectory": true, + "primaryOutputs": [ + { + "path": "WebApplicationBasic.csproj" + } + ], + "shortName": "vue", + "sourceName": "WebApplicationBasic", + "sources": [ + { + "source": "./", + "target": "./", + "exclude": [ + ".template.config/**" + ] + } + ], + "symbols": { + "TargetFrameworkOverride": { + "type": "parameter", + "description": "Overrides the target framework", + "replaces": "TargetFrameworkOverride", + "datatype": "string", + "defaultValue": "" + }, + "Framework": { + "type": "parameter", + "description": "The target framework for the project.", + "datatype": "choice", + "choices": [ + { + "choice": "netcoreapp2.0", + "description": "Target netcoreapp2.0" + } + ], + "replaces": "netcoreapp2.0", + "defaultValue": "netcoreapp2.0" + }, + "HostIdentifier": { + "type": "bind", + "binding": "HostIdentifier" + }, + "skipRestore": { + "type": "parameter", + "datatype": "bool", + "description": "If specified, skips the automatic restore of the project on create.", + "defaultValue": "false" + } + }, + "tags": { + "language": "C#", + "type": "project" + }, + "postActions": [ + { + "condition": "(!skipRestore)", + "description": "Restore NuGet packages required by this project.", + "manualInstructions": [ + { + "text": "Run 'dotnet restore'" + } + ], + "actionId": "210D431B-A78B-4D2F-B762-4ED3E3EA9025", + "continueOnError": true + }, + { + "condition": "(HostIdentifier == \"dotnetcli\" || HostIdentifier == \"dotnetcli-preview\")", + "actionId": "AC1156F7-BB77-4DB8-B28F-24EEBCCA1E5C", + "description": "\n\n-------------------------------------------------------------------\nIMPORTANT: Before running this project on the command line,\n you must restore NPM packages by running \"npm install\"\n-------------------------------------------------------------------\n", + "manualInstructions": [ + { + "text": "Run \"npm install\"" + } + ] + } + ] +} \ No newline at end of file diff --git a/templates/VueSpa/.template.config/vs-2017.3.host.json b/templates/VueSpa/.template.config/vs-2017.3.host.json new file mode 100644 index 00000000..9b9b6a5f --- /dev/null +++ b/templates/VueSpa/.template.config/vs-2017.3.host.json @@ -0,0 +1,20 @@ +{ + "$schema": "http://json.schemastore.org/vs-2017.3.host", + "name": { + "text": "Vue.js", + "package": "{0CD94836-1526-4E85-87D3-FB5274C5AFC9}", + "id": "1600" + }, + "description": { + "text": "A project template for creating an ASP.NET Core application with Vue.js", + "package": "{0CD94836-1526-4E85-87D3-FB5274C5AFC9}", + "id": "1601" + }, + "order": 301, + "icon": "icon.png", + "learnMoreLink": "https://github.com/aspnet/JavaScriptServices", + "uiFilters": [ + "oneaspnet" + ], + "minFullFrameworkVersion": "4.6.1" +} \ No newline at end of file diff --git a/templates/package-builder/src/build/build.ts b/templates/package-builder/src/build/build.ts index c0827deb..d234bfc3 100644 --- a/templates/package-builder/src/build/build.ts +++ b/templates/package-builder/src/build/build.ts @@ -10,7 +10,6 @@ import * as targz from 'tar.gz'; const isWindows = /^win/.test(process.platform); const textFileExtensions = ['.gitignore', 'template_gitignore', '.config', '.cs', '.cshtml', '.csproj', '.html', '.js', '.json', '.jsx', '.md', '.nuspec', '.ts', '.tsx']; -const webToolsVSPackageGuid = '{0CD94836-1526-4E85-87D3-FB5274C5AFC9}'; const dotNetPackages = { builtIn: 'Microsoft.DotNet.Web.Spa.ProjectTemplates', @@ -19,19 +18,16 @@ const dotNetPackages = { interface TemplateConfig { dir: string; - dotNetNewId: string; dotNetPackageId: string; - displayName: string; - localizationIdStart: number; } const templates: { [key: string]: TemplateConfig } = { - 'angular': { dotNetPackageId: dotNetPackages.builtIn, dir: '../../templates/AngularSpa/', dotNetNewId: 'Angular', displayName: 'Angular', localizationIdStart: 1100 }, - 'aurelia': { dotNetPackageId: dotNetPackages.extra, dir: '../../templates/AureliaSpa/', dotNetNewId: 'Aurelia', displayName: 'Aurelia', localizationIdStart: 1200 }, - 'knockout': { dotNetPackageId: dotNetPackages.extra, dir: '../../templates/KnockoutSpa/', dotNetNewId: 'Knockout', displayName: 'Knockout.js', localizationIdStart: 1300 }, - 'react-redux': { dotNetPackageId: dotNetPackages.builtIn, dir: '../../templates/ReactReduxSpa/', dotNetNewId: 'ReactRedux', displayName: 'React.js and Redux', localizationIdStart: 1400 }, - 'react': { dotNetPackageId: dotNetPackages.builtIn, dir: '../../templates/ReactSpa/', dotNetNewId: 'React', displayName: 'React.js', localizationIdStart: 1500 }, - 'vue': { dotNetPackageId: dotNetPackages.extra, dir: '../../templates/VueSpa/', dotNetNewId: 'Vue', displayName: 'Vue.js', localizationIdStart: 1600 } + 'angular': { dotNetPackageId: dotNetPackages.builtIn, dir: '../../templates/AngularSpa/' }, + 'aurelia': { dotNetPackageId: dotNetPackages.extra, dir: '../../templates/AureliaSpa/' }, + 'knockout': { dotNetPackageId: dotNetPackages.extra, dir: '../../templates/KnockoutSpa/' }, + 'react-redux': { dotNetPackageId: dotNetPackages.builtIn, dir: '../../templates/ReactReduxSpa/' }, + 'react': { dotNetPackageId: dotNetPackages.builtIn, dir: '../../templates/ReactSpa/' }, + 'vue': { dotNetPackageId: dotNetPackages.extra, dir: '../../templates/VueSpa/' } }; function isTextFile(filename: string): boolean { @@ -129,123 +125,6 @@ function buildDotNetNewNuGetPackage(packageId: string) { const templateOutputDir = path.join(outputRoot, 'Content', templateName); writeTemplate(templateConfig.dir, templateOutputDir, contentReplacements, filenameReplacements); - - // Add the .template.config dir and its contents - const templateConfigDir = path.join(templateOutputDir, '.template.config'); - mkdirp.sync(templateConfigDir); - - fs.writeFileSync(path.join(templateConfigDir, 'template.json'), JSON.stringify({ - author: 'Microsoft', - classifications: ['Web', 'MVC', 'SPA'], - groupIdentity: `${packageId}.${templateConfig.dotNetNewId}`, - identity: `${packageId}.${templateConfig.dotNetNewId}.CSharp`, - name: `ASP.NET Core with ${templateConfig.displayName}`, - preferNameDirectory: true, - primaryOutputs: [{ path: `${sourceProjectName}.csproj` }], - shortName: `${templateConfig.dotNetNewId.toLowerCase()}`, - sourceName: sourceProjectName, - sources: [{ - source: './', - target: './', - exclude: ['.template.config/**'] - }], - symbols: { - TargetFrameworkOverride: { - type: 'parameter', - description: 'Overrides the target framework', - replaces: 'TargetFrameworkOverride', - datatype: 'string', - defaultValue: '' - }, - Framework: { - type: 'parameter', - description: 'The target framework for the project.', - datatype: 'choice', - choices: [ - { - choice: 'netcoreapp2.0', - description: 'Target netcoreapp2.0' - } - ], - replaces: 'netcoreapp2.0', - defaultValue: 'netcoreapp2.0' - }, - HostIdentifier: { - type: 'bind', - binding: 'HostIdentifier' - }, - skipRestore: { - type: 'parameter', - datatype: 'bool', - description: 'If specified, skips the automatic restore of the project on create.', - defaultValue: 'false' - } - }, - tags: { language: 'C#', type: 'project' }, - postActions: [ - { - condition: '(!skipRestore)', - description: 'Restore NuGet packages required by this project.', - manualInstructions: [{ text: 'Run \'dotnet restore\'' }], - actionId: '210D431B-A78B-4D2F-B762-4ED3E3EA9025', - continueOnError: true - }, - /* - // Currently it doesn't appear to be possible to run `npm install` from a - // postAction, due to https://github.com/dotnet/templating/issues/849 - // We will re-enable this when that bug is fixed. - { - condition: '(!skipRestore)', - description: 'Restores NPM packages required by this project.', - manualInstructions: [{ text: 'Run \'npm install\'' }], - actionId: '3A7C4B45-1F5D-4A30-959A-51B88E82B5D2', - args: { executable: 'npm', args: 'install' }, - continueOnError: false - } - */ - { - // For the preview2 release, just display manual instructions instead. - // This is only applicable on the command line, because VS will restore - // NPM packages automatically by default. - condition: '(HostIdentifier == "dotnetcli" || HostIdentifier == "dotnetcli-preview")', - actionId: 'AC1156F7-BB77-4DB8-B28F-24EEBCCA1E5C', - description: '\n\n-------------------------------------------------------------------\nIMPORTANT: Before running this project on the command line,\n you must restore NPM packages by running "npm install"\n-------------------------------------------------------------------\n', - manualInstructions: [{ text: 'Run "npm install"' }] - } - ], - }, null, 2)); - - fs.writeFileSync(path.join(templateConfigDir, 'dotnetcli.host.json'), JSON.stringify({ - $schema: 'http://json.schemastore.org/dotnetcli.host', - symbolInfo: { - TargetFrameworkOverride: { - isHidden: 'true', - longName: 'target-framework-override', - shortName: '' - }, - Framework: { - longName: 'framework' - }, - skipRestore: { - longName: 'no-restore', - shortName: '' - }, - } - }, null, 2)); - - const localisedNameId = templateConfig.localizationIdStart + 0; - const localisedDescId = templateConfig.localizationIdStart + 1; - - fs.writeFileSync(path.join(templateConfigDir, 'vs-2017.3.host.json'), JSON.stringify({ - $schema: 'http://json.schemastore.org/vs-2017.3.host', - name: { text: templateConfig.displayName, package: webToolsVSPackageGuid, id: localisedNameId.toString() }, - description: { text: `A project template for creating an ASP.NET Core application with ${templateConfig.displayName}`, package: webToolsVSPackageGuid, id: localisedDescId.toString() }, - order: 301, - icon: 'icon.png', - learnMoreLink: 'https://github.com/aspnet/JavaScriptServices', - uiFilters: [ 'oneaspnet' ], - minFullFrameworkVersion: '4.6.1' - }, null, 2)); }); // Create the .nuspec file @@ -274,15 +153,6 @@ function buildDotNetNewNuGetPackage(packageId: string) { return glob.sync(path.join(outputRoot, './*.nupkg'))[0]; } -function runPrepublishScripts(rootDir: string, scripts: string[]) { - console.log(`[Prepublish] In directory: ${ rootDir }`); - scripts.forEach(script => { - console.log(`[Prepublish] Running: ${ script }`); - childProcess.execSync(script, { cwd: rootDir, stdio: 'inherit' }); - }); - console.log(`[Prepublish] Done`) -} - const distDir = './dist'; const artifactsDir = path.join(distDir, 'artifacts'); From 0291686b2056954c9aa7ea31ade261f43b3bd797 Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Wed, 23 Aug 2017 14:58:49 -0700 Subject: [PATCH 016/195] Reorganize templates into dir structure matching 'dotnet new' templates --- .gitignore | 10 ++--- .../.template.config/dotnetcli.host.json | 0 .../aurelia}/.template.config/icon.png | Bin .../aurelia}/.template.config/template.json | 0 .../.template.config/vs-2017.3.host.json | 0 .../Content/aurelia}/AureliaSpa.csproj | 0 .../ClientApp/app/components/app/app.css | 0 .../ClientApp/app/components/app/app.html | 0 .../ClientApp/app/components/app/app.ts | 0 .../app/components/counter/counter.html | 0 .../app/components/counter/counter.ts | 0 .../app/components/fetchdata/fetchdata.html | 0 .../app/components/fetchdata/fetchdata.ts | 0 .../ClientApp/app/components/home/home.html | 0 .../ClientApp/app/components/home/home.ts | 0 .../app/components/navmenu/navmenu.css | 0 .../app/components/navmenu/navmenu.html | 0 .../Content/aurelia}/ClientApp/boot.ts | 0 .../aurelia}/Controllers/HomeController.cs | 0 .../Controllers/SampleDataController.cs | 0 .../Content/aurelia}/Program.cs | 0 .../Content/aurelia}/Startup.cs | 0 .../Content/aurelia}/Views/Home/Index.cshtml | 0 .../aurelia}/Views/Shared/Error.cshtml | 0 .../aurelia}/Views/Shared/_Layout.cshtml | 0 .../aurelia}/Views/_ViewImports.cshtml | 0 .../Content/aurelia}/Views/_ViewStart.cshtml | 0 .../aurelia}/appsettings.Development.json | 0 .../Content/aurelia}/appsettings.json | 0 .../Content/aurelia}/npm-shrinkwrap.json | 0 .../Content/aurelia}/package.json | 0 .../Content/aurelia}/template_gitignore | 0 .../Content/aurelia}/tsconfig.json | 0 .../Content/aurelia}/webpack.config.js | 0 .../Content/aurelia}/webpack.config.vendor.js | 0 .../Content/aurelia}/wwwroot/favicon.ico | Bin .../.template.config/dotnetcli.host.json | 0 .../knockout}/.template.config/icon.png | Bin .../knockout}/.template.config/template.json | 0 .../.template.config/vs-2017.3.host.json | 0 .../Content/knockout}/ClientApp/boot.ts | 0 .../components/app-root/app-root.html | 0 .../ClientApp/components/app-root/app-root.ts | 0 .../counter-example/counter-example.html | 0 .../counter-example/counter-example.ts | 0 .../components/fetch-data/fetch-data.html | 0 .../components/fetch-data/fetch-data.ts | 0 .../components/home-page/home-page.html | 0 .../components/home-page/home-page.ts | 0 .../components/nav-menu/nav-menu.html | 0 .../ClientApp/components/nav-menu/nav-menu.ts | 0 .../Content/knockout}/ClientApp/css/site.css | 0 .../Content/knockout}/ClientApp/router.ts | 0 .../ClientApp/webpack-component-loader.ts | 0 .../knockout}/Controllers/HomeController.cs | 0 .../Controllers/SampleDataController.cs | 0 .../Content/knockout}/KnockoutSpa.csproj | 0 .../Content/knockout}/Program.cs | 0 .../Content/knockout}/Startup.cs | 0 .../Content/knockout}/Views/Home/Index.cshtml | 0 .../knockout}/Views/Shared/Error.cshtml | 0 .../knockout}/Views/Shared/_Layout.cshtml | 0 .../knockout}/Views/_ViewImports.cshtml | 0 .../Content/knockout}/Views/_ViewStart.cshtml | 0 .../knockout}/appsettings.Development.json | 0 .../Content/knockout}/appsettings.json | 0 .../Content/knockout}/npm-shrinkwrap.json | 0 .../Content/knockout}/package.json | 0 .../Content/knockout}/template_gitignore | 0 .../Content/knockout}/tsconfig.json | 0 .../Content/knockout}/webpack.config.js | 0 .../knockout}/webpack.config.vendor.js | 0 .../Content/knockout}/wwwroot/favicon.ico | Bin .../vue}/.template.config/dotnetcli.host.json | 0 .../Content/vue}/.template.config/icon.png | Bin .../vue}/.template.config/template.json | 0 .../vue}/.template.config/vs-2017.3.host.json | 0 .../Content/vue}/ClientApp/boot.ts | 0 .../vue}/ClientApp/components/app/app.ts | 0 .../ClientApp/components/app/app.vue.html | 0 .../ClientApp/components/counter/counter.ts | 0 .../components/counter/counter.vue.html | 0 .../components/fetchdata/fetchdata.ts | 0 .../components/fetchdata/fetchdata.vue.html | 0 .../ClientApp/components/home/home.vue.html | 0 .../ClientApp/components/navmenu/navmenu.css | 0 .../components/navmenu/navmenu.vue.html | 0 .../Content/vue}/ClientApp/css/site.css | 0 .../vue}/Controllers/HomeController.cs | 0 .../vue}/Controllers/SampleDataController.cs | 0 .../Content/vue}/Program.cs | 0 .../Content/vue}/Startup.cs | 0 .../Content/vue}/Views/Home/Index.cshtml | 0 .../Content/vue}/Views/Shared/Error.cshtml | 0 .../Content/vue}/Views/Shared/_Layout.cshtml | 0 .../Content/vue}/Views/_ViewImports.cshtml | 0 .../Content/vue}/Views/_ViewStart.cshtml | 0 .../Content/vue}/VueSpa.csproj | 0 .../Content/vue}/appsettings.Development.json | 0 .../Content/vue}/appsettings.json | 0 .../Content/vue}/npm-shrinkwrap.json | 0 .../Content/vue}/package.json | 0 .../Content/vue}/template_gitignore | 0 .../Content/vue}/tsconfig.json | 0 .../Content/vue}/webpack.config.js | 0 .../Content/vue}/webpack.config.vendor.js | 0 .../Content/vue}/wwwroot/favicon.ico | Bin .../Microsoft.AspNetCore.SpaTemplates.nuspec | 0 .../.template.config/dotnetcli.host.json | 0 .../angular}/.template.config/icon.png | Bin .../angular}/.template.config/template.json | 0 .../.template.config/vs-2017.3.host.json | 0 .../Content/angular}/AngularSpa.csproj | 0 .../ClientApp/app/app.module.browser.ts | 0 .../ClientApp/app/app.module.server.ts | 0 .../ClientApp/app/app.module.shared.ts | 0 .../app/components/app/app.component.css | 0 .../app/components/app/app.component.html | 0 .../app/components/app/app.component.ts | 0 .../components/counter/counter.component.html | 0 .../counter/counter.component.spec.ts | 0 .../components/counter/counter.component.ts | 0 .../fetchdata/fetchdata.component.html | 0 .../fetchdata/fetchdata.component.ts | 0 .../app/components/home/home.component.html | 0 .../app/components/home/home.component.ts | 0 .../components/navmenu/navmenu.component.css | 0 .../components/navmenu/navmenu.component.html | 0 .../components/navmenu/navmenu.component.ts | 0 .../angular}/ClientApp/boot.browser.ts | 0 .../Content/angular}/ClientApp/boot.server.ts | 0 .../angular}/ClientApp/test/boot-tests.ts | 0 .../angular}/ClientApp/test/karma.conf.js | 0 .../angular}/Controllers/HomeController.cs | 0 .../Controllers/SampleDataController.cs | 0 .../Content/angular}/Program.cs | 0 .../Content/angular}/Startup.cs | 0 .../Content/angular}/Views/Home/Index.cshtml | 0 .../angular}/Views/Shared/Error.cshtml | 0 .../angular}/Views/Shared/_Layout.cshtml | 0 .../angular}/Views/_ViewImports.cshtml | 0 .../Content/angular}/Views/_ViewStart.cshtml | 0 .../angular}/appsettings.Development.json | 0 .../Content/angular}/appsettings.json | 0 .../Content/angular}/npm-shrinkwrap.json | 0 .../Content/angular}/package.json | 0 .../Content/angular}/template_gitignore | 0 .../Content/angular}/tsconfig.json | 0 .../Content/angular}/webpack.config.js | 0 .../Content/angular}/webpack.config.vendor.js | 0 .../Content/angular}/wwwroot/favicon.ico | Bin .../.template.config/dotnetcli.host.json | 0 .../Content/react}/.template.config/icon.png | Bin .../react}/.template.config/template.json | 0 .../.template.config/vs-2017.3.host.json | 0 .../Content/react}/ClientApp/boot.tsx | 0 .../react}/ClientApp/components/Counter.tsx | 0 .../react}/ClientApp/components/FetchData.tsx | 0 .../react}/ClientApp/components/Home.tsx | 0 .../react}/ClientApp/components/Layout.tsx | 0 .../react}/ClientApp/components/NavMenu.tsx | 0 .../Content/react}/ClientApp/css/site.css | 0 .../Content/react}/ClientApp/routes.tsx | 0 .../react}/Controllers/HomeController.cs | 0 .../Controllers/SampleDataController.cs | 0 .../Content/react}/Program.cs | 0 .../Content/react}/ReactSpa.csproj | 0 .../Content/react}/Startup.cs | 0 .../Content/react}/Views/Home/Index.cshtml | 0 .../Content/react}/Views/Shared/Error.cshtml | 0 .../react}/Views/Shared/_Layout.cshtml | 0 .../Content/react}/Views/_ViewImports.cshtml | 0 .../Content/react}/Views/_ViewStart.cshtml | 0 .../react}/appsettings.Development.json | 0 .../Content/react}/appsettings.json | 0 .../Content/react}/npm-shrinkwrap.json | 0 .../Content/react}/package.json | 0 .../Content/react}/template_gitignore | 0 .../Content/react}/tsconfig.json | 0 .../Content/react}/webpack.config.js | 0 .../Content/react}/webpack.config.vendor.js | 0 .../Content/react}/wwwroot/favicon.ico | Bin .../.template.config/dotnetcli.host.json | 0 .../Content/redux}/.template.config/icon.png | Bin .../redux}/.template.config/template.json | 0 .../.template.config/vs-2017.3.host.json | 0 .../Content/redux}/ClientApp/boot-client.tsx | 0 .../Content/redux}/ClientApp/boot-server.tsx | 0 .../redux}/ClientApp/components/Counter.tsx | 0 .../redux}/ClientApp/components/FetchData.tsx | 0 .../redux}/ClientApp/components/Home.tsx | 0 .../redux}/ClientApp/components/Layout.tsx | 0 .../redux}/ClientApp/components/NavMenu.tsx | 0 .../redux}/ClientApp/configureStore.ts | 0 .../Content/redux}/ClientApp/css/site.css | 0 .../Content/redux}/ClientApp/routes.tsx | 0 .../Content/redux}/ClientApp/store/Counter.ts | 0 .../ClientApp/store/WeatherForecasts.ts | 0 .../Content/redux}/ClientApp/store/index.ts | 0 .../redux}/Controllers/HomeController.cs | 0 .../Controllers/SampleDataController.cs | 0 .../Content/redux}/Program.cs | 0 .../Content/redux}/ReactReduxSpa.csproj | 0 .../Content/redux}/Startup.cs | 0 .../Content/redux}/Views/Home/Index.cshtml | 0 .../Content/redux}/Views/Shared/Error.cshtml | 0 .../redux}/Views/Shared/_Layout.cshtml | 0 .../Content/redux}/Views/_ViewImports.cshtml | 0 .../Content/redux}/Views/_ViewStart.cshtml | 0 .../redux}/appsettings.Development.json | 0 .../Content/redux}/appsettings.json | 0 .../Content/redux}/npm-shrinkwrap.json | 0 .../Content/redux}/package.json | 0 .../Content/redux}/template_gitignore | 0 .../Content/redux}/tsconfig.json | 0 .../Content/redux}/webpack.config.js | 0 .../Content/redux}/webpack.config.vendor.js | 0 .../Content/redux}/wwwroot/favicon.ico | Bin ...oft.DotNet.Web.Spa.ProjectTemplates.nuspec | 0 templates/package-builder/src/build/build.ts | 36 ++++++------------ 220 files changed, 16 insertions(+), 30 deletions(-) rename templates/{AngularSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/.template.config/dotnetcli.host.json (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/.template.config/icon.png (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/.template.config/template.json (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/.template.config/vs-2017.3.host.json (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/AureliaSpa.csproj (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/ClientApp/app/components/app/app.css (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/ClientApp/app/components/app/app.html (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/ClientApp/app/components/app/app.ts (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/ClientApp/app/components/counter/counter.html (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/ClientApp/app/components/counter/counter.ts (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/ClientApp/app/components/fetchdata/fetchdata.html (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/ClientApp/app/components/fetchdata/fetchdata.ts (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/ClientApp/app/components/home/home.html (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/ClientApp/app/components/home/home.ts (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/ClientApp/app/components/navmenu/navmenu.css (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/ClientApp/app/components/navmenu/navmenu.html (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/ClientApp/boot.ts (100%) rename templates/{AngularSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/Controllers/HomeController.cs (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/Controllers/SampleDataController.cs (100%) rename templates/{AngularSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/Program.cs (100%) rename templates/{AngularSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/Startup.cs (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/Views/Home/Index.cshtml (100%) rename templates/{AngularSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/Views/Shared/Error.cshtml (100%) rename templates/{AngularSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/Views/Shared/_Layout.cshtml (100%) rename templates/{AngularSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/Views/_ViewImports.cshtml (100%) rename templates/{AngularSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/Views/_ViewStart.cshtml (100%) rename templates/{AngularSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/appsettings.Development.json (100%) rename templates/{AngularSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/appsettings.json (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/npm-shrinkwrap.json (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/package.json (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/template_gitignore (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/tsconfig.json (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/webpack.config.js (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/webpack.config.vendor.js (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/aurelia}/wwwroot/favicon.ico (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/.template.config/dotnetcli.host.json (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/.template.config/icon.png (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/.template.config/template.json (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/.template.config/vs-2017.3.host.json (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/ClientApp/boot.ts (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/ClientApp/components/app-root/app-root.html (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/ClientApp/components/app-root/app-root.ts (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/ClientApp/components/counter-example/counter-example.html (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/ClientApp/components/counter-example/counter-example.ts (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/ClientApp/components/fetch-data/fetch-data.html (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/ClientApp/components/fetch-data/fetch-data.ts (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/ClientApp/components/home-page/home-page.html (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/ClientApp/components/home-page/home-page.ts (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/ClientApp/components/nav-menu/nav-menu.html (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/ClientApp/components/nav-menu/nav-menu.ts (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/ClientApp/css/site.css (100%) mode change 100755 => 100644 rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/ClientApp/router.ts (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/ClientApp/webpack-component-loader.ts (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/Controllers/HomeController.cs (100%) rename templates/{AngularSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/Controllers/SampleDataController.cs (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/KnockoutSpa.csproj (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/Program.cs (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/Startup.cs (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/Views/Home/Index.cshtml (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/Views/Shared/Error.cshtml (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/Views/Shared/_Layout.cshtml (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/Views/_ViewImports.cshtml (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/Views/_ViewStart.cshtml (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/appsettings.Development.json (100%) rename templates/{AureliaSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/appsettings.json (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/npm-shrinkwrap.json (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/package.json (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/template_gitignore (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/tsconfig.json (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/webpack.config.js (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/webpack.config.vendor.js (100%) rename templates/{AngularSpa => Microsoft.AspNetCore.SpaTemplates/Content/knockout}/wwwroot/favicon.ico (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/.template.config/dotnetcli.host.json (100%) rename templates/{VueSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/.template.config/icon.png (100%) rename templates/{VueSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/.template.config/template.json (100%) rename templates/{VueSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/.template.config/vs-2017.3.host.json (100%) rename templates/{VueSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/ClientApp/boot.ts (100%) rename templates/{VueSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/ClientApp/components/app/app.ts (100%) rename templates/{VueSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/ClientApp/components/app/app.vue.html (100%) rename templates/{VueSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/ClientApp/components/counter/counter.ts (100%) rename templates/{VueSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/ClientApp/components/counter/counter.vue.html (100%) rename templates/{VueSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/ClientApp/components/fetchdata/fetchdata.ts (100%) rename templates/{VueSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/ClientApp/components/fetchdata/fetchdata.vue.html (100%) rename templates/{VueSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/ClientApp/components/home/home.vue.html (100%) rename templates/{VueSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/ClientApp/components/navmenu/navmenu.css (100%) rename templates/{VueSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/ClientApp/components/navmenu/navmenu.vue.html (100%) rename templates/{VueSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/ClientApp/css/site.css (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/Controllers/HomeController.cs (100%) mode change 100755 => 100644 rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/Controllers/SampleDataController.cs (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/Program.cs (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/Startup.cs (100%) mode change 100755 => 100644 rename templates/{VueSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/Views/Home/Index.cshtml (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/Views/Shared/Error.cshtml (100%) mode change 100755 => 100644 rename templates/{ReactSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/Views/Shared/_Layout.cshtml (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/Views/_ViewImports.cshtml (100%) mode change 100755 => 100644 rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/Views/_ViewStart.cshtml (100%) mode change 100755 => 100644 rename templates/{VueSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/VueSpa.csproj (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/appsettings.Development.json (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/appsettings.json (100%) mode change 100755 => 100644 rename templates/{VueSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/npm-shrinkwrap.json (100%) rename templates/{VueSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/package.json (100%) rename templates/{VueSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/template_gitignore (100%) rename templates/{VueSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/tsconfig.json (100%) rename templates/{VueSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/webpack.config.js (100%) rename templates/{VueSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/webpack.config.vendor.js (100%) rename templates/{KnockoutSpa => Microsoft.AspNetCore.SpaTemplates/Content/vue}/wwwroot/favicon.ico (100%) mode change 100755 => 100644 rename templates/{package-builder/src/dotnetnew => Microsoft.AspNetCore.SpaTemplates}/Microsoft.AspNetCore.SpaTemplates.nuspec (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/.template.config/dotnetcli.host.json (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/.template.config/icon.png (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/.template.config/template.json (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/.template.config/vs-2017.3.host.json (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/AngularSpa.csproj (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/ClientApp/app/app.module.browser.ts (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/ClientApp/app/app.module.server.ts (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/ClientApp/app/app.module.shared.ts (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/ClientApp/app/components/app/app.component.css (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/ClientApp/app/components/app/app.component.html (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/ClientApp/app/components/app/app.component.ts (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/ClientApp/app/components/counter/counter.component.html (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/ClientApp/app/components/counter/counter.component.spec.ts (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/ClientApp/app/components/counter/counter.component.ts (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/ClientApp/app/components/fetchdata/fetchdata.component.html (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/ClientApp/app/components/fetchdata/fetchdata.component.ts (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/ClientApp/app/components/home/home.component.html (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/ClientApp/app/components/home/home.component.ts (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/ClientApp/app/components/navmenu/navmenu.component.css (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/ClientApp/app/components/navmenu/navmenu.component.html (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/ClientApp/app/components/navmenu/navmenu.component.ts (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/ClientApp/boot.browser.ts (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/ClientApp/boot.server.ts (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/ClientApp/test/boot-tests.ts (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/ClientApp/test/karma.conf.js (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/Controllers/HomeController.cs (100%) mode change 100755 => 100644 rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/Controllers/SampleDataController.cs (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/Program.cs (100%) rename templates/{VueSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/Startup.cs (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/Views/Home/Index.cshtml (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/Views/Shared/Error.cshtml (100%) mode change 100755 => 100644 rename templates/{AureliaSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/Views/Shared/_Layout.cshtml (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/Views/_ViewImports.cshtml (100%) mode change 100755 => 100644 rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/Views/_ViewStart.cshtml (100%) mode change 100755 => 100644 rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/appsettings.Development.json (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/appsettings.json (100%) mode change 100755 => 100644 rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/npm-shrinkwrap.json (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/package.json (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/template_gitignore (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/tsconfig.json (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/webpack.config.js (100%) rename templates/{AngularSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/webpack.config.vendor.js (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular}/wwwroot/favicon.ico (100%) mode change 100755 => 100644 rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/.template.config/dotnetcli.host.json (100%) rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/.template.config/icon.png (100%) rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/.template.config/template.json (100%) rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/.template.config/vs-2017.3.host.json (100%) rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/ClientApp/boot.tsx (100%) rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/ClientApp/components/Counter.tsx (100%) rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/ClientApp/components/FetchData.tsx (100%) rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/ClientApp/components/Home.tsx (100%) rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/ClientApp/components/Layout.tsx (100%) rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/ClientApp/components/NavMenu.tsx (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/ClientApp/css/site.css (100%) mode change 100755 => 100644 rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/ClientApp/routes.tsx (100%) rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/Controllers/HomeController.cs (100%) mode change 100755 => 100644 rename templates/{VueSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/Controllers/SampleDataController.cs (100%) rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/Program.cs (100%) rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/ReactSpa.csproj (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/Startup.cs (100%) mode change 100755 => 100644 rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/Views/Home/Index.cshtml (100%) rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/Views/Shared/Error.cshtml (100%) mode change 100755 => 100644 rename templates/{VueSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/Views/Shared/_Layout.cshtml (100%) rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/Views/_ViewImports.cshtml (100%) mode change 100755 => 100644 rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/Views/_ViewStart.cshtml (100%) mode change 100755 => 100644 rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/appsettings.Development.json (100%) rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/appsettings.json (100%) mode change 100755 => 100644 rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/npm-shrinkwrap.json (100%) rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/package.json (100%) rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/template_gitignore (100%) rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/tsconfig.json (100%) rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/webpack.config.js (100%) rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/webpack.config.vendor.js (100%) rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react}/wwwroot/favicon.ico (100%) mode change 100755 => 100644 rename templates/{VueSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/.template.config/dotnetcli.host.json (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/.template.config/icon.png (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/.template.config/template.json (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/.template.config/vs-2017.3.host.json (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/ClientApp/boot-client.tsx (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/ClientApp/boot-server.tsx (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/ClientApp/components/Counter.tsx (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/ClientApp/components/FetchData.tsx (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/ClientApp/components/Home.tsx (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/ClientApp/components/Layout.tsx (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/ClientApp/components/NavMenu.tsx (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/ClientApp/configureStore.ts (100%) rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/ClientApp/css/site.css (100%) mode change 100755 => 100644 rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/ClientApp/routes.tsx (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/ClientApp/store/Counter.ts (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/ClientApp/store/WeatherForecasts.ts (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/ClientApp/store/index.ts (100%) rename templates/{VueSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/Controllers/HomeController.cs (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/Controllers/SampleDataController.cs (100%) rename templates/{VueSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/Program.cs (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/ReactReduxSpa.csproj (100%) rename templates/{ReactSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/Startup.cs (100%) mode change 100755 => 100644 rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/Views/Home/Index.cshtml (100%) rename templates/{VueSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/Views/Shared/Error.cshtml (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/Views/Shared/_Layout.cshtml (100%) rename templates/{VueSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/Views/_ViewImports.cshtml (100%) rename templates/{VueSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/Views/_ViewStart.cshtml (100%) rename templates/{VueSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/appsettings.Development.json (100%) rename templates/{VueSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/appsettings.json (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/npm-shrinkwrap.json (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/package.json (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/template_gitignore (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/tsconfig.json (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/webpack.config.js (100%) rename templates/{ReactReduxSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/webpack.config.vendor.js (100%) rename templates/{VueSpa => Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux}/wwwroot/favicon.ico (100%) rename templates/{package-builder/src/dotnetnew => Microsoft.DotNet.Web.Spa.ProjectTemplates}/Microsoft.DotNet.Web.Spa.ProjectTemplates.nuspec (100%) diff --git a/.gitignore b/.gitignore index 1a704fbe..8abcfa13 100644 --- a/.gitignore +++ b/.gitignore @@ -33,12 +33,12 @@ npm-debug.log # files with that name (https://github.com/npm/npm/issues/1862). So, each template instead has a template_gitignore # file which gets renamed after the files are copied. And so any files that need to be excluded in the source # repo have to be excluded here. -/templates/*/node_modules/ -/templates/*/wwwroot/dist/ -/templates/*/ClientApp/dist/ -/templates/*/yarn.lock +/templates/*/*/*/node_modules/ +/templates/*/*/*/wwwroot/dist/ +/templates/*/*/*/ClientApp/dist/ +/templates/*/*/*/yarn.lock .vscode/ -/templates/*/Properties/launchSettings.json +/templates/*/*/*/Properties/launchSettings.json global.json korebuild-lock.txt diff --git a/templates/AngularSpa/.template.config/dotnetcli.host.json b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/.template.config/dotnetcli.host.json similarity index 100% rename from templates/AngularSpa/.template.config/dotnetcli.host.json rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/.template.config/dotnetcli.host.json diff --git a/templates/AureliaSpa/.template.config/icon.png b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/.template.config/icon.png similarity index 100% rename from templates/AureliaSpa/.template.config/icon.png rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/.template.config/icon.png diff --git a/templates/AureliaSpa/.template.config/template.json b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/.template.config/template.json similarity index 100% rename from templates/AureliaSpa/.template.config/template.json rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/.template.config/template.json diff --git a/templates/AureliaSpa/.template.config/vs-2017.3.host.json b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/.template.config/vs-2017.3.host.json similarity index 100% rename from templates/AureliaSpa/.template.config/vs-2017.3.host.json rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/.template.config/vs-2017.3.host.json diff --git a/templates/AureliaSpa/AureliaSpa.csproj b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/AureliaSpa.csproj similarity index 100% rename from templates/AureliaSpa/AureliaSpa.csproj rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/AureliaSpa.csproj diff --git a/templates/AureliaSpa/ClientApp/app/components/app/app.css b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/app/app.css similarity index 100% rename from templates/AureliaSpa/ClientApp/app/components/app/app.css rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/app/app.css diff --git a/templates/AureliaSpa/ClientApp/app/components/app/app.html b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/app/app.html similarity index 100% rename from templates/AureliaSpa/ClientApp/app/components/app/app.html rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/app/app.html diff --git a/templates/AureliaSpa/ClientApp/app/components/app/app.ts b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/app/app.ts similarity index 100% rename from templates/AureliaSpa/ClientApp/app/components/app/app.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/app/app.ts diff --git a/templates/AureliaSpa/ClientApp/app/components/counter/counter.html b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/counter/counter.html similarity index 100% rename from templates/AureliaSpa/ClientApp/app/components/counter/counter.html rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/counter/counter.html diff --git a/templates/AureliaSpa/ClientApp/app/components/counter/counter.ts b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/counter/counter.ts similarity index 100% rename from templates/AureliaSpa/ClientApp/app/components/counter/counter.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/counter/counter.ts diff --git a/templates/AureliaSpa/ClientApp/app/components/fetchdata/fetchdata.html b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/fetchdata/fetchdata.html similarity index 100% rename from templates/AureliaSpa/ClientApp/app/components/fetchdata/fetchdata.html rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/fetchdata/fetchdata.html diff --git a/templates/AureliaSpa/ClientApp/app/components/fetchdata/fetchdata.ts b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/fetchdata/fetchdata.ts similarity index 100% rename from templates/AureliaSpa/ClientApp/app/components/fetchdata/fetchdata.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/fetchdata/fetchdata.ts diff --git a/templates/AureliaSpa/ClientApp/app/components/home/home.html b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/home/home.html similarity index 100% rename from templates/AureliaSpa/ClientApp/app/components/home/home.html rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/home/home.html diff --git a/templates/AureliaSpa/ClientApp/app/components/home/home.ts b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/home/home.ts similarity index 100% rename from templates/AureliaSpa/ClientApp/app/components/home/home.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/home/home.ts diff --git a/templates/AureliaSpa/ClientApp/app/components/navmenu/navmenu.css b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/navmenu/navmenu.css similarity index 100% rename from templates/AureliaSpa/ClientApp/app/components/navmenu/navmenu.css rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/navmenu/navmenu.css diff --git a/templates/AureliaSpa/ClientApp/app/components/navmenu/navmenu.html b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/navmenu/navmenu.html similarity index 100% rename from templates/AureliaSpa/ClientApp/app/components/navmenu/navmenu.html rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/navmenu/navmenu.html diff --git a/templates/AureliaSpa/ClientApp/boot.ts b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/boot.ts similarity index 100% rename from templates/AureliaSpa/ClientApp/boot.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/boot.ts diff --git a/templates/AngularSpa/Controllers/HomeController.cs b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Controllers/HomeController.cs similarity index 100% rename from templates/AngularSpa/Controllers/HomeController.cs rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Controllers/HomeController.cs diff --git a/templates/AureliaSpa/Controllers/SampleDataController.cs b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Controllers/SampleDataController.cs similarity index 100% rename from templates/AureliaSpa/Controllers/SampleDataController.cs rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Controllers/SampleDataController.cs diff --git a/templates/AngularSpa/Program.cs b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Program.cs similarity index 100% rename from templates/AngularSpa/Program.cs rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Program.cs diff --git a/templates/AngularSpa/Startup.cs b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Startup.cs similarity index 100% rename from templates/AngularSpa/Startup.cs rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Startup.cs diff --git a/templates/AureliaSpa/Views/Home/Index.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Views/Home/Index.cshtml similarity index 100% rename from templates/AureliaSpa/Views/Home/Index.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Views/Home/Index.cshtml diff --git a/templates/AngularSpa/Views/Shared/Error.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Views/Shared/Error.cshtml similarity index 100% rename from templates/AngularSpa/Views/Shared/Error.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Views/Shared/Error.cshtml diff --git a/templates/AngularSpa/Views/Shared/_Layout.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Views/Shared/_Layout.cshtml similarity index 100% rename from templates/AngularSpa/Views/Shared/_Layout.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Views/Shared/_Layout.cshtml diff --git a/templates/AngularSpa/Views/_ViewImports.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Views/_ViewImports.cshtml similarity index 100% rename from templates/AngularSpa/Views/_ViewImports.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Views/_ViewImports.cshtml diff --git a/templates/AngularSpa/Views/_ViewStart.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Views/_ViewStart.cshtml similarity index 100% rename from templates/AngularSpa/Views/_ViewStart.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Views/_ViewStart.cshtml diff --git a/templates/AngularSpa/appsettings.Development.json b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/appsettings.Development.json similarity index 100% rename from templates/AngularSpa/appsettings.Development.json rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/appsettings.Development.json diff --git a/templates/AngularSpa/appsettings.json b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/appsettings.json similarity index 100% rename from templates/AngularSpa/appsettings.json rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/appsettings.json diff --git a/templates/AureliaSpa/npm-shrinkwrap.json b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/npm-shrinkwrap.json similarity index 100% rename from templates/AureliaSpa/npm-shrinkwrap.json rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/npm-shrinkwrap.json diff --git a/templates/AureliaSpa/package.json b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/package.json similarity index 100% rename from templates/AureliaSpa/package.json rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/package.json diff --git a/templates/AureliaSpa/template_gitignore b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/template_gitignore similarity index 100% rename from templates/AureliaSpa/template_gitignore rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/template_gitignore diff --git a/templates/AureliaSpa/tsconfig.json b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/tsconfig.json similarity index 100% rename from templates/AureliaSpa/tsconfig.json rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/tsconfig.json diff --git a/templates/AureliaSpa/webpack.config.js b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/webpack.config.js similarity index 100% rename from templates/AureliaSpa/webpack.config.js rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/webpack.config.js diff --git a/templates/AureliaSpa/webpack.config.vendor.js b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/webpack.config.vendor.js similarity index 100% rename from templates/AureliaSpa/webpack.config.vendor.js rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/webpack.config.vendor.js diff --git a/templates/AureliaSpa/wwwroot/favicon.ico b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/wwwroot/favicon.ico similarity index 100% rename from templates/AureliaSpa/wwwroot/favicon.ico rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/wwwroot/favicon.ico diff --git a/templates/AureliaSpa/.template.config/dotnetcli.host.json b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/.template.config/dotnetcli.host.json similarity index 100% rename from templates/AureliaSpa/.template.config/dotnetcli.host.json rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/.template.config/dotnetcli.host.json diff --git a/templates/KnockoutSpa/.template.config/icon.png b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/.template.config/icon.png similarity index 100% rename from templates/KnockoutSpa/.template.config/icon.png rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/.template.config/icon.png diff --git a/templates/KnockoutSpa/.template.config/template.json b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/.template.config/template.json similarity index 100% rename from templates/KnockoutSpa/.template.config/template.json rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/.template.config/template.json diff --git a/templates/KnockoutSpa/.template.config/vs-2017.3.host.json b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/.template.config/vs-2017.3.host.json similarity index 100% rename from templates/KnockoutSpa/.template.config/vs-2017.3.host.json rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/.template.config/vs-2017.3.host.json diff --git a/templates/KnockoutSpa/ClientApp/boot.ts b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/boot.ts similarity index 100% rename from templates/KnockoutSpa/ClientApp/boot.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/boot.ts diff --git a/templates/KnockoutSpa/ClientApp/components/app-root/app-root.html b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/app-root/app-root.html similarity index 100% rename from templates/KnockoutSpa/ClientApp/components/app-root/app-root.html rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/app-root/app-root.html diff --git a/templates/KnockoutSpa/ClientApp/components/app-root/app-root.ts b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/app-root/app-root.ts similarity index 100% rename from templates/KnockoutSpa/ClientApp/components/app-root/app-root.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/app-root/app-root.ts diff --git a/templates/KnockoutSpa/ClientApp/components/counter-example/counter-example.html b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/counter-example/counter-example.html similarity index 100% rename from templates/KnockoutSpa/ClientApp/components/counter-example/counter-example.html rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/counter-example/counter-example.html diff --git a/templates/KnockoutSpa/ClientApp/components/counter-example/counter-example.ts b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/counter-example/counter-example.ts similarity index 100% rename from templates/KnockoutSpa/ClientApp/components/counter-example/counter-example.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/counter-example/counter-example.ts diff --git a/templates/KnockoutSpa/ClientApp/components/fetch-data/fetch-data.html b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/fetch-data/fetch-data.html similarity index 100% rename from templates/KnockoutSpa/ClientApp/components/fetch-data/fetch-data.html rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/fetch-data/fetch-data.html diff --git a/templates/KnockoutSpa/ClientApp/components/fetch-data/fetch-data.ts b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/fetch-data/fetch-data.ts similarity index 100% rename from templates/KnockoutSpa/ClientApp/components/fetch-data/fetch-data.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/fetch-data/fetch-data.ts diff --git a/templates/KnockoutSpa/ClientApp/components/home-page/home-page.html b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/home-page/home-page.html similarity index 100% rename from templates/KnockoutSpa/ClientApp/components/home-page/home-page.html rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/home-page/home-page.html diff --git a/templates/KnockoutSpa/ClientApp/components/home-page/home-page.ts b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/home-page/home-page.ts similarity index 100% rename from templates/KnockoutSpa/ClientApp/components/home-page/home-page.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/home-page/home-page.ts diff --git a/templates/KnockoutSpa/ClientApp/components/nav-menu/nav-menu.html b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/nav-menu/nav-menu.html similarity index 100% rename from templates/KnockoutSpa/ClientApp/components/nav-menu/nav-menu.html rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/nav-menu/nav-menu.html diff --git a/templates/KnockoutSpa/ClientApp/components/nav-menu/nav-menu.ts b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/nav-menu/nav-menu.ts similarity index 100% rename from templates/KnockoutSpa/ClientApp/components/nav-menu/nav-menu.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/nav-menu/nav-menu.ts diff --git a/templates/KnockoutSpa/ClientApp/css/site.css b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/css/site.css old mode 100755 new mode 100644 similarity index 100% rename from templates/KnockoutSpa/ClientApp/css/site.css rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/css/site.css diff --git a/templates/KnockoutSpa/ClientApp/router.ts b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/router.ts similarity index 100% rename from templates/KnockoutSpa/ClientApp/router.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/router.ts diff --git a/templates/KnockoutSpa/ClientApp/webpack-component-loader.ts b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/webpack-component-loader.ts similarity index 100% rename from templates/KnockoutSpa/ClientApp/webpack-component-loader.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/webpack-component-loader.ts diff --git a/templates/AureliaSpa/Controllers/HomeController.cs b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Controllers/HomeController.cs similarity index 100% rename from templates/AureliaSpa/Controllers/HomeController.cs rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Controllers/HomeController.cs diff --git a/templates/AngularSpa/Controllers/SampleDataController.cs b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Controllers/SampleDataController.cs similarity index 100% rename from templates/AngularSpa/Controllers/SampleDataController.cs rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Controllers/SampleDataController.cs diff --git a/templates/KnockoutSpa/KnockoutSpa.csproj b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/KnockoutSpa.csproj similarity index 100% rename from templates/KnockoutSpa/KnockoutSpa.csproj rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/KnockoutSpa.csproj diff --git a/templates/AureliaSpa/Program.cs b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Program.cs similarity index 100% rename from templates/AureliaSpa/Program.cs rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Program.cs diff --git a/templates/AureliaSpa/Startup.cs b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Startup.cs similarity index 100% rename from templates/AureliaSpa/Startup.cs rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Startup.cs diff --git a/templates/KnockoutSpa/Views/Home/Index.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Views/Home/Index.cshtml similarity index 100% rename from templates/KnockoutSpa/Views/Home/Index.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Views/Home/Index.cshtml diff --git a/templates/AureliaSpa/Views/Shared/Error.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Views/Shared/Error.cshtml similarity index 100% rename from templates/AureliaSpa/Views/Shared/Error.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Views/Shared/Error.cshtml diff --git a/templates/KnockoutSpa/Views/Shared/_Layout.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Views/Shared/_Layout.cshtml similarity index 100% rename from templates/KnockoutSpa/Views/Shared/_Layout.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Views/Shared/_Layout.cshtml diff --git a/templates/AureliaSpa/Views/_ViewImports.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Views/_ViewImports.cshtml similarity index 100% rename from templates/AureliaSpa/Views/_ViewImports.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Views/_ViewImports.cshtml diff --git a/templates/AureliaSpa/Views/_ViewStart.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Views/_ViewStart.cshtml similarity index 100% rename from templates/AureliaSpa/Views/_ViewStart.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Views/_ViewStart.cshtml diff --git a/templates/AureliaSpa/appsettings.Development.json b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/appsettings.Development.json similarity index 100% rename from templates/AureliaSpa/appsettings.Development.json rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/appsettings.Development.json diff --git a/templates/AureliaSpa/appsettings.json b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/appsettings.json similarity index 100% rename from templates/AureliaSpa/appsettings.json rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/appsettings.json diff --git a/templates/KnockoutSpa/npm-shrinkwrap.json b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/npm-shrinkwrap.json similarity index 100% rename from templates/KnockoutSpa/npm-shrinkwrap.json rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/npm-shrinkwrap.json diff --git a/templates/KnockoutSpa/package.json b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/package.json similarity index 100% rename from templates/KnockoutSpa/package.json rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/package.json diff --git a/templates/KnockoutSpa/template_gitignore b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/template_gitignore similarity index 100% rename from templates/KnockoutSpa/template_gitignore rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/template_gitignore diff --git a/templates/KnockoutSpa/tsconfig.json b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/tsconfig.json similarity index 100% rename from templates/KnockoutSpa/tsconfig.json rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/tsconfig.json diff --git a/templates/KnockoutSpa/webpack.config.js b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/webpack.config.js similarity index 100% rename from templates/KnockoutSpa/webpack.config.js rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/webpack.config.js diff --git a/templates/KnockoutSpa/webpack.config.vendor.js b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/webpack.config.vendor.js similarity index 100% rename from templates/KnockoutSpa/webpack.config.vendor.js rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/webpack.config.vendor.js diff --git a/templates/AngularSpa/wwwroot/favicon.ico b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/wwwroot/favicon.ico similarity index 100% rename from templates/AngularSpa/wwwroot/favicon.ico rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/wwwroot/favicon.ico diff --git a/templates/KnockoutSpa/.template.config/dotnetcli.host.json b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/.template.config/dotnetcli.host.json similarity index 100% rename from templates/KnockoutSpa/.template.config/dotnetcli.host.json rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/.template.config/dotnetcli.host.json diff --git a/templates/VueSpa/.template.config/icon.png b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/.template.config/icon.png similarity index 100% rename from templates/VueSpa/.template.config/icon.png rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/.template.config/icon.png diff --git a/templates/VueSpa/.template.config/template.json b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/.template.config/template.json similarity index 100% rename from templates/VueSpa/.template.config/template.json rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/.template.config/template.json diff --git a/templates/VueSpa/.template.config/vs-2017.3.host.json b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/.template.config/vs-2017.3.host.json similarity index 100% rename from templates/VueSpa/.template.config/vs-2017.3.host.json rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/.template.config/vs-2017.3.host.json diff --git a/templates/VueSpa/ClientApp/boot.ts b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/boot.ts similarity index 100% rename from templates/VueSpa/ClientApp/boot.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/boot.ts diff --git a/templates/VueSpa/ClientApp/components/app/app.ts b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/app/app.ts similarity index 100% rename from templates/VueSpa/ClientApp/components/app/app.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/app/app.ts diff --git a/templates/VueSpa/ClientApp/components/app/app.vue.html b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/app/app.vue.html similarity index 100% rename from templates/VueSpa/ClientApp/components/app/app.vue.html rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/app/app.vue.html diff --git a/templates/VueSpa/ClientApp/components/counter/counter.ts b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/counter/counter.ts similarity index 100% rename from templates/VueSpa/ClientApp/components/counter/counter.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/counter/counter.ts diff --git a/templates/VueSpa/ClientApp/components/counter/counter.vue.html b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/counter/counter.vue.html similarity index 100% rename from templates/VueSpa/ClientApp/components/counter/counter.vue.html rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/counter/counter.vue.html diff --git a/templates/VueSpa/ClientApp/components/fetchdata/fetchdata.ts b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/fetchdata/fetchdata.ts similarity index 100% rename from templates/VueSpa/ClientApp/components/fetchdata/fetchdata.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/fetchdata/fetchdata.ts diff --git a/templates/VueSpa/ClientApp/components/fetchdata/fetchdata.vue.html b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/fetchdata/fetchdata.vue.html similarity index 100% rename from templates/VueSpa/ClientApp/components/fetchdata/fetchdata.vue.html rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/fetchdata/fetchdata.vue.html diff --git a/templates/VueSpa/ClientApp/components/home/home.vue.html b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/home/home.vue.html similarity index 100% rename from templates/VueSpa/ClientApp/components/home/home.vue.html rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/home/home.vue.html diff --git a/templates/VueSpa/ClientApp/components/navmenu/navmenu.css b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/navmenu/navmenu.css similarity index 100% rename from templates/VueSpa/ClientApp/components/navmenu/navmenu.css rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/navmenu/navmenu.css diff --git a/templates/VueSpa/ClientApp/components/navmenu/navmenu.vue.html b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/navmenu/navmenu.vue.html similarity index 100% rename from templates/VueSpa/ClientApp/components/navmenu/navmenu.vue.html rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/navmenu/navmenu.vue.html diff --git a/templates/VueSpa/ClientApp/css/site.css b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/css/site.css similarity index 100% rename from templates/VueSpa/ClientApp/css/site.css rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/css/site.css diff --git a/templates/KnockoutSpa/Controllers/HomeController.cs b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Controllers/HomeController.cs old mode 100755 new mode 100644 similarity index 100% rename from templates/KnockoutSpa/Controllers/HomeController.cs rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Controllers/HomeController.cs diff --git a/templates/KnockoutSpa/Controllers/SampleDataController.cs b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Controllers/SampleDataController.cs similarity index 100% rename from templates/KnockoutSpa/Controllers/SampleDataController.cs rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Controllers/SampleDataController.cs diff --git a/templates/KnockoutSpa/Program.cs b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Program.cs similarity index 100% rename from templates/KnockoutSpa/Program.cs rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Program.cs diff --git a/templates/KnockoutSpa/Startup.cs b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Startup.cs old mode 100755 new mode 100644 similarity index 100% rename from templates/KnockoutSpa/Startup.cs rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Startup.cs diff --git a/templates/VueSpa/Views/Home/Index.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Views/Home/Index.cshtml similarity index 100% rename from templates/VueSpa/Views/Home/Index.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Views/Home/Index.cshtml diff --git a/templates/KnockoutSpa/Views/Shared/Error.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Views/Shared/Error.cshtml old mode 100755 new mode 100644 similarity index 100% rename from templates/KnockoutSpa/Views/Shared/Error.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Views/Shared/Error.cshtml diff --git a/templates/ReactSpa/Views/Shared/_Layout.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Views/Shared/_Layout.cshtml similarity index 100% rename from templates/ReactSpa/Views/Shared/_Layout.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Views/Shared/_Layout.cshtml diff --git a/templates/KnockoutSpa/Views/_ViewImports.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Views/_ViewImports.cshtml old mode 100755 new mode 100644 similarity index 100% rename from templates/KnockoutSpa/Views/_ViewImports.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Views/_ViewImports.cshtml diff --git a/templates/KnockoutSpa/Views/_ViewStart.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Views/_ViewStart.cshtml old mode 100755 new mode 100644 similarity index 100% rename from templates/KnockoutSpa/Views/_ViewStart.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Views/_ViewStart.cshtml diff --git a/templates/VueSpa/VueSpa.csproj b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/VueSpa.csproj similarity index 100% rename from templates/VueSpa/VueSpa.csproj rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/VueSpa.csproj diff --git a/templates/KnockoutSpa/appsettings.Development.json b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/appsettings.Development.json similarity index 100% rename from templates/KnockoutSpa/appsettings.Development.json rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/appsettings.Development.json diff --git a/templates/KnockoutSpa/appsettings.json b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/appsettings.json old mode 100755 new mode 100644 similarity index 100% rename from templates/KnockoutSpa/appsettings.json rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/appsettings.json diff --git a/templates/VueSpa/npm-shrinkwrap.json b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/npm-shrinkwrap.json similarity index 100% rename from templates/VueSpa/npm-shrinkwrap.json rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/npm-shrinkwrap.json diff --git a/templates/VueSpa/package.json b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/package.json similarity index 100% rename from templates/VueSpa/package.json rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/package.json diff --git a/templates/VueSpa/template_gitignore b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/template_gitignore similarity index 100% rename from templates/VueSpa/template_gitignore rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/template_gitignore diff --git a/templates/VueSpa/tsconfig.json b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/tsconfig.json similarity index 100% rename from templates/VueSpa/tsconfig.json rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/tsconfig.json diff --git a/templates/VueSpa/webpack.config.js b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/webpack.config.js similarity index 100% rename from templates/VueSpa/webpack.config.js rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/webpack.config.js diff --git a/templates/VueSpa/webpack.config.vendor.js b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/webpack.config.vendor.js similarity index 100% rename from templates/VueSpa/webpack.config.vendor.js rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/webpack.config.vendor.js diff --git a/templates/KnockoutSpa/wwwroot/favicon.ico b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/wwwroot/favicon.ico old mode 100755 new mode 100644 similarity index 100% rename from templates/KnockoutSpa/wwwroot/favicon.ico rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/wwwroot/favicon.ico diff --git a/templates/package-builder/src/dotnetnew/Microsoft.AspNetCore.SpaTemplates.nuspec b/templates/Microsoft.AspNetCore.SpaTemplates/Microsoft.AspNetCore.SpaTemplates.nuspec similarity index 100% rename from templates/package-builder/src/dotnetnew/Microsoft.AspNetCore.SpaTemplates.nuspec rename to templates/Microsoft.AspNetCore.SpaTemplates/Microsoft.AspNetCore.SpaTemplates.nuspec diff --git a/templates/ReactReduxSpa/.template.config/dotnetcli.host.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/.template.config/dotnetcli.host.json similarity index 100% rename from templates/ReactReduxSpa/.template.config/dotnetcli.host.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/.template.config/dotnetcli.host.json diff --git a/templates/AngularSpa/.template.config/icon.png b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/.template.config/icon.png similarity index 100% rename from templates/AngularSpa/.template.config/icon.png rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/.template.config/icon.png diff --git a/templates/AngularSpa/.template.config/template.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/.template.config/template.json similarity index 100% rename from templates/AngularSpa/.template.config/template.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/.template.config/template.json diff --git a/templates/AngularSpa/.template.config/vs-2017.3.host.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/.template.config/vs-2017.3.host.json similarity index 100% rename from templates/AngularSpa/.template.config/vs-2017.3.host.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/.template.config/vs-2017.3.host.json diff --git a/templates/AngularSpa/AngularSpa.csproj b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/AngularSpa.csproj similarity index 100% rename from templates/AngularSpa/AngularSpa.csproj rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/AngularSpa.csproj diff --git a/templates/AngularSpa/ClientApp/app/app.module.browser.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/app.module.browser.ts similarity index 100% rename from templates/AngularSpa/ClientApp/app/app.module.browser.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/app.module.browser.ts diff --git a/templates/AngularSpa/ClientApp/app/app.module.server.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/app.module.server.ts similarity index 100% rename from templates/AngularSpa/ClientApp/app/app.module.server.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/app.module.server.ts diff --git a/templates/AngularSpa/ClientApp/app/app.module.shared.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/app.module.shared.ts similarity index 100% rename from templates/AngularSpa/ClientApp/app/app.module.shared.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/app.module.shared.ts diff --git a/templates/AngularSpa/ClientApp/app/components/app/app.component.css b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/app/app.component.css similarity index 100% rename from templates/AngularSpa/ClientApp/app/components/app/app.component.css rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/app/app.component.css diff --git a/templates/AngularSpa/ClientApp/app/components/app/app.component.html b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/app/app.component.html similarity index 100% rename from templates/AngularSpa/ClientApp/app/components/app/app.component.html rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/app/app.component.html diff --git a/templates/AngularSpa/ClientApp/app/components/app/app.component.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/app/app.component.ts similarity index 100% rename from templates/AngularSpa/ClientApp/app/components/app/app.component.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/app/app.component.ts diff --git a/templates/AngularSpa/ClientApp/app/components/counter/counter.component.html b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/counter/counter.component.html similarity index 100% rename from templates/AngularSpa/ClientApp/app/components/counter/counter.component.html rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/counter/counter.component.html diff --git a/templates/AngularSpa/ClientApp/app/components/counter/counter.component.spec.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/counter/counter.component.spec.ts similarity index 100% rename from templates/AngularSpa/ClientApp/app/components/counter/counter.component.spec.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/counter/counter.component.spec.ts diff --git a/templates/AngularSpa/ClientApp/app/components/counter/counter.component.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/counter/counter.component.ts similarity index 100% rename from templates/AngularSpa/ClientApp/app/components/counter/counter.component.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/counter/counter.component.ts diff --git a/templates/AngularSpa/ClientApp/app/components/fetchdata/fetchdata.component.html b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/fetchdata/fetchdata.component.html similarity index 100% rename from templates/AngularSpa/ClientApp/app/components/fetchdata/fetchdata.component.html rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/fetchdata/fetchdata.component.html diff --git a/templates/AngularSpa/ClientApp/app/components/fetchdata/fetchdata.component.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/fetchdata/fetchdata.component.ts similarity index 100% rename from templates/AngularSpa/ClientApp/app/components/fetchdata/fetchdata.component.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/fetchdata/fetchdata.component.ts diff --git a/templates/AngularSpa/ClientApp/app/components/home/home.component.html b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/home/home.component.html similarity index 100% rename from templates/AngularSpa/ClientApp/app/components/home/home.component.html rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/home/home.component.html diff --git a/templates/AngularSpa/ClientApp/app/components/home/home.component.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/home/home.component.ts similarity index 100% rename from templates/AngularSpa/ClientApp/app/components/home/home.component.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/home/home.component.ts diff --git a/templates/AngularSpa/ClientApp/app/components/navmenu/navmenu.component.css b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/navmenu/navmenu.component.css similarity index 100% rename from templates/AngularSpa/ClientApp/app/components/navmenu/navmenu.component.css rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/navmenu/navmenu.component.css diff --git a/templates/AngularSpa/ClientApp/app/components/navmenu/navmenu.component.html b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/navmenu/navmenu.component.html similarity index 100% rename from templates/AngularSpa/ClientApp/app/components/navmenu/navmenu.component.html rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/navmenu/navmenu.component.html diff --git a/templates/AngularSpa/ClientApp/app/components/navmenu/navmenu.component.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/navmenu/navmenu.component.ts similarity index 100% rename from templates/AngularSpa/ClientApp/app/components/navmenu/navmenu.component.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/navmenu/navmenu.component.ts diff --git a/templates/AngularSpa/ClientApp/boot.browser.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/boot.browser.ts similarity index 100% rename from templates/AngularSpa/ClientApp/boot.browser.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/boot.browser.ts diff --git a/templates/AngularSpa/ClientApp/boot.server.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/boot.server.ts similarity index 100% rename from templates/AngularSpa/ClientApp/boot.server.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/boot.server.ts diff --git a/templates/AngularSpa/ClientApp/test/boot-tests.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/test/boot-tests.ts similarity index 100% rename from templates/AngularSpa/ClientApp/test/boot-tests.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/test/boot-tests.ts diff --git a/templates/AngularSpa/ClientApp/test/karma.conf.js b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/test/karma.conf.js similarity index 100% rename from templates/AngularSpa/ClientApp/test/karma.conf.js rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/test/karma.conf.js diff --git a/templates/ReactReduxSpa/Controllers/HomeController.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Controllers/HomeController.cs old mode 100755 new mode 100644 similarity index 100% rename from templates/ReactReduxSpa/Controllers/HomeController.cs rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Controllers/HomeController.cs diff --git a/templates/ReactSpa/Controllers/SampleDataController.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Controllers/SampleDataController.cs similarity index 100% rename from templates/ReactSpa/Controllers/SampleDataController.cs rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Controllers/SampleDataController.cs diff --git a/templates/ReactReduxSpa/Program.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Program.cs similarity index 100% rename from templates/ReactReduxSpa/Program.cs rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Program.cs diff --git a/templates/VueSpa/Startup.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Startup.cs similarity index 100% rename from templates/VueSpa/Startup.cs rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Startup.cs diff --git a/templates/AngularSpa/Views/Home/Index.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Views/Home/Index.cshtml similarity index 100% rename from templates/AngularSpa/Views/Home/Index.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Views/Home/Index.cshtml diff --git a/templates/ReactReduxSpa/Views/Shared/Error.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Views/Shared/Error.cshtml old mode 100755 new mode 100644 similarity index 100% rename from templates/ReactReduxSpa/Views/Shared/Error.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Views/Shared/Error.cshtml diff --git a/templates/AureliaSpa/Views/Shared/_Layout.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Views/Shared/_Layout.cshtml similarity index 100% rename from templates/AureliaSpa/Views/Shared/_Layout.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Views/Shared/_Layout.cshtml diff --git a/templates/ReactReduxSpa/Views/_ViewImports.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Views/_ViewImports.cshtml old mode 100755 new mode 100644 similarity index 100% rename from templates/ReactReduxSpa/Views/_ViewImports.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Views/_ViewImports.cshtml diff --git a/templates/ReactReduxSpa/Views/_ViewStart.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Views/_ViewStart.cshtml old mode 100755 new mode 100644 similarity index 100% rename from templates/ReactReduxSpa/Views/_ViewStart.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Views/_ViewStart.cshtml diff --git a/templates/ReactReduxSpa/appsettings.Development.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/appsettings.Development.json similarity index 100% rename from templates/ReactReduxSpa/appsettings.Development.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/appsettings.Development.json diff --git a/templates/ReactReduxSpa/appsettings.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/appsettings.json old mode 100755 new mode 100644 similarity index 100% rename from templates/ReactReduxSpa/appsettings.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/appsettings.json diff --git a/templates/AngularSpa/npm-shrinkwrap.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/npm-shrinkwrap.json similarity index 100% rename from templates/AngularSpa/npm-shrinkwrap.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/npm-shrinkwrap.json diff --git a/templates/AngularSpa/package.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/package.json similarity index 100% rename from templates/AngularSpa/package.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/package.json diff --git a/templates/AngularSpa/template_gitignore b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/template_gitignore similarity index 100% rename from templates/AngularSpa/template_gitignore rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/template_gitignore diff --git a/templates/AngularSpa/tsconfig.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/tsconfig.json similarity index 100% rename from templates/AngularSpa/tsconfig.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/tsconfig.json diff --git a/templates/AngularSpa/webpack.config.js b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/webpack.config.js similarity index 100% rename from templates/AngularSpa/webpack.config.js rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/webpack.config.js diff --git a/templates/AngularSpa/webpack.config.vendor.js b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/webpack.config.vendor.js similarity index 100% rename from templates/AngularSpa/webpack.config.vendor.js rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/webpack.config.vendor.js diff --git a/templates/ReactReduxSpa/wwwroot/favicon.ico b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/wwwroot/favicon.ico old mode 100755 new mode 100644 similarity index 100% rename from templates/ReactReduxSpa/wwwroot/favicon.ico rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/wwwroot/favicon.ico diff --git a/templates/ReactSpa/.template.config/dotnetcli.host.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/.template.config/dotnetcli.host.json similarity index 100% rename from templates/ReactSpa/.template.config/dotnetcli.host.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/.template.config/dotnetcli.host.json diff --git a/templates/ReactSpa/.template.config/icon.png b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/.template.config/icon.png similarity index 100% rename from templates/ReactSpa/.template.config/icon.png rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/.template.config/icon.png diff --git a/templates/ReactSpa/.template.config/template.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/.template.config/template.json similarity index 100% rename from templates/ReactSpa/.template.config/template.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/.template.config/template.json diff --git a/templates/ReactSpa/.template.config/vs-2017.3.host.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/.template.config/vs-2017.3.host.json similarity index 100% rename from templates/ReactSpa/.template.config/vs-2017.3.host.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/.template.config/vs-2017.3.host.json diff --git a/templates/ReactSpa/ClientApp/boot.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/boot.tsx similarity index 100% rename from templates/ReactSpa/ClientApp/boot.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/boot.tsx diff --git a/templates/ReactSpa/ClientApp/components/Counter.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/components/Counter.tsx similarity index 100% rename from templates/ReactSpa/ClientApp/components/Counter.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/components/Counter.tsx diff --git a/templates/ReactSpa/ClientApp/components/FetchData.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/components/FetchData.tsx similarity index 100% rename from templates/ReactSpa/ClientApp/components/FetchData.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/components/FetchData.tsx diff --git a/templates/ReactSpa/ClientApp/components/Home.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/components/Home.tsx similarity index 100% rename from templates/ReactSpa/ClientApp/components/Home.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/components/Home.tsx diff --git a/templates/ReactSpa/ClientApp/components/Layout.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/components/Layout.tsx similarity index 100% rename from templates/ReactSpa/ClientApp/components/Layout.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/components/Layout.tsx diff --git a/templates/ReactSpa/ClientApp/components/NavMenu.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/components/NavMenu.tsx similarity index 100% rename from templates/ReactSpa/ClientApp/components/NavMenu.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/components/NavMenu.tsx diff --git a/templates/ReactReduxSpa/ClientApp/css/site.css b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/css/site.css old mode 100755 new mode 100644 similarity index 100% rename from templates/ReactReduxSpa/ClientApp/css/site.css rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/css/site.css diff --git a/templates/ReactSpa/ClientApp/routes.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/routes.tsx similarity index 100% rename from templates/ReactSpa/ClientApp/routes.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/routes.tsx diff --git a/templates/ReactSpa/Controllers/HomeController.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Controllers/HomeController.cs old mode 100755 new mode 100644 similarity index 100% rename from templates/ReactSpa/Controllers/HomeController.cs rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Controllers/HomeController.cs diff --git a/templates/VueSpa/Controllers/SampleDataController.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Controllers/SampleDataController.cs similarity index 100% rename from templates/VueSpa/Controllers/SampleDataController.cs rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Controllers/SampleDataController.cs diff --git a/templates/ReactSpa/Program.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Program.cs similarity index 100% rename from templates/ReactSpa/Program.cs rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Program.cs diff --git a/templates/ReactSpa/ReactSpa.csproj b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ReactSpa.csproj similarity index 100% rename from templates/ReactSpa/ReactSpa.csproj rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ReactSpa.csproj diff --git a/templates/ReactReduxSpa/Startup.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Startup.cs old mode 100755 new mode 100644 similarity index 100% rename from templates/ReactReduxSpa/Startup.cs rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Startup.cs diff --git a/templates/ReactSpa/Views/Home/Index.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Views/Home/Index.cshtml similarity index 100% rename from templates/ReactSpa/Views/Home/Index.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Views/Home/Index.cshtml diff --git a/templates/ReactSpa/Views/Shared/Error.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Views/Shared/Error.cshtml old mode 100755 new mode 100644 similarity index 100% rename from templates/ReactSpa/Views/Shared/Error.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Views/Shared/Error.cshtml diff --git a/templates/VueSpa/Views/Shared/_Layout.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Views/Shared/_Layout.cshtml similarity index 100% rename from templates/VueSpa/Views/Shared/_Layout.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Views/Shared/_Layout.cshtml diff --git a/templates/ReactSpa/Views/_ViewImports.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Views/_ViewImports.cshtml old mode 100755 new mode 100644 similarity index 100% rename from templates/ReactSpa/Views/_ViewImports.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Views/_ViewImports.cshtml diff --git a/templates/ReactSpa/Views/_ViewStart.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Views/_ViewStart.cshtml old mode 100755 new mode 100644 similarity index 100% rename from templates/ReactSpa/Views/_ViewStart.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Views/_ViewStart.cshtml diff --git a/templates/ReactSpa/appsettings.Development.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/appsettings.Development.json similarity index 100% rename from templates/ReactSpa/appsettings.Development.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/appsettings.Development.json diff --git a/templates/ReactSpa/appsettings.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/appsettings.json old mode 100755 new mode 100644 similarity index 100% rename from templates/ReactSpa/appsettings.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/appsettings.json diff --git a/templates/ReactSpa/npm-shrinkwrap.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/npm-shrinkwrap.json similarity index 100% rename from templates/ReactSpa/npm-shrinkwrap.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/npm-shrinkwrap.json diff --git a/templates/ReactSpa/package.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/package.json similarity index 100% rename from templates/ReactSpa/package.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/package.json diff --git a/templates/ReactSpa/template_gitignore b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/template_gitignore similarity index 100% rename from templates/ReactSpa/template_gitignore rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/template_gitignore diff --git a/templates/ReactSpa/tsconfig.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/tsconfig.json similarity index 100% rename from templates/ReactSpa/tsconfig.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/tsconfig.json diff --git a/templates/ReactSpa/webpack.config.js b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/webpack.config.js similarity index 100% rename from templates/ReactSpa/webpack.config.js rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/webpack.config.js diff --git a/templates/ReactSpa/webpack.config.vendor.js b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/webpack.config.vendor.js similarity index 100% rename from templates/ReactSpa/webpack.config.vendor.js rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/webpack.config.vendor.js diff --git a/templates/ReactSpa/wwwroot/favicon.ico b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/wwwroot/favicon.ico old mode 100755 new mode 100644 similarity index 100% rename from templates/ReactSpa/wwwroot/favicon.ico rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/wwwroot/favicon.ico diff --git a/templates/VueSpa/.template.config/dotnetcli.host.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/.template.config/dotnetcli.host.json similarity index 100% rename from templates/VueSpa/.template.config/dotnetcli.host.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/.template.config/dotnetcli.host.json diff --git a/templates/ReactReduxSpa/.template.config/icon.png b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/.template.config/icon.png similarity index 100% rename from templates/ReactReduxSpa/.template.config/icon.png rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/.template.config/icon.png diff --git a/templates/ReactReduxSpa/.template.config/template.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/.template.config/template.json similarity index 100% rename from templates/ReactReduxSpa/.template.config/template.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/.template.config/template.json diff --git a/templates/ReactReduxSpa/.template.config/vs-2017.3.host.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/.template.config/vs-2017.3.host.json similarity index 100% rename from templates/ReactReduxSpa/.template.config/vs-2017.3.host.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/.template.config/vs-2017.3.host.json diff --git a/templates/ReactReduxSpa/ClientApp/boot-client.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/boot-client.tsx similarity index 100% rename from templates/ReactReduxSpa/ClientApp/boot-client.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/boot-client.tsx diff --git a/templates/ReactReduxSpa/ClientApp/boot-server.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/boot-server.tsx similarity index 100% rename from templates/ReactReduxSpa/ClientApp/boot-server.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/boot-server.tsx diff --git a/templates/ReactReduxSpa/ClientApp/components/Counter.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/components/Counter.tsx similarity index 100% rename from templates/ReactReduxSpa/ClientApp/components/Counter.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/components/Counter.tsx diff --git a/templates/ReactReduxSpa/ClientApp/components/FetchData.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/components/FetchData.tsx similarity index 100% rename from templates/ReactReduxSpa/ClientApp/components/FetchData.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/components/FetchData.tsx diff --git a/templates/ReactReduxSpa/ClientApp/components/Home.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/components/Home.tsx similarity index 100% rename from templates/ReactReduxSpa/ClientApp/components/Home.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/components/Home.tsx diff --git a/templates/ReactReduxSpa/ClientApp/components/Layout.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/components/Layout.tsx similarity index 100% rename from templates/ReactReduxSpa/ClientApp/components/Layout.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/components/Layout.tsx diff --git a/templates/ReactReduxSpa/ClientApp/components/NavMenu.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/components/NavMenu.tsx similarity index 100% rename from templates/ReactReduxSpa/ClientApp/components/NavMenu.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/components/NavMenu.tsx diff --git a/templates/ReactReduxSpa/ClientApp/configureStore.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/configureStore.ts similarity index 100% rename from templates/ReactReduxSpa/ClientApp/configureStore.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/configureStore.ts diff --git a/templates/ReactSpa/ClientApp/css/site.css b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/css/site.css old mode 100755 new mode 100644 similarity index 100% rename from templates/ReactSpa/ClientApp/css/site.css rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/css/site.css diff --git a/templates/ReactReduxSpa/ClientApp/routes.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/routes.tsx similarity index 100% rename from templates/ReactReduxSpa/ClientApp/routes.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/routes.tsx diff --git a/templates/ReactReduxSpa/ClientApp/store/Counter.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/store/Counter.ts similarity index 100% rename from templates/ReactReduxSpa/ClientApp/store/Counter.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/store/Counter.ts diff --git a/templates/ReactReduxSpa/ClientApp/store/WeatherForecasts.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/store/WeatherForecasts.ts similarity index 100% rename from templates/ReactReduxSpa/ClientApp/store/WeatherForecasts.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/store/WeatherForecasts.ts diff --git a/templates/ReactReduxSpa/ClientApp/store/index.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/store/index.ts similarity index 100% rename from templates/ReactReduxSpa/ClientApp/store/index.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/store/index.ts diff --git a/templates/VueSpa/Controllers/HomeController.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Controllers/HomeController.cs similarity index 100% rename from templates/VueSpa/Controllers/HomeController.cs rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Controllers/HomeController.cs diff --git a/templates/ReactReduxSpa/Controllers/SampleDataController.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Controllers/SampleDataController.cs similarity index 100% rename from templates/ReactReduxSpa/Controllers/SampleDataController.cs rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Controllers/SampleDataController.cs diff --git a/templates/VueSpa/Program.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Program.cs similarity index 100% rename from templates/VueSpa/Program.cs rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Program.cs diff --git a/templates/ReactReduxSpa/ReactReduxSpa.csproj b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ReactReduxSpa.csproj similarity index 100% rename from templates/ReactReduxSpa/ReactReduxSpa.csproj rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ReactReduxSpa.csproj diff --git a/templates/ReactSpa/Startup.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Startup.cs old mode 100755 new mode 100644 similarity index 100% rename from templates/ReactSpa/Startup.cs rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Startup.cs diff --git a/templates/ReactReduxSpa/Views/Home/Index.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Views/Home/Index.cshtml similarity index 100% rename from templates/ReactReduxSpa/Views/Home/Index.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Views/Home/Index.cshtml diff --git a/templates/VueSpa/Views/Shared/Error.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Views/Shared/Error.cshtml similarity index 100% rename from templates/VueSpa/Views/Shared/Error.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Views/Shared/Error.cshtml diff --git a/templates/ReactReduxSpa/Views/Shared/_Layout.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Views/Shared/_Layout.cshtml similarity index 100% rename from templates/ReactReduxSpa/Views/Shared/_Layout.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Views/Shared/_Layout.cshtml diff --git a/templates/VueSpa/Views/_ViewImports.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Views/_ViewImports.cshtml similarity index 100% rename from templates/VueSpa/Views/_ViewImports.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Views/_ViewImports.cshtml diff --git a/templates/VueSpa/Views/_ViewStart.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Views/_ViewStart.cshtml similarity index 100% rename from templates/VueSpa/Views/_ViewStart.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Views/_ViewStart.cshtml diff --git a/templates/VueSpa/appsettings.Development.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/appsettings.Development.json similarity index 100% rename from templates/VueSpa/appsettings.Development.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/appsettings.Development.json diff --git a/templates/VueSpa/appsettings.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/appsettings.json similarity index 100% rename from templates/VueSpa/appsettings.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/appsettings.json diff --git a/templates/ReactReduxSpa/npm-shrinkwrap.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/npm-shrinkwrap.json similarity index 100% rename from templates/ReactReduxSpa/npm-shrinkwrap.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/npm-shrinkwrap.json diff --git a/templates/ReactReduxSpa/package.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/package.json similarity index 100% rename from templates/ReactReduxSpa/package.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/package.json diff --git a/templates/ReactReduxSpa/template_gitignore b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/template_gitignore similarity index 100% rename from templates/ReactReduxSpa/template_gitignore rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/template_gitignore diff --git a/templates/ReactReduxSpa/tsconfig.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/tsconfig.json similarity index 100% rename from templates/ReactReduxSpa/tsconfig.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/tsconfig.json diff --git a/templates/ReactReduxSpa/webpack.config.js b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/webpack.config.js similarity index 100% rename from templates/ReactReduxSpa/webpack.config.js rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/webpack.config.js diff --git a/templates/ReactReduxSpa/webpack.config.vendor.js b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/webpack.config.vendor.js similarity index 100% rename from templates/ReactReduxSpa/webpack.config.vendor.js rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/webpack.config.vendor.js diff --git a/templates/VueSpa/wwwroot/favicon.ico b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/wwwroot/favicon.ico similarity index 100% rename from templates/VueSpa/wwwroot/favicon.ico rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/wwwroot/favicon.ico diff --git a/templates/package-builder/src/dotnetnew/Microsoft.DotNet.Web.Spa.ProjectTemplates.nuspec b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Microsoft.DotNet.Web.Spa.ProjectTemplates.nuspec similarity index 100% rename from templates/package-builder/src/dotnetnew/Microsoft.DotNet.Web.Spa.ProjectTemplates.nuspec rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Microsoft.DotNet.Web.Spa.ProjectTemplates.nuspec diff --git a/templates/package-builder/src/build/build.ts b/templates/package-builder/src/build/build.ts index d234bfc3..3abc13d3 100644 --- a/templates/package-builder/src/build/build.ts +++ b/templates/package-builder/src/build/build.ts @@ -11,24 +11,10 @@ import * as targz from 'tar.gz'; const isWindows = /^win/.test(process.platform); const textFileExtensions = ['.gitignore', 'template_gitignore', '.config', '.cs', '.cshtml', '.csproj', '.html', '.js', '.json', '.jsx', '.md', '.nuspec', '.ts', '.tsx']; -const dotNetPackages = { - builtIn: 'Microsoft.DotNet.Web.Spa.ProjectTemplates', - extra: 'Microsoft.AspNetCore.SpaTemplates' -}; - -interface TemplateConfig { - dir: string; - dotNetPackageId: string; -} - -const templates: { [key: string]: TemplateConfig } = { - 'angular': { dotNetPackageId: dotNetPackages.builtIn, dir: '../../templates/AngularSpa/' }, - 'aurelia': { dotNetPackageId: dotNetPackages.extra, dir: '../../templates/AureliaSpa/' }, - 'knockout': { dotNetPackageId: dotNetPackages.extra, dir: '../../templates/KnockoutSpa/' }, - 'react-redux': { dotNetPackageId: dotNetPackages.builtIn, dir: '../../templates/ReactReduxSpa/' }, - 'react': { dotNetPackageId: dotNetPackages.builtIn, dir: '../../templates/ReactSpa/' }, - 'vue': { dotNetPackageId: dotNetPackages.extra, dir: '../../templates/VueSpa/' } -}; +const dotNetPackages = [ + 'Microsoft.DotNet.Web.Spa.ProjectTemplates', + 'Microsoft.AspNetCore.SpaTemplates' +]; function isTextFile(filename: string): boolean { return textFileExtensions.indexOf(path.extname(filename).toLowerCase()) >= 0 @@ -117,18 +103,18 @@ function buildDotNetNewNuGetPackage(packageId: string) { { from: /\btemplate_gitignore$/, to: '.gitignore' } ]; const contentReplacements = []; - _.forEach(templates, (templateConfig, templateName) => { - // Only include templates matching the output package ID - if (templateConfig.dotNetPackageId !== packageId) { - return; - } + const packageSourceRootDir = path.join('../', packageId); + const templatesInPackage = fs.readdirSync(path.join(packageSourceRootDir, 'Content')); + + _.forEach(templatesInPackage, templateName => { + const templateSourceDir = path.join(packageSourceRootDir, 'Content', templateName); const templateOutputDir = path.join(outputRoot, 'Content', templateName); - writeTemplate(templateConfig.dir, templateOutputDir, contentReplacements, filenameReplacements); + writeTemplate(templateSourceDir, templateOutputDir, contentReplacements, filenameReplacements); }); // Create the .nuspec file - const nuspecContentTemplate = fs.readFileSync(`./src/dotnetnew/${ packageId }.nuspec`); + const nuspecContentTemplate = fs.readFileSync(path.join(packageSourceRootDir, `${ packageId }.nuspec`)); writeFileEnsuringDirExists(outputRoot, `${ packageId }.nuspec`, applyContentReplacements(nuspecContentTemplate, [ From 8d6119f31dc5c65052125ec09cd1ac5bc86cce0d Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Wed, 23 Aug 2017 15:04:04 -0700 Subject: [PATCH 017/195] Remove the Yeoman-specific gitignore workaround --- .../Content/aurelia/{template_gitignore => .gitignore} | 0 .../knockout/{template_gitignore => .gitignore} | 0 .../Content/vue/{template_gitignore => .gitignore} | 0 .../Content/angular/{template_gitignore => .gitignore} | 0 .../Content/react/{template_gitignore => .gitignore} | 0 .../Content/redux/{template_gitignore => .gitignore} | 0 templates/package-builder/src/build/build.ts | 10 +++------- 7 files changed, 3 insertions(+), 7 deletions(-) rename templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/{template_gitignore => .gitignore} (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/{template_gitignore => .gitignore} (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/{template_gitignore => .gitignore} (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/{template_gitignore => .gitignore} (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/{template_gitignore => .gitignore} (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/{template_gitignore => .gitignore} (100%) diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/template_gitignore b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/.gitignore similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/template_gitignore rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/.gitignore diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/template_gitignore b/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/.gitignore similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/template_gitignore rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/.gitignore diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/template_gitignore b/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/.gitignore similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/template_gitignore rename to templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/.gitignore diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/template_gitignore b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/.gitignore similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/template_gitignore rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/.gitignore diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/template_gitignore b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/.gitignore similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/template_gitignore rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/.gitignore diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/template_gitignore b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/.gitignore similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/template_gitignore rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/.gitignore diff --git a/templates/package-builder/src/build/build.ts b/templates/package-builder/src/build/build.ts index 3abc13d3..ee57fc13 100644 --- a/templates/package-builder/src/build/build.ts +++ b/templates/package-builder/src/build/build.ts @@ -9,7 +9,7 @@ import * as childProcess from 'child_process'; import * as targz from 'tar.gz'; const isWindows = /^win/.test(process.platform); -const textFileExtensions = ['.gitignore', 'template_gitignore', '.config', '.cs', '.cshtml', '.csproj', '.html', '.js', '.json', '.jsx', '.md', '.nuspec', '.ts', '.tsx']; +const textFileExtensions = ['.gitignore', '.config', '.cs', '.cshtml', '.csproj', '.html', '.js', '.json', '.jsx', '.md', '.nuspec', '.ts', '.tsx']; const dotNetPackages = [ 'Microsoft.DotNet.Web.Spa.ProjectTemplates', @@ -28,10 +28,7 @@ function writeFileEnsuringDirExists(root: string, filename: string, contents: st } function listFilesExcludingGitignored(root: string): string[] { - // Note that the gitignore files, prior to be written by the generator, are called 'template_gitignore' - // instead of '.gitignore'. This is a workaround for Yeoman doing strange stuff with .gitignore files - // (it renames them to .npmignore, which is not helpful). - let gitIgnorePath = path.join(root, 'template_gitignore'); + let gitIgnorePath = path.join(root, '.gitignore'); let gitignoreEvaluator = fs.existsSync(gitIgnorePath) ? gitignore.compile(fs.readFileSync(gitIgnorePath, 'utf8')) : { accepts: () => true }; @@ -99,8 +96,7 @@ function buildDotNetNewNuGetPackage(packageId: string) { const sourceProjectName = 'WebApplicationBasic'; const projectGuid = '00000000-0000-0000-0000-000000000000'; const filenameReplacements = [ - { from: /.*\.csproj$/, to: `${sourceProjectName}.csproj` }, - { from: /\btemplate_gitignore$/, to: '.gitignore' } + { from: /.*\.csproj$/, to: `${sourceProjectName}.csproj` } ]; const contentReplacements = []; From 45d645931b248692c60b267f467def6b0ef1e9df Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Wed, 23 Aug 2017 15:27:15 -0700 Subject: [PATCH 018/195] Remove template build dynamic filename replacement. Working towards eliminating template build process completely. --- .../aurelia/.template.config/template.json | 4 +-- .../app/components/navmenu/navmenu.html | 2 +- .../aurelia/Controllers/HomeController.cs | 2 +- .../Controllers/SampleDataController.cs | 2 +- .../Content/aurelia/Program.cs | 2 +- .../Content/aurelia/Startup.cs | 2 +- .../aurelia/Views/Shared/_Layout.cshtml | 2 +- .../Content/aurelia/Views/_ViewImports.cshtml | 2 +- .../Content/aurelia/npm-shrinkwrap.json | 2 +- .../Content/aurelia/package.json | 2 +- .../knockout/.template.config/template.json | 4 +-- .../components/nav-menu/nav-menu.html | 2 +- .../knockout/Controllers/HomeController.cs | 2 +- .../Controllers/SampleDataController.cs | 2 +- .../Content/knockout/Program.cs | 2 +- .../Content/knockout/Startup.cs | 2 +- .../knockout/Views/Shared/_Layout.cshtml | 2 +- .../knockout/Views/_ViewImports.cshtml | 2 +- .../Content/knockout/npm-shrinkwrap.json | 2 +- .../Content/knockout/package.json | 2 +- .../vue/.template.config/template.json | 4 +-- .../components/navmenu/navmenu.vue.html | 2 +- .../Content/vue/Controllers/HomeController.cs | 2 +- .../vue/Controllers/SampleDataController.cs | 2 +- .../Content/vue/Program.cs | 2 +- .../Content/vue/Startup.cs | 2 +- .../Content/vue/Views/Shared/_Layout.cshtml | 2 +- .../Content/vue/Views/_ViewImports.cshtml | 2 +- .../Content/vue/npm-shrinkwrap.json | 2 +- .../Content/vue/package.json | 2 +- .../angular/.template.config/template.json | 4 +-- .../components/navmenu/navmenu.component.html | 2 +- .../angular/Controllers/HomeController.cs | 2 +- .../Controllers/SampleDataController.cs | 2 +- .../Content/angular/Program.cs | 2 +- .../Content/angular/Startup.cs | 2 +- .../angular/Views/Shared/_Layout.cshtml | 2 +- .../Content/angular/Views/_ViewImports.cshtml | 2 +- .../Content/angular/npm-shrinkwrap.json | 2 +- .../Content/angular/package.json | 2 +- .../react/.template.config/template.json | 4 +-- .../react/ClientApp/components/NavMenu.tsx | 2 +- .../react/Controllers/HomeController.cs | 2 +- .../react/Controllers/SampleDataController.cs | 2 +- .../Content/react/Program.cs | 2 +- .../Content/react/Startup.cs | 2 +- .../Content/react/Views/Shared/_Layout.cshtml | 2 +- .../Content/react/Views/_ViewImports.cshtml | 2 +- .../Content/react/npm-shrinkwrap.json | 2 +- .../Content/react/package.json | 2 +- .../redux/.template.config/template.json | 4 +-- .../redux/ClientApp/components/NavMenu.tsx | 2 +- .../redux/Controllers/HomeController.cs | 2 +- .../redux/Controllers/SampleDataController.cs | 2 +- .../Content/redux/Program.cs | 2 +- .../Content/redux/Startup.cs | 2 +- .../Content/redux/Views/Shared/_Layout.cshtml | 2 +- .../Content/redux/Views/_ViewImports.cshtml | 2 +- .../Content/redux/npm-shrinkwrap.json | 2 +- .../Content/redux/package.json | 2 +- templates/package-builder/src/build/build.ts | 26 ++----------------- 61 files changed, 68 insertions(+), 90 deletions(-) diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/.template.config/template.json b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/.template.config/template.json index 5c2277b3..3b176af9 100644 --- a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/.template.config/template.json +++ b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/.template.config/template.json @@ -11,11 +11,11 @@ "preferNameDirectory": true, "primaryOutputs": [ { - "path": "WebApplicationBasic.csproj" + "path": "AureliaSpa.csproj" } ], "shortName": "aurelia", - "sourceName": "WebApplicationBasic", + "sourceName": "AureliaSpa", "sources": [ { "source": "./", diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/navmenu/navmenu.html b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/navmenu/navmenu.html index a604b7e8..1661aa62 100644 --- a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/navmenu/navmenu.html +++ b/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/navmenu/navmenu.html @@ -9,7 +9,7 @@ - WebApplicationBasic + AureliaSpa
diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Controllers/HomeController.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Controllers/HomeController.cs index 2889abd9..32f2cee1 100644 --- a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Controllers/HomeController.cs +++ b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Controllers/HomeController.cs @@ -5,7 +5,7 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; -namespace WebApplicationBasic.Controllers +namespace ReactSpa.Controllers { public class HomeController : Controller { diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Controllers/SampleDataController.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Controllers/SampleDataController.cs index 0f1aa37a..c0c9e37a 100644 --- a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Controllers/SampleDataController.cs +++ b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Controllers/SampleDataController.cs @@ -4,7 +4,7 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; -namespace WebApplicationBasic.Controllers +namespace ReactSpa.Controllers { [Route("api/[controller]")] public class SampleDataController : Controller diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Program.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Program.cs index e1e634e4..719033ca 100644 --- a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Program.cs +++ b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Program.cs @@ -8,7 +8,7 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Logging; -namespace WebApplicationBasic +namespace ReactSpa { public class Program { diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Startup.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Startup.cs index 740f1139..5920452e 100644 --- a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Startup.cs +++ b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Startup.cs @@ -8,7 +8,7 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; -namespace WebApplicationBasic +namespace ReactSpa { public class Startup { diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Views/Shared/_Layout.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Views/Shared/_Layout.cshtml index 2860f315..74472d3c 100644 --- a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Views/Shared/_Layout.cshtml +++ b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Views/Shared/_Layout.cshtml @@ -3,7 +3,7 @@ - @ViewData["Title"] - WebApplicationBasic + @ViewData["Title"] - ReactSpa diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Views/_ViewImports.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Views/_ViewImports.cshtml index 8edbc68c..d097fcbd 100644 --- a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Views/_ViewImports.cshtml +++ b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Views/_ViewImports.cshtml @@ -1,3 +1,3 @@ -@using WebApplicationBasic +@using ReactSpa @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers @addTagHelper *, Microsoft.AspNetCore.SpaServices diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/npm-shrinkwrap.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/npm-shrinkwrap.json index 3df0b409..cc531399 100644 --- a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/npm-shrinkwrap.json +++ b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/npm-shrinkwrap.json @@ -1,5 +1,5 @@ { - "name": "WebApplicationBasic", + "name": "ReactSpa", "version": "0.0.0", "dependencies": { "@types/history": { diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/package.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/package.json index 5431d17d..29cf148d 100644 --- a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/package.json +++ b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/package.json @@ -1,5 +1,5 @@ { - "name": "WebApplicationBasic", + "name": "ReactSpa", "private": true, "version": "0.0.0", "devDependencies": { diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/.template.config/template.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/.template.config/template.json index 0dc06ba6..38418e8d 100644 --- a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/.template.config/template.json +++ b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/.template.config/template.json @@ -11,11 +11,11 @@ "preferNameDirectory": true, "primaryOutputs": [ { - "path": "WebApplicationBasic.csproj" + "path": "ReactReduxSpa.csproj" } ], "shortName": "reactredux", - "sourceName": "WebApplicationBasic", + "sourceName": "ReactReduxSpa", "sources": [ { "source": "./", diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/components/NavMenu.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/components/NavMenu.tsx index 17471480..3f60015d 100644 --- a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/components/NavMenu.tsx +++ b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/components/NavMenu.tsx @@ -12,7 +12,7 @@ export class NavMenu extends React.Component<{}, {}> { - WebApplicationBasic + ReactReduxSpa
diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Controllers/HomeController.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Controllers/HomeController.cs index 2889abd9..6931d537 100644 --- a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Controllers/HomeController.cs +++ b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Controllers/HomeController.cs @@ -5,7 +5,7 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; -namespace WebApplicationBasic.Controllers +namespace ReactReduxSpa.Controllers { public class HomeController : Controller { diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Controllers/SampleDataController.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Controllers/SampleDataController.cs index 69724757..82868243 100644 --- a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Controllers/SampleDataController.cs +++ b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Controllers/SampleDataController.cs @@ -4,7 +4,7 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; -namespace WebApplicationBasic.Controllers +namespace ReactReduxSpa.Controllers { [Route("api/[controller]")] public class SampleDataController : Controller diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Program.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Program.cs index e1e634e4..708408ce 100644 --- a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Program.cs +++ b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Program.cs @@ -8,7 +8,7 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Logging; -namespace WebApplicationBasic +namespace ReactReduxSpa { public class Program { diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Startup.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Startup.cs index 740f1139..7da1e590 100644 --- a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Startup.cs +++ b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Startup.cs @@ -8,7 +8,7 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; -namespace WebApplicationBasic +namespace ReactReduxSpa { public class Startup { diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Views/Shared/_Layout.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Views/Shared/_Layout.cshtml index 388f8f90..7c3e0f87 100644 --- a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Views/Shared/_Layout.cshtml +++ b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Views/Shared/_Layout.cshtml @@ -3,7 +3,7 @@ - @ViewData["Title"] - WebApplicationBasic + @ViewData["Title"] - ReactReduxSpa diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Views/_ViewImports.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Views/_ViewImports.cshtml index 8edbc68c..cda19287 100644 --- a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Views/_ViewImports.cshtml +++ b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Views/_ViewImports.cshtml @@ -1,3 +1,3 @@ -@using WebApplicationBasic +@using ReactReduxSpa @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers @addTagHelper *, Microsoft.AspNetCore.SpaServices diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/npm-shrinkwrap.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/npm-shrinkwrap.json index 4da356cf..13165b4c 100644 --- a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/npm-shrinkwrap.json +++ b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/npm-shrinkwrap.json @@ -1,5 +1,5 @@ { - "name": "WebApplicationBasic", + "name": "ReactReduxSpa", "version": "0.0.0", "dependencies": { "@types/history": { diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/package.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/package.json index c7c82883..3991fb10 100644 --- a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/package.json +++ b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/package.json @@ -1,5 +1,5 @@ { - "name": "WebApplicationBasic", + "name": "ReactReduxSpa", "private": true, "version": "0.0.0", "dependencies": { diff --git a/templates/package-builder/src/build/build.ts b/templates/package-builder/src/build/build.ts index ee57fc13..05611e05 100644 --- a/templates/package-builder/src/build/build.ts +++ b/templates/package-builder/src/build/build.ts @@ -9,18 +9,12 @@ import * as childProcess from 'child_process'; import * as targz from 'tar.gz'; const isWindows = /^win/.test(process.platform); -const textFileExtensions = ['.gitignore', '.config', '.cs', '.cshtml', '.csproj', '.html', '.js', '.json', '.jsx', '.md', '.nuspec', '.ts', '.tsx']; const dotNetPackages = [ 'Microsoft.DotNet.Web.Spa.ProjectTemplates', 'Microsoft.AspNetCore.SpaTemplates' ]; -function isTextFile(filename: string): boolean { - return textFileExtensions.indexOf(path.extname(filename).toLowerCase()) >= 0 - || textFileExtensions.indexOf(path.basename(filename)) >= 0; -} - function writeFileEnsuringDirExists(root: string, filename: string, contents: string | Buffer) { let fullPath = path.join(root, filename); mkdirp.sync(path.dirname(fullPath)); @@ -45,18 +39,9 @@ function applyContentReplacements(sourceContent: Buffer, contentReplacements: { return new Buffer(sourceText, 'utf8'); } -function writeTemplate(sourceRoot: string, destRoot: string, contentReplacements: { from: RegExp, to: string }[], filenameReplacements: { from: RegExp, to: string }[]) { +function writeTemplate(sourceRoot: string, destRoot: string) { listFilesExcludingGitignored(sourceRoot).forEach(fn => { let sourceContent = fs.readFileSync(path.join(sourceRoot, fn)); - if (isTextFile(fn)) { - sourceContent = applyContentReplacements(sourceContent, contentReplacements); - } - - // Also apply replacements in filenames - filenameReplacements.forEach(replacement => { - fn = fn.replace(replacement.from, replacement.to); - }); - writeFileEnsuringDirExists(destRoot, fn, sourceContent); }); } @@ -93,20 +78,13 @@ function buildDotNetNewNuGetPackage(packageId: string) { rimraf.sync(outputRoot); // Copy template files - const sourceProjectName = 'WebApplicationBasic'; - const projectGuid = '00000000-0000-0000-0000-000000000000'; - const filenameReplacements = [ - { from: /.*\.csproj$/, to: `${sourceProjectName}.csproj` } - ]; - const contentReplacements = []; - const packageSourceRootDir = path.join('../', packageId); const templatesInPackage = fs.readdirSync(path.join(packageSourceRootDir, 'Content')); _.forEach(templatesInPackage, templateName => { const templateSourceDir = path.join(packageSourceRootDir, 'Content', templateName); const templateOutputDir = path.join(outputRoot, 'Content', templateName); - writeTemplate(templateSourceDir, templateOutputDir, contentReplacements, filenameReplacements); + writeTemplate(templateSourceDir, templateOutputDir); }); // Create the .nuspec file From 559832bb6d557229e909ac0e669def3d1ec174e3 Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Wed, 23 Aug 2017 15:41:09 -0700 Subject: [PATCH 019/195] Remove dynamic content replacement from nuspec files --- .../Microsoft.AspNetCore.SpaTemplates.nuspec | 2 +- ...oft.DotNet.Web.Spa.ProjectTemplates.nuspec | 2 +- templates/package-builder/src/build/build.ts | 33 +++++-------------- 3 files changed, 11 insertions(+), 26 deletions(-) diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Microsoft.AspNetCore.SpaTemplates.nuspec b/templates/Microsoft.AspNetCore.SpaTemplates/Microsoft.AspNetCore.SpaTemplates.nuspec index e873687a..5d2159cf 100644 --- a/templates/Microsoft.AspNetCore.SpaTemplates/Microsoft.AspNetCore.SpaTemplates.nuspec +++ b/templates/Microsoft.AspNetCore.SpaTemplates/Microsoft.AspNetCore.SpaTemplates.nuspec @@ -2,7 +2,7 @@ Microsoft.AspNetCore.SpaTemplates - 1.0.{buildnumber} + 0.0.0 Single Page Application templates for ASP.NET Core Microsoft en-US diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Microsoft.DotNet.Web.Spa.ProjectTemplates.nuspec b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Microsoft.DotNet.Web.Spa.ProjectTemplates.nuspec index 05690b87..604ed87b 100644 --- a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Microsoft.DotNet.Web.Spa.ProjectTemplates.nuspec +++ b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Microsoft.DotNet.Web.Spa.ProjectTemplates.nuspec @@ -2,7 +2,7 @@ Microsoft.DotNet.Web.Spa.ProjectTemplates - 1.0.{buildnumber} + 0.0.0 Single Page Application templates for ASP.NET Core Microsoft en-US diff --git a/templates/package-builder/src/build/build.ts b/templates/package-builder/src/build/build.ts index 05611e05..4e884467 100644 --- a/templates/package-builder/src/build/build.ts +++ b/templates/package-builder/src/build/build.ts @@ -30,15 +30,6 @@ function listFilesExcludingGitignored(root: string): string[] { .filter(fn => gitignoreEvaluator.accepts(fn)); } -function applyContentReplacements(sourceContent: Buffer, contentReplacements: { from: RegExp, to: string }[]) { - let sourceText = sourceContent.toString('utf8'); - contentReplacements.forEach(replacement => { - sourceText = sourceText.replace(replacement.from, replacement.to); - }); - - return new Buffer(sourceText, 'utf8'); -} - function writeTemplate(sourceRoot: string, destRoot: string) { listFilesExcludingGitignored(sourceRoot).forEach(fn => { let sourceContent = fs.readFileSync(path.join(sourceRoot, fn)); @@ -46,14 +37,6 @@ function writeTemplate(sourceRoot: string, destRoot: string) { }); } -function copyRecursive(sourceRoot: string, destRoot: string, matchGlob: string) { - glob.sync(matchGlob, { cwd: sourceRoot, dot: true, nodir: true }) - .forEach(fn => { - const sourceContent = fs.readFileSync(path.join(sourceRoot, fn)); - writeFileEnsuringDirExists(destRoot, fn, sourceContent); - }); -} - function getBuildNumber(): string { if (process.env.APPVEYOR_BUILD_NUMBER) { return process.env.APPVEYOR_BUILD_NUMBER; @@ -88,23 +71,25 @@ function buildDotNetNewNuGetPackage(packageId: string) { }); // Create the .nuspec file - const nuspecContentTemplate = fs.readFileSync(path.join(packageSourceRootDir, `${ packageId }.nuspec`)); + const nuspecFilename = `${ packageId }.nuspec`; + const nuspecContentTemplate = fs.readFileSync(path.join(packageSourceRootDir, nuspecFilename)); writeFileEnsuringDirExists(outputRoot, - `${ packageId }.nuspec`, - applyContentReplacements(nuspecContentTemplate, [ - { from: /\{buildnumber\}/g, to: getBuildNumber() }, - ]) + nuspecFilename, + nuspecContentTemplate ); // Invoke NuGet to create the final package const nugetExe = path.join(process.cwd(), './bin/NuGet.exe'); const nugetStartInfo = { cwd: outputRoot, stdio: 'inherit' }; + const packageVersion = `1.0.${ getBuildNumber() }`; + const nugetArgs = ['pack', nuspecFilename, '-Version', packageVersion]; if (isWindows) { // Invoke NuGet.exe directly - childProcess.spawnSync(nugetExe, ['pack'], nugetStartInfo); + childProcess.spawnSync(nugetExe, nugetArgs, nugetStartInfo); } else { // Invoke via Mono (relying on that being available) - childProcess.spawnSync('mono', [nugetExe, 'pack'], nugetStartInfo); + nugetArgs.unshift(nugetExe); + childProcess.spawnSync('mono', nugetArgs, nugetStartInfo); } // Clean up From c62a3b491cc96622882337e80bb00edcdb5eec7b Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Wed, 23 Aug 2017 16:38:16 -0700 Subject: [PATCH 020/195] Fix templates directory structure to produce correct nupkg output --- .../{Content => }/aurelia/.gitignore | 0 .../aurelia/.template.config/dotnetcli.host.json | 0 .../{Content => }/aurelia/.template.config/icon.png | Bin .../aurelia/.template.config/template.json | 0 .../aurelia/.template.config/vs-2017.3.host.json | 0 .../{Content => }/aurelia/AureliaSpa.csproj | 0 .../aurelia/ClientApp/app/components/app/app.css | 0 .../aurelia/ClientApp/app/components/app/app.html | 0 .../aurelia/ClientApp/app/components/app/app.ts | 0 .../ClientApp/app/components/counter/counter.html | 0 .../ClientApp/app/components/counter/counter.ts | 0 .../app/components/fetchdata/fetchdata.html | 0 .../ClientApp/app/components/fetchdata/fetchdata.ts | 0 .../aurelia/ClientApp/app/components/home/home.html | 0 .../aurelia/ClientApp/app/components/home/home.ts | 0 .../ClientApp/app/components/navmenu/navmenu.css | 0 .../ClientApp/app/components/navmenu/navmenu.html | 0 .../{Content => }/aurelia/ClientApp/boot.ts | 0 .../aurelia/Controllers/HomeController.cs | 0 .../aurelia/Controllers/SampleDataController.cs | 0 .../{Content => }/aurelia/Program.cs | 0 .../{Content => }/aurelia/Startup.cs | 0 .../{Content => }/aurelia/Views/Home/Index.cshtml | 0 .../{Content => }/aurelia/Views/Shared/Error.cshtml | 0 .../aurelia/Views/Shared/_Layout.cshtml | 0 .../{Content => }/aurelia/Views/_ViewImports.cshtml | 0 .../{Content => }/aurelia/Views/_ViewStart.cshtml | 0 .../aurelia/appsettings.Development.json | 0 .../{Content => }/aurelia/appsettings.json | 0 .../{Content => }/aurelia/npm-shrinkwrap.json | 0 .../{Content => }/aurelia/package.json | 0 .../{Content => }/aurelia/tsconfig.json | 0 .../{Content => }/aurelia/webpack.config.js | 0 .../{Content => }/aurelia/webpack.config.vendor.js | 0 .../{Content => }/aurelia/wwwroot/favicon.ico | Bin .../{Content => }/knockout/.gitignore | 0 .../knockout/.template.config/dotnetcli.host.json | 0 .../knockout/.template.config/icon.png | Bin .../knockout/.template.config/template.json | 0 .../knockout/.template.config/vs-2017.3.host.json | 0 .../{Content => }/knockout/ClientApp/boot.ts | 0 .../ClientApp/components/app-root/app-root.html | 0 .../ClientApp/components/app-root/app-root.ts | 0 .../components/counter-example/counter-example.html | 0 .../components/counter-example/counter-example.ts | 0 .../ClientApp/components/fetch-data/fetch-data.html | 0 .../ClientApp/components/fetch-data/fetch-data.ts | 0 .../ClientApp/components/home-page/home-page.html | 0 .../ClientApp/components/home-page/home-page.ts | 0 .../ClientApp/components/nav-menu/nav-menu.html | 0 .../ClientApp/components/nav-menu/nav-menu.ts | 0 .../{Content => }/knockout/ClientApp/css/site.css | 0 .../{Content => }/knockout/ClientApp/router.ts | 0 .../knockout/ClientApp/webpack-component-loader.ts | 0 .../knockout/Controllers/HomeController.cs | 0 .../knockout/Controllers/SampleDataController.cs | 0 .../{Content => }/knockout/KnockoutSpa.csproj | 0 .../{Content => }/knockout/Program.cs | 0 .../{Content => }/knockout/Startup.cs | 0 .../{Content => }/knockout/Views/Home/Index.cshtml | 0 .../knockout/Views/Shared/Error.cshtml | 0 .../knockout/Views/Shared/_Layout.cshtml | 0 .../knockout/Views/_ViewImports.cshtml | 0 .../{Content => }/knockout/Views/_ViewStart.cshtml | 0 .../knockout/appsettings.Development.json | 0 .../{Content => }/knockout/appsettings.json | 0 .../{Content => }/knockout/npm-shrinkwrap.json | 0 .../{Content => }/knockout/package.json | 0 .../{Content => }/knockout/tsconfig.json | 0 .../{Content => }/knockout/webpack.config.js | 0 .../{Content => }/knockout/webpack.config.vendor.js | 0 .../{Content => }/knockout/wwwroot/favicon.ico | Bin .../{Content => }/vue/.gitignore | 0 .../vue/.template.config/dotnetcli.host.json | 0 .../{Content => }/vue/.template.config/icon.png | Bin .../vue/.template.config/template.json | 0 .../vue/.template.config/vs-2017.3.host.json | 0 .../{Content => }/vue/ClientApp/boot.ts | 0 .../vue/ClientApp/components/app/app.ts | 0 .../vue/ClientApp/components/app/app.vue.html | 0 .../vue/ClientApp/components/counter/counter.ts | 0 .../ClientApp/components/counter/counter.vue.html | 0 .../vue/ClientApp/components/fetchdata/fetchdata.ts | 0 .../components/fetchdata/fetchdata.vue.html | 0 .../vue/ClientApp/components/home/home.vue.html | 0 .../vue/ClientApp/components/navmenu/navmenu.css | 0 .../ClientApp/components/navmenu/navmenu.vue.html | 0 .../{Content => }/vue/ClientApp/css/site.css | 0 .../{Content => }/vue/Controllers/HomeController.cs | 0 .../vue/Controllers/SampleDataController.cs | 0 .../{Content => }/vue/Program.cs | 0 .../{Content => }/vue/Startup.cs | 0 .../{Content => }/vue/Views/Home/Index.cshtml | 0 .../{Content => }/vue/Views/Shared/Error.cshtml | 0 .../{Content => }/vue/Views/Shared/_Layout.cshtml | 0 .../{Content => }/vue/Views/_ViewImports.cshtml | 0 .../{Content => }/vue/Views/_ViewStart.cshtml | 0 .../{Content => }/vue/VueSpa.csproj | 0 .../{Content => }/vue/appsettings.Development.json | 0 .../{Content => }/vue/appsettings.json | 0 .../{Content => }/vue/npm-shrinkwrap.json | 0 .../{Content => }/vue/package.json | 0 .../{Content => }/vue/tsconfig.json | 0 .../{Content => }/vue/webpack.config.js | 0 .../{Content => }/vue/webpack.config.vendor.js | 0 .../{Content => }/vue/wwwroot/favicon.ico | Bin .../{Content => }/angular/.gitignore | 0 .../angular/.template.config/dotnetcli.host.json | 0 .../{Content => }/angular/.template.config/icon.png | Bin .../angular/.template.config/template.json | 0 .../angular/.template.config/vs-2017.3.host.json | 0 .../{Content => }/angular/AngularSpa.csproj | 0 .../angular/ClientApp/app/app.module.browser.ts | 0 .../angular/ClientApp/app/app.module.server.ts | 0 .../angular/ClientApp/app/app.module.shared.ts | 0 .../ClientApp/app/components/app/app.component.css | 0 .../ClientApp/app/components/app/app.component.html | 0 .../ClientApp/app/components/app/app.component.ts | 0 .../app/components/counter/counter.component.html | 0 .../components/counter/counter.component.spec.ts | 0 .../app/components/counter/counter.component.ts | 0 .../components/fetchdata/fetchdata.component.html | 0 .../app/components/fetchdata/fetchdata.component.ts | 0 .../app/components/home/home.component.html | 0 .../ClientApp/app/components/home/home.component.ts | 0 .../app/components/navmenu/navmenu.component.css | 0 .../app/components/navmenu/navmenu.component.html | 0 .../app/components/navmenu/navmenu.component.ts | 0 .../{Content => }/angular/ClientApp/boot.browser.ts | 0 .../{Content => }/angular/ClientApp/boot.server.ts | 0 .../angular/ClientApp/test/boot-tests.ts | 0 .../angular/ClientApp/test/karma.conf.js | 0 .../angular/Controllers/HomeController.cs | 0 .../angular/Controllers/SampleDataController.cs | 0 .../{Content => }/angular/Program.cs | 0 .../{Content => }/angular/Startup.cs | 0 .../{Content => }/angular/Views/Home/Index.cshtml | 0 .../{Content => }/angular/Views/Shared/Error.cshtml | 0 .../angular/Views/Shared/_Layout.cshtml | 0 .../{Content => }/angular/Views/_ViewImports.cshtml | 0 .../{Content => }/angular/Views/_ViewStart.cshtml | 0 .../angular/appsettings.Development.json | 0 .../{Content => }/angular/appsettings.json | 0 .../{Content => }/angular/npm-shrinkwrap.json | 0 .../{Content => }/angular/package.json | 0 .../{Content => }/angular/tsconfig.json | 0 .../{Content => }/angular/webpack.config.js | 0 .../{Content => }/angular/webpack.config.vendor.js | 0 .../{Content => }/angular/wwwroot/favicon.ico | Bin .../{Content => }/react/.gitignore | 0 .../react/.template.config/dotnetcli.host.json | 0 .../{Content => }/react/.template.config/icon.png | Bin .../react/.template.config/template.json | 0 .../react/.template.config/vs-2017.3.host.json | 0 .../{Content => }/react/ClientApp/boot.tsx | 0 .../react/ClientApp/components/Counter.tsx | 0 .../react/ClientApp/components/FetchData.tsx | 0 .../react/ClientApp/components/Home.tsx | 0 .../react/ClientApp/components/Layout.tsx | 0 .../react/ClientApp/components/NavMenu.tsx | 0 .../{Content => }/react/ClientApp/css/site.css | 0 .../{Content => }/react/ClientApp/routes.tsx | 0 .../react/Controllers/HomeController.cs | 0 .../react/Controllers/SampleDataController.cs | 0 .../{Content => }/react/Program.cs | 0 .../{Content => }/react/ReactSpa.csproj | 0 .../{Content => }/react/Startup.cs | 0 .../{Content => }/react/Views/Home/Index.cshtml | 0 .../{Content => }/react/Views/Shared/Error.cshtml | 0 .../{Content => }/react/Views/Shared/_Layout.cshtml | 0 .../{Content => }/react/Views/_ViewImports.cshtml | 0 .../{Content => }/react/Views/_ViewStart.cshtml | 0 .../react/appsettings.Development.json | 0 .../{Content => }/react/appsettings.json | 0 .../{Content => }/react/npm-shrinkwrap.json | 0 .../{Content => }/react/package.json | 0 .../{Content => }/react/tsconfig.json | 0 .../{Content => }/react/webpack.config.js | 0 .../{Content => }/react/webpack.config.vendor.js | 0 .../{Content => }/react/wwwroot/favicon.ico | Bin .../{Content => }/redux/.gitignore | 0 .../redux/.template.config/dotnetcli.host.json | 0 .../{Content => }/redux/.template.config/icon.png | Bin .../redux/.template.config/template.json | 0 .../redux/.template.config/vs-2017.3.host.json | 0 .../{Content => }/redux/ClientApp/boot-client.tsx | 0 .../{Content => }/redux/ClientApp/boot-server.tsx | 0 .../redux/ClientApp/components/Counter.tsx | 0 .../redux/ClientApp/components/FetchData.tsx | 0 .../redux/ClientApp/components/Home.tsx | 0 .../redux/ClientApp/components/Layout.tsx | 0 .../redux/ClientApp/components/NavMenu.tsx | 0 .../{Content => }/redux/ClientApp/configureStore.ts | 0 .../{Content => }/redux/ClientApp/css/site.css | 0 .../{Content => }/redux/ClientApp/routes.tsx | 0 .../{Content => }/redux/ClientApp/store/Counter.ts | 0 .../redux/ClientApp/store/WeatherForecasts.ts | 0 .../{Content => }/redux/ClientApp/store/index.ts | 0 .../redux/Controllers/HomeController.cs | 0 .../redux/Controllers/SampleDataController.cs | 0 .../{Content => }/redux/Program.cs | 0 .../{Content => }/redux/ReactReduxSpa.csproj | 0 .../{Content => }/redux/Startup.cs | 0 .../{Content => }/redux/Views/Home/Index.cshtml | 0 .../{Content => }/redux/Views/Shared/Error.cshtml | 0 .../{Content => }/redux/Views/Shared/_Layout.cshtml | 0 .../{Content => }/redux/Views/_ViewImports.cshtml | 0 .../{Content => }/redux/Views/_ViewStart.cshtml | 0 .../redux/appsettings.Development.json | 0 .../{Content => }/redux/appsettings.json | 0 .../{Content => }/redux/npm-shrinkwrap.json | 0 .../{Content => }/redux/package.json | 0 .../{Content => }/redux/tsconfig.json | 0 .../{Content => }/redux/webpack.config.js | 0 .../{Content => }/redux/webpack.config.vendor.js | 0 .../{Content => }/redux/wwwroot/favicon.ico | Bin 216 files changed, 0 insertions(+), 0 deletions(-) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/.gitignore (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/.template.config/dotnetcli.host.json (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/.template.config/icon.png (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/.template.config/template.json (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/.template.config/vs-2017.3.host.json (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/AureliaSpa.csproj (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/ClientApp/app/components/app/app.css (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/ClientApp/app/components/app/app.html (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/ClientApp/app/components/app/app.ts (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/ClientApp/app/components/counter/counter.html (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/ClientApp/app/components/counter/counter.ts (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/ClientApp/app/components/fetchdata/fetchdata.html (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/ClientApp/app/components/fetchdata/fetchdata.ts (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/ClientApp/app/components/home/home.html (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/ClientApp/app/components/home/home.ts (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/ClientApp/app/components/navmenu/navmenu.css (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/ClientApp/app/components/navmenu/navmenu.html (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/ClientApp/boot.ts (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/Controllers/HomeController.cs (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/Controllers/SampleDataController.cs (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/Program.cs (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/Startup.cs (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/Views/Home/Index.cshtml (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/Views/Shared/Error.cshtml (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/Views/Shared/_Layout.cshtml (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/Views/_ViewImports.cshtml (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/Views/_ViewStart.cshtml (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/appsettings.Development.json (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/appsettings.json (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/npm-shrinkwrap.json (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/package.json (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/tsconfig.json (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/webpack.config.js (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/webpack.config.vendor.js (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/aurelia/wwwroot/favicon.ico (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/.gitignore (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/.template.config/dotnetcli.host.json (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/.template.config/icon.png (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/.template.config/template.json (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/.template.config/vs-2017.3.host.json (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/ClientApp/boot.ts (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/ClientApp/components/app-root/app-root.html (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/ClientApp/components/app-root/app-root.ts (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/ClientApp/components/counter-example/counter-example.html (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/ClientApp/components/counter-example/counter-example.ts (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/ClientApp/components/fetch-data/fetch-data.html (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/ClientApp/components/fetch-data/fetch-data.ts (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/ClientApp/components/home-page/home-page.html (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/ClientApp/components/home-page/home-page.ts (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/ClientApp/components/nav-menu/nav-menu.html (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/ClientApp/components/nav-menu/nav-menu.ts (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/ClientApp/css/site.css (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/ClientApp/router.ts (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/ClientApp/webpack-component-loader.ts (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/Controllers/HomeController.cs (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/Controllers/SampleDataController.cs (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/KnockoutSpa.csproj (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/Program.cs (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/Startup.cs (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/Views/Home/Index.cshtml (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/Views/Shared/Error.cshtml (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/Views/Shared/_Layout.cshtml (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/Views/_ViewImports.cshtml (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/Views/_ViewStart.cshtml (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/appsettings.Development.json (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/appsettings.json (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/npm-shrinkwrap.json (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/package.json (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/tsconfig.json (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/webpack.config.js (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/webpack.config.vendor.js (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/knockout/wwwroot/favicon.ico (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/.gitignore (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/.template.config/dotnetcli.host.json (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/.template.config/icon.png (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/.template.config/template.json (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/.template.config/vs-2017.3.host.json (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/ClientApp/boot.ts (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/ClientApp/components/app/app.ts (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/ClientApp/components/app/app.vue.html (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/ClientApp/components/counter/counter.ts (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/ClientApp/components/counter/counter.vue.html (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/ClientApp/components/fetchdata/fetchdata.ts (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/ClientApp/components/fetchdata/fetchdata.vue.html (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/ClientApp/components/home/home.vue.html (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/ClientApp/components/navmenu/navmenu.css (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/ClientApp/components/navmenu/navmenu.vue.html (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/ClientApp/css/site.css (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/Controllers/HomeController.cs (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/Controllers/SampleDataController.cs (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/Program.cs (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/Startup.cs (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/Views/Home/Index.cshtml (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/Views/Shared/Error.cshtml (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/Views/Shared/_Layout.cshtml (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/Views/_ViewImports.cshtml (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/Views/_ViewStart.cshtml (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/VueSpa.csproj (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/appsettings.Development.json (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/appsettings.json (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/npm-shrinkwrap.json (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/package.json (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/tsconfig.json (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/webpack.config.js (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/webpack.config.vendor.js (100%) rename templates/Microsoft.AspNetCore.SpaTemplates/{Content => }/vue/wwwroot/favicon.ico (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/.gitignore (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/.template.config/dotnetcli.host.json (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/.template.config/icon.png (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/.template.config/template.json (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/.template.config/vs-2017.3.host.json (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/AngularSpa.csproj (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/ClientApp/app/app.module.browser.ts (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/ClientApp/app/app.module.server.ts (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/ClientApp/app/app.module.shared.ts (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/ClientApp/app/components/app/app.component.css (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/ClientApp/app/components/app/app.component.html (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/ClientApp/app/components/app/app.component.ts (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/ClientApp/app/components/counter/counter.component.html (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/ClientApp/app/components/counter/counter.component.spec.ts (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/ClientApp/app/components/counter/counter.component.ts (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/ClientApp/app/components/fetchdata/fetchdata.component.html (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/ClientApp/app/components/fetchdata/fetchdata.component.ts (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/ClientApp/app/components/home/home.component.html (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/ClientApp/app/components/home/home.component.ts (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/ClientApp/app/components/navmenu/navmenu.component.css (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/ClientApp/app/components/navmenu/navmenu.component.html (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/ClientApp/app/components/navmenu/navmenu.component.ts (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/ClientApp/boot.browser.ts (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/ClientApp/boot.server.ts (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/ClientApp/test/boot-tests.ts (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/ClientApp/test/karma.conf.js (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/Controllers/HomeController.cs (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/Controllers/SampleDataController.cs (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/Program.cs (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/Startup.cs (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/Views/Home/Index.cshtml (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/Views/Shared/Error.cshtml (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/Views/Shared/_Layout.cshtml (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/Views/_ViewImports.cshtml (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/Views/_ViewStart.cshtml (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/appsettings.Development.json (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/appsettings.json (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/npm-shrinkwrap.json (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/package.json (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/tsconfig.json (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/webpack.config.js (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/webpack.config.vendor.js (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/angular/wwwroot/favicon.ico (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/.gitignore (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/.template.config/dotnetcli.host.json (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/.template.config/icon.png (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/.template.config/template.json (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/.template.config/vs-2017.3.host.json (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/ClientApp/boot.tsx (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/ClientApp/components/Counter.tsx (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/ClientApp/components/FetchData.tsx (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/ClientApp/components/Home.tsx (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/ClientApp/components/Layout.tsx (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/ClientApp/components/NavMenu.tsx (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/ClientApp/css/site.css (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/ClientApp/routes.tsx (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/Controllers/HomeController.cs (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/Controllers/SampleDataController.cs (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/Program.cs (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/ReactSpa.csproj (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/Startup.cs (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/Views/Home/Index.cshtml (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/Views/Shared/Error.cshtml (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/Views/Shared/_Layout.cshtml (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/Views/_ViewImports.cshtml (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/Views/_ViewStart.cshtml (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/appsettings.Development.json (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/appsettings.json (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/npm-shrinkwrap.json (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/package.json (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/tsconfig.json (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/webpack.config.js (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/webpack.config.vendor.js (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/react/wwwroot/favicon.ico (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/.gitignore (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/.template.config/dotnetcli.host.json (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/.template.config/icon.png (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/.template.config/template.json (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/.template.config/vs-2017.3.host.json (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/ClientApp/boot-client.tsx (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/ClientApp/boot-server.tsx (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/ClientApp/components/Counter.tsx (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/ClientApp/components/FetchData.tsx (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/ClientApp/components/Home.tsx (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/ClientApp/components/Layout.tsx (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/ClientApp/components/NavMenu.tsx (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/ClientApp/configureStore.ts (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/ClientApp/css/site.css (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/ClientApp/routes.tsx (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/ClientApp/store/Counter.ts (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/ClientApp/store/WeatherForecasts.ts (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/ClientApp/store/index.ts (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/Controllers/HomeController.cs (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/Controllers/SampleDataController.cs (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/Program.cs (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/ReactReduxSpa.csproj (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/Startup.cs (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/Views/Home/Index.cshtml (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/Views/Shared/Error.cshtml (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/Views/Shared/_Layout.cshtml (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/Views/_ViewImports.cshtml (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/Views/_ViewStart.cshtml (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/appsettings.Development.json (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/appsettings.json (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/npm-shrinkwrap.json (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/package.json (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/tsconfig.json (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/webpack.config.js (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/webpack.config.vendor.js (100%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/{Content => }/redux/wwwroot/favicon.ico (100%) diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/.gitignore b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/.gitignore similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/.gitignore rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/.gitignore diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/.template.config/dotnetcli.host.json b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/.template.config/dotnetcli.host.json similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/.template.config/dotnetcli.host.json rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/.template.config/dotnetcli.host.json diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/.template.config/icon.png b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/.template.config/icon.png similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/.template.config/icon.png rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/.template.config/icon.png diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/.template.config/template.json b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/.template.config/template.json similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/.template.config/template.json rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/.template.config/template.json diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/.template.config/vs-2017.3.host.json b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/.template.config/vs-2017.3.host.json similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/.template.config/vs-2017.3.host.json rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/.template.config/vs-2017.3.host.json diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/AureliaSpa.csproj b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/AureliaSpa.csproj similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/AureliaSpa.csproj rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/AureliaSpa.csproj diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/app/app.css b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/app/app.css similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/app/app.css rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/app/app.css diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/app/app.html b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/app/app.html similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/app/app.html rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/app/app.html diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/app/app.ts b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/app/app.ts similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/app/app.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/app/app.ts diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/counter/counter.html b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/counter/counter.html similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/counter/counter.html rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/counter/counter.html diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/counter/counter.ts b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/counter/counter.ts similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/counter/counter.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/counter/counter.ts diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/fetchdata/fetchdata.html b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/fetchdata/fetchdata.html similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/fetchdata/fetchdata.html rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/fetchdata/fetchdata.html diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/fetchdata/fetchdata.ts b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/fetchdata/fetchdata.ts similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/fetchdata/fetchdata.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/fetchdata/fetchdata.ts diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/home/home.html b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/home/home.html similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/home/home.html rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/home/home.html diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/home/home.ts b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/home/home.ts similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/home/home.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/home/home.ts diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/navmenu/navmenu.css b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/navmenu/navmenu.css similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/navmenu/navmenu.css rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/navmenu/navmenu.css diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/navmenu/navmenu.html b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/navmenu/navmenu.html similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/app/components/navmenu/navmenu.html rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/navmenu/navmenu.html diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/boot.ts b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/boot.ts similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/ClientApp/boot.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/boot.ts diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Controllers/HomeController.cs b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Controllers/HomeController.cs similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Controllers/HomeController.cs rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Controllers/HomeController.cs diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Controllers/SampleDataController.cs b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Controllers/SampleDataController.cs similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Controllers/SampleDataController.cs rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Controllers/SampleDataController.cs diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Program.cs b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Program.cs similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Program.cs rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Program.cs diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Startup.cs b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Startup.cs similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Startup.cs rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Startup.cs diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Views/Home/Index.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/Home/Index.cshtml similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Views/Home/Index.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/Home/Index.cshtml diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Views/Shared/Error.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/Shared/Error.cshtml similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Views/Shared/Error.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/Shared/Error.cshtml diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Views/Shared/_Layout.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/Shared/_Layout.cshtml similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Views/Shared/_Layout.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/Shared/_Layout.cshtml diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Views/_ViewImports.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/_ViewImports.cshtml similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Views/_ViewImports.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/_ViewImports.cshtml diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Views/_ViewStart.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/_ViewStart.cshtml similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/Views/_ViewStart.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/_ViewStart.cshtml diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/appsettings.Development.json b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/appsettings.Development.json similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/appsettings.Development.json rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/appsettings.Development.json diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/appsettings.json b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/appsettings.json similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/appsettings.json rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/appsettings.json diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/npm-shrinkwrap.json b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/npm-shrinkwrap.json similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/npm-shrinkwrap.json rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/npm-shrinkwrap.json diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/package.json b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/package.json similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/package.json rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/package.json diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/tsconfig.json b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/tsconfig.json similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/tsconfig.json rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/tsconfig.json diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/webpack.config.js b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/webpack.config.js similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/webpack.config.js rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/webpack.config.js diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/webpack.config.vendor.js b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/webpack.config.vendor.js similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/webpack.config.vendor.js rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/webpack.config.vendor.js diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/wwwroot/favicon.ico b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/wwwroot/favicon.ico similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/aurelia/wwwroot/favicon.ico rename to templates/Microsoft.AspNetCore.SpaTemplates/aurelia/wwwroot/favicon.ico diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/.gitignore b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/.gitignore similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/.gitignore rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/.gitignore diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/.template.config/dotnetcli.host.json b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/.template.config/dotnetcli.host.json similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/.template.config/dotnetcli.host.json rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/.template.config/dotnetcli.host.json diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/.template.config/icon.png b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/.template.config/icon.png similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/.template.config/icon.png rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/.template.config/icon.png diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/.template.config/template.json b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/.template.config/template.json similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/.template.config/template.json rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/.template.config/template.json diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/.template.config/vs-2017.3.host.json b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/.template.config/vs-2017.3.host.json similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/.template.config/vs-2017.3.host.json rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/.template.config/vs-2017.3.host.json diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/boot.ts b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/boot.ts similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/boot.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/boot.ts diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/app-root/app-root.html b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/app-root/app-root.html similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/app-root/app-root.html rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/app-root/app-root.html diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/app-root/app-root.ts b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/app-root/app-root.ts similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/app-root/app-root.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/app-root/app-root.ts diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/counter-example/counter-example.html b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/counter-example/counter-example.html similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/counter-example/counter-example.html rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/counter-example/counter-example.html diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/counter-example/counter-example.ts b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/counter-example/counter-example.ts similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/counter-example/counter-example.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/counter-example/counter-example.ts diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/fetch-data/fetch-data.html b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/fetch-data/fetch-data.html similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/fetch-data/fetch-data.html rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/fetch-data/fetch-data.html diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/fetch-data/fetch-data.ts b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/fetch-data/fetch-data.ts similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/fetch-data/fetch-data.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/fetch-data/fetch-data.ts diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/home-page/home-page.html b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/home-page/home-page.html similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/home-page/home-page.html rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/home-page/home-page.html diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/home-page/home-page.ts b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/home-page/home-page.ts similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/home-page/home-page.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/home-page/home-page.ts diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/nav-menu/nav-menu.html b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/nav-menu/nav-menu.html similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/nav-menu/nav-menu.html rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/nav-menu/nav-menu.html diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/nav-menu/nav-menu.ts b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/nav-menu/nav-menu.ts similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/components/nav-menu/nav-menu.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/nav-menu/nav-menu.ts diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/css/site.css b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/css/site.css similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/css/site.css rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/css/site.css diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/router.ts b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/router.ts similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/router.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/router.ts diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/webpack-component-loader.ts b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/webpack-component-loader.ts similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/ClientApp/webpack-component-loader.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/webpack-component-loader.ts diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Controllers/HomeController.cs b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Controllers/HomeController.cs similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Controllers/HomeController.cs rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/Controllers/HomeController.cs diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Controllers/SampleDataController.cs b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Controllers/SampleDataController.cs similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Controllers/SampleDataController.cs rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/Controllers/SampleDataController.cs diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/KnockoutSpa.csproj b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/KnockoutSpa.csproj similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/KnockoutSpa.csproj rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/KnockoutSpa.csproj diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Program.cs b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Program.cs similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Program.cs rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/Program.cs diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Startup.cs b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Startup.cs similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Startup.cs rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/Startup.cs diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Views/Home/Index.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/Home/Index.cshtml similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Views/Home/Index.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/Home/Index.cshtml diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Views/Shared/Error.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/Shared/Error.cshtml similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Views/Shared/Error.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/Shared/Error.cshtml diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Views/Shared/_Layout.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/Shared/_Layout.cshtml similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Views/Shared/_Layout.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/Shared/_Layout.cshtml diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Views/_ViewImports.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/_ViewImports.cshtml similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Views/_ViewImports.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/_ViewImports.cshtml diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Views/_ViewStart.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/_ViewStart.cshtml similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/Views/_ViewStart.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/_ViewStart.cshtml diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/appsettings.Development.json b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/appsettings.Development.json similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/appsettings.Development.json rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/appsettings.Development.json diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/appsettings.json b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/appsettings.json similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/appsettings.json rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/appsettings.json diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/npm-shrinkwrap.json b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/npm-shrinkwrap.json similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/npm-shrinkwrap.json rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/npm-shrinkwrap.json diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/package.json b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/package.json similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/package.json rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/package.json diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/tsconfig.json b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/tsconfig.json similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/tsconfig.json rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/tsconfig.json diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/webpack.config.js b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/webpack.config.js similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/webpack.config.js rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/webpack.config.js diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/webpack.config.vendor.js b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/webpack.config.vendor.js similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/webpack.config.vendor.js rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/webpack.config.vendor.js diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/wwwroot/favicon.ico b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/wwwroot/favicon.ico similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/knockout/wwwroot/favicon.ico rename to templates/Microsoft.AspNetCore.SpaTemplates/knockout/wwwroot/favicon.ico diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/.gitignore b/templates/Microsoft.AspNetCore.SpaTemplates/vue/.gitignore similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/.gitignore rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/.gitignore diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/.template.config/dotnetcli.host.json b/templates/Microsoft.AspNetCore.SpaTemplates/vue/.template.config/dotnetcli.host.json similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/.template.config/dotnetcli.host.json rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/.template.config/dotnetcli.host.json diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/.template.config/icon.png b/templates/Microsoft.AspNetCore.SpaTemplates/vue/.template.config/icon.png similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/.template.config/icon.png rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/.template.config/icon.png diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/.template.config/template.json b/templates/Microsoft.AspNetCore.SpaTemplates/vue/.template.config/template.json similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/.template.config/template.json rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/.template.config/template.json diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/.template.config/vs-2017.3.host.json b/templates/Microsoft.AspNetCore.SpaTemplates/vue/.template.config/vs-2017.3.host.json similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/.template.config/vs-2017.3.host.json rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/.template.config/vs-2017.3.host.json diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/boot.ts b/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/boot.ts similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/boot.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/boot.ts diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/app/app.ts b/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/app/app.ts similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/app/app.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/app/app.ts diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/app/app.vue.html b/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/app/app.vue.html similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/app/app.vue.html rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/app/app.vue.html diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/counter/counter.ts b/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/counter/counter.ts similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/counter/counter.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/counter/counter.ts diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/counter/counter.vue.html b/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/counter/counter.vue.html similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/counter/counter.vue.html rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/counter/counter.vue.html diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/fetchdata/fetchdata.ts b/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/fetchdata/fetchdata.ts similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/fetchdata/fetchdata.ts rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/fetchdata/fetchdata.ts diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/fetchdata/fetchdata.vue.html b/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/fetchdata/fetchdata.vue.html similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/fetchdata/fetchdata.vue.html rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/fetchdata/fetchdata.vue.html diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/home/home.vue.html b/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/home/home.vue.html similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/home/home.vue.html rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/home/home.vue.html diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/navmenu/navmenu.css b/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/navmenu/navmenu.css similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/navmenu/navmenu.css rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/navmenu/navmenu.css diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/navmenu/navmenu.vue.html b/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/navmenu/navmenu.vue.html similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/components/navmenu/navmenu.vue.html rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/navmenu/navmenu.vue.html diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/css/site.css b/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/css/site.css similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/ClientApp/css/site.css rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/css/site.css diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Controllers/HomeController.cs b/templates/Microsoft.AspNetCore.SpaTemplates/vue/Controllers/HomeController.cs similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Controllers/HomeController.cs rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/Controllers/HomeController.cs diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Controllers/SampleDataController.cs b/templates/Microsoft.AspNetCore.SpaTemplates/vue/Controllers/SampleDataController.cs similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Controllers/SampleDataController.cs rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/Controllers/SampleDataController.cs diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Program.cs b/templates/Microsoft.AspNetCore.SpaTemplates/vue/Program.cs similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Program.cs rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/Program.cs diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Startup.cs b/templates/Microsoft.AspNetCore.SpaTemplates/vue/Startup.cs similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Startup.cs rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/Startup.cs diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Views/Home/Index.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/vue/Views/Home/Index.cshtml similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Views/Home/Index.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/Views/Home/Index.cshtml diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Views/Shared/Error.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/vue/Views/Shared/Error.cshtml similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Views/Shared/Error.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/Views/Shared/Error.cshtml diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Views/Shared/_Layout.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/vue/Views/Shared/_Layout.cshtml similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Views/Shared/_Layout.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/Views/Shared/_Layout.cshtml diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Views/_ViewImports.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/vue/Views/_ViewImports.cshtml similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Views/_ViewImports.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/Views/_ViewImports.cshtml diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Views/_ViewStart.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/vue/Views/_ViewStart.cshtml similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/Views/_ViewStart.cshtml rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/Views/_ViewStart.cshtml diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/VueSpa.csproj b/templates/Microsoft.AspNetCore.SpaTemplates/vue/VueSpa.csproj similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/VueSpa.csproj rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/VueSpa.csproj diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/appsettings.Development.json b/templates/Microsoft.AspNetCore.SpaTemplates/vue/appsettings.Development.json similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/appsettings.Development.json rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/appsettings.Development.json diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/appsettings.json b/templates/Microsoft.AspNetCore.SpaTemplates/vue/appsettings.json similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/appsettings.json rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/appsettings.json diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/npm-shrinkwrap.json b/templates/Microsoft.AspNetCore.SpaTemplates/vue/npm-shrinkwrap.json similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/npm-shrinkwrap.json rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/npm-shrinkwrap.json diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/package.json b/templates/Microsoft.AspNetCore.SpaTemplates/vue/package.json similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/package.json rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/package.json diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/tsconfig.json b/templates/Microsoft.AspNetCore.SpaTemplates/vue/tsconfig.json similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/tsconfig.json rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/tsconfig.json diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/webpack.config.js b/templates/Microsoft.AspNetCore.SpaTemplates/vue/webpack.config.js similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/webpack.config.js rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/webpack.config.js diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/webpack.config.vendor.js b/templates/Microsoft.AspNetCore.SpaTemplates/vue/webpack.config.vendor.js similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/webpack.config.vendor.js rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/webpack.config.vendor.js diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/wwwroot/favicon.ico b/templates/Microsoft.AspNetCore.SpaTemplates/vue/wwwroot/favicon.ico similarity index 100% rename from templates/Microsoft.AspNetCore.SpaTemplates/Content/vue/wwwroot/favicon.ico rename to templates/Microsoft.AspNetCore.SpaTemplates/vue/wwwroot/favicon.ico diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/.gitignore b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/.gitignore similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/.gitignore rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/.gitignore diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/.template.config/dotnetcli.host.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/.template.config/dotnetcli.host.json similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/.template.config/dotnetcli.host.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/.template.config/dotnetcli.host.json diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/.template.config/icon.png b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/.template.config/icon.png similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/.template.config/icon.png rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/.template.config/icon.png diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/.template.config/template.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/.template.config/template.json similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/.template.config/template.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/.template.config/template.json diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/.template.config/vs-2017.3.host.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/.template.config/vs-2017.3.host.json similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/.template.config/vs-2017.3.host.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/.template.config/vs-2017.3.host.json diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/AngularSpa.csproj b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/AngularSpa.csproj similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/AngularSpa.csproj rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/AngularSpa.csproj diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/app.module.browser.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/app.module.browser.ts similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/app.module.browser.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/app.module.browser.ts diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/app.module.server.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/app.module.server.ts similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/app.module.server.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/app.module.server.ts diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/app.module.shared.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/app.module.shared.ts similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/app.module.shared.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/app.module.shared.ts diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/app/app.component.css b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/app/app.component.css similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/app/app.component.css rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/app/app.component.css diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/app/app.component.html b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/app/app.component.html similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/app/app.component.html rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/app/app.component.html diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/app/app.component.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/app/app.component.ts similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/app/app.component.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/app/app.component.ts diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/counter/counter.component.html b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/counter/counter.component.html similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/counter/counter.component.html rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/counter/counter.component.html diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/counter/counter.component.spec.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/counter/counter.component.spec.ts similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/counter/counter.component.spec.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/counter/counter.component.spec.ts diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/counter/counter.component.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/counter/counter.component.ts similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/counter/counter.component.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/counter/counter.component.ts diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/fetchdata/fetchdata.component.html b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/fetchdata/fetchdata.component.html similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/fetchdata/fetchdata.component.html rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/fetchdata/fetchdata.component.html diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/fetchdata/fetchdata.component.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/fetchdata/fetchdata.component.ts similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/fetchdata/fetchdata.component.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/fetchdata/fetchdata.component.ts diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/home/home.component.html b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/home/home.component.html similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/home/home.component.html rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/home/home.component.html diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/home/home.component.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/home/home.component.ts similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/home/home.component.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/home/home.component.ts diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/navmenu/navmenu.component.css b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/navmenu/navmenu.component.css similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/navmenu/navmenu.component.css rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/navmenu/navmenu.component.css diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/navmenu/navmenu.component.html b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/navmenu/navmenu.component.html similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/navmenu/navmenu.component.html rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/navmenu/navmenu.component.html diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/navmenu/navmenu.component.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/navmenu/navmenu.component.ts similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/app/components/navmenu/navmenu.component.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/navmenu/navmenu.component.ts diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/boot.browser.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/boot.browser.ts similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/boot.browser.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/boot.browser.ts diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/boot.server.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/boot.server.ts similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/boot.server.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/boot.server.ts diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/test/boot-tests.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/test/boot-tests.ts similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/test/boot-tests.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/test/boot-tests.ts diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/test/karma.conf.js b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/test/karma.conf.js similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/ClientApp/test/karma.conf.js rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/test/karma.conf.js diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Controllers/HomeController.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/Controllers/HomeController.cs similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Controllers/HomeController.cs rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/Controllers/HomeController.cs diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Controllers/SampleDataController.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/Controllers/SampleDataController.cs similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Controllers/SampleDataController.cs rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/Controllers/SampleDataController.cs diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Program.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/Program.cs similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Program.cs rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/Program.cs diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Startup.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/Startup.cs similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Startup.cs rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/Startup.cs diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Views/Home/Index.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/Views/Home/Index.cshtml similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Views/Home/Index.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/Views/Home/Index.cshtml diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Views/Shared/Error.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/Views/Shared/Error.cshtml similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Views/Shared/Error.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/Views/Shared/Error.cshtml diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Views/Shared/_Layout.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/Views/Shared/_Layout.cshtml similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Views/Shared/_Layout.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/Views/Shared/_Layout.cshtml diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Views/_ViewImports.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/Views/_ViewImports.cshtml similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Views/_ViewImports.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/Views/_ViewImports.cshtml diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Views/_ViewStart.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/Views/_ViewStart.cshtml similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/Views/_ViewStart.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/Views/_ViewStart.cshtml diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/appsettings.Development.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/appsettings.Development.json similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/appsettings.Development.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/appsettings.Development.json diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/appsettings.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/appsettings.json similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/appsettings.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/appsettings.json diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/npm-shrinkwrap.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/npm-shrinkwrap.json similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/npm-shrinkwrap.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/npm-shrinkwrap.json diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/package.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/package.json similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/package.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/package.json diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/tsconfig.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/tsconfig.json similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/tsconfig.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/tsconfig.json diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/webpack.config.js b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/webpack.config.js similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/webpack.config.js rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/webpack.config.js diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/webpack.config.vendor.js b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/webpack.config.vendor.js similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/webpack.config.vendor.js rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/webpack.config.vendor.js diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/wwwroot/favicon.ico b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/wwwroot/favicon.ico similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/angular/wwwroot/favicon.ico rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/wwwroot/favicon.ico diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/.gitignore b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/.gitignore similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/.gitignore rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/.gitignore diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/.template.config/dotnetcli.host.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/.template.config/dotnetcli.host.json similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/.template.config/dotnetcli.host.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/.template.config/dotnetcli.host.json diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/.template.config/icon.png b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/.template.config/icon.png similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/.template.config/icon.png rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/.template.config/icon.png diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/.template.config/template.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/.template.config/template.json similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/.template.config/template.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/.template.config/template.json diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/.template.config/vs-2017.3.host.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/.template.config/vs-2017.3.host.json similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/.template.config/vs-2017.3.host.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/.template.config/vs-2017.3.host.json diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/boot.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/ClientApp/boot.tsx similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/boot.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/ClientApp/boot.tsx diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/components/Counter.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/ClientApp/components/Counter.tsx similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/components/Counter.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/ClientApp/components/Counter.tsx diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/components/FetchData.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/ClientApp/components/FetchData.tsx similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/components/FetchData.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/ClientApp/components/FetchData.tsx diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/components/Home.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/ClientApp/components/Home.tsx similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/components/Home.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/ClientApp/components/Home.tsx diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/components/Layout.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/ClientApp/components/Layout.tsx similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/components/Layout.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/ClientApp/components/Layout.tsx diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/components/NavMenu.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/ClientApp/components/NavMenu.tsx similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/components/NavMenu.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/ClientApp/components/NavMenu.tsx diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/css/site.css b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/ClientApp/css/site.css similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/css/site.css rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/ClientApp/css/site.css diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/routes.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/ClientApp/routes.tsx similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ClientApp/routes.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/ClientApp/routes.tsx diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Controllers/HomeController.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/Controllers/HomeController.cs similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Controllers/HomeController.cs rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/Controllers/HomeController.cs diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Controllers/SampleDataController.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/Controllers/SampleDataController.cs similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Controllers/SampleDataController.cs rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/Controllers/SampleDataController.cs diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Program.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/Program.cs similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Program.cs rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/Program.cs diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ReactSpa.csproj b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/ReactSpa.csproj similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/ReactSpa.csproj rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/ReactSpa.csproj diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Startup.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/Startup.cs similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Startup.cs rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/Startup.cs diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Views/Home/Index.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/Views/Home/Index.cshtml similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Views/Home/Index.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/Views/Home/Index.cshtml diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Views/Shared/Error.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/Views/Shared/Error.cshtml similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Views/Shared/Error.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/Views/Shared/Error.cshtml diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Views/Shared/_Layout.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/Views/Shared/_Layout.cshtml similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Views/Shared/_Layout.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/Views/Shared/_Layout.cshtml diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Views/_ViewImports.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/Views/_ViewImports.cshtml similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Views/_ViewImports.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/Views/_ViewImports.cshtml diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Views/_ViewStart.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/Views/_ViewStart.cshtml similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/Views/_ViewStart.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/Views/_ViewStart.cshtml diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/appsettings.Development.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/appsettings.Development.json similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/appsettings.Development.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/appsettings.Development.json diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/appsettings.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/appsettings.json similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/appsettings.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/appsettings.json diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/npm-shrinkwrap.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/npm-shrinkwrap.json similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/npm-shrinkwrap.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/npm-shrinkwrap.json diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/package.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/package.json similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/package.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/package.json diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/tsconfig.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/tsconfig.json similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/tsconfig.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/tsconfig.json diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/webpack.config.js b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/webpack.config.js similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/webpack.config.js rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/webpack.config.js diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/webpack.config.vendor.js b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/webpack.config.vendor.js similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/webpack.config.vendor.js rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/webpack.config.vendor.js diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/wwwroot/favicon.ico b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/wwwroot/favicon.ico similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/react/wwwroot/favicon.ico rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/wwwroot/favicon.ico diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/.gitignore b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/.gitignore similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/.gitignore rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/.gitignore diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/.template.config/dotnetcli.host.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/.template.config/dotnetcli.host.json similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/.template.config/dotnetcli.host.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/.template.config/dotnetcli.host.json diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/.template.config/icon.png b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/.template.config/icon.png similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/.template.config/icon.png rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/.template.config/icon.png diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/.template.config/template.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/.template.config/template.json similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/.template.config/template.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/.template.config/template.json diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/.template.config/vs-2017.3.host.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/.template.config/vs-2017.3.host.json similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/.template.config/vs-2017.3.host.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/.template.config/vs-2017.3.host.json diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/boot-client.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/boot-client.tsx similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/boot-client.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/boot-client.tsx diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/boot-server.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/boot-server.tsx similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/boot-server.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/boot-server.tsx diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/components/Counter.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/components/Counter.tsx similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/components/Counter.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/components/Counter.tsx diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/components/FetchData.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/components/FetchData.tsx similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/components/FetchData.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/components/FetchData.tsx diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/components/Home.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/components/Home.tsx similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/components/Home.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/components/Home.tsx diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/components/Layout.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/components/Layout.tsx similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/components/Layout.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/components/Layout.tsx diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/components/NavMenu.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/components/NavMenu.tsx similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/components/NavMenu.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/components/NavMenu.tsx diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/configureStore.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/configureStore.ts similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/configureStore.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/configureStore.ts diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/css/site.css b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/css/site.css similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/css/site.css rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/css/site.css diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/routes.tsx b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/routes.tsx similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/routes.tsx rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/routes.tsx diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/store/Counter.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/store/Counter.ts similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/store/Counter.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/store/Counter.ts diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/store/WeatherForecasts.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/store/WeatherForecasts.ts similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/store/WeatherForecasts.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/store/WeatherForecasts.ts diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/store/index.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/store/index.ts similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ClientApp/store/index.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/store/index.ts diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Controllers/HomeController.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/Controllers/HomeController.cs similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Controllers/HomeController.cs rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/Controllers/HomeController.cs diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Controllers/SampleDataController.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/Controllers/SampleDataController.cs similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Controllers/SampleDataController.cs rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/Controllers/SampleDataController.cs diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Program.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/Program.cs similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Program.cs rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/Program.cs diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ReactReduxSpa.csproj b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ReactReduxSpa.csproj similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/ReactReduxSpa.csproj rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ReactReduxSpa.csproj diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Startup.cs b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/Startup.cs similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Startup.cs rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/Startup.cs diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Views/Home/Index.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/Views/Home/Index.cshtml similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Views/Home/Index.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/Views/Home/Index.cshtml diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Views/Shared/Error.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/Views/Shared/Error.cshtml similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Views/Shared/Error.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/Views/Shared/Error.cshtml diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Views/Shared/_Layout.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/Views/Shared/_Layout.cshtml similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Views/Shared/_Layout.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/Views/Shared/_Layout.cshtml diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Views/_ViewImports.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/Views/_ViewImports.cshtml similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Views/_ViewImports.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/Views/_ViewImports.cshtml diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Views/_ViewStart.cshtml b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/Views/_ViewStart.cshtml similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/Views/_ViewStart.cshtml rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/Views/_ViewStart.cshtml diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/appsettings.Development.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/appsettings.Development.json similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/appsettings.Development.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/appsettings.Development.json diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/appsettings.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/appsettings.json similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/appsettings.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/appsettings.json diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/npm-shrinkwrap.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/npm-shrinkwrap.json similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/npm-shrinkwrap.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/npm-shrinkwrap.json diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/package.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/package.json similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/package.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/package.json diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/tsconfig.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/tsconfig.json similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/tsconfig.json rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/tsconfig.json diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/webpack.config.js b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/webpack.config.js similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/webpack.config.js rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/webpack.config.js diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/webpack.config.vendor.js b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/webpack.config.vendor.js similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/webpack.config.vendor.js rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/webpack.config.vendor.js diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/wwwroot/favicon.ico b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/wwwroot/favicon.ico similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Content/redux/wwwroot/favicon.ico rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/wwwroot/favicon.ico From 412ec1b42735fd90739c16d83c079d7a5cdeb1e7 Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Wed, 23 Aug 2017 16:56:07 -0700 Subject: [PATCH 021/195] Build templates nupkgs directly from source without copying to staging location --- appveyor.yml | 2 +- .../Microsoft.AspNetCore.SpaTemplates.nuspec | 6 ++ ...oft.DotNet.Web.Spa.ProjectTemplates.nuspec | 6 ++ templates/package-builder/.gitignore | 3 +- templates/package-builder/src/build/build.ts | 58 ++----------------- 5 files changed, 20 insertions(+), 55 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 00f7bb63..3813cea8 100755 --- a/appveyor.yml +++ b/appveyor.yml @@ -18,7 +18,7 @@ build_script: - npm run build - ps: Pop-Location artifacts: - - path: templates\package-builder\dist\artifacts\*.nupkg + - path: templates\package-builder\artifacts\*.nupkg name: Microsoft.AspNetCore.SpaTemplates type: NuGetPackage # - ps: .\build.ps1 diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Microsoft.AspNetCore.SpaTemplates.nuspec b/templates/Microsoft.AspNetCore.SpaTemplates/Microsoft.AspNetCore.SpaTemplates.nuspec index 5d2159cf..1d2178fe 100644 --- a/templates/Microsoft.AspNetCore.SpaTemplates/Microsoft.AspNetCore.SpaTemplates.nuspec +++ b/templates/Microsoft.AspNetCore.SpaTemplates/Microsoft.AspNetCore.SpaTemplates.nuspec @@ -14,4 +14,10 @@ + + + diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Microsoft.DotNet.Web.Spa.ProjectTemplates.nuspec b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Microsoft.DotNet.Web.Spa.ProjectTemplates.nuspec index 604ed87b..71ecb54f 100644 --- a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Microsoft.DotNet.Web.Spa.ProjectTemplates.nuspec +++ b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Microsoft.DotNet.Web.Spa.ProjectTemplates.nuspec @@ -14,4 +14,10 @@ + + + diff --git a/templates/package-builder/.gitignore b/templates/package-builder/.gitignore index f0cef27c..cbdf9d5c 100644 --- a/templates/package-builder/.gitignore +++ b/templates/package-builder/.gitignore @@ -1,3 +1,4 @@ /node_modules/ /built/ -/dist/ +/artifacts/ +/tmp/ diff --git a/templates/package-builder/src/build/build.ts b/templates/package-builder/src/build/build.ts index 4e884467..8b834470 100644 --- a/templates/package-builder/src/build/build.ts +++ b/templates/package-builder/src/build/build.ts @@ -15,28 +15,6 @@ const dotNetPackages = [ 'Microsoft.AspNetCore.SpaTemplates' ]; -function writeFileEnsuringDirExists(root: string, filename: string, contents: string | Buffer) { - let fullPath = path.join(root, filename); - mkdirp.sync(path.dirname(fullPath)); - fs.writeFileSync(fullPath, contents); -} - -function listFilesExcludingGitignored(root: string): string[] { - let gitIgnorePath = path.join(root, '.gitignore'); - let gitignoreEvaluator = fs.existsSync(gitIgnorePath) - ? gitignore.compile(fs.readFileSync(gitIgnorePath, 'utf8')) - : { accepts: () => true }; - return glob.sync('**/*', { cwd: root, dot: true, nodir: true }) - .filter(fn => gitignoreEvaluator.accepts(fn)); -} - -function writeTemplate(sourceRoot: string, destRoot: string) { - listFilesExcludingGitignored(sourceRoot).forEach(fn => { - let sourceContent = fs.readFileSync(path.join(sourceRoot, fn)); - writeFileEnsuringDirExists(destRoot, fn, sourceContent); - }); -} - function getBuildNumber(): string { if (process.env.APPVEYOR_BUILD_NUMBER) { return process.env.APPVEYOR_BUILD_NUMBER; @@ -52,35 +30,17 @@ function buildDotNetNewNuGetPackages(outputDir: string) { const dotNetNewNupkgPath = buildDotNetNewNuGetPackage(packageId); // Move the .nupkg file to the output dir + mkdirp.sync(outputDir); fs.renameSync(dotNetNewNupkgPath, path.join(outputDir, path.basename(dotNetNewNupkgPath))); }); } function buildDotNetNewNuGetPackage(packageId: string) { - const outputRoot = './dist/dotnetnew'; - rimraf.sync(outputRoot); - - // Copy template files + // Invoke NuGet to create the final package const packageSourceRootDir = path.join('../', packageId); - const templatesInPackage = fs.readdirSync(path.join(packageSourceRootDir, 'Content')); - - _.forEach(templatesInPackage, templateName => { - const templateSourceDir = path.join(packageSourceRootDir, 'Content', templateName); - const templateOutputDir = path.join(outputRoot, 'Content', templateName); - writeTemplate(templateSourceDir, templateOutputDir); - }); - - // Create the .nuspec file const nuspecFilename = `${ packageId }.nuspec`; - const nuspecContentTemplate = fs.readFileSync(path.join(packageSourceRootDir, nuspecFilename)); - writeFileEnsuringDirExists(outputRoot, - nuspecFilename, - nuspecContentTemplate - ); - - // Invoke NuGet to create the final package const nugetExe = path.join(process.cwd(), './bin/NuGet.exe'); - const nugetStartInfo = { cwd: outputRoot, stdio: 'inherit' }; + const nugetStartInfo = { cwd: packageSourceRootDir, stdio: 'inherit' }; const packageVersion = `1.0.${ getBuildNumber() }`; const nugetArgs = ['pack', nuspecFilename, '-Version', packageVersion]; if (isWindows) { @@ -92,15 +52,7 @@ function buildDotNetNewNuGetPackage(packageId: string) { childProcess.spawnSync('mono', nugetArgs, nugetStartInfo); } - // Clean up - rimraf.sync('./tmp'); - - return glob.sync(path.join(outputRoot, './*.nupkg'))[0]; + return glob.sync(path.join(packageSourceRootDir, './*.nupkg'))[0]; } -const distDir = './dist'; -const artifactsDir = path.join(distDir, 'artifacts'); - -rimraf.sync(distDir); -mkdirp.sync(artifactsDir); -buildDotNetNewNuGetPackages(artifactsDir); +buildDotNetNewNuGetPackages('./artifacts'); From 28920c7691e73184b9aa2e8680f3700db1146b4a Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Wed, 23 Aug 2017 16:57:43 -0700 Subject: [PATCH 022/195] Simplify .gitignore --- .gitignore | 9 --------- 1 file changed, 9 deletions(-) diff --git a/.gitignore b/.gitignore index 8abcfa13..3f3bbd7b 100644 --- a/.gitignore +++ b/.gitignore @@ -29,16 +29,7 @@ nuget.exe npm-debug.log /.build/ -# The templates can't contain their own .gitignore files, because Yeoman has strange default handling for -# files with that name (https://github.com/npm/npm/issues/1862). So, each template instead has a template_gitignore -# file which gets renamed after the files are copied. And so any files that need to be excluded in the source -# repo have to be excluded here. -/templates/*/*/*/node_modules/ -/templates/*/*/*/wwwroot/dist/ -/templates/*/*/*/ClientApp/dist/ -/templates/*/*/*/yarn.lock .vscode/ -/templates/*/*/*/Properties/launchSettings.json global.json korebuild-lock.txt From 8b243e8cc7e7ffd692027e13afec98d8fdc4a120 Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Wed, 23 Aug 2017 17:12:06 -0700 Subject: [PATCH 023/195] Simplify build script further --- templates/package-builder/package.json | 15 +------- templates/package-builder/src/build/build.ts | 38 ++++++-------------- 2 files changed, 12 insertions(+), 41 deletions(-) diff --git a/templates/package-builder/package.json b/templates/package-builder/package.json index d3b248c8..d5a87fc2 100644 --- a/templates/package-builder/package.json +++ b/templates/package-builder/package.json @@ -10,24 +10,11 @@ "author": "Microsoft", "license": "Apache-2.0", "dependencies": { - "@types/chalk": "^0.4.31", - "@types/semver": "^5.3.30", - "diff": "^2.2.2", - "gitignore-parser": "0.0.2", - "glob": "^7.0.3", - "lodash": "^4.11.1", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.2", - "semver": "^5.3.0", - "tar.gz": "^1.0.5" + "mkdirp": "^0.5.1" }, "devDependencies": { - "@types/glob": "^5.0.30", - "@types/lodash": "^4.14.37", "@types/mkdirp": "^0.3.29", "@types/node": "^6.0.45", - "@types/node-uuid": "0.0.28", - "@types/rimraf": "0.0.28", "typescript": "^2.0.0" } } diff --git a/templates/package-builder/src/build/build.ts b/templates/package-builder/src/build/build.ts index 8b834470..24168e55 100644 --- a/templates/package-builder/src/build/build.ts +++ b/templates/package-builder/src/build/build.ts @@ -1,19 +1,14 @@ -import * as glob from 'glob'; -import * as gitignore from 'gitignore-parser'; import * as fs from 'fs'; import * as path from 'path'; -import * as _ from 'lodash'; import * as mkdirp from 'mkdirp'; -import * as rimraf from 'rimraf'; import * as childProcess from 'child_process'; -import * as targz from 'tar.gz'; const isWindows = /^win/.test(process.platform); - -const dotNetPackages = [ +const packageIds = [ 'Microsoft.DotNet.Web.Spa.ProjectTemplates', 'Microsoft.AspNetCore.SpaTemplates' ]; +const packageVersion = `1.0.${ getBuildNumber() }`; function getBuildNumber(): string { if (process.env.APPVEYOR_BUILD_NUMBER) { @@ -24,25 +19,18 @@ function getBuildNumber(): string { return Math.floor((new Date().valueOf() - new Date(2017, 0, 1).valueOf()) / (60*1000)) + '-local'; } -function buildDotNetNewNuGetPackages(outputDir: string) { - const dotNetPackageIds = _.values(dotNetPackages); - dotNetPackageIds.forEach(packageId => { - const dotNetNewNupkgPath = buildDotNetNewNuGetPackage(packageId); - - // Move the .nupkg file to the output dir - mkdirp.sync(outputDir); - fs.renameSync(dotNetNewNupkgPath, path.join(outputDir, path.basename(dotNetNewNupkgPath))); - }); -} - -function buildDotNetNewNuGetPackage(packageId: string) { +packageIds.forEach(packageId => { // Invoke NuGet to create the final package const packageSourceRootDir = path.join('../', packageId); const nuspecFilename = `${ packageId }.nuspec`; - const nugetExe = path.join(process.cwd(), './bin/NuGet.exe'); + const nugetExe = path.resolve('./bin/NuGet.exe'); const nugetStartInfo = { cwd: packageSourceRootDir, stdio: 'inherit' }; - const packageVersion = `1.0.${ getBuildNumber() }`; - const nugetArgs = ['pack', nuspecFilename, '-Version', packageVersion]; + const nugetArgs = [ + 'pack', nuspecFilename, + '-Version', packageVersion, + '-OutputDirectory', path.resolve('./artifacts') + ]; + if (isWindows) { // Invoke NuGet.exe directly childProcess.spawnSync(nugetExe, nugetArgs, nugetStartInfo); @@ -51,8 +39,4 @@ function buildDotNetNewNuGetPackage(packageId: string) { nugetArgs.unshift(nugetExe); childProcess.spawnSync('mono', nugetArgs, nugetStartInfo); } - - return glob.sync(path.join(packageSourceRootDir, './*.nupkg'))[0]; -} - -buildDotNetNewNuGetPackages('./artifacts'); +}); From c922eee1d668b4836e47f459238afaa90a96e03f Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Wed, 23 Aug 2017 17:15:37 -0700 Subject: [PATCH 024/195] Fix artifacts dir for test --- test/templates/util/dotnetnew.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/templates/util/dotnetnew.ts b/test/templates/util/dotnetnew.ts index 171607a5..c44bd8e5 100644 --- a/test/templates/util/dotnetnew.ts +++ b/test/templates/util/dotnetnew.ts @@ -5,7 +5,7 @@ import * as rimraf from 'rimraf'; import * as mkdirp from 'mkdirp'; const templatePackageName = 'Microsoft.DotNet.Web.Spa.ProjectTemplates'; -const templatePackageArtifactsDir = '../templates/package-builder/dist/artifacts'; +const templatePackageArtifactsDir = '../templates/package-builder/artifacts'; export function generateProjectSync(targetDir: string, templateName: string) { installTemplatePackage(targetDir, templatePackageName, templateName); From e5f12992394bc77cf4e1dbae81a7b91dca4047af Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Thu, 24 Aug 2017 15:31:34 -0700 Subject: [PATCH 025/195] Use devDependencies consistently in templates (no packages required in production, as webpack publish builds are standalone). Fixes #747 --- .../aurelia/package.json | 14 +++++------ .../angular/package.json | 24 +++++++++---------- .../redux/package.json | 2 +- 3 files changed, 18 insertions(+), 22 deletions(-) diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/package.json b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/package.json index 00b009e1..cc8cc6b1 100644 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/package.json +++ b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/package.json @@ -2,25 +2,23 @@ "name": "AureliaSpa", "private": true, "version": "0.0.0", - "dependencies": { + "devDependencies": { + "@types/webpack-env": "^1.13.0", + "aspnet-webpack": "^2.0.1", "aurelia-bootstrapper": "^2.0.1", "aurelia-fetch-client": "^1.0.1", "aurelia-framework": "^1.1.0", "aurelia-loader-webpack": "^2.0.0", "aurelia-pal": "^1.3.0", "aurelia-router": "^1.2.1", - "bootstrap": "^3.3.7", - "isomorphic-fetch": "^2.2.1", - "jquery": "^3.2.1" - }, - "devDependencies": { - "@types/webpack-env": "^1.13.0", - "aspnet-webpack": "^2.0.1", "aurelia-webpack-plugin": "^2.0.0-rc.2", + "bootstrap": "^3.3.7", "css-loader": "^0.28.0", "extract-text-webpack-plugin": "^2.1.0", "file-loader": "^0.11.1", "html-loader": "^0.4.5", + "isomorphic-fetch": "^2.2.1", + "jquery": "^3.2.1", "json-loader": "^0.5.4", "style-loader": "^0.16.1", "ts-loader": "^2.0.3", diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/package.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/package.json index f72210bf..dc456f2f 100644 --- a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/package.json +++ b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/package.json @@ -5,7 +5,7 @@ "scripts": { "test": "karma start ClientApp/test/karma.conf.js" }, - "dependencies": { + "devDependencies": { "@angular/animations": "4.2.5", "@angular/common": "4.2.5", "@angular/compiler": "4.2.5", @@ -18,6 +18,8 @@ "@angular/platform-server": "4.2.5", "@angular/router": "4.2.5", "@ngtools/webpack": "1.5.0", + "@types/chai": "4.0.1", + "@types/jasmine": "2.5.53", "@types/webpack-env": "1.13.0", "angular2-router-loader": "0.3.5", "angular2-template-loader": "0.6.2", @@ -25,6 +27,7 @@ "aspnet-webpack": "^2.0.1", "awesome-typescript-loader": "3.2.1", "bootstrap": "3.3.7", + "chai": "4.0.2", "css": "2.2.1", "css-loader": "0.28.4", "es6-shim": "0.35.3", @@ -34,8 +37,15 @@ "file-loader": "0.11.2", "html-loader": "0.4.5", "isomorphic-fetch": "2.2.1", + "jasmine-core": "2.6.4", "jquery": "3.2.1", "json-loader": "0.5.4", + "karma": "1.7.0", + "karma-chai": "0.1.0", + "karma-chrome-launcher": "2.2.0", + "karma-cli": "1.0.1", + "karma-jasmine": "1.1.0", + "karma-webpack": "2.0.3", "preboot": "4.5.2", "raw-loader": "0.5.1", "reflect-metadata": "0.1.10", @@ -48,17 +58,5 @@ "webpack-hot-middleware": "2.18.2", "webpack-merge": "4.1.0", "zone.js": "0.8.12" - }, - "devDependencies": { - "@types/chai": "4.0.1", - "@types/jasmine": "2.5.53", - "chai": "4.0.2", - "jasmine-core": "2.6.4", - "karma": "1.7.0", - "karma-chai": "0.1.0", - "karma-chrome-launcher": "2.2.0", - "karma-cli": "1.0.1", - "karma-jasmine": "1.1.0", - "karma-webpack": "2.0.3" } } diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/package.json b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/package.json index 3991fb10..1844d568 100644 --- a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/package.json +++ b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/package.json @@ -2,7 +2,7 @@ "name": "ReactReduxSpa", "private": true, "version": "0.0.0", - "dependencies": { + "devDependencies": { "@types/history": "4.6.0", "@types/react": "15.0.35", "@types/react-dom": "15.5.1", From e2030fb1fa1c27a53c318d7b8fc39c45c01a5294 Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Thu, 24 Aug 2017 17:52:35 -0700 Subject: [PATCH 026/195] Handle publicPath=/ in HMR. Fixes #1191. --- .../Webpack/ConditionalProxyMiddleware.cs | 4 +++- .../Webpack/WebpackDevMiddleware.cs | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Microsoft.AspNetCore.SpaServices/Webpack/ConditionalProxyMiddleware.cs b/src/Microsoft.AspNetCore.SpaServices/Webpack/ConditionalProxyMiddleware.cs index 1b36cd58..292f62d0 100644 --- a/src/Microsoft.AspNetCore.SpaServices/Webpack/ConditionalProxyMiddleware.cs +++ b/src/Microsoft.AspNetCore.SpaServices/Webpack/ConditionalProxyMiddleware.cs @@ -22,6 +22,7 @@ internal class ConditionalProxyMiddleware private readonly RequestDelegate _next; private readonly ConditionalProxyMiddlewareOptions _options; private readonly string _pathPrefix; + private readonly bool _pathPrefixIsRoot; public ConditionalProxyMiddleware( RequestDelegate next, @@ -35,6 +36,7 @@ public ConditionalProxyMiddleware( _next = next; _pathPrefix = pathPrefix; + _pathPrefixIsRoot = string.Equals(_pathPrefix, "/", StringComparison.Ordinal); _options = options; _httpClient = new HttpClient(new HttpClientHandler()); _httpClient.Timeout = _options.RequestTimeout; @@ -42,7 +44,7 @@ public ConditionalProxyMiddleware( public async Task Invoke(HttpContext context) { - if (context.Request.Path.StartsWithSegments(_pathPrefix)) + if (context.Request.Path.StartsWithSegments(_pathPrefix) || _pathPrefixIsRoot) { var didProxyRequest = await PerformProxyRequest(context); if (didProxyRequest) diff --git a/src/Microsoft.AspNetCore.SpaServices/Webpack/WebpackDevMiddleware.cs b/src/Microsoft.AspNetCore.SpaServices/Webpack/WebpackDevMiddleware.cs index 190fb492..2e8f92ea 100644 --- a/src/Microsoft.AspNetCore.SpaServices/Webpack/WebpackDevMiddleware.cs +++ b/src/Microsoft.AspNetCore.SpaServices/Webpack/WebpackDevMiddleware.cs @@ -17,7 +17,10 @@ public static class WebpackDevMiddleware private static readonly JsonSerializerSettings jsonSerializerSettings = new JsonSerializerSettings { - ContractResolver = new CamelCasePropertyNamesContractResolver(), + // Note that the aspnet-webpack JS code specifically expects options to be serialized with + // PascalCase property names, so it's important to be explicit about this contract resolver + ContractResolver = new DefaultContractResolver(), + TypeNameHandling = TypeNameHandling.None }; From 04fe1204a95ee09c9c0bf14c81e680c6f38f37dc Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Fri, 25 Aug 2017 11:02:02 -0700 Subject: [PATCH 027/195] Rename app.module.(server|browser).ts to app.(server|browser).module.ts. Fixes #1228. --- .../app/{app.module.browser.ts => app.browser.module.ts} | 2 +- .../app/{app.module.server.ts => app.server.module.ts} | 2 +- .../app/{app.module.shared.ts => app.shared.module.ts} | 0 .../angular/ClientApp/boot.browser.ts | 2 +- .../angular/ClientApp/boot.server.ts | 2 +- .../angular/webpack.config.js | 4 ++-- 6 files changed, 6 insertions(+), 6 deletions(-) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/{app.module.browser.ts => app.browser.module.ts} (89%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/{app.module.server.ts => app.server.module.ts} (84%) rename templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/{app.module.shared.ts => app.shared.module.ts} (100%) diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/app.module.browser.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/app.browser.module.ts similarity index 89% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/app.module.browser.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/app.browser.module.ts index 03104b45..3aec0239 100644 --- a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/app.module.browser.ts +++ b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/app.browser.module.ts @@ -1,6 +1,6 @@ import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; -import { AppModuleShared } from './app.module.shared'; +import { AppModuleShared } from './app.shared.module'; import { AppComponent } from './components/app/app.component'; @NgModule({ diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/app.module.server.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/app.server.module.ts similarity index 84% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/app.module.server.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/app.server.module.ts index 0608381c..90532aec 100644 --- a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/app.module.server.ts +++ b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/app.server.module.ts @@ -1,6 +1,6 @@ import { NgModule } from '@angular/core'; import { ServerModule } from '@angular/platform-server'; -import { AppModuleShared } from './app.module.shared'; +import { AppModuleShared } from './app.shared.module'; import { AppComponent } from './components/app/app.component'; @NgModule({ diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/app.module.shared.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/app.shared.module.ts similarity index 100% rename from templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/app.module.shared.ts rename to templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/app.shared.module.ts diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/boot.browser.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/boot.browser.ts index f9c0ba2b..5a5201b5 100644 --- a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/boot.browser.ts +++ b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/boot.browser.ts @@ -3,7 +3,7 @@ import 'zone.js'; import 'bootstrap'; import { enableProdMode } from '@angular/core'; import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; -import { AppModule } from './app/app.module.browser'; +import { AppModule } from './app/app.browser.module'; if (module.hot) { module.hot.accept(); diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/boot.server.ts b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/boot.server.ts index 00460e93..419a17f5 100644 --- a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/boot.server.ts +++ b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/boot.server.ts @@ -5,7 +5,7 @@ import { APP_BASE_HREF } from '@angular/common'; import { enableProdMode, ApplicationRef, NgZone, ValueProvider } from '@angular/core'; import { platformDynamicServer, PlatformState, INITIAL_CONFIG } from '@angular/platform-server'; import { createServerRenderer, RenderResult } from 'aspnet-prerendering'; -import { AppModule } from './app/app.module.server'; +import { AppModule } from './app/app.server.module'; enableProdMode(); diff --git a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/webpack.config.js b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/webpack.config.js index c5e834ba..5ec3222e 100644 --- a/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/webpack.config.js +++ b/templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/webpack.config.js @@ -47,7 +47,7 @@ module.exports = (env) => { new webpack.optimize.UglifyJsPlugin(), new AotPlugin({ tsConfigPath: './tsconfig.json', - entryModule: path.join(__dirname, 'ClientApp/app/app.module.browser#AppModule'), + entryModule: path.join(__dirname, 'ClientApp/app/app.browser.module#AppModule'), exclude: ['./**/*.server.ts'] }) ]) @@ -68,7 +68,7 @@ module.exports = (env) => { // Plugins that apply in production builds only new AotPlugin({ tsConfigPath: './tsconfig.json', - entryModule: path.join(__dirname, 'ClientApp/app/app.module.server#AppModule'), + entryModule: path.join(__dirname, 'ClientApp/app/app.server.module#AppModule'), exclude: ['./**/*.browser.ts'] }) ]), From 64ed1c794521999193271d7c4ae3e39c97fac6db Mon Sep 17 00:00:00 2001 From: Nate McMaster Date: Wed, 30 Aug 2017 14:48:58 -0700 Subject: [PATCH 028/195] Use Directory.Build.props/targets (#1235) --- appveyor.yml => .appveyor.yml | 0 Directory.Build.props | 15 ++++++++++++ Directory.Build.targets | 2 ++ JavaScriptServices.sln | 14 +++++++---- build/common.props | 23 ------------------- samples/misc/LatencyTest/LatencyTest.csproj | 2 -- .../NodeServicesExamples.csproj | 4 +--- samples/misc/Webpack/Webpack.csproj | 4 +--- src/Directory.Build.props | 13 +++++++++++ ...oft.AspNetCore.NodeServices.Sockets.csproj | 4 ---- .../Microsoft.AspNetCore.NodeServices.csproj | 5 ---- .../Microsoft.AspNetCore.SpaServices.csproj | 5 ---- templates/Directory.Build.props | 3 +++ templates/Directory.Build.targets | 3 +++ 14 files changed, 48 insertions(+), 49 deletions(-) rename appveyor.yml => .appveyor.yml (100%) create mode 100644 Directory.Build.props create mode 100644 Directory.Build.targets delete mode 100644 build/common.props create mode 100644 src/Directory.Build.props create mode 100644 templates/Directory.Build.props create mode 100644 templates/Directory.Build.targets diff --git a/appveyor.yml b/.appveyor.yml similarity index 100% rename from appveyor.yml rename to .appveyor.yml diff --git a/Directory.Build.props b/Directory.Build.props new file mode 100644 index 00000000..c13af935 --- /dev/null +++ b/Directory.Build.props @@ -0,0 +1,15 @@ + + + + + + Microsoft ASP.NET Core + https://github.com/aspnet/javascriptservices + git + $(MSBuildThisFileDirectory)build\Key.snk + true + true + $(VersionSuffix)-$(BuildNumber) + true + + diff --git a/Directory.Build.targets b/Directory.Build.targets new file mode 100644 index 00000000..f75adf7e --- /dev/null +++ b/Directory.Build.targets @@ -0,0 +1,2 @@ + + diff --git a/JavaScriptServices.sln b/JavaScriptServices.sln index f1dd9654..04461b41 100644 --- a/JavaScriptServices.sln +++ b/JavaScriptServices.sln @@ -1,9 +1,12 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 -VisualStudioVersion = 15.0.26430.4 +VisualStudioVersion = 15.0.26730.10 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{27304DDE-AFB2-4F8B-B765-E3E2F11E886C}" + ProjectSection(SolutionItems) = preProject + src\Directory.Build.props = src\Directory.Build.props + EndProjectSection EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.NodeServices", "src\Microsoft.AspNetCore.NodeServices\Microsoft.AspNetCore.NodeServices.csproj", "{66B77203-1469-41DF-92F2-2BE6900BD36F}" EndProject @@ -30,10 +33,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NodeServicesExamples", "sam EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "templates", "templates", "{1598B415-73F1-4B37-B3B4-0A10677ABB2D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{E415FE14-13B0-469F-836D-95059E6BAA6E}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{645F7363-1240-4FB6-9422-B32A327C979F}" ProjectSection(SolutionItems) = preProject - src\build\common.props = src\build\common.props - src\build\Key.snk = src\build\Key.snk + Directory.Build.props = Directory.Build.props + Directory.Build.targets = Directory.Build.targets EndProjectSection EndProject Global @@ -79,4 +82,7 @@ Global {DE479DC3-1461-4EAD-A188-4AF7AA4AE344} = {E6A161EA-646C-4033-9090-95BE809AB8D9} {93EFCC5F-C6EE-4623-894F-A42B22C0B6FE} = {E6A161EA-646C-4033-9090-95BE809AB8D9} EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {DDF59B0D-2DEC-45D6-8667-DCB767487101} + EndGlobalSection EndGlobal diff --git a/build/common.props b/build/common.props deleted file mode 100644 index 1febbfb4..00000000 --- a/build/common.props +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - Microsoft ASP.NET Core - https://github.com/aspnet/javascriptservices - git - $(MSBuildThisFileDirectory)Key.snk - true - true - $(VersionSuffix)-$(BuildNumber) - true - - - - - - - - - - diff --git a/samples/misc/LatencyTest/LatencyTest.csproj b/samples/misc/LatencyTest/LatencyTest.csproj index 43d5f17a..0d88fae4 100644 --- a/samples/misc/LatencyTest/LatencyTest.csproj +++ b/samples/misc/LatencyTest/LatencyTest.csproj @@ -1,7 +1,5 @@  - - netcoreapp2.0;net461 false diff --git a/samples/misc/NodeServicesExamples/NodeServicesExamples.csproj b/samples/misc/NodeServicesExamples/NodeServicesExamples.csproj index eedacabc..6758a2fb 100644 --- a/samples/misc/NodeServicesExamples/NodeServicesExamples.csproj +++ b/samples/misc/NodeServicesExamples/NodeServicesExamples.csproj @@ -1,6 +1,4 @@ - - - + netcoreapp2.0;net461 diff --git a/samples/misc/Webpack/Webpack.csproj b/samples/misc/Webpack/Webpack.csproj index eedacabc..6758a2fb 100644 --- a/samples/misc/Webpack/Webpack.csproj +++ b/samples/misc/Webpack/Webpack.csproj @@ -1,6 +1,4 @@ - - - + netcoreapp2.0;net461 diff --git a/src/Directory.Build.props b/src/Directory.Build.props new file mode 100644 index 00000000..235e5c9b --- /dev/null +++ b/src/Directory.Build.props @@ -0,0 +1,13 @@ + + + + + true + true + aspnetcore;aspnetcoremvc;nodeservices + + + + + + diff --git a/src/Microsoft.AspNetCore.NodeServices.Sockets/Microsoft.AspNetCore.NodeServices.Sockets.csproj b/src/Microsoft.AspNetCore.NodeServices.Sockets/Microsoft.AspNetCore.NodeServices.Sockets.csproj index 1e3e542b..65c47155 100644 --- a/src/Microsoft.AspNetCore.NodeServices.Sockets/Microsoft.AspNetCore.NodeServices.Sockets.csproj +++ b/src/Microsoft.AspNetCore.NodeServices.Sockets/Microsoft.AspNetCore.NodeServices.Sockets.csproj @@ -1,12 +1,8 @@  - - Socket-based RPC for Microsoft.AspNetCore.NodeServices. netstandard2.0 - aspnetcore;aspnetcoremvc;nodeservices - true diff --git a/src/Microsoft.AspNetCore.NodeServices/Microsoft.AspNetCore.NodeServices.csproj b/src/Microsoft.AspNetCore.NodeServices/Microsoft.AspNetCore.NodeServices.csproj index 7f7822e2..03d4ace8 100644 --- a/src/Microsoft.AspNetCore.NodeServices/Microsoft.AspNetCore.NodeServices.csproj +++ b/src/Microsoft.AspNetCore.NodeServices/Microsoft.AspNetCore.NodeServices.csproj @@ -1,13 +1,8 @@  - - Invoke Node.js modules at runtime in ASP.NET Core applications. netstandard2.0 - aspnetcore;aspnetcoremvc;nodeservices - true - true diff --git a/src/Microsoft.AspNetCore.SpaServices/Microsoft.AspNetCore.SpaServices.csproj b/src/Microsoft.AspNetCore.SpaServices/Microsoft.AspNetCore.SpaServices.csproj index 730c9444..268fc099 100644 --- a/src/Microsoft.AspNetCore.SpaServices/Microsoft.AspNetCore.SpaServices.csproj +++ b/src/Microsoft.AspNetCore.SpaServices/Microsoft.AspNetCore.SpaServices.csproj @@ -1,13 +1,8 @@  - - Helpers for building single-page applications on ASP.NET MVC Core. netstandard2.0 - aspnetcore;aspnetcoremvc;nodeservices - true - true diff --git a/templates/Directory.Build.props b/templates/Directory.Build.props new file mode 100644 index 00000000..141834c2 --- /dev/null +++ b/templates/Directory.Build.props @@ -0,0 +1,3 @@ + + + diff --git a/templates/Directory.Build.targets b/templates/Directory.Build.targets new file mode 100644 index 00000000..141834c2 --- /dev/null +++ b/templates/Directory.Build.targets @@ -0,0 +1,3 @@ + + + From a0269fb0adfd8b112ee95f7f68564836b8bc4c36 Mon Sep 17 00:00:00 2001 From: Nate McMaster Date: Tue, 29 Aug 2017 15:07:34 -0700 Subject: [PATCH 029/195] Use PackageLineup to manage PackageReference versions --- Directory.Build.props | 1 - Directory.Build.targets | 14 +++++++++++++- NuGet.config | 3 +-- build/dependencies.props | 11 ----------- build/repo.props | 6 ++++++ samples/misc/LatencyTest/LatencyTest.csproj | 2 +- .../NodeServicesExamples.csproj | 14 +++++++------- samples/misc/Webpack/Webpack.csproj | 14 +++++++------- src/Directory.Build.props | 2 +- ...icrosoft.AspNetCore.NodeServices.Sockets.csproj | 5 ++++- .../Microsoft.AspNetCore.NodeServices.csproj | 6 +++--- .../Microsoft.AspNetCore.SpaServices.csproj | 10 ++++++++-- 12 files changed, 51 insertions(+), 37 deletions(-) delete mode 100644 build/dependencies.props create mode 100644 build/repo.props diff --git a/Directory.Build.props b/Directory.Build.props index c13af935..8edbff70 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,5 +1,4 @@  - diff --git a/Directory.Build.targets b/Directory.Build.targets index f75adf7e..bc118fd9 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,2 +1,14 @@ - + + + + <_BootstrapperFile Condition=" $([MSBuild]::IsOSUnixLike()) ">build.sh + <_BootstrapperFile Condition="! $([MSBuild]::IsOSUnixLike()) ">build.cmd + <_BootstrapperError> + Package references have not been pinned. Run './$(_BootstrapperFile) /t:Pin'. + Also, you can run './$(_BootstrapperFile) /t:Restore' which will pin *and* restore packages. '$(_BootstrapperFile)' can be found in '$(MSBuildThisFileDirectory)'. + + + + + diff --git a/NuGet.config b/NuGet.config index f4952688..20060c93 100644 --- a/NuGet.config +++ b/NuGet.config @@ -3,7 +3,6 @@ - - \ No newline at end of file + diff --git a/build/dependencies.props b/build/dependencies.props deleted file mode 100644 index 1964f88c..00000000 --- a/build/dependencies.props +++ /dev/null @@ -1,11 +0,0 @@ - - - 2.1.0-* - 2.1.1-* - 10.0.1 - 2.0.0-* - 2.0.0-* - 2.0.0-* - 4.8.0-* - - diff --git a/build/repo.props b/build/repo.props new file mode 100644 index 00000000..13fe1c29 --- /dev/null +++ b/build/repo.props @@ -0,0 +1,6 @@ + + + + + + diff --git a/samples/misc/LatencyTest/LatencyTest.csproj b/samples/misc/LatencyTest/LatencyTest.csproj index 0d88fae4..8ad37df1 100644 --- a/samples/misc/LatencyTest/LatencyTest.csproj +++ b/samples/misc/LatencyTest/LatencyTest.csproj @@ -12,7 +12,7 @@ - + diff --git a/samples/misc/NodeServicesExamples/NodeServicesExamples.csproj b/samples/misc/NodeServicesExamples/NodeServicesExamples.csproj index 6758a2fb..d85540c6 100644 --- a/samples/misc/NodeServicesExamples/NodeServicesExamples.csproj +++ b/samples/misc/NodeServicesExamples/NodeServicesExamples.csproj @@ -11,13 +11,13 @@ - - - - - - - + + + + + + + diff --git a/samples/misc/Webpack/Webpack.csproj b/samples/misc/Webpack/Webpack.csproj index 6758a2fb..d85540c6 100644 --- a/samples/misc/Webpack/Webpack.csproj +++ b/samples/misc/Webpack/Webpack.csproj @@ -11,13 +11,13 @@ - - - - - - - + + + + + + + diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 235e5c9b..55417710 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -8,6 +8,6 @@ - + diff --git a/src/Microsoft.AspNetCore.NodeServices.Sockets/Microsoft.AspNetCore.NodeServices.Sockets.csproj b/src/Microsoft.AspNetCore.NodeServices.Sockets/Microsoft.AspNetCore.NodeServices.Sockets.csproj index 65c47155..535a9d78 100644 --- a/src/Microsoft.AspNetCore.NodeServices.Sockets/Microsoft.AspNetCore.NodeServices.Sockets.csproj +++ b/src/Microsoft.AspNetCore.NodeServices.Sockets/Microsoft.AspNetCore.NodeServices.Sockets.csproj @@ -12,7 +12,10 @@ - + + + + diff --git a/src/Microsoft.AspNetCore.NodeServices/Microsoft.AspNetCore.NodeServices.csproj b/src/Microsoft.AspNetCore.NodeServices/Microsoft.AspNetCore.NodeServices.csproj index 03d4ace8..28b9ab33 100644 --- a/src/Microsoft.AspNetCore.NodeServices/Microsoft.AspNetCore.NodeServices.csproj +++ b/src/Microsoft.AspNetCore.NodeServices/Microsoft.AspNetCore.NodeServices.csproj @@ -11,9 +11,9 @@ - - - + + + diff --git a/src/Microsoft.AspNetCore.SpaServices/Microsoft.AspNetCore.SpaServices.csproj b/src/Microsoft.AspNetCore.SpaServices/Microsoft.AspNetCore.SpaServices.csproj index 268fc099..5c856e99 100644 --- a/src/Microsoft.AspNetCore.SpaServices/Microsoft.AspNetCore.SpaServices.csproj +++ b/src/Microsoft.AspNetCore.SpaServices/Microsoft.AspNetCore.SpaServices.csproj @@ -8,9 +8,15 @@ + + + - - + + + + + From 09317b83a863cfcec9f0a3ae9450c8cf2718b98d Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Thu, 7 Sep 2017 13:28:18 +0100 Subject: [PATCH 030/195] SPA templates have now moved to the aspnet/templating repo --- .appveyor.yml | 23 - JavaScriptServices.sln | 4 +- templates/Directory.Build.props | 3 - templates/Directory.Build.targets | 3 - .../Microsoft.AspNetCore.SpaTemplates.nuspec | 23 - .../aurelia/.gitignore | 237 -- .../.template.config/dotnetcli.host.json | 17 - .../aurelia/.template.config/icon.png | Bin 2355 -> 0 bytes .../aurelia/.template.config/template.json | 87 - .../.template.config/vs-2017.3.host.json | 20 - .../aurelia/AureliaSpa.csproj | 57 - .../ClientApp/app/components/app/app.css | 6 - .../ClientApp/app/components/app/app.html | 14 - .../ClientApp/app/components/app/app.ts | 34 - .../app/components/counter/counter.html | 9 - .../app/components/counter/counter.ts | 7 - .../app/components/fetchdata/fetchdata.html | 26 - .../app/components/fetchdata/fetchdata.ts | 22 - .../ClientApp/app/components/home/home.html | 16 - .../ClientApp/app/components/home/home.ts | 2 - .../app/components/navmenu/navmenu.css | 59 - .../app/components/navmenu/navmenu.html | 26 - .../aurelia/ClientApp/boot.ts | 21 - .../aurelia/Controllers/HomeController.cs | 23 - .../Controllers/SampleDataController.cs | 44 - .../aurelia/Program.cs | 25 - .../aurelia/Startup.cs | 58 - .../aurelia/Views/Home/Index.cshtml | 10 - .../aurelia/Views/Shared/Error.cshtml | 21 - .../aurelia/Views/Shared/_Layout.cshtml | 16 - .../aurelia/Views/_ViewImports.cshtml | 3 - .../aurelia/Views/_ViewStart.cshtml | 3 - .../aurelia/appsettings.Development.json | 19 - .../aurelia/appsettings.json | 15 - .../aurelia/npm-shrinkwrap.json | 2615 ------------ .../aurelia/package.json | 30 - .../aurelia/tsconfig.json | 16 - .../aurelia/webpack.config.js | 44 - .../aurelia/webpack.config.vendor.js | 56 - .../aurelia/wwwroot/favicon.ico | Bin 85432 -> 0 bytes .../knockout/.gitignore | 236 -- .../.template.config/dotnetcli.host.json | 17 - .../knockout/.template.config/icon.png | Bin 6109 -> 0 bytes .../knockout/.template.config/template.json | 87 - .../.template.config/vs-2017.3.host.json | 20 - .../knockout/ClientApp/boot.ts | 21 - .../components/app-root/app-root.html | 8 - .../ClientApp/components/app-root/app-root.ts | 44 - .../counter-example/counter-example.html | 7 - .../counter-example/counter-example.ts | 12 - .../components/fetch-data/fetch-data.html | 24 - .../components/fetch-data/fetch-data.ts | 23 - .../components/home-page/home-page.html | 16 - .../components/home-page/home-page.ts | 6 - .../components/nav-menu/nav-menu.html | 33 - .../ClientApp/components/nav-menu/nav-menu.ts | 21 - .../knockout/ClientApp/css/site.css | 66 - .../knockout/ClientApp/router.ts | 62 - .../ClientApp/webpack-component-loader.ts | 25 - .../knockout/Controllers/HomeController.cs | 23 - .../Controllers/SampleDataController.cs | 44 - .../knockout/KnockoutSpa.csproj | 57 - .../knockout/Program.cs | 25 - .../knockout/Startup.cs | 58 - .../knockout/Views/Home/Index.cshtml | 9 - .../knockout/Views/Shared/Error.cshtml | 21 - .../knockout/Views/Shared/_Layout.cshtml | 20 - .../knockout/Views/_ViewImports.cshtml | 3 - .../knockout/Views/_ViewStart.cshtml | 3 - .../knockout/appsettings.Development.json | 19 - .../knockout/appsettings.json | 15 - .../knockout/npm-shrinkwrap.json | 2491 ----------- .../knockout/package.json | 35 - .../knockout/tsconfig.json | 15 - .../knockout/webpack.config.js | 44 - .../knockout/webpack.config.vendor.js | 39 - .../knockout/wwwroot/favicon.ico | Bin 32038 -> 0 bytes .../vue/.gitignore | 239 -- .../vue/.template.config/dotnetcli.host.json | 17 - .../vue/.template.config/icon.png | Bin 1661 -> 0 bytes .../vue/.template.config/template.json | 87 - .../vue/.template.config/vs-2017.3.host.json | 20 - .../vue/ClientApp/boot.ts | 17 - .../vue/ClientApp/components/app/app.ts | 10 - .../vue/ClientApp/components/app/app.vue.html | 14 - .../ClientApp/components/counter/counter.ts | 11 - .../components/counter/counter.vue.html | 13 - .../components/fetchdata/fetchdata.ts | 22 - .../components/fetchdata/fetchdata.vue.html | 30 - .../ClientApp/components/home/home.vue.html | 19 - .../ClientApp/components/navmenu/navmenu.css | 59 - .../components/navmenu/navmenu.vue.html | 37 - .../vue/ClientApp/css/site.css | 6 - .../vue/Controllers/HomeController.cs | 23 - .../vue/Controllers/SampleDataController.cs | 44 - .../vue/Program.cs | 25 - .../vue/Startup.cs | 58 - .../vue/Views/Home/Index.cshtml | 9 - .../vue/Views/Shared/Error.cshtml | 21 - .../vue/Views/Shared/_Layout.cshtml | 20 - .../vue/Views/_ViewImports.cshtml | 3 - .../vue/Views/_ViewStart.cshtml | 3 - .../vue/VueSpa.csproj | 57 - .../vue/appsettings.Development.json | 19 - .../vue/appsettings.json | 15 - .../vue/npm-shrinkwrap.json | 2603 ------------ .../vue/package.json | 27 - .../vue/tsconfig.json | 17 - .../vue/webpack.config.js | 51 - .../vue/webpack.config.vendor.js | 49 - .../vue/wwwroot/favicon.ico | Bin 32038 -> 0 bytes ...oft.DotNet.Web.Spa.ProjectTemplates.nuspec | 23 - .../angular/.gitignore | 237 -- .../.template.config/dotnetcli.host.json | 17 - .../angular/.template.config/icon.png | Bin 1833 -> 0 bytes .../angular/.template.config/template.json | 87 - .../.template.config/vs-2017.3.host.json | 20 - .../angular/AngularSpa.csproj | 62 - .../ClientApp/app/app.browser.module.ts | 21 - .../ClientApp/app/app.server.module.ts | 14 - .../ClientApp/app/app.shared.module.ts | 35 - .../app/components/app/app.component.css | 6 - .../app/components/app/app.component.html | 10 - .../app/components/app/app.component.ts | 9 - .../components/counter/counter.component.html | 7 - .../counter/counter.component.spec.ts | 29 - .../components/counter/counter.component.ts | 13 - .../fetchdata/fetchdata.component.html | 24 - .../fetchdata/fetchdata.component.ts | 23 - .../app/components/home/home.component.html | 16 - .../app/components/home/home.component.ts | 8 - .../components/navmenu/navmenu.component.css | 59 - .../components/navmenu/navmenu.component.html | 33 - .../components/navmenu/navmenu.component.ts | 9 - .../angular/ClientApp/boot.browser.ts | 23 - .../angular/ClientApp/boot.server.ts | 38 - .../angular/ClientApp/test/boot-tests.ts | 33 - .../angular/ClientApp/test/karma.conf.js | 26 - .../angular/Controllers/HomeController.cs | 23 - .../Controllers/SampleDataController.cs | 44 - .../angular/Program.cs | 25 - .../angular/Startup.cs | 58 - .../angular/Views/Home/Index.cshtml | 10 - .../angular/Views/Shared/Error.cshtml | 21 - .../angular/Views/Shared/_Layout.cshtml | 16 - .../angular/Views/_ViewImports.cshtml | 3 - .../angular/Views/_ViewStart.cshtml | 3 - .../angular/appsettings.Development.json | 19 - .../angular/appsettings.json | 15 - .../angular/npm-shrinkwrap.json | 3730 ----------------- .../angular/package.json | 62 - .../angular/tsconfig.json | 17 - .../angular/webpack.config.js | 84 - .../angular/webpack.config.vendor.js | 94 - .../angular/wwwroot/favicon.ico | Bin 32038 -> 0 bytes .../react/.gitignore | 236 -- .../.template.config/dotnetcli.host.json | 17 - .../react/.template.config/icon.png | Bin 2431 -> 0 bytes .../react/.template.config/template.json | 87 - .../.template.config/vs-2017.3.host.json | 20 - .../react/ClientApp/boot.tsx | 30 - .../react/ClientApp/components/Counter.tsx | 31 - .../react/ClientApp/components/FetchData.tsx | 63 - .../react/ClientApp/components/Home.tsx | 29 - .../react/ClientApp/components/Layout.tsx | 21 - .../react/ClientApp/components/NavMenu.tsx | 40 - .../react/ClientApp/css/site.css | 66 - .../react/ClientApp/routes.tsx | 12 - .../react/Controllers/HomeController.cs | 23 - .../react/Controllers/SampleDataController.cs | 44 - .../react/Program.cs | 25 - .../react/ReactSpa.csproj | 57 - .../react/Startup.cs | 59 - .../react/Views/Home/Index.cshtml | 9 - .../react/Views/Shared/Error.cshtml | 21 - .../react/Views/Shared/_Layout.cshtml | 20 - .../react/Views/_ViewImports.cshtml | 3 - .../react/Views/_ViewStart.cshtml | 3 - .../react/appsettings.Development.json | 19 - .../react/appsettings.json | 15 - .../react/npm-shrinkwrap.json | 3377 --------------- .../react/package.json | 34 - .../react/tsconfig.json | 17 - .../react/webpack.config.js | 43 - .../react/webpack.config.vendor.js | 42 - .../react/wwwroot/favicon.ico | Bin 32038 -> 0 bytes .../redux/.gitignore | 237 -- .../.template.config/dotnetcli.host.json | 17 - .../redux/.template.config/icon.png | Bin 2876 -> 0 bytes .../redux/.template.config/template.json | 87 - .../.template.config/vs-2017.3.host.json | 20 - .../redux/ClientApp/boot-client.tsx | 43 - .../redux/ClientApp/boot-server.tsx | 45 - .../redux/ClientApp/components/Counter.tsx | 31 - .../redux/ClientApp/components/FetchData.tsx | 73 - .../redux/ClientApp/components/Home.tsx | 25 - .../redux/ClientApp/components/Layout.tsx | 17 - .../redux/ClientApp/components/NavMenu.tsx | 40 - .../redux/ClientApp/configureStore.ts | 35 - .../redux/ClientApp/css/site.css | 66 - .../redux/ClientApp/routes.tsx | 12 - .../redux/ClientApp/store/Counter.ts | 48 - .../redux/ClientApp/store/WeatherForecasts.ts | 91 - .../redux/ClientApp/store/index.ts | 22 - .../redux/Controllers/HomeController.cs | 23 - .../redux/Controllers/SampleDataController.cs | 44 - .../redux/Program.cs | 25 - .../redux/ReactReduxSpa.csproj | 62 - .../redux/Startup.cs | 59 - .../redux/Views/Home/Index.cshtml | 9 - .../redux/Views/Shared/Error.cshtml | 21 - .../redux/Views/Shared/_Layout.cshtml | 18 - .../redux/Views/_ViewImports.cshtml | 3 - .../redux/Views/_ViewStart.cshtml | 3 - .../redux/appsettings.Development.json | 19 - .../redux/appsettings.json | 15 - .../redux/npm-shrinkwrap.json | 2921 ------------- .../redux/package.json | 44 - .../redux/tsconfig.json | 19 - .../redux/webpack.config.js | 76 - .../redux/webpack.config.vendor.js | 87 - .../redux/wwwroot/favicon.ico | Bin 32038 -> 0 bytes templates/WhereHaveTheTemplatesGone.md | 11 + templates/package-builder/.gitignore | 4 - templates/package-builder/README.md | 5 - templates/package-builder/bin/NuGet.exe | Bin 4589784 -> 0 bytes templates/package-builder/package.json | 20 - templates/package-builder/src/build/build.ts | 42 - .../package-builder/src/yeoman/.gitignore | 1 - .../package-builder/src/yeoman/README.md | 15 - .../package-builder/src/yeoman/app/index.js | 15 - .../package-builder/src/yeoman/package.json | 26 - templates/package-builder/tsconfig.json | 14 - .../gitignore-parser/gitignore-parser.d.ts | 3 - .../typings/npm-which/npm-which.d.ts | 8 - test/.gitignore | 3 - test/package.json | 33 - test/start-selenium.js | 30 - test/templates/angular.spec.ts | 103 - test/templates/util/aspnet.ts | 127 - test/templates/util/dotnetnew.ts | 63 - test/templates/util/ports.ts | 24 - test/templates/util/webdriverio.ts | 12 - test/tsconfig.json | 15 - test/wdio.conf.js | 204 - 245 files changed, 12 insertions(+), 25700 deletions(-) delete mode 100644 templates/Directory.Build.props delete mode 100644 templates/Directory.Build.targets delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/Microsoft.AspNetCore.SpaTemplates.nuspec delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/.gitignore delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/.template.config/dotnetcli.host.json delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/.template.config/icon.png delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/.template.config/template.json delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/.template.config/vs-2017.3.host.json delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/AureliaSpa.csproj delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/app/app.css delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/app/app.html delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/app/app.ts delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/counter/counter.html delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/counter/counter.ts delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/fetchdata/fetchdata.html delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/fetchdata/fetchdata.ts delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/home/home.html delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/home/home.ts delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/navmenu/navmenu.css delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/navmenu/navmenu.html delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/boot.ts delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Controllers/HomeController.cs delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Controllers/SampleDataController.cs delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Program.cs delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Startup.cs delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/Home/Index.cshtml delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/Shared/Error.cshtml delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/Shared/_Layout.cshtml delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/_ViewImports.cshtml delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/_ViewStart.cshtml delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/appsettings.Development.json delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/appsettings.json delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/npm-shrinkwrap.json delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/package.json delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/tsconfig.json delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/webpack.config.js delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/webpack.config.vendor.js delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/aurelia/wwwroot/favicon.ico delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/.gitignore delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/.template.config/dotnetcli.host.json delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/.template.config/icon.png delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/.template.config/template.json delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/.template.config/vs-2017.3.host.json delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/boot.ts delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/app-root/app-root.html delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/app-root/app-root.ts delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/counter-example/counter-example.html delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/counter-example/counter-example.ts delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/fetch-data/fetch-data.html delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/fetch-data/fetch-data.ts delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/home-page/home-page.html delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/home-page/home-page.ts delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/nav-menu/nav-menu.html delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/nav-menu/nav-menu.ts delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/css/site.css delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/router.ts delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/webpack-component-loader.ts delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/Controllers/HomeController.cs delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/Controllers/SampleDataController.cs delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/KnockoutSpa.csproj delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/Program.cs delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/Startup.cs delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/Home/Index.cshtml delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/Shared/Error.cshtml delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/Shared/_Layout.cshtml delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/_ViewImports.cshtml delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/_ViewStart.cshtml delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/appsettings.Development.json delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/appsettings.json delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/npm-shrinkwrap.json delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/package.json delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/tsconfig.json delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/webpack.config.js delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/webpack.config.vendor.js delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/knockout/wwwroot/favicon.ico delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/.gitignore delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/.template.config/dotnetcli.host.json delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/.template.config/icon.png delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/.template.config/template.json delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/.template.config/vs-2017.3.host.json delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/boot.ts delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/app/app.ts delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/app/app.vue.html delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/counter/counter.ts delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/counter/counter.vue.html delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/fetchdata/fetchdata.ts delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/fetchdata/fetchdata.vue.html delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/home/home.vue.html delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/navmenu/navmenu.css delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/navmenu/navmenu.vue.html delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/css/site.css delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/Controllers/HomeController.cs delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/Controllers/SampleDataController.cs delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/Program.cs delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/Startup.cs delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/Views/Home/Index.cshtml delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/Views/Shared/Error.cshtml delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/Views/Shared/_Layout.cshtml delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/Views/_ViewImports.cshtml delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/Views/_ViewStart.cshtml delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/VueSpa.csproj delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/appsettings.Development.json delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/appsettings.json delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/npm-shrinkwrap.json delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/package.json delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/tsconfig.json delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/webpack.config.js delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/webpack.config.vendor.js delete mode 100644 templates/Microsoft.AspNetCore.SpaTemplates/vue/wwwroot/favicon.ico delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/Microsoft.DotNet.Web.Spa.ProjectTemplates.nuspec delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/.gitignore delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/.template.config/dotnetcli.host.json delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/.template.config/icon.png delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/.template.config/template.json delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/.template.config/vs-2017.3.host.json delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/AngularSpa.csproj delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/app.browser.module.ts delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/app.server.module.ts delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/app.shared.module.ts delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/app/app.component.css delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/app/app.component.html delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/app/app.component.ts delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/counter/counter.component.html delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/counter/counter.component.spec.ts delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/counter/counter.component.ts delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/fetchdata/fetchdata.component.html delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/fetchdata/fetchdata.component.ts delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/home/home.component.html delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/home/home.component.ts delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/navmenu/navmenu.component.css delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/navmenu/navmenu.component.html delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/app/components/navmenu/navmenu.component.ts delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/boot.browser.ts delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/boot.server.ts delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/test/boot-tests.ts delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/ClientApp/test/karma.conf.js delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/Controllers/HomeController.cs delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/Controllers/SampleDataController.cs delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/Program.cs delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/Startup.cs delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/Views/Home/Index.cshtml delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/Views/Shared/Error.cshtml delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/Views/Shared/_Layout.cshtml delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/Views/_ViewImports.cshtml delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/Views/_ViewStart.cshtml delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/appsettings.Development.json delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/appsettings.json delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/npm-shrinkwrap.json delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/package.json delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/tsconfig.json delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/webpack.config.js delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/webpack.config.vendor.js delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/angular/wwwroot/favicon.ico delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/.gitignore delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/.template.config/dotnetcli.host.json delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/.template.config/icon.png delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/.template.config/template.json delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/.template.config/vs-2017.3.host.json delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/ClientApp/boot.tsx delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/ClientApp/components/Counter.tsx delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/ClientApp/components/FetchData.tsx delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/ClientApp/components/Home.tsx delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/ClientApp/components/Layout.tsx delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/ClientApp/components/NavMenu.tsx delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/ClientApp/css/site.css delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/ClientApp/routes.tsx delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/Controllers/HomeController.cs delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/Controllers/SampleDataController.cs delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/Program.cs delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/ReactSpa.csproj delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/Startup.cs delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/Views/Home/Index.cshtml delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/Views/Shared/Error.cshtml delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/Views/Shared/_Layout.cshtml delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/Views/_ViewImports.cshtml delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/Views/_ViewStart.cshtml delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/appsettings.Development.json delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/appsettings.json delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/npm-shrinkwrap.json delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/package.json delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/tsconfig.json delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/webpack.config.js delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/webpack.config.vendor.js delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/react/wwwroot/favicon.ico delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/.gitignore delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/.template.config/dotnetcli.host.json delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/.template.config/icon.png delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/.template.config/template.json delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/.template.config/vs-2017.3.host.json delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/boot-client.tsx delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/boot-server.tsx delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/components/Counter.tsx delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/components/FetchData.tsx delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/components/Home.tsx delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/components/Layout.tsx delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/components/NavMenu.tsx delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/configureStore.ts delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/css/site.css delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/routes.tsx delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/store/Counter.ts delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/store/WeatherForecasts.ts delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ClientApp/store/index.ts delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/Controllers/HomeController.cs delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/Controllers/SampleDataController.cs delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/Program.cs delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/ReactReduxSpa.csproj delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/Startup.cs delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/Views/Home/Index.cshtml delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/Views/Shared/Error.cshtml delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/Views/Shared/_Layout.cshtml delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/Views/_ViewImports.cshtml delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/Views/_ViewStart.cshtml delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/appsettings.Development.json delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/appsettings.json delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/npm-shrinkwrap.json delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/package.json delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/tsconfig.json delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/webpack.config.js delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/webpack.config.vendor.js delete mode 100644 templates/Microsoft.DotNet.Web.Spa.ProjectTemplates/redux/wwwroot/favicon.ico create mode 100644 templates/WhereHaveTheTemplatesGone.md delete mode 100644 templates/package-builder/.gitignore delete mode 100644 templates/package-builder/README.md delete mode 100644 templates/package-builder/bin/NuGet.exe delete mode 100644 templates/package-builder/package.json delete mode 100644 templates/package-builder/src/build/build.ts delete mode 100644 templates/package-builder/src/yeoman/.gitignore delete mode 100644 templates/package-builder/src/yeoman/README.md delete mode 100644 templates/package-builder/src/yeoman/app/index.js delete mode 100644 templates/package-builder/src/yeoman/package.json delete mode 100644 templates/package-builder/tsconfig.json delete mode 100644 templates/package-builder/typings/gitignore-parser/gitignore-parser.d.ts delete mode 100644 templates/package-builder/typings/npm-which/npm-which.d.ts delete mode 100644 test/.gitignore delete mode 100644 test/package.json delete mode 100644 test/start-selenium.js delete mode 100644 test/templates/angular.spec.ts delete mode 100644 test/templates/util/aspnet.ts delete mode 100644 test/templates/util/dotnetnew.ts delete mode 100644 test/templates/util/ports.ts delete mode 100644 test/templates/util/webdriverio.ts delete mode 100644 test/tsconfig.json delete mode 100644 test/wdio.conf.js diff --git a/.appveyor.yml b/.appveyor.yml index 3813cea8..890f62a2 100755 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -11,32 +11,9 @@ install: - ps: (New-Object System.Net.WebClient).DownloadFile($urlCurrent, $tempFileCurrent) - ps: Add-Type -AssemblyName System.IO.Compression.FileSystem; [System.IO.Compression.ZipFile]::ExtractToDirectory($tempFileCurrent, $env:DOTNET_INSTALL_DIR) - ps: $env:Path = "$env:DOTNET_INSTALL_DIR;$env:Path" -build_script: - - ps: Push-Location - - cd templates/package-builder - - npm install - - npm run build - - ps: Pop-Location -artifacts: - - path: templates\package-builder\artifacts\*.nupkg - name: Microsoft.AspNetCore.SpaTemplates - type: NuGetPackage -# - ps: .\build.ps1 clone_depth: 1 environment: global: DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true DOTNET_CLI_TELEMETRY_OPTOUT: 1 -test_script: - - dotnet restore - - ps: Push-Location - - cd test - - npm install selenium-standalone - - ps: Start-Process node './start-selenium.js' - - npm install - - npm test -on_finish : - - ps: Pop-Location - # After running tests, upload results to Appveyor - - ps: (new-object net.webclient).UploadFile("https://ci.appveyor.com/api/testresults/junit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path .\test\tmp\junit\*.xml)) deploy: off diff --git a/JavaScriptServices.sln b/JavaScriptServices.sln index 04461b41..8f605451 100644 --- a/JavaScriptServices.sln +++ b/JavaScriptServices.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 -VisualStudioVersion = 15.0.26730.10 +VisualStudioVersion = 15.0.26730.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{27304DDE-AFB2-4F8B-B765-E3E2F11E886C}" ProjectSection(SolutionItems) = preProject @@ -31,8 +31,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Webpack", "samples\misc\Web EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NodeServicesExamples", "samples\misc\NodeServicesExamples\NodeServicesExamples.csproj", "{93EFCC5F-C6EE-4623-894F-A42B22C0B6FE}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "templates", "templates", "{1598B415-73F1-4B37-B3B4-0A10677ABB2D}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{645F7363-1240-4FB6-9422-B32A327C979F}" ProjectSection(SolutionItems) = preProject Directory.Build.props = Directory.Build.props diff --git a/templates/Directory.Build.props b/templates/Directory.Build.props deleted file mode 100644 index 141834c2..00000000 --- a/templates/Directory.Build.props +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/templates/Directory.Build.targets b/templates/Directory.Build.targets deleted file mode 100644 index 141834c2..00000000 --- a/templates/Directory.Build.targets +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/Microsoft.AspNetCore.SpaTemplates.nuspec b/templates/Microsoft.AspNetCore.SpaTemplates/Microsoft.AspNetCore.SpaTemplates.nuspec deleted file mode 100644 index 1d2178fe..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/Microsoft.AspNetCore.SpaTemplates.nuspec +++ /dev/null @@ -1,23 +0,0 @@ - - - - Microsoft.AspNetCore.SpaTemplates - 0.0.0 - Single Page Application templates for ASP.NET Core - Microsoft - en-US - https://github.com/aspnet/javascriptservices - https://www.microsoft.com/web/webpi/eula/net_library_eula_enu.htm - Copyright © Microsoft Corporation - true - - - - - - - - diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/.gitignore b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/.gitignore deleted file mode 100644 index c8274b5f..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/.gitignore +++ /dev/null @@ -1,237 +0,0 @@ -/Properties/launchSettings.json - -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. - -# User-specific files -*.suo -*.user -*.userosscache -*.sln.docstates - -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Build results -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -build/ -bld/ -bin/ -Bin/ -obj/ -Obj/ - -# Visual Studio 2015 cache/options directory -.vs/ -/wwwroot/dist/ -/ClientApp/dist/ - -/yarn.lock - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUNIT -*.VisualState.xml -TestResult.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -*_i.c -*_p.c -*_i.h -*.ilk -*.meta -*.obj -*.pch -*.pdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*.log -*.vspscc -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opendb -*.opensdf -*.sdf -*.cachefile - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# JustCode is a .NET coding add-in -.JustCode - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml -# TODO: Comment the next line if you want to checkin your web deploy settings -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - -# NuGet Packages -*.nupkg -# The packages folder can be ignored because of Package Restore -**/packages/* -# except build/, which is used as an MSBuild target. -!**/packages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/packages/repositories.config - -# Microsoft Azure Build Output -csx/ -*.build.csdef - -# Microsoft Azure Emulator -ecf/ -rcf/ - -# Microsoft Azure ApplicationInsights config file -ApplicationInsights.config - -# Windows Store app package directory -AppPackages/ -BundleArtifacts/ - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!*.[Cc]ache/ - -# Others -ClientBin/ -~$* -*~ -*.dbmdl -*.dbproj.schemaview -*.pfx -*.publishsettings -orleans.codegen.cs - -/node_modules - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm - -# SQL Server files -*.mdf -*.ldf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings - -# Microsoft Fakes -FakesAssemblies/ - -# GhostDoc plugin setting file -*.GhostDoc.xml - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - -# Paket dependency manager -.paket/paket.exe - -# FAKE - F# Make -.fake/ diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/.template.config/dotnetcli.host.json b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/.template.config/dotnetcli.host.json deleted file mode 100644 index c15c6681..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/.template.config/dotnetcli.host.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "$schema": "http://json.schemastore.org/dotnetcli.host", - "symbolInfo": { - "TargetFrameworkOverride": { - "isHidden": "true", - "longName": "target-framework-override", - "shortName": "" - }, - "Framework": { - "longName": "framework" - }, - "skipRestore": { - "longName": "no-restore", - "shortName": "" - } - } -} \ No newline at end of file diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/.template.config/icon.png b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/.template.config/icon.png deleted file mode 100644 index 5a82b498eb54df3edf098fc06467ccb1cb6a0d1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2355 zcmV-33C#A1P)=USqXWvk^)o!oP?ut15JXtCTx zma&Dun`f`+I+5u^m*P&InP;%)VW;0Yl-e_odQzS2N}J+7mW*Yot8=-WZ?e`bi@tHY zjApIVB#G)voa;D|q%?rqCW+ZLlb2_$v2VAEVyKvGu-ht&u^)NfJCu!EqoHW9-a3<; zV64|Ah=p6FvTnHHG>@EMt>-q7;3|r;Hihdnj&4Gf;XIYqAcp8Pj-O(#uOWKgDvHt` zh37ev?Kh99WU<^aj(AX;ie9MdJd)ijjJ9jIn`N$vU8d6@hUqzxg;%BNEQ-5mx0NAs z=RA|tB8Qn{t=S)ivS+nnoLs}yskWwF^GgxMg5iBq6? zTB6V!gsT&BpJ1)#D2RwxqtX?CoL;M$CwAW`iq@JIu9B$ASf!ZB|c~PI0U#pK9Y^e}%g!k-5`aKS*Onsex6^f=q88aB!|@*gMLw>*cXA|A%^TLiQOH9id&}A6n?5@ zvZ)bqksfc}9)#i|h1eN_+8cu4AcfW!f#f8H+#Q3{6@cd^hua*3=_rWZ9fQ#lf9olT z&k%o&7HZNIf2R#^<|c=6NS5d)h=@_2o?)(uSf$?|h1nW{m0hZ(WU&euYq;k6Wm3N0otAqL^Q-rweX{R-|`O zpM_JQkXxvp7H_i=bGH_EdQF>{UaO;Hu(oTrkQQsk6?=P8pX4Hihftp9C5DU?X{Zfv z%@%&i8hhO#gsWz=s19(~9)W;SpEY37YybcNv2;>SQvd-21_lWU4Gj?z5)&6292_1Z zBqk;+FfubUIy^o>K|w=9L`zImR9RVDTV7vcWMyV)YjbvZd3kz#eSLp_e}IF9iI9?# zla!T}mzS5An3$fPsi~@~ud%YTw6wLhx3{>tySu!+zQ4b~!O6?a&d$!y(9qG+($&}4 z+1lFL-r(Wk;p61w<>lt*=;-L^>Few6?(XpM@$vEU^Yrxe^!4@j_xk$!`uqF){QUj? z{{BYU2Fm~d1wcteK~#9!rIvYER8<(p&z)i4cR|PvBSH|x1(7s_zzPFVDM+DcwE`(H zkOa(%Ot3OEAT?9af(VRNb{VE&fKYIN(b!}uWeJQ*t^Vqqb7#Bf4i_Hy{V_Aox$}PS zeeXHnITxsbTF3+QLDR2$?R@mM(cSggHglHiY{{;N#8S#3(`W5xuU{BlN8_P*AkJTp zzppWC`+^1;-|Epr`g?9b0%vPqsU#K;Z7A$Q6fT*CoWJE7gGbR|;#HbYDAm6@eaus% zk1l7DjzU=HG|_BV{!=fsyL*S40?8!=yOGVt(Oa0&rSgaBl+g`&m|bB}?#~1`#Jim| z$LN_b2(8Ctn6WDaloF&Hp%7B3w0RhQ1mW}<^)lX6Gl@wR1SkZxZE(1!XLxXM7XU^P z-SrCAGsG4+M1C!k3KT;7NDm}yB@ZmixUNF>0;OErr_Be4C?ZHjAr?dZUUOjVcfF25 zw5D8d{WhE@YxIPYT9}lDqU%8?+$dn1Qb$6EkWY3Z4pGLSWny3xxc)FIQRH`FIM^->9GSXBw69;d~DW3RCC=?Dn0S9*!RH`RJ zzQXm<4_$lIP?u#?+!jJkufq1zvRY*(?LYj&9DaFERYBVC{e$dZ)&m9sx#iOXyIy_| zf#c)jd*H&+JXlrLcwc5ufknyXoFvHf&IfKFoY9_G(|8Z3e?<@I`d;JKr@PYjPZf4y zK1U&ZvHhi0uvT&jH?Nz~yI$f|Ij^FAKMn2QG66ciGstE3z^CaK1x;(^rD zw>8xPu7b5a^(LmtO33=R%r`@I%`zqPu8lXG6|P2I3x zBEj|)FgsqsO@a;34Lm?ra2cBX583n9->>B)-wRMKaM^AkD})VYxdC7qQ(MGIoE0z( z>yvgpcwj*k(0;=d@E^}4%z>Hr>>5Dtgk(LnUk}gni?|uzbhfT$pRjCx#V}FY@odW+gD;5T!{i2QJnUC zp5rOnUa=7ykuP^=ewv2%IN106FR^`z5>|-KQ&nm?vl%ZvM`&MAqKXswb{?fpKJ}gr z(0?4Ax#4%n4NZrr@K7V03*LaTJ0#i=DwjF?84&r;-(3B13Fd>c58%f5}(a zeiXhtwXH!RiiqxPSxs&yX>xtMC4B2@Z5fHB<{dP(hoVJ z()T;tRk#^!q~>)$$_jq!9)<<7tU=i1siYA3CS_S|S`PjkWGB%0=69WZAcIyz25`?*7f1oPq7d@86J Z`yX78Fv2fUZ=V1F002ovPDHLkV1kW!in{;+ diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/.template.config/template.json b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/.template.config/template.json deleted file mode 100644 index 3b176af9..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/.template.config/template.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "author": "Microsoft", - "classifications": [ - "Web", - "MVC", - "SPA" - ], - "groupIdentity": "Microsoft.AspNetCore.SpaTemplates.Aurelia", - "identity": "Microsoft.AspNetCore.SpaTemplates.Aurelia.CSharp", - "name": "ASP.NET Core with Aurelia", - "preferNameDirectory": true, - "primaryOutputs": [ - { - "path": "AureliaSpa.csproj" - } - ], - "shortName": "aurelia", - "sourceName": "AureliaSpa", - "sources": [ - { - "source": "./", - "target": "./", - "exclude": [ - ".template.config/**" - ] - } - ], - "symbols": { - "TargetFrameworkOverride": { - "type": "parameter", - "description": "Overrides the target framework", - "replaces": "TargetFrameworkOverride", - "datatype": "string", - "defaultValue": "" - }, - "Framework": { - "type": "parameter", - "description": "The target framework for the project.", - "datatype": "choice", - "choices": [ - { - "choice": "netcoreapp2.0", - "description": "Target netcoreapp2.0" - } - ], - "replaces": "netcoreapp2.0", - "defaultValue": "netcoreapp2.0" - }, - "HostIdentifier": { - "type": "bind", - "binding": "HostIdentifier" - }, - "skipRestore": { - "type": "parameter", - "datatype": "bool", - "description": "If specified, skips the automatic restore of the project on create.", - "defaultValue": "false" - } - }, - "tags": { - "language": "C#", - "type": "project" - }, - "postActions": [ - { - "condition": "(!skipRestore)", - "description": "Restore NuGet packages required by this project.", - "manualInstructions": [ - { - "text": "Run 'dotnet restore'" - } - ], - "actionId": "210D431B-A78B-4D2F-B762-4ED3E3EA9025", - "continueOnError": true - }, - { - "condition": "(HostIdentifier == \"dotnetcli\" || HostIdentifier == \"dotnetcli-preview\")", - "actionId": "AC1156F7-BB77-4DB8-B28F-24EEBCCA1E5C", - "description": "\n\n-------------------------------------------------------------------\nIMPORTANT: Before running this project on the command line,\n you must restore NPM packages by running \"npm install\"\n-------------------------------------------------------------------\n", - "manualInstructions": [ - { - "text": "Run \"npm install\"" - } - ] - } - ] -} \ No newline at end of file diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/.template.config/vs-2017.3.host.json b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/.template.config/vs-2017.3.host.json deleted file mode 100644 index 18e8697a..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/.template.config/vs-2017.3.host.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "$schema": "http://json.schemastore.org/vs-2017.3.host", - "name": { - "text": "Aurelia", - "package": "{0CD94836-1526-4E85-87D3-FB5274C5AFC9}", - "id": "1200" - }, - "description": { - "text": "A project template for creating an ASP.NET Core application with Aurelia", - "package": "{0CD94836-1526-4E85-87D3-FB5274C5AFC9}", - "id": "1201" - }, - "order": 301, - "icon": "icon.png", - "learnMoreLink": "https://github.com/aspnet/JavaScriptServices", - "uiFilters": [ - "oneaspnet" - ], - "minFullFrameworkVersion": "4.6.1" -} \ No newline at end of file diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/AureliaSpa.csproj b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/AureliaSpa.csproj deleted file mode 100644 index eff4c62c..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/AureliaSpa.csproj +++ /dev/null @@ -1,57 +0,0 @@ - - - - netcoreapp2.0 - TargetFrameworkOverride - true - Latest - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %(DistFiles.Identity) - PreserveNewest - - - - - \ No newline at end of file diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/app/app.css b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/app/app.css deleted file mode 100644 index 63926006..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/app/app.css +++ /dev/null @@ -1,6 +0,0 @@ -@media (max-width: 767px) { - /* On small screens, the nav menu spans the full width of the screen. Leave a space for it. */ - .body-content { - padding-top: 50px; - } -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/app/app.html b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/app/app.html deleted file mode 100644 index 27cae10e..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/app/app.html +++ /dev/null @@ -1,14 +0,0 @@ - diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/app/app.ts b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/app/app.ts deleted file mode 100644 index 1ff0e627..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/app/app.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { Aurelia, PLATFORM } from 'aurelia-framework'; -import { Router, RouterConfiguration } from 'aurelia-router'; - -export class App { - router: Router; - - configureRouter(config: RouterConfiguration, router: Router) { - config.title = 'Aurelia'; - config.map([{ - route: [ '', 'home' ], - name: 'home', - settings: { icon: 'home' }, - moduleId: PLATFORM.moduleName('../home/home'), - nav: true, - title: 'Home' - }, { - route: 'counter', - name: 'counter', - settings: { icon: 'education' }, - moduleId: PLATFORM.moduleName('../counter/counter'), - nav: true, - title: 'Counter' - }, { - route: 'fetch-data', - name: 'fetchdata', - settings: { icon: 'th-list' }, - moduleId: PLATFORM.moduleName('../fetchdata/fetchdata'), - nav: true, - title: 'Fetch data' - }]); - - this.router = router; - } -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/counter/counter.html b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/counter/counter.html deleted file mode 100644 index 7636a4f1..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/counter/counter.html +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/counter/counter.ts b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/counter/counter.ts deleted file mode 100644 index 3217c449..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/counter/counter.ts +++ /dev/null @@ -1,7 +0,0 @@ -export class Counter { - public currentCount = 0; - - public incrementCounter() { - this.currentCount++; - } -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/fetchdata/fetchdata.html b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/fetchdata/fetchdata.html deleted file mode 100644 index bd06c35d..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/fetchdata/fetchdata.html +++ /dev/null @@ -1,26 +0,0 @@ - diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/fetchdata/fetchdata.ts b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/fetchdata/fetchdata.ts deleted file mode 100644 index 6cd72ac1..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/fetchdata/fetchdata.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { HttpClient } from 'aurelia-fetch-client'; -import { inject } from 'aurelia-framework'; - -@inject(HttpClient) -export class Fetchdata { - public forecasts: WeatherForecast[]; - - constructor(http: HttpClient) { - http.fetch('https://github.com/api/SampleData/WeatherForecasts') - .then(result => result.json() as Promise) - .then(data => { - this.forecasts = data; - }); - } -} - -interface WeatherForecast { - dateFormatted: string; - temperatureC: number; - temperatureF: number; - summary: string; -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/home/home.html b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/home/home.html deleted file mode 100644 index 50437ca2..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/home/home.html +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/home/home.ts b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/home/home.ts deleted file mode 100644 index 737d6cc2..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/home/home.ts +++ /dev/null @@ -1,2 +0,0 @@ -export class Home { -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/navmenu/navmenu.css b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/navmenu/navmenu.css deleted file mode 100644 index 8518eda3..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/navmenu/navmenu.css +++ /dev/null @@ -1,59 +0,0 @@ -li .glyphicon { - margin-right: 10px; -} - -/* Highlighting rules for nav menu items */ -li.au-target.link-active a, -li.au-target.link-active a:hover, -li.au-target.link-active a:focus { - background-color: #4189C7; - color: white; -} - -/* Keep the nav menu independent of scrolling and on top of other items */ -.main-nav { - position: fixed; - top: 0; - left: 0; - right: 0; - z-index: 1; -} - -@media (min-width: 768px) { - /* On small screens, convert the nav menu to a vertical sidebar */ - .main-nav { - height: 100%; - width: calc(25% - 20px); - } - .navbar { - border-radius: 0px; - border-width: 0px; - height: 100%; - } - .navbar-header { - float: none; - } - .navbar-collapse { - border-top: 1px solid #444; - padding: 0px; - } - .navbar ul { - float: none; - } - .navbar li { - float: none; - font-size: 15px; - margin: 6px; - } - .navbar li a { - padding: 10px 16px; - border-radius: 4px; - } - .navbar a { - /* If a menu item's text is too long, truncate it */ - width: 100%; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/navmenu/navmenu.html b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/navmenu/navmenu.html deleted file mode 100644 index 1661aa62..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/app/components/navmenu/navmenu.html +++ /dev/null @@ -1,26 +0,0 @@ - diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/boot.ts b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/boot.ts deleted file mode 100644 index 053b9c31..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/ClientApp/boot.ts +++ /dev/null @@ -1,21 +0,0 @@ -import 'isomorphic-fetch'; -import { Aurelia, PLATFORM } from 'aurelia-framework'; -import { HttpClient } from 'aurelia-fetch-client'; -import 'bootstrap/dist/css/bootstrap.css'; -import 'bootstrap'; -declare const IS_DEV_BUILD: boolean; // The value is supplied by Webpack during the build - -export function configure(aurelia: Aurelia) { - aurelia.use.standardConfiguration(); - - if (IS_DEV_BUILD) { - aurelia.use.developmentLogging(); - } - - new HttpClient().configure(config => { - const baseUrl = document.getElementsByTagName('base')[0].href; - config.withBaseUrl(baseUrl); - }); - - aurelia.start().then(() => aurelia.setRoot(PLATFORM.moduleName('app/components/app/app'))); -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Controllers/HomeController.cs b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Controllers/HomeController.cs deleted file mode 100644 index 18346598..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Controllers/HomeController.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Mvc; - -namespace AureliaSpa.Controllers -{ - public class HomeController : Controller - { - public IActionResult Index() - { - return View(); - } - - public IActionResult Error() - { - ViewData["RequestId"] = Activity.Current?.Id ?? HttpContext.TraceIdentifier; - return View(); - } - } -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Controllers/SampleDataController.cs b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Controllers/SampleDataController.cs deleted file mode 100644 index 6705a682..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Controllers/SampleDataController.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Mvc; - -namespace AureliaSpa.Controllers -{ - [Route("api/[controller]")] - public class SampleDataController : Controller - { - private static string[] Summaries = new[] - { - "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" - }; - - [HttpGet("[action]")] - public IEnumerable WeatherForecasts() - { - var rng = new Random(); - return Enumerable.Range(1, 5).Select(index => new WeatherForecast - { - DateFormatted = DateTime.Now.AddDays(index).ToString("d"), - TemperatureC = rng.Next(-20, 55), - Summary = Summaries[rng.Next(Summaries.Length)] - }); - } - - public class WeatherForecast - { - public string DateFormatted { get; set; } - public int TemperatureC { get; set; } - public string Summary { get; set; } - - public int TemperatureF - { - get - { - return 32 + (int)(this.TemperatureC / 0.5556); - } - } - } - } -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Program.cs b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Program.cs deleted file mode 100644 index 0b628556..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Program.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNetCore; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Logging; - -namespace AureliaSpa -{ - public class Program - { - public static void Main(string[] args) - { - BuildWebHost(args).Run(); - } - - public static IWebHost BuildWebHost(string[] args) => - WebHost.CreateDefaultBuilder(args) - .UseStartup() - .Build(); - } -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Startup.cs b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Startup.cs deleted file mode 100644 index 4a96590e..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Startup.cs +++ /dev/null @@ -1,58 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.SpaServices.Webpack; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; - -namespace AureliaSpa -{ - public class Startup - { - public Startup(IConfiguration configuration) - { - Configuration = configuration; - } - - public IConfiguration Configuration { get; } - - // This method gets called by the runtime. Use this method to add services to the container. - public void ConfigureServices(IServiceCollection services) - { - services.AddMvc(); - } - - // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IHostingEnvironment env) - { - if (env.IsDevelopment()) - { - app.UseDeveloperExceptionPage(); - app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions - { - HotModuleReplacement = true - }); - } - else - { - app.UseExceptionHandler("/Home/Error"); - } - - app.UseStaticFiles(); - - app.UseMvc(routes => - { - routes.MapRoute( - name: "default", - template: "{controller=Home}/{action=Index}/{id?}"); - - routes.MapSpaFallbackRoute( - name: "spa-fallback", - defaults: new { controller = "Home", action = "Index" }); - }); - } - } -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/Home/Index.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/Home/Index.cshtml deleted file mode 100644 index f6b17914..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/Home/Index.cshtml +++ /dev/null @@ -1,10 +0,0 @@ -@{ - ViewData["Title"] = "Home Page"; -} - -
Loading...
- -@section scripts { - - -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/Shared/Error.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/Shared/Error.cshtml deleted file mode 100644 index 78e35d5d..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/Shared/Error.cshtml +++ /dev/null @@ -1,21 +0,0 @@ -@{ - ViewData["Title"] = "Error"; -} - -

Error.

-

An error occurred while processing your request.

- -@if (!string.IsNullOrEmpty((string)ViewData["RequestId"])) -{ -

- Request ID: @ViewData["RequestId"] -

-} - -

Development Mode

-

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

-

- Development environment should not be enabled in deployed applications, as it can result in sensitive information from exceptions being displayed to end users. For local debugging, development environment can be enabled by setting the ASPNETCORE_ENVIRONMENT environment variable to Development, and restarting the application. -

diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/Shared/_Layout.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/Shared/_Layout.cshtml deleted file mode 100644 index 4e0019c4..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/Shared/_Layout.cshtml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - @ViewData["Title"] - AureliaSpa - - - - - - @RenderBody() - - @RenderSection("scripts", required: false) - - diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/_ViewImports.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/_ViewImports.cshtml deleted file mode 100644 index 4542402d..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/_ViewImports.cshtml +++ /dev/null @@ -1,3 +0,0 @@ -@using AureliaSpa -@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers -@addTagHelper *, Microsoft.AspNetCore.SpaServices diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/_ViewStart.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/_ViewStart.cshtml deleted file mode 100644 index 820a2f6e..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/Views/_ViewStart.cshtml +++ /dev/null @@ -1,3 +0,0 @@ -@{ - Layout = "_Layout"; -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/appsettings.Development.json b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/appsettings.Development.json deleted file mode 100644 index 457e0033..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/appsettings.Development.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "Logging": { - "IncludeScopes": false, - "Debug": { - "LogLevel": { - "Default": "Debug", - "System": "Information", - "Microsoft": "Information" - } - }, - "Console": { - "LogLevel": { - "Default": "Debug", - "System": "Information", - "Microsoft": "Information" - } - } - } -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/appsettings.json b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/appsettings.json deleted file mode 100644 index c851e129..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/appsettings.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "Logging": { - "IncludeScopes": false, - "Debug": { - "LogLevel": { - "Default": "Warning" - } - }, - "Console": { - "LogLevel": { - "Default": "Warning" - } - } - } -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/npm-shrinkwrap.json b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/npm-shrinkwrap.json deleted file mode 100644 index de9bb136..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/npm-shrinkwrap.json +++ /dev/null @@ -1,2615 +0,0 @@ -{ - "name": "AureliaSpa", - "version": "0.0.0", - "dependencies": { - "@types/webpack-env": { - "version": "1.13.0", - "from": "@types/webpack-env@>=1.13.0 <2.0.0", - "resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.13.0.tgz", - "dev": true - }, - "acorn": { - "version": "5.0.3", - "from": "acorn@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.0.3.tgz", - "dev": true - }, - "acorn-dynamic-import": { - "version": "2.0.2", - "from": "acorn-dynamic-import@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", - "dev": true, - "dependencies": { - "acorn": { - "version": "4.0.13", - "from": "acorn@>=4.0.3 <5.0.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "dev": true - } - } - }, - "ajv": { - "version": "5.2.0", - "from": "ajv@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.0.tgz", - "dev": true - }, - "ajv-keywords": { - "version": "1.5.1", - "from": "ajv-keywords@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz", - "dev": true - }, - "align-text": { - "version": "0.1.4", - "from": "align-text@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "dev": true - }, - "alphanum-sort": { - "version": "1.0.2", - "from": "alphanum-sort@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "dev": true - }, - "ansi-html": { - "version": "0.0.7", - "from": "ansi-html@0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "from": "ansi-regex@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "from": "ansi-styles@>=2.2.1 <3.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "dev": true - }, - "anymatch": { - "version": "1.3.0", - "from": "anymatch@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", - "dev": true - }, - "argparse": { - "version": "1.0.9", - "from": "argparse@>=1.0.7 <2.0.0", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", - "dev": true - }, - "arr-diff": { - "version": "2.0.0", - "from": "arr-diff@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "dev": true - }, - "arr-flatten": { - "version": "1.0.3", - "from": "arr-flatten@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz", - "dev": true - }, - "array-unique": { - "version": "0.2.1", - "from": "array-unique@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "from": "arrify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "dev": true - }, - "asn1.js": { - "version": "4.9.1", - "from": "asn1.js@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", - "dev": true - }, - "aspnet-webpack": { - "version": "2.0.1", - "from": "aspnet-webpack@2.0.1", - "resolved": "https://registry.npmjs.org/aspnet-webpack/-/aspnet-webpack-2.0.1.tgz", - "dev": true - }, - "assert": { - "version": "1.4.1", - "from": "assert@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "dev": true - }, - "ast-types": { - "version": "0.9.6", - "from": "ast-types@0.9.6", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.9.6.tgz", - "dev": true - }, - "async": { - "version": "2.5.0", - "from": "async@>=2.1.2 <3.0.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", - "dev": true - }, - "async-each": { - "version": "1.0.1", - "from": "async-each@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "dev": true - }, - "aurelia-binding": { - "version": "1.2.1", - "from": "aurelia-binding@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/aurelia-binding/-/aurelia-binding-1.2.1.tgz" - }, - "aurelia-bootstrapper": { - "version": "2.1.1", - "from": "aurelia-bootstrapper@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/aurelia-bootstrapper/-/aurelia-bootstrapper-2.1.1.tgz" - }, - "aurelia-dependency-injection": { - "version": "1.3.1", - "from": "aurelia-dependency-injection@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/aurelia-dependency-injection/-/aurelia-dependency-injection-1.3.1.tgz" - }, - "aurelia-event-aggregator": { - "version": "1.0.1", - "from": "aurelia-event-aggregator@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/aurelia-event-aggregator/-/aurelia-event-aggregator-1.0.1.tgz" - }, - "aurelia-fetch-client": { - "version": "1.1.2", - "from": "aurelia-fetch-client@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/aurelia-fetch-client/-/aurelia-fetch-client-1.1.2.tgz" - }, - "aurelia-framework": { - "version": "1.1.2", - "from": "aurelia-framework@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/aurelia-framework/-/aurelia-framework-1.1.2.tgz" - }, - "aurelia-history": { - "version": "1.0.0", - "from": "aurelia-history@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/aurelia-history/-/aurelia-history-1.0.0.tgz" - }, - "aurelia-history-browser": { - "version": "1.0.0", - "from": "aurelia-history-browser@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/aurelia-history-browser/-/aurelia-history-browser-1.0.0.tgz" - }, - "aurelia-hot-module-reload": { - "version": "0.1.0", - "from": "aurelia-hot-module-reload@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/aurelia-hot-module-reload/-/aurelia-hot-module-reload-0.1.0.tgz" - }, - "aurelia-loader": { - "version": "1.0.0", - "from": "aurelia-loader@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/aurelia-loader/-/aurelia-loader-1.0.0.tgz" - }, - "aurelia-loader-default": { - "version": "1.0.2", - "from": "aurelia-loader-default@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/aurelia-loader-default/-/aurelia-loader-default-1.0.2.tgz" - }, - "aurelia-loader-webpack": { - "version": "2.1.0", - "from": "aurelia-loader-webpack@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/aurelia-loader-webpack/-/aurelia-loader-webpack-2.1.0.tgz" - }, - "aurelia-logging": { - "version": "1.3.1", - "from": "aurelia-logging@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/aurelia-logging/-/aurelia-logging-1.3.1.tgz" - }, - "aurelia-logging-console": { - "version": "1.0.0", - "from": "aurelia-logging-console@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/aurelia-logging-console/-/aurelia-logging-console-1.0.0.tgz" - }, - "aurelia-metadata": { - "version": "1.0.3", - "from": "aurelia-metadata@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/aurelia-metadata/-/aurelia-metadata-1.0.3.tgz" - }, - "aurelia-pal": { - "version": "1.3.0", - "from": "aurelia-pal@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/aurelia-pal/-/aurelia-pal-1.3.0.tgz" - }, - "aurelia-pal-browser": { - "version": "1.2.1", - "from": "aurelia-pal-browser@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/aurelia-pal-browser/-/aurelia-pal-browser-1.2.1.tgz" - }, - "aurelia-path": { - "version": "1.1.1", - "from": "aurelia-path@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/aurelia-path/-/aurelia-path-1.1.1.tgz" - }, - "aurelia-polyfills": { - "version": "1.2.1", - "from": "aurelia-polyfills@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/aurelia-polyfills/-/aurelia-polyfills-1.2.1.tgz" - }, - "aurelia-route-recognizer": { - "version": "1.1.0", - "from": "aurelia-route-recognizer@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/aurelia-route-recognizer/-/aurelia-route-recognizer-1.1.0.tgz" - }, - "aurelia-router": { - "version": "1.3.0", - "from": "aurelia-router@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/aurelia-router/-/aurelia-router-1.3.0.tgz" - }, - "aurelia-task-queue": { - "version": "1.2.0", - "from": "aurelia-task-queue@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/aurelia-task-queue/-/aurelia-task-queue-1.2.0.tgz" - }, - "aurelia-templating": { - "version": "1.4.2", - "from": "aurelia-templating@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/aurelia-templating/-/aurelia-templating-1.4.2.tgz" - }, - "aurelia-templating-binding": { - "version": "1.3.0", - "from": "aurelia-templating-binding@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/aurelia-templating-binding/-/aurelia-templating-binding-1.3.0.tgz" - }, - "aurelia-templating-resources": { - "version": "1.4.0", - "from": "aurelia-templating-resources@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/aurelia-templating-resources/-/aurelia-templating-resources-1.4.0.tgz" - }, - "aurelia-templating-router": { - "version": "1.1.0", - "from": "aurelia-templating-router@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/aurelia-templating-router/-/aurelia-templating-router-1.1.0.tgz" - }, - "aurelia-webpack-plugin": { - "version": "2.0.0-rc.2", - "from": "aurelia-webpack-plugin@>=2.0.0-rc.2 <3.0.0", - "resolved": "https://registry.npmjs.org/aurelia-webpack-plugin/-/aurelia-webpack-plugin-2.0.0-rc.2.tgz", - "dev": true - }, - "autoprefixer": { - "version": "6.7.7", - "from": "autoprefixer@>=6.3.1 <7.0.0", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", - "dev": true - }, - "babel-code-frame": { - "version": "6.22.0", - "from": "babel-code-frame@>=6.11.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "from": "balanced-match@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "dev": true - }, - "base64-js": { - "version": "1.2.1", - "from": "base64-js@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "dev": true - }, - "big.js": { - "version": "3.1.3", - "from": "big.js@>=3.1.3 <4.0.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz", - "dev": true - }, - "binary-extensions": { - "version": "1.8.0", - "from": "binary-extensions@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz", - "dev": true - }, - "bn.js": { - "version": "4.11.7", - "from": "bn.js@>=4.1.1 <5.0.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.7.tgz", - "dev": true - }, - "bootstrap": { - "version": "3.3.7", - "from": "bootstrap@>=3.3.7 <4.0.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.3.7.tgz" - }, - "brace-expansion": { - "version": "1.1.8", - "from": "brace-expansion@>=1.1.7 <2.0.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "dev": true - }, - "braces": { - "version": "1.8.5", - "from": "braces@>=1.8.2 <2.0.0", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "dev": true - }, - "brorand": { - "version": "1.1.0", - "from": "brorand@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "dev": true - }, - "browserify-aes": { - "version": "1.0.6", - "from": "browserify-aes@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz", - "dev": true - }, - "browserify-cipher": { - "version": "1.0.0", - "from": "browserify-cipher@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", - "dev": true - }, - "browserify-des": { - "version": "1.0.0", - "from": "browserify-des@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", - "dev": true - }, - "browserify-rsa": { - "version": "4.0.1", - "from": "browserify-rsa@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "dev": true - }, - "browserify-sign": { - "version": "4.0.4", - "from": "browserify-sign@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "dev": true - }, - "browserify-zlib": { - "version": "0.1.4", - "from": "browserify-zlib@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "dev": true - }, - "browserslist": { - "version": "1.7.7", - "from": "browserslist@>=1.7.6 <2.0.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "dev": true - }, - "buffer": { - "version": "4.9.1", - "from": "buffer@>=4.3.0 <5.0.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "from": "buffer-xor@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "from": "builtin-modules@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "from": "builtin-status-codes@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "dev": true - }, - "bundle-loader": { - "version": "0.5.5", - "from": "bundle-loader@>=0.5.4 <0.6.0", - "resolved": "https://registry.npmjs.org/bundle-loader/-/bundle-loader-0.5.5.tgz", - "dev": true - }, - "camel-case": { - "version": "3.0.0", - "from": "camel-case@>=3.0.0 <3.1.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "dev": true - }, - "camelcase": { - "version": "1.2.1", - "from": "camelcase@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "dev": true - }, - "caniuse-api": { - "version": "1.6.1", - "from": "caniuse-api@>=1.5.2 <2.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", - "dev": true - }, - "caniuse-db": { - "version": "1.0.30000694", - "from": "caniuse-db@>=1.0.30000634 <2.0.0", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000694.tgz", - "dev": true - }, - "center-align": { - "version": "0.1.3", - "from": "center-align@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "from": "chalk@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "dev": true - }, - "chokidar": { - "version": "1.7.0", - "from": "chokidar@>=1.4.3 <2.0.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "dev": true - }, - "cipher-base": { - "version": "1.0.3", - "from": "cipher-base@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz", - "dev": true - }, - "clap": { - "version": "1.2.0", - "from": "clap@>=1.0.9 <2.0.0", - "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.0.tgz", - "dev": true - }, - "clean-css": { - "version": "4.1.4", - "from": "clean-css@>=4.1.0 <4.2.0", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.4.tgz", - "dev": true - }, - "cliui": { - "version": "2.1.0", - "from": "cliui@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "dev": true - }, - "clone": { - "version": "1.0.2", - "from": "clone@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", - "dev": true - }, - "co": { - "version": "4.6.0", - "from": "co@>=4.6.0 <5.0.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "dev": true - }, - "coa": { - "version": "1.0.3", - "from": "coa@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.3.tgz", - "dev": true - }, - "code-point-at": { - "version": "1.1.0", - "from": "code-point-at@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "dev": true - }, - "color": { - "version": "0.11.4", - "from": "color@>=0.11.0 <0.12.0", - "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", - "dev": true - }, - "color-convert": { - "version": "1.9.0", - "from": "color-convert@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", - "dev": true - }, - "color-name": { - "version": "1.1.2", - "from": "color-name@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.2.tgz", - "dev": true - }, - "color-string": { - "version": "0.3.0", - "from": "color-string@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", - "dev": true - }, - "colormin": { - "version": "1.1.2", - "from": "colormin@>=1.0.5 <2.0.0", - "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", - "dev": true - }, - "colors": { - "version": "1.1.2", - "from": "colors@>=1.1.2 <1.2.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "dev": true - }, - "commander": { - "version": "2.9.0", - "from": "commander@>=2.9.0 <2.10.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "from": "concat-map@0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "dev": true - }, - "connect": { - "version": "3.6.2", - "from": "connect@>=3.4.1 <4.0.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.2.tgz", - "dev": true - }, - "console-browserify": { - "version": "1.1.0", - "from": "console-browserify@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "dev": true - }, - "constants-browserify": { - "version": "1.0.0", - "from": "constants-browserify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "from": "core-util-is@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "dev": true - }, - "create-ecdh": { - "version": "4.0.0", - "from": "create-ecdh@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", - "dev": true - }, - "create-hash": { - "version": "1.1.3", - "from": "create-hash@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", - "dev": true - }, - "create-hmac": { - "version": "1.1.6", - "from": "create-hmac@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", - "dev": true - }, - "crypto-browserify": { - "version": "3.11.0", - "from": "crypto-browserify@>=3.11.0 <4.0.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz", - "dev": true - }, - "css-color-names": { - "version": "0.0.4", - "from": "css-color-names@0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "dev": true - }, - "css-loader": { - "version": "0.28.4", - "from": "css-loader@>=0.28.0 <0.29.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.4.tgz", - "dev": true - }, - "css-selector-tokenizer": { - "version": "0.7.0", - "from": "css-selector-tokenizer@>=0.7.0 <0.8.0", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", - "dev": true - }, - "cssesc": { - "version": "0.1.0", - "from": "cssesc@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", - "dev": true - }, - "cssnano": { - "version": "3.10.0", - "from": "cssnano@>=2.6.1 <4.0.0", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", - "dev": true - }, - "csso": { - "version": "2.3.2", - "from": "csso@>=2.3.1 <2.4.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", - "dev": true - }, - "date-now": { - "version": "0.1.4", - "from": "date-now@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "dev": true - }, - "debug": { - "version": "2.6.7", - "from": "debug@2.6.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "dev": true - }, - "decamelize": { - "version": "1.2.0", - "from": "decamelize@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "dev": true - }, - "defined": { - "version": "1.0.0", - "from": "defined@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "dev": true - }, - "des.js": { - "version": "1.0.0", - "from": "des.js@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.2", - "from": "diffie-hellman@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", - "dev": true - }, - "domain-browser": { - "version": "1.1.7", - "from": "domain-browser@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", - "dev": true - }, - "ee-first": { - "version": "1.1.1", - "from": "ee-first@1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.14", - "from": "electron-to-chromium@>=1.2.7 <2.0.0", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.14.tgz", - "dev": true - }, - "elliptic": { - "version": "6.4.0", - "from": "elliptic@>=6.0.0 <7.0.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", - "dev": true - }, - "emojis-list": { - "version": "2.1.0", - "from": "emojis-list@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "dev": true - }, - "encodeurl": { - "version": "1.0.1", - "from": "encodeurl@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "dev": true - }, - "encoding": { - "version": "0.1.12", - "from": "encoding@>=0.1.11 <0.2.0", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz" - }, - "enhanced-resolve": { - "version": "3.1.0", - "from": "enhanced-resolve@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.1.0.tgz", - "dev": true, - "dependencies": { - "memory-fs": { - "version": "0.4.1", - "from": "memory-fs@>=0.4.0 <0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "dev": true - } - } - }, - "errno": { - "version": "0.1.4", - "from": "errno@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", - "dev": true - }, - "error-ex": { - "version": "1.3.1", - "from": "error-ex@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "dev": true - }, - "es6-promise": { - "version": "3.3.1", - "from": "es6-promise@>=3.1.2 <4.0.0", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", - "dev": true - }, - "es6-templates": { - "version": "0.2.3", - "from": "es6-templates@>=0.2.2 <0.3.0", - "resolved": "https://registry.npmjs.org/es6-templates/-/es6-templates-0.2.3.tgz", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "from": "escape-html@>=1.0.3 <1.1.0", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "from": "escape-string-regexp@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "dev": true - }, - "esprima": { - "version": "3.1.3", - "from": "esprima@>=3.1.0 <3.2.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "from": "esutils@>=2.0.2 <3.0.0", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "dev": true - }, - "events": { - "version": "1.1.1", - "from": "events@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.0", - "from": "evp_bytestokey@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz", - "dev": true - }, - "expand-brackets": { - "version": "0.1.5", - "from": "expand-brackets@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "dev": true - }, - "expand-range": { - "version": "1.8.2", - "from": "expand-range@>=1.8.1 <2.0.0", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "dev": true - }, - "extglob": { - "version": "0.3.2", - "from": "extglob@>=0.3.1 <0.4.0", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "dev": true - }, - "extract-text-webpack-plugin": { - "version": "2.1.2", - "from": "extract-text-webpack-plugin@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-2.1.2.tgz", - "dev": true - }, - "fast-deep-equal": { - "version": "0.1.0", - "from": "fast-deep-equal@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-0.1.0.tgz", - "dev": true - }, - "fastparse": { - "version": "1.1.1", - "from": "fastparse@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", - "dev": true - }, - "file-loader": { - "version": "0.11.2", - "from": "file-loader@>=0.11.1 <0.12.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.11.2.tgz", - "dev": true - }, - "filename-regex": { - "version": "2.0.1", - "from": "filename-regex@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "dev": true - }, - "fill-range": { - "version": "2.2.3", - "from": "fill-range@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "dev": true - }, - "finalhandler": { - "version": "1.0.3", - "from": "finalhandler@1.0.3", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.3.tgz", - "dev": true - }, - "find-up": { - "version": "1.1.2", - "from": "find-up@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "dev": true - }, - "flatten": { - "version": "1.0.2", - "from": "flatten@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", - "dev": true - }, - "for-in": { - "version": "1.0.2", - "from": "for-in@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "dev": true - }, - "for-own": { - "version": "0.1.5", - "from": "for-own@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "dev": true - }, - "function-bind": { - "version": "1.1.0", - "from": "function-bind@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", - "dev": true - }, - "get-caller-file": { - "version": "1.0.2", - "from": "get-caller-file@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "dev": true - }, - "glob-base": { - "version": "0.3.0", - "from": "glob-base@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "dev": true - }, - "glob-parent": { - "version": "2.0.0", - "from": "glob-parent@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "dev": true - }, - "graceful-fs": { - "version": "4.1.11", - "from": "graceful-fs@>=4.1.2 <5.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "dev": true - }, - "graceful-readlink": { - "version": "1.0.1", - "from": "graceful-readlink@>=1.0.0", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "dev": true - }, - "has": { - "version": "1.0.1", - "from": "has@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "dev": true - }, - "has-ansi": { - "version": "2.0.0", - "from": "has-ansi@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "dev": true - }, - "has-flag": { - "version": "1.0.0", - "from": "has-flag@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "dev": true - }, - "hash-base": { - "version": "2.0.2", - "from": "hash-base@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", - "dev": true - }, - "hash.js": { - "version": "1.1.1", - "from": "hash.js@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.1.tgz", - "dev": true - }, - "he": { - "version": "1.1.1", - "from": "he@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "dev": true - }, - "hmac-drbg": { - "version": "1.0.1", - "from": "hmac-drbg@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "dev": true - }, - "hosted-git-info": { - "version": "2.4.2", - "from": "hosted-git-info@>=2.1.4 <3.0.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.2.tgz", - "dev": true - }, - "html-comment-regex": { - "version": "1.1.1", - "from": "html-comment-regex@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", - "dev": true - }, - "html-entities": { - "version": "1.2.1", - "from": "html-entities@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", - "dev": true - }, - "html-loader": { - "version": "0.4.5", - "from": "html-loader@>=0.4.5 <0.5.0", - "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-0.4.5.tgz", - "dev": true - }, - "html-minifier": { - "version": "3.5.2", - "from": "html-minifier@>=3.0.1 <4.0.0", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.2.tgz", - "dev": true - }, - "https-browserify": { - "version": "0.0.1", - "from": "https-browserify@0.0.1", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", - "dev": true - }, - "iconv-lite": { - "version": "0.4.18", - "from": "iconv-lite@>=0.4.13 <0.5.0", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz" - }, - "icss-replace-symbols": { - "version": "1.1.0", - "from": "icss-replace-symbols@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "dev": true - }, - "icss-utils": { - "version": "2.1.0", - "from": "icss-utils@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", - "dev": true, - "dependencies": { - "has-flag": { - "version": "2.0.0", - "from": "has-flag@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "dev": true - }, - "postcss": { - "version": "6.0.3", - "from": "postcss@>=6.0.1 <7.0.0", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.3.tgz", - "dev": true - }, - "supports-color": { - "version": "4.0.0", - "from": "supports-color@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.0.0.tgz", - "dev": true - } - } - }, - "ieee754": { - "version": "1.1.8", - "from": "ieee754@>=1.1.4 <2.0.0", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", - "dev": true - }, - "indexes-of": { - "version": "1.0.1", - "from": "indexes-of@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "dev": true - }, - "indexof": { - "version": "0.0.1", - "from": "indexof@0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "dev": true - }, - "inherits": { - "version": "2.0.3", - "from": "inherits@>=2.0.3 <2.1.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "dev": true - }, - "interpret": { - "version": "1.0.3", - "from": "interpret@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz", - "dev": true - }, - "invert-kv": { - "version": "1.0.0", - "from": "invert-kv@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "dev": true - }, - "is-absolute-url": { - "version": "2.1.0", - "from": "is-absolute-url@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "dev": true - }, - "is-arrayish": { - "version": "0.2.1", - "from": "is-arrayish@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "dev": true - }, - "is-binary-path": { - "version": "1.0.1", - "from": "is-binary-path@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "dev": true - }, - "is-buffer": { - "version": "1.1.5", - "from": "is-buffer@>=1.1.5 <2.0.0", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "from": "is-builtin-module@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "dev": true - }, - "is-dotfile": { - "version": "1.0.3", - "from": "is-dotfile@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "from": "is-equal-shallow@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "dev": true - }, - "is-extendable": { - "version": "0.1.1", - "from": "is-extendable@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "dev": true - }, - "is-extglob": { - "version": "1.0.0", - "from": "is-extglob@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "from": "is-fullwidth-code-point@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "from": "is-glob@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "dev": true - }, - "is-number": { - "version": "2.1.0", - "from": "is-number@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "dev": true - }, - "is-plain-obj": { - "version": "1.1.0", - "from": "is-plain-obj@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "dev": true - }, - "is-posix-bracket": { - "version": "0.1.1", - "from": "is-posix-bracket@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "dev": true - }, - "is-primitive": { - "version": "2.0.0", - "from": "is-primitive@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "from": "is-stream@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" - }, - "is-svg": { - "version": "2.1.0", - "from": "is-svg@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", - "dev": true - }, - "is-utf8": { - "version": "0.2.1", - "from": "is-utf8@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "from": "isarray@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "dev": true - }, - "isobject": { - "version": "2.1.0", - "from": "isobject@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "dev": true - }, - "isomorphic-fetch": { - "version": "2.2.1", - "from": "isomorphic-fetch@>=2.2.1 <3.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz" - }, - "jquery": { - "version": "3.2.1", - "from": "jquery@>=3.2.1 <4.0.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz" - }, - "js-base64": { - "version": "2.1.9", - "from": "js-base64@>=2.1.9 <3.0.0", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz", - "dev": true - }, - "js-tokens": { - "version": "3.0.1", - "from": "js-tokens@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", - "dev": true - }, - "js-yaml": { - "version": "3.7.0", - "from": "js-yaml@>=3.7.0 <3.8.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", - "dev": true, - "dependencies": { - "esprima": { - "version": "2.7.3", - "from": "esprima@>=2.6.0 <3.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "dev": true - } - } - }, - "jsesc": { - "version": "0.5.0", - "from": "jsesc@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "dev": true - }, - "json-loader": { - "version": "0.5.4", - "from": "json-loader@>=0.5.4 <0.6.0", - "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.4.tgz", - "dev": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "from": "json-schema-traverse@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "dev": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "from": "json-stable-stringify@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "dev": true - }, - "json5": { - "version": "0.5.1", - "from": "json5@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "dev": true - }, - "jsonify": { - "version": "0.0.0", - "from": "jsonify@>=0.0.0 <0.1.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "from": "kind-of@>=3.0.2 <4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "dev": true - }, - "lazy-cache": { - "version": "1.0.4", - "from": "lazy-cache@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "dev": true - }, - "lcid": { - "version": "1.0.0", - "from": "lcid@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "dev": true - }, - "load-json-file": { - "version": "1.1.0", - "from": "load-json-file@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "dev": true - }, - "loader-runner": { - "version": "2.3.0", - "from": "loader-runner@>=2.3.0 <3.0.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", - "dev": true - }, - "loader-utils": { - "version": "1.1.0", - "from": "loader-utils@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "dev": true - }, - "lodash": { - "version": "4.17.4", - "from": "lodash@>=4.14.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "dev": true - }, - "lodash.camelcase": { - "version": "4.3.0", - "from": "lodash.camelcase@>=4.3.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "dev": true - }, - "lodash.memoize": { - "version": "4.1.2", - "from": "lodash.memoize@>=4.1.2 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "dev": true - }, - "lodash.uniq": { - "version": "4.5.0", - "from": "lodash.uniq@>=4.5.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "dev": true - }, - "longest": { - "version": "1.0.1", - "from": "longest@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "dev": true - }, - "lower-case": { - "version": "1.1.4", - "from": "lower-case@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "dev": true - }, - "macaddress": { - "version": "0.2.8", - "from": "macaddress@>=0.2.8 <0.3.0", - "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz", - "dev": true - }, - "math-expression-evaluator": { - "version": "1.2.17", - "from": "math-expression-evaluator@>=1.2.14 <2.0.0", - "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", - "dev": true - }, - "memory-fs": { - "version": "0.3.0", - "from": "memory-fs@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz", - "dev": true - }, - "micromatch": { - "version": "2.3.11", - "from": "micromatch@>=2.1.5 <3.0.0", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "dev": true - }, - "miller-rabin": { - "version": "4.0.0", - "from": "miller-rabin@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz", - "dev": true - }, - "mime": { - "version": "1.3.6", - "from": "mime@>=1.3.4 <2.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.6.tgz", - "dev": true - }, - "minimalistic-assert": { - "version": "1.0.0", - "from": "minimalistic-assert@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "from": "minimalistic-crypto-utils@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "from": "minimatch@>=3.0.3 <4.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "dev": true - }, - "minimist": { - "version": "0.0.8", - "from": "minimist@0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "from": "mkdirp@>=0.5.1 <0.6.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "dev": true - }, - "ms": { - "version": "2.0.0", - "from": "ms@2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "dev": true - }, - "ncname": { - "version": "1.0.0", - "from": "ncname@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz", - "dev": true - }, - "no-case": { - "version": "2.3.1", - "from": "no-case@>=2.2.0 <3.0.0", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.1.tgz", - "dev": true - }, - "node-fetch": { - "version": "1.7.1", - "from": "node-fetch@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.1.tgz" - }, - "node-libs-browser": { - "version": "2.0.0", - "from": "node-libs-browser@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.0.0.tgz", - "dev": true, - "dependencies": { - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@>=0.10.25 <0.11.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "dev": true - } - } - }, - "normalize-package-data": { - "version": "2.3.8", - "from": "normalize-package-data@>=2.3.2 <3.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.8.tgz", - "dev": true - }, - "normalize-path": { - "version": "2.1.1", - "from": "normalize-path@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "dev": true - }, - "normalize-range": { - "version": "0.1.2", - "from": "normalize-range@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "dev": true - }, - "normalize-url": { - "version": "1.9.1", - "from": "normalize-url@>=1.4.0 <2.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "dev": true - }, - "num2fraction": { - "version": "1.2.2", - "from": "num2fraction@>=1.2.2 <2.0.0", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "dev": true - }, - "number-is-nan": { - "version": "1.0.1", - "from": "number-is-nan@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "from": "object-assign@>=4.1.0 <5.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "dev": true - }, - "object.omit": { - "version": "2.0.1", - "from": "object.omit@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "from": "on-finished@>=2.3.0 <2.4.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "dev": true - }, - "os-browserify": { - "version": "0.2.1", - "from": "os-browserify@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", - "dev": true - }, - "os-locale": { - "version": "1.4.0", - "from": "os-locale@>=1.4.0 <2.0.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "dev": true - }, - "pako": { - "version": "0.2.9", - "from": "pako@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "dev": true - }, - "param-case": { - "version": "2.1.1", - "from": "param-case@>=2.1.0 <2.2.0", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "dev": true - }, - "parse-asn1": { - "version": "5.1.0", - "from": "parse-asn1@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", - "dev": true - }, - "parse-glob": { - "version": "3.0.4", - "from": "parse-glob@>=3.0.4 <4.0.0", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "dev": true - }, - "parse-json": { - "version": "2.2.0", - "from": "parse-json@>=2.2.0 <3.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "dev": true - }, - "parseurl": { - "version": "1.3.1", - "from": "parseurl@>=1.3.1 <1.4.0", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", - "dev": true - }, - "path-browserify": { - "version": "0.0.0", - "from": "path-browserify@0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "dev": true - }, - "path-exists": { - "version": "2.1.0", - "from": "path-exists@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "from": "path-is-absolute@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "dev": true - }, - "path-type": { - "version": "1.1.0", - "from": "path-type@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "dev": true - }, - "pbkdf2": { - "version": "3.0.12", - "from": "pbkdf2@>=3.0.3 <4.0.0", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.12.tgz", - "dev": true - }, - "pify": { - "version": "2.3.0", - "from": "pify@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "from": "pinkie@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "from": "pinkie-promise@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "dev": true - }, - "postcss": { - "version": "5.2.17", - "from": "postcss@>=5.0.6 <6.0.0", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", - "dev": true, - "dependencies": { - "supports-color": { - "version": "3.2.3", - "from": "supports-color@>=3.2.3 <4.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "dev": true - } - } - }, - "postcss-calc": { - "version": "5.3.1", - "from": "postcss-calc@>=5.2.0 <6.0.0", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", - "dev": true - }, - "postcss-colormin": { - "version": "2.2.2", - "from": "postcss-colormin@>=2.1.8 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", - "dev": true - }, - "postcss-convert-values": { - "version": "2.6.1", - "from": "postcss-convert-values@>=2.3.4 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", - "dev": true - }, - "postcss-discard-comments": { - "version": "2.0.4", - "from": "postcss-discard-comments@>=2.0.4 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", - "dev": true - }, - "postcss-discard-duplicates": { - "version": "2.1.0", - "from": "postcss-discard-duplicates@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", - "dev": true - }, - "postcss-discard-empty": { - "version": "2.1.0", - "from": "postcss-discard-empty@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", - "dev": true - }, - "postcss-discard-overridden": { - "version": "0.1.1", - "from": "postcss-discard-overridden@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", - "dev": true - }, - "postcss-discard-unused": { - "version": "2.2.3", - "from": "postcss-discard-unused@>=2.2.1 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", - "dev": true - }, - "postcss-filter-plugins": { - "version": "2.0.2", - "from": "postcss-filter-plugins@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz", - "dev": true - }, - "postcss-merge-idents": { - "version": "2.1.7", - "from": "postcss-merge-idents@>=2.1.5 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", - "dev": true - }, - "postcss-merge-longhand": { - "version": "2.0.2", - "from": "postcss-merge-longhand@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", - "dev": true - }, - "postcss-merge-rules": { - "version": "2.1.2", - "from": "postcss-merge-rules@>=2.0.3 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", - "dev": true - }, - "postcss-message-helpers": { - "version": "2.0.0", - "from": "postcss-message-helpers@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", - "dev": true - }, - "postcss-minify-font-values": { - "version": "1.0.5", - "from": "postcss-minify-font-values@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", - "dev": true - }, - "postcss-minify-gradients": { - "version": "1.0.5", - "from": "postcss-minify-gradients@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", - "dev": true - }, - "postcss-minify-params": { - "version": "1.2.2", - "from": "postcss-minify-params@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", - "dev": true - }, - "postcss-minify-selectors": { - "version": "2.1.1", - "from": "postcss-minify-selectors@>=2.0.4 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", - "dev": true - }, - "postcss-modules-extract-imports": { - "version": "1.1.0", - "from": "postcss-modules-extract-imports@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", - "dev": true, - "dependencies": { - "has-flag": { - "version": "2.0.0", - "from": "has-flag@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "dev": true - }, - "postcss": { - "version": "6.0.3", - "from": "postcss@>=6.0.1 <7.0.0", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.3.tgz", - "dev": true - }, - "supports-color": { - "version": "4.0.0", - "from": "supports-color@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.0.0.tgz", - "dev": true - } - } - }, - "postcss-modules-local-by-default": { - "version": "1.2.0", - "from": "postcss-modules-local-by-default@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", - "dev": true, - "dependencies": { - "has-flag": { - "version": "2.0.0", - "from": "has-flag@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "dev": true - }, - "postcss": { - "version": "6.0.3", - "from": "postcss@>=6.0.1 <7.0.0", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.3.tgz", - "dev": true - }, - "supports-color": { - "version": "4.0.0", - "from": "supports-color@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.0.0.tgz", - "dev": true - } - } - }, - "postcss-modules-scope": { - "version": "1.1.0", - "from": "postcss-modules-scope@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", - "dev": true, - "dependencies": { - "has-flag": { - "version": "2.0.0", - "from": "has-flag@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "dev": true - }, - "postcss": { - "version": "6.0.3", - "from": "postcss@>=6.0.1 <7.0.0", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.3.tgz", - "dev": true - }, - "supports-color": { - "version": "4.0.0", - "from": "supports-color@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.0.0.tgz", - "dev": true - } - } - }, - "postcss-modules-values": { - "version": "1.3.0", - "from": "postcss-modules-values@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", - "dev": true, - "dependencies": { - "has-flag": { - "version": "2.0.0", - "from": "has-flag@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "dev": true - }, - "postcss": { - "version": "6.0.3", - "from": "postcss@>=6.0.1 <7.0.0", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.3.tgz", - "dev": true - }, - "supports-color": { - "version": "4.0.0", - "from": "supports-color@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.0.0.tgz", - "dev": true - } - } - }, - "postcss-normalize-charset": { - "version": "1.1.1", - "from": "postcss-normalize-charset@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", - "dev": true - }, - "postcss-normalize-url": { - "version": "3.0.8", - "from": "postcss-normalize-url@>=3.0.7 <4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", - "dev": true - }, - "postcss-ordered-values": { - "version": "2.2.3", - "from": "postcss-ordered-values@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", - "dev": true - }, - "postcss-reduce-idents": { - "version": "2.4.0", - "from": "postcss-reduce-idents@>=2.2.2 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", - "dev": true - }, - "postcss-reduce-initial": { - "version": "1.0.1", - "from": "postcss-reduce-initial@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", - "dev": true - }, - "postcss-reduce-transforms": { - "version": "1.0.4", - "from": "postcss-reduce-transforms@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", - "dev": true - }, - "postcss-selector-parser": { - "version": "2.2.3", - "from": "postcss-selector-parser@>=2.2.2 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", - "dev": true - }, - "postcss-svgo": { - "version": "2.1.6", - "from": "postcss-svgo@>=2.1.1 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", - "dev": true - }, - "postcss-unique-selectors": { - "version": "2.0.2", - "from": "postcss-unique-selectors@>=2.0.2 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", - "dev": true - }, - "postcss-value-parser": { - "version": "3.3.0", - "from": "postcss-value-parser@>=3.3.0 <4.0.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", - "dev": true - }, - "postcss-zindex": { - "version": "2.2.0", - "from": "postcss-zindex@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "from": "prepend-http@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "dev": true - }, - "preserve": { - "version": "0.2.0", - "from": "preserve@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "dev": true - }, - "private": { - "version": "0.1.7", - "from": "private@>=0.1.5 <0.2.0", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz", - "dev": true - }, - "process": { - "version": "0.11.10", - "from": "process@>=0.11.0 <0.12.0", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "dev": true - }, - "process-nextick-args": { - "version": "1.0.7", - "from": "process-nextick-args@>=1.0.6 <1.1.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "dev": true - }, - "prr": { - "version": "0.0.0", - "from": "prr@>=0.0.0 <0.1.0", - "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", - "dev": true - }, - "public-encrypt": { - "version": "4.0.0", - "from": "public-encrypt@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", - "dev": true - }, - "punycode": { - "version": "1.4.1", - "from": "punycode@>=1.2.4 <2.0.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "dev": true - }, - "q": { - "version": "1.5.0", - "from": "q@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz", - "dev": true - }, - "query-string": { - "version": "4.3.4", - "from": "query-string@>=4.1.0 <5.0.0", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "from": "querystring@0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "from": "querystring-es3@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "dev": true - }, - "randomatic": { - "version": "1.1.7", - "from": "randomatic@>=1.1.3 <2.0.0", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "dev": true, - "dependencies": { - "is-number": { - "version": "3.0.0", - "from": "is-number@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "dev": true, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "from": "kind-of@^3.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "dev": true - } - } - }, - "kind-of": { - "version": "4.0.0", - "from": "kind-of@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "dev": true - } - } - }, - "randombytes": { - "version": "2.0.5", - "from": "randombytes@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", - "dev": true - }, - "range-parser": { - "version": "1.2.0", - "from": "range-parser@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "dev": true - }, - "read-pkg": { - "version": "1.1.0", - "from": "read-pkg@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "dev": true - }, - "read-pkg-up": { - "version": "1.0.1", - "from": "read-pkg-up@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "dev": true - }, - "readable-stream": { - "version": "2.3.2", - "from": "readable-stream@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.2.tgz", - "dev": true - }, - "readdirp": { - "version": "2.1.0", - "from": "readdirp@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "dev": true - }, - "recast": { - "version": "0.11.23", - "from": "recast@>=0.11.12 <0.12.0", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz", - "dev": true - }, - "reduce-css-calc": { - "version": "1.3.0", - "from": "reduce-css-calc@>=1.2.6 <2.0.0", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", - "dev": true, - "dependencies": { - "balanced-match": { - "version": "0.4.2", - "from": "balanced-match@>=0.4.2 <0.5.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "dev": true - } - } - }, - "reduce-function-call": { - "version": "1.0.2", - "from": "reduce-function-call@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", - "dev": true, - "dependencies": { - "balanced-match": { - "version": "0.4.2", - "from": "balanced-match@>=0.4.2 <0.5.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "dev": true - } - } - }, - "regenerate": { - "version": "1.3.2", - "from": "regenerate@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz", - "dev": true - }, - "regex-cache": { - "version": "0.4.3", - "from": "regex-cache@>=0.4.2 <0.5.0", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", - "dev": true - }, - "regexpu-core": { - "version": "1.0.0", - "from": "regexpu-core@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", - "dev": true - }, - "regjsgen": { - "version": "0.2.0", - "from": "regjsgen@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "dev": true - }, - "regjsparser": { - "version": "0.1.5", - "from": "regjsparser@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "dev": true - }, - "relateurl": { - "version": "0.2.7", - "from": "relateurl@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "dev": true - }, - "remove-trailing-separator": { - "version": "1.0.2", - "from": "remove-trailing-separator@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz", - "dev": true - }, - "repeat-element": { - "version": "1.1.2", - "from": "repeat-element@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "from": "repeat-string@>=1.5.2 <2.0.0", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "from": "require-directory@>=2.1.1 <3.0.0", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "dev": true - }, - "require-from-string": { - "version": "1.2.1", - "from": "require-from-string@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "from": "require-main-filename@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "dev": true - }, - "right-align": { - "version": "0.1.3", - "from": "right-align@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "dev": true - }, - "ripemd160": { - "version": "2.0.1", - "from": "ripemd160@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", - "dev": true - }, - "safe-buffer": { - "version": "5.1.1", - "from": "safe-buffer@>=5.1.0 <5.2.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "dev": true - }, - "sax": { - "version": "1.2.4", - "from": "sax@>=1.2.1 <1.3.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "dev": true - }, - "schema-utils": { - "version": "0.3.0", - "from": "schema-utils@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "dev": true - }, - "semver": { - "version": "5.3.0", - "from": "semver@>=5.0.1 <6.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "from": "set-blocking@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "dev": true - }, - "set-immediate-shim": { - "version": "1.0.1", - "from": "set-immediate-shim@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "dev": true - }, - "setimmediate": { - "version": "1.0.5", - "from": "setimmediate@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "dev": true - }, - "sha.js": { - "version": "2.4.8", - "from": "sha.js@>=2.4.0 <3.0.0", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz", - "dev": true - }, - "sort-keys": { - "version": "1.1.2", - "from": "sort-keys@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "dev": true - }, - "source-list-map": { - "version": "0.1.8", - "from": "source-list-map@>=0.1.7 <0.2.0", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", - "dev": true - }, - "source-map": { - "version": "0.5.6", - "from": "source-map@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "dev": true - }, - "spdx-correct": { - "version": "1.0.2", - "from": "spdx-correct@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "dev": true - }, - "spdx-expression-parse": { - "version": "1.0.4", - "from": "spdx-expression-parse@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "dev": true - }, - "spdx-license-ids": { - "version": "1.2.2", - "from": "spdx-license-ids@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "dev": true - }, - "sprintf-js": { - "version": "1.0.3", - "from": "sprintf-js@>=1.0.2 <1.1.0", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "dev": true - }, - "statuses": { - "version": "1.3.1", - "from": "statuses@>=1.3.1 <1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "dev": true - }, - "stream-browserify": { - "version": "2.0.1", - "from": "stream-browserify@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "dev": true - }, - "stream-http": { - "version": "2.7.2", - "from": "stream-http@>=2.3.1 <3.0.0", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", - "dev": true - }, - "strict-uri-encode": { - "version": "1.1.0", - "from": "strict-uri-encode@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "dev": true - }, - "string_decoder": { - "version": "1.0.3", - "from": "string_decoder@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "dev": true - }, - "string-width": { - "version": "1.0.2", - "from": "string-width@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "from": "strip-ansi@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "dev": true - }, - "strip-bom": { - "version": "2.0.0", - "from": "strip-bom@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "dev": true - }, - "style-loader": { - "version": "0.16.1", - "from": "style-loader@>=0.16.1 <0.17.0", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.16.1.tgz", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "from": "supports-color@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "dev": true - }, - "svgo": { - "version": "0.7.2", - "from": "svgo@>=0.7.0 <0.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", - "dev": true - }, - "tapable": { - "version": "0.2.6", - "from": "tapable@>=0.2.5 <0.3.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.6.tgz", - "dev": true - }, - "through": { - "version": "2.3.8", - "from": "through@>=2.3.6 <2.4.0", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "dev": true - }, - "timers-browserify": { - "version": "2.0.2", - "from": "timers-browserify@>=2.0.2 <3.0.0", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.2.tgz", - "dev": true - }, - "to-arraybuffer": { - "version": "1.0.1", - "from": "to-arraybuffer@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "dev": true - }, - "ts-loader": { - "version": "2.2.0", - "from": "ts-loader@>=2.0.3 <3.0.0", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-2.2.0.tgz", - "dev": true - }, - "tty-browserify": { - "version": "0.0.0", - "from": "tty-browserify@0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "dev": true - }, - "typescript": { - "version": "2.3.4", - "from": "typescript@>=2.2.2 <3.0.0", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.3.4.tgz", - "dev": true - }, - "uglify-js": { - "version": "3.0.20", - "from": "uglify-js@>=3.0.0 <3.1.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.0.20.tgz", - "dev": true - }, - "uglify-to-browserify": { - "version": "1.0.2", - "from": "uglify-to-browserify@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "dev": true, - "optional": true - }, - "uniq": { - "version": "1.0.1", - "from": "uniq@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "dev": true - }, - "uniqid": { - "version": "4.1.1", - "from": "uniqid@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", - "dev": true - }, - "uniqs": { - "version": "2.0.0", - "from": "uniqs@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "from": "unpipe@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "dev": true - }, - "upper-case": { - "version": "1.1.3", - "from": "upper-case@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "dev": true - }, - "url": { - "version": "0.11.0", - "from": "url@>=0.11.0 <0.12.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "dev": true, - "dependencies": { - "punycode": { - "version": "1.3.2", - "from": "punycode@1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "dev": true - } - } - }, - "url-loader": { - "version": "0.5.9", - "from": "url-loader@>=0.5.8 <0.6.0", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.5.9.tgz", - "dev": true - }, - "util": { - "version": "0.10.3", - "from": "util@>=0.10.3 <0.11.0", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "dev": true, - "dependencies": { - "inherits": { - "version": "2.0.1", - "from": "inherits@2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "dev": true - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "from": "util-deprecate@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "dev": true - }, - "utils-merge": { - "version": "1.0.0", - "from": "utils-merge@1.0.0", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.1", - "from": "validate-npm-package-license@>=3.0.1 <4.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "dev": true - }, - "vendors": { - "version": "1.0.1", - "from": "vendors@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz", - "dev": true - }, - "vm-browserify": { - "version": "0.0.4", - "from": "vm-browserify@0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "dev": true - }, - "watchpack": { - "version": "1.3.1", - "from": "watchpack@>=1.3.1 <2.0.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.3.1.tgz", - "dev": true - }, - "webpack": { - "version": "2.6.1", - "from": "webpack@>=2.3.3 <3.0.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-2.6.1.tgz", - "dev": true, - "dependencies": { - "ajv": { - "version": "4.11.8", - "from": "ajv@>=4.7.0 <5.0.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "dev": true - }, - "loader-utils": { - "version": "0.2.17", - "from": "loader-utils@>=0.2.16 <0.3.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "dev": true - }, - "memory-fs": { - "version": "0.4.1", - "from": "memory-fs@>=0.4.1 <0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "dev": true - }, - "source-list-map": { - "version": "1.1.2", - "from": "source-list-map@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-1.1.2.tgz", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "from": "supports-color@>=3.1.0 <4.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "dev": true - }, - "uglify-js": { - "version": "2.8.29", - "from": "uglify-js@>=2.8.27 <3.0.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "dev": true, - "dependencies": { - "yargs": { - "version": "3.10.0", - "from": "yargs@>=3.10.0 <3.11.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "dev": true - } - } - }, - "webpack-sources": { - "version": "0.2.3", - "from": "webpack-sources@>=0.2.3 <0.3.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.2.3.tgz", - "dev": true - } - } - }, - "webpack-dev-middleware": { - "version": "1.11.0", - "from": "webpack-dev-middleware@>=1.8.4 <2.0.0", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.11.0.tgz", - "dev": true, - "dependencies": { - "memory-fs": { - "version": "0.4.1", - "from": "memory-fs@>=0.4.1 <0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "dev": true - } - } - }, - "webpack-hot-middleware": { - "version": "2.18.0", - "from": "webpack-hot-middleware@>=2.18.0 <3.0.0", - "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.18.0.tgz", - "dev": true - }, - "webpack-node-externals": { - "version": "1.6.0", - "from": "webpack-node-externals@>=1.4.3 <2.0.0", - "resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-1.6.0.tgz", - "dev": true - }, - "webpack-sources": { - "version": "1.0.1", - "from": "webpack-sources@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.0.1.tgz", - "dev": true, - "dependencies": { - "source-list-map": { - "version": "2.0.0", - "from": "source-list-map@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", - "dev": true - } - } - }, - "whatwg-fetch": { - "version": "2.0.3", - "from": "whatwg-fetch@>=0.10.0", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz" - }, - "whet.extend": { - "version": "0.9.9", - "from": "whet.extend@>=0.9.9 <0.10.0", - "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", - "dev": true - }, - "which-module": { - "version": "1.0.0", - "from": "which-module@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "dev": true - }, - "window-size": { - "version": "0.1.0", - "from": "window-size@0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "dev": true - }, - "wordwrap": { - "version": "0.0.2", - "from": "wordwrap@0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "dev": true - }, - "wrap-ansi": { - "version": "2.1.0", - "from": "wrap-ansi@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "dev": true - }, - "xml-char-classes": { - "version": "1.0.0", - "from": "xml-char-classes@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/xml-char-classes/-/xml-char-classes-1.0.0.tgz", - "dev": true - }, - "xtend": { - "version": "4.0.1", - "from": "xtend@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "dev": true - }, - "y18n": { - "version": "3.2.1", - "from": "y18n@>=3.2.1 <4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "dev": true - }, - "yargs": { - "version": "6.6.0", - "from": "yargs@>=6.0.0 <7.0.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", - "dev": true, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "from": "camelcase@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "from": "cliui@>=3.2.0 <4.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "dev": true - } - } - }, - "yargs-parser": { - "version": "4.2.1", - "from": "yargs-parser@>=4.2.0 <5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", - "dev": true, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "from": "camelcase@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "dev": true - } - } - } - } -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/package.json b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/package.json deleted file mode 100644 index cc8cc6b1..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "AureliaSpa", - "private": true, - "version": "0.0.0", - "devDependencies": { - "@types/webpack-env": "^1.13.0", - "aspnet-webpack": "^2.0.1", - "aurelia-bootstrapper": "^2.0.1", - "aurelia-fetch-client": "^1.0.1", - "aurelia-framework": "^1.1.0", - "aurelia-loader-webpack": "^2.0.0", - "aurelia-pal": "^1.3.0", - "aurelia-router": "^1.2.1", - "aurelia-webpack-plugin": "^2.0.0-rc.2", - "bootstrap": "^3.3.7", - "css-loader": "^0.28.0", - "extract-text-webpack-plugin": "^2.1.0", - "file-loader": "^0.11.1", - "html-loader": "^0.4.5", - "isomorphic-fetch": "^2.2.1", - "jquery": "^3.2.1", - "json-loader": "^0.5.4", - "style-loader": "^0.16.1", - "ts-loader": "^2.0.3", - "typescript": "^2.2.2", - "url-loader": "^0.5.8", - "webpack": "^2.3.3", - "webpack-hot-middleware": "^2.18.0" - } -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/tsconfig.json b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/tsconfig.json deleted file mode 100644 index bcbfa21c..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/tsconfig.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "compilerOptions": { - "module": "es2015", - "moduleResolution": "node", - "target": "es5", - "sourceMap": true, - "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "skipDefaultLibCheck": true, - "strict": true, - "lib": [ "es2015", "dom" ], - "types": [ "webpack-env" ] - }, - "exclude": [ "bin", "node_modules" ], - "atom": { "rewriteTsconfig": false } -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/webpack.config.js b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/webpack.config.js deleted file mode 100644 index 5ff94d09..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/webpack.config.js +++ /dev/null @@ -1,44 +0,0 @@ -const path = require('path'); -const webpack = require('webpack'); -const { AureliaPlugin } = require('aurelia-webpack-plugin'); -const bundleOutputDir = './wwwroot/dist'; - -module.exports = (env) => { - const isDevBuild = !(env && env.prod); - return [{ - stats: { modules: false }, - entry: { 'app': 'aurelia-bootstrapper' }, - resolve: { - extensions: ['.ts', '.js'], - modules: ['ClientApp', 'node_modules'], - }, - output: { - path: path.resolve(bundleOutputDir), - publicPath: 'dist/', - filename: '[name].js' - }, - module: { - rules: [ - { test: /\.ts$/i, include: /ClientApp/, use: 'ts-loader?silent=true' }, - { test: /\.html$/i, use: 'html-loader' }, - { test: /\.css$/i, use: isDevBuild ? 'css-loader' : 'css-loader?minimize' }, - { test: /\.(png|jpg|jpeg|gif|svg)$/, use: 'url-loader?limit=25000' } - ] - }, - plugins: [ - new webpack.DefinePlugin({ IS_DEV_BUILD: JSON.stringify(isDevBuild) }), - new webpack.DllReferencePlugin({ - context: __dirname, - manifest: require('./wwwroot/dist/vendor-manifest.json') - }), - new AureliaPlugin({ aureliaApp: 'boot' }) - ].concat(isDevBuild ? [ - new webpack.SourceMapDevToolPlugin({ - filename: '[file].map', // Remove this line if you prefer inline source maps - moduleFilenameTemplate: path.relative(bundleOutputDir, '[resourcePath]') // Point sourcemap entries to the original file locations on disk - }) - ] : [ - new webpack.optimize.UglifyJsPlugin() - ]) - }]; -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/webpack.config.vendor.js b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/webpack.config.vendor.js deleted file mode 100644 index 1dc579ce..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/webpack.config.vendor.js +++ /dev/null @@ -1,56 +0,0 @@ -var path = require('path'); -var webpack = require('webpack'); -var ExtractTextPlugin = require('extract-text-webpack-plugin'); -var extractCSS = new ExtractTextPlugin('vendor.css'); - -module.exports = ({ prod } = {}) => { - const isDevBuild = !prod; - - return [{ - stats: { modules: false }, - resolve: { - extensions: ['.js'] - }, - module: { - loaders: [ - { test: /\.(png|woff|woff2|eot|ttf|svg)(\?|$)/, loader: 'url-loader?limit=100000' }, - { test: /\.css(\?|$)/, loader: extractCSS.extract([isDevBuild ? 'css-loader' : 'css-loader?minimize']) } - ] - }, - entry: { - vendor: [ - 'aurelia-event-aggregator', - 'aurelia-fetch-client', - 'aurelia-framework', - 'aurelia-history-browser', - 'aurelia-logging-console', - 'aurelia-pal-browser', - 'aurelia-polyfills', - 'aurelia-route-recognizer', - 'aurelia-router', - 'aurelia-templating-binding', - 'aurelia-templating-resources', - 'aurelia-templating-router', - 'bootstrap', - 'bootstrap/dist/css/bootstrap.css', - 'jquery' - ], - }, - output: { - path: path.join(__dirname, 'wwwroot', 'dist'), - publicPath: 'dist/', - filename: '[name].js', - library: '[name]_[hash]', - }, - plugins: [ - extractCSS, - new webpack.ProvidePlugin({ $: 'jquery', jQuery: 'jquery' }), // Maps these identifiers to the jQuery package (because Bootstrap expects it to be a global variable) - new webpack.DllPlugin({ - path: path.join(__dirname, 'wwwroot', 'dist', '[name]-manifest.json'), - name: '[name]_[hash]' - }) - ].concat(isDevBuild ? [] : [ - new webpack.optimize.UglifyJsPlugin({ compress: { warnings: false } }) - ]) - }] -}; diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/wwwroot/favicon.ico b/templates/Microsoft.AspNetCore.SpaTemplates/aurelia/wwwroot/favicon.ico deleted file mode 100644 index 6884543f9617d81e56ccd478989bec1ece300e3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 85432 zcmeHQ>ysQ+6`zz)7G;UygZMR+ScbBS;%h9DEJ2W$f&xLskVH{}fEr#w5CT$wD5937 zY_i#8AG7n=nSErliFt2T2v8*1-Fd&dXErZB`!9HY=kz?XJG+`Lq1pL)1`mSI}x#-yGANofM@weso+&l7ncG~Y5YrFjWxwS318!nAQ z4gX6o{GoB+B`QX&^8v`nZ@o~YIm%!je1-NVdN!i8;pgVa>4jb9q1UJw$=;u!wEbSk zwsd$Wl{4M zX|oV{nq+zy4E9vGtF|#tDDA-SNM=VoQo`C|Tv^(& zztg_rAY*%=Hk(J{SCsaPv42vrN<+{D<}r_yu(lX?)^1RIa$s5lZJzF)nYP3!iG7t5 zuBgP8OQc$2yRkc#=F+nDP^~E=TgX(DtMv=Zd=-7$=v%hTsW@!+Q__{6YiaW<3;nKM zz514=!FsXJ0xL;_BA^J&i@=#K$#S+^e$VWc-_Nbzm=`PRd9TVl8P4`lSti{bV;%RAjPHAhWYUkeyvX=bifV9!z&P-o?6{X?D!}~? zdw)prSm*ta&Dr5bSGHtfB1or-bKhP%_yppD?;h^$Q+(atiOEm}({yMH;;bcNoj;&> z?7t*5xIthtOh?BV&CE=EmA`K36^{_U$?iu#@yzgfuQ#|65Q2Wg7<16^~JO+HDJRaZ& z)+tU&9HFQNHwYw$>FA6fmTzGYqnX(NthBWMagqsb9M4LxTW`Jfn*`BpA-SLSWO{*O zVc;3W8Dr5DN!1Ip0!O{N*UknirKd3rln?%bq&fUN$5E^00jR=$|0a^k*V!NR`S^+<;X>$FBugVZAV>dDiBse>+HV?WA}|lGDReF716xTJ zhgc7AJlD6GQc|j4XXVs9xTevhHNsDk6uuh$u(}GIlAiTnDNBoo`EX@D5X9RzrTutA zpb$oDx4IuIS=2LbZHFD@+)ye4YKVoCnto;~K`ZKQ)3H%Z$K^6>Xrn z*2DGGd-GtL7Oqw?Ek^N1rWvu`B0Yt%2o1Fed<;y#RGTs_orVXNeN zLw?Re_iC7iK=mb(>RUk5vd|{$0W$>779&8}WSwA!xvxu6wGc4ID$rHYti~!k>qb~F z&>rS8exWC7wq;ADAW%iMUQAJHECTf~u9w!>v$p2H)x&iu(yBEw^iiC?z<>X;Z&Vjy|PDT(;yJz87smCx$_gd znGqi`BUs8_FaqxYYiMo+ta%?iuO`0tLAuxszwe#t$NO<B0 znGG768-YX@W(J8yNc22H@v@HK`GY)fQI1poQCE`z?#R;GtZN~ zkI}{EqT5Ku_ri;fWpVOe+WZ)^P&IfTf!AJr)j=Us;?sfecB%*di)1dhWm$-=$#n|t zI;~t-9*@G#n)in6lOofHIi_i@FT|rtVgGhc;d%Y+H$iF>O8jKR{vT`3Wr{$i7q&yX zdn3sV`~EJ7?ZB30vJ1TuDXu{%qP9Z|RFsyl1gA4OsK_sjy+9a5X5nKfX9>WJl0 zU(mgB9CE>}bZn+?6Ukf%y$|NdizKt0BHl{GzZ@lg0v{0?yotb?HEZs_`R1E%S!n69 zY&T?jU?pS&c#+r`f=)=YmPm2!Ayx$?s!s6m17N)mKi8~Ix`i`CmVG;jPn~QK-bu`1 zwj9~}R+{@BGVHgAcB$o955k$CUX>K53=p3Q`4HY{kkvs-2VS9gPJDl`51<_HrNmF+ zAw+{W5pc=?@%$uSUh-kQ%~E7<8sfPq%RaWU%mdn`c7TT;0Aj#b>AT=sKo}tRJI8*N zEC%$#Hq7+Glb!6Ph}r?(W&q~WEtmn~izpvNEnx5(QRfe1LYX-Td(a$!PmR(6_$;At zM&FP2ZYAin7AS-X-3P$2 z9$;T&MhN~i4fatsb?}cAFK~*~2Sz_wq73l1{&UIzQ~W4$eITpFUO4n7*dR4TKYZ1h zQFyPT@R`;Ep4I`5dWB56(;+^rQ{eT)XSOAMq z{8moe_nGBsQOKgwQwTU^K{3kxfb3OQe8OHl`d;PAsvcpi*ry$peH!sH0>p=FE9I;D zlB*=m9Vs#&#BZ(m3of$1V9N*d0M@*aVDaLNcWcQ?Q8iNKK{aL*6=8w+Ha6KVusFir zjt!P#SI{4-y-xYYpF|a3`^=UXVKFp$6D%6 zE%wDO`u(B{SoCwmloJcKkEW`a-BcmjqTi{dU_+*QWt9ul$h-(F2@9ytls-}xjVlfd z^zq4-Lx|i0jUAu$6_^tcB{r1~A z9lx`E>3_D@`_g}IpXwzjKyc0F~= zB5=ww%4YnY6i80l{jL2U(tSHy7E!(MmPJ5$zu@L>%W|ceE?jx9yl+JWl=rQ8*PBUm zJG&OQypMN1L?;%%;AMF)rNp})aTOv zHWlCH6YU%5^wvsi?RQXIcs#KS>ErF|AwOD&JiG#1WsNOL(Vz%8L%=O}#hdn|tlz`y z017WfzfSDNih*SYqd!u#Z)L?mXNA_I6ahlOHFx)6<&a5P)sh)3+?92x#y^4%9{&$C z?zw-jB`JHySvS+B21URz0&cmRV6UUHhMuf<65E5dPjUm8aaBCKX&Mv(Hwd`qF0Z!`A28(pdvsBxaTg`P806N_Mmr6 zm}+sCd(fmMH_?vuSYy2IUS(BQO3|PQI77fKcV!h8S+z-|^p2T_;B8e_`HJ%zfFiAR z0?Vs~IxDmur3erL?zxM#V-maunMl#B7I*#FE3B2C;4*h%X=qRc+#o>j1-lxXkX1C} zoxH9p+XFEkeK1B}qGBbwA0}D0hB2-t{lT)@yPI251 zxUzb1j7NZD9XwXd)KYK0zl=^V(R}>fGIrQcCHFlqVC~OcAjxlHHF`Tymv&1y;$UQW0>5 zfLr#;N`AGiHL-rBwU*+w-pV$`15`w5tx2DRvl8o3ihv;Cn!A0E(;p>ye9h`bVB4W| z2Lb?xv)dj2Rr?gEpJRT^<#-EMab;33rp- z+DoRUzFP!nuC%LOvTO*eLCFg8BBk$P>XFKuR#%TgMe%H z@|xDNim}KP>)+B5JQP`O&865@VwO zFxIj#I4^B#Py`$!;Fi6GeynW zu!F#wHEXug+c%qTxZ#Fx+sQv$9!t~q;7yw>%k(~sJCrqTj#-@U!YD)>>HNDCs+ zSjOg=v000;XnCcXu@{)JS+;hSvCEofr^l{h@f*ulBg!)+nX`p3T$kq9ioJN^eTvIo zNfDXnJozwIb=IH=*g>GdjO|C8D$gtxnd27Mg=6nfdLhg$E>6k%(c;Rp#+A02oziL^ zMWC^al|F)8ANpvse#lG@db@&H=jVFS#=3YEqg@5DWZAYA3pdxt<6>;{+9|E( zQ3M*ySgz*_Y!`@r%`qD<9{)2zE!sEFc5a^ST0 z$ge>Wu!BHjc`J-91o4JJA&6esJlm_6PW*-9W)ynZ>QP|(!Qin4=|7-d8We$f5ok1H zpQAGhSIdk=Tdd4j=u)wDg||i+dRQ4tAZW0Oz+y1gVC`yf|A6!!T*+9pwuHB0IT+kW zYqP+bt;G>&EMrRpY|Zv#e8B974Pb;YVsLrvLy}_aie43IMxm3<2y$vr1neNtSjH9y z;pg6Je{m~JnEA!nKPbI4#4Ru8vmvbJkq2`Cyw#ux*g>GdjE(ZxSCB_yLwI9L`nxWl z_$$SWytmvgL+ea`ZYfCaUvV%5@1K@TsQnd$OtIecwMZhKkU~nbtiaN1MlKsfk z5PU3`qIiR=IKYybdg&NOaK*;GeBy5uzr^pyP~`J&5*ic%#|YHpZZ*xp-wJb0wjWIH zm9^rL8cUch3bBNx=b<$GqJwkkAuWzTm8tb&4!|k17dEXa76se4<-RiXeVHNb728;B z32C)CIGrBSY6#ThX}vTDxLDi`qU9zW75!W0F5AaeyAC}OMXNto-%C&vYE}g5adYl8 z2h1%Eq4qD^EzN;|UG6SCUvuE2SFzj?SU7VRe#COeNXx%`5m-1| zo9~F_d-t^D&BsPJSEPJcUI@6k*UfzF^16$yS=wgiUt_MVHF@Fvt8UEQZP35ayLkF( HVFdmUW_yrt diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/.gitignore b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/.gitignore deleted file mode 100644 index 3e035eee..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/.gitignore +++ /dev/null @@ -1,236 +0,0 @@ -/Properties/launchSettings.json - -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. - -# User-specific files -*.suo -*.user -*.userosscache -*.sln.docstates - -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Build results -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -build/ -bld/ -bin/ -Bin/ -obj/ -Obj/ - -# Visual Studio 2015 cache/options directory -.vs/ -/wwwroot/dist/ - -/yarn.lock - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUNIT -*.VisualState.xml -TestResult.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -*_i.c -*_p.c -*_i.h -*.ilk -*.meta -*.obj -*.pch -*.pdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*.log -*.vspscc -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opendb -*.opensdf -*.sdf -*.cachefile - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# JustCode is a .NET coding add-in -.JustCode - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml -# TODO: Comment the next line if you want to checkin your web deploy settings -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - -# NuGet Packages -*.nupkg -# The packages folder can be ignored because of Package Restore -**/packages/* -# except build/, which is used as an MSBuild target. -!**/packages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/packages/repositories.config - -# Microsoft Azure Build Output -csx/ -*.build.csdef - -# Microsoft Azure Emulator -ecf/ -rcf/ - -# Microsoft Azure ApplicationInsights config file -ApplicationInsights.config - -# Windows Store app package directory -AppPackages/ -BundleArtifacts/ - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!*.[Cc]ache/ - -# Others -ClientBin/ -~$* -*~ -*.dbmdl -*.dbproj.schemaview -*.pfx -*.publishsettings -orleans.codegen.cs - -/node_modules - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm - -# SQL Server files -*.mdf -*.ldf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings - -# Microsoft Fakes -FakesAssemblies/ - -# GhostDoc plugin setting file -*.GhostDoc.xml - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - -# Paket dependency manager -.paket/paket.exe - -# FAKE - F# Make -.fake/ diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/.template.config/dotnetcli.host.json b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/.template.config/dotnetcli.host.json deleted file mode 100644 index c15c6681..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/.template.config/dotnetcli.host.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "$schema": "http://json.schemastore.org/dotnetcli.host", - "symbolInfo": { - "TargetFrameworkOverride": { - "isHidden": "true", - "longName": "target-framework-override", - "shortName": "" - }, - "Framework": { - "longName": "framework" - }, - "skipRestore": { - "longName": "no-restore", - "shortName": "" - } - } -} \ No newline at end of file diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/.template.config/icon.png b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/.template.config/icon.png deleted file mode 100644 index adeddc23cf5f3f58c1b9e37cffd76b073e4f5d23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6109 zcmV<37b571P)<{98FWQhbW?9;ba!ELWdLwtX>N2bZe?^J zG%heMF*ZbLuk`=`7g|X~K~#8N&D(ce9oLly@aNrRvl|yxK!9ih0TLh(AV8=Al28}D z_ab`lMfBb~NK_#ZLY5R;iGx3pow&(KEJxWmS=+Ic*oqxH@j7u5C$TqivS)v1xbyU? zq*(h$?&tIU+<9;2&AaE^J2Q9Sjp9DaL-4QgCHOM@+dnyOBe#{?%x(X|2EGD38gv#8{wvLX zenHbwk)KY7htYIIxRRU_wOS1r5T_kI#TH}zF!U6csUB9 zqdu#0buB=AM!<)KRuVY)FMBE!mcxe*-kb^xB~?-~RDF@ezzi%Pkc()zgqQWfwwhFf zy@DfzOzacKZ6BnG6XgRa2oMcRXNX z*f})xaT#87U|io1DbUDpZ4qITOPbI|RWk?tZ{vi3(}Hw3D9;Jf(68LFBYYw__|u7? zKw^`@LFyhPF)}1(9xkBKk25Ua%>@LZN)D7g9v-UYA`1(-BZLL3>G1KHL%i~dQ92a3 z_g6N1Y`Z!haGaC^1C%BL15q!V2nv#n3rHG`tHPHmg@&r*UVw9G=mMO_@_8gi!pp*< z4*dQF1hoj~RfPsCT|j_$1knYw?~Xva!0q3=_dUex1qQ&QK=BnPg~IOi@nfH!K6aFp zjvrHT{EmQtJFr7F_@YxXBtr`tHig8@Vbsi{@#j#p1r_JH#&){Mfi568P3M9G>AbMW zf&yp}op(XSB082K`W(b<1z+U^e094*v3u= zGO7v*84-AS6iFGup~R!+4C+}ldJZ+4S8-0o0@vs{HqSKzWAg}3mxaLNYR;qc*rISA z9m{IHye=c|Ex?l{#bdh^ijdKR2Wa%rK?x^=jUHMycK9%j%8-;17)3Hhgi&PmYn2uB z;`lhd`RudwiyJrS-5>oYz4`5D>ASPD^tGxg8bVTr&dcOCtxC@ zG>8355EOeNBaOb()JRX4m(d*dGaGP>W{)4`YrfJsSU@K#p;Kk`E-u#)_YUC0K(VUU z+w1g*|9%=d;IG69895*vJSZ7vNC+E((_vxs-7_=v=Z`<8dzIh+>Q{7ipr3{?a>mgc zQ!p*ez!_myI4jJe$JiO*^Ty4q-x7OVF7N;FhjbRBV&>>!nuW8%+>t{xhfbV_b24=9 z0@OM=eIIe}1!GQtVU3IPmEnDRNooH+8iC>c`)LS<{rzbO24zUfQcDZ{@uQDKGw#2< zbNxC^;5Z*guS^J&Fa^^vBb*Ut&|}lU6R3~hd0Xs7y<8g}q{+hvX$H=)LkA?YFvkx1 zOXgt#PC7YWN8ATtJtx4p(#h$mL0=yl^z)SrvAupYDA`K`vVHpqH#PL?;-dKKFIIl} z;~(Sd5hNXEr(j%|R52w(kImxv|LE2&@oDYyql=HzX#_S2Q!ssCzhnkx{rAyXVGic^ z@1^R^n_flShrx^!u)fm4;hO_{c9W9N9vTF$`+a<2O;<>_%Zsn8b->dxo*T1Hp;41LaxpVaMS6`*Seg3&vqr1F3Jx#qh z%=%$~4>vzQ>ChWSFr0{=zx1NmQg`{EKmL*C6BDG-I)srsi~vVq3{Ls%qVYYuXkyP! zniQtk?j2NWYonfkl8rV?-5%SB^>}(L^YWxF=73xCcyP*eq@%cW~14zJ|8fSaW!oe@3r(uNh zNL@C7;09qBMt6DB7@TH1w@b#^4lgR%Xsw=rB5UiVPB&L#UG8qnwz*R$v~Al)&kYTU zuhlM}ATj+B5p;6EU6#3SrFLj>b)`Sx z8m_DG5Ff-nex-+pq=I>RQaQuOVQrWN>MOS~VQNCdTc8!%;QIOVVy*7N!C$T@r?%~$ z)b8aW>3~k?MsU5*2mM~|H0bG0LmqB4ER3*iu9Rs`t;rsUy{Kc|TYW8rK zv}|*uR%nBE1l9@N9px9cwJU1~xH8|YZ_wM5g^F-}QYH-_1 z^~}|U8lf3lp$&m`K&P8Cb-Qk%UbfYV`dyr80HoU4kp>~p+*CaQc_t=HO?I}_%`pY+Q zt*>#}Lbc4Nj z%Tw)bRPE$I)sCAbC!q%Fpuu4iH9-pkYjw1zcIaddcGSJuj(VVPldV!eB-Q?5Gl|gledZKY}6RKHndWYG1s)8qLYD9Ci%V(I3^hQNdIuey`X-OH(%1Sa_P$0I_E*$v1f`5Ky znhLEqP!SYEiM17#LYYckzQK|zp&Egmw6>rcp%xl9m{Y5jIdwuevoxb_3p470?6s@Z z6Og%bFmleEy4;AAJ1^<)U|U&{KI(0EJKl#Yk|m z`Fbh>u1lZ{fmT?UO3InJ2~|Q3G?|%DJ9Mr$rcP61>Vj^_UbR9!0Wm8cTPid(pelw$ z$jXh3s0ey+w{@=}%jGui^HXpreH%A9`pU<8W|dri`tmi(LT_gxux!YMJoH)t6hWbi zBJ^Z2f-40Mnw6Ou!=Odq0_{Ox{Qq|YvrTr2?%)Xv89MLYbasu zS}HVHOO-;IfdO6{P(D0`o1J@=Ti35s8ip)iA@r5Dh%mj${NUzIN=IOs2r3J5&|A1> zQ$7?zfr>(tbySR?N)cokl$sh*iBJZWP-9|9jmC!50Wl!#Z_<#qIMEY2%GdEo`|j&^CmXv@TqW!VTc7dQbN zbUuQX6-fzL4p=pK=`{i`hia%t;8p7kDFcBgLJ|Z%`iOc0f{=j7)vHN@1jxc6MI<8^ zvZ43*G5YC?>i6l~~F0UGz%4VgaJk|#6TRVCE$^V)e{hk5fF<&V?eGM zj|4s^$RmM+mJ)%$1K>CugQGY<1YzdL6C-^k-_2Dm0WAT?#TxB$;~QV6EF>ToH~|@` z6A^3@l8}Nr6m=Mcs}g}r!GqlUoPcS}z+4~*i3)}gAr$1mBOnsV zh~%1Ii@@dJqd0hog9Ic%4n75fG!qbp1SBFjmY_mTLNo&8;T{PQ5RM)Xg<$S^2!yxp za`Gz=388}s`T+Qg`VfMdYt{d^hOUfsDR}J!7*Yh17b!8ID24GNr72&lPo)=qcmsIC16pn2o zWK!@rk02Q_5DRfQKQLaFUPA&Tf^^P+6GA#$P8NV2h(j#*uWXMEAPmp_JJWk(UnQPhFJ!S!OO>no3UbxMIp3Q-7(aqx_TjYsej z`85Je1P(qKQh|d{gACA_fLPoNWg@c~D$*HxHw{ieDx^R%B%$$%5D#;em7=-Y<=G31 z6o`i3v5o?9IB*?;nkPl^R+f4b`0iV8Q55C@(LxNwLY$}*AcQAVksL9lw}E-l68~;>5v8|AQh4!5x)10Z;0kTTB&F1YS-PkPaE*ULp&3gxRQbg*?cINX-N!uUWlRxE{Bi zD)J!@Q&*M?Igl-6K?bB_n=4&iqN#Vvhwr^dIUd_67VBel;P>M&-AxnHEzRh^-+Nbl zTD|b(Drc)RC7PRJ3T;X$DpDa0(jfyfAq%o0SIC0`p%988dbP$ML{bdaEG_@B!HkMD z6q=dge%y@mg*?cGY=-sOxPO1DzmGn=b&EcF=N-Cs@gfy$bEgEXlf|nnC*X65sFN(r z&|ovlLhzYbetKB{zu$g&>n07JNTrhP9#rh%2JTb>rBLSSPUTPu)eP%%ZLBCC`z*x1 z3!q3ShEj;u{F4~Y_)BHDk1thGBD1idVkm+_p#bt2*5^PLWI{Ud-vdrSiaz*UD(VwR z9DhE4g9YV6o$qcD?t_;<;Ku80St%9spVF}J5}^#rA=Y5EdIHjn43{c4Sdpw;W@SZX zP%6WFB~T1SPzVK(2RV=pS&#`CkgkE><3E`4dftvdUxMB$#Mo zrn+4_s1*Ax7b>6ks<1;0*f*5@=0n1fT z2^B&altKv2U{kk`qo9Pm8|x(;;>YBm^fRQmD5 zgO>mO``@W6;270l-?ajNPdy}=8gl{;$q88Fs89qpIy#W52Ckh@%ka8hsDoOl5l%ui zR6(Usp@Y0mR*U^MIl~rw7wQJowa|OyAl-QKN%|O<(|@#Z;IHHUVk|L%YOw!$?2q>= zYlJr|cLIdv$b(4x_FnLJP zhM0YTpB+#<0-G{6+FWRp{?D$B|NqWfwk~T{(FBb`gHR83D)=>Pz&=#9xVccLy9;## z*B#IfEzk^2&;WHRYN1BpWlgHv)*FDe;ozM<#&CowQM~8-XPfs-Zj&^=e zMF&1FYZv<)@b;8`(8Tq?4o~WbUg&{tyw?RC&@Qw=tI&pRBs;NA6W(W?*iPoVW;Opv zx&rnCp8)?Iq^BnM=?Q*{;%K_v#+Q0`dXuUi4c*f32eGXDE#a~*P1sgdw+7zV@b2ZG zvyCt;^XowvfPUzMUaae3SZ3X_J^J-%D0FjvAMv$A6ga^u;Ku`(AD9Auj>ZL|4;dL; z>DjaUul;*=5$n^mdl&Tr*D`+HqoEhu-VN`2%y$=^_Sq%)gGMU1s)E(!V}`wJ*4O_^W64}K|lTxwYmXc zA2ejSR@JAWAKTsy@9XqFADZ0jLlZELWqy4M#$ZGkVpz}hpsM}44GAYbTt9I$GI$2@ zbU`}s6QvfQd|pVk@EiOHi3x0jP$;o_NO3mV-tP7O{d+$j+UJKx2z#~hugm!-ud+dG zr;0zP`g#~9{QYPOCRL2XX*dOAFsfk$hPghVt^a`E-!koO-rs3t@B-RD3MU~Bc7i4F ziI1O?(ph)~Ulk0&0r;T;{%|R-mA!@!DP|2GQY^rESj3t0?s%Jfz&;l-+SKrSnsj|u z1Gi}bT|0sHa*tO*3h component -ko.components.register('app-root', AppRootComponent); - -// Tell Knockout to start up an instance of your application -ko.applyBindings({ history: createBrowserHistory({ basename }), basename }); - -// Basic hot reloading support. Automatically reloads and restarts the Knockout app each time -// you modify source files. This will not preserve any application state other than the URL. -if (module.hot) { - module.hot.accept(); - module.hot.dispose(() => ko.cleanNode(document.body)); -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/app-root/app-root.html b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/app-root/app-root.html deleted file mode 100644 index 88e345bd..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/app-root/app-root.html +++ /dev/null @@ -1,8 +0,0 @@ -
-
-
- -
-
-
-
diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/app-root/app-root.ts b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/app-root/app-root.ts deleted file mode 100644 index 2ca1bfeb..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/app-root/app-root.ts +++ /dev/null @@ -1,44 +0,0 @@ -import * as ko from 'knockout'; -import * as History from 'history'; -import { Route, Router } from '../../router'; -import navMenu from '../nav-menu/nav-menu'; - -// Declare the client-side routing configuration -const routes: Route[] = [ - { url: '', params: { page: 'home-page' } }, - { url: 'counter', params: { page: 'counter-example' } }, - { url: 'fetch-data', params: { page: 'fetch-data' } } -]; - -class AppRootViewModel { - public route: KnockoutObservable; - public router: Router; - - constructor(params: { history: History.History, basename: string }) { - // Activate the client-side router - this.router = new Router(params.history, routes, params.basename); - this.route = this.router.currentRoute; - - // Load and register all the KO components needed to handle the routes - // The optional 'bundle-loader?lazy!' prefix is a Webpack feature that causes the referenced modules - // to be split into separate files that are then loaded on demand. - // For docs, see https://github.com/webpack/bundle-loader - ko.components.register('nav-menu', navMenu); - ko.components.register('home-page', require('bundle-loader?lazy!../home-page/home-page')); - ko.components.register('counter-example', require('bundle-loader?lazy!../counter-example/counter-example')); - ko.components.register('fetch-data', require('bundle-loader?lazy!../fetch-data/fetch-data')); - } - - // To support hot module replacement, this method unregisters the router and KO components. - // In production scenarios where hot module replacement is disabled, this would not be invoked. - public dispose() { - this.router.dispose(); - - // TODO: Need a better API for this - Object.getOwnPropertyNames((ko).components._allRegisteredComponents).forEach(componentName => { - ko.components.unregister(componentName); - }); - } -} - -export default { viewModel: AppRootViewModel, template: require('./app-root.html') }; diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/counter-example/counter-example.html b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/counter-example/counter-example.html deleted file mode 100644 index 3656d7d3..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/counter-example/counter-example.html +++ /dev/null @@ -1,7 +0,0 @@ -

Counter

- -

This is a simple example of a Knockout component.

- -

Current count:

- - diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/counter-example/counter-example.ts b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/counter-example/counter-example.ts deleted file mode 100644 index 39b7f046..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/counter-example/counter-example.ts +++ /dev/null @@ -1,12 +0,0 @@ -import * as ko from 'knockout'; - -class CounterExampleViewModel { - public currentCount = ko.observable(0); - - public incrementCounter() { - let prevCount = this.currentCount(); - this.currentCount(prevCount + 1); - } -} - -export default { viewModel: CounterExampleViewModel, template: require('./counter-example.html') }; diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/fetch-data/fetch-data.html b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/fetch-data/fetch-data.html deleted file mode 100644 index 8e9223bb..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/fetch-data/fetch-data.html +++ /dev/null @@ -1,24 +0,0 @@ -

Weather forecast

- -

This component demonstrates fetching data from the server.

- -

Loading...

- - - - - - - - - - - - - - - - - - -
DateTemp. (C)Temp. (F)Summary
diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/fetch-data/fetch-data.ts b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/fetch-data/fetch-data.ts deleted file mode 100644 index b0538900..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/fetch-data/fetch-data.ts +++ /dev/null @@ -1,23 +0,0 @@ -import * as ko from 'knockout'; -import 'isomorphic-fetch'; - -interface WeatherForecast { - dateFormatted: string; - temperatureC: number; - temperatureF: number; - summary: string; -} - -class FetchDataViewModel { - public forecasts = ko.observableArray(); - - constructor() { - fetch('https://github.com/api/SampleData/WeatherForecasts') - .then(response => response.json() as Promise) - .then(data => { - this.forecasts(data); - }); - } -} - -export default { viewModel: FetchDataViewModel, template: require('./fetch-data.html') }; diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/home-page/home-page.html b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/home-page/home-page.html deleted file mode 100644 index 46242687..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/home-page/home-page.html +++ /dev/null @@ -1,16 +0,0 @@ -

Hello, world!

-

Welcome to your new single-page application, built with:

- -

To help you get started, we've also set up:

-
    -
  • Client-side navigation. For example, click Counter then Back to return here.
  • -
  • Webpack dev middleware. In development mode, there's no need to run the webpack build tool. Your client-side resources are dynamically built on demand. Updates are available as soon as you modify any file.
  • -
  • Hot module replacement. In development mode, you don't even need to reload the page after making most changes. Within seconds of saving changes to files, your Knockout app will be rebuilt and a new instance injected is into the page.
  • -
  • Code splitting and lazy loading. KO components may optionally be bundled individually and loaded on demand. For example, the code and template for 'Counter' is not loaded until you navigate to it..
  • -
  • Efficient production builds. In production mode, development-time features are disabled, and the webpack build tool produces minified static CSS and JavaScript files.
  • -
diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/home-page/home-page.ts b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/home-page/home-page.ts deleted file mode 100644 index 588024e2..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/home-page/home-page.ts +++ /dev/null @@ -1,6 +0,0 @@ -import * as ko from 'knockout'; - -class HomePageViewModel { -} - -export default { viewModel: HomePageViewModel, template: require('./home-page.html') }; diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/nav-menu/nav-menu.html b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/nav-menu/nav-menu.html deleted file mode 100644 index d2af38d8..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/nav-menu/nav-menu.html +++ /dev/null @@ -1,33 +0,0 @@ - diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/nav-menu/nav-menu.ts b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/nav-menu/nav-menu.ts deleted file mode 100644 index 4ea1fdb8..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/components/nav-menu/nav-menu.ts +++ /dev/null @@ -1,21 +0,0 @@ -import * as ko from 'knockout'; -import { Route, Router } from '../../router'; - -interface NavMenuParams { - router: Router; -} - -class NavMenuViewModel { - public router: Router; - public route: KnockoutObservable; - - constructor(params: NavMenuParams) { - // This viewmodel doesn't do anything except pass through the 'route' parameter to the view. - // You could remove this viewmodel entirely, and define 'nav-menu' as a template-only component. - // But in most apps, you'll want some viewmodel logic to determine what navigation options appear. - this.router = params.router; - this.route = this.router.currentRoute; - } -} - -export default { viewModel: NavMenuViewModel, template: require('./nav-menu.html') }; diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/css/site.css b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/css/site.css deleted file mode 100644 index 3058af68..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/css/site.css +++ /dev/null @@ -1,66 +0,0 @@ -.main-nav li .glyphicon { - margin-right: 10px; -} - -/* Highlighting rules for nav menu items */ -.main-nav li a.active, -.main-nav li a.active:hover, -.main-nav li a.active:focus { - background-color: #4189C7; - color: white; -} - -/* Keep the nav menu independent of scrolling and on top of other items */ -.main-nav { - position: fixed; - top: 0; - left: 0; - right: 0; - z-index: 1; -} - -@media (max-width: 767px) { - /* On small screens, the nav menu spans the full width of the screen. Leave a space for it. */ - body { - padding-top: 50px; - } -} - -@media (min-width: 768px) { - /* On small screens, convert the nav menu to a vertical sidebar */ - .main-nav { - height: 100%; - width: calc(25% - 20px); - } - .main-nav .navbar { - border-radius: 0px; - border-width: 0px; - height: 100%; - } - .main-nav .navbar-header { - float: none; - } - .main-nav .navbar-collapse { - border-top: 1px solid #444; - padding: 0px; - } - .main-nav .navbar ul { - float: none; - } - .main-nav .navbar li { - float: none; - font-size: 15px; - margin: 6px; - } - .main-nav .navbar li a { - padding: 10px 16px; - border-radius: 4px; - } - .main-nav .navbar a { - /* If a menu item's text is too long, truncate it */ - width: 100%; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/router.ts b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/router.ts deleted file mode 100644 index eeb1b405..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/router.ts +++ /dev/null @@ -1,62 +0,0 @@ -import * as ko from 'knockout'; -import * as $ from 'jquery'; -import * as History from 'history'; -import * as crossroads from 'crossroads'; - -// This module configures crossroads.js, a routing library. If you prefer, you -// can use any other routing library (or none at all) as Knockout is designed to -// compose cleanly with external libraries. -// -// You *don't* have to follow the pattern established here (each route entry -// specifies a 'page', which is a Knockout component) - there's nothing built into -// Knockout that requires or even knows about this technique. It's just one of -// many possible ways of setting up client-side routes. -export class Router { - public currentRoute = ko.observable({}); - private disposeHistory: () => void; - private clickEventListener: EventListener; - - constructor(private history: History.History, routes: Route[], basename: string) { - // Reset and configure Crossroads so it matches routes and updates this.currentRoute - crossroads.removeAllRoutes(); - crossroads.resetState(); - (crossroads as any).normalizeFn = crossroads.NORM_AS_OBJECT; - routes.forEach(route => { - crossroads.addRoute(route.url, (requestParams: any) => { - this.currentRoute(ko.utils.extend(requestParams, route.params)); - }); - }); - - // Make history.js watch for navigation and notify Crossroads - this.disposeHistory = history.listen(location => crossroads.parse(location.pathname)); - this.clickEventListener = evt => { - let target: any = evt.currentTarget; - if (target && target.tagName === 'A') { - let href = target.getAttribute('href'); - if (href && href.indexOf(basename + '/') === 0) { - const hrefAfterBasename = href.substring(basename.length); - history.push(hrefAfterBasename); - evt.preventDefault(); - } - } - }; - $(document).on('click', 'a', this.clickEventListener); - - // Initialize Crossroads with starting location - crossroads.parse(history.location.pathname); - } - - public link(url: string): string { - return this.history.createHref({ pathname: url }); - } - - public dispose() { - this.disposeHistory(); - $(document).off('click', 'a', this.clickEventListener); - } -} - -export interface Route { - url?: string; - params?: any; -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/webpack-component-loader.ts b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/webpack-component-loader.ts deleted file mode 100644 index 823ab546..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/ClientApp/webpack-component-loader.ts +++ /dev/null @@ -1,25 +0,0 @@ -import * as ko from 'knockout'; - -// This Knockout component loader integrates with Webpack's lazy-loaded bundle feature. -// Having this means you can optionally declare components as follows: -// ko.components.register('my-component', require('bundle-loader?lazy!../some-path-to-a-js-or-ts-module')); -// ... and then it will be loaded on demand instead of being loaded up front. -ko.components.loaders.unshift({ - loadComponent: (name, componentConfig, callback) => { - if (typeof componentConfig === 'function') { - // It's a lazy-loaded Webpack bundle - (componentConfig as any)((loadedModule: any) => { - // Handle TypeScript-style default exports - if (loadedModule.__esModule && loadedModule.default) { - loadedModule = loadedModule.default; - } - - // Pass the loaded module to KO's default loader - ko.components.defaultLoader.loadComponent!(name, loadedModule as KnockoutComponentTypes.ComponentConfig, callback); - }); - } else { - // It's something else - let another component loader handle it - callback((null as any) as KnockoutComponentTypes.Definition); // workaround until https://github.com/DefinitelyTyped/DefinitelyTyped/pull/17999 - } - } -}); diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Controllers/HomeController.cs b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Controllers/HomeController.cs deleted file mode 100644 index e952e8d3..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Controllers/HomeController.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Mvc; - -namespace KnockoutSpa.Controllers -{ - public class HomeController : Controller - { - public IActionResult Index() - { - return View(); - } - - public IActionResult Error() - { - ViewData["RequestId"] = Activity.Current?.Id ?? HttpContext.TraceIdentifier; - return View(); - } - } -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Controllers/SampleDataController.cs b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Controllers/SampleDataController.cs deleted file mode 100644 index 0b30849b..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Controllers/SampleDataController.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Mvc; - -namespace KnockoutSpa.Controllers -{ - [Route("api/[controller]")] - public class SampleDataController : Controller - { - private static string[] Summaries = new[] - { - "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" - }; - - [HttpGet("[action]")] - public IEnumerable WeatherForecasts() - { - var rng = new Random(); - return Enumerable.Range(1, 5).Select(index => new WeatherForecast - { - DateFormatted = DateTime.Now.AddDays(index).ToString("d"), - TemperatureC = rng.Next(-20, 55), - Summary = Summaries[rng.Next(Summaries.Length)] - }); - } - - public class WeatherForecast - { - public string DateFormatted { get; set; } - public int TemperatureC { get; set; } - public string Summary { get; set; } - - public int TemperatureF - { - get - { - return 32 + (int)(TemperatureC / 0.5556); - } - } - } - } -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/KnockoutSpa.csproj b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/KnockoutSpa.csproj deleted file mode 100644 index eff4c62c..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/KnockoutSpa.csproj +++ /dev/null @@ -1,57 +0,0 @@ - - - - netcoreapp2.0 - TargetFrameworkOverride - true - Latest - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %(DistFiles.Identity) - PreserveNewest - - - - - \ No newline at end of file diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Program.cs b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Program.cs deleted file mode 100644 index 514e143e..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Program.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNetCore; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Logging; - -namespace KnockoutSpa -{ - public class Program - { - public static void Main(string[] args) - { - BuildWebHost(args).Run(); - } - - public static IWebHost BuildWebHost(string[] args) => - WebHost.CreateDefaultBuilder(args) - .UseStartup() - .Build(); - } -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Startup.cs b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Startup.cs deleted file mode 100644 index fc7290b4..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Startup.cs +++ /dev/null @@ -1,58 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.SpaServices.Webpack; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; - -namespace KnockoutSpa -{ - public class Startup - { - public Startup(IConfiguration configuration) - { - Configuration = configuration; - } - - public IConfiguration Configuration { get; } - - // This method gets called by the runtime. Use this method to add services to the container. - public void ConfigureServices(IServiceCollection services) - { - services.AddMvc(); - } - - // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IHostingEnvironment env) - { - if (env.IsDevelopment()) - { - app.UseDeveloperExceptionPage(); - app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions - { - HotModuleReplacement = true - }); - } - else - { - app.UseExceptionHandler("/Home/Error"); - } - - app.UseStaticFiles(); - - app.UseMvc(routes => - { - routes.MapRoute( - name: "default", - template: "{controller=Home}/{action=Index}/{id?}"); - - routes.MapSpaFallbackRoute( - name: "spa-fallback", - defaults: new { controller = "Home", action = "Index" }); - }); - } - } -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/Home/Index.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/Home/Index.cshtml deleted file mode 100644 index 02530207..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/Home/Index.cshtml +++ /dev/null @@ -1,9 +0,0 @@ -@{ - ViewData["Title"] = "Home Page"; -} - - - -@section scripts { - -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/Shared/Error.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/Shared/Error.cshtml deleted file mode 100644 index 78e35d5d..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/Shared/Error.cshtml +++ /dev/null @@ -1,21 +0,0 @@ -@{ - ViewData["Title"] = "Error"; -} - -

Error.

-

An error occurred while processing your request.

- -@if (!string.IsNullOrEmpty((string)ViewData["RequestId"])) -{ -

- Request ID: @ViewData["RequestId"] -

-} - -

Development Mode

-

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

-

- Development environment should not be enabled in deployed applications, as it can result in sensitive information from exceptions being displayed to end users. For local debugging, development environment can be enabled by setting the ASPNETCORE_ENVIRONMENT environment variable to Development, and restarting the application. -

diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/Shared/_Layout.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/Shared/_Layout.cshtml deleted file mode 100644 index 448e6d7b..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/Shared/_Layout.cshtml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - @ViewData["Title"] - KnockoutSpa - - - - - - - - - @RenderBody() - - - @RenderSection("scripts", required: false) - - diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/_ViewImports.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/_ViewImports.cshtml deleted file mode 100644 index b4dea68c..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/_ViewImports.cshtml +++ /dev/null @@ -1,3 +0,0 @@ -@using KnockoutSpa -@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers -@addTagHelper *, Microsoft.AspNetCore.SpaServices diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/_ViewStart.cshtml b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/_ViewStart.cshtml deleted file mode 100644 index 820a2f6e..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/Views/_ViewStart.cshtml +++ /dev/null @@ -1,3 +0,0 @@ -@{ - Layout = "_Layout"; -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/appsettings.Development.json b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/appsettings.Development.json deleted file mode 100644 index 457e0033..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/appsettings.Development.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "Logging": { - "IncludeScopes": false, - "Debug": { - "LogLevel": { - "Default": "Debug", - "System": "Information", - "Microsoft": "Information" - } - }, - "Console": { - "LogLevel": { - "Default": "Debug", - "System": "Information", - "Microsoft": "Information" - } - } - } -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/appsettings.json b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/appsettings.json deleted file mode 100644 index c851e129..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/appsettings.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "Logging": { - "IncludeScopes": false, - "Debug": { - "LogLevel": { - "Default": "Warning" - } - }, - "Console": { - "LogLevel": { - "Default": "Warning" - } - } - } -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/npm-shrinkwrap.json b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/npm-shrinkwrap.json deleted file mode 100644 index 8c897ce3..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/npm-shrinkwrap.json +++ /dev/null @@ -1,2491 +0,0 @@ -{ - "name": "KnockoutSpa", - "version": "0.0.0", - "dependencies": { - "@types/core-js": { - "version": "0.9.41", - "from": "@types/core-js@>=0.9.34 <0.10.0", - "resolved": "https://registry.npmjs.org/@types/core-js/-/core-js-0.9.41.tgz", - "dev": true - }, - "@types/crossroads": { - "version": "0.0.29", - "from": "@types/crossroads@0.0.29", - "resolved": "https://registry.npmjs.org/@types/crossroads/-/crossroads-0.0.29.tgz", - "dev": true - }, - "@types/es6-promise": { - "version": "0.0.32", - "from": "@types/es6-promise@0.0.32", - "resolved": "https://registry.npmjs.org/@types/es6-promise/-/es6-promise-0.0.32.tgz", - "dev": true - }, - "@types/history": { - "version": "4.6.0", - "from": "@types/history@4.6.0", - "resolved": "https://registry.npmjs.org/@types/history/-/history-4.6.0.tgz", - "dev": true - }, - "@types/jquery": { - "version": "2.0.47", - "from": "@types/jquery@>=2.0.32 <3.0.0", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-2.0.47.tgz", - "dev": true - }, - "@types/knockout": { - "version": "3.4.41", - "from": "@types/knockout@>=3.4.35 <4.0.0", - "resolved": "https://registry.npmjs.org/@types/knockout/-/knockout-3.4.41.tgz", - "dev": true - }, - "@types/signals": { - "version": "0.0.16", - "from": "@types/signals@0.0.16", - "resolved": "https://registry.npmjs.org/@types/signals/-/signals-0.0.16.tgz", - "dev": true - }, - "@types/webpack-env": { - "version": "1.13.0", - "from": "@types/webpack-env@>=1.13.0 <2.0.0", - "resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.13.0.tgz", - "dev": true - }, - "acorn": { - "version": "5.0.3", - "from": "acorn@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.0.3.tgz", - "dev": true - }, - "acorn-dynamic-import": { - "version": "2.0.2", - "from": "acorn-dynamic-import@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", - "dev": true, - "dependencies": { - "acorn": { - "version": "4.0.13", - "from": "acorn@>=4.0.3 <5.0.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "dev": true - } - } - }, - "ajv": { - "version": "5.2.0", - "from": "ajv@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.0.tgz", - "dev": true - }, - "ajv-keywords": { - "version": "1.5.1", - "from": "ajv-keywords@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz", - "dev": true - }, - "align-text": { - "version": "0.1.4", - "from": "align-text@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "dev": true - }, - "alphanum-sort": { - "version": "1.0.2", - "from": "alphanum-sort@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "dev": true - }, - "ansi-html": { - "version": "0.0.7", - "from": "ansi-html@0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "from": "ansi-regex@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "from": "ansi-styles@>=2.2.1 <3.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "dev": true - }, - "anymatch": { - "version": "1.3.0", - "from": "anymatch@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", - "dev": true - }, - "argparse": { - "version": "1.0.9", - "from": "argparse@>=1.0.7 <2.0.0", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", - "dev": true - }, - "arr-diff": { - "version": "2.0.0", - "from": "arr-diff@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "dev": true - }, - "arr-flatten": { - "version": "1.0.3", - "from": "arr-flatten@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz", - "dev": true - }, - "array-unique": { - "version": "0.2.1", - "from": "array-unique@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "from": "arrify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "dev": true - }, - "asn1.js": { - "version": "4.9.1", - "from": "asn1.js@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", - "dev": true - }, - "aspnet-webpack": { - "version": "2.0.1", - "from": "aspnet-webpack@2.0.1", - "resolved": "https://registry.npmjs.org/aspnet-webpack/-/aspnet-webpack-2.0.1.tgz", - "dev": true - }, - "assert": { - "version": "1.4.1", - "from": "assert@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "dev": true - }, - "async": { - "version": "2.5.0", - "from": "async@>=2.1.2 <3.0.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", - "dev": true - }, - "async-each": { - "version": "1.0.1", - "from": "async-each@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "dev": true - }, - "autoprefixer": { - "version": "6.7.7", - "from": "autoprefixer@>=6.3.1 <7.0.0", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", - "dev": true - }, - "awesome-typescript-loader": { - "version": "3.1.3", - "from": "awesome-typescript-loader@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/awesome-typescript-loader/-/awesome-typescript-loader-3.1.3.tgz", - "dev": true - }, - "babel-code-frame": { - "version": "6.22.0", - "from": "babel-code-frame@>=6.11.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", - "dev": true - }, - "balanced-match": { - "version": "0.4.2", - "from": "balanced-match@>=0.4.2 <0.5.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "dev": true - }, - "base64-js": { - "version": "1.2.1", - "from": "base64-js@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "dev": true - }, - "big.js": { - "version": "3.1.3", - "from": "big.js@>=3.1.3 <4.0.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz", - "dev": true - }, - "binary-extensions": { - "version": "1.8.0", - "from": "binary-extensions@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz", - "dev": true - }, - "bn.js": { - "version": "4.11.7", - "from": "bn.js@>=4.1.1 <5.0.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.7.tgz", - "dev": true - }, - "bootstrap": { - "version": "3.3.7", - "from": "bootstrap@>=3.3.6 <4.0.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.3.7.tgz", - "dev": true - }, - "brace-expansion": { - "version": "1.1.8", - "from": "brace-expansion@>=1.1.7 <2.0.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "dev": true, - "dependencies": { - "balanced-match": { - "version": "1.0.0", - "from": "balanced-match@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "dev": true - } - } - }, - "braces": { - "version": "1.8.5", - "from": "braces@>=1.8.2 <2.0.0", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "dev": true - }, - "brorand": { - "version": "1.1.0", - "from": "brorand@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "dev": true - }, - "browserify-aes": { - "version": "1.0.6", - "from": "browserify-aes@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz", - "dev": true - }, - "browserify-cipher": { - "version": "1.0.0", - "from": "browserify-cipher@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", - "dev": true - }, - "browserify-des": { - "version": "1.0.0", - "from": "browserify-des@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", - "dev": true - }, - "browserify-rsa": { - "version": "4.0.1", - "from": "browserify-rsa@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "dev": true - }, - "browserify-sign": { - "version": "4.0.4", - "from": "browserify-sign@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "dev": true - }, - "browserify-zlib": { - "version": "0.1.4", - "from": "browserify-zlib@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "dev": true - }, - "browserslist": { - "version": "1.7.7", - "from": "browserslist@>=1.7.6 <2.0.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "dev": true - }, - "buffer": { - "version": "4.9.1", - "from": "buffer@>=4.3.0 <5.0.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "from": "buffer-xor@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "from": "builtin-modules@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "from": "builtin-status-codes@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "dev": true - }, - "bundle-loader": { - "version": "0.5.5", - "from": "bundle-loader@>=0.5.4 <0.6.0", - "resolved": "https://registry.npmjs.org/bundle-loader/-/bundle-loader-0.5.5.tgz", - "dev": true - }, - "camelcase": { - "version": "1.2.1", - "from": "camelcase@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "dev": true - }, - "caniuse-api": { - "version": "1.6.1", - "from": "caniuse-api@>=1.5.2 <2.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", - "dev": true - }, - "caniuse-db": { - "version": "1.0.30000694", - "from": "caniuse-db@>=1.0.30000634 <2.0.0", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000694.tgz", - "dev": true - }, - "center-align": { - "version": "0.1.3", - "from": "center-align@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "from": "chalk@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "dev": true - }, - "chokidar": { - "version": "1.7.0", - "from": "chokidar@>=1.4.3 <2.0.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "dev": true - }, - "cipher-base": { - "version": "1.0.3", - "from": "cipher-base@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz", - "dev": true - }, - "clap": { - "version": "1.2.0", - "from": "clap@>=1.0.9 <2.0.0", - "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.0.tgz", - "dev": true - }, - "cliui": { - "version": "2.1.0", - "from": "cliui@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "dev": true - }, - "clone": { - "version": "1.0.2", - "from": "clone@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", - "dev": true - }, - "co": { - "version": "4.6.0", - "from": "co@>=4.6.0 <5.0.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "dev": true - }, - "coa": { - "version": "1.0.3", - "from": "coa@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.3.tgz", - "dev": true - }, - "code-point-at": { - "version": "1.1.0", - "from": "code-point-at@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "dev": true - }, - "color": { - "version": "0.11.4", - "from": "color@>=0.11.0 <0.12.0", - "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", - "dev": true - }, - "color-convert": { - "version": "1.9.0", - "from": "color-convert@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", - "dev": true - }, - "color-name": { - "version": "1.1.2", - "from": "color-name@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.2.tgz", - "dev": true - }, - "color-string": { - "version": "0.3.0", - "from": "color-string@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", - "dev": true - }, - "colormin": { - "version": "1.1.2", - "from": "colormin@>=1.0.5 <2.0.0", - "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", - "dev": true - }, - "colors": { - "version": "1.1.2", - "from": "colors@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "from": "concat-map@0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "dev": true - }, - "connect": { - "version": "3.6.2", - "from": "connect@>=3.4.1 <4.0.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.2.tgz", - "dev": true - }, - "console-browserify": { - "version": "1.1.0", - "from": "console-browserify@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "dev": true - }, - "constants-browserify": { - "version": "1.0.0", - "from": "constants-browserify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "from": "core-util-is@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "dev": true - }, - "create-ecdh": { - "version": "4.0.0", - "from": "create-ecdh@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", - "dev": true - }, - "create-hash": { - "version": "1.1.3", - "from": "create-hash@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", - "dev": true - }, - "create-hmac": { - "version": "1.1.6", - "from": "create-hmac@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", - "dev": true - }, - "crossroads": { - "version": "0.12.2", - "from": "crossroads@>=0.12.2 <0.13.0", - "resolved": "https://registry.npmjs.org/crossroads/-/crossroads-0.12.2.tgz", - "dev": true - }, - "crypto-browserify": { - "version": "3.11.0", - "from": "crypto-browserify@>=3.11.0 <4.0.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz", - "dev": true - }, - "css-color-names": { - "version": "0.0.4", - "from": "css-color-names@0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "dev": true - }, - "css-loader": { - "version": "0.25.0", - "from": "css-loader@>=0.25.0 <0.26.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.25.0.tgz", - "dev": true, - "dependencies": { - "loader-utils": { - "version": "0.2.17", - "from": "loader-utils@>=0.2.2 <0.3.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "dev": true - } - } - }, - "css-selector-tokenizer": { - "version": "0.6.0", - "from": "css-selector-tokenizer@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.6.0.tgz", - "dev": true - }, - "cssesc": { - "version": "0.1.0", - "from": "cssesc@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", - "dev": true - }, - "cssnano": { - "version": "3.10.0", - "from": "cssnano@>=2.6.1 <4.0.0", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", - "dev": true - }, - "csso": { - "version": "2.3.2", - "from": "csso@>=2.3.1 <2.4.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", - "dev": true - }, - "date-now": { - "version": "0.1.4", - "from": "date-now@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "dev": true - }, - "debug": { - "version": "2.6.7", - "from": "debug@2.6.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "dev": true - }, - "decamelize": { - "version": "1.2.0", - "from": "decamelize@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "dev": true - }, - "defined": { - "version": "1.0.0", - "from": "defined@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "dev": true - }, - "des.js": { - "version": "1.0.0", - "from": "des.js@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.2", - "from": "diffie-hellman@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", - "dev": true - }, - "domain-browser": { - "version": "1.1.7", - "from": "domain-browser@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", - "dev": true - }, - "ee-first": { - "version": "1.1.1", - "from": "ee-first@1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.14", - "from": "electron-to-chromium@>=1.2.7 <2.0.0", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.14.tgz", - "dev": true - }, - "elliptic": { - "version": "6.4.0", - "from": "elliptic@>=6.0.0 <7.0.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", - "dev": true - }, - "emojis-list": { - "version": "2.1.0", - "from": "emojis-list@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "dev": true - }, - "encodeurl": { - "version": "1.0.1", - "from": "encodeurl@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "dev": true - }, - "encoding": { - "version": "0.1.12", - "from": "encoding@>=0.1.11 <0.2.0", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "dev": true - }, - "enhanced-resolve": { - "version": "3.1.0", - "from": "enhanced-resolve@>=3.1.0 <4.0.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.1.0.tgz", - "dev": true, - "dependencies": { - "memory-fs": { - "version": "0.4.1", - "from": "memory-fs@>=0.4.0 <0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "dev": true - } - } - }, - "errno": { - "version": "0.1.4", - "from": "errno@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", - "dev": true - }, - "error-ex": { - "version": "1.3.1", - "from": "error-ex@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "dev": true - }, - "es6-promise": { - "version": "3.3.1", - "from": "es6-promise@>=3.1.2 <4.0.0", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "from": "escape-html@>=1.0.3 <1.1.0", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "from": "escape-string-regexp@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "dev": true - }, - "esprima": { - "version": "2.7.3", - "from": "esprima@>=2.6.0 <3.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "from": "esutils@>=2.0.2 <3.0.0", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "dev": true - }, - "event-source-polyfill": { - "version": "0.0.7", - "from": "event-source-polyfill@>=0.0.7 <0.0.8", - "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-0.0.7.tgz", - "dev": true - }, - "events": { - "version": "1.1.1", - "from": "events@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.0", - "from": "evp_bytestokey@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz", - "dev": true - }, - "expand-brackets": { - "version": "0.1.5", - "from": "expand-brackets@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "dev": true - }, - "expand-range": { - "version": "1.8.2", - "from": "expand-range@>=1.8.1 <2.0.0", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "dev": true - }, - "extglob": { - "version": "0.3.2", - "from": "extglob@>=0.3.1 <0.4.0", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "dev": true - }, - "extract-text-webpack-plugin": { - "version": "2.1.2", - "from": "extract-text-webpack-plugin@>=2.0.0-rc <3.0.0", - "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-2.1.2.tgz", - "dev": true - }, - "fast-deep-equal": { - "version": "0.1.0", - "from": "fast-deep-equal@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-0.1.0.tgz", - "dev": true - }, - "fastparse": { - "version": "1.1.1", - "from": "fastparse@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", - "dev": true - }, - "file-loader": { - "version": "0.9.0", - "from": "file-loader@>=0.9.0 <0.10.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.9.0.tgz", - "dev": true, - "dependencies": { - "loader-utils": { - "version": "0.2.17", - "from": "loader-utils@>=0.2.5 <0.3.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "dev": true - } - } - }, - "filename-regex": { - "version": "2.0.1", - "from": "filename-regex@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "dev": true - }, - "fill-range": { - "version": "2.2.3", - "from": "fill-range@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "dev": true - }, - "finalhandler": { - "version": "1.0.3", - "from": "finalhandler@1.0.3", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.3.tgz", - "dev": true - }, - "find-up": { - "version": "1.1.2", - "from": "find-up@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "dev": true - }, - "flatten": { - "version": "1.0.2", - "from": "flatten@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", - "dev": true - }, - "for-in": { - "version": "1.0.2", - "from": "for-in@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "dev": true - }, - "for-own": { - "version": "0.1.5", - "from": "for-own@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "dev": true - }, - "function-bind": { - "version": "1.1.0", - "from": "function-bind@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", - "dev": true - }, - "get-caller-file": { - "version": "1.0.2", - "from": "get-caller-file@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "dev": true - }, - "glob-base": { - "version": "0.3.0", - "from": "glob-base@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "dev": true - }, - "glob-parent": { - "version": "2.0.0", - "from": "glob-parent@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "dev": true - }, - "graceful-fs": { - "version": "4.1.11", - "from": "graceful-fs@>=4.1.2 <5.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "dev": true - }, - "has": { - "version": "1.0.1", - "from": "has@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "dev": true - }, - "has-ansi": { - "version": "2.0.0", - "from": "has-ansi@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "dev": true - }, - "has-flag": { - "version": "1.0.0", - "from": "has-flag@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "dev": true - }, - "hash-base": { - "version": "2.0.2", - "from": "hash-base@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", - "dev": true - }, - "hash.js": { - "version": "1.1.1", - "from": "hash.js@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.1.tgz", - "dev": true - }, - "history": { - "version": "4.6.3", - "from": "history@>=4.3.0 <5.0.0", - "resolved": "https://registry.npmjs.org/history/-/history-4.6.3.tgz", - "dev": true - }, - "hmac-drbg": { - "version": "1.0.1", - "from": "hmac-drbg@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "dev": true - }, - "hosted-git-info": { - "version": "2.4.2", - "from": "hosted-git-info@>=2.1.4 <3.0.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.2.tgz", - "dev": true - }, - "html-comment-regex": { - "version": "1.1.1", - "from": "html-comment-regex@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", - "dev": true - }, - "html-entities": { - "version": "1.2.1", - "from": "html-entities@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", - "dev": true - }, - "https-browserify": { - "version": "0.0.1", - "from": "https-browserify@0.0.1", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", - "dev": true - }, - "iconv-lite": { - "version": "0.4.18", - "from": "iconv-lite@>=0.4.13 <0.5.0", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz", - "dev": true - }, - "icss-replace-symbols": { - "version": "1.1.0", - "from": "icss-replace-symbols@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "dev": true - }, - "ieee754": { - "version": "1.1.8", - "from": "ieee754@>=1.1.4 <2.0.0", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", - "dev": true - }, - "indexes-of": { - "version": "1.0.1", - "from": "indexes-of@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "dev": true - }, - "indexof": { - "version": "0.0.1", - "from": "indexof@0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "dev": true - }, - "inherits": { - "version": "2.0.3", - "from": "inherits@>=2.0.3 <2.1.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "dev": true - }, - "interpret": { - "version": "1.0.3", - "from": "interpret@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz", - "dev": true - }, - "invariant": { - "version": "2.2.2", - "from": "invariant@>=2.2.1 <3.0.0", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "dev": true - }, - "invert-kv": { - "version": "1.0.0", - "from": "invert-kv@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "dev": true - }, - "is-absolute-url": { - "version": "2.1.0", - "from": "is-absolute-url@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "dev": true - }, - "is-arrayish": { - "version": "0.2.1", - "from": "is-arrayish@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "dev": true - }, - "is-binary-path": { - "version": "1.0.1", - "from": "is-binary-path@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "dev": true - }, - "is-buffer": { - "version": "1.1.5", - "from": "is-buffer@>=1.1.5 <2.0.0", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "from": "is-builtin-module@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "dev": true - }, - "is-dotfile": { - "version": "1.0.3", - "from": "is-dotfile@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "from": "is-equal-shallow@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "dev": true - }, - "is-extendable": { - "version": "0.1.1", - "from": "is-extendable@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "dev": true - }, - "is-extglob": { - "version": "1.0.0", - "from": "is-extglob@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "from": "is-fullwidth-code-point@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "from": "is-glob@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "dev": true - }, - "is-number": { - "version": "2.1.0", - "from": "is-number@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "dev": true - }, - "is-plain-obj": { - "version": "1.1.0", - "from": "is-plain-obj@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "dev": true - }, - "is-posix-bracket": { - "version": "0.1.1", - "from": "is-posix-bracket@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "dev": true - }, - "is-primitive": { - "version": "2.0.0", - "from": "is-primitive@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "from": "is-stream@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "dev": true - }, - "is-svg": { - "version": "2.1.0", - "from": "is-svg@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", - "dev": true - }, - "is-utf8": { - "version": "0.2.1", - "from": "is-utf8@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "from": "isarray@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "dev": true - }, - "isobject": { - "version": "2.1.0", - "from": "isobject@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "dev": true - }, - "isomorphic-fetch": { - "version": "2.2.1", - "from": "isomorphic-fetch@>=2.2.1 <3.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "dev": true - }, - "jquery": { - "version": "2.2.4", - "from": "jquery@>=2.2.1 <3.0.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-2.2.4.tgz", - "dev": true - }, - "js-base64": { - "version": "2.1.9", - "from": "js-base64@>=2.1.9 <3.0.0", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz", - "dev": true - }, - "js-tokens": { - "version": "3.0.1", - "from": "js-tokens@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", - "dev": true - }, - "js-yaml": { - "version": "3.7.0", - "from": "js-yaml@>=3.7.0 <3.8.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", - "dev": true - }, - "jsesc": { - "version": "0.5.0", - "from": "jsesc@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "dev": true - }, - "json-loader": { - "version": "0.5.4", - "from": "json-loader@>=0.5.4 <0.6.0", - "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.4.tgz", - "dev": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "from": "json-schema-traverse@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "dev": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "from": "json-stable-stringify@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "dev": true - }, - "json5": { - "version": "0.5.1", - "from": "json5@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "dev": true - }, - "jsonify": { - "version": "0.0.0", - "from": "jsonify@>=0.0.0 <0.1.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "from": "kind-of@>=3.0.2 <4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "dev": true - }, - "knockout": { - "version": "3.4.2", - "from": "knockout@>=3.4.0 <4.0.0", - "resolved": "https://registry.npmjs.org/knockout/-/knockout-3.4.2.tgz", - "dev": true - }, - "lazy-cache": { - "version": "1.0.4", - "from": "lazy-cache@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "dev": true - }, - "lcid": { - "version": "1.0.0", - "from": "lcid@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "dev": true - }, - "load-json-file": { - "version": "1.1.0", - "from": "load-json-file@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "dev": true - }, - "loader-runner": { - "version": "2.3.0", - "from": "loader-runner@>=2.3.0 <3.0.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", - "dev": true - }, - "loader-utils": { - "version": "1.1.0", - "from": "loader-utils@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "dev": true - }, - "lodash": { - "version": "4.17.4", - "from": "lodash@>=4.17.4 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "dev": true - }, - "lodash._createcompounder": { - "version": "3.0.0", - "from": "lodash._createcompounder@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._createcompounder/-/lodash._createcompounder-3.0.0.tgz", - "dev": true - }, - "lodash._root": { - "version": "3.0.1", - "from": "lodash._root@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "dev": true - }, - "lodash.camelcase": { - "version": "3.0.1", - "from": "lodash.camelcase@>=3.0.1 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-3.0.1.tgz", - "dev": true - }, - "lodash.deburr": { - "version": "3.2.0", - "from": "lodash.deburr@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-3.2.0.tgz", - "dev": true - }, - "lodash.memoize": { - "version": "4.1.2", - "from": "lodash.memoize@>=4.1.2 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "dev": true - }, - "lodash.uniq": { - "version": "4.5.0", - "from": "lodash.uniq@>=4.5.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "dev": true - }, - "lodash.words": { - "version": "3.2.0", - "from": "lodash.words@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.words/-/lodash.words-3.2.0.tgz", - "dev": true - }, - "longest": { - "version": "1.0.1", - "from": "longest@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "dev": true - }, - "loose-envify": { - "version": "1.3.1", - "from": "loose-envify@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "dev": true - }, - "macaddress": { - "version": "0.2.8", - "from": "macaddress@>=0.2.8 <0.3.0", - "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz", - "dev": true - }, - "math-expression-evaluator": { - "version": "1.2.17", - "from": "math-expression-evaluator@>=1.2.14 <2.0.0", - "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", - "dev": true - }, - "memory-fs": { - "version": "0.3.0", - "from": "memory-fs@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz", - "dev": true - }, - "micromatch": { - "version": "2.3.11", - "from": "micromatch@>=2.1.5 <3.0.0", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "dev": true - }, - "miller-rabin": { - "version": "4.0.0", - "from": "miller-rabin@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz", - "dev": true - }, - "mime": { - "version": "1.3.6", - "from": "mime@>=1.3.4 <2.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.6.tgz", - "dev": true - }, - "minimalistic-assert": { - "version": "1.0.0", - "from": "minimalistic-assert@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "from": "minimalistic-crypto-utils@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "from": "minimatch@>=3.0.2 <4.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "dev": true - }, - "minimist": { - "version": "0.0.8", - "from": "minimist@0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "from": "mkdirp@>=0.5.1 <0.6.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "dev": true - }, - "ms": { - "version": "2.0.0", - "from": "ms@2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "dev": true - }, - "node-fetch": { - "version": "1.7.1", - "from": "node-fetch@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.1.tgz", - "dev": true - }, - "node-libs-browser": { - "version": "2.0.0", - "from": "node-libs-browser@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.0.0.tgz", - "dev": true, - "dependencies": { - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@>=0.10.25 <0.11.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "dev": true - } - } - }, - "normalize-package-data": { - "version": "2.3.8", - "from": "normalize-package-data@>=2.3.2 <3.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.8.tgz", - "dev": true - }, - "normalize-path": { - "version": "2.1.1", - "from": "normalize-path@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "dev": true - }, - "normalize-range": { - "version": "0.1.2", - "from": "normalize-range@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "dev": true - }, - "normalize-url": { - "version": "1.9.1", - "from": "normalize-url@>=1.4.0 <2.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "dev": true - }, - "num2fraction": { - "version": "1.2.2", - "from": "num2fraction@>=1.2.2 <2.0.0", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "dev": true - }, - "number-is-nan": { - "version": "1.0.1", - "from": "number-is-nan@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "from": "object-assign@>=4.1.1 <5.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "dev": true - }, - "object.omit": { - "version": "2.0.1", - "from": "object.omit@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "from": "on-finished@>=2.3.0 <2.4.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "dev": true - }, - "os-browserify": { - "version": "0.2.1", - "from": "os-browserify@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", - "dev": true - }, - "os-locale": { - "version": "1.4.0", - "from": "os-locale@>=1.4.0 <2.0.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "dev": true - }, - "pako": { - "version": "0.2.9", - "from": "pako@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "dev": true - }, - "parse-asn1": { - "version": "5.1.0", - "from": "parse-asn1@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", - "dev": true - }, - "parse-glob": { - "version": "3.0.4", - "from": "parse-glob@>=3.0.4 <4.0.0", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "dev": true - }, - "parse-json": { - "version": "2.2.0", - "from": "parse-json@>=2.2.0 <3.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "dev": true - }, - "parseurl": { - "version": "1.3.1", - "from": "parseurl@>=1.3.1 <1.4.0", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", - "dev": true - }, - "path-browserify": { - "version": "0.0.0", - "from": "path-browserify@0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "dev": true - }, - "path-exists": { - "version": "2.1.0", - "from": "path-exists@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "from": "path-is-absolute@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "dev": true - }, - "path-type": { - "version": "1.1.0", - "from": "path-type@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "dev": true - }, - "pbkdf2": { - "version": "3.0.12", - "from": "pbkdf2@>=3.0.3 <4.0.0", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.12.tgz", - "dev": true - }, - "pify": { - "version": "2.3.0", - "from": "pify@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "from": "pinkie@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "from": "pinkie-promise@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "dev": true - }, - "postcss": { - "version": "5.2.17", - "from": "postcss@>=5.0.6 <6.0.0", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", - "dev": true, - "dependencies": { - "supports-color": { - "version": "3.2.3", - "from": "supports-color@>=3.2.3 <4.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "dev": true - } - } - }, - "postcss-calc": { - "version": "5.3.1", - "from": "postcss-calc@>=5.2.0 <6.0.0", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", - "dev": true - }, - "postcss-colormin": { - "version": "2.2.2", - "from": "postcss-colormin@>=2.1.8 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", - "dev": true - }, - "postcss-convert-values": { - "version": "2.6.1", - "from": "postcss-convert-values@>=2.3.4 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", - "dev": true - }, - "postcss-discard-comments": { - "version": "2.0.4", - "from": "postcss-discard-comments@>=2.0.4 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", - "dev": true - }, - "postcss-discard-duplicates": { - "version": "2.1.0", - "from": "postcss-discard-duplicates@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", - "dev": true - }, - "postcss-discard-empty": { - "version": "2.1.0", - "from": "postcss-discard-empty@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", - "dev": true - }, - "postcss-discard-overridden": { - "version": "0.1.1", - "from": "postcss-discard-overridden@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", - "dev": true - }, - "postcss-discard-unused": { - "version": "2.2.3", - "from": "postcss-discard-unused@>=2.2.1 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", - "dev": true - }, - "postcss-filter-plugins": { - "version": "2.0.2", - "from": "postcss-filter-plugins@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz", - "dev": true - }, - "postcss-merge-idents": { - "version": "2.1.7", - "from": "postcss-merge-idents@>=2.1.5 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", - "dev": true - }, - "postcss-merge-longhand": { - "version": "2.0.2", - "from": "postcss-merge-longhand@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", - "dev": true - }, - "postcss-merge-rules": { - "version": "2.1.2", - "from": "postcss-merge-rules@>=2.0.3 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", - "dev": true - }, - "postcss-message-helpers": { - "version": "2.0.0", - "from": "postcss-message-helpers@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", - "dev": true - }, - "postcss-minify-font-values": { - "version": "1.0.5", - "from": "postcss-minify-font-values@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", - "dev": true - }, - "postcss-minify-gradients": { - "version": "1.0.5", - "from": "postcss-minify-gradients@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", - "dev": true - }, - "postcss-minify-params": { - "version": "1.2.2", - "from": "postcss-minify-params@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", - "dev": true - }, - "postcss-minify-selectors": { - "version": "2.1.1", - "from": "postcss-minify-selectors@>=2.0.4 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", - "dev": true - }, - "postcss-modules-extract-imports": { - "version": "1.1.0", - "from": "postcss-modules-extract-imports@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", - "dev": true, - "dependencies": { - "has-flag": { - "version": "2.0.0", - "from": "has-flag@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "dev": true - }, - "postcss": { - "version": "6.0.3", - "from": "postcss@>=6.0.1 <7.0.0", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.3.tgz", - "dev": true - }, - "supports-color": { - "version": "4.0.0", - "from": "supports-color@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.0.0.tgz", - "dev": true - } - } - }, - "postcss-modules-local-by-default": { - "version": "1.2.0", - "from": "postcss-modules-local-by-default@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", - "dev": true, - "dependencies": { - "css-selector-tokenizer": { - "version": "0.7.0", - "from": "css-selector-tokenizer@>=0.7.0 <0.8.0", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", - "dev": true - }, - "has-flag": { - "version": "2.0.0", - "from": "has-flag@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "dev": true - }, - "postcss": { - "version": "6.0.3", - "from": "postcss@>=6.0.1 <7.0.0", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.3.tgz", - "dev": true - }, - "supports-color": { - "version": "4.0.0", - "from": "supports-color@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.0.0.tgz", - "dev": true - } - } - }, - "postcss-modules-scope": { - "version": "1.1.0", - "from": "postcss-modules-scope@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", - "dev": true, - "dependencies": { - "css-selector-tokenizer": { - "version": "0.7.0", - "from": "css-selector-tokenizer@>=0.7.0 <0.8.0", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", - "dev": true - }, - "has-flag": { - "version": "2.0.0", - "from": "has-flag@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "dev": true - }, - "postcss": { - "version": "6.0.3", - "from": "postcss@>=6.0.1 <7.0.0", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.3.tgz", - "dev": true - }, - "supports-color": { - "version": "4.0.0", - "from": "supports-color@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.0.0.tgz", - "dev": true - } - } - }, - "postcss-modules-values": { - "version": "1.3.0", - "from": "postcss-modules-values@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", - "dev": true, - "dependencies": { - "has-flag": { - "version": "2.0.0", - "from": "has-flag@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "dev": true - }, - "postcss": { - "version": "6.0.3", - "from": "postcss@>=6.0.1 <7.0.0", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.3.tgz", - "dev": true - }, - "supports-color": { - "version": "4.0.0", - "from": "supports-color@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.0.0.tgz", - "dev": true - } - } - }, - "postcss-normalize-charset": { - "version": "1.1.1", - "from": "postcss-normalize-charset@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", - "dev": true - }, - "postcss-normalize-url": { - "version": "3.0.8", - "from": "postcss-normalize-url@>=3.0.7 <4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", - "dev": true - }, - "postcss-ordered-values": { - "version": "2.2.3", - "from": "postcss-ordered-values@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", - "dev": true - }, - "postcss-reduce-idents": { - "version": "2.4.0", - "from": "postcss-reduce-idents@>=2.2.2 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", - "dev": true - }, - "postcss-reduce-initial": { - "version": "1.0.1", - "from": "postcss-reduce-initial@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", - "dev": true - }, - "postcss-reduce-transforms": { - "version": "1.0.4", - "from": "postcss-reduce-transforms@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", - "dev": true - }, - "postcss-selector-parser": { - "version": "2.2.3", - "from": "postcss-selector-parser@>=2.2.2 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", - "dev": true - }, - "postcss-svgo": { - "version": "2.1.6", - "from": "postcss-svgo@>=2.1.1 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", - "dev": true - }, - "postcss-unique-selectors": { - "version": "2.0.2", - "from": "postcss-unique-selectors@>=2.0.2 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", - "dev": true - }, - "postcss-value-parser": { - "version": "3.3.0", - "from": "postcss-value-parser@>=3.2.3 <4.0.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", - "dev": true - }, - "postcss-zindex": { - "version": "2.2.0", - "from": "postcss-zindex@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "from": "prepend-http@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "dev": true - }, - "preserve": { - "version": "0.2.0", - "from": "preserve@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "dev": true - }, - "process": { - "version": "0.11.10", - "from": "process@>=0.11.0 <0.12.0", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "dev": true - }, - "process-nextick-args": { - "version": "1.0.7", - "from": "process-nextick-args@>=1.0.6 <1.1.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "dev": true - }, - "prr": { - "version": "0.0.0", - "from": "prr@>=0.0.0 <0.1.0", - "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", - "dev": true - }, - "public-encrypt": { - "version": "4.0.0", - "from": "public-encrypt@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", - "dev": true - }, - "punycode": { - "version": "1.4.1", - "from": "punycode@>=1.2.4 <2.0.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "dev": true - }, - "q": { - "version": "1.5.0", - "from": "q@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz", - "dev": true - }, - "query-string": { - "version": "4.3.4", - "from": "query-string@>=4.1.0 <5.0.0", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "from": "querystring@0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "from": "querystring-es3@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "dev": true - }, - "randomatic": { - "version": "1.1.7", - "from": "randomatic@>=1.1.3 <2.0.0", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "dev": true, - "dependencies": { - "is-number": { - "version": "3.0.0", - "from": "is-number@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "dev": true, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "from": "kind-of@^3.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "dev": true - } - } - }, - "kind-of": { - "version": "4.0.0", - "from": "kind-of@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "dev": true - } - } - }, - "randombytes": { - "version": "2.0.5", - "from": "randombytes@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", - "dev": true - }, - "range-parser": { - "version": "1.2.0", - "from": "range-parser@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "dev": true - }, - "raw-loader": { - "version": "0.5.1", - "from": "raw-loader@>=0.5.1 <0.6.0", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", - "dev": true - }, - "read-pkg": { - "version": "1.1.0", - "from": "read-pkg@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "dev": true - }, - "read-pkg-up": { - "version": "1.0.1", - "from": "read-pkg-up@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "dev": true - }, - "readable-stream": { - "version": "2.3.2", - "from": "readable-stream@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.2.tgz", - "dev": true - }, - "readdirp": { - "version": "2.1.0", - "from": "readdirp@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "dev": true - }, - "reduce-css-calc": { - "version": "1.3.0", - "from": "reduce-css-calc@>=1.2.6 <2.0.0", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", - "dev": true - }, - "reduce-function-call": { - "version": "1.0.2", - "from": "reduce-function-call@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", - "dev": true - }, - "regenerate": { - "version": "1.3.2", - "from": "regenerate@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz", - "dev": true - }, - "regex-cache": { - "version": "0.4.3", - "from": "regex-cache@>=0.4.2 <0.5.0", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", - "dev": true - }, - "regexpu-core": { - "version": "1.0.0", - "from": "regexpu-core@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", - "dev": true - }, - "regjsgen": { - "version": "0.2.0", - "from": "regjsgen@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "dev": true - }, - "regjsparser": { - "version": "0.1.5", - "from": "regjsparser@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "dev": true - }, - "remove-trailing-separator": { - "version": "1.0.2", - "from": "remove-trailing-separator@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz", - "dev": true - }, - "repeat-element": { - "version": "1.1.2", - "from": "repeat-element@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "from": "repeat-string@>=1.5.2 <2.0.0", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "from": "require-directory@>=2.1.1 <3.0.0", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "dev": true - }, - "require-from-string": { - "version": "1.2.1", - "from": "require-from-string@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "from": "require-main-filename@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "dev": true - }, - "resolve-pathname": { - "version": "2.1.0", - "from": "resolve-pathname@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-2.1.0.tgz", - "dev": true - }, - "right-align": { - "version": "0.1.3", - "from": "right-align@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "dev": true - }, - "ripemd160": { - "version": "2.0.1", - "from": "ripemd160@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", - "dev": true - }, - "safe-buffer": { - "version": "5.1.1", - "from": "safe-buffer@>=5.1.0 <5.2.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "dev": true - }, - "sax": { - "version": "1.2.4", - "from": "sax@>=1.2.1 <1.3.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "dev": true - }, - "schema-utils": { - "version": "0.3.0", - "from": "schema-utils@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "dev": true - }, - "semver": { - "version": "5.3.0", - "from": "semver@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0||>=4.0.0 <5.0.0||>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "from": "set-blocking@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "dev": true - }, - "set-immediate-shim": { - "version": "1.0.1", - "from": "set-immediate-shim@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "dev": true - }, - "setimmediate": { - "version": "1.0.5", - "from": "setimmediate@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "dev": true - }, - "sha.js": { - "version": "2.4.8", - "from": "sha.js@>=2.4.0 <3.0.0", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz", - "dev": true - }, - "signals": { - "version": "1.0.0", - "from": "signals@<2.0.0", - "resolved": "https://registry.npmjs.org/signals/-/signals-1.0.0.tgz", - "dev": true - }, - "sort-keys": { - "version": "1.1.2", - "from": "sort-keys@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "dev": true - }, - "source-list-map": { - "version": "0.1.8", - "from": "source-list-map@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", - "dev": true - }, - "source-map": { - "version": "0.5.6", - "from": "source-map@>=0.5.6 <0.6.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "dev": true - }, - "source-map-support": { - "version": "0.4.15", - "from": "source-map-support@>=0.4.15 <0.5.0", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz", - "dev": true - }, - "spdx-correct": { - "version": "1.0.2", - "from": "spdx-correct@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "dev": true - }, - "spdx-expression-parse": { - "version": "1.0.4", - "from": "spdx-expression-parse@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "dev": true - }, - "spdx-license-ids": { - "version": "1.2.2", - "from": "spdx-license-ids@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "dev": true - }, - "sprintf-js": { - "version": "1.0.3", - "from": "sprintf-js@>=1.0.2 <1.1.0", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "dev": true - }, - "statuses": { - "version": "1.3.1", - "from": "statuses@>=1.3.1 <1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "dev": true - }, - "stream-browserify": { - "version": "2.0.1", - "from": "stream-browserify@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "dev": true - }, - "stream-http": { - "version": "2.7.2", - "from": "stream-http@>=2.3.1 <3.0.0", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", - "dev": true - }, - "strict-uri-encode": { - "version": "1.1.0", - "from": "strict-uri-encode@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "dev": true - }, - "string_decoder": { - "version": "1.0.3", - "from": "string_decoder@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "dev": true - }, - "string-width": { - "version": "1.0.2", - "from": "string-width@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "from": "strip-ansi@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "dev": true - }, - "strip-bom": { - "version": "2.0.0", - "from": "strip-bom@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "dev": true - }, - "style-loader": { - "version": "0.13.2", - "from": "style-loader@>=0.13.1 <0.14.0", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.13.2.tgz", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "from": "supports-color@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "dev": true - }, - "svgo": { - "version": "0.7.2", - "from": "svgo@>=0.7.0 <0.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", - "dev": true - }, - "tapable": { - "version": "0.2.6", - "from": "tapable@>=0.2.5 <0.3.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.6.tgz", - "dev": true - }, - "timers-browserify": { - "version": "2.0.2", - "from": "timers-browserify@>=2.0.2 <3.0.0", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.2.tgz", - "dev": true - }, - "to-arraybuffer": { - "version": "1.0.1", - "from": "to-arraybuffer@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "dev": true - }, - "tty-browserify": { - "version": "0.0.0", - "from": "tty-browserify@0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "dev": true - }, - "typescript": { - "version": "2.3.4", - "from": "typescript@>=2.2.1 <3.0.0", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.3.4.tgz", - "dev": true - }, - "uglify-js": { - "version": "2.8.29", - "from": "uglify-js@>=2.8.27 <3.0.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "dev": true, - "dependencies": { - "yargs": { - "version": "3.10.0", - "from": "yargs@>=3.10.0 <3.11.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "dev": true - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "from": "uglify-to-browserify@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "dev": true, - "optional": true - }, - "uniq": { - "version": "1.0.1", - "from": "uniq@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "dev": true - }, - "uniqid": { - "version": "4.1.1", - "from": "uniqid@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", - "dev": true - }, - "uniqs": { - "version": "2.0.0", - "from": "uniqs@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "from": "unpipe@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "dev": true - }, - "url": { - "version": "0.11.0", - "from": "url@>=0.11.0 <0.12.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "dev": true, - "dependencies": { - "punycode": { - "version": "1.3.2", - "from": "punycode@1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "dev": true - } - } - }, - "url-loader": { - "version": "0.5.9", - "from": "url-loader@>=0.5.7 <0.6.0", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.5.9.tgz", - "dev": true - }, - "util": { - "version": "0.10.3", - "from": "util@>=0.10.3 <0.11.0", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "dev": true, - "dependencies": { - "inherits": { - "version": "2.0.1", - "from": "inherits@2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "dev": true - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "from": "util-deprecate@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "dev": true - }, - "utils-merge": { - "version": "1.0.0", - "from": "utils-merge@1.0.0", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.1", - "from": "validate-npm-package-license@>=3.0.1 <4.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "dev": true - }, - "value-equal": { - "version": "0.2.1", - "from": "value-equal@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-0.2.1.tgz", - "dev": true - }, - "vendors": { - "version": "1.0.1", - "from": "vendors@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz", - "dev": true - }, - "vm-browserify": { - "version": "0.0.4", - "from": "vm-browserify@0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "dev": true - }, - "warning": { - "version": "3.0.0", - "from": "warning@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", - "dev": true - }, - "watchpack": { - "version": "1.3.1", - "from": "watchpack@>=1.3.1 <2.0.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.3.1.tgz", - "dev": true - }, - "webpack": { - "version": "2.6.1", - "from": "webpack@>=2.2.0 <3.0.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-2.6.1.tgz", - "dev": true, - "dependencies": { - "ajv": { - "version": "4.11.8", - "from": "ajv@>=4.7.0 <5.0.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "dev": true - }, - "loader-utils": { - "version": "0.2.17", - "from": "loader-utils@>=0.2.16 <0.3.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "dev": true - }, - "memory-fs": { - "version": "0.4.1", - "from": "memory-fs@>=0.4.1 <0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "dev": true - }, - "source-list-map": { - "version": "1.1.2", - "from": "source-list-map@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-1.1.2.tgz", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "from": "supports-color@>=3.1.0 <4.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "dev": true - }, - "webpack-sources": { - "version": "0.2.3", - "from": "webpack-sources@>=0.2.3 <0.3.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.2.3.tgz", - "dev": true - } - } - }, - "webpack-dev-middleware": { - "version": "1.11.0", - "from": "webpack-dev-middleware@>=1.8.4 <2.0.0", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.11.0.tgz", - "dev": true, - "dependencies": { - "memory-fs": { - "version": "0.4.1", - "from": "memory-fs@>=0.4.1 <0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "dev": true - } - } - }, - "webpack-hot-middleware": { - "version": "2.18.0", - "from": "webpack-hot-middleware@>=2.12.2 <3.0.0", - "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.18.0.tgz", - "dev": true - }, - "webpack-node-externals": { - "version": "1.6.0", - "from": "webpack-node-externals@>=1.4.3 <2.0.0", - "resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-1.6.0.tgz", - "dev": true - }, - "webpack-sources": { - "version": "1.0.1", - "from": "webpack-sources@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.0.1.tgz", - "dev": true, - "dependencies": { - "source-list-map": { - "version": "2.0.0", - "from": "source-list-map@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", - "dev": true - } - } - }, - "whatwg-fetch": { - "version": "2.0.3", - "from": "whatwg-fetch@>=0.10.0", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", - "dev": true - }, - "whet.extend": { - "version": "0.9.9", - "from": "whet.extend@>=0.9.9 <0.10.0", - "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", - "dev": true - }, - "which-module": { - "version": "1.0.0", - "from": "which-module@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "dev": true - }, - "window-size": { - "version": "0.1.0", - "from": "window-size@0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "dev": true - }, - "wordwrap": { - "version": "0.0.2", - "from": "wordwrap@0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "dev": true - }, - "wrap-ansi": { - "version": "2.1.0", - "from": "wrap-ansi@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "dev": true - }, - "xtend": { - "version": "4.0.1", - "from": "xtend@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "dev": true - }, - "y18n": { - "version": "3.2.1", - "from": "y18n@>=3.2.1 <4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "dev": true - }, - "yargs": { - "version": "6.6.0", - "from": "yargs@>=6.0.0 <7.0.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", - "dev": true, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "from": "camelcase@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "from": "cliui@>=3.2.0 <4.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "dev": true - } - } - }, - "yargs-parser": { - "version": "4.2.1", - "from": "yargs-parser@>=4.2.0 <5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", - "dev": true, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "from": "camelcase@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "dev": true - } - } - } - } -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/package.json b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/package.json deleted file mode 100644 index 86722a70..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/package.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "KnockoutSpa", - "private": true, - "version": "0.0.0", - "devDependencies": { - "@types/core-js": "^0.9.34", - "@types/crossroads": "0.0.29", - "@types/es6-promise": "0.0.32", - "@types/history": "^4.6.0", - "@types/jquery": "^2.0.32", - "@types/knockout": "^3.4.41", - "@types/signals": "0.0.16", - "@types/webpack-env": "^1.13.0", - "aspnet-webpack": "^2.0.1", - "awesome-typescript-loader": "^3.0.0", - "bootstrap": "^3.3.6", - "bundle-loader": "^0.5.4", - "crossroads": "^0.12.2", - "css-loader": "^0.25.0", - "event-source-polyfill": "^0.0.7", - "extract-text-webpack-plugin": "^2.0.0-rc", - "file-loader": "^0.9.0", - "history": "^4.6.3", - "isomorphic-fetch": "^2.2.1", - "jquery": "^2.2.1", - "json-loader": "^0.5.4", - "knockout": "^3.4.0", - "raw-loader": "^0.5.1", - "style-loader": "^0.13.1", - "typescript": "^2.2.1", - "url-loader": "^0.5.7", - "webpack": "^2.2.0", - "webpack-hot-middleware": "^2.12.2" - } -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/tsconfig.json b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/tsconfig.json deleted file mode 100644 index 78973bd6..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/tsconfig.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "compilerOptions": { - "module": "es2015", - "moduleResolution": "node", - "target": "es5", - "sourceMap": true, - "skipDefaultLibCheck": true, - "strict": true, - "types": ["es6-promise", "webpack-env"] - }, - "exclude": [ - "bin", - "node_modules" - ] -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/webpack.config.js b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/webpack.config.js deleted file mode 100644 index 98a37b68..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/webpack.config.js +++ /dev/null @@ -1,44 +0,0 @@ -const path = require('path'); -const webpack = require('webpack'); -const ExtractTextPlugin = require('extract-text-webpack-plugin'); -const CheckerPlugin = require('awesome-typescript-loader').CheckerPlugin; -const bundleOutputDir = './wwwroot/dist'; - -module.exports = (env) => { - const isDevBuild = !(env && env.prod); - return [{ - stats: { modules: false }, - entry: { 'main': './ClientApp/boot.ts' }, - resolve: { extensions: [ '.js', '.ts' ] }, - output: { - path: path.join(__dirname, bundleOutputDir), - filename: '[name].js', - publicPath: 'dist/' - }, - module: { - rules: [ - { test: /\.ts$/, include: /ClientApp/, use: 'awesome-typescript-loader?silent=true' }, - { test: /\.html$/, use: 'raw-loader' }, - { test: /\.css$/, use: isDevBuild ? [ 'style-loader', 'css-loader' ] : ExtractTextPlugin.extract({ use: 'css-loader?minimize' }) }, - { test: /\.(png|jpg|jpeg|gif|svg)$/, use: 'url-loader?limit=25000' } - ] - }, - plugins: [ - new CheckerPlugin(), - new webpack.DllReferencePlugin({ - context: __dirname, - manifest: require('./wwwroot/dist/vendor-manifest.json') - }) - ].concat(isDevBuild ? [ - // Plugins that apply in development builds only - new webpack.SourceMapDevToolPlugin({ - filename: '[file].map', // Remove this line if you prefer inline source maps - moduleFilenameTemplate: path.relative(bundleOutputDir, '[resourcePath]') // Point sourcemap entries to the original file locations on disk - }) - ] : [ - // Plugins that apply in production builds only - new webpack.optimize.UglifyJsPlugin(), - new ExtractTextPlugin('site.css') - ]) - }]; -}; diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/webpack.config.vendor.js b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/webpack.config.vendor.js deleted file mode 100644 index 12d4dba5..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/webpack.config.vendor.js +++ /dev/null @@ -1,39 +0,0 @@ -const path = require('path'); -const webpack = require('webpack'); -const ExtractTextPlugin = require('extract-text-webpack-plugin'); - -module.exports = (env) => { - const isDevBuild = !(env && env.prod); - const extractCSS = new ExtractTextPlugin('vendor.css'); - return [{ - stats: { modules: false }, - resolve: { - extensions: [ '.js' ] - }, - module: { - rules: [ - { test: /\.(png|woff|woff2|eot|ttf|svg)(\?|$)/, use: 'url-loader?limit=100000' }, - { test: /\.css(\?|$)/, use: extractCSS.extract({ use: isDevBuild ? 'css-loader' : 'css-loader?minimize' }) } - ] - }, - entry: { - vendor: ['bootstrap', 'bootstrap/dist/css/bootstrap.css', 'knockout', 'crossroads', 'event-source-polyfill', 'history', 'isomorphic-fetch', 'jquery'], - }, - output: { - path: path.join(__dirname, 'wwwroot', 'dist'), - publicPath: 'dist/', - filename: '[name].js', - library: '[name]_[hash]', - }, - plugins: [ - extractCSS, - new webpack.ProvidePlugin({ $: 'jquery', jQuery: 'jquery' }), // Maps these identifiers to the jQuery package (because Bootstrap expects it to be a global variable) - new webpack.DllPlugin({ - path: path.join(__dirname, 'wwwroot', 'dist', '[name]-manifest.json'), - name: '[name]_[hash]' - }) - ].concat(isDevBuild ? [] : [ - new webpack.optimize.UglifyJsPlugin() - ]) - }]; -}; diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/knockout/wwwroot/favicon.ico b/templates/Microsoft.AspNetCore.SpaTemplates/knockout/wwwroot/favicon.ico deleted file mode 100644 index a3a799985c43bc7309d701b2cad129023377dc71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32038 zcmeHwX>eTEbtY7aYbrGrkNjgie?1jXjZ#zP%3n{}GObKv$BxI7Sl;Bwl5E+Qtj&t8 z*p|m4DO#HoJC-FyvNnp8NP<{Na0LMnTtO21(rBP}?EAiNjWgeO?z`{3ZoURUQlV2d zY1Pqv{m|X_oO91|?^z!6@@~od!@OH>&BN;>c@O+yUfy5w>LccTKJJ&`-k<%M^Zvi( z<$dKp=jCnNX5Qa+M_%6g|IEv~4R84q9|7E=|Ho(Wz3f-0wPjaRL;W*N^>q%^KGRr7 zxbjSORb_c&eO;oV_DZ7ua!sPH=0c+W;`vzJ#j~-x3uj};50#vqo*0w4!LUqs*UCh9 zvy2S%$#8$K4EOa&e@~aBS65_hc~Mpu=454VT2^KzWqEpBA=ME|O;1cn?8p<+{MKJf zbK#@1wzL44m$k(?85=Obido7=C|xWKe%66$z)NrzRwR>?hK?_bbwT z@Da?lBrBL}Zemo1@!9pYRau&!ld17h{f+UV0sY(R{ET$PBB|-=Nr@l-nY6w8HEAw* zRMIQU`24Jl_IFEPcS=_HdrOP5yf81z_?@M>83Vv65$QFr9nPg(wr`Ke8 zaY4ogdnMA*F7a4Q1_uXadTLUpCk;$ZPRRJ^sMOch;rlbvUGc1R9=u;dr9YANbQ<4Z z#P|Cp9BP$FXNPolgyr1XGt$^lFPF}rmBF5rj1Kh5%dforrP8W}_qJL$2qMBS-#%-|s#BPZBSETsn_EBYcr(W5dq( z@f%}C|iN7)YN`^)h7R?Cg}Do*w-!zwZb9=BMp%Wsh@nb22hA zA{`wa8Q;yz6S)zfo%sl08^GF`9csI9BlGnEy#0^Y3b);M+n<(}6jziM7nhe57a1rj zC@(2ISYBL^UtWChKzVWgf%4LW2Tqg_^7jMw`C$KvU+mcakFjV(BGAW9g%CzSyM;Df z143=mq0oxaK-H;o>F3~zJ<(3-j&?|QBn)WJfP#JR zRuA;`N?L83wQt78QIA$(Z)lGQY9r^SFal;LB^qi`8%8@y+mwcGsf~nv)bBy2S7z~9 z=;X@Gglk)^jpbNz?1;`!J3QUfAOp4U$Uxm5>92iT`mek#$>s`)M>;e4{#%HAAcb^8_Ax%ersk|}# z0bd;ZPu|2}18KtvmIo8`1@H~@2ejwo(5rFS`Z4&O{$$+ch2hC0=06Jh`@p+p8LZzY z&2M~8T6X^*X?yQ$3N5EzRv$(FtSxhW>>ABUyp!{484f8(%C1_y)3D%Qgfl_!sz`LTXOjR&L!zPA0qH_iNS!tY{!^2WfD%uT}P zI<~&?@&))5&hPPHVRl9);TPO>@UI2d!^ksb!$9T96V(F){puTsn(}qt_WXNw4VvHj zf;6A_XCvE`Z@}E-IOaG0rs>K>^=Sr&OgT_p;F@v0VCN0Y$r|Lw1?Wjt`AKK~RT*kJ z2>QPuVgLNcF+XKno;WBv$yj@d_WFJbl*#*V_Cwzo@%3n5%z4g21G*PVZ)wM5$A{klYozmGlB zT@u2+s}=f}25%IA!yNcXUr!!1)z(Nqbhojg0lv@7@0UlvUMT)*r;M$d0-t)Z?B1@qQk()o!4fqvfr_I0r7 zy1(NdkHEj#Yu{K>T#We#b#FD=c1XhS{hdTh9+8gy-vkcdkk*QS@y(xxEMb1w6z<^~ zYcETGfB#ibR#ql0EiD;PR$L&Vrh2uRv5t_$;NxC;>7_S5_OXxsi8udY3BUUdi55Sk zcyKM+PQ9YMA%D1kH1q48OFG(Gbl=FmV;yk8o>k%0$rJ8%-IYsHclnYuTskkaiCGkUlkMY~mx&K}XRlKIW;odWIeuKjtbc^8bBOTqK zjj(ot`_j?A6y_h%vxE9o*ntx#PGrnK7AljD_r58ylE*oy@{IY%+mA^!|2vW_`>`aC{#3`#3;D_$^S^cM zRcF+uTO2sICledvFgNMU@A%M)%8JbSLq{dD|2|2Sg8vvh_uV6*Q?F&rKaV{v_qz&y z`f;stIb?Cb2!Cg7CG91Bhu@D@RaIrq-+o+T2fwFu#|j>lD6ZS9-t^5cx>p|?flqUA z;Cgs#V)O#`Aw4$Kr)L5?|7f4izl!;n0jux}tEW$&&YBXz9o{+~HhoiYDJ`w5BVTl&ARya=M7zdy$FEe}iGBur8XE>rhLj&_yDk5D4n2GJZ07u7%zyAfNtOLn;)M?h*Py-Xtql5aJOtL4U8e|!t? z((sc6&OJXrPdVef^wZV&x=Z&~uA7^ix8rly^rEj?#d&~pQ{HN8Yq|fZ#*bXn-26P^ z5!)xRzYO9{u6vx5@q_{FE4#7BipS#{&J7*>y}lTyV94}dfE%Yk>@@pDe&F7J09(-0|wuI|$of-MRfK51#t@t2+U|*s=W; z!Y&t{dS%!4VEEi$efA!#<<7&04?kB}Soprd8*jYv;-Qj~h~4v>{XX~kjF+@Z7<t?^|i z#>_ag2i-CRAM8Ret^rZt*^K?`G|o>1o(mLkewxyA)38k93`<~4VFI?5VB!kBh%NNU zxb8K(^-MU1ImWQxG~nFB-Un;6n{lQz_FfsW9^H$Xcn{;+W^ZcG$0qLM#eNV=vGE@# z1~k&!h4@T|IiI<47@pS|i?Qcl=XZJL#$JKve;booMqDUYY{(xcdj6STDE=n?;fsS1 ze`h~Q{CT$K{+{t+#*I1=&&-UU8M&}AwAxD-rMa=e!{0gQXP@6azBq9(ji11uJF%@5 zCvV`#*?;ZguQ7o|nH%bm*s&jLej#@B35gy32ZAE0`Pz@#j6R&kN5w{O4~1rhDoU zEBdU)%Nl?8zi|DR((u|gg~r$aLYmGMyK%FO*qLvwxK5+cn*`;O`16c!&&XT{$j~5k zXb^fbh1GT-CI*Nj{-?r7HNg=e3E{6rxuluPXY z5Nm8ktc$o4-^SO0|Es_sp!A$8GVwOX+%)cH<;=u#R#nz;7QsHl;J@a{5NUAmAHq4D zIU5@jT!h?kUp|g~iN*!>jM6K!W5ar0v~fWrSHK@})@6Lh#h)C6F6@)&-+C3(zO! z8+kV|B7LctM3DpI*~EYo>vCj>_?x&H;>y0*vKwE0?vi$CLt zfSJB##P|M2dEUDBPKW=9cY-F;L;h3Fs4E2ERdN#NSL7ctAC z?-}_a{*L@GA7JHJudxtDVA{K5Yh*k(%#x4W7w+^ zcb-+ofbT5ieG+@QG2lx&7!MyE2JWDP@$k`M;0`*d+oQmJ2A^de!3c53HFcfW_Wtv< zKghQ;*FifmI}kE4dc@1y-u;@qs|V75Z^|Q0l0?teobTE8tGl@EB?k#q_wUjypJ*R zyEI=DJ^Z+d*&}B_xoWvs27LtH7972qqMxVFcX9}c&JbeNCXUZM0`nQIkf&C}&skSt z^9fw@b^Hb)!^hE2IJq~~GktG#ZWwWG<`@V&ckVR&r=JAO4YniJewVcG`HF;59}=bf zLyz0uxf6MhuSyH#-^!ZbHxYl^mmBVrx) zyrb8sQ*qBd_WXm9c~Of$&ZP$b^)<~0%nt#7y$1Jg$e}WCK>TeUB{P>|b1FAB?%K7>;XiOfd}JQ`|IP#Vf%kVy zXa4;XFZ+>n;F>uX&3|4zqWK2u3c<>q;tzjsb1;d{u;L$-hq3qe@82(ob<3qom#%`+ z;vzYAs7TIMl_O75BXu|r`Qhc4UT*vN$3Oo0kAC!{f2#HexDy|qUpgTF;k{o6|L>7l z=?`=*LXaow1o;oNNLXsGTrvC)$R&{m=94Tf+2iTT3Y_Or z-!;^0a{kyWtO4vksG_3cyc7HQ0~detf0+2+qxq(e1NS251N}w5iTSrM)`0p8rem!j zZ56hGD=pHI*B+dd)2B`%|9f0goozCSeXPw3 z+58k~sI02Yz#lOneJzYcG)EB0|F+ggC6D|B`6}d0khAK-gz7U3EGT|M_9$ZINqZjwf>P zJCZ=ogSoE`=yV5YXrcTQZx@Un(64*AlLiyxWnCJ9I<5Nc*eK6eV1Mk}ci0*NrJ=t| zCXuJG`#7GBbPceFtFEpl{(lTm`LX=B_!H+& z>$*Hf}}y zkt@nLXFG9%v**s{z&{H4e?aqp%&l#oU8lxUxk2o%K+?aAe6jLojA& z_|J0<-%u^<;NT*%4)n2-OdqfctSl6iCHE?W_Q2zpJken#_xUJlidzs249H=b#g z?}L4-Tnp6)t_5X?_$v)vz`s9@^BME2X@w<>sKZ3=B{%*B$T5Nj%6!-Hr;I!Scj`lH z&2dHFlOISwWJ&S2vf~@I4i~(0*T%OFiuX|eD*nd2utS4$1_JM?zmp>a#CsVy6Er^z zeNNZZDE?R3pM?>~e?H_N`C`hy%m4jb;6L#8=a7l>3eJS2LGgEUxsau-Yh9l~o7=Yh z2mYg3`m5*3Ik|lKQf~euzZlCWzaN&=vHuHtOwK!2@W6)hqq$Zm|7`Nmu%9^F6UH?+ z@2ii+=iJ;ZzhiUKu$QB()nKk3FooI>Jr_IjzY6=qxYy;&mvi7BlQ?t4kRjIhb|2q? zd^K~{-^cxjVSj?!Xs=Da5IHmFzRj!Kzh~b!?`P7c&T9s77VLYB?8_?F zauM^)p;qFG!9PHLfIsnt43UnmV?Wn?Ki7aXSosgq;f?MYUuSIYwOn(5vWhb{f%$pn z4ySN-z}_%7|B);A@PA5k*7kkdr4xZ@s{e9j+9w;*RFm;XPDQwx%~;8iBzSKTIGKO z{53ZZU*OLr@S5=k;?CM^i#zkxs3Sj%z0U`L%q`qM+tP zX$aL;*^g$7UyM2Go+_4A+f)IQcy^G$h2E zb?nT$XlgTEFJI8GN6NQf%-eVn9mPilRqUbT$pN-|;FEjq@Ao&TxpZg=mEgBHB zU@grU;&sfmqlO=6|G3sU;7t8rbK$?X0y_v9$^{X`m4jZ_BR|B|@?ZCLSPPEzz`w1n zP5nA;4(kQFKm%$enjkkBxM%Y}2si&d|62L)U(dCzCGn56HN+i#6|nV-TGIo0;W;`( zW-y=1KF4dp$$mC_|6}pbb>IHoKQeZajXQB>jVR?u`R>%l1o54?6NnS*arpVopdEF; zeC5J3*M0p`*8lif;!irrcjC?(uExejsi~>4wKYwstGY^N@KY}TujLx`S=Cu+T=!dx zKWlPm->I**E{A*q-Z^FFT5$G%7Ij0_*Mo4-y6~RmyTzUB&lfae(WZfO>um}mnsDXPEbau-!13!!xd!qh*{C)6&bz0j1I{>y$D-S)b*)JMCPk!=~KL&6Ngin0p6MCOxF2L_R9t8N!$2Wpced<#`y!F;w zKTi5V_kX&X09wAIJ#anfg9Dhn0s7(C6Nj3S-mVn(i|C6ZAVq0$hE)874co};g z^hR7pe4lU$P;*ggYc4o&UTQC%liCXooIfkI3TNaBV%t~FRr}yHu7kjQ2J*3;e%;iW zvDVCh8=G80KAeyhCuY2LjrC!Od1rvF7h}zszxGV)&!)6ChP5WAjv-zQAMNJIG!JHS zwl?pLxC-V5II#(hQ`l)ZAp&M0xd4%cxmco*MIk?{BD=BK`1vpc}D39|XlV z{c&0oGdDa~TL2FT4lh=~1NL5O-P~0?V2#ie`v^CnANfGUM!b4F=JkCwd7Q`c8Na2q zJGQQk^?6w}Vg9-{|2047((lAV84uN%sK!N2?V(!_1{{v6rdgZl56f0zDMQ+q)jKzzu^ztsVken;=DjAh6G`Cw`Q4G+BjS+n*=KI~^K{W=%t zbD-rN)O4|*Q~@<#@1Vx$E!0W9`B~IZeFn87sHMXD>$M%|Bh93rdGf1lKoX3K651t&nhsl= zXxG|%@8}Bbrlp_u#t*DZX<}_0Yb{A9*1Pd_)LtqNwy6xT4pZrOY{s?N4)pPwT(i#y zT%`lRi8U#Ken4fw>H+N`{f#FF?ZxFlLZg7z7#cr4X>id z{9kUD`d2=w_Zlb{^c`5IOxWCZ1k<0T1D1Z31IU0Q2edsZ1K0xv$pQVYq2KEp&#v#Z z?{m@Lin;*Str(C2sfF^L>{R3cjY`~#)m>Wm$Y|1fzeS0-$(Q^z@} zEO*vlb-^XK9>w&Ef^=Zzo-1AFSP#9zb~X5_+){$(eB4K z8gtW+nl{q+CTh+>v(gWrsP^DB*ge(~Q$AGxJ-eYc1isti%$%nM<_&Ev?%|??PK`$p z{f-PM{Ym8k<$$)(F9)tqzFJ?h&Dk@D?Dt{4CHKJWLs8$zy6+(R)pr@0ur)xY{=uXFFzH_> z-F^tN1y(2hG8V)GpDg%wW0Px_ep~nIjD~*HCSxDi0y`H!`V*~RHs^uQsb1*bK1qGpmd zB1m`Cjw0`nLBF2|umz+a#2X$c?Lj;M?Lj;MUp*d>7j~ayNAyj@SLpeH`)BgRH}byy zyQSat!;U{@O(<<2fp&oQkIy$z`_CQ-)O@RN;QD9T4y|wIJ^%U#(BF%=`i49}j!D-) zkOwPSJaG03SMkE~BzW}b_v>LA&y)EEYO6sbdnTX*$>UF|JhZ&^MSb4}Tgbne_4n+C zwI8U4i~PI>7a3{kVa8|))*%C0|K+bIbmV~a`|G#+`TU#g zXW;bWIcWsQi9c4X*RUDpIfyoPY)2bI-r9)xulm1CJDkQd6u+f)_N=w1ElgEBjprPF z3o?Ly0RVeY_{3~fPVckRMxe2lM8hj!B8F)JO z!`AP6>u>5Y&3o9t0QxBpNE=lJx#NyIbp1gD zzUYBIPYHIv9ngk-Zt~<)62^1Zs1LLYMh@_tP^I7EX-9)Ed0^@y{k65Gp0KRcTmMWw zU|+)qx{#q0SL+4q?Q`i0>COIIF8a0Cf&C`hbMj?LmG9K&iW-?PJt*u)38tTXAP>@R zZL6uH^!RYNq$p>PKz7f-zvg>OKXcZ8h!%Vo@{VUZp|+iUD_xb(N~G|6c#oQK^nHZU zKg#F6<)+`rf~k*Xjjye+syV{bwU2glMMMs-^ss4`bYaVroXzn`YQUd__UlZL_mLs z(vO}k!~(mi|L+(5&;>r<;|OHnbXBE78LruP;{yBxZ6y7K3)nMo-{6PCI7gQi6+rF_ zkPod!Z8n}q46ykrlQS|hVB(}(2Kf7BCZ>Vc;V>ccbk2~NGaf6wGQH@W9&?Zt3v(h*P4xDrN>ex7+jH*+Qg z%^jH$&+*!v{sQ!xkWN4+>|b}qGvEd6ANzgqoVy5Qfws}ef2QqF{iiR5{pT}PS&yjo z>lron#va-p=v;m>WB+XVz|o;UJFdjo5_!RRD|6W{4}A2a#bZv)gS_`b|KsSH)Sd_JIr%<%n06TX&t{&!H#{)?4W9hlJ`R1>FyugOh3=D_{einr zu(Wf`qTkvED+gEULO0I*Hs%f;&=`=X4;N8Ovf28x$A*11`dmfy2=$+PNqX>XcG`h% zJY&A6@&)*WT^rC(Caj}2+|X|6cICm5h0OK0cGB_!wEKFZJU)OQ+TZ1q2bTx9hxnq& z$9ee|f9|0M^)#E&Pr4)f?o&DMM4w>Ksb{hF(0|wh+5_{vPow{V%TFzU2za&gjttNi zIyR9qA56dX52Qbv2aY^g`U7R43-p`#sO1A=KS2aKgfR+Yu^bQ*i-qu z%0mP;Ap)B~zZgO9lG^`325gOf?iUHF{~7jyGC)3L(eL(SQ70VzR~wLN18tnx(Cz2~ zctBl1kI)wAe+cxWHw*NW-d;=pd+>+wd$a@GBju*wFvabSaPtHiT!o#QFC+wBVwYo3s=y;z1jM+M=Fj!FZM>UzpL-eZzOT( zhmZmEfWa=%KE#V3-ZK5#v!Hzd{zc^{ctF~- z>DT-U`}5!fk$aj24`#uGdB7r`>oX5tU|d*b|N3V1lXmv%MGrvE(dXG)^-J*LA>$LE z7kut4`zE)v{@Op|(|@i#c>tM!12FQh?}PfA0`Bp%=%*RiXVzLDXnXtE@4B)5uR}a> zbNU}q+712pIrM`k^odG8dKtG$zwHmQI^c}tfjx5?egx3!e%JRm_64e+>`Ra1IRfLb z1KQ`SxmH{cZfyVS5m(&`{V}Y4j6J{b17`h6KWqZ&hfc(oR zxM%w!$F(mKy05kY&lco3%zvLCxBW+t*rxO+i=qGMvobx0-<7`VUu)ka`){=ew+Ovt zg%52_{&UbkUA8aJPWsk)gYWV4`dnxI%s?7^fGpq{ZQuu=VH{-t7w~K%_E<8`zS;V- zKTho*>;UQQul^1GT^HCt@I-q?)&4!QDgBndn?3sNKYKCQFU4LGKJ$n@Je$&w9@E$X z^p@iJ(v&`1(tq~1zc>0Vow-KR&vm!GUzT?Eqgnc)leZ9p)-Z*C!zqb=-$XG0 z^!8RfuQs5s>Q~qcz92(a_Q+KH?C*vCTr~UdTiR`JGuNH8v(J|FTiSEcPrBpmHRtmd zI2Jng0J=bXK);YY^rM?jzn?~X-Pe`GbAy{D)Y6D&1GY-EBcy%Bq?bKh?A>DD9DD!p z?{q02wno2sraGUkZv5dx+J8)&K$)No43Zr(*S`FEdL!4C)}WE}vJd%{S6-3VUw>Wp z?Aasv`T0^%P$2vE?L+Qhj~qB~K%eW)xH(=b_jU}TLD&BP*Pc9hz@Z=e0nkpLkWl}> z_5J^i(9Z7$(XG9~I3sY)`OGZ#_L06+Dy4E>UstcP-rU@xJ$&rxvo!n1Ao`P~KLU-8 z{zDgN4-&A6N!kPSYbQ&7sLufi`YtE2uN$S?e&5n>Y4(q#|KP!cc1j)T^QrUXMPFaP z_SoYO8S8G}Z$?AL4`;pE?7J5K8yWqy23>cCT2{=-)+A$X^-I9=e!@J@A&-;Ufc)`H}c(VI&;0x zrrGv()5mjP%jXzS{^|29?bLNXS0bC%p!YXI!;O457rjCEEzMkGf~B3$T}dXBO23tP z+Ci>;5UoM?C@bU@f9G1^X3=ly&ZeFH<@|RnOG--A&)fd)AUgjw?%izq{p(KJ`EP0v z2mU)P!+3t@X14DA=E2RR-|p${GZ9ETX=d+kJRZL$nSa0daI@&oUUxnZg0xd_xu>Vz lzF#z5%kSKX?YLH3ll^(hI(_`L*t#Iva2Ede*Z;>H_^PTs+|NDO5|DRtH= zx&?tJjNJrv5Kk*aqd1(JGSD~J-B+*=R*Kyk5J)M46=K}{JX0wK2+=DNYC}NIRA8^) zqY7OFVI{hVkl9f<1kg}0V1L1L3gm#}&msD80NGQH zzzP&M5BOqs6_zimElvbEO9i}8ST1sHK1lS5WVPgB?h7S>uTUdGW5+VC0(T&eF)?wU zNI-D%j$EvqT~!6EL~d6l?yB$lzy*-O6iA6uJ0+NDBi7?W#BgLD0a7G?4zTc)mk+Fjb+H z8-*-|2_wLY+wpp5CkFma)<$3xIqNg z8B6L#8k7gA#5Ng+IE z;Q8r`?Z8h~ks9Q`1NYe?aTY&SQ?q1l4!!ii(O_1!>mXh2=J5dInK}I1Ne3vpE@yOlrn7YkpH_;)j=DT#)~kXpZbxGEyjJP zohA9@Qr|c>Tq?c1RMS`Oy!OgauN=G#nyY^@I$YgWZG8U@!hHS#`Z%=T;K!&+RpPab z;*C~0!-gYgG}aB1ef$Tj#?wb{JveJ?0DT=~{A2KkHu283*P3oy{C44=?}%$`H9F(H zRVRO1klhwoVI1A(r4Y57cZMp$rk~-vpEeiR3W}`W*7hRT_cXzFLiNYjRUS+mVVRFk z+HF7BKC9=$hBTwG{+oU2DOQwIW{w9$`}ESD1f&vV97___1QE1mkXDDk=$bs8+5dKP zMONXS&U!6wOhVWOTS;~wpLL;o`3u^xxZ_G`3qShC&6h#9)vtY=Mmmf0}v3pPE|D?c{eKOanxk;8e}gw79pVGFbF(_L#;PW;k* zZ#rpW*=wdu;B1B#>DE0Ssk6+_lp6Ov59#@&{=S@=TU~x!>#uW81GJDOyz>lx>5?ba z!L+jFO-mX?D|1tll4ob8ELA0&c^<59=HzF1g8uog^|k-zjoXxx_l|kX1uc5ogW!C3 zB=<%bUZX#0sMZa==Si5;E0Z1??}weW+FdJ#++Q)(BqOU00$6Xhl-6zhLdf#4|mgA8(WLZ|qa=D^C4pS`|F@ rPHMiXB+qGGGeOsShM-@OkT_|YIbrAU)G;UvoJE|MyT4m4i;MmT6-4S# diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/vue/.template.config/template.json b/templates/Microsoft.AspNetCore.SpaTemplates/vue/.template.config/template.json deleted file mode 100644 index 6cb8810d..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/vue/.template.config/template.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "author": "Microsoft", - "classifications": [ - "Web", - "MVC", - "SPA" - ], - "groupIdentity": "Microsoft.AspNetCore.SpaTemplates.Vue", - "identity": "Microsoft.AspNetCore.SpaTemplates.Vue.CSharp", - "name": "ASP.NET Core with Vue.js", - "preferNameDirectory": true, - "primaryOutputs": [ - { - "path": "VueSpa.csproj" - } - ], - "shortName": "vue", - "sourceName": "VueSpa", - "sources": [ - { - "source": "./", - "target": "./", - "exclude": [ - ".template.config/**" - ] - } - ], - "symbols": { - "TargetFrameworkOverride": { - "type": "parameter", - "description": "Overrides the target framework", - "replaces": "TargetFrameworkOverride", - "datatype": "string", - "defaultValue": "" - }, - "Framework": { - "type": "parameter", - "description": "The target framework for the project.", - "datatype": "choice", - "choices": [ - { - "choice": "netcoreapp2.0", - "description": "Target netcoreapp2.0" - } - ], - "replaces": "netcoreapp2.0", - "defaultValue": "netcoreapp2.0" - }, - "HostIdentifier": { - "type": "bind", - "binding": "HostIdentifier" - }, - "skipRestore": { - "type": "parameter", - "datatype": "bool", - "description": "If specified, skips the automatic restore of the project on create.", - "defaultValue": "false" - } - }, - "tags": { - "language": "C#", - "type": "project" - }, - "postActions": [ - { - "condition": "(!skipRestore)", - "description": "Restore NuGet packages required by this project.", - "manualInstructions": [ - { - "text": "Run 'dotnet restore'" - } - ], - "actionId": "210D431B-A78B-4D2F-B762-4ED3E3EA9025", - "continueOnError": true - }, - { - "condition": "(HostIdentifier == \"dotnetcli\" || HostIdentifier == \"dotnetcli-preview\")", - "actionId": "AC1156F7-BB77-4DB8-B28F-24EEBCCA1E5C", - "description": "\n\n-------------------------------------------------------------------\nIMPORTANT: Before running this project on the command line,\n you must restore NPM packages by running \"npm install\"\n-------------------------------------------------------------------\n", - "manualInstructions": [ - { - "text": "Run \"npm install\"" - } - ] - } - ] -} \ No newline at end of file diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/vue/.template.config/vs-2017.3.host.json b/templates/Microsoft.AspNetCore.SpaTemplates/vue/.template.config/vs-2017.3.host.json deleted file mode 100644 index 9b9b6a5f..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/vue/.template.config/vs-2017.3.host.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "$schema": "http://json.schemastore.org/vs-2017.3.host", - "name": { - "text": "Vue.js", - "package": "{0CD94836-1526-4E85-87D3-FB5274C5AFC9}", - "id": "1600" - }, - "description": { - "text": "A project template for creating an ASP.NET Core application with Vue.js", - "package": "{0CD94836-1526-4E85-87D3-FB5274C5AFC9}", - "id": "1601" - }, - "order": 301, - "icon": "icon.png", - "learnMoreLink": "https://github.com/aspnet/JavaScriptServices", - "uiFilters": [ - "oneaspnet" - ], - "minFullFrameworkVersion": "4.6.1" -} \ No newline at end of file diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/boot.ts b/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/boot.ts deleted file mode 100644 index b95bd381..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/boot.ts +++ /dev/null @@ -1,17 +0,0 @@ -import './css/site.css'; -import 'bootstrap'; -import Vue from 'vue'; -import VueRouter from 'vue-router'; -Vue.use(VueRouter); - -const routes = [ - { path: '/', component: require('./components/home/home.vue.html') }, - { path: '/counter', component: require('./components/counter/counter.vue.html') }, - { path: '/fetchdata', component: require('./components/fetchdata/fetchdata.vue.html') } -]; - -new Vue({ - el: '#app-root', - router: new VueRouter({ mode: 'history', routes: routes }), - render: h => h(require('./components/app/app.vue.html')) -}); diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/app/app.ts b/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/app/app.ts deleted file mode 100644 index f580f76b..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/app/app.ts +++ /dev/null @@ -1,10 +0,0 @@ -import Vue from 'vue'; -import { Component } from 'vue-property-decorator'; - -@Component({ - components: { - MenuComponent: require('../navmenu/navmenu.vue.html') - } -}) -export default class AppComponent extends Vue { -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/app/app.vue.html b/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/app/app.vue.html deleted file mode 100644 index 6a108b8a..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/app/app.vue.html +++ /dev/null @@ -1,14 +0,0 @@ - - - diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/counter/counter.ts b/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/counter/counter.ts deleted file mode 100644 index e48ef79b..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/counter/counter.ts +++ /dev/null @@ -1,11 +0,0 @@ -import Vue from 'vue'; -import { Component } from 'vue-property-decorator'; - -@Component -export default class CounterComponent extends Vue { - currentcount: number = 0; - - incrementCounter() { - this.currentcount++; - } -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/counter/counter.vue.html b/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/counter/counter.vue.html deleted file mode 100644 index 570d1a2e..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/counter/counter.vue.html +++ /dev/null @@ -1,13 +0,0 @@ - - - diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/fetchdata/fetchdata.ts b/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/fetchdata/fetchdata.ts deleted file mode 100644 index c6108f93..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/fetchdata/fetchdata.ts +++ /dev/null @@ -1,22 +0,0 @@ -import Vue from 'vue'; -import { Component } from 'vue-property-decorator'; - -interface WeatherForecast { - dateFormatted: string; - temperatureC: number; - temperatureF: number; - summary: string; -} - -@Component -export default class FetchDataComponent extends Vue { - forecasts: WeatherForecast[] = []; - - mounted() { - fetch('https://github.com/api/SampleData/WeatherForecasts') - .then(response => response.json() as Promise) - .then(data => { - this.forecasts = data; - }); - } -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/fetchdata/fetchdata.vue.html b/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/fetchdata/fetchdata.vue.html deleted file mode 100644 index 1b647748..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/fetchdata/fetchdata.vue.html +++ /dev/null @@ -1,30 +0,0 @@ - - - diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/home/home.vue.html b/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/home/home.vue.html deleted file mode 100644 index d418e70a..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/home/home.vue.html +++ /dev/null @@ -1,19 +0,0 @@ - \ No newline at end of file diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/navmenu/navmenu.css b/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/navmenu/navmenu.css deleted file mode 100644 index b7404b41..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/navmenu/navmenu.css +++ /dev/null @@ -1,59 +0,0 @@ -.main-nav li .glyphicon { - margin-right: 10px; -} - -/* Highlighting rules for nav menu items */ -.main-nav li a.router-link-active, -.main-nav li a.router-link-active:hover, -.main-nav li a.router-link-active:focus { - background-color: #4189C7; - color: white; -} - -/* Keep the nav menu independent of scrolling and on top of other items */ -.main-nav { - position: fixed; - top: 0; - left: 0; - right: 0; - z-index: 1; -} - -@media (min-width: 768px) { - /* On small screens, convert the nav menu to a vertical sidebar */ - .main-nav { - height: 100%; - width: calc(25% - 20px); - } - .main-nav .navbar { - border-radius: 0px; - border-width: 0px; - height: 100%; - } - .main-nav .navbar-header { - float: none; - } - .main-nav .navbar-collapse { - border-top: 1px solid #444; - padding: 0px; - } - .main-nav .navbar ul { - float: none; - } - .main-nav .navbar li { - float: none; - font-size: 15px; - margin: 6px; - } - .main-nav .navbar li a { - padding: 10px 16px; - border-radius: 4px; - } - .main-nav .navbar a { - /* If a menu item's text is too long, truncate it */ - width: 100%; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } -} diff --git a/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/navmenu/navmenu.vue.html b/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/navmenu/navmenu.vue.html deleted file mode 100644 index d4d40601..00000000 --- a/templates/Microsoft.AspNetCore.SpaTemplates/vue/ClientApp/components/navmenu/navmenu.vue.html +++ /dev/null @@ -1,37 +0,0 @@ - - -