()
+ .Build();
+ }
+}
diff --git a/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/Startup.cs b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/Startup.cs
new file mode 100644
index 0000000000..c79526fd5d
--- /dev/null
+++ b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/Startup.cs
@@ -0,0 +1,58 @@
+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 VueSpa
+{
+ 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/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/Views/Home/Index.cshtml b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/Views/Home/Index.cshtml
new file mode 100644
index 0000000000..045360f74a
--- /dev/null
+++ b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/Views/Home/Index.cshtml
@@ -0,0 +1,9 @@
+@{
+ ViewData["Title"] = "Home Page";
+}
+
+Loading...
+
+@section scripts {
+
+}
diff --git a/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/Views/Shared/Error.cshtml b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/Views/Shared/Error.cshtml
new file mode 100644
index 0000000000..78e35d5d3c
--- /dev/null
+++ b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/Views/Shared/Error.cshtml
@@ -0,0 +1,21 @@
+@{
+ 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/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/Views/Shared/_Layout.cshtml b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/Views/Shared/_Layout.cshtml
new file mode 100644
index 0000000000..b8d9bd38ea
--- /dev/null
+++ b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/Views/Shared/_Layout.cshtml
@@ -0,0 +1,20 @@
+
+
+
+
+
+ @ViewData["Title"] - VueSpa
+
+
+
+
+
+
+
+
+ @RenderBody()
+
+
+ @RenderSection("scripts", required: false)
+
+
diff --git a/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/Views/_ViewImports.cshtml b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/Views/_ViewImports.cshtml
new file mode 100644
index 0000000000..bba39eb1f8
--- /dev/null
+++ b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/Views/_ViewImports.cshtml
@@ -0,0 +1,3 @@
+@using VueSpa
+@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
+@addTagHelper *, Microsoft.AspNetCore.SpaServices
diff --git a/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/Views/_ViewStart.cshtml b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/Views/_ViewStart.cshtml
new file mode 100644
index 0000000000..820a2f6e02
--- /dev/null
+++ b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/Views/_ViewStart.cshtml
@@ -0,0 +1,3 @@
+@{
+ Layout = "_Layout";
+}
diff --git a/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/VueSpa.csproj b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/VueSpa.csproj
new file mode 100644
index 0000000000..eff4c62c83
--- /dev/null
+++ b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/VueSpa.csproj
@@ -0,0 +1,57 @@
+
+
+
+ netcoreapp2.0
+ TargetFrameworkOverride
+ true
+ Latest
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ %(DistFiles.Identity)
+ PreserveNewest
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/appsettings.Development.json b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/appsettings.Development.json
new file mode 100644
index 0000000000..457e003321
--- /dev/null
+++ b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/appsettings.Development.json
@@ -0,0 +1,19 @@
+{
+ "Logging": {
+ "IncludeScopes": false,
+ "Debug": {
+ "LogLevel": {
+ "Default": "Debug",
+ "System": "Information",
+ "Microsoft": "Information"
+ }
+ },
+ "Console": {
+ "LogLevel": {
+ "Default": "Debug",
+ "System": "Information",
+ "Microsoft": "Information"
+ }
+ }
+ }
+}
diff --git a/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/appsettings.json b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/appsettings.json
new file mode 100644
index 0000000000..c851e129f9
--- /dev/null
+++ b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/appsettings.json
@@ -0,0 +1,15 @@
+{
+ "Logging": {
+ "IncludeScopes": false,
+ "Debug": {
+ "LogLevel": {
+ "Default": "Warning"
+ }
+ },
+ "Console": {
+ "LogLevel": {
+ "Default": "Warning"
+ }
+ }
+ }
+}
diff --git a/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/npm-shrinkwrap.json b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/npm-shrinkwrap.json
new file mode 100644
index 0000000000..31558445fd
--- /dev/null
+++ b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/npm-shrinkwrap.json
@@ -0,0 +1,2603 @@
+{
+ "name": "VueSpa",
+ "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
+ },
+ "abbrev": {
+ "version": "1.1.0",
+ "from": "abbrev@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.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
+ },
+ "bluebird": {
+ "version": "3.5.0",
+ "from": "bluebird@>=3.1.1 <4.0.0",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.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
+ },
+ "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
+ },
+ "commander": {
+ "version": "2.10.0",
+ "from": "commander@>=2.9.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.10.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
+ },
+ "config-chain": {
+ "version": "1.1.11",
+ "from": "config-chain@>=1.1.5 <1.2.0",
+ "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.11.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
+ },
+ "consolidate": {
+ "version": "0.14.5",
+ "from": "consolidate@>=0.14.0 <0.15.0",
+ "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.14.5.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
+ },
+ "cosmiconfig": {
+ "version": "2.1.3",
+ "from": "cosmiconfig@>=2.1.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.1.3.tgz",
+ "dev": true,
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "from": "minimist@>=1.2.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.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.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
+ },
+ "de-indent": {
+ "version": "1.0.2",
+ "from": "de-indent@>=1.0.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.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
+ },
+ "editorconfig": {
+ "version": "0.13.2",
+ "from": "editorconfig@>=0.13.2 <0.14.0",
+ "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.13.2.tgz",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": {
+ "version": "3.2.0",
+ "from": "lru-cache@>=3.2.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-3.2.0.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
+ },
+ "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-sum": {
+ "version": "1.0.2",
+ "from": "hash-sum@>=1.0.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.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 <2.0.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
+ },
+ "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
+ },
+ "ini": {
+ "version": "1.3.4",
+ "from": "ini@>=1.3.4 <2.0.0",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.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-directory": {
+ "version": "0.3.1",
+ "from": "is-directory@>=0.3.1 <0.4.0",
+ "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.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": "3.2.1",
+ "from": "jquery@>=3.1.1 <4.0.0",
+ "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.2.1.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-beautify": {
+ "version": "1.6.14",
+ "from": "js-beautify@>=1.6.3 <2.0.0",
+ "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.6.14.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
+ },
+ "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
+ },
+ "lru-cache": {
+ "version": "4.1.1",
+ "from": "lru-cache@>=4.0.1 <5.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.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
+ }
+ }
+ },
+ "nopt": {
+ "version": "3.0.6",
+ "from": "nopt@>=3.0.1 <3.1.0",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.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-homedir": {
+ "version": "1.0.2",
+ "from": "os-homedir@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.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-load-config": {
+ "version": "1.2.0",
+ "from": "postcss-load-config@>=1.1.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz",
+ "dev": true
+ },
+ "postcss-load-options": {
+ "version": "1.2.0",
+ "from": "postcss-load-options@>=1.2.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz",
+ "dev": true
+ },
+ "postcss-load-plugins": {
+ "version": "2.3.0",
+ "from": "postcss-load-plugins@>=2.3.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.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
+ },
+ "proto-list": {
+ "version": "1.2.4",
+ "from": "proto-list@>=1.2.1 <1.3.0",
+ "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.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
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "from": "pseudomap@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.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
+ },
+ "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
+ },
+ "reflect-metadata": {
+ "version": "0.1.10",
+ "from": "reflect-metadata@>=0.1.9 <0.2.0",
+ "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.10.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
+ },
+ "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
+ },
+ "sigmund": {
+ "version": "1.0.1",
+ "from": "sigmund@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.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
+ },
+ "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
+ },
+ "vue": {
+ "version": "2.3.4",
+ "from": "vue@>=2.2.2 <3.0.0",
+ "resolved": "https://registry.npmjs.org/vue/-/vue-2.3.4.tgz",
+ "dev": true
+ },
+ "vue-class-component": {
+ "version": "5.0.1",
+ "from": "vue-class-component@>=5.0.0 <6.0.0",
+ "resolved": "https://registry.npmjs.org/vue-class-component/-/vue-class-component-5.0.1.tgz",
+ "dev": true
+ },
+ "vue-hot-reload-api": {
+ "version": "2.1.0",
+ "from": "vue-hot-reload-api@>=2.0.11 <3.0.0",
+ "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.1.0.tgz",
+ "dev": true
+ },
+ "vue-loader": {
+ "version": "11.3.4",
+ "from": "vue-loader@>=11.1.4 <12.0.0",
+ "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-11.3.4.tgz",
+ "dev": true
+ },
+ "vue-property-decorator": {
+ "version": "5.1.0",
+ "from": "vue-property-decorator@>=5.0.1 <6.0.0",
+ "resolved": "https://registry.npmjs.org/vue-property-decorator/-/vue-property-decorator-5.1.0.tgz",
+ "dev": true
+ },
+ "vue-router": {
+ "version": "2.6.0",
+ "from": "vue-router@>=2.3.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-2.6.0.tgz",
+ "dev": true
+ },
+ "vue-style-loader": {
+ "version": "2.0.5",
+ "from": "vue-style-loader@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-2.0.5.tgz",
+ "dev": true
+ },
+ "vue-template-compiler": {
+ "version": "2.3.4",
+ "from": "vue-template-compiler@>=2.2.2 <3.0.0",
+ "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.3.4.tgz",
+ "dev": true
+ },
+ "vue-template-es2015-compiler": {
+ "version": "1.5.2",
+ "from": "vue-template-es2015-compiler@>=1.2.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.5.2.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
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "from": "yallist@>=2.1.2 <3.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.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/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/package.json b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/package.json
new file mode 100644
index 0000000000..821a60c5cb
--- /dev/null
+++ b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/package.json
@@ -0,0 +1,27 @@
+{
+ "name": "VueSpa",
+ "private": true,
+ "version": "0.0.0",
+ "devDependencies": {
+ "@types/webpack-env": "^1.13.0",
+ "aspnet-webpack": "^2.0.1",
+ "awesome-typescript-loader": "^3.0.0",
+ "bootstrap": "^3.3.6",
+ "css-loader": "^0.25.0",
+ "event-source-polyfill": "^0.0.7",
+ "extract-text-webpack-plugin": "^2.0.0-rc",
+ "file-loader": "^0.9.0",
+ "isomorphic-fetch": "^2.2.1",
+ "jquery": "^3.1.1",
+ "style-loader": "^0.13.1",
+ "typescript": "^2.2.1",
+ "url-loader": "^0.5.7",
+ "vue": "^2.2.2",
+ "vue-loader": "^11.1.4",
+ "vue-property-decorator": "^5.0.1",
+ "vue-router": "^2.3.0",
+ "vue-template-compiler": "^2.2.2",
+ "webpack": "^2.2.0",
+ "webpack-hot-middleware": "^2.12.2"
+ }
+}
diff --git a/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/tsconfig.json b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/tsconfig.json
new file mode 100644
index 0000000000..b523b75172
--- /dev/null
+++ b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/tsconfig.json
@@ -0,0 +1,17 @@
+{
+ "compilerOptions": {
+ "allowSyntheticDefaultImports": true,
+ "experimentalDecorators": true,
+ "module": "es2015",
+ "moduleResolution": "node",
+ "target": "es5",
+ "sourceMap": true,
+ "skipDefaultLibCheck": true,
+ "strict": true,
+ "types": ["webpack-env"]
+ },
+ "exclude": [
+ "bin",
+ "node_modules"
+ ]
+}
diff --git a/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/webpack.config.js b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/webpack.config.js
new file mode 100644
index 0000000000..a44f366f80
--- /dev/null
+++ b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/webpack.config.js
@@ -0,0 +1,51 @@
+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 },
+ context: __dirname,
+ resolve: { extensions: [ '.js', '.ts' ] },
+ entry: { 'main': './ClientApp/boot.ts' },
+ module: {
+ rules: [
+ { test: /\.vue\.html$/, include: /ClientApp/, loader: 'vue-loader', options: { loaders: { js: 'awesome-typescript-loader?silent=true' } } },
+ { test: /\.ts$/, include: /ClientApp/, use: 'awesome-typescript-loader?silent=true' },
+ { 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' }
+ ]
+ },
+ output: {
+ path: path.join(__dirname, bundleOutputDir),
+ filename: '[name].js',
+ publicPath: 'dist/'
+ },
+ plugins: [
+ new CheckerPlugin(),
+ new webpack.DefinePlugin({
+ 'process.env': {
+ NODE_ENV: JSON.stringify(isDevBuild ? 'development' : 'production')
+ }
+ }),
+ 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/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/webpack.config.vendor.js b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/webpack.config.vendor.js
new file mode 100644
index 0000000000..5c21d67213
--- /dev/null
+++ b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/webpack.config.vendor.js
@@ -0,0 +1,49 @@
+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' ] },
+ entry: {
+ vendor: [
+ 'bootstrap',
+ 'bootstrap/dist/css/bootstrap.css',
+ 'event-source-polyfill',
+ 'isomorphic-fetch',
+ 'jquery',
+ 'vue',
+ 'vue-router'
+ ],
+ },
+ module: {
+ rules: [
+ { test: /\.css(\?|$)/, use: extractCSS.extract({ use: isDevBuild ? 'css-loader' : 'css-loader?minimize' }) },
+ { test: /\.(png|woff|woff2|eot|ttf|svg)(\?|$)/, use: 'url-loader?limit=100000' }
+ ]
+ },
+ 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.DefinePlugin({
+ 'process.env.NODE_ENV': isDevBuild ? '"development"' : '"production"'
+ }),
+ new webpack.DllPlugin({
+ path: path.join(__dirname, 'wwwroot', 'dist', '[name]-manifest.json'),
+ name: '[name]_[hash]'
+ })
+ ].concat(isDevBuild ? [] : [
+ new webpack.optimize.UglifyJsPlugin()
+ ])
+ }];
+};
diff --git a/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/wwwroot/favicon.ico b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/wwwroot/favicon.ico
new file mode 100644
index 0000000000..a3a799985c
Binary files /dev/null and b/src/Microsoft.AspNetCore.SpaTemplates/content/Vue-CSharp/wwwroot/favicon.ico differ
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/Microsoft.DotNet.Web.Spa.ProjectTemplates.nuspec b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/Microsoft.DotNet.Web.Spa.ProjectTemplates.nuspec
new file mode 100644
index 0000000000..71ecb54fee
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/Microsoft.DotNet.Web.Spa.ProjectTemplates.nuspec
@@ -0,0 +1,23 @@
+
+
+
+ Microsoft.DotNet.Web.Spa.ProjectTemplates
+ 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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/.gitignore b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/.gitignore
new file mode 100644
index 0000000000..d261e7c729
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/.gitignore
@@ -0,0 +1,237 @@
+/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/
+
+# 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
+
+/yarn.lock
+
+# 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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/dotnetcli.host.json b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/dotnetcli.host.json
new file mode 100644
index 0000000000..c15c6681aa
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/.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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/icon.png b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/icon.png
new file mode 100644
index 0000000000..0d47965db7
Binary files /dev/null and b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/icon.png differ
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/template.json b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/template.json
new file mode 100644
index 0000000000..e6e58992d0
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/.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": "AngularSpa.csproj"
+ }
+ ],
+ "shortName": "angular",
+ "sourceName": "AngularSpa",
+ "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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/vs-2017.3.host.json b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/vs-2017.3.host.json
new file mode 100644
index 0000000000..c260ba3c5c
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/.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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/AngularSpa.csproj b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/AngularSpa.csproj
new file mode 100644
index 0000000000..c2c5cfe338
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/AngularSpa.csproj
@@ -0,0 +1,62 @@
+
+
+
+ netcoreapp2.0
+ TargetFrameworkOverride
+ true
+ Latest
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ %(DistFiles.Identity)
+ PreserveNewest
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/app.browser.module.ts b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/app.browser.module.ts
new file mode 100644
index 0000000000..3aec0239c6
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/app.browser.module.ts
@@ -0,0 +1,21 @@
+import { NgModule } from '@angular/core';
+import { BrowserModule } from '@angular/platform-browser';
+import { AppModuleShared } from './app.shared.module';
+import { AppComponent } from './components/app/app.component';
+
+@NgModule({
+ bootstrap: [ AppComponent ],
+ imports: [
+ BrowserModule,
+ AppModuleShared
+ ],
+ providers: [
+ { provide: 'BASE_URL', useFactory: getBaseUrl }
+ ]
+})
+export class AppModule {
+}
+
+export function getBaseUrl() {
+ return document.getElementsByTagName('base')[0].href;
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/app.server.module.ts b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/app.server.module.ts
new file mode 100644
index 0000000000..90532aec93
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/app.server.module.ts
@@ -0,0 +1,14 @@
+import { NgModule } from '@angular/core';
+import { ServerModule } from '@angular/platform-server';
+import { AppModuleShared } from './app.shared.module';
+import { AppComponent } from './components/app/app.component';
+
+@NgModule({
+ bootstrap: [ AppComponent ],
+ imports: [
+ ServerModule,
+ AppModuleShared
+ ]
+})
+export class AppModule {
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/app.shared.module.ts b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/app.shared.module.ts
new file mode 100644
index 0000000000..70d079712a
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/app.shared.module.ts
@@ -0,0 +1,35 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { FormsModule } from '@angular/forms';
+import { HttpModule } from '@angular/http';
+import { RouterModule } from '@angular/router';
+
+import { AppComponent } from './components/app/app.component';
+import { NavMenuComponent } from './components/navmenu/navmenu.component';
+import { HomeComponent } from './components/home/home.component';
+import { FetchDataComponent } from './components/fetchdata/fetchdata.component';
+import { CounterComponent } from './components/counter/counter.component';
+
+@NgModule({
+ declarations: [
+ AppComponent,
+ NavMenuComponent,
+ CounterComponent,
+ FetchDataComponent,
+ HomeComponent
+ ],
+ imports: [
+ CommonModule,
+ HttpModule,
+ FormsModule,
+ RouterModule.forRoot([
+ { path: '', redirectTo: 'home', pathMatch: 'full' },
+ { path: 'home', component: HomeComponent },
+ { path: 'counter', component: CounterComponent },
+ { path: 'fetch-data', component: FetchDataComponent },
+ { path: '**', redirectTo: 'home' }
+ ])
+ ]
+})
+export class AppModuleShared {
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/app/app.component.css b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/app/app.component.css
new file mode 100644
index 0000000000..63926006af
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/app/app.component.css
@@ -0,0 +1,6 @@
+@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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/app/app.component.html b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/app/app.component.html
new file mode 100644
index 0000000000..f208d1e83e
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/app/app.component.html
@@ -0,0 +1,10 @@
+
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/app/app.component.ts b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/app/app.component.ts
new file mode 100644
index 0000000000..b20a1aed2b
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/app/app.component.ts
@@ -0,0 +1,9 @@
+import { Component } from '@angular/core';
+
+@Component({
+ selector: 'app',
+ templateUrl: './app.component.html',
+ styleUrls: ['./app.component.css']
+})
+export class AppComponent {
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/counter/counter.component.html b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/counter/counter.component.html
new file mode 100644
index 0000000000..2521eda7af
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/counter/counter.component.html
@@ -0,0 +1,7 @@
+Counter
+
+This is a simple example of an Angular component.
+
+Current count: {{ currentCount }}
+
+Increment
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/counter/counter.component.spec.ts b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/counter/counter.component.spec.ts
new file mode 100644
index 0000000000..61e49bcd76
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/counter/counter.component.spec.ts
@@ -0,0 +1,29 @@
+///
+import { assert } from 'chai';
+import { CounterComponent } from './counter.component';
+import { TestBed, async, ComponentFixture } from '@angular/core/testing';
+
+let fixture: ComponentFixture;
+
+describe('Counter component', () => {
+ beforeEach(() => {
+ TestBed.configureTestingModule({ declarations: [CounterComponent] });
+ fixture = TestBed.createComponent(CounterComponent);
+ fixture.detectChanges();
+ });
+
+ it('should display a title', async(() => {
+ const titleText = fixture.nativeElement.querySelector('h1').textContent;
+ expect(titleText).toEqual('Counter');
+ }));
+
+ it('should start with count 0, then increments by 1 when clicked', async(() => {
+ const countElement = fixture.nativeElement.querySelector('strong');
+ expect(countElement.textContent).toEqual('0');
+
+ const incrementButton = fixture.nativeElement.querySelector('button');
+ incrementButton.click();
+ fixture.detectChanges();
+ expect(countElement.textContent).toEqual('1');
+ }));
+});
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/counter/counter.component.ts b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/counter/counter.component.ts
new file mode 100644
index 0000000000..69de17d9c3
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/counter/counter.component.ts
@@ -0,0 +1,13 @@
+import { Component } from '@angular/core';
+
+@Component({
+ selector: 'counter',
+ templateUrl: './counter.component.html'
+})
+export class CounterComponent {
+ public currentCount = 0;
+
+ public incrementCounter() {
+ this.currentCount++;
+ }
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/fetchdata/fetchdata.component.html b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/fetchdata/fetchdata.component.html
new file mode 100644
index 0000000000..8d24e7102c
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/fetchdata/fetchdata.component.html
@@ -0,0 +1,24 @@
+Weather forecast
+
+This component demonstrates fetching data from the server.
+
+Loading...
+
+
+
+
+ Date
+ Temp. (C)
+ Temp. (F)
+ Summary
+
+
+
+
+ {{ forecast.dateFormatted }}
+ {{ forecast.temperatureC }}
+ {{ forecast.temperatureF }}
+ {{ forecast.summary }}
+
+
+
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/fetchdata/fetchdata.component.ts b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/fetchdata/fetchdata.component.ts
new file mode 100644
index 0000000000..a4c06f425e
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/fetchdata/fetchdata.component.ts
@@ -0,0 +1,23 @@
+import { Component, Inject } from '@angular/core';
+import { Http } from '@angular/http';
+
+@Component({
+ selector: 'fetchdata',
+ templateUrl: './fetchdata.component.html'
+})
+export class FetchDataComponent {
+ public forecasts: WeatherForecast[];
+
+ constructor(http: Http, @Inject('BASE_URL') baseUrl: string) {
+ http.get(baseUrl + 'api/SampleData/WeatherForecasts').subscribe(result => {
+ this.forecasts = result.json() as WeatherForecast[];
+ }, error => console.error(error));
+ }
+}
+
+interface WeatherForecast {
+ dateFormatted: string;
+ temperatureC: number;
+ temperatureF: number;
+ summary: string;
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/home/home.component.html b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/home/home.component.html
new file mode 100644
index 0000000000..dcdc6f98da
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/home/home.component.html
@@ -0,0 +1,16 @@
+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.
+ Server-side prerendering . For faster initial loading and improved SEO, your Angular app is prerendered on the server. The resulting HTML is then transferred to the browser where a client-side copy of the app takes over.
+ 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 Angular app will be rebuilt and a new instance injected into the page.
+ 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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/home/home.component.ts b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/home/home.component.ts
new file mode 100644
index 0000000000..81846cee82
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/home/home.component.ts
@@ -0,0 +1,8 @@
+import { Component } from '@angular/core';
+
+@Component({
+ selector: 'home',
+ templateUrl: './home.component.html'
+})
+export class HomeComponent {
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/navmenu/navmenu.component.css b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/navmenu/navmenu.component.css
new file mode 100644
index 0000000000..e15c612895
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/navmenu/navmenu.component.css
@@ -0,0 +1,59 @@
+li .glyphicon {
+ margin-right: 10px;
+}
+
+/* Highlighting rules for nav menu items */
+li.link-active a,
+li.link-active a:hover,
+li.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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/navmenu/navmenu.component.html b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/navmenu/navmenu.component.html
new file mode 100644
index 0000000000..ef80a60464
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/navmenu/navmenu.component.html
@@ -0,0 +1,33 @@
+
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/navmenu/navmenu.component.ts b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/navmenu/navmenu.component.ts
new file mode 100644
index 0000000000..7a1691cb20
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/app/components/navmenu/navmenu.component.ts
@@ -0,0 +1,9 @@
+import { Component } from '@angular/core';
+
+@Component({
+ selector: 'nav-menu',
+ templateUrl: './navmenu.component.html',
+ styleUrls: ['./navmenu.component.css']
+})
+export class NavMenuComponent {
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/boot.browser.ts b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/boot.browser.ts
new file mode 100644
index 0000000000..5a5201b595
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/boot.browser.ts
@@ -0,0 +1,23 @@
+import 'reflect-metadata';
+import 'zone.js';
+import 'bootstrap';
+import { enableProdMode } from '@angular/core';
+import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
+import { AppModule } from './app/app.browser.module';
+
+if (module.hot) {
+ module.hot.accept();
+ module.hot.dispose(() => {
+ // Before restarting the app, we create a new root element and dispose the old one
+ const oldRootElem = document.querySelector('app');
+ const newRootElem = document.createElement('app');
+ oldRootElem!.parentNode!.insertBefore(newRootElem, oldRootElem);
+ modulePromise.then(appModule => appModule.destroy());
+ });
+} else {
+ enableProdMode();
+}
+
+// Note: @ng-tools/webpack looks for the following expression when performing production
+// builds. Don't change how this line looks, otherwise you may break tree-shaking.
+const modulePromise = platformBrowserDynamic().bootstrapModule(AppModule);
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/boot.server.ts b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/boot.server.ts
new file mode 100644
index 0000000000..419a17f50e
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/boot.server.ts
@@ -0,0 +1,38 @@
+import 'reflect-metadata';
+import 'zone.js';
+import 'rxjs/add/operator/first';
+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.server.module';
+
+enableProdMode();
+
+export default createServerRenderer(params => {
+ const providers = [
+ { provide: INITIAL_CONFIG, useValue: { document: ' ', url: params.url } },
+ { provide: APP_BASE_HREF, useValue: params.baseUrl },
+ { provide: 'BASE_URL', useValue: params.origin + params.baseUrl },
+ ];
+
+ return platformDynamicServer(providers).bootstrapModule(AppModule).then(moduleRef => {
+ const appRef: ApplicationRef = moduleRef.injector.get(ApplicationRef);
+ const state = moduleRef.injector.get(PlatformState);
+ const zone = moduleRef.injector.get(NgZone);
+
+ return new Promise((resolve, reject) => {
+ zone.onError.subscribe((errorInfo: any) => reject(errorInfo));
+ appRef.isStable.first(isStable => isStable).subscribe(() => {
+ // Because 'onStable' fires before 'onError', we have to delay slightly before
+ // completing the request in case there's an error to report
+ setImmediate(() => {
+ resolve({
+ html: state.renderToString()
+ });
+ moduleRef.destroy();
+ });
+ });
+ });
+ });
+});
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/test/boot-tests.ts b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/test/boot-tests.ts
new file mode 100644
index 0000000000..fe3591e904
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/test/boot-tests.ts
@@ -0,0 +1,33 @@
+// Load required polyfills and testing libraries
+import 'reflect-metadata';
+import 'zone.js';
+import 'zone.js/dist/long-stack-trace-zone';
+import 'zone.js/dist/proxy.js';
+import 'zone.js/dist/sync-test';
+import 'zone.js/dist/jasmine-patch';
+import 'zone.js/dist/async-test';
+import 'zone.js/dist/fake-async-test';
+import * as testing from '@angular/core/testing';
+import * as testingBrowser from '@angular/platform-browser-dynamic/testing';
+
+// There's no typing for the `__karma__` variable. Just declare it as any
+declare var __karma__: any;
+declare var require: any;
+
+// Prevent Karma from running prematurely
+__karma__.loaded = function () {};
+
+// First, initialize the Angular testing environment
+testing.getTestBed().initTestEnvironment(
+ testingBrowser.BrowserDynamicTestingModule,
+ testingBrowser.platformBrowserDynamicTesting()
+);
+
+// Then we find all the tests
+const context = require.context('../', true, /\.spec\.ts$/);
+
+// And load the modules
+context.keys().map(context);
+
+// Finally, start Karma to run the tests
+__karma__.start();
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/test/karma.conf.js b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/test/karma.conf.js
new file mode 100644
index 0000000000..c7f03d49a3
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/test/karma.conf.js
@@ -0,0 +1,26 @@
+// Karma configuration file, see link for more information
+// https://karma-runner.github.io/0.13/config/configuration-file.html
+
+module.exports = function (config) {
+ config.set({
+ basePath: '.',
+ frameworks: ['jasmine'],
+ files: [
+ '../../wwwroot/dist/vendor.js',
+ './boot-tests.ts'
+ ],
+ preprocessors: {
+ './boot-tests.ts': ['webpack']
+ },
+ reporters: ['progress'],
+ port: 9876,
+ colors: true,
+ logLevel: config.LOG_INFO,
+ autoWatch: true,
+ browsers: ['Chrome'],
+ mime: { 'application/javascript': ['ts','tsx'] },
+ singleRun: false,
+ webpack: require('../../webpack.config.js')().filter(config => config.target !== 'node'), // Test against client bundle, because tests run in a browser
+ webpackMiddleware: { stats: 'errors-only' }
+ });
+};
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/Controllers/HomeController.cs b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/Controllers/HomeController.cs
new file mode 100644
index 0000000000..49afe0ce8f
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/Controllers/HomeController.cs
@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+
+namespace AngularSpa.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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/Controllers/SampleDataController.cs b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/Controllers/SampleDataController.cs
new file mode 100644
index 0000000000..cedab19f81
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/Controllers/SampleDataController.cs
@@ -0,0 +1,44 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+
+namespace AngularSpa.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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/Program.cs b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/Program.cs
new file mode 100644
index 0000000000..73c7e9e1f5
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/Program.cs
@@ -0,0 +1,25 @@
+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 AngularSpa
+{
+ 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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/Startup.cs b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/Startup.cs
new file mode 100644
index 0000000000..d5d1b0a77b
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/Startup.cs
@@ -0,0 +1,58 @@
+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 AngularSpa
+{
+ 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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/Views/Home/Index.cshtml b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/Views/Home/Index.cshtml
new file mode 100644
index 0000000000..fc1ae58f42
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/Views/Home/Index.cshtml
@@ -0,0 +1,10 @@
+@{
+ ViewData["Title"] = "Home Page";
+}
+
+Loading...
+
+
+@section scripts {
+
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/Views/Shared/Error.cshtml b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/Views/Shared/Error.cshtml
new file mode 100644
index 0000000000..78e35d5d3c
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/Views/Shared/Error.cshtml
@@ -0,0 +1,21 @@
+@{
+ 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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/Views/Shared/_Layout.cshtml b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/Views/Shared/_Layout.cshtml
new file mode 100644
index 0000000000..70d20583be
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/Views/Shared/_Layout.cshtml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ @ViewData["Title"] - AngularSpa
+
+
+
+
+
+ @RenderBody()
+
+ @RenderSection("scripts", required: false)
+
+
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/Views/_ViewImports.cshtml b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/Views/_ViewImports.cshtml
new file mode 100644
index 0000000000..6f913d93a7
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/Views/_ViewImports.cshtml
@@ -0,0 +1,3 @@
+@using AngularSpa
+@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
+@addTagHelper *, Microsoft.AspNetCore.SpaServices
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/Views/_ViewStart.cshtml b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/Views/_ViewStart.cshtml
new file mode 100644
index 0000000000..820a2f6e02
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/Views/_ViewStart.cshtml
@@ -0,0 +1,3 @@
+@{
+ Layout = "_Layout";
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/appsettings.Development.json b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/appsettings.Development.json
new file mode 100644
index 0000000000..457e003321
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/appsettings.Development.json
@@ -0,0 +1,19 @@
+{
+ "Logging": {
+ "IncludeScopes": false,
+ "Debug": {
+ "LogLevel": {
+ "Default": "Debug",
+ "System": "Information",
+ "Microsoft": "Information"
+ }
+ },
+ "Console": {
+ "LogLevel": {
+ "Default": "Debug",
+ "System": "Information",
+ "Microsoft": "Information"
+ }
+ }
+ }
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/appsettings.json b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/appsettings.json
new file mode 100644
index 0000000000..c851e129f9
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/appsettings.json
@@ -0,0 +1,15 @@
+{
+ "Logging": {
+ "IncludeScopes": false,
+ "Debug": {
+ "LogLevel": {
+ "Default": "Warning"
+ }
+ },
+ "Console": {
+ "LogLevel": {
+ "Default": "Warning"
+ }
+ }
+ }
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/npm-shrinkwrap.json b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/npm-shrinkwrap.json
new file mode 100644
index 0000000000..951d3f3d1a
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/npm-shrinkwrap.json
@@ -0,0 +1,3730 @@
+{
+ "name": "AngularSpa",
+ "version": "0.0.0",
+ "dependencies": {
+ "@angular/animations": {
+ "version": "4.2.5",
+ "from": "@angular/animations@4.2.5",
+ "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-4.2.5.tgz"
+ },
+ "@angular/common": {
+ "version": "4.2.5",
+ "from": "@angular/common@4.2.5",
+ "resolved": "https://registry.npmjs.org/@angular/common/-/common-4.2.5.tgz"
+ },
+ "@angular/compiler": {
+ "version": "4.2.5",
+ "from": "@angular/compiler@4.2.5",
+ "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-4.2.5.tgz"
+ },
+ "@angular/compiler-cli": {
+ "version": "4.2.5",
+ "from": "@angular/compiler-cli@latest",
+ "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-4.2.5.tgz",
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "from": "minimist@>=1.2.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz"
+ }
+ }
+ },
+ "@angular/core": {
+ "version": "4.2.5",
+ "from": "@angular/core@4.2.5",
+ "resolved": "https://registry.npmjs.org/@angular/core/-/core-4.2.5.tgz"
+ },
+ "@angular/forms": {
+ "version": "4.2.5",
+ "from": "@angular/forms@4.2.5",
+ "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-4.2.5.tgz"
+ },
+ "@angular/http": {
+ "version": "4.2.5",
+ "from": "@angular/http@4.2.5",
+ "resolved": "https://registry.npmjs.org/@angular/http/-/http-4.2.5.tgz"
+ },
+ "@angular/platform-browser": {
+ "version": "4.2.5",
+ "from": "@angular/platform-browser@4.2.5",
+ "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-4.2.5.tgz"
+ },
+ "@angular/platform-browser-dynamic": {
+ "version": "4.2.5",
+ "from": "@angular/platform-browser-dynamic@4.2.5",
+ "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-4.2.5.tgz"
+ },
+ "@angular/platform-server": {
+ "version": "4.2.5",
+ "from": "@angular/platform-server@4.2.5",
+ "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-4.2.5.tgz"
+ },
+ "@angular/router": {
+ "version": "4.2.5",
+ "from": "@angular/router@4.2.5",
+ "resolved": "https://registry.npmjs.org/@angular/router/-/router-4.2.5.tgz"
+ },
+ "@angular/tsc-wrapped": {
+ "version": "4.2.5",
+ "from": "@angular/tsc-wrapped@4.2.5",
+ "resolved": "https://registry.npmjs.org/@angular/tsc-wrapped/-/tsc-wrapped-4.2.5.tgz"
+ },
+ "@ngtools/webpack": {
+ "version": "1.5.0",
+ "from": "@ngtools/webpack@latest",
+ "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-1.5.0.tgz",
+ "dependencies": {
+ "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"
+ }
+ }
+ },
+ "@types/chai": {
+ "version": "4.0.1",
+ "from": "@types/chai@4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.0.1.tgz",
+ "dev": true
+ },
+ "@types/jasmine": {
+ "version": "2.5.53",
+ "from": "@types/jasmine@2.5.53",
+ "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.5.53.tgz",
+ "dev": true
+ },
+ "@types/webpack-env": {
+ "version": "1.13.0",
+ "from": "@types/webpack-env@1.13.0",
+ "resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.13.0.tgz"
+ },
+ "accepts": {
+ "version": "1.3.3",
+ "from": "accepts@1.3.3",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz",
+ "dev": true
+ },
+ "acorn": {
+ "version": "5.1.1",
+ "from": "acorn@>=5.0.0 <6.0.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.1.tgz"
+ },
+ "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",
+ "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"
+ }
+ }
+ },
+ "after": {
+ "version": "0.8.2",
+ "from": "after@0.8.2",
+ "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.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"
+ },
+ "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"
+ },
+ "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",
+ "dependencies": {
+ "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"
+ }
+ }
+ },
+ "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"
+ },
+ "amdefine": {
+ "version": "1.0.1",
+ "from": "amdefine@>=0.0.4",
+ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz"
+ },
+ "angular2-template-loader": {
+ "version": "0.6.2",
+ "from": "angular2-template-loader@0.6.2",
+ "resolved": "https://registry.npmjs.org/angular2-template-loader/-/angular2-template-loader-0.6.2.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "anymatch": {
+ "version": "1.3.0",
+ "from": "anymatch@>=1.3.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz",
+ "dependencies": {
+ "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"
+ },
+ "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"
+ },
+ "braces": {
+ "version": "1.8.5",
+ "from": "braces@>=1.8.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz"
+ },
+ "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"
+ },
+ "extglob": {
+ "version": "0.3.2",
+ "from": "extglob@>=0.3.1 <0.4.0",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "micromatch": {
+ "version": "2.3.11",
+ "from": "micromatch@>=2.1.5 <3.0.0",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz"
+ }
+ }
+ },
+ "argparse": {
+ "version": "1.0.9",
+ "from": "argparse@>=1.0.7 <2.0.0",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz"
+ },
+ "arr-diff": {
+ "version": "4.0.0",
+ "from": "arr-diff@>=4.0.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz"
+ },
+ "arr-flatten": {
+ "version": "1.1.0",
+ "from": "arr-flatten@>=1.0.3 <2.0.0",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz"
+ },
+ "arr-union": {
+ "version": "3.1.0",
+ "from": "arr-union@>=3.1.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz"
+ },
+ "array-slice": {
+ "version": "0.2.3",
+ "from": "array-slice@>=0.2.3 <0.3.0",
+ "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "from": "array-unique@>=0.3.2 <0.4.0",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz"
+ },
+ "arraybuffer.slice": {
+ "version": "0.0.6",
+ "from": "arraybuffer.slice@0.0.6",
+ "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.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"
+ },
+ "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"
+ },
+ "aspnet-prerendering": {
+ "version": "3.0.1",
+ "from": "aspnet-prerendering@3.0.1",
+ "resolved": "https://registry.npmjs.org/aspnet-prerendering/-/aspnet-prerendering-3.0.1.tgz"
+ },
+ "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"
+ },
+ "assert": {
+ "version": "1.4.1",
+ "from": "assert@>=1.1.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz"
+ },
+ "assertion-error": {
+ "version": "1.0.2",
+ "from": "assertion-error@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.2.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"
+ },
+ "async": {
+ "version": "2.5.0",
+ "from": "async@>=2.1.2 <3.0.0",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz"
+ },
+ "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"
+ },
+ "atob": {
+ "version": "2.0.3",
+ "from": "atob@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz"
+ },
+ "autoprefixer": {
+ "version": "6.7.7",
+ "from": "autoprefixer@>=6.3.1 <7.0.0",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz"
+ },
+ "awesome-typescript-loader": {
+ "version": "3.2.1",
+ "from": "awesome-typescript-loader@3.2.1",
+ "resolved": "https://registry.npmjs.org/awesome-typescript-loader/-/awesome-typescript-loader-3.2.1.tgz",
+ "dependencies": {
+ "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"
+ }
+ }
+ },
+ "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"
+ },
+ "backo2": {
+ "version": "1.0.2",
+ "from": "backo2@1.0.2",
+ "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.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"
+ },
+ "base": {
+ "version": "0.11.1",
+ "from": "base@>=0.11.1 <0.12.0",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.1.tgz",
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"
+ },
+ "is-descriptor": {
+ "version": "0.1.5",
+ "from": "is-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.5.tgz"
+ },
+ "isobject": {
+ "version": "2.1.0",
+ "from": "isobject@>=2.1.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz"
+ },
+ "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"
+ }
+ }
+ },
+ "base64-arraybuffer": {
+ "version": "0.1.5",
+ "from": "base64-arraybuffer@0.1.5",
+ "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.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"
+ },
+ "base64id": {
+ "version": "1.0.0",
+ "from": "base64id@1.0.0",
+ "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz",
+ "dev": true
+ },
+ "better-assert": {
+ "version": "1.0.2",
+ "from": "better-assert@>=1.0.0 <1.1.0",
+ "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.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"
+ },
+ "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"
+ },
+ "blob": {
+ "version": "0.0.4",
+ "from": "blob@0.0.4",
+ "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz",
+ "dev": true
+ },
+ "bluebird": {
+ "version": "3.5.0",
+ "from": "bluebird@>=3.3.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.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"
+ },
+ "body-parser": {
+ "version": "1.17.2",
+ "from": "body-parser@>=1.16.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.17.2.tgz",
+ "dev": true,
+ "dependencies": {
+ "iconv-lite": {
+ "version": "0.4.15",
+ "from": "iconv-lite@0.4.15",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz",
+ "dev": true
+ }
+ }
+ },
+ "bootstrap": {
+ "version": "3.3.7",
+ "from": "bootstrap@3.3.7",
+ "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",
+ "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"
+ }
+ }
+ },
+ "braces": {
+ "version": "2.2.2",
+ "from": "braces@>=2.2.2 <3.0.0",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.2.2.tgz"
+ },
+ "brorand": {
+ "version": "1.1.0",
+ "from": "brorand@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "browserslist": {
+ "version": "1.7.7",
+ "from": "browserslist@>=1.7.6 <2.0.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz"
+ },
+ "buffer": {
+ "version": "4.9.1",
+ "from": "buffer@>=4.3.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "bytes": {
+ "version": "2.4.0",
+ "from": "bytes@2.4.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz",
+ "dev": true
+ },
+ "cache-base": {
+ "version": "0.8.5",
+ "from": "cache-base@>=0.8.4 <0.9.0",
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-0.8.5.tgz"
+ },
+ "callsite": {
+ "version": "1.0.0",
+ "from": "callsite@1.0.0",
+ "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.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"
+ },
+ "camelcase": {
+ "version": "1.2.1",
+ "from": "camelcase@>=1.0.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz"
+ },
+ "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"
+ },
+ "caniuse-db": {
+ "version": "1.0.30000697",
+ "from": "caniuse-db@>=1.0.30000634 <2.0.0",
+ "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000697.tgz"
+ },
+ "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",
+ "dependencies": {
+ "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"
+ }
+ }
+ },
+ "chai": {
+ "version": "4.0.2",
+ "from": "chai@4.0.2",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-4.0.2.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"
+ },
+ "check-error": {
+ "version": "1.0.2",
+ "from": "check-error@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.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"
+ },
+ "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"
+ },
+ "clap": {
+ "version": "1.2.0",
+ "from": "clap@>=1.0.9 <2.0.0",
+ "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.0.tgz"
+ },
+ "class-utils": {
+ "version": "0.3.5",
+ "from": "class-utils@>=0.3.4 <0.4.0",
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.5.tgz",
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"
+ },
+ "is-descriptor": {
+ "version": "0.1.5",
+ "from": "is-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.5.tgz"
+ },
+ "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"
+ }
+ }
+ },
+ "clean-css": {
+ "version": "4.1.5",
+ "from": "clean-css@>=4.1.0 <4.2.0",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.5.tgz"
+ },
+ "cliui": {
+ "version": "2.1.0",
+ "from": "cliui@>=2.1.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz"
+ },
+ "clone": {
+ "version": "1.0.2",
+ "from": "clone@>=1.0.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz"
+ },
+ "co": {
+ "version": "4.6.0",
+ "from": "co@>=4.6.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz"
+ },
+ "coa": {
+ "version": "1.0.3",
+ "from": "coa@>=1.0.1 <1.1.0",
+ "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.3.tgz"
+ },
+ "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"
+ },
+ "collection-visit": {
+ "version": "0.2.3",
+ "from": "collection-visit@>=0.2.1 <0.3.0",
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-0.2.3.tgz"
+ },
+ "color": {
+ "version": "0.11.4",
+ "from": "color@>=0.11.0 <0.12.0",
+ "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "colormin": {
+ "version": "1.1.2",
+ "from": "colormin@>=1.0.5 <2.0.0",
+ "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz"
+ },
+ "colors": {
+ "version": "1.1.2",
+ "from": "colors@>=1.1.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz"
+ },
+ "combine-lists": {
+ "version": "1.0.1",
+ "from": "combine-lists@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.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"
+ },
+ "component-bind": {
+ "version": "1.0.0",
+ "from": "component-bind@1.0.0",
+ "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
+ "dev": true
+ },
+ "component-emitter": {
+ "version": "1.2.1",
+ "from": "component-emitter@>=1.2.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz"
+ },
+ "component-inherit": {
+ "version": "0.0.3",
+ "from": "component-inherit@0.0.3",
+ "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.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"
+ },
+ "connect": {
+ "version": "3.6.2",
+ "from": "connect@>=3.4.1 <4.0.0",
+ "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.2.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "content-type": {
+ "version": "1.0.2",
+ "from": "content-type@>=1.0.2 <1.1.0",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz",
+ "dev": true
+ },
+ "cookie": {
+ "version": "0.3.1",
+ "from": "cookie@0.3.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
+ "dev": true
+ },
+ "copy-descriptor": {
+ "version": "0.1.1",
+ "from": "copy-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz"
+ },
+ "core-js": {
+ "version": "2.4.1",
+ "from": "core-js@>=2.2.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "css": {
+ "version": "2.2.1",
+ "from": "css@2.2.1",
+ "resolved": "https://registry.npmjs.org/css/-/css-2.2.1.tgz",
+ "dependencies": {
+ "atob": {
+ "version": "1.1.3",
+ "from": "atob@>=1.1.0 <1.2.0",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-1.1.3.tgz"
+ },
+ "source-map": {
+ "version": "0.1.43",
+ "from": "source-map@>=0.1.38 <0.2.0",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz"
+ },
+ "source-map-resolve": {
+ "version": "0.3.1",
+ "from": "source-map-resolve@>=0.3.0 <0.4.0",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.3.1.tgz"
+ },
+ "source-map-url": {
+ "version": "0.3.0",
+ "from": "source-map-url@>=0.3.0 <0.4.0",
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.3.0.tgz"
+ }
+ }
+ },
+ "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"
+ },
+ "css-loader": {
+ "version": "0.28.4",
+ "from": "css-loader@0.28.4",
+ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.4.tgz",
+ "dependencies": {
+ "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"
+ }
+ }
+ },
+ "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"
+ },
+ "cssesc": {
+ "version": "0.1.0",
+ "from": "cssesc@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz"
+ },
+ "cssnano": {
+ "version": "3.10.0",
+ "from": "cssnano@>=2.6.1 <4.0.0",
+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz"
+ },
+ "csso": {
+ "version": "2.3.2",
+ "from": "csso@>=2.3.1 <2.4.0",
+ "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz"
+ },
+ "custom-event": {
+ "version": "1.0.1",
+ "from": "custom-event@>=1.0.0 <1.1.0",
+ "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.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"
+ },
+ "debug": {
+ "version": "2.6.7",
+ "from": "debug@2.6.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz"
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "from": "decamelize@>=1.1.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz"
+ },
+ "deep-eql": {
+ "version": "2.0.2",
+ "from": "deep-eql@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-2.0.2.tgz",
+ "dev": true,
+ "dependencies": {
+ "type-detect": {
+ "version": "3.0.0",
+ "from": "type-detect@>=3.0.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-3.0.0.tgz",
+ "dev": true
+ }
+ }
+ },
+ "define-property": {
+ "version": "1.0.0",
+ "from": "define-property@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz"
+ },
+ "defined": {
+ "version": "1.0.0",
+ "from": "defined@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz"
+ },
+ "depd": {
+ "version": "1.1.0",
+ "from": "depd@>=1.1.0 <1.2.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.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"
+ },
+ "di": {
+ "version": "0.0.1",
+ "from": "di@>=0.0.1 <0.0.2",
+ "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.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"
+ },
+ "dom-serialize": {
+ "version": "2.2.1",
+ "from": "dom-serialize@>=2.2.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.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"
+ },
+ "domain-context": {
+ "version": "0.5.1",
+ "from": "domain-context@>=0.5.1 <0.6.0",
+ "resolved": "https://registry.npmjs.org/domain-context/-/domain-context-0.5.1.tgz"
+ },
+ "domain-task": {
+ "version": "3.0.3",
+ "from": "domain-task@>=3.0.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/domain-task/-/domain-task-3.0.3.tgz"
+ },
+ "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"
+ },
+ "electron-to-chromium": {
+ "version": "1.3.15",
+ "from": "electron-to-chromium@>=1.2.7 <2.0.0",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.15.tgz"
+ },
+ "elliptic": {
+ "version": "6.4.0",
+ "from": "elliptic@>=6.0.0 <7.0.0",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz"
+ },
+ "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"
+ },
+ "encodeurl": {
+ "version": "1.0.1",
+ "from": "encodeurl@>=1.0.1 <1.1.0",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz"
+ },
+ "encoding": {
+ "version": "0.1.12",
+ "from": "encoding@>=0.1.11 <0.2.0",
+ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz"
+ },
+ "engine.io": {
+ "version": "1.8.3",
+ "from": "engine.io@1.8.3",
+ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.3.tgz",
+ "dev": true,
+ "dependencies": {
+ "debug": {
+ "version": "2.3.3",
+ "from": "debug@2.3.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
+ "dev": true
+ },
+ "ms": {
+ "version": "0.7.2",
+ "from": "ms@0.7.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
+ "dev": true
+ }
+ }
+ },
+ "engine.io-client": {
+ "version": "1.8.3",
+ "from": "engine.io-client@1.8.3",
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.3.tgz",
+ "dev": true,
+ "dependencies": {
+ "debug": {
+ "version": "2.3.3",
+ "from": "debug@2.3.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
+ "dev": true
+ },
+ "ms": {
+ "version": "0.7.2",
+ "from": "ms@0.7.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
+ "dev": true
+ }
+ }
+ },
+ "engine.io-parser": {
+ "version": "1.3.2",
+ "from": "engine.io-parser@1.3.2",
+ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.2.tgz",
+ "dev": true
+ },
+ "enhanced-resolve": {
+ "version": "3.3.0",
+ "from": "enhanced-resolve@>=3.1.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.3.0.tgz",
+ "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"
+ }
+ }
+ },
+ "ent": {
+ "version": "2.2.0",
+ "from": "ent@>=2.2.0 <2.3.0",
+ "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "es6-shim": {
+ "version": "0.35.3",
+ "from": "es6-shim@0.35.3",
+ "resolved": "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.3.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "esprima": {
+ "version": "2.7.3",
+ "from": "esprima@>=2.6.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz"
+ },
+ "esutils": {
+ "version": "2.0.2",
+ "from": "esutils@>=2.0.2 <3.0.0",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz"
+ },
+ "event-source-polyfill": {
+ "version": "0.0.9",
+ "from": "event-source-polyfill@0.0.9",
+ "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-0.0.9.tgz"
+ },
+ "eventemitter3": {
+ "version": "1.2.0",
+ "from": "eventemitter3@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.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"
+ },
+ "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"
+ },
+ "expand-braces": {
+ "version": "0.1.2",
+ "from": "expand-braces@>=0.1.1 <0.2.0",
+ "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz",
+ "dev": true,
+ "dependencies": {
+ "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
+ },
+ "braces": {
+ "version": "0.1.5",
+ "from": "braces@>=0.1.2 <0.2.0",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz",
+ "dev": true
+ },
+ "expand-range": {
+ "version": "0.1.1",
+ "from": "expand-range@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz",
+ "dev": true
+ },
+ "is-number": {
+ "version": "0.1.1",
+ "from": "is-number@>=0.1.1 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz",
+ "dev": true
+ },
+ "repeat-string": {
+ "version": "0.2.2",
+ "from": "repeat-string@>=0.2.2 <0.3.0",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz",
+ "dev": true
+ }
+ }
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "from": "expand-brackets@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"
+ },
+ "is-descriptor": {
+ "version": "0.1.5",
+ "from": "is-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.5.tgz"
+ },
+ "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"
+ }
+ }
+ },
+ "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",
+ "dependencies": {
+ "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"
+ },
+ "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"
+ },
+ "isobject": {
+ "version": "2.1.0",
+ "from": "isobject@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz"
+ },
+ "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"
+ }
+ }
+ },
+ "expose-loader": {
+ "version": "0.7.3",
+ "from": "expose-loader@0.7.3",
+ "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.3.tgz"
+ },
+ "extend": {
+ "version": "3.0.1",
+ "from": "extend@>=3.0.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
+ "dev": true
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "from": "extend-shallow@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz"
+ },
+ "extglob": {
+ "version": "1.1.0",
+ "from": "extglob@>=1.1.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-1.1.0.tgz",
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"
+ },
+ "is-descriptor": {
+ "version": "0.1.5",
+ "from": "is-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.5.tgz"
+ },
+ "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"
+ },
+ "to-regex": {
+ "version": "2.1.0",
+ "from": "to-regex@>=2.1.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-2.1.0.tgz",
+ "dependencies": {
+ "regex-not": {
+ "version": "0.1.2",
+ "from": "regex-not@>=0.1.1 <0.2.0",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-0.1.2.tgz"
+ }
+ }
+ }
+ }
+ },
+ "extract-text-webpack-plugin": {
+ "version": "2.1.2",
+ "from": "extract-text-webpack-plugin@2.1.2",
+ "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-2.1.2.tgz",
+ "dependencies": {
+ "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"
+ }
+ }
+ },
+ "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"
+ },
+ "fastparse": {
+ "version": "1.1.1",
+ "from": "fastparse@>=1.1.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz"
+ },
+ "file-loader": {
+ "version": "0.11.2",
+ "from": "file-loader@0.11.2",
+ "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.11.2.tgz",
+ "dependencies": {
+ "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"
+ }
+ }
+ },
+ "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"
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "from": "fill-range@>=4.0.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz"
+ },
+ "finalhandler": {
+ "version": "1.0.3",
+ "from": "finalhandler@1.0.3",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.3.tgz"
+ },
+ "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"
+ },
+ "flatten": {
+ "version": "1.0.2",
+ "from": "flatten@>=1.0.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz"
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "from": "for-in@>=1.0.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz"
+ },
+ "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"
+ },
+ "fragment-cache": {
+ "version": "0.2.1",
+ "from": "fragment-cache@>=0.2.1 <0.3.0",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz"
+ },
+ "fs-access": {
+ "version": "1.0.1",
+ "from": "fs-access@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz",
+ "dev": true
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "from": "fs.realpath@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.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"
+ },
+ "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"
+ },
+ "get-func-name": {
+ "version": "2.0.0",
+ "from": "get-func-name@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
+ "dev": true
+ },
+ "get-value": {
+ "version": "2.0.6",
+ "from": "get-value@>=2.0.5 <3.0.0",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz"
+ },
+ "glob": {
+ "version": "7.1.2",
+ "from": "glob@>=7.1.1 <8.0.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "has": {
+ "version": "1.0.1",
+ "from": "has@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz"
+ },
+ "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"
+ },
+ "has-binary": {
+ "version": "0.1.7",
+ "from": "has-binary@0.1.7",
+ "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz",
+ "dev": true,
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "from": "isarray@0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "dev": true
+ }
+ }
+ },
+ "has-cors": {
+ "version": "1.1.0",
+ "from": "has-cors@1.1.0",
+ "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.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"
+ },
+ "has-value": {
+ "version": "0.3.1",
+ "from": "has-value@>=0.3.1 <0.4.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+ "dependencies": {
+ "isobject": {
+ "version": "2.1.0",
+ "from": "isobject@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz"
+ }
+ }
+ },
+ "has-values": {
+ "version": "0.1.4",
+ "from": "has-values@>=0.1.4 <0.2.0",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz"
+ },
+ "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"
+ },
+ "hash.js": {
+ "version": "1.1.3",
+ "from": "hash.js@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz"
+ },
+ "he": {
+ "version": "1.1.1",
+ "from": "he@>=1.1.0 <1.2.0",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz"
+ },
+ "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"
+ },
+ "hosted-git-info": {
+ "version": "2.5.0",
+ "from": "hosted-git-info@>=2.1.4 <3.0.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "html-loader": {
+ "version": "0.4.5",
+ "from": "html-loader@0.4.5",
+ "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-0.4.5.tgz",
+ "dependencies": {
+ "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"
+ }
+ }
+ },
+ "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"
+ },
+ "http-errors": {
+ "version": "1.6.1",
+ "from": "http-errors@>=1.6.1 <1.7.0",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz",
+ "dev": true
+ },
+ "http-proxy": {
+ "version": "1.16.2",
+ "from": "http-proxy@>=1.13.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.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"
+ },
+ "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"
+ },
+ "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",
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.1.0",
+ "from": "ansi-styles@>=3.1.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz"
+ },
+ "chalk": {
+ "version": "2.0.1",
+ "from": "chalk@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz"
+ },
+ "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"
+ },
+ "postcss": {
+ "version": "6.0.6",
+ "from": "postcss@>=6.0.1 <7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.6.tgz"
+ },
+ "supports-color": {
+ "version": "4.1.0",
+ "from": "supports-color@>=4.1.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.1.0.tgz"
+ }
+ }
+ },
+ "ieee754": {
+ "version": "1.1.8",
+ "from": "ieee754@>=1.1.4 <2.0.0",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz"
+ },
+ "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"
+ },
+ "indexof": {
+ "version": "0.0.1",
+ "from": "indexof@0.0.1",
+ "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz"
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "from": "inflight@>=1.0.4 <2.0.0",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.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"
+ },
+ "interpret": {
+ "version": "1.0.3",
+ "from": "interpret@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "from": "is-accessor-descriptor@>=0.1.6 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "dependencies": {
+ "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"
+ }
+ }
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "from": "is-data-descriptor@>=0.1.4 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "dependencies": {
+ "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"
+ }
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.0",
+ "from": "is-descriptor@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.0.tgz",
+ "dependencies": {
+ "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"
+ }
+ }
+ },
+ "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"
+ },
+ "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"
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "from": "is-extendable@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz"
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "from": "is-extglob@>=2.1.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
+ },
+ "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"
+ },
+ "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",
+ "dependencies": {
+ "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"
+ }
+ }
+ },
+ "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",
+ "dependencies": {
+ "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"
+ }
+ }
+ },
+ "is-odd": {
+ "version": "1.0.0",
+ "from": "is-odd@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-1.0.0.tgz"
+ },
+ "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"
+ },
+ "is-plain-object": {
+ "version": "2.0.3",
+ "from": "is-plain-object@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.3.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "from": "isarray@>=1.0.0 <1.1.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+ },
+ "isbinaryfile": {
+ "version": "3.0.2",
+ "from": "isbinaryfile@>=3.0.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.2.tgz",
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "from": "isexe@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "dev": true
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "from": "isobject@>=3.0.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz"
+ },
+ "isomorphic-fetch": {
+ "version": "2.2.1",
+ "from": "isomorphic-fetch@2.2.1",
+ "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz"
+ },
+ "jasmine-core": {
+ "version": "2.6.4",
+ "from": "jasmine-core@2.6.4",
+ "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.6.4.tgz",
+ "dev": true
+ },
+ "jquery": {
+ "version": "3.2.1",
+ "from": "jquery@3.2.1",
+ "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"
+ },
+ "js-tokens": {
+ "version": "3.0.2",
+ "from": "js-tokens@>=3.0.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz"
+ },
+ "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"
+ },
+ "jsesc": {
+ "version": "0.5.0",
+ "from": "jsesc@>=0.5.0 <0.6.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz"
+ },
+ "json-loader": {
+ "version": "0.5.4",
+ "from": "json-loader@0.5.4",
+ "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.4.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "json3": {
+ "version": "3.3.2",
+ "from": "json3@3.3.2",
+ "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.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"
+ },
+ "jsonify": {
+ "version": "0.0.0",
+ "from": "jsonify@>=0.0.0 <0.1.0",
+ "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz"
+ },
+ "karma": {
+ "version": "1.7.0",
+ "from": "karma@1.7.0",
+ "resolved": "https://registry.npmjs.org/karma/-/karma-1.7.0.tgz",
+ "dev": true,
+ "dependencies": {
+ "lodash": {
+ "version": "3.10.1",
+ "from": "lodash@>=3.8.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
+ "dev": true
+ }
+ }
+ },
+ "karma-chai": {
+ "version": "0.1.0",
+ "from": "karma-chai@0.1.0",
+ "resolved": "https://registry.npmjs.org/karma-chai/-/karma-chai-0.1.0.tgz",
+ "dev": true
+ },
+ "karma-chrome-launcher": {
+ "version": "2.2.0",
+ "from": "karma-chrome-launcher@2.2.0",
+ "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz",
+ "dev": true
+ },
+ "karma-cli": {
+ "version": "1.0.1",
+ "from": "karma-cli@1.0.1",
+ "resolved": "https://registry.npmjs.org/karma-cli/-/karma-cli-1.0.1.tgz",
+ "dev": true
+ },
+ "karma-jasmine": {
+ "version": "1.1.0",
+ "from": "karma-jasmine@1.1.0",
+ "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.1.0.tgz",
+ "dev": true
+ },
+ "karma-webpack": {
+ "version": "2.0.3",
+ "from": "karma-webpack@2.0.3",
+ "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-2.0.3.tgz",
+ "dev": true,
+ "dependencies": {
+ "async": {
+ "version": "0.9.2",
+ "from": "async@>=0.9.0 <0.10.0",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
+ "dev": true
+ },
+ "lodash": {
+ "version": "3.10.1",
+ "from": "lodash@>=3.8.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.1.43",
+ "from": "source-map@>=0.1.41 <0.2.0",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.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"
+ },
+ "lazy-cache": {
+ "version": "2.0.2",
+ "from": "lazy-cache@>=2.0.2 <3.0.0",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz"
+ },
+ "lcid": {
+ "version": "1.0.0",
+ "from": "lcid@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "loader-utils": {
+ "version": "0.2.17",
+ "from": "loader-utils@>=0.2.15 <0.3.0",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz"
+ },
+ "lodash": {
+ "version": "4.17.4",
+ "from": "lodash@>=4.17.4 <5.0.0",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "log4js": {
+ "version": "0.6.38",
+ "from": "log4js@>=0.6.31 <0.7.0",
+ "resolved": "https://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz",
+ "dev": true,
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "from": "isarray@0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "1.0.34",
+ "from": "readable-stream@>=1.0.2 <1.1.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "dev": true
+ },
+ "semver": {
+ "version": "4.3.6",
+ "from": "semver@>=4.3.3 <4.4.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
+ "dev": true
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "from": "string_decoder@>=0.10.0 <0.11.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.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"
+ },
+ "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"
+ },
+ "lru-cache": {
+ "version": "2.2.4",
+ "from": "lru-cache@>=2.2.0 <2.3.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.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"
+ },
+ "magic-string": {
+ "version": "0.19.1",
+ "from": "magic-string@>=0.19.0 <0.20.0",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.19.1.tgz"
+ },
+ "map-cache": {
+ "version": "0.2.2",
+ "from": "map-cache@>=0.2.2 <0.3.0",
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz"
+ },
+ "map-visit": {
+ "version": "0.1.5",
+ "from": "map-visit@>=0.1.5 <0.2.0",
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-0.1.5.tgz"
+ },
+ "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"
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "from": "media-typer@0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.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"
+ },
+ "micromatch": {
+ "version": "3.0.3",
+ "from": "micromatch@>=3.0.3 <4.0.0",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.0.3.tgz"
+ },
+ "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"
+ },
+ "mime": {
+ "version": "1.3.6",
+ "from": "mime@>=1.3.4 <2.0.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.6.tgz"
+ },
+ "mime-db": {
+ "version": "1.27.0",
+ "from": "mime-db@>=1.27.0 <1.28.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz",
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.15",
+ "from": "mime-types@>=2.1.15 <2.2.0",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.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"
+ },
+ "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"
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "from": "minimatch@>=3.0.2 <4.0.0",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "from": "minimist@0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
+ },
+ "mixin-deep": {
+ "version": "1.2.0",
+ "from": "mixin-deep@>=1.1.3 <2.0.0",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.2.0.tgz"
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "from": "mkdirp@>=0.5.1 <0.6.0",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"
+ },
+ "ms": {
+ "version": "2.0.0",
+ "from": "ms@2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
+ },
+ "nanomatch": {
+ "version": "1.2.0",
+ "from": "nanomatch@>=1.2.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.0.tgz"
+ },
+ "ncname": {
+ "version": "1.0.0",
+ "from": "ncname@>=1.0.0 <1.1.0",
+ "resolved": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz"
+ },
+ "negotiator": {
+ "version": "0.6.1",
+ "from": "negotiator@0.6.1",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.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"
+ },
+ "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",
+ "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"
+ }
+ }
+ },
+ "normalize-package-data": {
+ "version": "2.4.0",
+ "from": "normalize-package-data@>=2.3.2 <3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "null-check": {
+ "version": "1.0.0",
+ "from": "null-check@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.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"
+ },
+ "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"
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "from": "object-assign@>=4.0.1 <5.0.0",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
+ },
+ "object-component": {
+ "version": "0.0.3",
+ "from": "object-component@0.0.3",
+ "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",
+ "dev": true
+ },
+ "object-copy": {
+ "version": "0.1.0",
+ "from": "object-copy@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"
+ },
+ "is-descriptor": {
+ "version": "0.1.5",
+ "from": "is-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.5.tgz"
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "from": "kind-of@>=3.0.3 <4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz"
+ }
+ }
+ },
+ "object-visit": {
+ "version": "0.3.4",
+ "from": "object-visit@>=0.3.4 <0.4.0",
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-0.3.4.tgz",
+ "dependencies": {
+ "isobject": {
+ "version": "2.1.0",
+ "from": "isobject@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz"
+ }
+ }
+ },
+ "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"
+ },
+ "object.pick": {
+ "version": "1.2.0",
+ "from": "object.pick@>=1.2.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.2.0.tgz",
+ "dependencies": {
+ "isobject": {
+ "version": "2.1.0",
+ "from": "isobject@>=2.1.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz"
+ }
+ }
+ },
+ "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"
+ },
+ "once": {
+ "version": "1.4.0",
+ "from": "once@>=1.3.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "dev": true
+ },
+ "optimist": {
+ "version": "0.6.1",
+ "from": "optimist@>=0.6.1 <0.7.0",
+ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
+ "dev": true
+ },
+ "options": {
+ "version": "0.0.6",
+ "from": "options@>=0.0.5",
+ "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.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"
+ },
+ "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"
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "from": "os-tmpdir@>=1.0.1 <1.1.0",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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",
+ "dependencies": {
+ "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"
+ }
+ }
+ },
+ "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"
+ },
+ "parse5": {
+ "version": "3.0.2",
+ "from": "parse5@>=3.0.1 <4.0.0",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.2.tgz",
+ "dependencies": {
+ "@types/node": {
+ "version": "6.0.79",
+ "from": "@types/node@>=6.0.46 <7.0.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.79.tgz"
+ }
+ }
+ },
+ "parsejson": {
+ "version": "0.0.3",
+ "from": "parsejson@0.0.3",
+ "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz",
+ "dev": true
+ },
+ "parseqs": {
+ "version": "0.0.5",
+ "from": "parseqs@0.0.5",
+ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
+ "dev": true
+ },
+ "parseuri": {
+ "version": "0.0.5",
+ "from": "parseuri@0.0.5",
+ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.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"
+ },
+ "pascalcase": {
+ "version": "0.1.1",
+ "from": "pascalcase@>=0.1.1 <0.2.0",
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "path-parse": {
+ "version": "1.0.5",
+ "from": "path-parse@>=1.0.5 <2.0.0",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.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"
+ },
+ "pathval": {
+ "version": "1.1.0",
+ "from": "pathval@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-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"
+ },
+ "pify": {
+ "version": "2.3.0",
+ "from": "pify@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "from": "pinkie@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz"
+ },
+ "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"
+ },
+ "posix-character-classes": {
+ "version": "0.1.1",
+ "from": "posix-character-classes@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz"
+ },
+ "postcss": {
+ "version": "5.2.17",
+ "from": "postcss@>=5.0.6 <6.0.0",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
+ "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"
+ }
+ }
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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",
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.1.0",
+ "from": "ansi-styles@>=3.1.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz"
+ },
+ "chalk": {
+ "version": "2.0.1",
+ "from": "chalk@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz"
+ },
+ "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"
+ },
+ "postcss": {
+ "version": "6.0.6",
+ "from": "postcss@>=6.0.1 <7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.6.tgz"
+ },
+ "supports-color": {
+ "version": "4.1.0",
+ "from": "supports-color@>=4.1.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.1.0.tgz"
+ }
+ }
+ },
+ "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",
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.1.0",
+ "from": "ansi-styles@>=3.1.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz"
+ },
+ "chalk": {
+ "version": "2.0.1",
+ "from": "chalk@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz"
+ },
+ "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"
+ },
+ "postcss": {
+ "version": "6.0.6",
+ "from": "postcss@>=6.0.1 <7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.6.tgz"
+ },
+ "supports-color": {
+ "version": "4.1.0",
+ "from": "supports-color@>=4.1.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.1.0.tgz"
+ }
+ }
+ },
+ "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",
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.1.0",
+ "from": "ansi-styles@>=3.1.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz"
+ },
+ "chalk": {
+ "version": "2.0.1",
+ "from": "chalk@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz"
+ },
+ "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"
+ },
+ "postcss": {
+ "version": "6.0.6",
+ "from": "postcss@>=6.0.1 <7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.6.tgz"
+ },
+ "supports-color": {
+ "version": "4.1.0",
+ "from": "supports-color@>=4.1.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.1.0.tgz"
+ }
+ }
+ },
+ "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",
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.1.0",
+ "from": "ansi-styles@>=3.1.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz"
+ },
+ "chalk": {
+ "version": "2.0.1",
+ "from": "chalk@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz"
+ },
+ "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"
+ },
+ "postcss": {
+ "version": "6.0.6",
+ "from": "postcss@>=6.0.1 <7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.6.tgz"
+ },
+ "supports-color": {
+ "version": "4.1.0",
+ "from": "supports-color@>=4.1.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.1.0.tgz"
+ }
+ }
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "preboot": {
+ "version": "4.5.2",
+ "from": "preboot@4.5.2",
+ "resolved": "https://registry.npmjs.org/preboot/-/preboot-4.5.2.tgz"
+ },
+ "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"
+ },
+ "preserve": {
+ "version": "0.2.0",
+ "from": "preserve@>=0.2.0 <0.3.0",
+ "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz"
+ },
+ "private": {
+ "version": "0.1.7",
+ "from": "private@>=0.1.5 <0.2.0",
+ "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz"
+ },
+ "process": {
+ "version": "0.11.10",
+ "from": "process@>=0.11.0 <0.12.0",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz"
+ },
+ "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"
+ },
+ "prr": {
+ "version": "0.0.0",
+ "from": "prr@>=0.0.0 <0.1.0",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz"
+ },
+ "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"
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "from": "punycode@>=1.2.4 <2.0.0",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz"
+ },
+ "q": {
+ "version": "1.5.0",
+ "from": "q@>=1.1.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz"
+ },
+ "qjobs": {
+ "version": "1.1.5",
+ "from": "qjobs@>=1.1.4 <2.0.0",
+ "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.1.5.tgz",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.4.0",
+ "from": "qs@6.4.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.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"
+ },
+ "querystring": {
+ "version": "0.2.0",
+ "from": "querystring@0.2.0",
+ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz"
+ },
+ "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"
+ },
+ "randomatic": {
+ "version": "1.1.7",
+ "from": "randomatic@>=1.1.3 <2.0.0",
+ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz"
+ },
+ "randombytes": {
+ "version": "2.0.5",
+ "from": "randombytes@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz"
+ },
+ "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"
+ },
+ "raw-body": {
+ "version": "2.2.0",
+ "from": "raw-body@>=2.2.0 <2.3.0",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.2.0.tgz",
+ "dev": true,
+ "dependencies": {
+ "iconv-lite": {
+ "version": "0.4.15",
+ "from": "iconv-lite@0.4.15",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz",
+ "dev": true
+ }
+ }
+ },
+ "raw-loader": {
+ "version": "0.5.1",
+ "from": "raw-loader@0.5.1",
+ "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "readable-stream": {
+ "version": "2.3.3",
+ "from": "readable-stream@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz"
+ },
+ "readdirp": {
+ "version": "2.1.0",
+ "from": "readdirp@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz"
+ },
+ "recast": {
+ "version": "0.11.23",
+ "from": "recast@>=0.11.12 <0.12.0",
+ "resolved": "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz",
+ "dependencies": {
+ "esprima": {
+ "version": "3.1.3",
+ "from": "esprima@>=3.1.0 <3.2.0",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz"
+ }
+ }
+ },
+ "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"
+ },
+ "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"
+ },
+ "reflect-metadata": {
+ "version": "0.1.10",
+ "from": "reflect-metadata@0.1.10",
+ "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.10.tgz"
+ },
+ "regenerate": {
+ "version": "1.3.2",
+ "from": "regenerate@>=1.2.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz"
+ },
+ "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"
+ },
+ "regex-not": {
+ "version": "1.0.0",
+ "from": "regex-not@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.0.tgz"
+ },
+ "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"
+ },
+ "regjsgen": {
+ "version": "0.2.0",
+ "from": "regjsgen@>=0.2.0 <0.3.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz"
+ },
+ "regjsparser": {
+ "version": "0.1.5",
+ "from": "regjsparser@>=0.1.4 <0.2.0",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz"
+ },
+ "relateurl": {
+ "version": "0.2.7",
+ "from": "relateurl@>=0.2.0 <0.3.0",
+ "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "from": "repeat-string@>=1.6.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "requires-port": {
+ "version": "1.0.0",
+ "from": "requires-port@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
+ "dev": true
+ },
+ "resolve": {
+ "version": "1.3.3",
+ "from": "resolve@>=1.1.6 <2.0.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz",
+ "dev": true
+ },
+ "resolve-url": {
+ "version": "0.2.1",
+ "from": "resolve-url@>=0.2.1 <0.3.0",
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz"
+ },
+ "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"
+ },
+ "rimraf": {
+ "version": "2.6.1",
+ "from": "rimraf@>=2.6.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.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"
+ },
+ "rxjs": {
+ "version": "5.4.2",
+ "from": "rxjs@5.4.2",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.4.2.tgz"
+ },
+ "safe-buffer": {
+ "version": "5.1.1",
+ "from": "safe-buffer@>=5.1.1 <5.2.0",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"
+ },
+ "sax": {
+ "version": "1.2.4",
+ "from": "sax@>=1.2.1 <1.3.0",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "set-getter": {
+ "version": "0.1.0",
+ "from": "set-getter@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz"
+ },
+ "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"
+ },
+ "set-value": {
+ "version": "0.4.3",
+ "from": "set-value@>=0.4.2 <0.5.0",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz"
+ },
+ "setimmediate": {
+ "version": "1.0.5",
+ "from": "setimmediate@>=1.0.4 <2.0.0",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz"
+ },
+ "setprototypeof": {
+ "version": "1.0.3",
+ "from": "setprototypeof@1.0.3",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.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"
+ },
+ "snapdragon": {
+ "version": "0.8.1",
+ "from": "snapdragon@>=0.8.1 <0.9.0",
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.1.tgz",
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"
+ },
+ "is-descriptor": {
+ "version": "0.1.5",
+ "from": "is-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.5.tgz"
+ },
+ "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"
+ }
+ }
+ },
+ "snapdragon-node": {
+ "version": "2.1.1",
+ "from": "snapdragon-node@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz"
+ },
+ "snapdragon-util": {
+ "version": "3.0.1",
+ "from": "snapdragon-util@>=3.0.1 <4.0.0",
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "from": "kind-of@>=3.2.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz"
+ }
+ }
+ },
+ "socket.io": {
+ "version": "1.7.3",
+ "from": "socket.io@1.7.3",
+ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.7.3.tgz",
+ "dev": true,
+ "dependencies": {
+ "debug": {
+ "version": "2.3.3",
+ "from": "debug@2.3.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
+ "dev": true
+ },
+ "ms": {
+ "version": "0.7.2",
+ "from": "ms@0.7.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
+ "dev": true
+ },
+ "object-assign": {
+ "version": "4.1.0",
+ "from": "object-assign@4.1.0",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
+ "dev": true
+ }
+ }
+ },
+ "socket.io-adapter": {
+ "version": "0.5.0",
+ "from": "socket.io-adapter@0.5.0",
+ "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz",
+ "dev": true,
+ "dependencies": {
+ "debug": {
+ "version": "2.3.3",
+ "from": "debug@2.3.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
+ "dev": true
+ },
+ "ms": {
+ "version": "0.7.2",
+ "from": "ms@0.7.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
+ "dev": true
+ }
+ }
+ },
+ "socket.io-client": {
+ "version": "1.7.3",
+ "from": "socket.io-client@1.7.3",
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.7.3.tgz",
+ "dev": true,
+ "dependencies": {
+ "debug": {
+ "version": "2.3.3",
+ "from": "debug@2.3.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
+ "dev": true
+ },
+ "ms": {
+ "version": "0.7.2",
+ "from": "ms@0.7.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
+ "dev": true
+ }
+ }
+ },
+ "socket.io-parser": {
+ "version": "2.3.1",
+ "from": "socket.io-parser@2.3.1",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz",
+ "dev": true,
+ "dependencies": {
+ "component-emitter": {
+ "version": "1.1.2",
+ "from": "component-emitter@1.1.2",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz",
+ "dev": true
+ },
+ "debug": {
+ "version": "2.2.0",
+ "from": "debug@2.2.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
+ "dev": true
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "from": "isarray@0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "dev": true
+ },
+ "ms": {
+ "version": "0.7.1",
+ "from": "ms@0.7.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "source-map-resolve": {
+ "version": "0.5.0",
+ "from": "source-map-resolve@>=0.5.0 <0.6.0",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.0.tgz"
+ },
+ "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"
+ },
+ "source-map-url": {
+ "version": "0.4.0",
+ "from": "source-map-url@>=0.4.0 <0.5.0",
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "split-string": {
+ "version": "2.1.1",
+ "from": "split-string@>=2.1.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-2.1.1.tgz"
+ },
+ "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"
+ },
+ "static-extend": {
+ "version": "0.1.2",
+ "from": "static-extend@>=0.1.1 <0.2.0",
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"
+ },
+ "is-descriptor": {
+ "version": "0.1.5",
+ "from": "is-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.5.tgz"
+ },
+ "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"
+ }
+ }
+ },
+ "statuses": {
+ "version": "1.3.1",
+ "from": "statuses@>=1.3.1 <1.4.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "string_decoder": {
+ "version": "1.0.3",
+ "from": "string_decoder@>=1.0.3 <1.1.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "style-loader": {
+ "version": "0.18.2",
+ "from": "style-loader@0.18.2",
+ "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.18.2.tgz",
+ "dependencies": {
+ "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"
+ }
+ }
+ },
+ "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"
+ },
+ "svgo": {
+ "version": "0.7.2",
+ "from": "svgo@>=0.7.0 <0.8.0",
+ "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz"
+ },
+ "symbol-observable": {
+ "version": "1.0.4",
+ "from": "symbol-observable@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz"
+ },
+ "tapable": {
+ "version": "0.2.6",
+ "from": "tapable@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.6.tgz"
+ },
+ "through": {
+ "version": "2.3.8",
+ "from": "through@>=2.3.6 <2.4.0",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
+ },
+ "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"
+ },
+ "tmp": {
+ "version": "0.0.31",
+ "from": "tmp@0.0.31",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz",
+ "dev": true
+ },
+ "to-array": {
+ "version": "0.1.4",
+ "from": "to-array@0.1.4",
+ "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.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"
+ },
+ "to-object-path": {
+ "version": "0.3.0",
+ "from": "to-object-path@>=0.3.0 <0.4.0",
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+ "dependencies": {
+ "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"
+ }
+ }
+ },
+ "to-regex": {
+ "version": "3.0.1",
+ "from": "to-regex@>=3.0.1 <4.0.0",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.1.tgz",
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"
+ },
+ "is-descriptor": {
+ "version": "0.1.5",
+ "from": "is-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.5.tgz"
+ },
+ "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"
+ }
+ }
+ },
+ "to-regex-range": {
+ "version": "2.1.1",
+ "from": "to-regex-range@>=2.1.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz"
+ },
+ "to-string-loader": {
+ "version": "1.1.5",
+ "from": "to-string-loader@1.1.5",
+ "resolved": "https://registry.npmjs.org/to-string-loader/-/to-string-loader-1.1.5.tgz"
+ },
+ "tsickle": {
+ "version": "0.21.6",
+ "from": "tsickle@>=0.21.0 <0.22.0",
+ "resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.21.6.tgz",
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "from": "minimist@^1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz"
+ }
+ }
+ },
+ "tslib": {
+ "version": "1.7.1",
+ "from": "tslib@>=1.7.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.7.1.tgz"
+ },
+ "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"
+ },
+ "type-detect": {
+ "version": "4.0.3",
+ "from": "type-detect@>=4.0.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.3.tgz",
+ "dev": true
+ },
+ "type-is": {
+ "version": "1.6.15",
+ "from": "type-is@>=1.6.15 <1.7.0",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz",
+ "dev": true
+ },
+ "typescript": {
+ "version": "2.4.1",
+ "from": "typescript@2.4.1",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.4.1.tgz"
+ },
+ "uglify-js": {
+ "version": "3.0.23",
+ "from": "uglify-js@>=3.0.0 <3.1.0",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.0.23.tgz"
+ },
+ "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",
+ "optional": true
+ },
+ "ultron": {
+ "version": "1.0.2",
+ "from": "ultron@>=1.0.0 <1.1.0",
+ "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz",
+ "dev": true
+ },
+ "union-value": {
+ "version": "0.2.4",
+ "from": "union-value@>=0.2.3 <0.3.0",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-0.2.4.tgz"
+ },
+ "uniq": {
+ "version": "1.0.1",
+ "from": "uniq@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz"
+ },
+ "uniqid": {
+ "version": "4.1.1",
+ "from": "uniqid@>=4.0.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz"
+ },
+ "uniqs": {
+ "version": "2.0.0",
+ "from": "uniqs@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz"
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "from": "unpipe@>=1.0.0 <1.1.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
+ },
+ "unset-value": {
+ "version": "0.1.2",
+ "from": "unset-value@>=0.1.1 <0.2.0",
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-0.1.2.tgz"
+ },
+ "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"
+ },
+ "urix": {
+ "version": "0.1.0",
+ "from": "urix@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz"
+ },
+ "url": {
+ "version": "0.11.0",
+ "from": "url@>=0.11.0 <0.12.0",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
+ "dependencies": {
+ "punycode": {
+ "version": "1.3.2",
+ "from": "punycode@1.3.2",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz"
+ }
+ }
+ },
+ "url-loader": {
+ "version": "0.5.9",
+ "from": "url-loader@0.5.9",
+ "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.5.9.tgz",
+ "dependencies": {
+ "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"
+ }
+ }
+ },
+ "use": {
+ "version": "2.0.2",
+ "from": "use@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/use/-/use-2.0.2.tgz",
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"
+ },
+ "is-descriptor": {
+ "version": "0.1.5",
+ "from": "is-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.5.tgz"
+ },
+ "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"
+ }
+ }
+ },
+ "useragent": {
+ "version": "2.2.0",
+ "from": "useragent@>=2.1.12 <3.0.0",
+ "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.2.0.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",
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.1",
+ "from": "inherits@2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
+ }
+ }
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "vendors": {
+ "version": "1.0.1",
+ "from": "vendors@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz"
+ },
+ "vlq": {
+ "version": "0.2.2",
+ "from": "vlq@>=0.2.1 <0.3.0",
+ "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.2.tgz"
+ },
+ "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"
+ },
+ "void-elements": {
+ "version": "2.0.1",
+ "from": "void-elements@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.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"
+ },
+ "webpack": {
+ "version": "2.5.1",
+ "from": "webpack@2.5.1",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-2.5.1.tgz",
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "uglify-js": {
+ "version": "2.8.29",
+ "from": "uglify-js@>=2.8.5 <3.0.0",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
+ "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"
+ }
+ }
+ },
+ "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"
+ }
+ }
+ },
+ "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",
+ "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"
+ }
+ }
+ },
+ "webpack-hot-middleware": {
+ "version": "2.18.2",
+ "from": "webpack-hot-middleware@2.18.2",
+ "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.18.2.tgz"
+ },
+ "webpack-merge": {
+ "version": "4.1.0",
+ "from": "webpack-merge@4.1.0",
+ "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.0.tgz"
+ },
+ "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"
+ },
+ "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",
+ "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"
+ }
+ }
+ },
+ "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"
+ },
+ "which": {
+ "version": "1.2.14",
+ "from": "which@>=1.2.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.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"
+ },
+ "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"
+ },
+ "wordwrap": {
+ "version": "0.0.2",
+ "from": "wordwrap@0.0.2",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz"
+ },
+ "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"
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "from": "wrappy@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "dev": true
+ },
+ "ws": {
+ "version": "1.1.2",
+ "from": "ws@1.1.2",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.2.tgz",
+ "dev": true
+ },
+ "wtf-8": {
+ "version": "1.0.0",
+ "from": "wtf-8@1.0.0",
+ "resolved": "https://registry.npmjs.org/wtf-8/-/wtf-8-1.0.0.tgz",
+ "dev": true
+ },
+ "xhr2": {
+ "version": "0.1.4",
+ "from": "xhr2@>=0.1.4 <0.2.0",
+ "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.1.4.tgz"
+ },
+ "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"
+ },
+ "xmlhttprequest-ssl": {
+ "version": "1.5.3",
+ "from": "xmlhttprequest-ssl@1.5.3",
+ "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.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"
+ },
+ "y18n": {
+ "version": "3.2.1",
+ "from": "y18n@>=3.2.1 <4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz"
+ },
+ "yargs": {
+ "version": "6.6.0",
+ "from": "yargs@>=6.0.0 <7.0.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz",
+ "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"
+ },
+ "cliui": {
+ "version": "3.2.0",
+ "from": "cliui@>=3.2.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz"
+ }
+ }
+ },
+ "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",
+ "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"
+ }
+ }
+ },
+ "yeast": {
+ "version": "0.1.2",
+ "from": "yeast@0.1.2",
+ "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz",
+ "dev": true
+ },
+ "zone.js": {
+ "version": "0.8.12",
+ "from": "zone.js@0.8.12",
+ "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.12.tgz"
+ }
+ }
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/package.json b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/package.json
new file mode 100644
index 0000000000..dc456f2f0d
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/package.json
@@ -0,0 +1,62 @@
+{
+ "name": "AngularSpa",
+ "private": true,
+ "version": "0.0.0",
+ "scripts": {
+ "test": "karma start ClientApp/test/karma.conf.js"
+ },
+ "devDependencies": {
+ "@angular/animations": "4.2.5",
+ "@angular/common": "4.2.5",
+ "@angular/compiler": "4.2.5",
+ "@angular/compiler-cli": "4.2.5",
+ "@angular/core": "4.2.5",
+ "@angular/forms": "4.2.5",
+ "@angular/http": "4.2.5",
+ "@angular/platform-browser": "4.2.5",
+ "@angular/platform-browser-dynamic": "4.2.5",
+ "@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",
+ "aspnet-prerendering": "^3.0.1",
+ "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",
+ "event-source-polyfill": "0.0.9",
+ "expose-loader": "0.7.3",
+ "extract-text-webpack-plugin": "2.1.2",
+ "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",
+ "rxjs": "5.4.2",
+ "style-loader": "0.18.2",
+ "to-string-loader": "1.1.5",
+ "typescript": "2.4.1",
+ "url-loader": "0.5.9",
+ "webpack": "2.5.1",
+ "webpack-hot-middleware": "2.18.2",
+ "webpack-merge": "4.1.0",
+ "zone.js": "0.8.12"
+ }
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/tsconfig.json b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/tsconfig.json
new file mode 100644
index 0000000000..4a6a371634
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/tsconfig.json
@@ -0,0 +1,17 @@
+{
+ "compilerOptions": {
+ "module": "es2015",
+ "moduleResolution": "node",
+ "target": "es5",
+ "sourceMap": true,
+ "experimentalDecorators": true,
+ "emitDecoratorMetadata": true,
+ "skipDefaultLibCheck": true,
+ "skipLibCheck": true, // Workaround for https://github.com/angular/angular/issues/17863. Remove this if you upgrade to a fixed version of Angular.
+ "strict": true,
+ "lib": [ "es6", "dom" ],
+ "types": [ "webpack-env" ]
+ },
+ "exclude": [ "bin", "node_modules" ],
+ "atom": { "rewriteTsconfig": false }
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/webpack.config.js b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/webpack.config.js
new file mode 100644
index 0000000000..5ec3222ee9
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/webpack.config.js
@@ -0,0 +1,84 @@
+const path = require('path');
+const webpack = require('webpack');
+const merge = require('webpack-merge');
+const AotPlugin = require('@ngtools/webpack').AotPlugin;
+const CheckerPlugin = require('awesome-typescript-loader').CheckerPlugin;
+
+module.exports = (env) => {
+ // Configuration in common to both client-side and server-side bundles
+ const isDevBuild = !(env && env.prod);
+ const sharedConfig = {
+ stats: { modules: false },
+ context: __dirname,
+ resolve: { extensions: [ '.js', '.ts' ] },
+ output: {
+ filename: '[name].js',
+ publicPath: 'dist/' // Webpack dev middleware, if enabled, handles requests for this URL prefix
+ },
+ module: {
+ rules: [
+ { 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' }
+ ]
+ },
+ plugins: [new CheckerPlugin()]
+ };
+
+ // Configuration for client-side bundle suitable for running in browsers
+ const clientBundleOutputDir = './wwwroot/dist';
+ const clientBundleConfig = merge(sharedConfig, {
+ entry: { 'main-client': './ClientApp/boot.browser.ts' },
+ output: { path: path.join(__dirname, clientBundleOutputDir) },
+ plugins: [
+ 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(clientBundleOutputDir, '[resourcePath]') // Point sourcemap entries to the original file locations on disk
+ })
+ ] : [
+ // Plugins that apply in production builds only
+ new webpack.optimize.UglifyJsPlugin(),
+ new AotPlugin({
+ tsConfigPath: './tsconfig.json',
+ entryModule: path.join(__dirname, 'ClientApp/app/app.browser.module#AppModule'),
+ exclude: ['./**/*.server.ts']
+ })
+ ])
+ });
+
+ // Configuration for server-side (prerendering) bundle suitable for running in Node
+ const serverBundleConfig = merge(sharedConfig, {
+ resolve: { mainFields: ['main'] },
+ entry: { 'main-server': './ClientApp/boot.server.ts' },
+ plugins: [
+ new webpack.DllReferencePlugin({
+ context: __dirname,
+ manifest: require('./ClientApp/dist/vendor-manifest.json'),
+ sourceType: 'commonjs2',
+ name: './vendor'
+ })
+ ].concat(isDevBuild ? [] : [
+ // Plugins that apply in production builds only
+ new AotPlugin({
+ tsConfigPath: './tsconfig.json',
+ entryModule: path.join(__dirname, 'ClientApp/app/app.server.module#AppModule'),
+ exclude: ['./**/*.browser.ts']
+ })
+ ]),
+ output: {
+ libraryTarget: 'commonjs',
+ path: path.join(__dirname, './ClientApp/dist')
+ },
+ target: 'node',
+ devtool: 'inline-source-map'
+ });
+
+ return [clientBundleConfig, serverBundleConfig];
+};
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/webpack.config.vendor.js b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/webpack.config.vendor.js
new file mode 100644
index 0000000000..36e438648b
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/webpack.config.vendor.js
@@ -0,0 +1,94 @@
+const path = require('path');
+const webpack = require('webpack');
+const ExtractTextPlugin = require('extract-text-webpack-plugin');
+const merge = require('webpack-merge');
+const treeShakableModules = [
+ '@angular/animations',
+ '@angular/common',
+ '@angular/compiler',
+ '@angular/core',
+ '@angular/forms',
+ '@angular/http',
+ '@angular/platform-browser',
+ '@angular/platform-browser-dynamic',
+ '@angular/router',
+ 'zone.js',
+];
+const nonTreeShakableModules = [
+ 'bootstrap',
+ 'bootstrap/dist/css/bootstrap.css',
+ 'es6-promise',
+ 'es6-shim',
+ 'event-source-polyfill',
+ 'jquery',
+];
+const allModules = treeShakableModules.concat(nonTreeShakableModules);
+
+module.exports = (env) => {
+ const extractCSS = new ExtractTextPlugin('vendor.css');
+ const isDevBuild = !(env && env.prod);
+ const sharedConfig = {
+ stats: { modules: false },
+ resolve: { extensions: [ '.js' ] },
+ module: {
+ rules: [
+ { test: /\.(png|woff|woff2|eot|ttf|svg)(\?|$)/, use: 'url-loader?limit=100000' }
+ ]
+ },
+ output: {
+ publicPath: 'dist/',
+ filename: '[name].js',
+ library: '[name]_[hash]'
+ },
+ plugins: [
+ new webpack.ProvidePlugin({ $: 'jquery', jQuery: 'jquery' }), // Maps these identifiers to the jQuery package (because Bootstrap expects it to be a global variable)
+ new webpack.ContextReplacementPlugin(/\@angular\b.*\b(bundles|linker)/, path.join(__dirname, './ClientApp')), // Workaround for https://github.com/angular/angular/issues/11580
+ new webpack.ContextReplacementPlugin(/angular(\\|\/)core(\\|\/)@angular/, path.join(__dirname, './ClientApp')), // Workaround for https://github.com/angular/angular/issues/14898
+ new webpack.IgnorePlugin(/^vertx$/) // Workaround for https://github.com/stefanpenner/es6-promise/issues/100
+ ]
+ };
+
+ const clientBundleConfig = merge(sharedConfig, {
+ entry: {
+ // To keep development builds fast, include all vendor dependencies in the vendor bundle.
+ // But for production builds, leave the tree-shakable ones out so the AOT compiler can produce a smaller bundle.
+ vendor: isDevBuild ? allModules : nonTreeShakableModules
+ },
+ output: { path: path.join(__dirname, 'wwwroot', 'dist') },
+ module: {
+ rules: [
+ { test: /\.css(\?|$)/, use: extractCSS.extract({ use: isDevBuild ? 'css-loader' : 'css-loader?minimize' }) }
+ ]
+ },
+ plugins: [
+ extractCSS,
+ new webpack.DllPlugin({
+ path: path.join(__dirname, 'wwwroot', 'dist', '[name]-manifest.json'),
+ name: '[name]_[hash]'
+ })
+ ].concat(isDevBuild ? [] : [
+ new webpack.optimize.UglifyJsPlugin()
+ ])
+ });
+
+ const serverBundleConfig = merge(sharedConfig, {
+ target: 'node',
+ resolve: { mainFields: ['main'] },
+ entry: { vendor: allModules.concat(['aspnet-prerendering']) },
+ output: {
+ path: path.join(__dirname, 'ClientApp', 'dist'),
+ libraryTarget: 'commonjs2',
+ },
+ module: {
+ rules: [ { test: /\.css(\?|$)/, use: ['to-string-loader', isDevBuild ? 'css-loader' : 'css-loader?minimize' ] } ]
+ },
+ plugins: [
+ new webpack.DllPlugin({
+ path: path.join(__dirname, 'ClientApp', 'dist', '[name]-manifest.json'),
+ name: '[name]_[hash]'
+ })
+ ]
+ });
+
+ return [clientBundleConfig, serverBundleConfig];
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/wwwroot/favicon.ico b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/wwwroot/favicon.ico
new file mode 100644
index 0000000000..a3a799985c
Binary files /dev/null and b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp/wwwroot/favicon.ico differ
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/.gitignore b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/.gitignore
new file mode 100644
index 0000000000..3e035eeebf
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/.gitignore
@@ -0,0 +1,236 @@
+/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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/dotnetcli.host.json b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/dotnetcli.host.json
new file mode 100644
index 0000000000..c15c6681aa
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/.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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/icon.png b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/icon.png
new file mode 100644
index 0000000000..dd6fe66c25
Binary files /dev/null and b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/icon.png differ
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/template.json b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/template.json
new file mode 100644
index 0000000000..35efb5e670
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/.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": "ReactSpa.csproj"
+ }
+ ],
+ "shortName": "react",
+ "sourceName": "ReactSpa",
+ "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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/vs-2017.3.host.json b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/vs-2017.3.host.json
new file mode 100644
index 0000000000..f77016a399
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/.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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/boot.tsx b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/boot.tsx
new file mode 100644
index 0000000000..f1081ffb13
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/boot.tsx
@@ -0,0 +1,30 @@
+import './css/site.css';
+import 'bootstrap';
+import * as React from 'react';
+import * as ReactDOM from 'react-dom';
+import { AppContainer } from 'react-hot-loader';
+import { BrowserRouter } from 'react-router-dom';
+import * as RoutesModule from './routes';
+let routes = RoutesModule.routes;
+
+function renderApp() {
+ // This code starts up the React app when it runs in a browser. It sets up the routing
+ // configuration and injects the app into a DOM element.
+ const baseUrl = document.getElementsByTagName('base')[0].getAttribute('href')!;
+ ReactDOM.render(
+
+
+ ,
+ document.getElementById('react-app')
+ );
+}
+
+renderApp();
+
+// Allow Hot Module Replacement
+if (module.hot) {
+ module.hot.accept('./routes', () => {
+ routes = require('./routes').routes;
+ renderApp();
+ });
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/components/Counter.tsx b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/components/Counter.tsx
new file mode 100644
index 0000000000..4532857d29
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/components/Counter.tsx
@@ -0,0 +1,31 @@
+import * as React from 'react';
+import { RouteComponentProps } from 'react-router';
+
+interface CounterState {
+ currentCount: number;
+}
+
+export class Counter extends React.Component, CounterState> {
+ constructor() {
+ super();
+ this.state = { currentCount: 0 };
+ }
+
+ public render() {
+ return
+
Counter
+
+
This is a simple example of a React component.
+
+
Current count: { this.state.currentCount }
+
+
{ this.incrementCounter() } }>Increment
+
;
+ }
+
+ incrementCounter() {
+ this.setState({
+ currentCount: this.state.currentCount + 1
+ });
+ }
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/components/FetchData.tsx b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/components/FetchData.tsx
new file mode 100644
index 0000000000..ce191bd785
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/components/FetchData.tsx
@@ -0,0 +1,63 @@
+import * as React from 'react';
+import { RouteComponentProps } from 'react-router';
+import 'isomorphic-fetch';
+
+interface FetchDataExampleState {
+ forecasts: WeatherForecast[];
+ loading: boolean;
+}
+
+export class FetchData extends React.Component, FetchDataExampleState> {
+ constructor() {
+ super();
+ this.state = { forecasts: [], loading: true };
+
+ fetch('api/SampleData/WeatherForecasts')
+ .then(response => response.json() as Promise)
+ .then(data => {
+ this.setState({ forecasts: data, loading: false });
+ });
+ }
+
+ public render() {
+ let contents = this.state.loading
+ ? Loading...
+ : FetchData.renderForecastsTable(this.state.forecasts);
+
+ return
+
Weather forecast
+
This component demonstrates fetching data from the server.
+ { contents }
+
;
+ }
+
+ private static renderForecastsTable(forecasts: WeatherForecast[]) {
+ return
+
+
+ Date
+ Temp. (C)
+ Temp. (F)
+ Summary
+
+
+
+ {forecasts.map(forecast =>
+
+ { forecast.dateFormatted }
+ { forecast.temperatureC }
+ { forecast.temperatureF }
+ { forecast.summary }
+
+ )}
+
+
;
+ }
+}
+
+interface WeatherForecast {
+ dateFormatted: string;
+ temperatureC: number;
+ temperatureF: number;
+ summary: string;
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/components/Home.tsx b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/components/Home.tsx
new file mode 100644
index 0000000000..e9ce1f2e39
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/components/Home.tsx
@@ -0,0 +1,29 @@
+import * as React from 'react';
+import { RouteComponentProps } from 'react-router';
+
+export class Home extends React.Component, {}> {
+ public render() {
+ return
+
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, rebuilt React components will be injected directly into your running application, preserving its live state.
+ Efficient production builds . In production mode, development-time features are disabled, and the webpack build tool produces minified static CSS and JavaScript files.
+
+
Going further
+
+ For larger applications, or for server-side prerendering (i.e., for isomorphic or universal applications), you should consider using a Flux/Redux-like architecture.
+ You can generate an ASP.NET Core application with React and Redux using dotnet new reactredux instead of using this template.
+
+
;
+ }
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/components/Layout.tsx b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/components/Layout.tsx
new file mode 100644
index 0000000000..8c8870e2a9
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/components/Layout.tsx
@@ -0,0 +1,21 @@
+import * as React from 'react';
+import { NavMenu } from './NavMenu';
+
+export interface LayoutProps {
+ children?: React.ReactNode;
+}
+
+export class Layout extends React.Component {
+ public render() {
+ return
+
+
+
+
+
+ { this.props.children }
+
+
+
;
+ }
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/components/NavMenu.tsx b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/components/NavMenu.tsx
new file mode 100644
index 0000000000..6d25220ee9
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/components/NavMenu.tsx
@@ -0,0 +1,40 @@
+import * as React from 'react';
+import { Link, NavLink } from 'react-router-dom';
+
+export class NavMenu extends React.Component<{}, {}> {
+ public render() {
+ return
+
+
+
+ Toggle navigation
+
+
+
+
+ ReactSpa
+
+
+
+
+
+
+ Home
+
+
+
+
+ Counter
+
+
+
+
+ Fetch data
+
+
+
+
+
+
;
+ }
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/css/site.css b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/css/site.css
new file mode 100644
index 0000000000..3058af6805
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/css/site.css
@@ -0,0 +1,66 @@
+.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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/routes.tsx b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/routes.tsx
new file mode 100644
index 0000000000..22fd32e6b7
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/routes.tsx
@@ -0,0 +1,12 @@
+import * as React from 'react';
+import { Route } from 'react-router-dom';
+import { Layout } from './components/Layout';
+import { Home } from './components/Home';
+import { FetchData } from './components/FetchData';
+import { Counter } from './components/Counter';
+
+export const routes =
+
+
+
+ ;
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/Controllers/HomeController.cs b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/Controllers/HomeController.cs
new file mode 100644
index 0000000000..32f2cee1de
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/Controllers/HomeController.cs
@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+
+namespace ReactSpa.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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/Controllers/SampleDataController.cs b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/Controllers/SampleDataController.cs
new file mode 100644
index 0000000000..c0c9e37abf
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/Controllers/SampleDataController.cs
@@ -0,0 +1,44 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+
+namespace ReactSpa.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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/Program.cs b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/Program.cs
new file mode 100644
index 0000000000..719033ca64
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/Program.cs
@@ -0,0 +1,25 @@
+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 ReactSpa
+{
+ 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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ReactSpa.csproj b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ReactSpa.csproj
new file mode 100644
index 0000000000..eff4c62c83
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/ReactSpa.csproj
@@ -0,0 +1,57 @@
+
+
+
+ netcoreapp2.0
+ TargetFrameworkOverride
+ true
+ Latest
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ %(DistFiles.Identity)
+ PreserveNewest
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/Startup.cs b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/Startup.cs
new file mode 100644
index 0000000000..5920452e78
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/Startup.cs
@@ -0,0 +1,59 @@
+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 ReactSpa
+{
+ 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,
+ ReactHotModuleReplacement = 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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/Views/Home/Index.cshtml b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/Views/Home/Index.cshtml
new file mode 100644
index 0000000000..139ed8ac35
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/Views/Home/Index.cshtml
@@ -0,0 +1,9 @@
+@{
+ ViewData["Title"] = "Home Page";
+}
+
+Loading...
+
+@section scripts {
+
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/Views/Shared/Error.cshtml b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/Views/Shared/Error.cshtml
new file mode 100644
index 0000000000..78e35d5d3c
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/Views/Shared/Error.cshtml
@@ -0,0 +1,21 @@
+@{
+ 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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/Views/Shared/_Layout.cshtml b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/Views/Shared/_Layout.cshtml
new file mode 100644
index 0000000000..74472d3c59
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/Views/Shared/_Layout.cshtml
@@ -0,0 +1,20 @@
+
+
+
+
+
+ @ViewData["Title"] - ReactSpa
+
+
+
+
+
+
+
+
+ @RenderBody()
+
+
+ @RenderSection("scripts", required: false)
+
+
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/Views/_ViewImports.cshtml b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/Views/_ViewImports.cshtml
new file mode 100644
index 0000000000..d097fcbdc1
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/Views/_ViewImports.cshtml
@@ -0,0 +1,3 @@
+@using ReactSpa
+@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
+@addTagHelper *, Microsoft.AspNetCore.SpaServices
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/Views/_ViewStart.cshtml b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/Views/_ViewStart.cshtml
new file mode 100644
index 0000000000..820a2f6e02
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/Views/_ViewStart.cshtml
@@ -0,0 +1,3 @@
+@{
+ Layout = "_Layout";
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/appsettings.Development.json b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/appsettings.Development.json
new file mode 100644
index 0000000000..457e003321
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/appsettings.Development.json
@@ -0,0 +1,19 @@
+{
+ "Logging": {
+ "IncludeScopes": false,
+ "Debug": {
+ "LogLevel": {
+ "Default": "Debug",
+ "System": "Information",
+ "Microsoft": "Information"
+ }
+ },
+ "Console": {
+ "LogLevel": {
+ "Default": "Debug",
+ "System": "Information",
+ "Microsoft": "Information"
+ }
+ }
+ }
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/appsettings.json b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/appsettings.json
new file mode 100644
index 0000000000..c851e129f9
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/appsettings.json
@@ -0,0 +1,15 @@
+{
+ "Logging": {
+ "IncludeScopes": false,
+ "Debug": {
+ "LogLevel": {
+ "Default": "Warning"
+ }
+ },
+ "Console": {
+ "LogLevel": {
+ "Default": "Warning"
+ }
+ }
+ }
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/npm-shrinkwrap.json b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/npm-shrinkwrap.json
new file mode 100644
index 0000000000..cc531399c6
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/npm-shrinkwrap.json
@@ -0,0 +1,3377 @@
+{
+ "name": "ReactSpa",
+ "version": "0.0.0",
+ "dependencies": {
+ "@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/react": {
+ "version": "15.0.35",
+ "from": "@types/react@15.0.35",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-15.0.35.tgz",
+ "dev": true
+ },
+ "@types/react-dom": {
+ "version": "15.5.1",
+ "from": "@types/react-dom@15.5.1",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-15.5.1.tgz",
+ "dev": true
+ },
+ "@types/react-hot-loader": {
+ "version": "3.0.3",
+ "from": "@types/react-hot-loader@3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/react-hot-loader/-/react-hot-loader-3.0.3.tgz",
+ "dev": true
+ },
+ "@types/react-router": {
+ "version": "4.0.12",
+ "from": "@types/react-router@4.0.12",
+ "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-4.0.12.tgz",
+ "dev": true
+ },
+ "@types/react-router-dom": {
+ "version": "4.0.5",
+ "from": "@types/react-router-dom@4.0.5",
+ "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-4.0.5.tgz",
+ "dev": true
+ },
+ "@types/webpack-env": {
+ "version": "1.13.0",
+ "from": "@types/webpack-env@1.13.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": "4.11.8",
+ "from": "ajv@>=4.11.2 <5.0.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.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
+ },
+ "amdefine": {
+ "version": "1.0.1",
+ "from": "amdefine@>=0.0.4",
+ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.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
+ },
+ "arr-union": {
+ "version": "3.1.0",
+ "from": "arr-union@>=3.1.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.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
+ },
+ "asap": {
+ "version": "2.0.5",
+ "from": "asap@>=2.0.3 <2.1.0",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.5.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
+ },
+ "aspnet-webpack-react": {
+ "version": "3.0.0",
+ "from": "aspnet-webpack-react@3.0.0",
+ "resolved": "https://registry.npmjs.org/aspnet-webpack-react/-/aspnet-webpack-react-3.0.0.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
+ },
+ "atob": {
+ "version": "2.0.3",
+ "from": "atob@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.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.2.1",
+ "from": "awesome-typescript-loader@3.2.1",
+ "resolved": "https://registry.npmjs.org/awesome-typescript-loader/-/awesome-typescript-loader-3.2.1.tgz",
+ "dev": true,
+ "dependencies": {
+ "arr-diff": {
+ "version": "4.0.0",
+ "from": "arr-diff@>=4.0.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "from": "array-unique@>=0.3.2 <0.4.0",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "dev": true
+ },
+ "braces": {
+ "version": "2.2.2",
+ "from": "braces@>=2.2.2 <3.0.0",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.2.2.tgz",
+ "dev": true
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "from": "expand-brackets@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "dev": true,
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "dev": true
+ }
+ }
+ },
+ "extglob": {
+ "version": "1.1.0",
+ "from": "extglob@>=1.1.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-1.1.0.tgz",
+ "dev": true,
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "dev": true
+ },
+ "to-regex": {
+ "version": "2.1.0",
+ "from": "to-regex@>=2.1.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-2.1.0.tgz",
+ "dev": true,
+ "dependencies": {
+ "regex-not": {
+ "version": "0.1.2",
+ "from": "regex-not@>=0.1.1 <0.2.0",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-0.1.2.tgz",
+ "dev": true
+ }
+ }
+ }
+ }
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "from": "fill-range@>=4.0.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "dev": true
+ },
+ "is-descriptor": {
+ "version": "0.1.5",
+ "from": "is-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.5.tgz",
+ "dev": true,
+ "dependencies": {
+ "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
+ }
+ }
+ },
+ "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 <4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "dev": true
+ }
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "from": "isobject@>=3.0.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.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
+ },
+ "lazy-cache": {
+ "version": "2.0.2",
+ "from": "lazy-cache@^2.0.2",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "3.0.3",
+ "from": "micromatch@>=3.0.3 <4.0.0",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.0.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
+ },
+ "babel-messages": {
+ "version": "6.23.0",
+ "from": "babel-messages@>=6.23.0 <7.0.0",
+ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+ "dev": true
+ },
+ "babel-runtime": {
+ "version": "6.23.0",
+ "from": "babel-runtime@>=6.22.0 <7.0.0",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz",
+ "dev": true,
+ "dependencies": {
+ "core-js": {
+ "version": "2.4.1",
+ "from": "core-js@>=2.4.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz",
+ "dev": true
+ }
+ }
+ },
+ "babel-template": {
+ "version": "6.25.0",
+ "from": "babel-template@>=6.7.0 <7.0.0",
+ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz",
+ "dev": true
+ },
+ "babel-traverse": {
+ "version": "6.25.0",
+ "from": "babel-traverse@>=6.25.0 <7.0.0",
+ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz",
+ "dev": true
+ },
+ "babel-types": {
+ "version": "6.25.0",
+ "from": "babel-types@>=6.25.0 <7.0.0",
+ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz",
+ "dev": true
+ },
+ "babylon": {
+ "version": "6.17.4",
+ "from": "babylon@>=6.17.2 <7.0.0",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.17.4.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
+ },
+ "base": {
+ "version": "0.11.1",
+ "from": "base@>=0.11.1 <0.12.0",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.1.tgz",
+ "dev": true,
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "dev": true
+ },
+ "is-descriptor": {
+ "version": "0.1.5",
+ "from": "is-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.5.tgz",
+ "dev": true
+ },
+ "lazy-cache": {
+ "version": "2.0.2",
+ "from": "lazy-cache@^2.0.1",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.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.7",
+ "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
+ },
+ "cache-base": {
+ "version": "0.8.5",
+ "from": "cache-base@>=0.8.4 <0.9.0",
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-0.8.5.tgz",
+ "dev": true,
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "from": "isobject@^3.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "dev": true
+ },
+ "lazy-cache": {
+ "version": "2.0.2",
+ "from": "lazy-cache@^2.0.1",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.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.30000697",
+ "from": "caniuse-db@>=1.0.30000634 <2.0.0",
+ "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000697.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
+ },
+ "class-utils": {
+ "version": "0.3.5",
+ "from": "class-utils@>=0.3.4 <0.4.0",
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.5.tgz",
+ "dev": true,
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "dev": true
+ },
+ "is-descriptor": {
+ "version": "0.1.5",
+ "from": "is-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.5.tgz",
+ "dev": true
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "from": "isobject@^3.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "dev": true
+ },
+ "lazy-cache": {
+ "version": "2.0.2",
+ "from": "lazy-cache@^2.0.2",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.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
+ },
+ "collection-visit": {
+ "version": "0.2.3",
+ "from": "collection-visit@>=0.2.1 <0.3.0",
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-0.2.3.tgz",
+ "dev": true,
+ "dependencies": {
+ "lazy-cache": {
+ "version": "2.0.2",
+ "from": "lazy-cache@^2.0.1",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.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
+ },
+ "component-emitter": {
+ "version": "1.2.1",
+ "from": "component-emitter@>=1.2.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.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
+ },
+ "copy-descriptor": {
+ "version": "0.1.1",
+ "from": "copy-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+ "dev": true
+ },
+ "core-js": {
+ "version": "1.2.7",
+ "from": "core-js@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.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
+ },
+ "create-react-class": {
+ "version": "15.6.0",
+ "from": "create-react-class@>=15.6.0 <16.0.0",
+ "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.0.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.4",
+ "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
+ },
+ "define-property": {
+ "version": "1.0.0",
+ "from": "define-property@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.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
+ },
+ "dom-walk": {
+ "version": "0.1.1",
+ "from": "dom-walk@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.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.15",
+ "from": "electron-to-chromium@>=1.2.7 <2.0.0",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.15.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
+ },
+ "error-stack-parser": {
+ "version": "1.3.6",
+ "from": "error-stack-parser@>=1.3.6 <2.0.0",
+ "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-1.3.6.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.9",
+ "from": "event-source-polyfill@0.0.9",
+ "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-0.0.9.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
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "from": "extend-shallow@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.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.2",
+ "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-2.1.2.tgz",
+ "dev": true
+ },
+ "fast-deep-equal": {
+ "version": "1.0.0",
+ "from": "fast-deep-equal@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.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
+ },
+ "fbjs": {
+ "version": "0.8.12",
+ "from": "fbjs@>=0.8.9 <0.9.0",
+ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz",
+ "dev": true
+ },
+ "file-loader": {
+ "version": "0.11.2",
+ "from": "file-loader@0.11.2",
+ "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
+ },
+ "fragment-cache": {
+ "version": "0.2.1",
+ "from": "fragment-cache@>=0.2.1 <0.3.0",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.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
+ },
+ "get-value": {
+ "version": "2.0.6",
+ "from": "get-value@>=2.0.5 <3.0.0",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.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
+ },
+ "global": {
+ "version": "4.3.2",
+ "from": "global@>=4.3.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz",
+ "dev": true
+ },
+ "globals": {
+ "version": "9.18.0",
+ "from": "globals@>=9.0.0 <10.0.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.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
+ },
+ "has-value": {
+ "version": "0.3.1",
+ "from": "has-value@>=0.3.1 <0.4.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+ "dev": true
+ },
+ "has-values": {
+ "version": "0.1.4",
+ "from": "has-values@>=0.1.4 <0.2.0",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.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.5.1 <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
+ },
+ "hoist-non-react-statics": {
+ "version": "1.2.0",
+ "from": "hoist-non-react-statics@>=1.2.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.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
+ },
+ "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": {
+ "ansi-styles": {
+ "version": "3.1.0",
+ "from": "ansi-styles@>=3.1.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz",
+ "dev": true
+ },
+ "chalk": {
+ "version": "2.0.1",
+ "from": "chalk@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.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.6",
+ "from": "postcss@>=6.0.1 <7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.6.tgz",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "4.2.0",
+ "from": "supports-color@>=4.1.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.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.0 <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-accessor-descriptor": {
+ "version": "0.1.6",
+ "from": "is-accessor-descriptor@>=0.1.6 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.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-data-descriptor": {
+ "version": "0.1.4",
+ "from": "is-data-descriptor@>=0.1.4 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "dev": true
+ },
+ "is-descriptor": {
+ "version": "1.0.0",
+ "from": "is-descriptor@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.0.tgz",
+ "dev": true,
+ "dependencies": {
+ "lazy-cache": {
+ "version": "2.0.2",
+ "from": "lazy-cache@>=2.0.2 <3.0.0",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.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-odd": {
+ "version": "1.0.0",
+ "from": "is-odd@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-1.0.0.tgz",
+ "dev": true,
+ "dependencies": {
+ "is-number": {
+ "version": "3.0.0",
+ "from": "is-number@^3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.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-plain-object": {
+ "version": "2.0.3",
+ "from": "is-plain-object@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.3.tgz",
+ "dev": true,
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "from": "isobject@^3.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.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",
+ "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
+ "dev": true
+ },
+ "jquery": {
+ "version": "3.2.1",
+ "from": "jquery@3.2.1",
+ "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.2.1.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",
+ "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.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.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
+ },
+ "loose-envify": {
+ "version": "1.3.1",
+ "from": "loose-envify@>=1.1.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
+ },
+ "map-cache": {
+ "version": "0.2.2",
+ "from": "map-cache@>=0.2.2 <0.3.0",
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+ "dev": true
+ },
+ "map-visit": {
+ "version": "0.1.5",
+ "from": "map-visit@>=0.1.5 <0.2.0",
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-0.1.5.tgz",
+ "dev": true,
+ "dependencies": {
+ "lazy-cache": {
+ "version": "2.0.2",
+ "from": "lazy-cache@^2.0.1",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.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
+ },
+ "min-document": {
+ "version": "2.19.0",
+ "from": "min-document@>=2.19.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.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
+ },
+ "mixin-deep": {
+ "version": "1.2.0",
+ "from": "mixin-deep@>=1.1.3 <2.0.0",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.2.0.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
+ },
+ "nanomatch": {
+ "version": "1.2.0",
+ "from": "nanomatch@>=1.2.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.0.tgz",
+ "dev": true,
+ "dependencies": {
+ "arr-diff": {
+ "version": "4.0.0",
+ "from": "arr-diff@^4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "from": "array-unique@^0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "dev": true
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "from": "is-extglob@>=2.1.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "4.0.0",
+ "from": "kind-of@^4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.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": {
+ "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
+ },
+ "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-copy": {
+ "version": "0.1.0",
+ "from": "object-copy@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+ "dev": true,
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "dev": true
+ },
+ "is-descriptor": {
+ "version": "0.1.5",
+ "from": "is-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.5.tgz",
+ "dev": true
+ },
+ "lazy-cache": {
+ "version": "2.0.2",
+ "from": "lazy-cache@^2.0.2",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz",
+ "dev": true
+ }
+ }
+ },
+ "object-visit": {
+ "version": "0.3.4",
+ "from": "object-visit@>=0.3.4 <0.4.0",
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-0.3.4.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
+ },
+ "object.pick": {
+ "version": "1.2.0",
+ "from": "object.pick@>=1.2.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.2.0.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
+ },
+ "pascalcase": {
+ "version": "0.1.1",
+ "from": "pascalcase@>=0.1.1 <0.2.0",
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.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-to-regexp": {
+ "version": "1.7.0",
+ "from": "path-to-regexp@>=1.5.3 <2.0.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz",
+ "dev": true,
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "from": "isarray@0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.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
+ },
+ "posix-character-classes": {
+ "version": "0.1.1",
+ "from": "posix-character-classes@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.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": {
+ "ansi-styles": {
+ "version": "3.1.0",
+ "from": "ansi-styles@^3.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz",
+ "dev": true
+ },
+ "chalk": {
+ "version": "2.0.1",
+ "from": "chalk@^2.0.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.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.6",
+ "from": "postcss@>=6.0.1 <7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.6.tgz",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "4.2.0",
+ "from": "supports-color@>=4.1.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.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": {
+ "ansi-styles": {
+ "version": "3.1.0",
+ "from": "ansi-styles@^3.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz",
+ "dev": true
+ },
+ "chalk": {
+ "version": "2.0.1",
+ "from": "chalk@^2.0.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.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.6",
+ "from": "postcss@>=6.0.1 <7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.6.tgz",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "4.2.0",
+ "from": "supports-color@>=4.1.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.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": {
+ "ansi-styles": {
+ "version": "3.1.0",
+ "from": "ansi-styles@^3.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz",
+ "dev": true
+ },
+ "chalk": {
+ "version": "2.0.1",
+ "from": "chalk@^2.0.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.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.6",
+ "from": "postcss@>=6.0.1 <7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.6.tgz",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "4.2.0",
+ "from": "supports-color@>=4.1.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.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": {
+ "ansi-styles": {
+ "version": "3.1.0",
+ "from": "ansi-styles@^3.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz",
+ "dev": true
+ },
+ "chalk": {
+ "version": "2.0.1",
+ "from": "chalk@^2.0.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.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.6",
+ "from": "postcss@>=6.0.1 <7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.6.tgz",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "4.2.0",
+ "from": "supports-color@>=4.1.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.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
+ },
+ "process": {
+ "version": "0.5.2",
+ "from": "process@>=0.5.1 <0.6.0",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.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
+ },
+ "promise": {
+ "version": "7.3.1",
+ "from": "promise@>=7.1.1 <8.0.0",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
+ "dev": true
+ },
+ "prop-types": {
+ "version": "15.5.10",
+ "from": "prop-types@>=15.5.7 <16.0.0",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.10.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
+ },
+ "react": {
+ "version": "15.6.1",
+ "from": "react@15.6.1",
+ "resolved": "https://registry.npmjs.org/react/-/react-15.6.1.tgz",
+ "dev": true
+ },
+ "react-deep-force-update": {
+ "version": "2.0.1",
+ "from": "react-deep-force-update@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/react-deep-force-update/-/react-deep-force-update-2.0.1.tgz",
+ "dev": true
+ },
+ "react-dom": {
+ "version": "15.6.1",
+ "from": "react-dom@15.6.1",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.6.1.tgz",
+ "dev": true
+ },
+ "react-hot-loader": {
+ "version": "3.0.0-beta.7",
+ "from": "react-hot-loader@3.0.0-beta.7",
+ "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-3.0.0-beta.7.tgz",
+ "dev": true,
+ "dependencies": {
+ "source-map": {
+ "version": "0.4.4",
+ "from": "source-map@>=0.4.4 <0.5.0",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+ "dev": true
+ }
+ }
+ },
+ "react-proxy": {
+ "version": "3.0.0-alpha.1",
+ "from": "react-proxy@>=3.0.0-alpha.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/react-proxy/-/react-proxy-3.0.0-alpha.1.tgz",
+ "dev": true
+ },
+ "react-router": {
+ "version": "4.1.1",
+ "from": "react-router@>=4.1.1 <5.0.0",
+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-4.1.1.tgz",
+ "dev": true
+ },
+ "react-router-dom": {
+ "version": "4.1.1",
+ "from": "react-router-dom@4.1.1",
+ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-4.1.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
+ },
+ "redbox-react": {
+ "version": "1.4.2",
+ "from": "redbox-react@>=1.3.6 <2.0.0",
+ "resolved": "https://registry.npmjs.org/redbox-react/-/redbox-react-1.4.2.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
+ },
+ "regenerator-runtime": {
+ "version": "0.10.5",
+ "from": "regenerator-runtime@>=0.10.0 <0.11.0",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.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
+ },
+ "regex-not": {
+ "version": "1.0.0",
+ "from": "regex-not@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.0.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
+ },
+ "resolve-url": {
+ "version": "0.2.1",
+ "from": "resolve-url@>=0.2.1 <0.3.0",
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.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,
+ "dependencies": {
+ "ajv": {
+ "version": "5.2.1",
+ "from": "ajv@>=5.0.0 <6.0.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.1.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-getter": {
+ "version": "0.1.0",
+ "from": "set-getter@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.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
+ },
+ "set-value": {
+ "version": "0.4.3",
+ "from": "set-value@>=0.4.2 <0.5.0",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
+ "dev": true
+ },
+ "setimmediate": {
+ "version": "1.0.5",
+ "from": "setimmediate@>=1.0.5 <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
+ },
+ "snapdragon": {
+ "version": "0.8.1",
+ "from": "snapdragon@>=0.8.1 <0.9.0",
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.1.tgz",
+ "dev": true,
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "dev": true
+ },
+ "is-descriptor": {
+ "version": "0.1.5",
+ "from": "is-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.5.tgz",
+ "dev": true
+ },
+ "lazy-cache": {
+ "version": "2.0.2",
+ "from": "lazy-cache@^2.0.2",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz",
+ "dev": true
+ }
+ }
+ },
+ "snapdragon-node": {
+ "version": "2.1.1",
+ "from": "snapdragon-node@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+ "dev": true,
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "from": "isobject@^3.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "dev": true
+ }
+ }
+ },
+ "snapdragon-util": {
+ "version": "3.0.1",
+ "from": "snapdragon-util@>=3.0.1 <4.0.0",
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.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.6 <0.6.0",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
+ "dev": true
+ },
+ "source-map-resolve": {
+ "version": "0.5.0",
+ "from": "source-map-resolve@>=0.5.0 <0.6.0",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.0.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
+ },
+ "source-map-url": {
+ "version": "0.4.0",
+ "from": "source-map-url@>=0.4.0 <0.5.0",
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
+ "dev": true
+ },
+ "sourcemapped-stacktrace": {
+ "version": "1.1.6",
+ "from": "sourcemapped-stacktrace@>=1.1.6 <2.0.0",
+ "resolved": "https://registry.npmjs.org/sourcemapped-stacktrace/-/sourcemapped-stacktrace-1.1.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
+ },
+ "split-string": {
+ "version": "2.1.1",
+ "from": "split-string@>=2.1.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-2.1.1.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
+ },
+ "stackframe": {
+ "version": "0.3.1",
+ "from": "stackframe@>=0.3.1 <0.4.0",
+ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-0.3.1.tgz",
+ "dev": true
+ },
+ "static-extend": {
+ "version": "0.1.2",
+ "from": "static-extend@>=0.1.1 <0.2.0",
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+ "dev": true,
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "dev": true
+ },
+ "is-descriptor": {
+ "version": "0.1.5",
+ "from": "is-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.5.tgz",
+ "dev": true
+ },
+ "lazy-cache": {
+ "version": "2.0.2",
+ "from": "lazy-cache@^2.0.2",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.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.18.2",
+ "from": "style-loader@0.18.2",
+ "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.18.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
+ },
+ "to-fast-properties": {
+ "version": "1.0.3",
+ "from": "to-fast-properties@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
+ "dev": true
+ },
+ "to-object-path": {
+ "version": "0.3.0",
+ "from": "to-object-path@>=0.3.0 <0.4.0",
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+ "dev": true
+ },
+ "to-regex": {
+ "version": "3.0.1",
+ "from": "to-regex@>=3.0.1 <4.0.0",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.1.tgz",
+ "dev": true,
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "dev": true
+ },
+ "is-descriptor": {
+ "version": "0.1.5",
+ "from": "is-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.5.tgz",
+ "dev": true
+ },
+ "lazy-cache": {
+ "version": "2.0.2",
+ "from": "lazy-cache@^2.0.2",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz",
+ "dev": true
+ }
+ }
+ },
+ "to-regex-range": {
+ "version": "2.1.1",
+ "from": "to-regex-range@>=2.1.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "dev": true,
+ "dependencies": {
+ "is-number": {
+ "version": "3.0.0",
+ "from": "is-number@^3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.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.4.1",
+ "from": "typescript@2.4.1",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.4.1.tgz",
+ "dev": true
+ },
+ "ua-parser-js": {
+ "version": "0.7.13",
+ "from": "ua-parser-js@>=0.7.9 <0.8.0",
+ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.13.tgz",
+ "dev": true
+ },
+ "uglify-js": {
+ "version": "2.8.29",
+ "from": "uglify-js@>=2.8.5 <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
+ },
+ "union-value": {
+ "version": "0.2.4",
+ "from": "union-value@>=0.2.3 <0.3.0",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-0.2.4.tgz",
+ "dev": 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
+ },
+ "unset-value": {
+ "version": "0.1.2",
+ "from": "unset-value@>=0.1.1 <0.2.0",
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-0.1.2.tgz",
+ "dev": true,
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "from": "isobject@^3.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "dev": true
+ }
+ }
+ },
+ "urix": {
+ "version": "0.1.0",
+ "from": "urix@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.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.9",
+ "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.5.9.tgz",
+ "dev": true
+ },
+ "use": {
+ "version": "2.0.2",
+ "from": "use@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/use/-/use-2.0.2.tgz",
+ "dev": true,
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "dev": true
+ },
+ "is-descriptor": {
+ "version": "0.1.5",
+ "from": "is-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.5.tgz",
+ "dev": true
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "from": "isobject@^3.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "dev": true
+ },
+ "lazy-cache": {
+ "version": "2.0.2",
+ "from": "lazy-cache@^2.0.2",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.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.5.1",
+ "from": "webpack@2.5.1",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-2.5.1.tgz",
+ "dev": true,
+ "dependencies": {
+ "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.2",
+ "from": "webpack-hot-middleware@2.18.2",
+ "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.18.2.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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/package.json b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/package.json
new file mode 100644
index 0000000000..29cf148d5e
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/package.json
@@ -0,0 +1,34 @@
+{
+ "name": "ReactSpa",
+ "private": true,
+ "version": "0.0.0",
+ "devDependencies": {
+ "@types/history": "4.6.0",
+ "@types/react": "15.0.35",
+ "@types/react-dom": "15.5.1",
+ "@types/react-hot-loader": "3.0.3",
+ "@types/react-router": "4.0.12",
+ "@types/react-router-dom": "4.0.5",
+ "@types/webpack-env": "1.13.0",
+ "aspnet-webpack": "^2.0.1",
+ "aspnet-webpack-react": "^3.0.0",
+ "awesome-typescript-loader": "3.2.1",
+ "bootstrap": "3.3.7",
+ "css-loader": "0.28.4",
+ "event-source-polyfill": "0.0.9",
+ "extract-text-webpack-plugin": "2.1.2",
+ "file-loader": "0.11.2",
+ "isomorphic-fetch": "2.2.1",
+ "jquery": "3.2.1",
+ "json-loader": "0.5.4",
+ "react": "15.6.1",
+ "react-dom": "15.6.1",
+ "react-hot-loader": "3.0.0-beta.7",
+ "react-router-dom": "4.1.1",
+ "style-loader": "0.18.2",
+ "typescript": "2.4.1",
+ "url-loader": "0.5.9",
+ "webpack": "2.5.1",
+ "webpack-hot-middleware": "2.18.2"
+ }
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/tsconfig.json b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/tsconfig.json
new file mode 100644
index 0000000000..ed5310109c
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/tsconfig.json
@@ -0,0 +1,17 @@
+{
+ "compilerOptions": {
+ "baseUrl": ".",
+ "module": "es2015",
+ "moduleResolution": "node",
+ "target": "es5",
+ "jsx": "react",
+ "sourceMap": true,
+ "skipDefaultLibCheck": true,
+ "strict": true,
+ "types": ["webpack-env"]
+ },
+ "exclude": [
+ "bin",
+ "node_modules"
+ ]
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/webpack.config.js b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/webpack.config.js
new file mode 100644
index 0000000000..01e45ea48d
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/webpack.config.js
@@ -0,0 +1,43 @@
+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.tsx' },
+ resolve: { extensions: ['.js', '.jsx', '.ts', '.tsx'] },
+ output: {
+ path: path.join(__dirname, bundleOutputDir),
+ filename: '[name].js',
+ publicPath: 'dist/'
+ },
+ module: {
+ rules: [
+ { test: /\.tsx?$/, include: /ClientApp/, use: 'awesome-typescript-loader?silent=true' },
+ { 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')
+ ])
+ }];
+};
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/webpack.config.vendor.js b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/webpack.config.vendor.js
new file mode 100644
index 0000000000..d23ac4ffb2
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/webpack.config.vendor.js
@@ -0,0 +1,42 @@
+const path = require('path');
+const webpack = require('webpack');
+const ExtractTextPlugin = require('extract-text-webpack-plugin');
+
+module.exports = (env) => {
+ const extractCSS = new ExtractTextPlugin('vendor.css');
+ const isDevBuild = !(env && env.prod);
+ 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([ isDevBuild ? 'css-loader' : 'css-loader?minimize' ]) }
+ ]
+ },
+ entry: {
+ vendor: ['bootstrap', 'bootstrap/dist/css/bootstrap.css', 'event-source-polyfill', 'isomorphic-fetch', 'react', 'react-dom', 'react-router-dom', '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]'
+ }),
+ new webpack.DefinePlugin({
+ 'process.env.NODE_ENV': isDevBuild ? '"development"' : '"production"'
+ })
+ ].concat(isDevBuild ? [] : [
+ new webpack.optimize.UglifyJsPlugin()
+ ])
+ }];
+};
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/wwwroot/favicon.ico b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/wwwroot/favicon.ico
new file mode 100644
index 0000000000..a3a799985c
Binary files /dev/null and b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/React-CSharp/wwwroot/favicon.ico differ
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/.gitignore b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/.gitignore
new file mode 100644
index 0000000000..c8274b5fe2
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/.gitignore
@@ -0,0 +1,237 @@
+/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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/.template.config/dotnetcli.host.json b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/.template.config/dotnetcli.host.json
new file mode 100644
index 0000000000..c15c6681aa
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/.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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/.template.config/icon.png b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/.template.config/icon.png
new file mode 100644
index 0000000000..e83eb39b86
Binary files /dev/null and b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/.template.config/icon.png differ
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/.template.config/template.json b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/.template.config/template.json
new file mode 100644
index 0000000000..38418e8db8
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/.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": "ReactReduxSpa.csproj"
+ }
+ ],
+ "shortName": "reactredux",
+ "sourceName": "ReactReduxSpa",
+ "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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/.template.config/vs-2017.3.host.json b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/.template.config/vs-2017.3.host.json
new file mode 100644
index 0000000000..02f9d5218c
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/.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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/boot-client.tsx b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/boot-client.tsx
new file mode 100644
index 0000000000..cc4ce3e94d
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/boot-client.tsx
@@ -0,0 +1,43 @@
+import './css/site.css';
+import 'bootstrap';
+import * as React from 'react';
+import * as ReactDOM from 'react-dom';
+import { AppContainer } from 'react-hot-loader';
+import { Provider } from 'react-redux';
+import { ConnectedRouter } from 'react-router-redux';
+import { createBrowserHistory } from 'history';
+import configureStore from './configureStore';
+import { ApplicationState } from './store';
+import * as RoutesModule from './routes';
+let routes = RoutesModule.routes;
+
+// Create browser history to use in the Redux store
+const baseUrl = document.getElementsByTagName('base')[0].getAttribute('href')!;
+const history = createBrowserHistory({ basename: baseUrl });
+
+// Get the application-wide store instance, prepopulating with state from the server where available.
+const initialState = (window as any).initialReduxState as ApplicationState;
+const store = configureStore(history, initialState);
+
+function renderApp() {
+ // This code starts up the React app when it runs in a browser. It sets up the routing configuration
+ // and injects the app into a DOM element.
+ ReactDOM.render(
+
+
+
+
+ ,
+ document.getElementById('react-app')
+ );
+}
+
+renderApp();
+
+// Allow Hot Module Replacement
+if (module.hot) {
+ module.hot.accept('./routes', () => {
+ routes = require('./routes').routes;
+ renderApp();
+ });
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/boot-server.tsx b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/boot-server.tsx
new file mode 100644
index 0000000000..7b622c0284
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/boot-server.tsx
@@ -0,0 +1,45 @@
+import * as React from 'react';
+import { Provider } from 'react-redux';
+import { renderToString } from 'react-dom/server';
+import { StaticRouter } from 'react-router-dom';
+import { replace } from 'react-router-redux';
+import { createMemoryHistory } from 'history';
+import { createServerRenderer, RenderResult } from 'aspnet-prerendering';
+import { routes } from './routes';
+import configureStore from './configureStore';
+
+export default createServerRenderer(params => {
+ return new Promise((resolve, reject) => {
+ // Prepare Redux store with in-memory history, and dispatch a navigation event
+ // corresponding to the incoming URL
+ const basename = params.baseUrl.substring(0, params.baseUrl.length - 1); // Remove trailing slash
+ const urlAfterBasename = params.url.substring(basename.length);
+ const store = configureStore(createMemoryHistory());
+ store.dispatch(replace(urlAfterBasename));
+
+ // Prepare an instance of the application and perform an inital render that will
+ // cause any async tasks (e.g., data access) to begin
+ const routerContext: any = {};
+ const app = (
+
+
+
+ );
+ renderToString(app);
+
+ // If there's a redirection, just send this information back to the host application
+ if (routerContext.url) {
+ resolve({ redirectUrl: routerContext.url });
+ return;
+ }
+
+ // Once any async tasks are done, we can perform the final render
+ // We also send the redux store state, so the client can continue execution where the server left off
+ params.domainTasks.then(() => {
+ resolve({
+ html: renderToString(app),
+ globals: { initialReduxState: store.getState() }
+ });
+ }, reject); // Also propagate any errors back into the host application
+ });
+});
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/components/Counter.tsx b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/components/Counter.tsx
new file mode 100644
index 0000000000..da275fb0e3
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/components/Counter.tsx
@@ -0,0 +1,31 @@
+import * as React from 'react';
+import { Link, RouteComponentProps } from 'react-router-dom';
+import { connect } from 'react-redux';
+import { ApplicationState } from '../store';
+import * as CounterStore from '../store/Counter';
+import * as WeatherForecasts from '../store/WeatherForecasts';
+
+type CounterProps =
+ CounterStore.CounterState
+ & typeof CounterStore.actionCreators
+ & RouteComponentProps<{}>;
+
+class Counter extends React.Component {
+ public render() {
+ return
+
Counter
+
+
This is a simple example of a React component.
+
+
Current count: { this.props.count }
+
+
{ this.props.increment() } }>Increment
+
;
+ }
+}
+
+// Wire up the React component to the Redux store
+export default connect(
+ (state: ApplicationState) => state.counter, // Selects which state properties are merged into the component's props
+ CounterStore.actionCreators // Selects which action creators are merged into the component's props
+)(Counter) as typeof Counter;
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/components/FetchData.tsx b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/components/FetchData.tsx
new file mode 100644
index 0000000000..a2a1bdf931
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/components/FetchData.tsx
@@ -0,0 +1,73 @@
+import * as React from 'react';
+import { Link, RouteComponentProps } from 'react-router-dom';
+import { connect } from 'react-redux';
+import { ApplicationState } from '../store';
+import * as WeatherForecastsState from '../store/WeatherForecasts';
+
+// At runtime, Redux will merge together...
+type WeatherForecastProps =
+ WeatherForecastsState.WeatherForecastsState // ... state we've requested from the Redux store
+ & typeof WeatherForecastsState.actionCreators // ... plus action creators we've requested
+ & RouteComponentProps<{ startDateIndex: string }>; // ... plus incoming routing parameters
+
+class FetchData extends React.Component {
+ componentWillMount() {
+ // This method runs when the component is first added to the page
+ let startDateIndex = parseInt(this.props.match.params.startDateIndex) || 0;
+ this.props.requestWeatherForecasts(startDateIndex);
+ }
+
+ componentWillReceiveProps(nextProps: WeatherForecastProps) {
+ // This method runs when incoming props (e.g., route params) change
+ let startDateIndex = parseInt(nextProps.match.params.startDateIndex) || 0;
+ this.props.requestWeatherForecasts(startDateIndex);
+ }
+
+ public render() {
+ return
+
Weather forecast
+
This component demonstrates fetching data from the server and working with URL parameters.
+ { this.renderForecastsTable() }
+ { this.renderPagination() }
+
;
+ }
+
+ private renderForecastsTable() {
+ return
+
+
+ Date
+ Temp. (C)
+ Temp. (F)
+ Summary
+
+
+
+ {this.props.forecasts.map(forecast =>
+
+ { forecast.dateFormatted }
+ { forecast.temperatureC }
+ { forecast.temperatureF }
+ { forecast.summary }
+
+ )}
+
+
;
+ }
+
+ private renderPagination() {
+ let prevStartDateIndex = (this.props.startDateIndex || 0) - 5;
+ let nextStartDateIndex = (this.props.startDateIndex || 0) + 5;
+
+ return
+ Previous
+ Next
+ { this.props.isLoading ? Loading... : [] }
+
;
+ }
+}
+
+export default connect(
+ (state: ApplicationState) => state.weatherForecasts, // Selects which state properties are merged into the component's props
+ WeatherForecastsState.actionCreators // Selects which action creators are merged into the component's props
+)(FetchData) as typeof FetchData;
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/components/Home.tsx b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/components/Home.tsx
new file mode 100644
index 0000000000..c79e5de6d9
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/components/Home.tsx
@@ -0,0 +1,25 @@
+import * as React from 'react';
+import { RouteComponentProps } from 'react-router-dom';
+
+export default class Home extends React.Component, {}> {
+ public render() {
+ return
+
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, rebuilt React components will be injected directly into your running application, preserving its live state.
+ Efficient production builds . In production mode, development-time features are disabled, and the webpack build tool produces minified static CSS and JavaScript files.
+ Server-side prerendering . To optimize startup time, your React application is first rendered on the server. The initial HTML and state is then transferred to the browser, where client-side code picks up where the server left off.
+
+
;
+ }
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/components/Layout.tsx b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/components/Layout.tsx
new file mode 100644
index 0000000000..db3f646104
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/components/Layout.tsx
@@ -0,0 +1,17 @@
+import * as React from 'react';
+import { NavMenu } from './NavMenu';
+
+export class Layout extends React.Component<{}, {}> {
+ public render() {
+ return
+
+
+
+
+
+ { this.props.children }
+
+
+
;
+ }
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/components/NavMenu.tsx b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/components/NavMenu.tsx
new file mode 100644
index 0000000000..3f60015d3b
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/components/NavMenu.tsx
@@ -0,0 +1,40 @@
+import * as React from 'react';
+import { NavLink, Link } from 'react-router-dom';
+
+export class NavMenu extends React.Component<{}, {}> {
+ public render() {
+ return
+
+
+
+ Toggle navigation
+
+
+
+
+ ReactReduxSpa
+
+
+
+
+
+
+ Home
+
+
+
+
+ Counter
+
+
+
+
+ Fetch data
+
+
+
+
+
+
;
+ }
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/configureStore.ts b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/configureStore.ts
new file mode 100644
index 0000000000..7a3b4f447b
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/configureStore.ts
@@ -0,0 +1,35 @@
+import { createStore, applyMiddleware, compose, combineReducers, GenericStoreEnhancer, Store, StoreEnhancerStoreCreator, ReducersMapObject } from 'redux';
+import thunk from 'redux-thunk';
+import { routerReducer, routerMiddleware } from 'react-router-redux';
+import * as StoreModule from './store';
+import { ApplicationState, reducers } from './store';
+import { History } from 'history';
+
+export default function configureStore(history: History, initialState?: ApplicationState) {
+ // 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.__REDUX_DEVTOOLS_EXTENSION__ as () => GenericStoreEnhancer;
+ const createStoreWithMiddleware = compose(
+ applyMiddleware(thunk, routerMiddleware(history)),
+ devToolsExtension ? devToolsExtension() : (next: StoreEnhancerStoreCreator) => next
+ )(createStore);
+
+ // Combine all reducers and instantiate the app-wide store instance
+ const allReducers = buildRootReducer(reducers);
+ const store = createStoreWithMiddleware(allReducers, initialState) as Store;
+
+ // Enable Webpack hot module replacement for reducers
+ if (module.hot) {
+ module.hot.accept('./store', () => {
+ const nextRootReducer = require('./store');
+ store.replaceReducer(buildRootReducer(nextRootReducer.reducers));
+ });
+ }
+
+ return store;
+}
+
+function buildRootReducer(allReducers: ReducersMapObject) {
+ return combineReducers(Object.assign({}, allReducers, { routing: routerReducer }));
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/css/site.css b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/css/site.css
new file mode 100644
index 0000000000..3058af6805
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/css/site.css
@@ -0,0 +1,66 @@
+.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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/routes.tsx b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/routes.tsx
new file mode 100644
index 0000000000..d804220123
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/routes.tsx
@@ -0,0 +1,12 @@
+import * as React from 'react';
+import { Route } from 'react-router-dom';
+import { Layout } from './components/Layout';
+import Home from './components/Home';
+import FetchData from './components/FetchData';
+import Counter from './components/Counter';
+
+export const routes =
+
+
+
+ ;
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/store/Counter.ts b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/store/Counter.ts
new file mode 100644
index 0000000000..baa32063bc
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/store/Counter.ts
@@ -0,0 +1,48 @@
+import { Action, Reducer } from 'redux';
+
+// -----------------
+// STATE - This defines the type of data maintained in the Redux store.
+
+export interface CounterState {
+ count: number;
+}
+
+// -----------------
+// ACTIONS - These are serializable (hence replayable) descriptions of state transitions.
+// They do not themselves have any side-effects; they just describe something that is going to happen.
+// Use @typeName and isActionType for type detection that works even after serialization/deserialization.
+
+interface IncrementCountAction { type: 'INCREMENT_COUNT' }
+interface DecrementCountAction { type: 'DECREMENT_COUNT' }
+
+// Declare a 'discriminated union' type. This guarantees that all references to 'type' properties contain one of the
+// declared type strings (and not any other arbitrary string).
+type KnownAction = IncrementCountAction | DecrementCountAction;
+
+// ----------------
+// ACTION CREATORS - These are functions exposed to UI components that will trigger a state transition.
+// They don't directly mutate state, but they can have external side-effects (such as loading data).
+
+export const actionCreators = {
+ increment: () => { type: 'INCREMENT_COUNT' },
+ decrement: () => { type: 'DECREMENT_COUNT' }
+};
+
+// ----------------
+// REDUCER - For a given state and action, returns the new state. To support time travel, this must not mutate the old state.
+
+export const reducer: Reducer = (state: CounterState, action: KnownAction) => {
+ switch (action.type) {
+ case 'INCREMENT_COUNT':
+ return { count: state.count + 1 };
+ case 'DECREMENT_COUNT':
+ return { count: state.count - 1 };
+ default:
+ // The following line guarantees that every action in the KnownAction union has been covered by a case above
+ const exhaustiveCheck: never = action;
+ }
+
+ // For unrecognized actions (or in cases where actions have no effect), must return the existing state
+ // (or default initial state if none was supplied)
+ return state || { count: 0 };
+};
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/store/WeatherForecasts.ts b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/store/WeatherForecasts.ts
new file mode 100644
index 0000000000..ea79d9f0bd
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/store/WeatherForecasts.ts
@@ -0,0 +1,91 @@
+import { fetch, addTask } from 'domain-task';
+import { Action, Reducer, ActionCreator } from 'redux';
+import { AppThunkAction } from './';
+
+// -----------------
+// STATE - This defines the type of data maintained in the Redux store.
+
+export interface WeatherForecastsState {
+ isLoading: boolean;
+ startDateIndex?: number;
+ forecasts: WeatherForecast[];
+}
+
+export interface WeatherForecast {
+ dateFormatted: string;
+ temperatureC: number;
+ temperatureF: number;
+ summary: string;
+}
+
+// -----------------
+// ACTIONS - These are serializable (hence replayable) descriptions of state transitions.
+// They do not themselves have any side-effects; they just describe something that is going to happen.
+
+interface RequestWeatherForecastsAction {
+ type: 'REQUEST_WEATHER_FORECASTS';
+ startDateIndex: number;
+}
+
+interface ReceiveWeatherForecastsAction {
+ type: 'RECEIVE_WEATHER_FORECASTS';
+ startDateIndex: number;
+ forecasts: WeatherForecast[];
+}
+
+// Declare a 'discriminated union' type. This guarantees that all references to 'type' properties contain one of the
+// declared type strings (and not any other arbitrary string).
+type KnownAction = RequestWeatherForecastsAction | ReceiveWeatherForecastsAction;
+
+// ----------------
+// ACTION CREATORS - These are functions exposed to UI components that will trigger a state transition.
+// They don't directly mutate state, but they can have external side-effects (such as loading data).
+
+export const actionCreators = {
+ requestWeatherForecasts: (startDateIndex: number): AppThunkAction => (dispatch, getState) => {
+ // Only load data if it's something we don't already have (and are not already loading)
+ if (startDateIndex !== getState().weatherForecasts.startDateIndex) {
+ let fetchTask = fetch(`api/SampleData/WeatherForecasts?startDateIndex=${ startDateIndex }`)
+ .then(response => response.json() as Promise)
+ .then(data => {
+ dispatch({ type: 'RECEIVE_WEATHER_FORECASTS', startDateIndex: startDateIndex, forecasts: data });
+ });
+
+ addTask(fetchTask); // Ensure server-side prerendering waits for this to complete
+ dispatch({ type: 'REQUEST_WEATHER_FORECASTS', startDateIndex: startDateIndex });
+ }
+ }
+};
+
+// ----------------
+// REDUCER - For a given state and action, returns the new state. To support time travel, this must not mutate the old state.
+
+const unloadedState: WeatherForecastsState = { forecasts: [], isLoading: false };
+
+export const reducer: Reducer = (state: WeatherForecastsState, incomingAction: Action) => {
+ const action = incomingAction as KnownAction;
+ switch (action.type) {
+ case 'REQUEST_WEATHER_FORECASTS':
+ return {
+ startDateIndex: action.startDateIndex,
+ forecasts: state.forecasts,
+ isLoading: true
+ };
+ case 'RECEIVE_WEATHER_FORECASTS':
+ // Only accept the incoming data if it matches the most recent request. This ensures we correctly
+ // handle out-of-order responses.
+ if (action.startDateIndex === state.startDateIndex) {
+ return {
+ startDateIndex: action.startDateIndex,
+ forecasts: action.forecasts,
+ isLoading: false
+ };
+ }
+ break;
+ default:
+ // The following line guarantees that every action in the KnownAction union has been covered by a case above
+ const exhaustiveCheck: never = action;
+ }
+
+ return state || unloadedState;
+};
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/store/index.ts b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/store/index.ts
new file mode 100644
index 0000000000..0b5b3c1254
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ClientApp/store/index.ts
@@ -0,0 +1,22 @@
+import * as WeatherForecasts from './WeatherForecasts';
+import * as Counter from './Counter';
+
+// The top-level state object
+export interface ApplicationState {
+ counter: Counter.CounterState;
+ weatherForecasts: WeatherForecasts.WeatherForecastsState;
+}
+
+// Whenever an action is dispatched, Redux will update each top-level application state property using
+// the reducer with the matching name. It's important that the names match exactly, and that the reducer
+// acts on the corresponding ApplicationState property type.
+export const reducers = {
+ counter: Counter.reducer,
+ weatherForecasts: WeatherForecasts.reducer
+};
+
+// This type can be used as a hint on action creators so that its 'dispatch' and 'getState' params are
+// correctly typed to match your store.
+export interface AppThunkAction {
+ (dispatch: (action: TAction) => void, getState: () => ApplicationState): void;
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/Controllers/HomeController.cs b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/Controllers/HomeController.cs
new file mode 100644
index 0000000000..6931d5379f
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/Controllers/HomeController.cs
@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+
+namespace ReactReduxSpa.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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/Controllers/SampleDataController.cs b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/Controllers/SampleDataController.cs
new file mode 100644
index 0000000000..828682431a
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/Controllers/SampleDataController.cs
@@ -0,0 +1,44 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+
+namespace ReactReduxSpa.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(int startDateIndex)
+ {
+ var rng = new Random();
+ return Enumerable.Range(1, 5).Select(index => new WeatherForecast
+ {
+ DateFormatted = DateTime.Now.AddDays(index + startDateIndex).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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/Program.cs b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/Program.cs
new file mode 100644
index 0000000000..708408cec0
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/Program.cs
@@ -0,0 +1,25 @@
+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 ReactReduxSpa
+{
+ 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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ReactReduxSpa.csproj b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ReactReduxSpa.csproj
new file mode 100644
index 0000000000..c2c5cfe338
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/ReactReduxSpa.csproj
@@ -0,0 +1,62 @@
+
+
+
+ netcoreapp2.0
+ TargetFrameworkOverride
+ true
+ Latest
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ %(DistFiles.Identity)
+ PreserveNewest
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/Startup.cs b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/Startup.cs
new file mode 100644
index 0000000000..7da1e59045
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/Startup.cs
@@ -0,0 +1,59 @@
+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 ReactReduxSpa
+{
+ 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,
+ ReactHotModuleReplacement = 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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/Views/Home/Index.cshtml b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/Views/Home/Index.cshtml
new file mode 100644
index 0000000000..a53a97e7e8
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/Views/Home/Index.cshtml
@@ -0,0 +1,9 @@
+@{
+ ViewData["Title"] = "Home Page";
+}
+
+Loading...
+
+@section scripts {
+
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/Views/Shared/Error.cshtml b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/Views/Shared/Error.cshtml
new file mode 100644
index 0000000000..78e35d5d3c
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/Views/Shared/Error.cshtml
@@ -0,0 +1,21 @@
+@{
+ 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/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/Views/Shared/_Layout.cshtml b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/Views/Shared/_Layout.cshtml
new file mode 100644
index 0000000000..7c3e0f8708
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/Views/Shared/_Layout.cshtml
@@ -0,0 +1,18 @@
+
+
+
+
+
+ @ViewData["Title"] - ReactReduxSpa
+
+
+
+
+
+
+ @RenderBody()
+
+
+ @RenderSection("scripts", required: false)
+
+
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/Views/_ViewImports.cshtml b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/Views/_ViewImports.cshtml
new file mode 100644
index 0000000000..cda192871a
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/Views/_ViewImports.cshtml
@@ -0,0 +1,3 @@
+@using ReactReduxSpa
+@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
+@addTagHelper *, Microsoft.AspNetCore.SpaServices
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/Views/_ViewStart.cshtml b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/Views/_ViewStart.cshtml
new file mode 100644
index 0000000000..820a2f6e02
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/Views/_ViewStart.cshtml
@@ -0,0 +1,3 @@
+@{
+ Layout = "_Layout";
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/appsettings.Development.json b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/appsettings.Development.json
new file mode 100644
index 0000000000..457e003321
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/appsettings.Development.json
@@ -0,0 +1,19 @@
+{
+ "Logging": {
+ "IncludeScopes": false,
+ "Debug": {
+ "LogLevel": {
+ "Default": "Debug",
+ "System": "Information",
+ "Microsoft": "Information"
+ }
+ },
+ "Console": {
+ "LogLevel": {
+ "Default": "Debug",
+ "System": "Information",
+ "Microsoft": "Information"
+ }
+ }
+ }
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/appsettings.json b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/appsettings.json
new file mode 100644
index 0000000000..c851e129f9
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/appsettings.json
@@ -0,0 +1,15 @@
+{
+ "Logging": {
+ "IncludeScopes": false,
+ "Debug": {
+ "LogLevel": {
+ "Default": "Warning"
+ }
+ },
+ "Console": {
+ "LogLevel": {
+ "Default": "Warning"
+ }
+ }
+ }
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/npm-shrinkwrap.json b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/npm-shrinkwrap.json
new file mode 100644
index 0000000000..13165b4ca9
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/npm-shrinkwrap.json
@@ -0,0 +1,2921 @@
+{
+ "name": "ReactReduxSpa",
+ "version": "0.0.0",
+ "dependencies": {
+ "@types/history": {
+ "version": "4.6.0",
+ "from": "@types/history@4.6.0",
+ "resolved": "https://registry.npmjs.org/@types/history/-/history-4.6.0.tgz"
+ },
+ "@types/node": {
+ "version": "8.0.7",
+ "from": "@types/node@*",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-8.0.7.tgz"
+ },
+ "@types/react": {
+ "version": "15.0.35",
+ "from": "@types/react@15.0.35",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-15.0.35.tgz"
+ },
+ "@types/react-dom": {
+ "version": "15.5.1",
+ "from": "@types/react-dom@15.5.1",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-15.5.1.tgz"
+ },
+ "@types/react-hot-loader": {
+ "version": "3.0.3",
+ "from": "@types/react-hot-loader@3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/react-hot-loader/-/react-hot-loader-3.0.3.tgz"
+ },
+ "@types/react-redux": {
+ "version": "4.4.45",
+ "from": "@types/react-redux@4.4.45",
+ "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-4.4.45.tgz"
+ },
+ "@types/react-router": {
+ "version": "4.0.12",
+ "from": "@types/react-router@4.0.12",
+ "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-4.0.12.tgz"
+ },
+ "@types/react-router-dom": {
+ "version": "4.0.5",
+ "from": "@types/react-router-dom@4.0.5",
+ "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-4.0.5.tgz"
+ },
+ "@types/react-router-redux": {
+ "version": "5.0.3",
+ "from": "@types/react-router-redux@5.0.3",
+ "resolved": "https://registry.npmjs.org/@types/react-router-redux/-/react-router-redux-5.0.3.tgz"
+ },
+ "@types/source-map": {
+ "version": "0.5.0",
+ "from": "@types/source-map@*",
+ "resolved": "https://registry.npmjs.org/@types/source-map/-/source-map-0.5.0.tgz"
+ },
+ "@types/tapable": {
+ "version": "0.2.3",
+ "from": "@types/tapable@*",
+ "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-0.2.3.tgz"
+ },
+ "@types/uglify-js": {
+ "version": "2.6.29",
+ "from": "@types/uglify-js@*",
+ "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-2.6.29.tgz"
+ },
+ "@types/webpack": {
+ "version": "2.2.15",
+ "from": "@types/webpack@2.2.15",
+ "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-2.2.15.tgz"
+ },
+ "@types/webpack-env": {
+ "version": "1.13.0",
+ "from": "@types/webpack-env@1.13.0",
+ "resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.13.0.tgz"
+ },
+ "acorn": {
+ "version": "5.1.1",
+ "from": "acorn@>=5.0.0 <6.0.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.1.tgz"
+ },
+ "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",
+ "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"
+ }
+ }
+ },
+ "ajv": {
+ "version": "4.11.8",
+ "from": "ajv@>=4.11.2 <5.0.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "amdefine": {
+ "version": "1.0.1",
+ "from": "amdefine@>=0.0.4",
+ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "anymatch": {
+ "version": "1.3.0",
+ "from": "anymatch@>=1.3.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz"
+ },
+ "argparse": {
+ "version": "1.0.9",
+ "from": "argparse@>=1.0.7 <2.0.0",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz"
+ },
+ "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"
+ },
+ "arr-flatten": {
+ "version": "1.1.0",
+ "from": "arr-flatten@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz"
+ },
+ "arr-union": {
+ "version": "3.1.0",
+ "from": "arr-union@>=3.1.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz"
+ },
+ "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"
+ },
+ "arrify": {
+ "version": "1.0.1",
+ "from": "arrify@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz"
+ },
+ "asap": {
+ "version": "2.0.5",
+ "from": "asap@>=2.0.3 <2.1.0",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.5.tgz"
+ },
+ "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"
+ },
+ "aspnet-prerendering": {
+ "version": "3.0.1",
+ "from": "aspnet-prerendering@3.0.1",
+ "resolved": "https://registry.npmjs.org/aspnet-prerendering/-/aspnet-prerendering-3.0.1.tgz"
+ },
+ "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"
+ },
+ "aspnet-webpack-react": {
+ "version": "3.0.0",
+ "from": "aspnet-webpack-react@3.0.0",
+ "resolved": "https://registry.npmjs.org/aspnet-webpack-react/-/aspnet-webpack-react-3.0.0.tgz"
+ },
+ "assert": {
+ "version": "1.4.1",
+ "from": "assert@>=1.1.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz"
+ },
+ "async": {
+ "version": "2.5.0",
+ "from": "async@>=2.1.2 <3.0.0",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz"
+ },
+ "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"
+ },
+ "atob": {
+ "version": "2.0.3",
+ "from": "atob@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz"
+ },
+ "autoprefixer": {
+ "version": "6.7.7",
+ "from": "autoprefixer@>=6.3.1 <7.0.0",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz"
+ },
+ "awesome-typescript-loader": {
+ "version": "3.2.1",
+ "from": "awesome-typescript-loader@3.2.1",
+ "resolved": "https://registry.npmjs.org/awesome-typescript-loader/-/awesome-typescript-loader-3.2.1.tgz",
+ "dependencies": {
+ "arr-diff": {
+ "version": "4.0.0",
+ "from": "arr-diff@>=4.0.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz"
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "from": "array-unique@>=0.3.2 <0.4.0",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz"
+ },
+ "braces": {
+ "version": "2.2.2",
+ "from": "braces@>=2.2.2 <3.0.0",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.2.2.tgz"
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "from": "expand-brackets@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"
+ }
+ }
+ },
+ "extglob": {
+ "version": "1.1.0",
+ "from": "extglob@>=1.1.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-1.1.0.tgz",
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"
+ },
+ "to-regex": {
+ "version": "2.1.0",
+ "from": "to-regex@>=2.1.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-2.1.0.tgz",
+ "dependencies": {
+ "regex-not": {
+ "version": "0.1.2",
+ "from": "regex-not@>=0.1.1 <0.2.0",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-0.1.2.tgz"
+ }
+ }
+ }
+ }
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "from": "fill-range@>=4.0.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz"
+ },
+ "is-descriptor": {
+ "version": "0.1.5",
+ "from": "is-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.5.tgz",
+ "dependencies": {
+ "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"
+ }
+ }
+ },
+ "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",
+ "dependencies": {
+ "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"
+ }
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "from": "isobject@>=3.0.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz"
+ },
+ "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"
+ },
+ "lazy-cache": {
+ "version": "2.0.2",
+ "from": "lazy-cache@^2.0.2",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz"
+ },
+ "micromatch": {
+ "version": "3.0.3",
+ "from": "micromatch@>=3.0.3 <4.0.0",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.0.3.tgz"
+ }
+ }
+ },
+ "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"
+ },
+ "babel-messages": {
+ "version": "6.23.0",
+ "from": "babel-messages@>=6.23.0 <7.0.0",
+ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz"
+ },
+ "babel-runtime": {
+ "version": "6.23.0",
+ "from": "babel-runtime@>=6.22.0 <7.0.0",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz",
+ "dependencies": {
+ "core-js": {
+ "version": "2.4.1",
+ "from": "core-js@>=2.4.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz"
+ }
+ }
+ },
+ "babel-template": {
+ "version": "6.25.0",
+ "from": "babel-template@>=6.7.0 <7.0.0",
+ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz"
+ },
+ "babel-traverse": {
+ "version": "6.25.0",
+ "from": "babel-traverse@>=6.25.0 <7.0.0",
+ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz"
+ },
+ "babel-types": {
+ "version": "6.25.0",
+ "from": "babel-types@>=6.25.0 <7.0.0",
+ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz"
+ },
+ "babylon": {
+ "version": "6.17.4",
+ "from": "babylon@>=6.17.2 <7.0.0",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.17.4.tgz"
+ },
+ "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"
+ },
+ "base": {
+ "version": "0.11.1",
+ "from": "base@>=0.11.1 <0.12.0",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.1.tgz",
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"
+ },
+ "is-descriptor": {
+ "version": "0.1.5",
+ "from": "is-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.5.tgz"
+ },
+ "lazy-cache": {
+ "version": "2.0.2",
+ "from": "lazy-cache@^2.0.1",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz"
+ }
+ }
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "bootstrap": {
+ "version": "3.3.7",
+ "from": "bootstrap@3.3.7",
+ "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",
+ "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"
+ }
+ }
+ },
+ "braces": {
+ "version": "1.8.5",
+ "from": "braces@>=1.8.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz"
+ },
+ "brorand": {
+ "version": "1.1.0",
+ "from": "brorand@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "browserslist": {
+ "version": "1.7.7",
+ "from": "browserslist@>=1.7.6 <2.0.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz"
+ },
+ "buffer": {
+ "version": "4.9.1",
+ "from": "buffer@>=4.3.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "cache-base": {
+ "version": "0.8.5",
+ "from": "cache-base@>=0.8.4 <0.9.0",
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-0.8.5.tgz",
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "from": "isobject@^3.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz"
+ },
+ "lazy-cache": {
+ "version": "2.0.2",
+ "from": "lazy-cache@^2.0.1",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz"
+ }
+ }
+ },
+ "camelcase": {
+ "version": "1.2.1",
+ "from": "camelcase@>=1.0.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz"
+ },
+ "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"
+ },
+ "caniuse-db": {
+ "version": "1.0.30000697",
+ "from": "caniuse-db@>=1.0.30000634 <2.0.0",
+ "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000697.tgz"
+ },
+ "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"
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "from": "chalk@>=1.1.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"
+ },
+ "chokidar": {
+ "version": "1.7.0",
+ "from": "chokidar@>=1.4.3 <2.0.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz"
+ },
+ "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"
+ },
+ "clap": {
+ "version": "1.2.0",
+ "from": "clap@>=1.0.9 <2.0.0",
+ "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.0.tgz"
+ },
+ "class-utils": {
+ "version": "0.3.5",
+ "from": "class-utils@>=0.3.4 <0.4.0",
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.5.tgz",
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"
+ },
+ "is-descriptor": {
+ "version": "0.1.5",
+ "from": "is-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.5.tgz"
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "from": "isobject@^3.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz"
+ },
+ "lazy-cache": {
+ "version": "2.0.2",
+ "from": "lazy-cache@^2.0.2",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz"
+ }
+ }
+ },
+ "cliui": {
+ "version": "2.1.0",
+ "from": "cliui@>=2.1.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz"
+ },
+ "clone": {
+ "version": "1.0.2",
+ "from": "clone@>=1.0.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz"
+ },
+ "co": {
+ "version": "4.6.0",
+ "from": "co@>=4.6.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz"
+ },
+ "coa": {
+ "version": "1.0.3",
+ "from": "coa@>=1.0.1 <1.1.0",
+ "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.3.tgz"
+ },
+ "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"
+ },
+ "collection-visit": {
+ "version": "0.2.3",
+ "from": "collection-visit@>=0.2.1 <0.3.0",
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-0.2.3.tgz",
+ "dependencies": {
+ "lazy-cache": {
+ "version": "2.0.2",
+ "from": "lazy-cache@^2.0.1",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz"
+ }
+ }
+ },
+ "color": {
+ "version": "0.11.4",
+ "from": "color@>=0.11.0 <0.12.0",
+ "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "colormin": {
+ "version": "1.1.2",
+ "from": "colormin@>=1.0.5 <2.0.0",
+ "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz"
+ },
+ "colors": {
+ "version": "1.1.2",
+ "from": "colors@>=1.1.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz"
+ },
+ "component-emitter": {
+ "version": "1.2.1",
+ "from": "component-emitter@>=1.2.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz"
+ },
+ "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"
+ },
+ "connect": {
+ "version": "3.6.2",
+ "from": "connect@>=3.4.1 <4.0.0",
+ "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.2.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "copy-descriptor": {
+ "version": "0.1.1",
+ "from": "copy-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz"
+ },
+ "core-js": {
+ "version": "1.2.7",
+ "from": "core-js@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "create-react-class": {
+ "version": "15.6.0",
+ "from": "create-react-class@>=15.5.1 <16.0.0",
+ "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.0.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "css-loader": {
+ "version": "0.28.4",
+ "from": "css-loader@0.28.4",
+ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.4.tgz"
+ },
+ "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"
+ },
+ "cssesc": {
+ "version": "0.1.0",
+ "from": "cssesc@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz"
+ },
+ "cssnano": {
+ "version": "3.10.0",
+ "from": "cssnano@>=2.6.1 <4.0.0",
+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz"
+ },
+ "csso": {
+ "version": "2.3.2",
+ "from": "csso@>=2.3.1 <2.4.0",
+ "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz"
+ },
+ "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"
+ },
+ "debug": {
+ "version": "2.6.7",
+ "from": "debug@2.6.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz"
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "from": "decamelize@>=1.1.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz"
+ },
+ "define-property": {
+ "version": "1.0.0",
+ "from": "define-property@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz"
+ },
+ "defined": {
+ "version": "1.0.0",
+ "from": "defined@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "dom-walk": {
+ "version": "0.1.1",
+ "from": "dom-walk@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz"
+ },
+ "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"
+ },
+ "domain-context": {
+ "version": "0.5.1",
+ "from": "domain-context@>=0.5.1 <0.6.0",
+ "resolved": "https://registry.npmjs.org/domain-context/-/domain-context-0.5.1.tgz"
+ },
+ "domain-task": {
+ "version": "3.0.3",
+ "from": "domain-task@3.0.3",
+ "resolved": "https://registry.npmjs.org/domain-task/-/domain-task-3.0.3.tgz"
+ },
+ "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"
+ },
+ "electron-to-chromium": {
+ "version": "1.3.15",
+ "from": "electron-to-chromium@>=1.2.7 <2.0.0",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.15.tgz"
+ },
+ "elliptic": {
+ "version": "6.4.0",
+ "from": "elliptic@>=6.0.0 <7.0.0",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz"
+ },
+ "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"
+ },
+ "encodeurl": {
+ "version": "1.0.1",
+ "from": "encodeurl@>=1.0.1 <1.1.0",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz"
+ },
+ "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.3.0",
+ "from": "enhanced-resolve@>=3.1.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.3.0.tgz",
+ "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"
+ }
+ }
+ },
+ "errno": {
+ "version": "0.1.4",
+ "from": "errno@>=0.1.3 <0.2.0",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz"
+ },
+ "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"
+ },
+ "error-stack-parser": {
+ "version": "1.3.6",
+ "from": "error-stack-parser@>=1.3.6 <2.0.0",
+ "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-1.3.6.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "esprima": {
+ "version": "2.7.3",
+ "from": "esprima@>=2.6.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz"
+ },
+ "esutils": {
+ "version": "2.0.2",
+ "from": "esutils@>=2.0.2 <3.0.0",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz"
+ },
+ "event-source-polyfill": {
+ "version": "0.0.9",
+ "from": "event-source-polyfill@0.0.9",
+ "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-0.0.9.tgz"
+ },
+ "events": {
+ "version": "1.1.1",
+ "from": "events@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "from": "extend-shallow@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz"
+ },
+ "extglob": {
+ "version": "0.3.2",
+ "from": "extglob@>=0.3.1 <0.4.0",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz"
+ },
+ "extract-text-webpack-plugin": {
+ "version": "2.1.2",
+ "from": "extract-text-webpack-plugin@2.1.2",
+ "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-2.1.2.tgz"
+ },
+ "fast-deep-equal": {
+ "version": "1.0.0",
+ "from": "fast-deep-equal@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz"
+ },
+ "fastparse": {
+ "version": "1.1.1",
+ "from": "fastparse@>=1.1.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz"
+ },
+ "fbjs": {
+ "version": "0.8.12",
+ "from": "fbjs@>=0.8.9 <0.9.0",
+ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz"
+ },
+ "file-loader": {
+ "version": "0.11.2",
+ "from": "file-loader@0.11.2",
+ "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.11.2.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "finalhandler": {
+ "version": "1.0.3",
+ "from": "finalhandler@1.0.3",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.3.tgz"
+ },
+ "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"
+ },
+ "flatten": {
+ "version": "1.0.2",
+ "from": "flatten@>=1.0.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "fragment-cache": {
+ "version": "0.2.1",
+ "from": "fragment-cache@>=0.2.1 <0.3.0",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "get-value": {
+ "version": "2.0.6",
+ "from": "get-value@>=2.0.5 <3.0.0",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "global": {
+ "version": "4.3.2",
+ "from": "global@>=4.3.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz"
+ },
+ "globals": {
+ "version": "9.18.0",
+ "from": "globals@>=9.0.0 <10.0.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz"
+ },
+ "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"
+ },
+ "has": {
+ "version": "1.0.1",
+ "from": "has@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "has-value": {
+ "version": "0.3.1",
+ "from": "has-value@>=0.3.1 <0.4.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz"
+ },
+ "has-values": {
+ "version": "0.1.4",
+ "from": "has-values@>=0.1.4 <0.2.0",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz"
+ },
+ "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"
+ },
+ "hash.js": {
+ "version": "1.1.3",
+ "from": "hash.js@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz"
+ },
+ "history": {
+ "version": "4.6.3",
+ "from": "history@4.6.3",
+ "resolved": "https://registry.npmjs.org/history/-/history-4.6.3.tgz"
+ },
+ "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"
+ },
+ "hoist-non-react-statics": {
+ "version": "1.2.0",
+ "from": "hoist-non-react-statics@>=1.0.3 <2.0.0",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz"
+ },
+ "hosted-git-info": {
+ "version": "2.5.0",
+ "from": "hosted-git-info@>=2.1.4 <3.0.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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",
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.1.0",
+ "from": "ansi-styles@>=3.1.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz"
+ },
+ "chalk": {
+ "version": "2.0.1",
+ "from": "chalk@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz"
+ },
+ "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"
+ },
+ "postcss": {
+ "version": "6.0.6",
+ "from": "postcss@>=6.0.1 <7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.6.tgz"
+ },
+ "supports-color": {
+ "version": "4.2.0",
+ "from": "supports-color@>=4.1.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.0.tgz"
+ }
+ }
+ },
+ "ieee754": {
+ "version": "1.1.8",
+ "from": "ieee754@>=1.1.4 <2.0.0",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz"
+ },
+ "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"
+ },
+ "indexof": {
+ "version": "0.0.1",
+ "from": "indexof@0.0.1",
+ "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz"
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "from": "inherits@>=2.0.3 <2.1.0",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+ },
+ "interpret": {
+ "version": "1.0.3",
+ "from": "interpret@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz"
+ },
+ "invariant": {
+ "version": "2.2.2",
+ "from": "invariant@>=2.2.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "from": "is-accessor-descriptor@>=0.1.6 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "from": "is-data-descriptor@>=0.1.4 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz"
+ },
+ "is-descriptor": {
+ "version": "1.0.0",
+ "from": "is-descriptor@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.0.tgz",
+ "dependencies": {
+ "lazy-cache": {
+ "version": "2.0.2",
+ "from": "lazy-cache@>=2.0.2 <3.0.0",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz"
+ }
+ }
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "is-odd": {
+ "version": "1.0.0",
+ "from": "is-odd@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-1.0.0.tgz",
+ "dependencies": {
+ "is-number": {
+ "version": "3.0.0",
+ "from": "is-number@^3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz"
+ }
+ }
+ },
+ "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"
+ },
+ "is-plain-object": {
+ "version": "2.0.3",
+ "from": "is-plain-object@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.3.tgz",
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "from": "isobject@^3.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz"
+ }
+ }
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "from": "isarray@>=1.0.0 <1.1.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+ },
+ "isobject": {
+ "version": "2.1.0",
+ "from": "isobject@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz"
+ },
+ "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",
+ "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"
+ },
+ "js-tokens": {
+ "version": "3.0.2",
+ "from": "js-tokens@>=3.0.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz"
+ },
+ "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"
+ },
+ "jsesc": {
+ "version": "0.5.0",
+ "from": "jsesc@>=0.5.0 <0.6.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz"
+ },
+ "json-loader": {
+ "version": "0.5.4",
+ "from": "json-loader@0.5.4",
+ "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.4.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "json5": {
+ "version": "0.5.1",
+ "from": "json5@>=0.5.0 <0.6.0",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz"
+ },
+ "jsonify": {
+ "version": "0.0.0",
+ "from": "jsonify@>=0.0.0 <0.1.0",
+ "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "lcid": {
+ "version": "1.0.0",
+ "from": "lcid@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "lodash": {
+ "version": "4.17.4",
+ "from": "lodash@>=4.2.1 <5.0.0",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz"
+ },
+ "lodash-es": {
+ "version": "4.17.4",
+ "from": "lodash-es@>=4.2.1 <5.0.0",
+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.4.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "longest": {
+ "version": "1.0.1",
+ "from": "longest@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz"
+ },
+ "loose-envify": {
+ "version": "1.3.1",
+ "from": "loose-envify@>=1.1.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz"
+ },
+ "macaddress": {
+ "version": "0.2.8",
+ "from": "macaddress@>=0.2.8 <0.3.0",
+ "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz"
+ },
+ "map-cache": {
+ "version": "0.2.2",
+ "from": "map-cache@>=0.2.2 <0.3.0",
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz"
+ },
+ "map-visit": {
+ "version": "0.1.5",
+ "from": "map-visit@>=0.1.5 <0.2.0",
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-0.1.5.tgz",
+ "dependencies": {
+ "lazy-cache": {
+ "version": "2.0.2",
+ "from": "lazy-cache@^2.0.1",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz"
+ }
+ }
+ },
+ "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"
+ },
+ "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"
+ },
+ "micromatch": {
+ "version": "2.3.11",
+ "from": "micromatch@>=2.1.5 <3.0.0",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz"
+ },
+ "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"
+ },
+ "mime": {
+ "version": "1.3.6",
+ "from": "mime@>=1.3.4 <2.0.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.6.tgz"
+ },
+ "min-document": {
+ "version": "2.19.0",
+ "from": "min-document@>=2.19.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "from": "minimatch@>=3.0.2 <4.0.0",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "from": "minimist@0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
+ },
+ "mixin-deep": {
+ "version": "1.2.0",
+ "from": "mixin-deep@>=1.1.3 <2.0.0",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.2.0.tgz"
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "from": "mkdirp@>=0.5.1 <0.6.0",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"
+ },
+ "ms": {
+ "version": "2.0.0",
+ "from": "ms@2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
+ },
+ "nanomatch": {
+ "version": "1.2.0",
+ "from": "nanomatch@>=1.2.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.0.tgz",
+ "dependencies": {
+ "arr-diff": {
+ "version": "4.0.0",
+ "from": "arr-diff@^4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz"
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "from": "array-unique@^0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz"
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "from": "is-extglob@>=2.1.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
+ },
+ "kind-of": {
+ "version": "4.0.0",
+ "from": "kind-of@^4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz"
+ }
+ }
+ },
+ "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",
+ "dependencies": {
+ "process": {
+ "version": "0.11.10",
+ "from": "process@>=0.11.0 <0.12.0",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz"
+ },
+ "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"
+ }
+ }
+ },
+ "node-noop": {
+ "version": "1.0.0",
+ "from": "node-noop@1.0.0",
+ "resolved": "https://registry.npmjs.org/node-noop/-/node-noop-1.0.0.tgz"
+ },
+ "normalize-package-data": {
+ "version": "2.4.0",
+ "from": "normalize-package-data@>=2.3.2 <3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "num2fraction": {
+ "version": "1.2.2",
+ "from": "num2fraction@>=1.2.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "object-copy": {
+ "version": "0.1.0",
+ "from": "object-copy@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"
+ },
+ "is-descriptor": {
+ "version": "0.1.5",
+ "from": "is-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.5.tgz"
+ },
+ "lazy-cache": {
+ "version": "2.0.2",
+ "from": "lazy-cache@^2.0.2",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz"
+ }
+ }
+ },
+ "object-visit": {
+ "version": "0.3.4",
+ "from": "object-visit@>=0.3.4 <0.4.0",
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-0.3.4.tgz"
+ },
+ "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"
+ },
+ "object.pick": {
+ "version": "1.2.0",
+ "from": "object.pick@>=1.2.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.2.0.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "pako": {
+ "version": "0.2.9",
+ "from": "pako@>=0.2.0 <0.3.0",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "parseurl": {
+ "version": "1.3.1",
+ "from": "parseurl@>=1.3.1 <1.4.0",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz"
+ },
+ "pascalcase": {
+ "version": "0.1.1",
+ "from": "pascalcase@>=0.1.1 <0.2.0",
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "path-to-regexp": {
+ "version": "1.7.0",
+ "from": "path-to-regexp@>=1.5.3 <2.0.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz",
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "from": "isarray@0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
+ }
+ }
+ },
+ "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"
+ },
+ "pbkdf2": {
+ "version": "3.0.12",
+ "from": "pbkdf2@>=3.0.3 <4.0.0",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.12.tgz"
+ },
+ "pify": {
+ "version": "2.3.0",
+ "from": "pify@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "from": "pinkie@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz"
+ },
+ "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"
+ },
+ "posix-character-classes": {
+ "version": "0.1.1",
+ "from": "posix-character-classes@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz"
+ },
+ "postcss": {
+ "version": "5.2.17",
+ "from": "postcss@>=5.0.6 <6.0.0",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
+ "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"
+ }
+ }
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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",
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.1.0",
+ "from": "ansi-styles@>=3.1.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz"
+ },
+ "chalk": {
+ "version": "2.0.1",
+ "from": "chalk@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz"
+ },
+ "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"
+ },
+ "postcss": {
+ "version": "6.0.6",
+ "from": "postcss@>=6.0.1 <7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.6.tgz"
+ },
+ "supports-color": {
+ "version": "4.2.0",
+ "from": "supports-color@>=4.1.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.0.tgz"
+ }
+ }
+ },
+ "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",
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.1.0",
+ "from": "ansi-styles@>=3.1.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz"
+ },
+ "chalk": {
+ "version": "2.0.1",
+ "from": "chalk@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz"
+ },
+ "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"
+ },
+ "postcss": {
+ "version": "6.0.6",
+ "from": "postcss@>=6.0.1 <7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.6.tgz"
+ },
+ "supports-color": {
+ "version": "4.2.0",
+ "from": "supports-color@>=4.1.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.0.tgz"
+ }
+ }
+ },
+ "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",
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.1.0",
+ "from": "ansi-styles@>=3.1.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz"
+ },
+ "chalk": {
+ "version": "2.0.1",
+ "from": "chalk@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz"
+ },
+ "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"
+ },
+ "postcss": {
+ "version": "6.0.6",
+ "from": "postcss@>=6.0.1 <7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.6.tgz"
+ },
+ "supports-color": {
+ "version": "4.2.0",
+ "from": "supports-color@>=4.1.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.0.tgz"
+ }
+ }
+ },
+ "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",
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.1.0",
+ "from": "ansi-styles@>=3.1.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz"
+ },
+ "chalk": {
+ "version": "2.0.1",
+ "from": "chalk@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz"
+ },
+ "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"
+ },
+ "postcss": {
+ "version": "6.0.6",
+ "from": "postcss@>=6.0.1 <7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.6.tgz"
+ },
+ "supports-color": {
+ "version": "4.2.0",
+ "from": "supports-color@>=4.1.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.0.tgz"
+ }
+ }
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "preserve": {
+ "version": "0.2.0",
+ "from": "preserve@>=0.2.0 <0.3.0",
+ "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz"
+ },
+ "process": {
+ "version": "0.5.2",
+ "from": "process@>=0.5.1 <0.6.0",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz"
+ },
+ "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"
+ },
+ "promise": {
+ "version": "7.3.1",
+ "from": "promise@>=7.1.1 <8.0.0",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz"
+ },
+ "prop-types": {
+ "version": "15.5.10",
+ "from": "prop-types@>=15.5.7 <16.0.0",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.10.tgz"
+ },
+ "prr": {
+ "version": "0.0.0",
+ "from": "prr@>=0.0.0 <0.1.0",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz"
+ },
+ "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"
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "from": "punycode@>=1.2.4 <2.0.0",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz"
+ },
+ "q": {
+ "version": "1.5.0",
+ "from": "q@>=1.1.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz"
+ },
+ "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"
+ },
+ "querystring": {
+ "version": "0.2.0",
+ "from": "querystring@0.2.0",
+ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz"
+ },
+ "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"
+ },
+ "randomatic": {
+ "version": "1.1.7",
+ "from": "randomatic@>=1.1.3 <2.0.0",
+ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz",
+ "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",
+ "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"
+ }
+ }
+ },
+ "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"
+ }
+ }
+ },
+ "randombytes": {
+ "version": "2.0.5",
+ "from": "randombytes@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz"
+ },
+ "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"
+ },
+ "react": {
+ "version": "15.6.1",
+ "from": "react@15.6.1",
+ "resolved": "https://registry.npmjs.org/react/-/react-15.6.1.tgz"
+ },
+ "react-deep-force-update": {
+ "version": "2.0.1",
+ "from": "react-deep-force-update@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/react-deep-force-update/-/react-deep-force-update-2.0.1.tgz"
+ },
+ "react-dom": {
+ "version": "15.6.1",
+ "from": "react-dom@15.6.1",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.6.1.tgz"
+ },
+ "react-hot-loader": {
+ "version": "3.0.0-beta.7",
+ "from": "react-hot-loader@3.0.0-beta.7",
+ "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-3.0.0-beta.7.tgz",
+ "dependencies": {
+ "source-map": {
+ "version": "0.4.4",
+ "from": "source-map@>=0.4.4 <0.5.0",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz"
+ }
+ }
+ },
+ "react-proxy": {
+ "version": "3.0.0-alpha.1",
+ "from": "react-proxy@>=3.0.0-alpha.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/react-proxy/-/react-proxy-3.0.0-alpha.1.tgz"
+ },
+ "react-redux": {
+ "version": "5.0.5",
+ "from": "react-redux@5.0.5",
+ "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.0.5.tgz"
+ },
+ "react-router": {
+ "version": "4.1.1",
+ "from": "react-router@>=4.1.1 <5.0.0",
+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-4.1.1.tgz"
+ },
+ "react-router-dom": {
+ "version": "4.1.1",
+ "from": "react-router-dom@4.1.1",
+ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-4.1.1.tgz"
+ },
+ "react-router-redux": {
+ "version": "5.0.0-alpha.6",
+ "from": "react-router-redux@5.0.0-alpha.6",
+ "resolved": "https://registry.npmjs.org/react-router-redux/-/react-router-redux-5.0.0-alpha.6.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "readable-stream": {
+ "version": "2.3.3",
+ "from": "readable-stream@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz"
+ },
+ "readdirp": {
+ "version": "2.1.0",
+ "from": "readdirp@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz"
+ },
+ "redbox-react": {
+ "version": "1.4.2",
+ "from": "redbox-react@>=1.3.6 <2.0.0",
+ "resolved": "https://registry.npmjs.org/redbox-react/-/redbox-react-1.4.2.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "redux": {
+ "version": "3.7.1",
+ "from": "redux@3.7.1",
+ "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.1.tgz"
+ },
+ "redux-thunk": {
+ "version": "2.2.0",
+ "from": "redux-thunk@2.2.0",
+ "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.2.0.tgz"
+ },
+ "regenerate": {
+ "version": "1.3.2",
+ "from": "regenerate@>=1.2.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz"
+ },
+ "regenerator-runtime": {
+ "version": "0.10.5",
+ "from": "regenerator-runtime@>=0.10.0 <0.11.0",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz"
+ },
+ "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"
+ },
+ "regex-not": {
+ "version": "1.0.0",
+ "from": "regex-not@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.0.tgz"
+ },
+ "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"
+ },
+ "regjsgen": {
+ "version": "0.2.0",
+ "from": "regjsgen@>=0.2.0 <0.3.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz"
+ },
+ "regjsparser": {
+ "version": "0.1.5",
+ "from": "regjsparser@>=0.1.4 <0.2.0",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "resolve-url": {
+ "version": "0.2.1",
+ "from": "resolve-url@>=0.2.1 <0.3.0",
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz"
+ },
+ "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"
+ },
+ "ripemd160": {
+ "version": "2.0.1",
+ "from": "ripemd160@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz"
+ },
+ "safe-buffer": {
+ "version": "5.1.1",
+ "from": "safe-buffer@>=5.1.1 <5.2.0",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"
+ },
+ "sax": {
+ "version": "1.2.4",
+ "from": "sax@>=1.2.1 <1.3.0",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz"
+ },
+ "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",
+ "dependencies": {
+ "ajv": {
+ "version": "5.2.1",
+ "from": "ajv@>=5.0.0 <6.0.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.1.tgz"
+ }
+ }
+ },
+ "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"
+ },
+ "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"
+ },
+ "set-getter": {
+ "version": "0.1.0",
+ "from": "set-getter@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz"
+ },
+ "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"
+ },
+ "set-value": {
+ "version": "0.4.3",
+ "from": "set-value@>=0.4.2 <0.5.0",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz"
+ },
+ "setimmediate": {
+ "version": "1.0.5",
+ "from": "setimmediate@>=1.0.5 <2.0.0",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz"
+ },
+ "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"
+ },
+ "snapdragon": {
+ "version": "0.8.1",
+ "from": "snapdragon@>=0.8.1 <0.9.0",
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.1.tgz",
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"
+ },
+ "is-descriptor": {
+ "version": "0.1.5",
+ "from": "is-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.5.tgz"
+ },
+ "lazy-cache": {
+ "version": "2.0.2",
+ "from": "lazy-cache@^2.0.2",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz"
+ }
+ }
+ },
+ "snapdragon-node": {
+ "version": "2.1.1",
+ "from": "snapdragon-node@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "from": "isobject@^3.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz"
+ }
+ }
+ },
+ "snapdragon-util": {
+ "version": "3.0.1",
+ "from": "snapdragon-util@>=3.0.1 <4.0.0",
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "source-map-resolve": {
+ "version": "0.5.0",
+ "from": "source-map-resolve@>=0.5.0 <0.6.0",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.0.tgz"
+ },
+ "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"
+ },
+ "source-map-url": {
+ "version": "0.4.0",
+ "from": "source-map-url@>=0.4.0 <0.5.0",
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz"
+ },
+ "sourcemapped-stacktrace": {
+ "version": "1.1.6",
+ "from": "sourcemapped-stacktrace@>=1.1.6 <2.0.0",
+ "resolved": "https://registry.npmjs.org/sourcemapped-stacktrace/-/sourcemapped-stacktrace-1.1.6.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "split-string": {
+ "version": "2.1.1",
+ "from": "split-string@>=2.1.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-2.1.1.tgz"
+ },
+ "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"
+ },
+ "stackframe": {
+ "version": "0.3.1",
+ "from": "stackframe@>=0.3.1 <0.4.0",
+ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-0.3.1.tgz"
+ },
+ "static-extend": {
+ "version": "0.1.2",
+ "from": "static-extend@>=0.1.1 <0.2.0",
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"
+ },
+ "is-descriptor": {
+ "version": "0.1.5",
+ "from": "is-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.5.tgz"
+ },
+ "lazy-cache": {
+ "version": "2.0.2",
+ "from": "lazy-cache@^2.0.2",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz"
+ }
+ }
+ },
+ "statuses": {
+ "version": "1.3.1",
+ "from": "statuses@>=1.3.1 <1.4.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "string_decoder": {
+ "version": "1.0.3",
+ "from": "string_decoder@>=1.0.3 <1.1.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "style-loader": {
+ "version": "0.18.2",
+ "from": "style-loader@0.18.2",
+ "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.18.2.tgz"
+ },
+ "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"
+ },
+ "svgo": {
+ "version": "0.7.2",
+ "from": "svgo@>=0.7.0 <0.8.0",
+ "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz"
+ },
+ "symbol-observable": {
+ "version": "1.0.4",
+ "from": "symbol-observable@>=1.0.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz"
+ },
+ "tapable": {
+ "version": "0.2.6",
+ "from": "tapable@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.6.tgz"
+ },
+ "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"
+ },
+ "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"
+ },
+ "to-fast-properties": {
+ "version": "1.0.3",
+ "from": "to-fast-properties@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz"
+ },
+ "to-object-path": {
+ "version": "0.3.0",
+ "from": "to-object-path@>=0.3.0 <0.4.0",
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz"
+ },
+ "to-regex": {
+ "version": "3.0.1",
+ "from": "to-regex@>=3.0.1 <4.0.0",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.1.tgz",
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"
+ },
+ "is-descriptor": {
+ "version": "0.1.5",
+ "from": "is-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.5.tgz"
+ },
+ "lazy-cache": {
+ "version": "2.0.2",
+ "from": "lazy-cache@^2.0.2",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz"
+ }
+ }
+ },
+ "to-regex-range": {
+ "version": "2.1.1",
+ "from": "to-regex-range@>=2.1.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "dependencies": {
+ "is-number": {
+ "version": "3.0.0",
+ "from": "is-number@^3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz"
+ }
+ }
+ },
+ "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"
+ },
+ "typescript": {
+ "version": "2.4.1",
+ "from": "typescript@2.4.1",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.4.1.tgz"
+ },
+ "ua-parser-js": {
+ "version": "0.7.13",
+ "from": "ua-parser-js@>=0.7.9 <0.8.0",
+ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.13.tgz"
+ },
+ "uglify-js": {
+ "version": "2.8.29",
+ "from": "uglify-js@>=2.8.5 <3.0.0",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
+ "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"
+ }
+ }
+ },
+ "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",
+ "optional": true
+ },
+ "union-value": {
+ "version": "0.2.4",
+ "from": "union-value@>=0.2.3 <0.3.0",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-0.2.4.tgz"
+ },
+ "uniq": {
+ "version": "1.0.1",
+ "from": "uniq@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz"
+ },
+ "uniqid": {
+ "version": "4.1.1",
+ "from": "uniqid@>=4.0.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz"
+ },
+ "uniqs": {
+ "version": "2.0.0",
+ "from": "uniqs@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz"
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "from": "unpipe@>=1.0.0 <1.1.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
+ },
+ "unset-value": {
+ "version": "0.1.2",
+ "from": "unset-value@>=0.1.1 <0.2.0",
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-0.1.2.tgz",
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "from": "isobject@^3.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz"
+ }
+ }
+ },
+ "urix": {
+ "version": "0.1.0",
+ "from": "urix@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz"
+ },
+ "url": {
+ "version": "0.11.0",
+ "from": "url@>=0.11.0 <0.12.0",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
+ "dependencies": {
+ "punycode": {
+ "version": "1.3.2",
+ "from": "punycode@1.3.2",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz"
+ }
+ }
+ },
+ "url-loader": {
+ "version": "0.5.9",
+ "from": "url-loader@0.5.9",
+ "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.5.9.tgz"
+ },
+ "use": {
+ "version": "2.0.2",
+ "from": "use@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/use/-/use-2.0.2.tgz",
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"
+ },
+ "is-descriptor": {
+ "version": "0.1.5",
+ "from": "is-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.5.tgz"
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "from": "isobject@^3.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz"
+ },
+ "lazy-cache": {
+ "version": "2.0.2",
+ "from": "lazy-cache@^2.0.2",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz"
+ }
+ }
+ },
+ "util": {
+ "version": "0.10.3",
+ "from": "util@>=0.10.3 <0.11.0",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.1",
+ "from": "inherits@2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
+ }
+ }
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "vendors": {
+ "version": "1.0.1",
+ "from": "vendors@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz"
+ },
+ "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"
+ },
+ "warning": {
+ "version": "3.0.0",
+ "from": "warning@>=3.0.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz"
+ },
+ "watchpack": {
+ "version": "1.3.1",
+ "from": "watchpack@>=1.3.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.3.1.tgz"
+ },
+ "webpack": {
+ "version": "2.5.1",
+ "from": "webpack@2.5.1",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-2.5.1.tgz",
+ "dependencies": {
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ }
+ }
+ },
+ "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",
+ "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"
+ }
+ }
+ },
+ "webpack-hot-middleware": {
+ "version": "2.18.2",
+ "from": "webpack-hot-middleware@2.18.2",
+ "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.18.2.tgz"
+ },
+ "webpack-merge": {
+ "version": "4.1.0",
+ "from": "webpack-merge@4.1.0",
+ "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.0.tgz"
+ },
+ "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"
+ },
+ "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",
+ "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"
+ }
+ }
+ },
+ "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"
+ },
+ "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"
+ },
+ "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"
+ },
+ "wordwrap": {
+ "version": "0.0.2",
+ "from": "wordwrap@0.0.2",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz"
+ },
+ "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"
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "from": "xtend@>=4.0.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
+ },
+ "y18n": {
+ "version": "3.2.1",
+ "from": "y18n@>=3.2.1 <4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz"
+ },
+ "yargs": {
+ "version": "6.6.0",
+ "from": "yargs@>=6.0.0 <7.0.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz",
+ "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"
+ },
+ "cliui": {
+ "version": "3.2.0",
+ "from": "cliui@>=3.2.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz"
+ }
+ }
+ },
+ "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",
+ "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"
+ }
+ }
+ }
+ }
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/package.json b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/package.json
new file mode 100644
index 0000000000..1844d56836
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/package.json
@@ -0,0 +1,44 @@
+{
+ "name": "ReactReduxSpa",
+ "private": true,
+ "version": "0.0.0",
+ "devDependencies": {
+ "@types/history": "4.6.0",
+ "@types/react": "15.0.35",
+ "@types/react-dom": "15.5.1",
+ "@types/react-hot-loader": "3.0.3",
+ "@types/react-redux": "4.4.45",
+ "@types/react-router": "4.0.12",
+ "@types/react-router-dom": "4.0.5",
+ "@types/react-router-redux": "5.0.3",
+ "@types/webpack": "2.2.15",
+ "@types/webpack-env": "1.13.0",
+ "aspnet-prerendering": "^3.0.1",
+ "aspnet-webpack": "^2.0.1",
+ "aspnet-webpack-react": "^3.0.0",
+ "awesome-typescript-loader": "3.2.1",
+ "bootstrap": "3.3.7",
+ "css-loader": "0.28.4",
+ "domain-task": "^3.0.3",
+ "event-source-polyfill": "0.0.9",
+ "extract-text-webpack-plugin": "2.1.2",
+ "file-loader": "0.11.2",
+ "history": "4.6.3",
+ "jquery": "3.2.1",
+ "node-noop": "1.0.0",
+ "react": "15.6.1",
+ "react-dom": "15.6.1",
+ "react-hot-loader": "3.0.0-beta.7",
+ "react-redux": "5.0.5",
+ "react-router-dom": "4.1.1",
+ "react-router-redux": "5.0.0-alpha.6",
+ "redux": "3.7.1",
+ "redux-thunk": "2.2.0",
+ "style-loader": "0.18.2",
+ "typescript": "2.4.1",
+ "url-loader": "0.5.9",
+ "webpack": "2.5.1",
+ "webpack-hot-middleware": "2.18.2",
+ "webpack-merge": "4.1.0"
+ }
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/tsconfig.json b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/tsconfig.json
new file mode 100644
index 0000000000..7909f2df33
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/tsconfig.json
@@ -0,0 +1,19 @@
+{
+ "compilerOptions": {
+ "baseUrl": ".",
+ "module": "es2015",
+ "moduleResolution": "node",
+ "target": "es5",
+ "jsx": "react",
+ "experimentalDecorators": true,
+ "sourceMap": true,
+ "skipDefaultLibCheck": true,
+ "strict": true,
+ "lib": ["es6", "dom"],
+ "types": ["webpack-env"]
+ },
+ "exclude": [
+ "bin",
+ "node_modules"
+ ]
+}
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/webpack.config.js b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/webpack.config.js
new file mode 100644
index 0000000000..59a5739087
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/webpack.config.js
@@ -0,0 +1,76 @@
+const path = require('path');
+const webpack = require('webpack');
+const ExtractTextPlugin = require('extract-text-webpack-plugin');
+const CheckerPlugin = require('awesome-typescript-loader').CheckerPlugin;
+const merge = require('webpack-merge');
+
+module.exports = (env) => {
+ const isDevBuild = !(env && env.prod);
+
+ // Configuration in common to both client-side and server-side bundles
+ const sharedConfig = () => ({
+ stats: { modules: false },
+ resolve: { extensions: ['.js', '.jsx', '.ts', '.tsx'] },
+ output: {
+ filename: '[name].js',
+ publicPath: 'dist/' // Webpack dev middleware, if enabled, handles requests for this URL prefix
+ },
+ module: {
+ rules: [
+ { test: /\.tsx?$/, include: /ClientApp/, use: 'awesome-typescript-loader?silent=true' },
+ { test: /\.(png|jpg|jpeg|gif|svg)$/, use: 'url-loader?limit=25000' }
+ ]
+ },
+ plugins: [new CheckerPlugin()]
+ });
+
+ // Configuration for client-side bundle suitable for running in browsers
+ const clientBundleOutputDir = './wwwroot/dist';
+ const clientBundleConfig = merge(sharedConfig(), {
+ entry: { 'main-client': './ClientApp/boot-client.tsx' },
+ module: {
+ rules: [
+ { test: /\.css$/, use: ExtractTextPlugin.extract({ use: isDevBuild ? 'css-loader' : 'css-loader?minimize' }) }
+ ]
+ },
+ output: { path: path.join(__dirname, clientBundleOutputDir) },
+ plugins: [
+ new ExtractTextPlugin('site.css'),
+ 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(clientBundleOutputDir, '[resourcePath]') // Point sourcemap entries to the original file locations on disk
+ })
+ ] : [
+ // Plugins that apply in production builds only
+ new webpack.optimize.UglifyJsPlugin()
+ ])
+ });
+
+ // Configuration for server-side (prerendering) bundle suitable for running in Node
+ const serverBundleConfig = merge(sharedConfig(), {
+ resolve: { mainFields: ['main'] },
+ entry: { 'main-server': './ClientApp/boot-server.tsx' },
+ plugins: [
+ new webpack.DllReferencePlugin({
+ context: __dirname,
+ manifest: require('./ClientApp/dist/vendor-manifest.json'),
+ sourceType: 'commonjs2',
+ name: './vendor'
+ })
+ ],
+ output: {
+ libraryTarget: 'commonjs',
+ path: path.join(__dirname, './ClientApp/dist')
+ },
+ target: 'node',
+ devtool: 'inline-source-map'
+ });
+
+ return [clientBundleConfig, serverBundleConfig];
+};
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/webpack.config.vendor.js b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/webpack.config.vendor.js
new file mode 100644
index 0000000000..eaaa647ac5
--- /dev/null
+++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/webpack.config.vendor.js
@@ -0,0 +1,87 @@
+const path = require('path');
+const webpack = require('webpack');
+const ExtractTextPlugin = require('extract-text-webpack-plugin');
+const merge = require('webpack-merge');
+
+module.exports = (env) => {
+ const isDevBuild = !(env && env.prod);
+ const extractCSS = new ExtractTextPlugin('vendor.css');
+
+ const sharedConfig = {
+ stats: { modules: false },
+ resolve: { extensions: [ '.js' ] },
+ module: {
+ rules: [
+ { test: /\.(png|woff|woff2|eot|ttf|svg)(\?|$)/, use: 'url-loader?limit=100000' }
+ ]
+ },
+ entry: {
+ vendor: [
+ 'bootstrap',
+ 'bootstrap/dist/css/bootstrap.css',
+ 'domain-task',
+ 'event-source-polyfill',
+ 'history',
+ 'react',
+ 'react-dom',
+ 'react-router-dom',
+ 'react-redux',
+ 'redux',
+ 'redux-thunk',
+ 'react-router-redux',
+ 'jquery'
+ ],
+ },
+ output: {
+ publicPath: 'dist/',
+ filename: '[name].js',
+ library: '[name]_[hash]',
+ },
+ plugins: [
+ new webpack.ProvidePlugin({ $: 'jquery', jQuery: 'jquery' }), // Maps these identifiers to the jQuery package (because Bootstrap expects it to be a global variable)
+ new webpack.NormalModuleReplacementPlugin(/\/iconv-loader$/, require.resolve('node-noop')), // Workaround for https://github.com/andris9/encoding/issues/16
+ new webpack.DefinePlugin({
+ 'process.env.NODE_ENV': isDevBuild ? '"development"' : '"production"'
+ })
+ ]
+ };
+
+ const clientBundleConfig = merge(sharedConfig, {
+ output: { path: path.join(__dirname, 'wwwroot', 'dist') },
+ module: {
+ rules: [
+ { test: /\.css(\?|$)/, use: extractCSS.extract({ use: isDevBuild ? 'css-loader' : 'css-loader?minimize' }) }
+ ]
+ },
+ plugins: [
+ extractCSS,
+ new webpack.DllPlugin({
+ path: path.join(__dirname, 'wwwroot', 'dist', '[name]-manifest.json'),
+ name: '[name]_[hash]'
+ })
+ ].concat(isDevBuild ? [] : [
+ new webpack.optimize.UglifyJsPlugin()
+ ])
+ });
+
+ const serverBundleConfig = merge(sharedConfig, {
+ target: 'node',
+ resolve: { mainFields: ['main'] },
+ output: {
+ path: path.join(__dirname, 'ClientApp', 'dist'),
+ libraryTarget: 'commonjs2',
+ },
+ module: {
+ rules: [ { test: /\.css(\?|$)/, use: isDevBuild ? 'css-loader' : 'css-loader?minimize' } ]
+ },
+ entry: { vendor: ['aspnet-prerendering', 'react-dom/server'] },
+ plugins: [
+ new webpack.DllPlugin({
+ path: path.join(__dirname, 'ClientApp', 'dist', '[name]-manifest.json'),
+ name: '[name]_[hash]'
+ })
+ ]
+ });
+
+ return [clientBundleConfig, serverBundleConfig];
+};
diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/wwwroot/favicon.ico b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/wwwroot/favicon.ico
new file mode 100644
index 0000000000..a3a799985c
Binary files /dev/null and b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/ReactRedux-CSharp/wwwroot/favicon.ico differ