From b84b67b578f20859c4c1ac3f156de1027bc353e2 Mon Sep 17 00:00:00 2001
From: uiopak <44174807+uiopak@users.noreply.github.com>
Date: Fri, 3 Jun 2022 00:13:37 +0200
Subject: [PATCH 1/7] Update SpaProxy to 6.0.5
---
src/Vite-CSharp.csproj.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Vite-CSharp.csproj.in b/src/Vite-CSharp.csproj.in
index beaf2e7..d30cb01 100644
--- a/src/Vite-CSharp.csproj.in
+++ b/src/Vite-CSharp.csproj.in
@@ -15,7 +15,7 @@
-
+
From 05e03789c4111c883f2388cefbb8716f6fa25305 Mon Sep 17 00:00:00 2001
From: uiopak <44174807+uiopak@users.noreply.github.com>
Date: Fri, 3 Jun 2022 00:57:21 +0200
Subject: [PATCH 2/7] Fixed namespace, cert gen, add pnpm and no-https options
Namespace set to Company.WebApplication1, fix cert gen by using spawnSync
---
src/Vite-CSharp.csproj.in | 29 +++++++++----------
.../.files/lit-ts/aspnetcore-https.js | 7 ++---
.../Vite-CSharp/.files/lit-ts/package.json | 4 +++
.../Vite-CSharp/.files/lit-ts/vite.config.ts | 14 +++++++--
.../.files/lit/aspnetcore-https.js | 7 ++---
.../Vite-CSharp/.files/lit/package.json | 2 ++
.../Vite-CSharp/.files/lit/vite.config.js | 14 +++++++--
.../.files/preact-ts/aspnetcore-https.js | 7 ++---
.../Vite-CSharp/.files/preact-ts/package.json | 2 ++
.../.files/preact-ts/vite.config.ts | 12 ++++++--
.../.files/preact/aspnetcore-https.js | 7 ++---
.../Vite-CSharp/.files/preact/package.json | 2 ++
.../Vite-CSharp/.files/preact/vite.config.js | 12 ++++++--
.../.files/react-ts/aspnetcore-https.js | 7 ++---
.../Vite-CSharp/.files/react-ts/package.json | 2 ++
.../.files/react-ts/vite.config.ts | 12 ++++++--
.../.files/react/aspnetcore-https.js | 7 ++---
.../Vite-CSharp/.files/react/package.json | 2 ++
.../Vite-CSharp/.files/react/vite.config.js | 12 ++++++--
.../.files/svelte-ts/aspnetcore-https.js | 7 ++---
.../Vite-CSharp/.files/svelte-ts/package.json | 2 ++
.../{vite.config.js => vite.config.ts} | 12 ++++++--
.../.files/svelte/aspnetcore-https.js | 7 ++---
.../Vite-CSharp/.files/svelte/package.json | 4 +++
.../Vite-CSharp/.files/svelte/vite.config.js | 12 ++++++--
.../.files/vanilla-ts/aspnetcore-https.js | 7 ++---
.../.files/vanilla-ts/package.json | 2 ++
.../.files/vanilla-ts/vite.config.ts | 12 ++++++--
.../.files/vanilla/aspnetcore-https.js | 7 ++---
.../Vite-CSharp/.files/vanilla/package.json | 2 ++
.../Vite-CSharp/.files/vanilla/vite.config.ts | 12 ++++++--
.../.files/vue-ts/aspnetcore-https.js | 7 ++---
.../Vite-CSharp/.files/vue-ts/package.json | 2 ++
.../Vite-CSharp/.files/vue-ts/vite.config.ts | 12 ++++++--
.../.files/vue/aspnetcore-https.js | 7 ++---
.../Vite-CSharp/.files/vue/package.json | 2 ++
.../Vite-CSharp/.files/vue/vite.config.js | 12 ++++++--
.../.template.config/dotnetcli.host.json | 8 +++++
.../.template.config/template.json | 22 ++++++++++++++
.../Controllers/WeatherForecastController.cs | 4 +--
src/templates/Vite-CSharp/Program.cs | 2 ++
.../Properties/launchSettings.json | 12 ++++++--
src/templates/Vite-CSharp/WeatherForecast.cs | 2 +-
43 files changed, 245 insertions(+), 94 deletions(-)
rename src/templates/Vite-CSharp/.files/svelte-ts/{vite.config.js => vite.config.ts} (69%)
diff --git a/src/Vite-CSharp.csproj.in b/src/Vite-CSharp.csproj.in
index d30cb01..85dfd75 100644
--- a/src/Vite-CSharp.csproj.in
+++ b/src/Vite-CSharp.csproj.in
@@ -1,19 +1,23 @@
-
+
net6.0
enable
false
True
ClientApp\
- https://localhost:5002
-
- npm start
+ https://localhost:5002
+ http://localhost:5002
+
+ npm
+
+ pnpm
+
+ $(PackageManager) start
Company.WebApplication1
enable
-
+
@@ -25,25 +29,20 @@
-
-
-
-
-
-
-
+
+
-
-
+
+
diff --git a/src/templates/Vite-CSharp/.files/lit-ts/aspnetcore-https.js b/src/templates/Vite-CSharp/.files/lit-ts/aspnetcore-https.js
index 9e58786..5f28332 100644
--- a/src/templates/Vite-CSharp/.files/lit-ts/aspnetcore-https.js
+++ b/src/templates/Vite-CSharp/.files/lit-ts/aspnetcore-https.js
@@ -1,6 +1,6 @@
// This script sets up HTTPS for the application using the ASP.NET Core HTTPS certificate
const fs = require('fs');
-const spawn = require('child_process').spawn;
+const spawnSync = require('child_process').spawnSync;
const path = require('path');
@@ -21,7 +21,7 @@ const certFilePath = path.join(baseFolder, `${certificateName}.pem`);
const keyFilePath = path.join(baseFolder, `${certificateName}.key`);
if (!fs.existsSync(certFilePath) || !fs.existsSync(keyFilePath)) {
- spawn('dotnet', [
+ spawnSync('dotnet', [
'dev-certs',
'https',
'--export-path',
@@ -29,8 +29,7 @@ if (!fs.existsSync(certFilePath) || !fs.existsSync(keyFilePath)) {
'--format',
'Pem',
'--no-password',
- ], { stdio: 'inherit', })
- .on('exit', (code) => process.exit(code));
+ ], { stdio: 'inherit', });
}
module.exports = {
diff --git a/src/templates/Vite-CSharp/.files/lit-ts/package.json b/src/templates/Vite-CSharp/.files/lit-ts/package.json
index 2adc514..b2d0206 100644
--- a/src/templates/Vite-CSharp/.files/lit-ts/package.json
+++ b/src/templates/Vite-CSharp/.files/lit-ts/package.json
@@ -11,6 +11,10 @@
"types"
],
"scripts": {
+//#if(RequiresHttps)
+ "prestart": "node ./aspnetcore-https.js",
+//#endif
+ "start": "vite",
"dev": "vite",
"build": "tsc && vite build"
},
diff --git a/src/templates/Vite-CSharp/.files/lit-ts/vite.config.ts b/src/templates/Vite-CSharp/.files/lit-ts/vite.config.ts
index 31d258a..3947742 100644
--- a/src/templates/Vite-CSharp/.files/lit-ts/vite.config.ts
+++ b/src/templates/Vite-CSharp/.files/lit-ts/vite.config.ts
@@ -1,6 +1,8 @@
import { defineConfig } from 'vite'
+//#if (RequiresHttps)
import { readFileSync } from 'fs'
import { certFilePath, keyFilePath } from './aspnetcore-https'
+//#endif
// https://vitejs.dev/config/
export default defineConfig({
@@ -14,18 +16,24 @@ export default defineConfig({
}
},
server: {
+ //#if (RequiresHttps)
https: {
key: readFileSync(keyFilePath),
cert: readFileSync(certFilePath)
},
+ //#endif
port: 5002,
strictPort: true,
proxy: {
'/api': {
+ //#if (RequiresHttps)
target: 'https://localhost:5001/',
- changeOrigin: true,
- secure: true
+ //#else
+ target: 'http://localhost:5000/',
+ //#endif
+ secure: false,
+ changeOrigin: true
}
}
}
-})
+});
diff --git a/src/templates/Vite-CSharp/.files/lit/aspnetcore-https.js b/src/templates/Vite-CSharp/.files/lit/aspnetcore-https.js
index 9e58786..5f28332 100644
--- a/src/templates/Vite-CSharp/.files/lit/aspnetcore-https.js
+++ b/src/templates/Vite-CSharp/.files/lit/aspnetcore-https.js
@@ -1,6 +1,6 @@
// This script sets up HTTPS for the application using the ASP.NET Core HTTPS certificate
const fs = require('fs');
-const spawn = require('child_process').spawn;
+const spawnSync = require('child_process').spawnSync;
const path = require('path');
@@ -21,7 +21,7 @@ const certFilePath = path.join(baseFolder, `${certificateName}.pem`);
const keyFilePath = path.join(baseFolder, `${certificateName}.key`);
if (!fs.existsSync(certFilePath) || !fs.existsSync(keyFilePath)) {
- spawn('dotnet', [
+ spawnSync('dotnet', [
'dev-certs',
'https',
'--export-path',
@@ -29,8 +29,7 @@ if (!fs.existsSync(certFilePath) || !fs.existsSync(keyFilePath)) {
'--format',
'Pem',
'--no-password',
- ], { stdio: 'inherit', })
- .on('exit', (code) => process.exit(code));
+ ], { stdio: 'inherit', });
}
module.exports = {
diff --git a/src/templates/Vite-CSharp/.files/lit/package.json b/src/templates/Vite-CSharp/.files/lit/package.json
index 4ad005b..cc68066 100644
--- a/src/templates/Vite-CSharp/.files/lit/package.json
+++ b/src/templates/Vite-CSharp/.files/lit/package.json
@@ -9,7 +9,9 @@
"dist"
],
"scripts": {
+//#if(RequiresHttps)
"prestart": "node ./aspnetcore-https.js",
+//#endif
"start": "vite",
"dev": "vite",
"build": "vite build"
diff --git a/src/templates/Vite-CSharp/.files/lit/vite.config.js b/src/templates/Vite-CSharp/.files/lit/vite.config.js
index 330d2aa..177d210 100644
--- a/src/templates/Vite-CSharp/.files/lit/vite.config.js
+++ b/src/templates/Vite-CSharp/.files/lit/vite.config.js
@@ -1,6 +1,8 @@
import { defineConfig } from 'vite'
+//#if (RequiresHttps)
import { readFileSync } from 'fs'
import { certFilePath, keyFilePath } from './aspnetcore-https'
+//#endif
// https://vitejs.dev/config/
export default defineConfig({
@@ -14,18 +16,24 @@ export default defineConfig({
}
},
server: {
+ //#if (RequiresHttps)
https: {
key: readFileSync(keyFilePath),
cert: readFileSync(certFilePath)
},
+ //#endif
port: 5002,
strictPort: true,
proxy: {
'/api': {
+ //#if (RequiresHttps)
target: 'https://localhost:5001/',
- changeOrigin: true,
- secure: true
+ //#else
+ target: 'http://localhost:5000/',
+ //#endif
+ secure: false,
+ changeOrigin: true
}
}
}
-})
+});
diff --git a/src/templates/Vite-CSharp/.files/preact-ts/aspnetcore-https.js b/src/templates/Vite-CSharp/.files/preact-ts/aspnetcore-https.js
index 9e58786..5f28332 100644
--- a/src/templates/Vite-CSharp/.files/preact-ts/aspnetcore-https.js
+++ b/src/templates/Vite-CSharp/.files/preact-ts/aspnetcore-https.js
@@ -1,6 +1,6 @@
// This script sets up HTTPS for the application using the ASP.NET Core HTTPS certificate
const fs = require('fs');
-const spawn = require('child_process').spawn;
+const spawnSync = require('child_process').spawnSync;
const path = require('path');
@@ -21,7 +21,7 @@ const certFilePath = path.join(baseFolder, `${certificateName}.pem`);
const keyFilePath = path.join(baseFolder, `${certificateName}.key`);
if (!fs.existsSync(certFilePath) || !fs.existsSync(keyFilePath)) {
- spawn('dotnet', [
+ spawnSync('dotnet', [
'dev-certs',
'https',
'--export-path',
@@ -29,8 +29,7 @@ if (!fs.existsSync(certFilePath) || !fs.existsSync(keyFilePath)) {
'--format',
'Pem',
'--no-password',
- ], { stdio: 'inherit', })
- .on('exit', (code) => process.exit(code));
+ ], { stdio: 'inherit', });
}
module.exports = {
diff --git a/src/templates/Vite-CSharp/.files/preact-ts/package.json b/src/templates/Vite-CSharp/.files/preact-ts/package.json
index 8691442..f4f4ab7 100644
--- a/src/templates/Vite-CSharp/.files/preact-ts/package.json
+++ b/src/templates/Vite-CSharp/.files/preact-ts/package.json
@@ -2,7 +2,9 @@
"name": "preact-ts",
"version": "0.0.0",
"scripts": {
+//#if(RequiresHttps)
"prestart": "node ./aspnetcore-https.js",
+//#endif
"start": "vite",
"dev": "vite",
"build": "tsc && vite build",
diff --git a/src/templates/Vite-CSharp/.files/preact-ts/vite.config.ts b/src/templates/Vite-CSharp/.files/preact-ts/vite.config.ts
index 0979b0b..1aa6da0 100644
--- a/src/templates/Vite-CSharp/.files/preact-ts/vite.config.ts
+++ b/src/templates/Vite-CSharp/.files/preact-ts/vite.config.ts
@@ -1,23 +1,31 @@
import { defineConfig } from 'vite'
import preact from '@preact/preset-vite'
+//#if (RequiresHttps)
import { readFileSync } from 'fs'
import { certFilePath, keyFilePath } from './aspnetcore-https'
+//#endif
// https://vitejs.dev/config/
export default defineConfig({
plugins: [preact()],
server: {
+ //#if (RequiresHttps)
https: {
key: readFileSync(keyFilePath),
cert: readFileSync(certFilePath)
},
+ //#endif
port: 5002,
strictPort: true,
proxy: {
'/api': {
+ //#if (RequiresHttps)
target: 'https://localhost:5001/',
- changeOrigin: true,
- secure: true
+ //#else
+ target: 'http://localhost:5000/',
+ //#endif
+ secure: false,
+ changeOrigin: true
}
}
}
diff --git a/src/templates/Vite-CSharp/.files/preact/aspnetcore-https.js b/src/templates/Vite-CSharp/.files/preact/aspnetcore-https.js
index 9e58786..5f28332 100644
--- a/src/templates/Vite-CSharp/.files/preact/aspnetcore-https.js
+++ b/src/templates/Vite-CSharp/.files/preact/aspnetcore-https.js
@@ -1,6 +1,6 @@
// This script sets up HTTPS for the application using the ASP.NET Core HTTPS certificate
const fs = require('fs');
-const spawn = require('child_process').spawn;
+const spawnSync = require('child_process').spawnSync;
const path = require('path');
@@ -21,7 +21,7 @@ const certFilePath = path.join(baseFolder, `${certificateName}.pem`);
const keyFilePath = path.join(baseFolder, `${certificateName}.key`);
if (!fs.existsSync(certFilePath) || !fs.existsSync(keyFilePath)) {
- spawn('dotnet', [
+ spawnSync('dotnet', [
'dev-certs',
'https',
'--export-path',
@@ -29,8 +29,7 @@ if (!fs.existsSync(certFilePath) || !fs.existsSync(keyFilePath)) {
'--format',
'Pem',
'--no-password',
- ], { stdio: 'inherit', })
- .on('exit', (code) => process.exit(code));
+ ], { stdio: 'inherit', });
}
module.exports = {
diff --git a/src/templates/Vite-CSharp/.files/preact/package.json b/src/templates/Vite-CSharp/.files/preact/package.json
index aa84f44..b943f84 100644
--- a/src/templates/Vite-CSharp/.files/preact/package.json
+++ b/src/templates/Vite-CSharp/.files/preact/package.json
@@ -2,7 +2,9 @@
"name": "preact",
"version": "0.0.0",
"scripts": {
+//#if(RequiresHttps)
"prestart": "node ./aspnetcore-https.js",
+//#endif
"start": "vite",
"dev": "vite",
"build": "vite build",
diff --git a/src/templates/Vite-CSharp/.files/preact/vite.config.js b/src/templates/Vite-CSharp/.files/preact/vite.config.js
index 0979b0b..1aa6da0 100644
--- a/src/templates/Vite-CSharp/.files/preact/vite.config.js
+++ b/src/templates/Vite-CSharp/.files/preact/vite.config.js
@@ -1,23 +1,31 @@
import { defineConfig } from 'vite'
import preact from '@preact/preset-vite'
+//#if (RequiresHttps)
import { readFileSync } from 'fs'
import { certFilePath, keyFilePath } from './aspnetcore-https'
+//#endif
// https://vitejs.dev/config/
export default defineConfig({
plugins: [preact()],
server: {
+ //#if (RequiresHttps)
https: {
key: readFileSync(keyFilePath),
cert: readFileSync(certFilePath)
},
+ //#endif
port: 5002,
strictPort: true,
proxy: {
'/api': {
+ //#if (RequiresHttps)
target: 'https://localhost:5001/',
- changeOrigin: true,
- secure: true
+ //#else
+ target: 'http://localhost:5000/',
+ //#endif
+ secure: false,
+ changeOrigin: true
}
}
}
diff --git a/src/templates/Vite-CSharp/.files/react-ts/aspnetcore-https.js b/src/templates/Vite-CSharp/.files/react-ts/aspnetcore-https.js
index 9e58786..5f28332 100644
--- a/src/templates/Vite-CSharp/.files/react-ts/aspnetcore-https.js
+++ b/src/templates/Vite-CSharp/.files/react-ts/aspnetcore-https.js
@@ -1,6 +1,6 @@
// This script sets up HTTPS for the application using the ASP.NET Core HTTPS certificate
const fs = require('fs');
-const spawn = require('child_process').spawn;
+const spawnSync = require('child_process').spawnSync;
const path = require('path');
@@ -21,7 +21,7 @@ const certFilePath = path.join(baseFolder, `${certificateName}.pem`);
const keyFilePath = path.join(baseFolder, `${certificateName}.key`);
if (!fs.existsSync(certFilePath) || !fs.existsSync(keyFilePath)) {
- spawn('dotnet', [
+ spawnSync('dotnet', [
'dev-certs',
'https',
'--export-path',
@@ -29,8 +29,7 @@ if (!fs.existsSync(certFilePath) || !fs.existsSync(keyFilePath)) {
'--format',
'Pem',
'--no-password',
- ], { stdio: 'inherit', })
- .on('exit', (code) => process.exit(code));
+ ], { stdio: 'inherit', });
}
module.exports = {
diff --git a/src/templates/Vite-CSharp/.files/react-ts/package.json b/src/templates/Vite-CSharp/.files/react-ts/package.json
index 2dea038..6755d03 100644
--- a/src/templates/Vite-CSharp/.files/react-ts/package.json
+++ b/src/templates/Vite-CSharp/.files/react-ts/package.json
@@ -2,7 +2,9 @@
"name": "react-ts",
"version": "0.0.0",
"scripts": {
+//#if(RequiresHttps)
"prestart": "node ./aspnetcore-https.js",
+//#endif
"start": "vite",
"dev": "vite",
"build": "tsc && vite build",
diff --git a/src/templates/Vite-CSharp/.files/react-ts/vite.config.ts b/src/templates/Vite-CSharp/.files/react-ts/vite.config.ts
index 756a3cb..8891d96 100644
--- a/src/templates/Vite-CSharp/.files/react-ts/vite.config.ts
+++ b/src/templates/Vite-CSharp/.files/react-ts/vite.config.ts
@@ -1,23 +1,31 @@
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
+//#if (RequiresHttps)
import { readFileSync } from 'fs'
import { certFilePath, keyFilePath } from './aspnetcore-https'
+//#endif
// https://vitejs.dev/config/
export default defineConfig({
plugins: [react()],
server: {
+ //#if (RequiresHttps)
https: {
key: readFileSync(keyFilePath),
cert: readFileSync(certFilePath)
},
+ //#endif
port: 5002,
strictPort: true,
proxy: {
'/api': {
+ //#if (RequiresHttps)
target: 'https://localhost:5001/',
- changeOrigin: true,
- secure: true
+ //#else
+ target: 'http://localhost:5000/',
+ //#endif
+ secure: false,
+ changeOrigin: true
}
}
}
diff --git a/src/templates/Vite-CSharp/.files/react/aspnetcore-https.js b/src/templates/Vite-CSharp/.files/react/aspnetcore-https.js
index 9e58786..5f28332 100644
--- a/src/templates/Vite-CSharp/.files/react/aspnetcore-https.js
+++ b/src/templates/Vite-CSharp/.files/react/aspnetcore-https.js
@@ -1,6 +1,6 @@
// This script sets up HTTPS for the application using the ASP.NET Core HTTPS certificate
const fs = require('fs');
-const spawn = require('child_process').spawn;
+const spawnSync = require('child_process').spawnSync;
const path = require('path');
@@ -21,7 +21,7 @@ const certFilePath = path.join(baseFolder, `${certificateName}.pem`);
const keyFilePath = path.join(baseFolder, `${certificateName}.key`);
if (!fs.existsSync(certFilePath) || !fs.existsSync(keyFilePath)) {
- spawn('dotnet', [
+ spawnSync('dotnet', [
'dev-certs',
'https',
'--export-path',
@@ -29,8 +29,7 @@ if (!fs.existsSync(certFilePath) || !fs.existsSync(keyFilePath)) {
'--format',
'Pem',
'--no-password',
- ], { stdio: 'inherit', })
- .on('exit', (code) => process.exit(code));
+ ], { stdio: 'inherit', });
}
module.exports = {
diff --git a/src/templates/Vite-CSharp/.files/react/package.json b/src/templates/Vite-CSharp/.files/react/package.json
index 042d5dc..2f9cc7a 100644
--- a/src/templates/Vite-CSharp/.files/react/package.json
+++ b/src/templates/Vite-CSharp/.files/react/package.json
@@ -2,7 +2,9 @@
"name": "react",
"version": "0.0.0",
"scripts": {
+//#if(RequiresHttps)
"prestart": "node ./aspnetcore-https.js",
+//#endif
"start": "vite",
"dev": "vite",
"build": "vite build",
diff --git a/src/templates/Vite-CSharp/.files/react/vite.config.js b/src/templates/Vite-CSharp/.files/react/vite.config.js
index 756a3cb..8891d96 100644
--- a/src/templates/Vite-CSharp/.files/react/vite.config.js
+++ b/src/templates/Vite-CSharp/.files/react/vite.config.js
@@ -1,23 +1,31 @@
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
+//#if (RequiresHttps)
import { readFileSync } from 'fs'
import { certFilePath, keyFilePath } from './aspnetcore-https'
+//#endif
// https://vitejs.dev/config/
export default defineConfig({
plugins: [react()],
server: {
+ //#if (RequiresHttps)
https: {
key: readFileSync(keyFilePath),
cert: readFileSync(certFilePath)
},
+ //#endif
port: 5002,
strictPort: true,
proxy: {
'/api': {
+ //#if (RequiresHttps)
target: 'https://localhost:5001/',
- changeOrigin: true,
- secure: true
+ //#else
+ target: 'http://localhost:5000/',
+ //#endif
+ secure: false,
+ changeOrigin: true
}
}
}
diff --git a/src/templates/Vite-CSharp/.files/svelte-ts/aspnetcore-https.js b/src/templates/Vite-CSharp/.files/svelte-ts/aspnetcore-https.js
index 703ec1d..2983a87 100644
--- a/src/templates/Vite-CSharp/.files/svelte-ts/aspnetcore-https.js
+++ b/src/templates/Vite-CSharp/.files/svelte-ts/aspnetcore-https.js
@@ -1,6 +1,6 @@
// This script sets up HTTPS for the application using the ASP.NET Core HTTPS certificate
import { existsSync } from 'fs';
-import { spawn } from 'child_process';
+import { spawnSync } from 'child_process';
import { join } from 'path';
@@ -21,7 +21,7 @@ const certFilePath = join(baseFolder, `${certificateName}.pem`);
const keyFilePath = join(baseFolder, `${certificateName}.key`);
if (!existsSync(certFilePath) || !existsSync(keyFilePath)) {
- spawn('dotnet', [
+ spawnSync('dotnet', [
'dev-certs',
'https',
'--export-path',
@@ -29,8 +29,7 @@ if (!existsSync(certFilePath) || !existsSync(keyFilePath)) {
'--format',
'Pem',
'--no-password',
- ], { stdio: 'inherit', })
- .on('exit', (code) => process.exit(code));
+ ], { stdio: 'inherit', });
}
export { certFilePath, keyFilePath };
diff --git a/src/templates/Vite-CSharp/.files/svelte-ts/package.json b/src/templates/Vite-CSharp/.files/svelte-ts/package.json
index 0160ef4..4908364 100644
--- a/src/templates/Vite-CSharp/.files/svelte-ts/package.json
+++ b/src/templates/Vite-CSharp/.files/svelte-ts/package.json
@@ -3,7 +3,9 @@
"version": "0.0.0",
"type": "module",
"scripts": {
+//#if(RequiresHttps)
"prestart": "node ./aspnetcore-https.js",
+//#endif
"start": "vite",
"dev": "vite",
"build": "vite build",
diff --git a/src/templates/Vite-CSharp/.files/svelte-ts/vite.config.js b/src/templates/Vite-CSharp/.files/svelte-ts/vite.config.ts
similarity index 69%
rename from src/templates/Vite-CSharp/.files/svelte-ts/vite.config.js
rename to src/templates/Vite-CSharp/.files/svelte-ts/vite.config.ts
index 4083384..b05ca37 100644
--- a/src/templates/Vite-CSharp/.files/svelte-ts/vite.config.js
+++ b/src/templates/Vite-CSharp/.files/svelte-ts/vite.config.ts
@@ -1,23 +1,31 @@
import { defineConfig } from 'vite'
import { svelte } from '@sveltejs/vite-plugin-svelte'
+//#if (RequiresHttps)
import { readFileSync } from 'fs'
import { certFilePath, keyFilePath } from './aspnetcore-https.js'
+//#endif
// https://vitejs.dev/config/
export default defineConfig({
plugins: [svelte()],
server: {
+ //#if (RequiresHttps)
https: {
key: readFileSync(keyFilePath),
cert: readFileSync(certFilePath)
},
+ //#endif
port: 5002,
strictPort: true,
proxy: {
'/api': {
+ //#if (RequiresHttps)
target: 'https://localhost:5001/',
- changeOrigin: true,
- secure: true
+ //#else
+ target: 'http://localhost:5000/',
+ //#endif
+ secure: false,
+ changeOrigin: true
}
}
}
diff --git a/src/templates/Vite-CSharp/.files/svelte/aspnetcore-https.js b/src/templates/Vite-CSharp/.files/svelte/aspnetcore-https.js
index 703ec1d..2983a87 100644
--- a/src/templates/Vite-CSharp/.files/svelte/aspnetcore-https.js
+++ b/src/templates/Vite-CSharp/.files/svelte/aspnetcore-https.js
@@ -1,6 +1,6 @@
// This script sets up HTTPS for the application using the ASP.NET Core HTTPS certificate
import { existsSync } from 'fs';
-import { spawn } from 'child_process';
+import { spawnSync } from 'child_process';
import { join } from 'path';
@@ -21,7 +21,7 @@ const certFilePath = join(baseFolder, `${certificateName}.pem`);
const keyFilePath = join(baseFolder, `${certificateName}.key`);
if (!existsSync(certFilePath) || !existsSync(keyFilePath)) {
- spawn('dotnet', [
+ spawnSync('dotnet', [
'dev-certs',
'https',
'--export-path',
@@ -29,8 +29,7 @@ if (!existsSync(certFilePath) || !existsSync(keyFilePath)) {
'--format',
'Pem',
'--no-password',
- ], { stdio: 'inherit', })
- .on('exit', (code) => process.exit(code));
+ ], { stdio: 'inherit', });
}
export { certFilePath, keyFilePath };
diff --git a/src/templates/Vite-CSharp/.files/svelte/package.json b/src/templates/Vite-CSharp/.files/svelte/package.json
index feaf36f..fd70c6a 100644
--- a/src/templates/Vite-CSharp/.files/svelte/package.json
+++ b/src/templates/Vite-CSharp/.files/svelte/package.json
@@ -3,6 +3,10 @@
"version": "0.0.0",
"type": "module",
"scripts": {
+//#if(RequiresHttps)
+ "prestart": "node ./aspnetcore-https.js",
+//#endif
+ "start": "vite",
"dev": "vite",
"build": "vite build",
"serve": "vite preview"
diff --git a/src/templates/Vite-CSharp/.files/svelte/vite.config.js b/src/templates/Vite-CSharp/.files/svelte/vite.config.js
index 4083384..b05ca37 100644
--- a/src/templates/Vite-CSharp/.files/svelte/vite.config.js
+++ b/src/templates/Vite-CSharp/.files/svelte/vite.config.js
@@ -1,23 +1,31 @@
import { defineConfig } from 'vite'
import { svelte } from '@sveltejs/vite-plugin-svelte'
+//#if (RequiresHttps)
import { readFileSync } from 'fs'
import { certFilePath, keyFilePath } from './aspnetcore-https.js'
+//#endif
// https://vitejs.dev/config/
export default defineConfig({
plugins: [svelte()],
server: {
+ //#if (RequiresHttps)
https: {
key: readFileSync(keyFilePath),
cert: readFileSync(certFilePath)
},
+ //#endif
port: 5002,
strictPort: true,
proxy: {
'/api': {
+ //#if (RequiresHttps)
target: 'https://localhost:5001/',
- changeOrigin: true,
- secure: true
+ //#else
+ target: 'http://localhost:5000/',
+ //#endif
+ secure: false,
+ changeOrigin: true
}
}
}
diff --git a/src/templates/Vite-CSharp/.files/vanilla-ts/aspnetcore-https.js b/src/templates/Vite-CSharp/.files/vanilla-ts/aspnetcore-https.js
index 9e58786..5f28332 100644
--- a/src/templates/Vite-CSharp/.files/vanilla-ts/aspnetcore-https.js
+++ b/src/templates/Vite-CSharp/.files/vanilla-ts/aspnetcore-https.js
@@ -1,6 +1,6 @@
// This script sets up HTTPS for the application using the ASP.NET Core HTTPS certificate
const fs = require('fs');
-const spawn = require('child_process').spawn;
+const spawnSync = require('child_process').spawnSync;
const path = require('path');
@@ -21,7 +21,7 @@ const certFilePath = path.join(baseFolder, `${certificateName}.pem`);
const keyFilePath = path.join(baseFolder, `${certificateName}.key`);
if (!fs.existsSync(certFilePath) || !fs.existsSync(keyFilePath)) {
- spawn('dotnet', [
+ spawnSync('dotnet', [
'dev-certs',
'https',
'--export-path',
@@ -29,8 +29,7 @@ if (!fs.existsSync(certFilePath) || !fs.existsSync(keyFilePath)) {
'--format',
'Pem',
'--no-password',
- ], { stdio: 'inherit', })
- .on('exit', (code) => process.exit(code));
+ ], { stdio: 'inherit', });
}
module.exports = {
diff --git a/src/templates/Vite-CSharp/.files/vanilla-ts/package.json b/src/templates/Vite-CSharp/.files/vanilla-ts/package.json
index 101d459..896c6be 100644
--- a/src/templates/Vite-CSharp/.files/vanilla-ts/package.json
+++ b/src/templates/Vite-CSharp/.files/vanilla-ts/package.json
@@ -2,7 +2,9 @@
"name": "vanilla-ts",
"version": "0.0.0",
"scripts": {
+//#if(RequiresHttps)
"prestart": "node ./aspnetcore-https.js",
+//#endif
"start": "vite",
"dev": "vite",
"build": "tsc && vite build",
diff --git a/src/templates/Vite-CSharp/.files/vanilla-ts/vite.config.ts b/src/templates/Vite-CSharp/.files/vanilla-ts/vite.config.ts
index 064f373..d1748b0 100644
--- a/src/templates/Vite-CSharp/.files/vanilla-ts/vite.config.ts
+++ b/src/templates/Vite-CSharp/.files/vanilla-ts/vite.config.ts
@@ -1,21 +1,29 @@
import { defineConfig } from 'vite'
+//#if (RequiresHttps)
import { readFileSync } from 'fs'
import { certFilePath, keyFilePath } from './aspnetcore-https'
+//#endif
// https://vitejs.dev/config/
export default defineConfig({
server: {
+ //#if (RequiresHttps)
https: {
key: readFileSync(keyFilePath),
cert: readFileSync(certFilePath)
},
+ //#endif
port: 5002,
strictPort: true,
proxy: {
'/api': {
+ //#if (RequiresHttps)
target: 'https://localhost:5001/',
- changeOrigin: true,
- secure: true
+ //#else
+ target: 'http://localhost:5000/',
+ //#endif
+ secure: false,
+ changeOrigin: true
}
}
}
diff --git a/src/templates/Vite-CSharp/.files/vanilla/aspnetcore-https.js b/src/templates/Vite-CSharp/.files/vanilla/aspnetcore-https.js
index 9e58786..5f28332 100644
--- a/src/templates/Vite-CSharp/.files/vanilla/aspnetcore-https.js
+++ b/src/templates/Vite-CSharp/.files/vanilla/aspnetcore-https.js
@@ -1,6 +1,6 @@
// This script sets up HTTPS for the application using the ASP.NET Core HTTPS certificate
const fs = require('fs');
-const spawn = require('child_process').spawn;
+const spawnSync = require('child_process').spawnSync;
const path = require('path');
@@ -21,7 +21,7 @@ const certFilePath = path.join(baseFolder, `${certificateName}.pem`);
const keyFilePath = path.join(baseFolder, `${certificateName}.key`);
if (!fs.existsSync(certFilePath) || !fs.existsSync(keyFilePath)) {
- spawn('dotnet', [
+ spawnSync('dotnet', [
'dev-certs',
'https',
'--export-path',
@@ -29,8 +29,7 @@ if (!fs.existsSync(certFilePath) || !fs.existsSync(keyFilePath)) {
'--format',
'Pem',
'--no-password',
- ], { stdio: 'inherit', })
- .on('exit', (code) => process.exit(code));
+ ], { stdio: 'inherit', });
}
module.exports = {
diff --git a/src/templates/Vite-CSharp/.files/vanilla/package.json b/src/templates/Vite-CSharp/.files/vanilla/package.json
index 36d7ee5..b4dc03c 100644
--- a/src/templates/Vite-CSharp/.files/vanilla/package.json
+++ b/src/templates/Vite-CSharp/.files/vanilla/package.json
@@ -2,7 +2,9 @@
"name": "vanilla",
"version": "0.0.0",
"scripts": {
+//#if(RequiresHttps)
"prestart": "node ./aspnetcore-https.js",
+//#endif
"start": "vite",
"dev": "vite",
"build": "vite build",
diff --git a/src/templates/Vite-CSharp/.files/vanilla/vite.config.ts b/src/templates/Vite-CSharp/.files/vanilla/vite.config.ts
index 064f373..d1748b0 100644
--- a/src/templates/Vite-CSharp/.files/vanilla/vite.config.ts
+++ b/src/templates/Vite-CSharp/.files/vanilla/vite.config.ts
@@ -1,21 +1,29 @@
import { defineConfig } from 'vite'
+//#if (RequiresHttps)
import { readFileSync } from 'fs'
import { certFilePath, keyFilePath } from './aspnetcore-https'
+//#endif
// https://vitejs.dev/config/
export default defineConfig({
server: {
+ //#if (RequiresHttps)
https: {
key: readFileSync(keyFilePath),
cert: readFileSync(certFilePath)
},
+ //#endif
port: 5002,
strictPort: true,
proxy: {
'/api': {
+ //#if (RequiresHttps)
target: 'https://localhost:5001/',
- changeOrigin: true,
- secure: true
+ //#else
+ target: 'http://localhost:5000/',
+ //#endif
+ secure: false,
+ changeOrigin: true
}
}
}
diff --git a/src/templates/Vite-CSharp/.files/vue-ts/aspnetcore-https.js b/src/templates/Vite-CSharp/.files/vue-ts/aspnetcore-https.js
index 9e58786..5f28332 100644
--- a/src/templates/Vite-CSharp/.files/vue-ts/aspnetcore-https.js
+++ b/src/templates/Vite-CSharp/.files/vue-ts/aspnetcore-https.js
@@ -1,6 +1,6 @@
// This script sets up HTTPS for the application using the ASP.NET Core HTTPS certificate
const fs = require('fs');
-const spawn = require('child_process').spawn;
+const spawnSync = require('child_process').spawnSync;
const path = require('path');
@@ -21,7 +21,7 @@ const certFilePath = path.join(baseFolder, `${certificateName}.pem`);
const keyFilePath = path.join(baseFolder, `${certificateName}.key`);
if (!fs.existsSync(certFilePath) || !fs.existsSync(keyFilePath)) {
- spawn('dotnet', [
+ spawnSync('dotnet', [
'dev-certs',
'https',
'--export-path',
@@ -29,8 +29,7 @@ if (!fs.existsSync(certFilePath) || !fs.existsSync(keyFilePath)) {
'--format',
'Pem',
'--no-password',
- ], { stdio: 'inherit', })
- .on('exit', (code) => process.exit(code));
+ ], { stdio: 'inherit', });
}
module.exports = {
diff --git a/src/templates/Vite-CSharp/.files/vue-ts/package.json b/src/templates/Vite-CSharp/.files/vue-ts/package.json
index 4297469..8d3b229 100644
--- a/src/templates/Vite-CSharp/.files/vue-ts/package.json
+++ b/src/templates/Vite-CSharp/.files/vue-ts/package.json
@@ -2,7 +2,9 @@
"name": "vue-ts",
"version": "0.0.0",
"scripts": {
+//#if(RequiresHttps)
"prestart": "node ./aspnetcore-https.js",
+//#endif
"start": "vite",
"dev": "vite",
"build": "vue-tsc --noEmit && vite build",
diff --git a/src/templates/Vite-CSharp/.files/vue-ts/vite.config.ts b/src/templates/Vite-CSharp/.files/vue-ts/vite.config.ts
index 6193da1..1023b58 100644
--- a/src/templates/Vite-CSharp/.files/vue-ts/vite.config.ts
+++ b/src/templates/Vite-CSharp/.files/vue-ts/vite.config.ts
@@ -1,23 +1,31 @@
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
+//#if (RequiresHttps)
import { readFileSync } from 'fs'
import { certFilePath, keyFilePath } from './aspnetcore-https'
+//#endif
// https://vitejs.dev/config/
export default defineConfig({
plugins: [vue()],
server: {
+ //#if (RequiresHttps)
https: {
key: readFileSync(keyFilePath),
cert: readFileSync(certFilePath)
},
+ //#endif
port: 5002,
strictPort: true,
proxy: {
'/api': {
+ //#if (RequiresHttps)
target: 'https://localhost:5001/',
- changeOrigin: true,
- secure: true
+ //#else
+ target: 'http://localhost:5000/',
+ //#endif
+ secure: false,
+ changeOrigin: true
}
}
}
diff --git a/src/templates/Vite-CSharp/.files/vue/aspnetcore-https.js b/src/templates/Vite-CSharp/.files/vue/aspnetcore-https.js
index 9e58786..5f28332 100644
--- a/src/templates/Vite-CSharp/.files/vue/aspnetcore-https.js
+++ b/src/templates/Vite-CSharp/.files/vue/aspnetcore-https.js
@@ -1,6 +1,6 @@
// This script sets up HTTPS for the application using the ASP.NET Core HTTPS certificate
const fs = require('fs');
-const spawn = require('child_process').spawn;
+const spawnSync = require('child_process').spawnSync;
const path = require('path');
@@ -21,7 +21,7 @@ const certFilePath = path.join(baseFolder, `${certificateName}.pem`);
const keyFilePath = path.join(baseFolder, `${certificateName}.key`);
if (!fs.existsSync(certFilePath) || !fs.existsSync(keyFilePath)) {
- spawn('dotnet', [
+ spawnSync('dotnet', [
'dev-certs',
'https',
'--export-path',
@@ -29,8 +29,7 @@ if (!fs.existsSync(certFilePath) || !fs.existsSync(keyFilePath)) {
'--format',
'Pem',
'--no-password',
- ], { stdio: 'inherit', })
- .on('exit', (code) => process.exit(code));
+ ], { stdio: 'inherit', });
}
module.exports = {
diff --git a/src/templates/Vite-CSharp/.files/vue/package.json b/src/templates/Vite-CSharp/.files/vue/package.json
index e6aa362..969099b 100644
--- a/src/templates/Vite-CSharp/.files/vue/package.json
+++ b/src/templates/Vite-CSharp/.files/vue/package.json
@@ -2,7 +2,9 @@
"name": "vue",
"version": "0.0.0",
"scripts": {
+//#if(RequiresHttps)
"prestart": "node ./aspnetcore-https.js",
+//#endif
"start": "vite",
"dev": "vite",
"build": "vite build",
diff --git a/src/templates/Vite-CSharp/.files/vue/vite.config.js b/src/templates/Vite-CSharp/.files/vue/vite.config.js
index 6193da1..1023b58 100644
--- a/src/templates/Vite-CSharp/.files/vue/vite.config.js
+++ b/src/templates/Vite-CSharp/.files/vue/vite.config.js
@@ -1,23 +1,31 @@
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
+//#if (RequiresHttps)
import { readFileSync } from 'fs'
import { certFilePath, keyFilePath } from './aspnetcore-https'
+//#endif
// https://vitejs.dev/config/
export default defineConfig({
plugins: [vue()],
server: {
+ //#if (RequiresHttps)
https: {
key: readFileSync(keyFilePath),
cert: readFileSync(certFilePath)
},
+ //#endif
port: 5002,
strictPort: true,
proxy: {
'/api': {
+ //#if (RequiresHttps)
target: 'https://localhost:5001/',
- changeOrigin: true,
- secure: true
+ //#else
+ target: 'http://localhost:5000/',
+ //#endif
+ secure: false,
+ changeOrigin: true
}
}
}
diff --git a/src/templates/Vite-CSharp/.template.config/dotnetcli.host.json b/src/templates/Vite-CSharp/.template.config/dotnetcli.host.json
index 62e6e5f..0dcb938 100644
--- a/src/templates/Vite-CSharp/.template.config/dotnetcli.host.json
+++ b/src/templates/Vite-CSharp/.template.config/dotnetcli.host.json
@@ -8,6 +8,14 @@
"UseTypeScript": {
"longName": "useTypeScript",
"shortName": "t"
+ },
+ "UsePNPM": {
+ "longName": "usePNPM",
+ "shortName": "p"
+ },
+ "NoHttps": {
+ "longName": "no-https",
+ "shortName": ""
}
},
"usageExamples": [
diff --git a/src/templates/Vite-CSharp/.template.config/template.json b/src/templates/Vite-CSharp/.template.config/template.json
index 076d25c..605b73c 100644
--- a/src/templates/Vite-CSharp/.template.config/template.json
+++ b/src/templates/Vite-CSharp/.template.config/template.json
@@ -25,6 +25,12 @@
".files/**"
]
},
+ {
+ "condition": "(!RequiresHttps)",
+ "exclude": [
+ "./ClientApp/aspnetcore-https.js"
+ ]
+ },
{
"condition": "(FrontendFramework == \"vanilla\" && !UseTypeScript)",
"source": ".files/vanilla/",
@@ -128,6 +134,22 @@
"datatype": "bool",
"description": "If specified, the Frontend-Framework will be scaffolded to use TypeScript",
"defaultValue": "false"
+ },
+ "UsePNPM": {
+ "type": "parameter",
+ "datatype": "bool",
+ "description": "If specified, pmpm will by used instead of npm",
+ "defaultValue": "false"
+ },
+ "RequiresHttps": {
+ "type": "computed",
+ "value": "!NoHttps"
+ },
+ "NoHttps": {
+ "type": "parameter",
+ "datatype": "bool",
+ "defaultValue": "false",
+ "description": "Whether to turn off HTTPS."
}
}
}
\ No newline at end of file
diff --git a/src/templates/Vite-CSharp/Controllers/WeatherForecastController.cs b/src/templates/Vite-CSharp/Controllers/WeatherForecastController.cs
index 8513005..4325124 100644
--- a/src/templates/Vite-CSharp/Controllers/WeatherForecastController.cs
+++ b/src/templates/Vite-CSharp/Controllers/WeatherForecastController.cs
@@ -1,9 +1,9 @@
using Microsoft.AspNetCore.Mvc;
-namespace Vite_CSharp.Controllers;
+namespace Company.WebApplication1.Controllers;
[ApiController]
-[Route("[controller]")]
+[Route("api/[controller]")]
public class WeatherForecastController : ControllerBase
{
private static readonly string[] Summaries = new[]
diff --git a/src/templates/Vite-CSharp/Program.cs b/src/templates/Vite-CSharp/Program.cs
index dafde65..b66202b 100644
--- a/src/templates/Vite-CSharp/Program.cs
+++ b/src/templates/Vite-CSharp/Program.cs
@@ -6,7 +6,9 @@
var app = builder.Build();
+#if (RequiresHttps)
app.UseHttpsRedirection();
+#endif
app.UseAuthorization();
diff --git a/src/templates/Vite-CSharp/Properties/launchSettings.json b/src/templates/Vite-CSharp/Properties/launchSettings.json
index a961116..b1970be 100644
--- a/src/templates/Vite-CSharp/Properties/launchSettings.json
+++ b/src/templates/Vite-CSharp/Properties/launchSettings.json
@@ -4,14 +4,22 @@
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:48063",
+ //#if(!RequiresHttps)
+ "sslPort": 0
+ //#else
"sslPort": 44347
+ //#endif
}
},
"profiles": {
- "Vite_CSharp": {
+ "Company.WebApplication1": {
"commandName": "Project",
"launchBrowser": true,
+ //#if(!RequiresHttps)
+ "applicationUrl": "http://localhost:5000",
+ //#else
"applicationUrl": "https://localhost:5001;http://localhost:5000",
+ //#endif
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development",
"ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.SpaProxy"
@@ -26,4 +34,4 @@
}
}
}
-}
+}
\ No newline at end of file
diff --git a/src/templates/Vite-CSharp/WeatherForecast.cs b/src/templates/Vite-CSharp/WeatherForecast.cs
index 06b7656..79d043e 100644
--- a/src/templates/Vite-CSharp/WeatherForecast.cs
+++ b/src/templates/Vite-CSharp/WeatherForecast.cs
@@ -1,4 +1,4 @@
-namespace Vite_CSharp;
+namespace Company.WebApplication1;
public class WeatherForecast
{
From 0926e0e5cd42b83f3ed134f33b5401a18884a667 Mon Sep 17 00:00:00 2001
From: uiopak <44174807+uiopak@users.noreply.github.com>
Date: Fri, 3 Jun 2022 01:09:26 +0200
Subject: [PATCH 3/7] Add SolidJS
---
README.md | 1 +
.../Vite-CSharp/.files/solid-ts/.gitignore | 2 +
.../Vite-CSharp/.files/solid-ts/README.md | 36 +
.../.files/solid-ts/aspnetcore-https.js | 35 +
.../Vite-CSharp/.files/solid-ts/index.html | 16 +
.../Vite-CSharp/.files/solid-ts/package.json | 23 +
.../.files/solid-ts/pnpm-lock.yaml | 880 ++++++++++++++++++
.../.files/solid-ts/src/App.module.css | 33 +
.../Vite-CSharp/.files/solid-ts/src/App.tsx | 27 +
.../.files/solid-ts/src/assets/favicon.ico | Bin 0 -> 15086 bytes
.../Vite-CSharp/.files/solid-ts/src/index.css | 13 +
.../Vite-CSharp/.files/solid-ts/src/index.tsx | 7 +
.../Vite-CSharp/.files/solid-ts/src/logo.svg | 1 +
.../Vite-CSharp/.files/solid-ts/tsconfig.json | 15 +
.../.files/solid-ts/vite.config.ts | 35 +
.../Vite-CSharp/.files/solid/.gitignore | 2 +
.../Vite-CSharp/.files/solid/README.md | 36 +
.../.files/solid/aspnetcore-https.js | 35 +
.../Vite-CSharp/.files/solid/index.html | 16 +
.../Vite-CSharp/.files/solid/package.json | 22 +
.../Vite-CSharp/.files/solid/pnpm-lock.yaml | 872 +++++++++++++++++
.../Vite-CSharp/.files/solid/src/App.jsx | 25 +
.../.files/solid/src/App.module.css | 33 +
.../.files/solid/src/assets/favicon.ico | Bin 0 -> 15086 bytes
.../Vite-CSharp/.files/solid/src/index.css | 13 +
.../Vite-CSharp/.files/solid/src/index.jsx | 7 +
.../Vite-CSharp/.files/solid/src/logo.svg | 1 +
.../Vite-CSharp/.files/solid/vite.config.js | 35 +
.../{vite.config.ts => vite.config.js} | 0
.../.template.config/template.json | 14 +
tests/Vite-CSharp.Tests/InstallTests.cs | 2 +
31 files changed, 2237 insertions(+)
create mode 100644 src/templates/Vite-CSharp/.files/solid-ts/.gitignore
create mode 100644 src/templates/Vite-CSharp/.files/solid-ts/README.md
create mode 100644 src/templates/Vite-CSharp/.files/solid-ts/aspnetcore-https.js
create mode 100644 src/templates/Vite-CSharp/.files/solid-ts/index.html
create mode 100644 src/templates/Vite-CSharp/.files/solid-ts/package.json
create mode 100644 src/templates/Vite-CSharp/.files/solid-ts/pnpm-lock.yaml
create mode 100644 src/templates/Vite-CSharp/.files/solid-ts/src/App.module.css
create mode 100644 src/templates/Vite-CSharp/.files/solid-ts/src/App.tsx
create mode 100644 src/templates/Vite-CSharp/.files/solid-ts/src/assets/favicon.ico
create mode 100644 src/templates/Vite-CSharp/.files/solid-ts/src/index.css
create mode 100644 src/templates/Vite-CSharp/.files/solid-ts/src/index.tsx
create mode 100644 src/templates/Vite-CSharp/.files/solid-ts/src/logo.svg
create mode 100644 src/templates/Vite-CSharp/.files/solid-ts/tsconfig.json
create mode 100644 src/templates/Vite-CSharp/.files/solid-ts/vite.config.ts
create mode 100644 src/templates/Vite-CSharp/.files/solid/.gitignore
create mode 100644 src/templates/Vite-CSharp/.files/solid/README.md
create mode 100644 src/templates/Vite-CSharp/.files/solid/aspnetcore-https.js
create mode 100644 src/templates/Vite-CSharp/.files/solid/index.html
create mode 100644 src/templates/Vite-CSharp/.files/solid/package.json
create mode 100644 src/templates/Vite-CSharp/.files/solid/pnpm-lock.yaml
create mode 100644 src/templates/Vite-CSharp/.files/solid/src/App.jsx
create mode 100644 src/templates/Vite-CSharp/.files/solid/src/App.module.css
create mode 100644 src/templates/Vite-CSharp/.files/solid/src/assets/favicon.ico
create mode 100644 src/templates/Vite-CSharp/.files/solid/src/index.css
create mode 100644 src/templates/Vite-CSharp/.files/solid/src/index.jsx
create mode 100644 src/templates/Vite-CSharp/.files/solid/src/logo.svg
create mode 100644 src/templates/Vite-CSharp/.files/solid/vite.config.js
rename src/templates/Vite-CSharp/.files/vanilla/{vite.config.ts => vite.config.js} (100%)
diff --git a/README.md b/README.md
index abf00fd..6356341 100644
--- a/README.md
+++ b/README.md
@@ -43,6 +43,7 @@ The templates supported by Vite (and, in extensions by this template) are:
- preact
- lit
- svelte
+- solid
All technologies can optionally be scaffolded with TypeScript support.
diff --git a/src/templates/Vite-CSharp/.files/solid-ts/.gitignore b/src/templates/Vite-CSharp/.files/solid-ts/.gitignore
new file mode 100644
index 0000000..76add87
--- /dev/null
+++ b/src/templates/Vite-CSharp/.files/solid-ts/.gitignore
@@ -0,0 +1,2 @@
+node_modules
+dist
\ No newline at end of file
diff --git a/src/templates/Vite-CSharp/.files/solid-ts/README.md b/src/templates/Vite-CSharp/.files/solid-ts/README.md
new file mode 100644
index 0000000..ca60f66
--- /dev/null
+++ b/src/templates/Vite-CSharp/.files/solid-ts/README.md
@@ -0,0 +1,36 @@
+Template from https://github.com/solidjs/templates/tree/master/ts
+
+## Usage
+
+Those templates dependencies are maintained via [pnpm](https://pnpm.io) via `pnpm up -Lri`.
+
+This is the reason you see a `pnpm-lock.yaml`. That being said, any package manager will work. This file can be safely be removed once you clone a template.
+
+```bash
+$ npm install # or pnpm install or yarn install
+```
+
+### Learn more on the [Solid Website](https://solidjs.com) and come chat with us on our [Discord](https://discord.com/invite/solidjs)
+
+## Available Scripts
+
+In the project directory, you can run:
+
+### `npm dev` or `npm start`
+
+Runs the app in the development mode.
+Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
+
+The page will reload if you make edits.
+
+### `npm run build`
+
+Builds the app for production to the `dist` folder.
+It correctly bundles Solid in production mode and optimizes the build for the best performance.
+
+The build is minified and the filenames include the hashes.
+Your app is ready to be deployed!
+
+## Deployment
+
+You can deploy the `dist` folder to any static host provider (netlify, surge, now, etc.)
diff --git a/src/templates/Vite-CSharp/.files/solid-ts/aspnetcore-https.js b/src/templates/Vite-CSharp/.files/solid-ts/aspnetcore-https.js
new file mode 100644
index 0000000..2983a87
--- /dev/null
+++ b/src/templates/Vite-CSharp/.files/solid-ts/aspnetcore-https.js
@@ -0,0 +1,35 @@
+// This script sets up HTTPS for the application using the ASP.NET Core HTTPS certificate
+import { existsSync } from 'fs';
+import { spawnSync } from 'child_process';
+
+import { join } from 'path';
+
+const baseFolder =
+ process.env.APPDATA !== undefined && process.env.APPDATA !== ''
+ ? `${process.env.APPDATA}/ASP.NET/https`
+ : `${process.env.HOME}/.aspnet/https`;
+
+const certificateArg = process.argv.map(arg => arg.match(/--name=(?.+)/i)).filter(Boolean)[0];
+const certificateName = certificateArg ? certificateArg.groups.value : process.env.npm_package_name;
+
+if (!certificateName) {
+ console.error('Invalid certificate name. Run this script in the context of an npm/yarn script or pass --name=<> explicitly.')
+ process.exit(-1);
+}
+
+const certFilePath = join(baseFolder, `${certificateName}.pem`);
+const keyFilePath = join(baseFolder, `${certificateName}.key`);
+
+if (!existsSync(certFilePath) || !existsSync(keyFilePath)) {
+ spawnSync('dotnet', [
+ 'dev-certs',
+ 'https',
+ '--export-path',
+ certFilePath,
+ '--format',
+ 'Pem',
+ '--no-password',
+ ], { stdio: 'inherit', });
+}
+
+export { certFilePath, keyFilePath };
diff --git a/src/templates/Vite-CSharp/.files/solid-ts/index.html b/src/templates/Vite-CSharp/.files/solid-ts/index.html
new file mode 100644
index 0000000..48c59fc
--- /dev/null
+++ b/src/templates/Vite-CSharp/.files/solid-ts/index.html
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+ Solid App
+
+
+
+
+
+
+
+
diff --git a/src/templates/Vite-CSharp/.files/solid-ts/package.json b/src/templates/Vite-CSharp/.files/solid-ts/package.json
new file mode 100644
index 0000000..75836ad
--- /dev/null
+++ b/src/templates/Vite-CSharp/.files/solid-ts/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "solid-ts",
+ "version": "0.0.0",
+ "description": "",
+ "scripts": {
+//#if(RequiresHttps)
+ "prestart": "node ./aspnetcore-https.js",
+//#endif
+ "start": "vite",
+ "dev": "vite",
+ "build": "vite build",
+ "serve": "vite preview"
+ },
+ "license": "MIT",
+ "devDependencies": {
+ "typescript": "^4.6.4",
+ "vite": "^2.9.9",
+ "vite-plugin-solid": "^2.2.6"
+ },
+ "dependencies": {
+ "solid-js": "^1.4.2"
+ }
+}
diff --git a/src/templates/Vite-CSharp/.files/solid-ts/pnpm-lock.yaml b/src/templates/Vite-CSharp/.files/solid-ts/pnpm-lock.yaml
new file mode 100644
index 0000000..d75579c
--- /dev/null
+++ b/src/templates/Vite-CSharp/.files/solid-ts/pnpm-lock.yaml
@@ -0,0 +1,880 @@
+lockfileVersion: 5.4
+
+specifiers:
+ solid-js: ^1.4.2
+ typescript: ^4.6.4
+ vite: ^2.9.9
+ vite-plugin-solid: ^2.2.6
+
+dependencies:
+ solid-js: 1.4.2
+
+devDependencies:
+ typescript: 4.6.4
+ vite: 2.9.9
+ vite-plugin-solid: 2.2.6
+
+packages:
+
+ /@ampproject/remapping/2.1.2:
+ resolution: {integrity: sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==}
+ engines: {node: '>=6.0.0'}
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.4
+ dev: true
+
+ /@babel/code-frame/7.16.7:
+ resolution: {integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/highlight': 7.16.10
+ dev: true
+
+ /@babel/compat-data/7.17.7:
+ resolution: {integrity: sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/core/7.17.8:
+ resolution: {integrity: sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@ampproject/remapping': 2.1.2
+ '@babel/code-frame': 7.16.7
+ '@babel/generator': 7.17.7
+ '@babel/helper-compilation-targets': 7.17.7_@babel+core@7.17.8
+ '@babel/helper-module-transforms': 7.17.7
+ '@babel/helpers': 7.17.8
+ '@babel/parser': 7.17.8
+ '@babel/template': 7.16.7
+ '@babel/traverse': 7.17.3
+ '@babel/types': 7.17.0
+ convert-source-map: 1.8.0
+ debug: 4.3.4
+ gensync: 1.0.0-beta.2
+ json5: 2.2.1
+ semver: 6.3.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/generator/7.17.7:
+ resolution: {integrity: sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.17.0
+ jsesc: 2.5.2
+ source-map: 0.5.7
+ dev: true
+
+ /@babel/helper-annotate-as-pure/7.16.7:
+ resolution: {integrity: sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.18.0
+ dev: true
+
+ /@babel/helper-compilation-targets/7.17.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/compat-data': 7.17.7
+ '@babel/core': 7.17.8
+ '@babel/helper-validator-option': 7.16.7
+ browserslist: 4.20.2
+ semver: 6.3.0
+ dev: true
+
+ /@babel/helper-create-class-features-plugin/7.17.6_@babel+core@7.17.8:
+ resolution: {integrity: sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-annotate-as-pure': 7.16.7
+ '@babel/helper-environment-visitor': 7.16.7
+ '@babel/helper-function-name': 7.16.7
+ '@babel/helper-member-expression-to-functions': 7.17.7
+ '@babel/helper-optimise-call-expression': 7.16.7
+ '@babel/helper-replace-supers': 7.16.7
+ '@babel/helper-split-export-declaration': 7.16.7
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/helper-environment-visitor/7.16.7:
+ resolution: {integrity: sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/helper-function-name/7.16.7:
+ resolution: {integrity: sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-get-function-arity': 7.16.7
+ '@babel/template': 7.16.7
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/helper-get-function-arity/7.16.7:
+ resolution: {integrity: sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/helper-hoist-variables/7.16.7:
+ resolution: {integrity: sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/helper-member-expression-to-functions/7.17.7:
+ resolution: {integrity: sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.18.0
+ dev: true
+
+ /@babel/helper-module-imports/7.16.0:
+ resolution: {integrity: sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/helper-module-imports/7.16.7:
+ resolution: {integrity: sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/helper-module-transforms/7.17.7:
+ resolution: {integrity: sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-environment-visitor': 7.16.7
+ '@babel/helper-module-imports': 7.16.7
+ '@babel/helper-simple-access': 7.17.7
+ '@babel/helper-split-export-declaration': 7.16.7
+ '@babel/helper-validator-identifier': 7.16.7
+ '@babel/template': 7.16.7
+ '@babel/traverse': 7.17.3
+ '@babel/types': 7.17.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/helper-optimise-call-expression/7.16.7:
+ resolution: {integrity: sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.18.0
+ dev: true
+
+ /@babel/helper-plugin-utils/7.16.7:
+ resolution: {integrity: sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/helper-replace-supers/7.16.7:
+ resolution: {integrity: sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-environment-visitor': 7.16.7
+ '@babel/helper-member-expression-to-functions': 7.17.7
+ '@babel/helper-optimise-call-expression': 7.16.7
+ '@babel/traverse': 7.17.3
+ '@babel/types': 7.18.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/helper-simple-access/7.17.7:
+ resolution: {integrity: sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/helper-split-export-declaration/7.16.7:
+ resolution: {integrity: sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/helper-validator-identifier/7.16.7:
+ resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/helper-validator-option/7.16.7:
+ resolution: {integrity: sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/helpers/7.17.8:
+ resolution: {integrity: sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/template': 7.16.7
+ '@babel/traverse': 7.17.3
+ '@babel/types': 7.17.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/highlight/7.16.10:
+ resolution: {integrity: sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-validator-identifier': 7.16.7
+ chalk: 2.4.2
+ js-tokens: 4.0.0
+ dev: true
+
+ /@babel/parser/7.17.8:
+ resolution: {integrity: sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+ dependencies:
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/plugin-syntax-jsx/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-syntax-typescript/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-transform-typescript/7.16.8_@babel+core@7.17.8:
+ resolution: {integrity: sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-create-class-features-plugin': 7.17.6_@babel+core@7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/plugin-syntax-typescript': 7.16.7_@babel+core@7.17.8
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/preset-typescript/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/helper-validator-option': 7.16.7
+ '@babel/plugin-transform-typescript': 7.16.8_@babel+core@7.17.8
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/template/7.16.7:
+ resolution: {integrity: sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/code-frame': 7.16.7
+ '@babel/parser': 7.17.8
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/traverse/7.17.3:
+ resolution: {integrity: sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/code-frame': 7.16.7
+ '@babel/generator': 7.17.7
+ '@babel/helper-environment-visitor': 7.16.7
+ '@babel/helper-function-name': 7.16.7
+ '@babel/helper-hoist-variables': 7.16.7
+ '@babel/helper-split-export-declaration': 7.16.7
+ '@babel/parser': 7.17.8
+ '@babel/types': 7.17.0
+ debug: 4.3.4
+ globals: 11.12.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/types/7.17.0:
+ resolution: {integrity: sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-validator-identifier': 7.16.7
+ to-fast-properties: 2.0.0
+ dev: true
+
+ /@babel/types/7.18.0:
+ resolution: {integrity: sha512-vhAmLPAiC8j9K2GnsnLPCIH5wCrPpYIVBCWRBFDCB7Y/BXLqi/O+1RSTTM2bsmg6U/551+FCf9PNPxjABmxHTw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-validator-identifier': 7.16.7
+ to-fast-properties: 2.0.0
+ dev: true
+
+ /@jridgewell/resolve-uri/3.0.5:
+ resolution: {integrity: sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==}
+ engines: {node: '>=6.0.0'}
+ dev: true
+
+ /@jridgewell/sourcemap-codec/1.4.11:
+ resolution: {integrity: sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==}
+ dev: true
+
+ /@jridgewell/trace-mapping/0.3.4:
+ resolution: {integrity: sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==}
+ dependencies:
+ '@jridgewell/resolve-uri': 3.0.5
+ '@jridgewell/sourcemap-codec': 1.4.11
+ dev: true
+
+ /ansi-styles/3.2.1:
+ resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
+ engines: {node: '>=4'}
+ dependencies:
+ color-convert: 1.9.3
+ dev: true
+
+ /babel-plugin-jsx-dom-expressions/0.32.11_@babel+core@7.17.8:
+ resolution: {integrity: sha512-hytqY33SGW6B3obSLt8K5X510UwtNkTktCCWgwba+QOOV0CowDFiqeL+0ru895FLacFaYANHFTu1y76dg3GVtw==}
+ dependencies:
+ '@babel/helper-module-imports': 7.16.0
+ '@babel/plugin-syntax-jsx': 7.16.7_@babel+core@7.17.8
+ '@babel/types': 7.17.0
+ html-entities: 2.3.2
+ transitivePeerDependencies:
+ - '@babel/core'
+ dev: true
+
+ /babel-preset-solid/1.3.13_@babel+core@7.17.8:
+ resolution: {integrity: sha512-MZnmsceI9yiHlwwFCSALTJhadk2eea/+2UP4ec4jkPZFR+XRKTLoIwRkrBh7uLtvHF+3lHGyUaXtZukOmmUwhA==}
+ dependencies:
+ babel-plugin-jsx-dom-expressions: 0.32.11_@babel+core@7.17.8
+ transitivePeerDependencies:
+ - '@babel/core'
+ dev: true
+
+ /browserslist/4.20.2:
+ resolution: {integrity: sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+ dependencies:
+ caniuse-lite: 1.0.30001320
+ electron-to-chromium: 1.4.93
+ escalade: 3.1.1
+ node-releases: 2.0.2
+ picocolors: 1.0.0
+ dev: true
+
+ /caniuse-lite/1.0.30001320:
+ resolution: {integrity: sha512-MWPzG54AGdo3nWx7zHZTefseM5Y1ccM7hlQKHRqJkPozUaw3hNbBTMmLn16GG2FUzjR13Cr3NPfhIieX5PzXDA==}
+ dev: true
+
+ /chalk/2.4.2:
+ resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
+ engines: {node: '>=4'}
+ dependencies:
+ ansi-styles: 3.2.1
+ escape-string-regexp: 1.0.5
+ supports-color: 5.5.0
+ dev: true
+
+ /color-convert/1.9.3:
+ resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
+ dependencies:
+ color-name: 1.1.3
+ dev: true
+
+ /color-name/1.1.3:
+ resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=}
+ dev: true
+
+ /convert-source-map/1.8.0:
+ resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==}
+ dependencies:
+ safe-buffer: 5.1.2
+ dev: true
+
+ /debug/4.3.4:
+ resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.1.2
+ dev: true
+
+ /electron-to-chromium/1.4.93:
+ resolution: {integrity: sha512-ywq9Pc5Gwwpv7NG767CtoU8xF3aAUQJjH9//Wy3MBCg4w5JSLbJUq2L8IsCdzPMjvSgxuue9WcVaTOyyxCL0aQ==}
+ dev: true
+
+ /esbuild-android-64/0.14.39:
+ resolution: {integrity: sha512-EJOu04p9WgZk0UoKTqLId9VnIsotmI/Z98EXrKURGb3LPNunkeffqQIkjS2cAvidh+OK5uVrXaIP229zK6GvhQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-android-arm64/0.14.39:
+ resolution: {integrity: sha512-+twajJqO7n3MrCz9e+2lVOnFplRsaGRwsq1KL/uOy7xK7QdRSprRQcObGDeDZUZsacD5gUkk6OiHiYp6RzU3CA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-darwin-64/0.14.39:
+ resolution: {integrity: sha512-ImT6eUw3kcGcHoUxEcdBpi6LfTRWaV6+qf32iYYAfwOeV+XaQ/Xp5XQIBiijLeo+LpGci9M0FVec09nUw41a5g==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-darwin-arm64/0.14.39:
+ resolution: {integrity: sha512-/fcQ5UhE05OiT+bW5v7/up1bDsnvaRZPJxXwzXsMRrr7rZqPa85vayrD723oWMT64dhrgWeA3FIneF8yER0XTw==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-freebsd-64/0.14.39:
+ resolution: {integrity: sha512-oMNH8lJI4wtgN5oxuFP7BQ22vgB/e3Tl5Woehcd6i2r6F3TszpCnNl8wo2d/KvyQ4zvLvCWAlRciumhQg88+kQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-freebsd-arm64/0.14.39:
+ resolution: {integrity: sha512-1GHK7kwk57ukY2yI4ILWKJXaxfr+8HcM/r/JKCGCPziIVlL+Wi7RbJ2OzMcTKZ1HpvEqCTBT/J6cO4ZEwW4Ypg==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-32/0.14.39:
+ resolution: {integrity: sha512-g97Sbb6g4zfRLIxHgW2pc393DjnkTRMeq3N1rmjDUABxpx8SjocK4jLen+/mq55G46eE2TA0MkJ4R3SpKMu7dg==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-64/0.14.39:
+ resolution: {integrity: sha512-4tcgFDYWdI+UbNMGlua9u1Zhu0N5R6u9tl5WOM8aVnNX143JZoBZLpCuUr5lCKhnD0SCO+5gUyMfupGrHtfggQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-arm/0.14.39:
+ resolution: {integrity: sha512-t0Hn1kWVx5UpCzAJkKRfHeYOLyFnXwYynIkK54/h3tbMweGI7dj400D1k0Vvtj2u1P+JTRT9tx3AjtLEMmfVBQ==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-arm64/0.14.39:
+ resolution: {integrity: sha512-23pc8MlD2D6Px1mV8GMglZlKgwgNKAO8gsgsLLcXWSs9lQsCYkIlMo/2Ycfo5JrDIbLdwgP8D2vpfH2KcBqrDQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-mips64le/0.14.39:
+ resolution: {integrity: sha512-epwlYgVdbmkuRr5n4es3B+yDI0I2e/nxhKejT9H0OLxFAlMkeQZxSpxATpDc9m8NqRci6Kwyb/SfmD1koG2Zuw==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-ppc64le/0.14.39:
+ resolution: {integrity: sha512-W/5ezaq+rQiQBThIjLMNjsuhPHg+ApVAdTz2LvcuesZFMsJoQAW2hutoyg47XxpWi7aEjJGrkS26qCJKhRn3QQ==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-riscv64/0.14.39:
+ resolution: {integrity: sha512-IS48xeokcCTKeQIOke2O0t9t14HPvwnZcy+5baG13Z1wxs9ZrC5ig5ypEQQh4QMKxURD5TpCLHw2W42CLuVZaA==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-s390x/0.14.39:
+ resolution: {integrity: sha512-zEfunpqR8sMomqXhNTFEKDs+ik7HC01m3M60MsEjZOqaywHu5e5682fMsqOlZbesEAAaO9aAtRBsU7CHnSZWyA==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-netbsd-64/0.14.39:
+ resolution: {integrity: sha512-Uo2suJBSIlrZCe4E0k75VDIFJWfZy+bOV6ih3T4MVMRJh1lHJ2UyGoaX4bOxomYN3t+IakHPyEoln1+qJ1qYaA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-openbsd-64/0.14.39:
+ resolution: {integrity: sha512-secQU+EpgUPpYjJe3OecoeGKVvRMLeKUxSMGHnK+aK5uQM3n1FPXNJzyz1LHFOo0WOyw+uoCxBYdM4O10oaCAA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-sunos-64/0.14.39:
+ resolution: {integrity: sha512-qHq0t5gePEDm2nqZLb+35p/qkaXVS7oIe32R0ECh2HOdiXXkj/1uQI9IRogGqKkK+QjDG+DhwiUw7QoHur/Rwg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-windows-32/0.14.39:
+ resolution: {integrity: sha512-XPjwp2OgtEX0JnOlTgT6E5txbRp6Uw54Isorm3CwOtloJazeIWXuiwK0ONJBVb/CGbiCpS7iP2UahGgd2p1x+Q==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-windows-64/0.14.39:
+ resolution: {integrity: sha512-E2wm+5FwCcLpKsBHRw28bSYQw0Ikxb7zIMxw3OPAkiaQhLVr3dnVO8DofmbWhhf6b97bWzg37iSZ45ZDpLw7Ow==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-windows-arm64/0.14.39:
+ resolution: {integrity: sha512-sBZQz5D+Gd0EQ09tZRnz/PpVdLwvp/ufMtJ1iDFYddDaPpZXKqPyaxfYBLs3ueiaksQ26GGa7sci0OqFzNs7KA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild/0.14.39:
+ resolution: {integrity: sha512-2kKujuzvRWYtwvNjYDY444LQIA3TyJhJIX3Yo4+qkFlDDtGlSicWgeHVJqMUP/2sSfH10PGwfsj+O2ro1m10xQ==}
+ engines: {node: '>=12'}
+ hasBin: true
+ requiresBuild: true
+ optionalDependencies:
+ esbuild-android-64: 0.14.39
+ esbuild-android-arm64: 0.14.39
+ esbuild-darwin-64: 0.14.39
+ esbuild-darwin-arm64: 0.14.39
+ esbuild-freebsd-64: 0.14.39
+ esbuild-freebsd-arm64: 0.14.39
+ esbuild-linux-32: 0.14.39
+ esbuild-linux-64: 0.14.39
+ esbuild-linux-arm: 0.14.39
+ esbuild-linux-arm64: 0.14.39
+ esbuild-linux-mips64le: 0.14.39
+ esbuild-linux-ppc64le: 0.14.39
+ esbuild-linux-riscv64: 0.14.39
+ esbuild-linux-s390x: 0.14.39
+ esbuild-netbsd-64: 0.14.39
+ esbuild-openbsd-64: 0.14.39
+ esbuild-sunos-64: 0.14.39
+ esbuild-windows-32: 0.14.39
+ esbuild-windows-64: 0.14.39
+ esbuild-windows-arm64: 0.14.39
+ dev: true
+
+ /escalade/3.1.1:
+ resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /escape-string-regexp/1.0.5:
+ resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=}
+ engines: {node: '>=0.8.0'}
+ dev: true
+
+ /fsevents/2.3.2:
+ resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /function-bind/1.1.1:
+ resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
+ dev: true
+
+ /gensync/1.0.0-beta.2:
+ resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /globals/11.12.0:
+ resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /has-flag/3.0.0:
+ resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=}
+ engines: {node: '>=4'}
+ dev: true
+
+ /has/1.0.3:
+ resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
+ engines: {node: '>= 0.4.0'}
+ dependencies:
+ function-bind: 1.1.1
+ dev: true
+
+ /html-entities/2.3.2:
+ resolution: {integrity: sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==}
+ dev: true
+
+ /is-core-module/2.9.0:
+ resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==}
+ dependencies:
+ has: 1.0.3
+ dev: true
+
+ /is-what/4.1.7:
+ resolution: {integrity: sha512-DBVOQNiPKnGMxRMLIYSwERAS5MVY1B7xYiGnpgctsOFvVDz9f9PFXXxMcTOHuoqYp4NK9qFYQaIC1NRRxLMpBQ==}
+ engines: {node: '>=12.13'}
+ dev: true
+
+ /js-tokens/4.0.0:
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+ dev: true
+
+ /jsesc/2.5.2:
+ resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
+ engines: {node: '>=4'}
+ hasBin: true
+ dev: true
+
+ /json5/2.2.1:
+ resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==}
+ engines: {node: '>=6'}
+ hasBin: true
+ dev: true
+
+ /merge-anything/5.0.2:
+ resolution: {integrity: sha512-POPQBWkBC0vxdgzRJ2Mkj4+2NTKbvkHo93ih+jGDhNMLzIw+rYKjO7949hOQM2X7DxMHH1uoUkwWFLIzImw7gA==}
+ engines: {node: '>=12.13'}
+ dependencies:
+ is-what: 4.1.7
+ ts-toolbelt: 9.6.0
+ dev: true
+
+ /ms/2.1.2:
+ resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
+ dev: true
+
+ /nanoid/3.3.4:
+ resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+ dev: true
+
+ /node-releases/2.0.2:
+ resolution: {integrity: sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==}
+ dev: true
+
+ /path-parse/1.0.7:
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+ dev: true
+
+ /picocolors/1.0.0:
+ resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
+ dev: true
+
+ /postcss/8.4.14:
+ resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==}
+ engines: {node: ^10 || ^12 || >=14}
+ dependencies:
+ nanoid: 3.3.4
+ picocolors: 1.0.0
+ source-map-js: 1.0.2
+ dev: true
+
+ /resolve/1.22.0:
+ resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==}
+ hasBin: true
+ dependencies:
+ is-core-module: 2.9.0
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+ dev: true
+
+ /rollup/2.74.1:
+ resolution: {integrity: sha512-K2zW7kV8Voua5eGkbnBtWYfMIhYhT9Pel2uhBk2WO5eMee161nPze/XRfvEQPFYz7KgrCCnmh2Wy0AMFLGGmMA==}
+ engines: {node: '>=10.0.0'}
+ hasBin: true
+ optionalDependencies:
+ fsevents: 2.3.2
+ dev: true
+
+ /safe-buffer/5.1.2:
+ resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
+ dev: true
+
+ /semver/6.3.0:
+ resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
+ hasBin: true
+ dev: true
+
+ /solid-js/1.4.2:
+ resolution: {integrity: sha512-IU5yKuT8P/n5F5g8j1rTXqxUdPYmoZDk/074TG94AEYf/nyXAeG82BSge4/lLIbCfUcnGUJ6DRdebIjujOAYyg==}
+
+ /solid-refresh/0.4.0_solid-js@1.4.2:
+ resolution: {integrity: sha512-5XCUz845n/sHPzKK2i2G2EeV61tAmzv6SqzqhXcPaYhrgzVy7nKTQaBpKK8InKrriq9Z2JFF/mguIU00t/73xw==}
+ peerDependencies:
+ solid-js: ^1.3.0
+ dependencies:
+ '@babel/generator': 7.17.7
+ '@babel/helper-module-imports': 7.16.7
+ '@babel/types': 7.17.0
+ solid-js: 1.4.2
+ dev: true
+
+ /source-map-js/1.0.2:
+ resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /source-map/0.5.7:
+ resolution: {integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /supports-color/5.5.0:
+ resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
+ engines: {node: '>=4'}
+ dependencies:
+ has-flag: 3.0.0
+ dev: true
+
+ /supports-preserve-symlinks-flag/1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /to-fast-properties/2.0.0:
+ resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=}
+ engines: {node: '>=4'}
+ dev: true
+
+ /ts-toolbelt/9.6.0:
+ resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==}
+ dev: true
+
+ /typescript/4.6.4:
+ resolution: {integrity: sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==}
+ engines: {node: '>=4.2.0'}
+ hasBin: true
+ dev: true
+
+ /vite-plugin-solid/2.2.6:
+ resolution: {integrity: sha512-J1RnmqkZZJSNYDW7vZj0giKKHLWGr9tS/gxR70WDSTYfhyXrgukbZdIfSEFbtrsg8ZiQ2t2zXcvkWoeefenqKw==}
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/preset-typescript': 7.16.7_@babel+core@7.17.8
+ babel-preset-solid: 1.3.13_@babel+core@7.17.8
+ merge-anything: 5.0.2
+ solid-js: 1.4.2
+ solid-refresh: 0.4.0_solid-js@1.4.2
+ vite: 2.9.9
+ transitivePeerDependencies:
+ - less
+ - sass
+ - stylus
+ - supports-color
+ dev: true
+
+ /vite/2.9.9:
+ resolution: {integrity: sha512-ffaam+NgHfbEmfw/Vuh6BHKKlI/XIAhxE5QSS7gFLIngxg171mg1P3a4LSRME0z2ZU1ScxoKzphkipcYwSD5Ew==}
+ engines: {node: '>=12.2.0'}
+ hasBin: true
+ peerDependencies:
+ less: '*'
+ sass: '*'
+ stylus: '*'
+ peerDependenciesMeta:
+ less:
+ optional: true
+ sass:
+ optional: true
+ stylus:
+ optional: true
+ dependencies:
+ esbuild: 0.14.39
+ postcss: 8.4.14
+ resolve: 1.22.0
+ rollup: 2.74.1
+ optionalDependencies:
+ fsevents: 2.3.2
+ dev: true
diff --git a/src/templates/Vite-CSharp/.files/solid-ts/src/App.module.css b/src/templates/Vite-CSharp/.files/solid-ts/src/App.module.css
new file mode 100644
index 0000000..48308b2
--- /dev/null
+++ b/src/templates/Vite-CSharp/.files/solid-ts/src/App.module.css
@@ -0,0 +1,33 @@
+.App {
+ text-align: center;
+}
+
+.logo {
+ animation: logo-spin infinite 20s linear;
+ height: 40vmin;
+ pointer-events: none;
+}
+
+.header {
+ background-color: #282c34;
+ min-height: 100vh;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ font-size: calc(10px + 2vmin);
+ color: white;
+}
+
+.link {
+ color: #b318f0;
+}
+
+@keyframes logo-spin {
+ from {
+ transform: rotate(0deg);
+ }
+ to {
+ transform: rotate(360deg);
+ }
+}
diff --git a/src/templates/Vite-CSharp/.files/solid-ts/src/App.tsx b/src/templates/Vite-CSharp/.files/solid-ts/src/App.tsx
new file mode 100644
index 0000000..a41d209
--- /dev/null
+++ b/src/templates/Vite-CSharp/.files/solid-ts/src/App.tsx
@@ -0,0 +1,27 @@
+import type { Component } from 'solid-js';
+
+import logo from './logo.svg';
+import styles from './App.module.css';
+
+const App: Component = () => {
+ return (
+
+
+
+ );
+};
+
+export default App;
diff --git a/src/templates/Vite-CSharp/.files/solid-ts/src/assets/favicon.ico b/src/templates/Vite-CSharp/.files/solid-ts/src/assets/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..b836b2bccac650e0e7d90514083add91d2c027ff
GIT binary patch
literal 15086
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
WLaxim%Fn{v*G , document.getElementById('root') as HTMLElement);
diff --git a/src/templates/Vite-CSharp/.files/solid-ts/src/logo.svg b/src/templates/Vite-CSharp/.files/solid-ts/src/logo.svg
new file mode 100644
index 0000000..025aa30
--- /dev/null
+++ b/src/templates/Vite-CSharp/.files/solid-ts/src/logo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/templates/Vite-CSharp/.files/solid-ts/tsconfig.json b/src/templates/Vite-CSharp/.files/solid-ts/tsconfig.json
new file mode 100644
index 0000000..249b273
--- /dev/null
+++ b/src/templates/Vite-CSharp/.files/solid-ts/tsconfig.json
@@ -0,0 +1,15 @@
+{
+ "compilerOptions": {
+ "strict": true,
+ "target": "ESNext",
+ "module": "ESNext",
+ "moduleResolution": "node",
+ "allowSyntheticDefaultImports": true,
+ "esModuleInterop": true,
+ "jsx": "preserve",
+ "jsxImportSource": "solid-js",
+ "types": ["vite/client"],
+ "noEmit": true,
+ "isolatedModules": true
+ }
+}
diff --git a/src/templates/Vite-CSharp/.files/solid-ts/vite.config.ts b/src/templates/Vite-CSharp/.files/solid-ts/vite.config.ts
new file mode 100644
index 0000000..33b7f78
--- /dev/null
+++ b/src/templates/Vite-CSharp/.files/solid-ts/vite.config.ts
@@ -0,0 +1,35 @@
+import { defineConfig } from 'vite'
+import solidPlugin from 'vite-plugin-solid'
+//#if (RequiresHttps)
+import { readFileSync } from 'fs'
+import { certFilePath, keyFilePath } from './aspnetcore-https'
+//#endif
+
+export default defineConfig({
+ plugins: [solidPlugin()],
+ build: {
+ target: 'esnext',
+ polyfillDynamicImport: false,
+ },
+ server: {
+ //#if (RequiresHttps)
+ https: {
+ key: readFileSync(keyFilePath),
+ cert: readFileSync(certFilePath)
+ },
+ //#endif
+ port: 5002,
+ strictPort: true,
+ proxy: {
+ '/api': {
+ //#if (RequiresHttps)
+ target: 'https://localhost:5001/',
+ //#else
+ target: 'http://localhost:5000/',
+ //#endif
+ secure: false,
+ changeOrigin: true
+ }
+ }
+ }
+});
diff --git a/src/templates/Vite-CSharp/.files/solid/.gitignore b/src/templates/Vite-CSharp/.files/solid/.gitignore
new file mode 100644
index 0000000..76add87
--- /dev/null
+++ b/src/templates/Vite-CSharp/.files/solid/.gitignore
@@ -0,0 +1,2 @@
+node_modules
+dist
\ No newline at end of file
diff --git a/src/templates/Vite-CSharp/.files/solid/README.md b/src/templates/Vite-CSharp/.files/solid/README.md
new file mode 100644
index 0000000..0c967fa
--- /dev/null
+++ b/src/templates/Vite-CSharp/.files/solid/README.md
@@ -0,0 +1,36 @@
+Template from https://github.com/solidjs/templates/tree/master/js
+
+## Usage
+
+Those templates dependencies are maintained via [pnpm](https://pnpm.io) via `pnpm up -Lri`.
+
+This is the reason you see a `pnpm-lock.yaml`. That being said, any package manager will work. This file can be safely be removed once you clone a template.
+
+```bash
+$ npm install # or pnpm install or yarn install
+```
+
+### Learn more on the [Solid Website](https://solidjs.com) and come chat with us on our [Discord](https://discord.com/invite/solidjs)
+
+## Available Scripts
+
+In the project directory, you can run:
+
+### `npm dev` or `npm start`
+
+Runs the app in the development mode.
+Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
+
+The page will reload if you make edits.
+
+### `npm run build`
+
+Builds the app for production to the `dist` folder.
+It correctly bundles Solid in production mode and optimizes the build for the best performance.
+
+The build is minified and the filenames include the hashes.
+Your app is ready to be deployed!
+
+## Deployment
+
+You can deploy the `dist` folder to any static host provider (netlify, surge, now, etc.)
diff --git a/src/templates/Vite-CSharp/.files/solid/aspnetcore-https.js b/src/templates/Vite-CSharp/.files/solid/aspnetcore-https.js
new file mode 100644
index 0000000..2983a87
--- /dev/null
+++ b/src/templates/Vite-CSharp/.files/solid/aspnetcore-https.js
@@ -0,0 +1,35 @@
+// This script sets up HTTPS for the application using the ASP.NET Core HTTPS certificate
+import { existsSync } from 'fs';
+import { spawnSync } from 'child_process';
+
+import { join } from 'path';
+
+const baseFolder =
+ process.env.APPDATA !== undefined && process.env.APPDATA !== ''
+ ? `${process.env.APPDATA}/ASP.NET/https`
+ : `${process.env.HOME}/.aspnet/https`;
+
+const certificateArg = process.argv.map(arg => arg.match(/--name=(?.+)/i)).filter(Boolean)[0];
+const certificateName = certificateArg ? certificateArg.groups.value : process.env.npm_package_name;
+
+if (!certificateName) {
+ console.error('Invalid certificate name. Run this script in the context of an npm/yarn script or pass --name=<> explicitly.')
+ process.exit(-1);
+}
+
+const certFilePath = join(baseFolder, `${certificateName}.pem`);
+const keyFilePath = join(baseFolder, `${certificateName}.key`);
+
+if (!existsSync(certFilePath) || !existsSync(keyFilePath)) {
+ spawnSync('dotnet', [
+ 'dev-certs',
+ 'https',
+ '--export-path',
+ certFilePath,
+ '--format',
+ 'Pem',
+ '--no-password',
+ ], { stdio: 'inherit', });
+}
+
+export { certFilePath, keyFilePath };
diff --git a/src/templates/Vite-CSharp/.files/solid/index.html b/src/templates/Vite-CSharp/.files/solid/index.html
new file mode 100644
index 0000000..59e149c
--- /dev/null
+++ b/src/templates/Vite-CSharp/.files/solid/index.html
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+ Solid App
+
+
+
+
+
+
+
+
diff --git a/src/templates/Vite-CSharp/.files/solid/package.json b/src/templates/Vite-CSharp/.files/solid/package.json
new file mode 100644
index 0000000..c87bea0
--- /dev/null
+++ b/src/templates/Vite-CSharp/.files/solid/package.json
@@ -0,0 +1,22 @@
+{
+ "name": "solid",
+ "version": "0.0.0",
+ "description": "",
+ "scripts": {
+//#if(RequiresHttps)
+ "prestart": "node ./aspnetcore-https.js",
+//#endif
+ "start": "vite",
+ "dev": "vite",
+ "build": "vite build",
+ "serve": "vite preview"
+ },
+ "license": "MIT",
+ "devDependencies": {
+ "vite": "^2.9.9",
+ "vite-plugin-solid": "^2.2.6"
+ },
+ "dependencies": {
+ "solid-js": "^1.4.2"
+ }
+}
diff --git a/src/templates/Vite-CSharp/.files/solid/pnpm-lock.yaml b/src/templates/Vite-CSharp/.files/solid/pnpm-lock.yaml
new file mode 100644
index 0000000..894dd91
--- /dev/null
+++ b/src/templates/Vite-CSharp/.files/solid/pnpm-lock.yaml
@@ -0,0 +1,872 @@
+lockfileVersion: 5.4
+
+specifiers:
+ solid-js: ^1.4.2
+ vite: ^2.9.9
+ vite-plugin-solid: ^2.2.6
+
+dependencies:
+ solid-js: 1.4.2
+
+devDependencies:
+ vite: 2.9.9
+ vite-plugin-solid: 2.2.6
+
+packages:
+
+ /@ampproject/remapping/2.1.2:
+ resolution: {integrity: sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==}
+ engines: {node: '>=6.0.0'}
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.4
+ dev: true
+
+ /@babel/code-frame/7.16.7:
+ resolution: {integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/highlight': 7.16.10
+ dev: true
+
+ /@babel/compat-data/7.17.7:
+ resolution: {integrity: sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/core/7.17.8:
+ resolution: {integrity: sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@ampproject/remapping': 2.1.2
+ '@babel/code-frame': 7.16.7
+ '@babel/generator': 7.17.7
+ '@babel/helper-compilation-targets': 7.17.7_@babel+core@7.17.8
+ '@babel/helper-module-transforms': 7.17.7
+ '@babel/helpers': 7.17.8
+ '@babel/parser': 7.17.8
+ '@babel/template': 7.16.7
+ '@babel/traverse': 7.17.3
+ '@babel/types': 7.17.0
+ convert-source-map: 1.8.0
+ debug: 4.3.4
+ gensync: 1.0.0-beta.2
+ json5: 2.2.1
+ semver: 6.3.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/generator/7.17.7:
+ resolution: {integrity: sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.17.0
+ jsesc: 2.5.2
+ source-map: 0.5.7
+ dev: true
+
+ /@babel/helper-annotate-as-pure/7.16.7:
+ resolution: {integrity: sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.18.0
+ dev: true
+
+ /@babel/helper-compilation-targets/7.17.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/compat-data': 7.17.7
+ '@babel/core': 7.17.8
+ '@babel/helper-validator-option': 7.16.7
+ browserslist: 4.20.2
+ semver: 6.3.0
+ dev: true
+
+ /@babel/helper-create-class-features-plugin/7.17.6_@babel+core@7.17.8:
+ resolution: {integrity: sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-annotate-as-pure': 7.16.7
+ '@babel/helper-environment-visitor': 7.16.7
+ '@babel/helper-function-name': 7.16.7
+ '@babel/helper-member-expression-to-functions': 7.17.7
+ '@babel/helper-optimise-call-expression': 7.16.7
+ '@babel/helper-replace-supers': 7.16.7
+ '@babel/helper-split-export-declaration': 7.16.7
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/helper-environment-visitor/7.16.7:
+ resolution: {integrity: sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/helper-function-name/7.16.7:
+ resolution: {integrity: sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-get-function-arity': 7.16.7
+ '@babel/template': 7.16.7
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/helper-get-function-arity/7.16.7:
+ resolution: {integrity: sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/helper-hoist-variables/7.16.7:
+ resolution: {integrity: sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/helper-member-expression-to-functions/7.17.7:
+ resolution: {integrity: sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.18.0
+ dev: true
+
+ /@babel/helper-module-imports/7.16.0:
+ resolution: {integrity: sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/helper-module-imports/7.16.7:
+ resolution: {integrity: sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/helper-module-transforms/7.17.7:
+ resolution: {integrity: sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-environment-visitor': 7.16.7
+ '@babel/helper-module-imports': 7.16.7
+ '@babel/helper-simple-access': 7.17.7
+ '@babel/helper-split-export-declaration': 7.16.7
+ '@babel/helper-validator-identifier': 7.16.7
+ '@babel/template': 7.16.7
+ '@babel/traverse': 7.17.3
+ '@babel/types': 7.17.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/helper-optimise-call-expression/7.16.7:
+ resolution: {integrity: sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.18.0
+ dev: true
+
+ /@babel/helper-plugin-utils/7.16.7:
+ resolution: {integrity: sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/helper-replace-supers/7.16.7:
+ resolution: {integrity: sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-environment-visitor': 7.16.7
+ '@babel/helper-member-expression-to-functions': 7.17.7
+ '@babel/helper-optimise-call-expression': 7.16.7
+ '@babel/traverse': 7.17.3
+ '@babel/types': 7.18.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/helper-simple-access/7.17.7:
+ resolution: {integrity: sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/helper-split-export-declaration/7.16.7:
+ resolution: {integrity: sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/helper-validator-identifier/7.16.7:
+ resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/helper-validator-option/7.16.7:
+ resolution: {integrity: sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/helpers/7.17.8:
+ resolution: {integrity: sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/template': 7.16.7
+ '@babel/traverse': 7.17.3
+ '@babel/types': 7.17.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/highlight/7.16.10:
+ resolution: {integrity: sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-validator-identifier': 7.16.7
+ chalk: 2.4.2
+ js-tokens: 4.0.0
+ dev: true
+
+ /@babel/parser/7.17.8:
+ resolution: {integrity: sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+ dependencies:
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/plugin-syntax-jsx/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-syntax-typescript/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-transform-typescript/7.16.8_@babel+core@7.17.8:
+ resolution: {integrity: sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-create-class-features-plugin': 7.17.6_@babel+core@7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/plugin-syntax-typescript': 7.16.7_@babel+core@7.17.8
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/preset-typescript/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/helper-validator-option': 7.16.7
+ '@babel/plugin-transform-typescript': 7.16.8_@babel+core@7.17.8
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/template/7.16.7:
+ resolution: {integrity: sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/code-frame': 7.16.7
+ '@babel/parser': 7.17.8
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/traverse/7.17.3:
+ resolution: {integrity: sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/code-frame': 7.16.7
+ '@babel/generator': 7.17.7
+ '@babel/helper-environment-visitor': 7.16.7
+ '@babel/helper-function-name': 7.16.7
+ '@babel/helper-hoist-variables': 7.16.7
+ '@babel/helper-split-export-declaration': 7.16.7
+ '@babel/parser': 7.17.8
+ '@babel/types': 7.17.0
+ debug: 4.3.4
+ globals: 11.12.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/types/7.17.0:
+ resolution: {integrity: sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-validator-identifier': 7.16.7
+ to-fast-properties: 2.0.0
+ dev: true
+
+ /@babel/types/7.18.0:
+ resolution: {integrity: sha512-vhAmLPAiC8j9K2GnsnLPCIH5wCrPpYIVBCWRBFDCB7Y/BXLqi/O+1RSTTM2bsmg6U/551+FCf9PNPxjABmxHTw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-validator-identifier': 7.16.7
+ to-fast-properties: 2.0.0
+ dev: true
+
+ /@jridgewell/resolve-uri/3.0.5:
+ resolution: {integrity: sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==}
+ engines: {node: '>=6.0.0'}
+ dev: true
+
+ /@jridgewell/sourcemap-codec/1.4.11:
+ resolution: {integrity: sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==}
+ dev: true
+
+ /@jridgewell/trace-mapping/0.3.4:
+ resolution: {integrity: sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==}
+ dependencies:
+ '@jridgewell/resolve-uri': 3.0.5
+ '@jridgewell/sourcemap-codec': 1.4.11
+ dev: true
+
+ /ansi-styles/3.2.1:
+ resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
+ engines: {node: '>=4'}
+ dependencies:
+ color-convert: 1.9.3
+ dev: true
+
+ /babel-plugin-jsx-dom-expressions/0.32.11_@babel+core@7.17.8:
+ resolution: {integrity: sha512-hytqY33SGW6B3obSLt8K5X510UwtNkTktCCWgwba+QOOV0CowDFiqeL+0ru895FLacFaYANHFTu1y76dg3GVtw==}
+ dependencies:
+ '@babel/helper-module-imports': 7.16.0
+ '@babel/plugin-syntax-jsx': 7.16.7_@babel+core@7.17.8
+ '@babel/types': 7.17.0
+ html-entities: 2.3.2
+ transitivePeerDependencies:
+ - '@babel/core'
+ dev: true
+
+ /babel-preset-solid/1.3.13_@babel+core@7.17.8:
+ resolution: {integrity: sha512-MZnmsceI9yiHlwwFCSALTJhadk2eea/+2UP4ec4jkPZFR+XRKTLoIwRkrBh7uLtvHF+3lHGyUaXtZukOmmUwhA==}
+ dependencies:
+ babel-plugin-jsx-dom-expressions: 0.32.11_@babel+core@7.17.8
+ transitivePeerDependencies:
+ - '@babel/core'
+ dev: true
+
+ /browserslist/4.20.2:
+ resolution: {integrity: sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+ dependencies:
+ caniuse-lite: 1.0.30001320
+ electron-to-chromium: 1.4.93
+ escalade: 3.1.1
+ node-releases: 2.0.2
+ picocolors: 1.0.0
+ dev: true
+
+ /caniuse-lite/1.0.30001320:
+ resolution: {integrity: sha512-MWPzG54AGdo3nWx7zHZTefseM5Y1ccM7hlQKHRqJkPozUaw3hNbBTMmLn16GG2FUzjR13Cr3NPfhIieX5PzXDA==}
+ dev: true
+
+ /chalk/2.4.2:
+ resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
+ engines: {node: '>=4'}
+ dependencies:
+ ansi-styles: 3.2.1
+ escape-string-regexp: 1.0.5
+ supports-color: 5.5.0
+ dev: true
+
+ /color-convert/1.9.3:
+ resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
+ dependencies:
+ color-name: 1.1.3
+ dev: true
+
+ /color-name/1.1.3:
+ resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=}
+ dev: true
+
+ /convert-source-map/1.8.0:
+ resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==}
+ dependencies:
+ safe-buffer: 5.1.2
+ dev: true
+
+ /debug/4.3.4:
+ resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.1.2
+ dev: true
+
+ /electron-to-chromium/1.4.93:
+ resolution: {integrity: sha512-ywq9Pc5Gwwpv7NG767CtoU8xF3aAUQJjH9//Wy3MBCg4w5JSLbJUq2L8IsCdzPMjvSgxuue9WcVaTOyyxCL0aQ==}
+ dev: true
+
+ /esbuild-android-64/0.14.39:
+ resolution: {integrity: sha512-EJOu04p9WgZk0UoKTqLId9VnIsotmI/Z98EXrKURGb3LPNunkeffqQIkjS2cAvidh+OK5uVrXaIP229zK6GvhQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-android-arm64/0.14.39:
+ resolution: {integrity: sha512-+twajJqO7n3MrCz9e+2lVOnFplRsaGRwsq1KL/uOy7xK7QdRSprRQcObGDeDZUZsacD5gUkk6OiHiYp6RzU3CA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-darwin-64/0.14.39:
+ resolution: {integrity: sha512-ImT6eUw3kcGcHoUxEcdBpi6LfTRWaV6+qf32iYYAfwOeV+XaQ/Xp5XQIBiijLeo+LpGci9M0FVec09nUw41a5g==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-darwin-arm64/0.14.39:
+ resolution: {integrity: sha512-/fcQ5UhE05OiT+bW5v7/up1bDsnvaRZPJxXwzXsMRrr7rZqPa85vayrD723oWMT64dhrgWeA3FIneF8yER0XTw==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-freebsd-64/0.14.39:
+ resolution: {integrity: sha512-oMNH8lJI4wtgN5oxuFP7BQ22vgB/e3Tl5Woehcd6i2r6F3TszpCnNl8wo2d/KvyQ4zvLvCWAlRciumhQg88+kQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-freebsd-arm64/0.14.39:
+ resolution: {integrity: sha512-1GHK7kwk57ukY2yI4ILWKJXaxfr+8HcM/r/JKCGCPziIVlL+Wi7RbJ2OzMcTKZ1HpvEqCTBT/J6cO4ZEwW4Ypg==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-32/0.14.39:
+ resolution: {integrity: sha512-g97Sbb6g4zfRLIxHgW2pc393DjnkTRMeq3N1rmjDUABxpx8SjocK4jLen+/mq55G46eE2TA0MkJ4R3SpKMu7dg==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-64/0.14.39:
+ resolution: {integrity: sha512-4tcgFDYWdI+UbNMGlua9u1Zhu0N5R6u9tl5WOM8aVnNX143JZoBZLpCuUr5lCKhnD0SCO+5gUyMfupGrHtfggQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-arm/0.14.39:
+ resolution: {integrity: sha512-t0Hn1kWVx5UpCzAJkKRfHeYOLyFnXwYynIkK54/h3tbMweGI7dj400D1k0Vvtj2u1P+JTRT9tx3AjtLEMmfVBQ==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-arm64/0.14.39:
+ resolution: {integrity: sha512-23pc8MlD2D6Px1mV8GMglZlKgwgNKAO8gsgsLLcXWSs9lQsCYkIlMo/2Ycfo5JrDIbLdwgP8D2vpfH2KcBqrDQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-mips64le/0.14.39:
+ resolution: {integrity: sha512-epwlYgVdbmkuRr5n4es3B+yDI0I2e/nxhKejT9H0OLxFAlMkeQZxSpxATpDc9m8NqRci6Kwyb/SfmD1koG2Zuw==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-ppc64le/0.14.39:
+ resolution: {integrity: sha512-W/5ezaq+rQiQBThIjLMNjsuhPHg+ApVAdTz2LvcuesZFMsJoQAW2hutoyg47XxpWi7aEjJGrkS26qCJKhRn3QQ==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-riscv64/0.14.39:
+ resolution: {integrity: sha512-IS48xeokcCTKeQIOke2O0t9t14HPvwnZcy+5baG13Z1wxs9ZrC5ig5ypEQQh4QMKxURD5TpCLHw2W42CLuVZaA==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-s390x/0.14.39:
+ resolution: {integrity: sha512-zEfunpqR8sMomqXhNTFEKDs+ik7HC01m3M60MsEjZOqaywHu5e5682fMsqOlZbesEAAaO9aAtRBsU7CHnSZWyA==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-netbsd-64/0.14.39:
+ resolution: {integrity: sha512-Uo2suJBSIlrZCe4E0k75VDIFJWfZy+bOV6ih3T4MVMRJh1lHJ2UyGoaX4bOxomYN3t+IakHPyEoln1+qJ1qYaA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-openbsd-64/0.14.39:
+ resolution: {integrity: sha512-secQU+EpgUPpYjJe3OecoeGKVvRMLeKUxSMGHnK+aK5uQM3n1FPXNJzyz1LHFOo0WOyw+uoCxBYdM4O10oaCAA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-sunos-64/0.14.39:
+ resolution: {integrity: sha512-qHq0t5gePEDm2nqZLb+35p/qkaXVS7oIe32R0ECh2HOdiXXkj/1uQI9IRogGqKkK+QjDG+DhwiUw7QoHur/Rwg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-windows-32/0.14.39:
+ resolution: {integrity: sha512-XPjwp2OgtEX0JnOlTgT6E5txbRp6Uw54Isorm3CwOtloJazeIWXuiwK0ONJBVb/CGbiCpS7iP2UahGgd2p1x+Q==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-windows-64/0.14.39:
+ resolution: {integrity: sha512-E2wm+5FwCcLpKsBHRw28bSYQw0Ikxb7zIMxw3OPAkiaQhLVr3dnVO8DofmbWhhf6b97bWzg37iSZ45ZDpLw7Ow==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-windows-arm64/0.14.39:
+ resolution: {integrity: sha512-sBZQz5D+Gd0EQ09tZRnz/PpVdLwvp/ufMtJ1iDFYddDaPpZXKqPyaxfYBLs3ueiaksQ26GGa7sci0OqFzNs7KA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild/0.14.39:
+ resolution: {integrity: sha512-2kKujuzvRWYtwvNjYDY444LQIA3TyJhJIX3Yo4+qkFlDDtGlSicWgeHVJqMUP/2sSfH10PGwfsj+O2ro1m10xQ==}
+ engines: {node: '>=12'}
+ hasBin: true
+ requiresBuild: true
+ optionalDependencies:
+ esbuild-android-64: 0.14.39
+ esbuild-android-arm64: 0.14.39
+ esbuild-darwin-64: 0.14.39
+ esbuild-darwin-arm64: 0.14.39
+ esbuild-freebsd-64: 0.14.39
+ esbuild-freebsd-arm64: 0.14.39
+ esbuild-linux-32: 0.14.39
+ esbuild-linux-64: 0.14.39
+ esbuild-linux-arm: 0.14.39
+ esbuild-linux-arm64: 0.14.39
+ esbuild-linux-mips64le: 0.14.39
+ esbuild-linux-ppc64le: 0.14.39
+ esbuild-linux-riscv64: 0.14.39
+ esbuild-linux-s390x: 0.14.39
+ esbuild-netbsd-64: 0.14.39
+ esbuild-openbsd-64: 0.14.39
+ esbuild-sunos-64: 0.14.39
+ esbuild-windows-32: 0.14.39
+ esbuild-windows-64: 0.14.39
+ esbuild-windows-arm64: 0.14.39
+ dev: true
+
+ /escalade/3.1.1:
+ resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /escape-string-regexp/1.0.5:
+ resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=}
+ engines: {node: '>=0.8.0'}
+ dev: true
+
+ /fsevents/2.3.2:
+ resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /function-bind/1.1.1:
+ resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
+ dev: true
+
+ /gensync/1.0.0-beta.2:
+ resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /globals/11.12.0:
+ resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /has-flag/3.0.0:
+ resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=}
+ engines: {node: '>=4'}
+ dev: true
+
+ /has/1.0.3:
+ resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
+ engines: {node: '>= 0.4.0'}
+ dependencies:
+ function-bind: 1.1.1
+ dev: true
+
+ /html-entities/2.3.2:
+ resolution: {integrity: sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==}
+ dev: true
+
+ /is-core-module/2.9.0:
+ resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==}
+ dependencies:
+ has: 1.0.3
+ dev: true
+
+ /is-what/4.1.7:
+ resolution: {integrity: sha512-DBVOQNiPKnGMxRMLIYSwERAS5MVY1B7xYiGnpgctsOFvVDz9f9PFXXxMcTOHuoqYp4NK9qFYQaIC1NRRxLMpBQ==}
+ engines: {node: '>=12.13'}
+ dev: true
+
+ /js-tokens/4.0.0:
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+ dev: true
+
+ /jsesc/2.5.2:
+ resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
+ engines: {node: '>=4'}
+ hasBin: true
+ dev: true
+
+ /json5/2.2.1:
+ resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==}
+ engines: {node: '>=6'}
+ hasBin: true
+ dev: true
+
+ /merge-anything/5.0.2:
+ resolution: {integrity: sha512-POPQBWkBC0vxdgzRJ2Mkj4+2NTKbvkHo93ih+jGDhNMLzIw+rYKjO7949hOQM2X7DxMHH1uoUkwWFLIzImw7gA==}
+ engines: {node: '>=12.13'}
+ dependencies:
+ is-what: 4.1.7
+ ts-toolbelt: 9.6.0
+ dev: true
+
+ /ms/2.1.2:
+ resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
+ dev: true
+
+ /nanoid/3.3.4:
+ resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+ dev: true
+
+ /node-releases/2.0.2:
+ resolution: {integrity: sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==}
+ dev: true
+
+ /path-parse/1.0.7:
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+ dev: true
+
+ /picocolors/1.0.0:
+ resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
+ dev: true
+
+ /postcss/8.4.14:
+ resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==}
+ engines: {node: ^10 || ^12 || >=14}
+ dependencies:
+ nanoid: 3.3.4
+ picocolors: 1.0.0
+ source-map-js: 1.0.2
+ dev: true
+
+ /resolve/1.22.0:
+ resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==}
+ hasBin: true
+ dependencies:
+ is-core-module: 2.9.0
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+ dev: true
+
+ /rollup/2.74.1:
+ resolution: {integrity: sha512-K2zW7kV8Voua5eGkbnBtWYfMIhYhT9Pel2uhBk2WO5eMee161nPze/XRfvEQPFYz7KgrCCnmh2Wy0AMFLGGmMA==}
+ engines: {node: '>=10.0.0'}
+ hasBin: true
+ optionalDependencies:
+ fsevents: 2.3.2
+ dev: true
+
+ /safe-buffer/5.1.2:
+ resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
+ dev: true
+
+ /semver/6.3.0:
+ resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
+ hasBin: true
+ dev: true
+
+ /solid-js/1.4.2:
+ resolution: {integrity: sha512-IU5yKuT8P/n5F5g8j1rTXqxUdPYmoZDk/074TG94AEYf/nyXAeG82BSge4/lLIbCfUcnGUJ6DRdebIjujOAYyg==}
+
+ /solid-refresh/0.4.0_solid-js@1.4.2:
+ resolution: {integrity: sha512-5XCUz845n/sHPzKK2i2G2EeV61tAmzv6SqzqhXcPaYhrgzVy7nKTQaBpKK8InKrriq9Z2JFF/mguIU00t/73xw==}
+ peerDependencies:
+ solid-js: ^1.3.0
+ dependencies:
+ '@babel/generator': 7.17.7
+ '@babel/helper-module-imports': 7.16.7
+ '@babel/types': 7.17.0
+ solid-js: 1.4.2
+ dev: true
+
+ /source-map-js/1.0.2:
+ resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /source-map/0.5.7:
+ resolution: {integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /supports-color/5.5.0:
+ resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
+ engines: {node: '>=4'}
+ dependencies:
+ has-flag: 3.0.0
+ dev: true
+
+ /supports-preserve-symlinks-flag/1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /to-fast-properties/2.0.0:
+ resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=}
+ engines: {node: '>=4'}
+ dev: true
+
+ /ts-toolbelt/9.6.0:
+ resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==}
+ dev: true
+
+ /vite-plugin-solid/2.2.6:
+ resolution: {integrity: sha512-J1RnmqkZZJSNYDW7vZj0giKKHLWGr9tS/gxR70WDSTYfhyXrgukbZdIfSEFbtrsg8ZiQ2t2zXcvkWoeefenqKw==}
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/preset-typescript': 7.16.7_@babel+core@7.17.8
+ babel-preset-solid: 1.3.13_@babel+core@7.17.8
+ merge-anything: 5.0.2
+ solid-js: 1.4.2
+ solid-refresh: 0.4.0_solid-js@1.4.2
+ vite: 2.9.9
+ transitivePeerDependencies:
+ - less
+ - sass
+ - stylus
+ - supports-color
+ dev: true
+
+ /vite/2.9.9:
+ resolution: {integrity: sha512-ffaam+NgHfbEmfw/Vuh6BHKKlI/XIAhxE5QSS7gFLIngxg171mg1P3a4LSRME0z2ZU1ScxoKzphkipcYwSD5Ew==}
+ engines: {node: '>=12.2.0'}
+ hasBin: true
+ peerDependencies:
+ less: '*'
+ sass: '*'
+ stylus: '*'
+ peerDependenciesMeta:
+ less:
+ optional: true
+ sass:
+ optional: true
+ stylus:
+ optional: true
+ dependencies:
+ esbuild: 0.14.39
+ postcss: 8.4.14
+ resolve: 1.22.0
+ rollup: 2.74.1
+ optionalDependencies:
+ fsevents: 2.3.2
+ dev: true
diff --git a/src/templates/Vite-CSharp/.files/solid/src/App.jsx b/src/templates/Vite-CSharp/.files/solid/src/App.jsx
new file mode 100644
index 0000000..ead3703
--- /dev/null
+++ b/src/templates/Vite-CSharp/.files/solid/src/App.jsx
@@ -0,0 +1,25 @@
+import logo from './logo.svg';
+import styles from './App.module.css';
+
+function App() {
+ return (
+
+
+
+ );
+}
+
+export default App;
diff --git a/src/templates/Vite-CSharp/.files/solid/src/App.module.css b/src/templates/Vite-CSharp/.files/solid/src/App.module.css
new file mode 100644
index 0000000..48308b2
--- /dev/null
+++ b/src/templates/Vite-CSharp/.files/solid/src/App.module.css
@@ -0,0 +1,33 @@
+.App {
+ text-align: center;
+}
+
+.logo {
+ animation: logo-spin infinite 20s linear;
+ height: 40vmin;
+ pointer-events: none;
+}
+
+.header {
+ background-color: #282c34;
+ min-height: 100vh;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ font-size: calc(10px + 2vmin);
+ color: white;
+}
+
+.link {
+ color: #b318f0;
+}
+
+@keyframes logo-spin {
+ from {
+ transform: rotate(0deg);
+ }
+ to {
+ transform: rotate(360deg);
+ }
+}
diff --git a/src/templates/Vite-CSharp/.files/solid/src/assets/favicon.ico b/src/templates/Vite-CSharp/.files/solid/src/assets/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..b836b2bccac650e0e7d90514083add91d2c027ff
GIT binary patch
literal 15086
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
WLaxim%Fn{v*G , document.getElementById('root'));
diff --git a/src/templates/Vite-CSharp/.files/solid/src/logo.svg b/src/templates/Vite-CSharp/.files/solid/src/logo.svg
new file mode 100644
index 0000000..025aa30
--- /dev/null
+++ b/src/templates/Vite-CSharp/.files/solid/src/logo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/templates/Vite-CSharp/.files/solid/vite.config.js b/src/templates/Vite-CSharp/.files/solid/vite.config.js
new file mode 100644
index 0000000..33b7f78
--- /dev/null
+++ b/src/templates/Vite-CSharp/.files/solid/vite.config.js
@@ -0,0 +1,35 @@
+import { defineConfig } from 'vite'
+import solidPlugin from 'vite-plugin-solid'
+//#if (RequiresHttps)
+import { readFileSync } from 'fs'
+import { certFilePath, keyFilePath } from './aspnetcore-https'
+//#endif
+
+export default defineConfig({
+ plugins: [solidPlugin()],
+ build: {
+ target: 'esnext',
+ polyfillDynamicImport: false,
+ },
+ server: {
+ //#if (RequiresHttps)
+ https: {
+ key: readFileSync(keyFilePath),
+ cert: readFileSync(certFilePath)
+ },
+ //#endif
+ port: 5002,
+ strictPort: true,
+ proxy: {
+ '/api': {
+ //#if (RequiresHttps)
+ target: 'https://localhost:5001/',
+ //#else
+ target: 'http://localhost:5000/',
+ //#endif
+ secure: false,
+ changeOrigin: true
+ }
+ }
+ }
+});
diff --git a/src/templates/Vite-CSharp/.files/vanilla/vite.config.ts b/src/templates/Vite-CSharp/.files/vanilla/vite.config.js
similarity index 100%
rename from src/templates/Vite-CSharp/.files/vanilla/vite.config.ts
rename to src/templates/Vite-CSharp/.files/vanilla/vite.config.js
diff --git a/src/templates/Vite-CSharp/.template.config/template.json b/src/templates/Vite-CSharp/.template.config/template.json
index 605b73c..348577f 100644
--- a/src/templates/Vite-CSharp/.template.config/template.json
+++ b/src/templates/Vite-CSharp/.template.config/template.json
@@ -90,6 +90,16 @@
"condition": "(FrontendFramework == \"svelte\" && UseTypeScript)",
"source": ".files/svelte-ts/",
"target": "./ClientApp/"
+ },
+ {
+ "condition": "(FrontendFramework == \"solid\" && !UseTypeScript)",
+ "source": ".files/solid/",
+ "target": "./ClientApp/"
+ },
+ {
+ "condition": "(FrontendFramework == \"solid\" && UseTypeScript)",
+ "source": ".files/solid-ts/",
+ "target": "./ClientApp/"
}
],
"tags": {
@@ -124,6 +134,10 @@
{
"choice": "svelte",
"description": "Svelte"
+ },
+ {
+ "choice": "solid",
+ "description": "Solid js"
}
],
"description": "The Frontend-Framework that should be scaffolded",
diff --git a/tests/Vite-CSharp.Tests/InstallTests.cs b/tests/Vite-CSharp.Tests/InstallTests.cs
index ffd4a73..bcd642b 100644
--- a/tests/Vite-CSharp.Tests/InstallTests.cs
+++ b/tests/Vite-CSharp.Tests/InstallTests.cs
@@ -35,6 +35,8 @@ public async Task Template_can_be_restored_and_built()
[InlineData("frontendFramework=lit", "useTypeScript=true")]
[InlineData("frontendFramework=svelte")]
[InlineData("frontendFramework=svelte", "useTypeScript=true")]
+ [InlineData("frontendFramework=solid")]
+ [InlineData("frontendFramework=solid", "useTypeScript=true")]
public async Task CLI_parameters_are_supported(params string[] arguments)
{
await using var tempDirectory = TempDirectory.NewTempDirectory();
From 1cd10c1f0999d0da34135584e329ce9125f4c867 Mon Sep 17 00:00:00 2001
From: uiopak <44174807+uiopak@users.noreply.github.com>
Date: Fri, 3 Jun 2022 01:12:54 +0200
Subject: [PATCH 4/7] Add Preact peer dependencies
---
src/templates/Vite-CSharp/.files/preact-ts/package.json | 3 ++-
src/templates/Vite-CSharp/.files/preact/package.json | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/templates/Vite-CSharp/.files/preact-ts/package.json b/src/templates/Vite-CSharp/.files/preact-ts/package.json
index f4f4ab7..418d175 100644
--- a/src/templates/Vite-CSharp/.files/preact-ts/package.json
+++ b/src/templates/Vite-CSharp/.files/preact-ts/package.json
@@ -14,7 +14,8 @@
"preact": "^10.5.13"
},
"devDependencies": {
- "@preact/preset-vite": "^2.0.0",
+ "@preact/preset-vite": "^2.2.0",
+ "@babel/core": "^7.18.2",
"typescript": "^4.3.2",
"vite": "^2.6.4"
}
diff --git a/src/templates/Vite-CSharp/.files/preact/package.json b/src/templates/Vite-CSharp/.files/preact/package.json
index b943f84..989ccb6 100644
--- a/src/templates/Vite-CSharp/.files/preact/package.json
+++ b/src/templates/Vite-CSharp/.files/preact/package.json
@@ -14,7 +14,8 @@
"preact": "^10.5.13"
},
"devDependencies": {
- "@preact/preset-vite": "^2.0.0",
+ "@preact/preset-vite": "^2.2.0",
+ "@babel/core": "^7.18.2",
"vite": "^2.6.4"
}
}
\ No newline at end of file
From 0cfe84c67cb77f9ca99b50cab9df953ada8818a7 Mon Sep 17 00:00:00 2001
From: uiopak <44174807+uiopak@users.noreply.github.com>
Date: Fri, 3 Jun 2022 02:05:22 +0200
Subject: [PATCH 5/7] Update readme
---
README.md | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 6356341..5e79e25 100644
--- a/README.md
+++ b/README.md
@@ -24,7 +24,7 @@ dotnet restore
dotnet build
dotnet pack -c=Release // Prints the path to the nupkg
-dotnet install -i
+dotnet new --install
```
## Usage
@@ -35,6 +35,20 @@ dotnet new vite -o my-vite-project --frontendFramework vue --useTypeScript
dotnet new vite -o my-vite-project -f vue -t
```
+
+It is posible to create a new project that will use pnpm instead od npm:
+```bash
+dotnet new vite -o my-vite-project --frontendFramework solid --useTypeScript --usePNPM
+# alternative short form:
+dotnet new vite -o my-vite-project -f solid -t -p
+```
+
+
+Example without https:
+```bash
+dotnet new vite -o my-vite-project --frontendFramework vanilla --useTypeScript --no-https
+```
+
The templates supported by Vite (and, in extensions by this template) are:
- vanilla
From 7bec711d5108a5ed2590dc3b36cef72ab6a721b2 Mon Sep 17 00:00:00 2001
From: uiopak <44174807+uiopak@users.noreply.github.com>
Date: Fri, 3 Jun 2022 16:18:28 +0200
Subject: [PATCH 6/7] Exclude aspnetcore-https.js when no-https
---
.../.template.config/template.json | 118 +++++++++++++++---
1 file changed, 98 insertions(+), 20 deletions(-)
diff --git a/src/templates/Vite-CSharp/.template.config/template.json b/src/templates/Vite-CSharp/.template.config/template.json
index 348577f..167f3f2 100644
--- a/src/templates/Vite-CSharp/.template.config/template.json
+++ b/src/templates/Vite-CSharp/.template.config/template.json
@@ -25,81 +25,159 @@
".files/**"
]
},
- {
- "condition": "(!RequiresHttps)",
- "exclude": [
- "./ClientApp/aspnetcore-https.js"
- ]
- },
{
"condition": "(FrontendFramework == \"vanilla\" && !UseTypeScript)",
"source": ".files/vanilla/",
- "target": "./ClientApp/"
+ "target": "./ClientApp/",
+ "modifiers": [
+ {
+ "condition": "(!RequiresHttps)",
+ "exclude": "**/aspnetcore-https.js"
+ }
+ ]
},
{
"condition": "(FrontendFramework == \"vanilla\" && UseTypeScript)",
"source": ".files/vanilla-ts/",
- "target": "./ClientApp/"
+ "target": "./ClientApp/",
+ "modifiers": [
+ {
+ "condition": "(!RequiresHttps)",
+ "exclude": "**/aspnetcore-https.js"
+ }
+ ]
},
{
"condition": "(FrontendFramework == \"vue\" && !UseTypeScript)",
"source": ".files/vue/",
- "target": "./ClientApp/"
+ "target": "./ClientApp/",
+ "modifiers": [
+ {
+ "condition": "(!RequiresHttps)",
+ "exclude": "**/aspnetcore-https.js"
+ }
+ ]
},
{
"condition": "(FrontendFramework == \"vue\" && UseTypeScript)",
"source": ".files/vue-ts/",
- "target": "./ClientApp/"
+ "target": "./ClientApp/",
+ "modifiers": [
+ {
+ "condition": "(!RequiresHttps)",
+ "exclude": "**/aspnetcore-https.js"
+ }
+ ]
},
{
"condition": "(FrontendFramework == \"react\" && !UseTypeScript)",
"source": ".files/react/",
- "target": "./ClientApp/"
+ "target": "./ClientApp/",
+ "modifiers": [
+ {
+ "condition": "(!RequiresHttps)",
+ "exclude": "**/aspnetcore-https.js"
+ }
+ ]
},
{
"condition": "(FrontendFramework == \"react\" && UseTypeScript)",
"source": ".files/react-ts/",
- "target": "./ClientApp/"
+ "target": "./ClientApp/",
+ "modifiers": [
+ {
+ "condition": "(!RequiresHttps)",
+ "exclude": "**/aspnetcore-https.js"
+ }
+ ]
},
{
"condition": "(FrontendFramework == \"preact\" && !UseTypeScript)",
"source": ".files/preact/",
- "target": "./ClientApp/"
+ "target": "./ClientApp/",
+ "modifiers": [
+ {
+ "condition": "(!RequiresHttps)",
+ "exclude": "**/aspnetcore-https.js"
+ }
+ ]
},
{
"condition": "(FrontendFramework == \"preact\" && UseTypeScript)",
"source": ".files/preact-ts/",
- "target": "./ClientApp/"
+ "target": "./ClientApp/",
+ "modifiers": [
+ {
+ "condition": "(!RequiresHttps)",
+ "exclude": "**/aspnetcore-https.js"
+ }
+ ]
},
{
"condition": "(FrontendFramework == \"lit\" && !UseTypeScript)",
"source": ".files/lit/",
- "target": "./ClientApp/"
+ "target": "./ClientApp/",
+ "modifiers": [
+ {
+ "condition": "(!RequiresHttps)",
+ "exclude": "**/aspnetcore-https.js"
+ }
+ ]
},
{
"condition": "(FrontendFramework == \"lit\" && UseTypeScript)",
"source": ".files/lit-ts/",
- "target": "./ClientApp/"
+ "target": "./ClientApp/",
+ "modifiers": [
+ {
+ "condition": "(!RequiresHttps)",
+ "exclude": "**/aspnetcore-https.js"
+ }
+ ]
},
{
"condition": "(FrontendFramework == \"svelte\" && !UseTypeScript)",
"source": ".files/svelte/",
- "target": "./ClientApp/"
+ "target": "./ClientApp/",
+ "modifiers": [
+ {
+ "condition": "(!RequiresHttps)",
+ "exclude": "**/aspnetcore-https.js"
+ }
+ ]
},
{
"condition": "(FrontendFramework == \"svelte\" && UseTypeScript)",
"source": ".files/svelte-ts/",
- "target": "./ClientApp/"
+ "target": "./ClientApp/",
+ "modifiers": [
+ {
+ "condition": "(!RequiresHttps)",
+ "exclude": "**/aspnetcore-https.js"
+ }
+ ]
},
{
"condition": "(FrontendFramework == \"solid\" && !UseTypeScript)",
"source": ".files/solid/",
- "target": "./ClientApp/"
+ "target": "./ClientApp/",
+ "modifiers": [
+ {
+ "condition": "(!RequiresHttps)",
+ "exclude": "**/aspnetcore-https.js"
+ }
+ ]
},
{
"condition": "(FrontendFramework == \"solid\" && UseTypeScript)",
"source": ".files/solid-ts/",
- "target": "./ClientApp/"
+ "target": "./ClientApp/",
+ "modifiers": [
+ {
+ "condition": "(!RequiresHttps)",
+ "exclude": "**/aspnetcore-https.js"
+ }
+ ]
}
],
"tags": {
From 8443a55bdc3835e731b9f8357d18b69161e44528 Mon Sep 17 00:00:00 2001
From: uiopak <44174807+uiopak@users.noreply.github.com>
Date: Fri, 3 Jun 2022 16:27:04 +0200
Subject: [PATCH 7/7] Fix production build file serving
---
src/templates/Vite-CSharp/Program.cs | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/templates/Vite-CSharp/Program.cs b/src/templates/Vite-CSharp/Program.cs
index b66202b..e19550b 100644
--- a/src/templates/Vite-CSharp/Program.cs
+++ b/src/templates/Vite-CSharp/Program.cs
@@ -10,8 +10,12 @@
app.UseHttpsRedirection();
#endif
+app.UseStaticFiles();
+
app.UseAuthorization();
app.MapControllers();
+app.MapFallbackToFile("index.html");
+
app.Run();