diff --git a/README.md b/README.md index abf00fd..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 @@ -43,6 +57,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/Vite-CSharp.csproj.in b/src/Vite-CSharp.csproj.in index beaf2e7..85dfd75 100644 --- a/src/Vite-CSharp.csproj.in +++ b/src/Vite-CSharp.csproj.in @@ -1,21 +1,25 @@ - + 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..418d175 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", @@ -12,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-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..989ccb6 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", @@ -12,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 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/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 ( +
+
+ logo +

+ Edit src/App.tsx and save to reload. +

+ + Learn Solid + +
+
+ ); +}; + +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 0000000..b836b2b Binary files /dev/null and b/src/templates/Vite-CSharp/.files/solid-ts/src/assets/favicon.ico differ diff --git a/src/templates/Vite-CSharp/.files/solid-ts/src/index.css b/src/templates/Vite-CSharp/.files/solid-ts/src/index.css new file mode 100644 index 0000000..ec2585e --- /dev/null +++ b/src/templates/Vite-CSharp/.files/solid-ts/src/index.css @@ -0,0 +1,13 @@ +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +code { + font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', + monospace; +} diff --git a/src/templates/Vite-CSharp/.files/solid-ts/src/index.tsx b/src/templates/Vite-CSharp/.files/solid-ts/src/index.tsx new file mode 100644 index 0000000..6362c7b --- /dev/null +++ b/src/templates/Vite-CSharp/.files/solid-ts/src/index.tsx @@ -0,0 +1,7 @@ +/* @refresh reload */ +import { render } from 'solid-js/web'; + +import './index.css'; +import App from './App'; + +render(() => , 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 ( +
+
+ logo +

+ Edit src/App.jsx and save to reload. +

+ + Learn Solid + +
+
+ ); +} + +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 0000000..b836b2b Binary files /dev/null and b/src/templates/Vite-CSharp/.files/solid/src/assets/favicon.ico differ diff --git a/src/templates/Vite-CSharp/.files/solid/src/index.css b/src/templates/Vite-CSharp/.files/solid/src/index.css new file mode 100644 index 0000000..ec2585e --- /dev/null +++ b/src/templates/Vite-CSharp/.files/solid/src/index.css @@ -0,0 +1,13 @@ +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +code { + font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', + monospace; +} diff --git a/src/templates/Vite-CSharp/.files/solid/src/index.jsx b/src/templates/Vite-CSharp/.files/solid/src/index.jsx new file mode 100644 index 0000000..27c0e53 --- /dev/null +++ b/src/templates/Vite-CSharp/.files/solid/src/index.jsx @@ -0,0 +1,7 @@ +/* @refresh reload */ +import { render } from 'solid-js/web'; + +import './index.css'; +import App from './App'; + +render(() => , 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/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.js similarity index 65% rename from src/templates/Vite-CSharp/.files/vanilla/vite.config.ts rename to src/templates/Vite-CSharp/.files/vanilla/vite.config.js index 064f373..d1748b0 100644 --- a/src/templates/Vite-CSharp/.files/vanilla/vite.config.ts +++ b/src/templates/Vite-CSharp/.files/vanilla/vite.config.js @@ -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..167f3f2 100644 --- a/src/templates/Vite-CSharp/.template.config/template.json +++ b/src/templates/Vite-CSharp/.template.config/template.json @@ -28,62 +28,156 @@ { "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/", + "modifiers": [ + { + "condition": "(!RequiresHttps)", + "exclude": "**/aspnetcore-https.js" + } + ] + }, + { + "condition": "(FrontendFramework == \"solid\" && UseTypeScript)", + "source": ".files/solid-ts/", + "target": "./ClientApp/", + "modifiers": [ + { + "condition": "(!RequiresHttps)", + "exclude": "**/aspnetcore-https.js" + } + ] } ], "tags": { @@ -118,6 +212,10 @@ { "choice": "svelte", "description": "Svelte" + }, + { + "choice": "solid", + "description": "Solid js" } ], "description": "The Frontend-Framework that should be scaffolded", @@ -128,6 +226,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..e19550b 100644 --- a/src/templates/Vite-CSharp/Program.cs +++ b/src/templates/Vite-CSharp/Program.cs @@ -6,10 +6,16 @@ var app = builder.Build(); +#if (RequiresHttps) app.UseHttpsRedirection(); +#endif + +app.UseStaticFiles(); app.UseAuthorization(); app.MapControllers(); +app.MapFallbackToFile("index.html"); + app.Run(); 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 { 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();