add for basic-ssl
This commit is contained in:
		
							
								
								
									
										66
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,66 @@
 | 
				
			|||||||
 | 
					node_modules
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# mac
 | 
				
			||||||
 | 
					.DS_Store
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.env*
 | 
				
			||||||
 | 
					!.env*example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dist
 | 
				
			||||||
 | 
					build
 | 
				
			||||||
 | 
					logs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.turbo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pack-dist
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# astro
 | 
				
			||||||
 | 
					.astro
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# next
 | 
				
			||||||
 | 
					.next
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# nuxt
 | 
				
			||||||
 | 
					.nuxt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# vercel
 | 
				
			||||||
 | 
					.vercel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# vuepress
 | 
				
			||||||
 | 
					.vuepress/dist
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# coverage
 | 
				
			||||||
 | 
					coverage/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# typescript
 | 
				
			||||||
 | 
					*.tsbuildinfo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# debug logs
 | 
				
			||||||
 | 
					*.log
 | 
				
			||||||
 | 
					*.tmp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# vscode
 | 
				
			||||||
 | 
					.vscode/*
 | 
				
			||||||
 | 
					!.vscode/settings.json
 | 
				
			||||||
 | 
					!.vscode/tasks.json
 | 
				
			||||||
 | 
					!.vscode/launch.json
 | 
				
			||||||
 | 
					!.vscode/extensions.json
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# idea
 | 
				
			||||||
 | 
					.idea
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# system
 | 
				
			||||||
 | 
					Thumbs.db
 | 
				
			||||||
 | 
					ehthumbs.db
 | 
				
			||||||
 | 
					Desktop.ini
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# temp files
 | 
				
			||||||
 | 
					*.tmp
 | 
				
			||||||
 | 
					*.temp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# local development
 | 
				
			||||||
 | 
					*.local
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public/r
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.pnpm-store
 | 
				
			||||||
							
								
								
									
										3
									
								
								.npmrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.npmrc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					//npm.xiongxiao.me/:_authToken=${ME_NPM_TOKEN}
 | 
				
			||||||
 | 
					//registry.npmjs.org/:_authToken=${NPM_TOKEN}
 | 
				
			||||||
 | 
					ignore-workspace-root-check=true
 | 
				
			||||||
							
								
								
									
										24
									
								
								bun.config.mjs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								bun.config.mjs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
				
			|||||||
 | 
					// @ts-check
 | 
				
			||||||
 | 
					import { resolvePath } from '@kevisual/use-config/env';
 | 
				
			||||||
 | 
					import { execSync } from 'node:child_process';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const entry = 'src/index.ts';
 | 
				
			||||||
 | 
					const naming = 'app';
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @type {import('bun').BuildConfig}
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					await Bun.build({
 | 
				
			||||||
 | 
					  target: 'node',
 | 
				
			||||||
 | 
					  format: 'esm',
 | 
				
			||||||
 | 
					  entrypoints: [resolvePath(entry, { meta: import.meta })],
 | 
				
			||||||
 | 
					  outdir: resolvePath('./dist', { meta: import.meta }),
 | 
				
			||||||
 | 
					  naming: {
 | 
				
			||||||
 | 
					    entry: `${naming}.js`,
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  external: [],
 | 
				
			||||||
 | 
					  env: 'KEVISUAL_*',
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// const cmd = `dts -i src/index.ts -o app.d.ts`;
 | 
				
			||||||
 | 
					const cmd = `dts -i ${entry} -o ${naming}.d.ts`;
 | 
				
			||||||
 | 
					execSync(cmd, { stdio: 'inherit' });
 | 
				
			||||||
							
								
								
									
										11
									
								
								demo/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								demo/index.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					<html>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<head>
 | 
				
			||||||
 | 
					  <title>Vite App</title>
 | 
				
			||||||
 | 
					</head>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<body>
 | 
				
			||||||
 | 
					  <h1>Hello Vite!</h1>
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
							
								
								
									
										8
									
								
								demo/vite.config.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								demo/vite.config.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					import { defineConfig } from 'vite';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// import { ssl } from '../dist/app.js';
 | 
				
			||||||
 | 
					import { ssl } from '../src/index.ts';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default defineConfig({
 | 
				
			||||||
 | 
					  plugins: [ssl()],
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
							
								
								
									
										22
									
								
								kevisual.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								kevisual.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "sync": {
 | 
				
			||||||
 | 
					    ".gitignore": {
 | 
				
			||||||
 | 
					      "url": "https://kevisual.xiongxiao.me/root/ai/code/config/gitignore/node.txt"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    ".npmrc": {
 | 
				
			||||||
 | 
					      "url": "https://kevisual.xiongxiao.me/root/ai/code/config/npm/.npmrc"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "tsconfig.json": {
 | 
				
			||||||
 | 
					      "url": "https://kevisual.xiongxiao.me/root/ai/code/config/ts/backend.json"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "bun.config.mjs": {
 | 
				
			||||||
 | 
					      "url": "https://kevisual.xiongxiao.me/root/ai/code/config/bun/bun.config.mjs"
 | 
				
			||||||
 | 
					    },  
 | 
				
			||||||
 | 
					    ".cnb.yml": {
 | 
				
			||||||
 | 
					      "url": "https://kevisual.xiongxiao.me/root/ai/code/config/cnb/dev.yml"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "package.json": {
 | 
				
			||||||
 | 
					      "url": "https://kevisual.xiongxiao.me/root/ai/code/config/npm/back-01-base/package.json"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										53
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,53 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "name": "@kevisual/ssl",
 | 
				
			||||||
 | 
					  "version": "0.0.1",
 | 
				
			||||||
 | 
					  "description": "",
 | 
				
			||||||
 | 
					  "main": "index.js",
 | 
				
			||||||
 | 
					  "basename": "/root/demo-app",
 | 
				
			||||||
 | 
					  "app": {
 | 
				
			||||||
 | 
					    "key": "demo-app",
 | 
				
			||||||
 | 
					    "entry": "dist/app.js",
 | 
				
			||||||
 | 
					    "type": "system-app",
 | 
				
			||||||
 | 
					    "files": [
 | 
				
			||||||
 | 
					      "dist"
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "scripts": {
 | 
				
			||||||
 | 
					    "dev": "cross-env NODE_TLS_REJECT_UNAUTHORIZED=0  bun --watch src/dev.ts ",
 | 
				
			||||||
 | 
					    "build": "rimraf dist && bun run bun.config.mjs",
 | 
				
			||||||
 | 
					    "clean": "rm -rf dist"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "keywords": [],
 | 
				
			||||||
 | 
					  "author": "abearxiong <xiongxiao@xiongxiao.me>",
 | 
				
			||||||
 | 
					  "license": "MIT",
 | 
				
			||||||
 | 
					  "type": "module",
 | 
				
			||||||
 | 
					  "types": "types/app.d.ts",
 | 
				
			||||||
 | 
					  "files": [
 | 
				
			||||||
 | 
					    "dist",
 | 
				
			||||||
 | 
					    "src"
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  "publishConfig": {
 | 
				
			||||||
 | 
					    "access": "public"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "exports": {
 | 
				
			||||||
 | 
					    ".": {
 | 
				
			||||||
 | 
					      "types": "./dist/app.d.ts",
 | 
				
			||||||
 | 
					      "default": "./dist/app.js"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "devDependencies": {
 | 
				
			||||||
 | 
					    "@kevisual/router": "^0.0.22",
 | 
				
			||||||
 | 
					    "@kevisual/types": "^0.0.10",
 | 
				
			||||||
 | 
					    "@kevisual/use-config": "^1.0.17",
 | 
				
			||||||
 | 
					    "@types/bun": "^1.2.15",
 | 
				
			||||||
 | 
					    "@types/lodash-es": "^4.17.12",
 | 
				
			||||||
 | 
					    "@types/node": "^22.15.29",
 | 
				
			||||||
 | 
					    "commander": "^14.0.0",
 | 
				
			||||||
 | 
					    "cross-env": "^7.0.3",
 | 
				
			||||||
 | 
					    "enquirer": "^2.4.1",
 | 
				
			||||||
 | 
					    "node-forge": "^1.3.1",
 | 
				
			||||||
 | 
					    "typescript": "^5.8.3",
 | 
				
			||||||
 | 
					    "vite": "^6.3.5"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "packageManager": "pnpm@10.11.1"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										821
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										821
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,821 @@
 | 
				
			|||||||
 | 
					lockfileVersion: '9.0'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					settings:
 | 
				
			||||||
 | 
					  autoInstallPeers: true
 | 
				
			||||||
 | 
					  excludeLinksFromLockfile: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					importers:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .:
 | 
				
			||||||
 | 
					    devDependencies:
 | 
				
			||||||
 | 
					      '@kevisual/router':
 | 
				
			||||||
 | 
					        specifier: ^0.0.22
 | 
				
			||||||
 | 
					        version: 0.0.22
 | 
				
			||||||
 | 
					      '@kevisual/types':
 | 
				
			||||||
 | 
					        specifier: ^0.0.10
 | 
				
			||||||
 | 
					        version: 0.0.10
 | 
				
			||||||
 | 
					      '@kevisual/use-config':
 | 
				
			||||||
 | 
					        specifier: ^1.0.17
 | 
				
			||||||
 | 
					        version: 1.0.17(dotenv@16.5.0)
 | 
				
			||||||
 | 
					      '@types/bun':
 | 
				
			||||||
 | 
					        specifier: ^1.2.15
 | 
				
			||||||
 | 
					        version: 1.2.15
 | 
				
			||||||
 | 
					      '@types/lodash-es':
 | 
				
			||||||
 | 
					        specifier: ^4.17.12
 | 
				
			||||||
 | 
					        version: 4.17.12
 | 
				
			||||||
 | 
					      '@types/node':
 | 
				
			||||||
 | 
					        specifier: ^22.15.29
 | 
				
			||||||
 | 
					        version: 22.15.29
 | 
				
			||||||
 | 
					      commander:
 | 
				
			||||||
 | 
					        specifier: ^14.0.0
 | 
				
			||||||
 | 
					        version: 14.0.0
 | 
				
			||||||
 | 
					      cross-env:
 | 
				
			||||||
 | 
					        specifier: ^7.0.3
 | 
				
			||||||
 | 
					        version: 7.0.3
 | 
				
			||||||
 | 
					      enquirer:
 | 
				
			||||||
 | 
					        specifier: ^2.4.1
 | 
				
			||||||
 | 
					        version: 2.4.1
 | 
				
			||||||
 | 
					      node-forge:
 | 
				
			||||||
 | 
					        specifier: ^1.3.1
 | 
				
			||||||
 | 
					        version: 1.3.1
 | 
				
			||||||
 | 
					      typescript:
 | 
				
			||||||
 | 
					        specifier: ^5.8.3
 | 
				
			||||||
 | 
					        version: 5.8.3
 | 
				
			||||||
 | 
					      vite:
 | 
				
			||||||
 | 
					        specifier: ^6.3.5
 | 
				
			||||||
 | 
					        version: 6.3.5(@types/node@22.15.29)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					packages:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/aix-ppc64@0.25.5':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==}
 | 
				
			||||||
 | 
					    engines: {node: '>=18'}
 | 
				
			||||||
 | 
					    cpu: [ppc64]
 | 
				
			||||||
 | 
					    os: [aix]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/android-arm64@0.25.5':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==}
 | 
				
			||||||
 | 
					    engines: {node: '>=18'}
 | 
				
			||||||
 | 
					    cpu: [arm64]
 | 
				
			||||||
 | 
					    os: [android]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/android-arm@0.25.5':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==}
 | 
				
			||||||
 | 
					    engines: {node: '>=18'}
 | 
				
			||||||
 | 
					    cpu: [arm]
 | 
				
			||||||
 | 
					    os: [android]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/android-x64@0.25.5':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==}
 | 
				
			||||||
 | 
					    engines: {node: '>=18'}
 | 
				
			||||||
 | 
					    cpu: [x64]
 | 
				
			||||||
 | 
					    os: [android]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/darwin-arm64@0.25.5':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==}
 | 
				
			||||||
 | 
					    engines: {node: '>=18'}
 | 
				
			||||||
 | 
					    cpu: [arm64]
 | 
				
			||||||
 | 
					    os: [darwin]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/darwin-x64@0.25.5':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==}
 | 
				
			||||||
 | 
					    engines: {node: '>=18'}
 | 
				
			||||||
 | 
					    cpu: [x64]
 | 
				
			||||||
 | 
					    os: [darwin]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/freebsd-arm64@0.25.5':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==}
 | 
				
			||||||
 | 
					    engines: {node: '>=18'}
 | 
				
			||||||
 | 
					    cpu: [arm64]
 | 
				
			||||||
 | 
					    os: [freebsd]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/freebsd-x64@0.25.5':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==}
 | 
				
			||||||
 | 
					    engines: {node: '>=18'}
 | 
				
			||||||
 | 
					    cpu: [x64]
 | 
				
			||||||
 | 
					    os: [freebsd]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/linux-arm64@0.25.5':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==}
 | 
				
			||||||
 | 
					    engines: {node: '>=18'}
 | 
				
			||||||
 | 
					    cpu: [arm64]
 | 
				
			||||||
 | 
					    os: [linux]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/linux-arm@0.25.5':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==}
 | 
				
			||||||
 | 
					    engines: {node: '>=18'}
 | 
				
			||||||
 | 
					    cpu: [arm]
 | 
				
			||||||
 | 
					    os: [linux]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/linux-ia32@0.25.5':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==}
 | 
				
			||||||
 | 
					    engines: {node: '>=18'}
 | 
				
			||||||
 | 
					    cpu: [ia32]
 | 
				
			||||||
 | 
					    os: [linux]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/linux-loong64@0.25.5':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==}
 | 
				
			||||||
 | 
					    engines: {node: '>=18'}
 | 
				
			||||||
 | 
					    cpu: [loong64]
 | 
				
			||||||
 | 
					    os: [linux]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/linux-mips64el@0.25.5':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==}
 | 
				
			||||||
 | 
					    engines: {node: '>=18'}
 | 
				
			||||||
 | 
					    cpu: [mips64el]
 | 
				
			||||||
 | 
					    os: [linux]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/linux-ppc64@0.25.5':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==}
 | 
				
			||||||
 | 
					    engines: {node: '>=18'}
 | 
				
			||||||
 | 
					    cpu: [ppc64]
 | 
				
			||||||
 | 
					    os: [linux]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/linux-riscv64@0.25.5':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==}
 | 
				
			||||||
 | 
					    engines: {node: '>=18'}
 | 
				
			||||||
 | 
					    cpu: [riscv64]
 | 
				
			||||||
 | 
					    os: [linux]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/linux-s390x@0.25.5':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==}
 | 
				
			||||||
 | 
					    engines: {node: '>=18'}
 | 
				
			||||||
 | 
					    cpu: [s390x]
 | 
				
			||||||
 | 
					    os: [linux]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/linux-x64@0.25.5':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==}
 | 
				
			||||||
 | 
					    engines: {node: '>=18'}
 | 
				
			||||||
 | 
					    cpu: [x64]
 | 
				
			||||||
 | 
					    os: [linux]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/netbsd-arm64@0.25.5':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==}
 | 
				
			||||||
 | 
					    engines: {node: '>=18'}
 | 
				
			||||||
 | 
					    cpu: [arm64]
 | 
				
			||||||
 | 
					    os: [netbsd]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/netbsd-x64@0.25.5':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==}
 | 
				
			||||||
 | 
					    engines: {node: '>=18'}
 | 
				
			||||||
 | 
					    cpu: [x64]
 | 
				
			||||||
 | 
					    os: [netbsd]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/openbsd-arm64@0.25.5':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==}
 | 
				
			||||||
 | 
					    engines: {node: '>=18'}
 | 
				
			||||||
 | 
					    cpu: [arm64]
 | 
				
			||||||
 | 
					    os: [openbsd]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/openbsd-x64@0.25.5':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==}
 | 
				
			||||||
 | 
					    engines: {node: '>=18'}
 | 
				
			||||||
 | 
					    cpu: [x64]
 | 
				
			||||||
 | 
					    os: [openbsd]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/sunos-x64@0.25.5':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==}
 | 
				
			||||||
 | 
					    engines: {node: '>=18'}
 | 
				
			||||||
 | 
					    cpu: [x64]
 | 
				
			||||||
 | 
					    os: [sunos]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/win32-arm64@0.25.5':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==}
 | 
				
			||||||
 | 
					    engines: {node: '>=18'}
 | 
				
			||||||
 | 
					    cpu: [arm64]
 | 
				
			||||||
 | 
					    os: [win32]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/win32-ia32@0.25.5':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==}
 | 
				
			||||||
 | 
					    engines: {node: '>=18'}
 | 
				
			||||||
 | 
					    cpu: [ia32]
 | 
				
			||||||
 | 
					    os: [win32]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/win32-x64@0.25.5':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==}
 | 
				
			||||||
 | 
					    engines: {node: '>=18'}
 | 
				
			||||||
 | 
					    cpu: [x64]
 | 
				
			||||||
 | 
					    os: [win32]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@kevisual/load@0.0.6':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-+3YTFehRcZ1haGel5DKYMUwmi5i6f2psyaPZlfkKU/cOXgkpwoG9/BEqPCnPjicKqqnksEpixVRkyHJ+5bjLVA==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@kevisual/router@0.0.22':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-Cqv2vV+hPBHrMMfvWlfDIuNrQcmd260oQZ4S5QR/R4tV35XtMKiseqhnC9uR09oVBJUh+d5rW3YucDDddheeDQ==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@kevisual/types@0.0.10':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-Q73uzzjk9UidumnmCvOpgzqDDvQxsblz22bIFuoiioUFJWwaparx8bpd8ArRyFojicYL1YJoFDzDZ9j9NN8grA==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@kevisual/use-config@1.0.17':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-EsuMJ5bhAbdERvpD55td1diRxx4kSxtYVaIHo0vDvnLetuXLfq+j2DPGmWl/oRdO48op0dme5oo1DctCqpgYcQ==}
 | 
				
			||||||
 | 
					    peerDependencies:
 | 
				
			||||||
 | 
					      dotenv: ^16.4.7
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-android-arm-eabi@4.41.1':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-NELNvyEWZ6R9QMkiytB4/L4zSEaBC03KIXEghptLGLZWJ6VPrL63ooZQCOnlx36aQPGhzuOMwDerC1Eb2VmrLw==}
 | 
				
			||||||
 | 
					    cpu: [arm]
 | 
				
			||||||
 | 
					    os: [android]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-android-arm64@4.41.1':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-DXdQe1BJ6TK47ukAoZLehRHhfKnKg9BjnQYUu9gzhI8Mwa1d2fzxA1aw2JixHVl403bwp1+/o/NhhHtxWJBgEA==}
 | 
				
			||||||
 | 
					    cpu: [arm64]
 | 
				
			||||||
 | 
					    os: [android]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-darwin-arm64@4.41.1':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-5afxvwszzdulsU2w8JKWwY8/sJOLPzf0e1bFuvcW5h9zsEg+RQAojdW0ux2zyYAz7R8HvvzKCjLNJhVq965U7w==}
 | 
				
			||||||
 | 
					    cpu: [arm64]
 | 
				
			||||||
 | 
					    os: [darwin]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-darwin-x64@4.41.1':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-egpJACny8QOdHNNMZKf8xY0Is6gIMz+tuqXlusxquWu3F833DcMwmGM7WlvCO9sB3OsPjdC4U0wHw5FabzCGZg==}
 | 
				
			||||||
 | 
					    cpu: [x64]
 | 
				
			||||||
 | 
					    os: [darwin]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-freebsd-arm64@4.41.1':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-DBVMZH5vbjgRk3r0OzgjS38z+atlupJ7xfKIDJdZZL6sM6wjfDNo64aowcLPKIx7LMQi8vybB56uh1Ftck/Atg==}
 | 
				
			||||||
 | 
					    cpu: [arm64]
 | 
				
			||||||
 | 
					    os: [freebsd]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-freebsd-x64@4.41.1':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-3FkydeohozEskBxNWEIbPfOE0aqQgB6ttTkJ159uWOFn42VLyfAiyD9UK5mhu+ItWzft60DycIN1Xdgiy8o/SA==}
 | 
				
			||||||
 | 
					    cpu: [x64]
 | 
				
			||||||
 | 
					    os: [freebsd]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-linux-arm-gnueabihf@4.41.1':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-wC53ZNDgt0pqx5xCAgNunkTzFE8GTgdZ9EwYGVcg+jEjJdZGtq9xPjDnFgfFozQI/Xm1mh+D9YlYtl+ueswNEg==}
 | 
				
			||||||
 | 
					    cpu: [arm]
 | 
				
			||||||
 | 
					    os: [linux]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-linux-arm-musleabihf@4.41.1':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-jwKCca1gbZkZLhLRtsrka5N8sFAaxrGz/7wRJ8Wwvq3jug7toO21vWlViihG85ei7uJTpzbXZRcORotE+xyrLA==}
 | 
				
			||||||
 | 
					    cpu: [arm]
 | 
				
			||||||
 | 
					    os: [linux]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-linux-arm64-gnu@4.41.1':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-g0UBcNknsmmNQ8V2d/zD2P7WWfJKU0F1nu0k5pW4rvdb+BIqMm8ToluW/eeRmxCared5dD76lS04uL4UaNgpNA==}
 | 
				
			||||||
 | 
					    cpu: [arm64]
 | 
				
			||||||
 | 
					    os: [linux]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-linux-arm64-musl@4.41.1':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-XZpeGB5TKEZWzIrj7sXr+BEaSgo/ma/kCgrZgL0oo5qdB1JlTzIYQKel/RmhT6vMAvOdM2teYlAaOGJpJ9lahg==}
 | 
				
			||||||
 | 
					    cpu: [arm64]
 | 
				
			||||||
 | 
					    os: [linux]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-linux-loongarch64-gnu@4.41.1':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-bkCfDJ4qzWfFRCNt5RVV4DOw6KEgFTUZi2r2RuYhGWC8WhCA8lCAJhDeAmrM/fdiAH54m0mA0Vk2FGRPyzI+tw==}
 | 
				
			||||||
 | 
					    cpu: [loong64]
 | 
				
			||||||
 | 
					    os: [linux]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-linux-powerpc64le-gnu@4.41.1':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-3mr3Xm+gvMX+/8EKogIZSIEF0WUu0HL9di+YWlJpO8CQBnoLAEL/roTCxuLncEdgcfJcvA4UMOf+2dnjl4Ut1A==}
 | 
				
			||||||
 | 
					    cpu: [ppc64]
 | 
				
			||||||
 | 
					    os: [linux]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-linux-riscv64-gnu@4.41.1':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-3rwCIh6MQ1LGrvKJitQjZFuQnT2wxfU+ivhNBzmxXTXPllewOF7JR1s2vMX/tWtUYFgphygxjqMl76q4aMotGw==}
 | 
				
			||||||
 | 
					    cpu: [riscv64]
 | 
				
			||||||
 | 
					    os: [linux]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-linux-riscv64-musl@4.41.1':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-LdIUOb3gvfmpkgFZuccNa2uYiqtgZAz3PTzjuM5bH3nvuy9ty6RGc/Q0+HDFrHrizJGVpjnTZ1yS5TNNjFlklw==}
 | 
				
			||||||
 | 
					    cpu: [riscv64]
 | 
				
			||||||
 | 
					    os: [linux]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-linux-s390x-gnu@4.41.1':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-oIE6M8WC9ma6xYqjvPhzZYk6NbobIURvP/lEbh7FWplcMO6gn7MM2yHKA1eC/GvYwzNKK/1LYgqzdkZ8YFxR8g==}
 | 
				
			||||||
 | 
					    cpu: [s390x]
 | 
				
			||||||
 | 
					    os: [linux]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-linux-x64-gnu@4.41.1':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-cWBOvayNvA+SyeQMp79BHPK8ws6sHSsYnK5zDcsC3Hsxr1dgTABKjMnMslPq1DvZIp6uO7kIWhiGwaTdR4Og9A==}
 | 
				
			||||||
 | 
					    cpu: [x64]
 | 
				
			||||||
 | 
					    os: [linux]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-linux-x64-musl@4.41.1':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-y5CbN44M+pUCdGDlZFzGGBSKCA4A/J2ZH4edTYSSxFg7ce1Xt3GtydbVKWLlzL+INfFIZAEg1ZV6hh9+QQf9YQ==}
 | 
				
			||||||
 | 
					    cpu: [x64]
 | 
				
			||||||
 | 
					    os: [linux]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-win32-arm64-msvc@4.41.1':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-lZkCxIrjlJlMt1dLO/FbpZbzt6J/A8p4DnqzSa4PWqPEUUUnzXLeki/iyPLfV0BmHItlYgHUqJe+3KiyydmiNQ==}
 | 
				
			||||||
 | 
					    cpu: [arm64]
 | 
				
			||||||
 | 
					    os: [win32]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-win32-ia32-msvc@4.41.1':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-+psFT9+pIh2iuGsxFYYa/LhS5MFKmuivRsx9iPJWNSGbh2XVEjk90fmpUEjCnILPEPJnikAU6SFDiEUyOv90Pg==}
 | 
				
			||||||
 | 
					    cpu: [ia32]
 | 
				
			||||||
 | 
					    os: [win32]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-win32-x64-msvc@4.41.1':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-Wq2zpapRYLfi4aKxf2Xff0tN+7slj2d4R87WEzqw7ZLsVvO5zwYCIuEGSZYiK41+GlwUo1HiR+GdkLEJnCKTCw==}
 | 
				
			||||||
 | 
					    cpu: [x64]
 | 
				
			||||||
 | 
					    os: [win32]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@types/bun@1.2.15':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-U1ljPdBEphF0nw1MIk0hI7kPg7dFdPyM7EenHsp6W5loNHl7zqy6JQf/RKCgnUn2KDzUpkBwHPnEJEjII594bA==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@types/estree@1.0.7':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@types/lodash-es@4.17.12':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@types/lodash@4.17.17':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-RRVJ+J3J+WmyOTqnz3PiBLA501eKwXl2noseKOrNo/6+XEHjTAxO4xHvxQB6QuNm+s4WRbn6rSiap8+EA+ykFQ==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@types/node-forge@1.3.11':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@types/node@22.15.29':
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-LNdjOkUDlU1RZb8e1kOIUpN1qQUlzGkEtbVNo53vbrwDg5om6oduhm4SiUaPW5ASTXhAiP0jInWG8Qx9fVlOeQ==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ansi-colors@4.1.3:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
 | 
				
			||||||
 | 
					    engines: {node: '>=6'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ansi-regex@5.0.1:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
 | 
				
			||||||
 | 
					    engines: {node: '>=8'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  bun-types@1.2.15:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-NarRIaS+iOaQU1JPfyKhZm4AsUOrwUOqRNHY0XxI8GI8jYxiLXLcdjYMG9UKS+fwWasc1uw1htV9AX24dD+p4w==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  commander@14.0.0:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==}
 | 
				
			||||||
 | 
					    engines: {node: '>=20'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  cross-env@7.0.3:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==}
 | 
				
			||||||
 | 
					    engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'}
 | 
				
			||||||
 | 
					    hasBin: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  cross-spawn@7.0.6:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
 | 
				
			||||||
 | 
					    engines: {node: '>= 8'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dotenv@16.5.0:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==}
 | 
				
			||||||
 | 
					    engines: {node: '>=12'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  enquirer@2.4.1:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==}
 | 
				
			||||||
 | 
					    engines: {node: '>=8.6'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  esbuild@0.25.5:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==}
 | 
				
			||||||
 | 
					    engines: {node: '>=18'}
 | 
				
			||||||
 | 
					    hasBin: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  eventemitter3@5.0.1:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  fdir@6.4.5:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-4BG7puHpVsIYxZUbiUE3RqGloLaSSwzYie5jvasC4LWuBWzZawynvYouhjbQKw2JuIGYdm0DzIxl8iVidKlUEw==}
 | 
				
			||||||
 | 
					    peerDependencies:
 | 
				
			||||||
 | 
					      picomatch: ^3 || ^4
 | 
				
			||||||
 | 
					    peerDependenciesMeta:
 | 
				
			||||||
 | 
					      picomatch:
 | 
				
			||||||
 | 
					        optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  fsevents@2.3.3:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
 | 
				
			||||||
 | 
					    engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
 | 
				
			||||||
 | 
					    os: [darwin]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  isexe@2.0.0:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  nanoid@3.3.11:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
 | 
				
			||||||
 | 
					    engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
 | 
				
			||||||
 | 
					    hasBin: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  node-forge@1.3.1:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==}
 | 
				
			||||||
 | 
					    engines: {node: '>= 6.13.0'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  path-key@3.1.1:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
 | 
				
			||||||
 | 
					    engines: {node: '>=8'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  path-to-regexp@8.2.0:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==}
 | 
				
			||||||
 | 
					    engines: {node: '>=16'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  picocolors@1.1.1:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  picomatch@4.0.2:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
 | 
				
			||||||
 | 
					    engines: {node: '>=12'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  postcss@8.5.4:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==}
 | 
				
			||||||
 | 
					    engines: {node: ^10 || ^12 || >=14}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  rollup@4.41.1:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-cPmwD3FnFv8rKMBc1MxWCwVQFxwf1JEmSX3iQXrRVVG15zerAIXRjMFVWnd5Q5QvgKF7Aj+5ykXFhUl+QGnyOw==}
 | 
				
			||||||
 | 
					    engines: {node: '>=18.0.0', npm: '>=8.0.0'}
 | 
				
			||||||
 | 
					    hasBin: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  selfsigned@2.4.1:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==}
 | 
				
			||||||
 | 
					    engines: {node: '>=10'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  shebang-command@2.0.0:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
 | 
				
			||||||
 | 
					    engines: {node: '>=8'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  shebang-regex@3.0.0:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
 | 
				
			||||||
 | 
					    engines: {node: '>=8'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  source-map-js@1.2.1:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
 | 
				
			||||||
 | 
					    engines: {node: '>=0.10.0'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  strip-ansi@6.0.1:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
 | 
				
			||||||
 | 
					    engines: {node: '>=8'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  tinyglobby@0.2.14:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==}
 | 
				
			||||||
 | 
					    engines: {node: '>=12.0.0'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  typescript@5.8.3:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==}
 | 
				
			||||||
 | 
					    engines: {node: '>=14.17'}
 | 
				
			||||||
 | 
					    hasBin: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  undici-types@6.21.0:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  vite@6.3.5:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==}
 | 
				
			||||||
 | 
					    engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
 | 
				
			||||||
 | 
					    hasBin: true
 | 
				
			||||||
 | 
					    peerDependencies:
 | 
				
			||||||
 | 
					      '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
 | 
				
			||||||
 | 
					      jiti: '>=1.21.0'
 | 
				
			||||||
 | 
					      less: '*'
 | 
				
			||||||
 | 
					      lightningcss: ^1.21.0
 | 
				
			||||||
 | 
					      sass: '*'
 | 
				
			||||||
 | 
					      sass-embedded: '*'
 | 
				
			||||||
 | 
					      stylus: '*'
 | 
				
			||||||
 | 
					      sugarss: '*'
 | 
				
			||||||
 | 
					      terser: ^5.16.0
 | 
				
			||||||
 | 
					      tsx: ^4.8.1
 | 
				
			||||||
 | 
					      yaml: ^2.4.2
 | 
				
			||||||
 | 
					    peerDependenciesMeta:
 | 
				
			||||||
 | 
					      '@types/node':
 | 
				
			||||||
 | 
					        optional: true
 | 
				
			||||||
 | 
					      jiti:
 | 
				
			||||||
 | 
					        optional: true
 | 
				
			||||||
 | 
					      less:
 | 
				
			||||||
 | 
					        optional: true
 | 
				
			||||||
 | 
					      lightningcss:
 | 
				
			||||||
 | 
					        optional: true
 | 
				
			||||||
 | 
					      sass:
 | 
				
			||||||
 | 
					        optional: true
 | 
				
			||||||
 | 
					      sass-embedded:
 | 
				
			||||||
 | 
					        optional: true
 | 
				
			||||||
 | 
					      stylus:
 | 
				
			||||||
 | 
					        optional: true
 | 
				
			||||||
 | 
					      sugarss:
 | 
				
			||||||
 | 
					        optional: true
 | 
				
			||||||
 | 
					      terser:
 | 
				
			||||||
 | 
					        optional: true
 | 
				
			||||||
 | 
					      tsx:
 | 
				
			||||||
 | 
					        optional: true
 | 
				
			||||||
 | 
					      yaml:
 | 
				
			||||||
 | 
					        optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  which@2.0.2:
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
 | 
				
			||||||
 | 
					    engines: {node: '>= 8'}
 | 
				
			||||||
 | 
					    hasBin: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					snapshots:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/aix-ppc64@0.25.5':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/android-arm64@0.25.5':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/android-arm@0.25.5':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/android-x64@0.25.5':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/darwin-arm64@0.25.5':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/darwin-x64@0.25.5':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/freebsd-arm64@0.25.5':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/freebsd-x64@0.25.5':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/linux-arm64@0.25.5':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/linux-arm@0.25.5':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/linux-ia32@0.25.5':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/linux-loong64@0.25.5':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/linux-mips64el@0.25.5':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/linux-ppc64@0.25.5':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/linux-riscv64@0.25.5':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/linux-s390x@0.25.5':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/linux-x64@0.25.5':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/netbsd-arm64@0.25.5':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/netbsd-x64@0.25.5':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/openbsd-arm64@0.25.5':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/openbsd-x64@0.25.5':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/sunos-x64@0.25.5':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/win32-arm64@0.25.5':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/win32-ia32@0.25.5':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@esbuild/win32-x64@0.25.5':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@kevisual/load@0.0.6':
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      eventemitter3: 5.0.1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@kevisual/router@0.0.22':
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      path-to-regexp: 8.2.0
 | 
				
			||||||
 | 
					      selfsigned: 2.4.1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@kevisual/types@0.0.10': {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@kevisual/use-config@1.0.17(dotenv@16.5.0)':
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      '@kevisual/load': 0.0.6
 | 
				
			||||||
 | 
					      dotenv: 16.5.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-android-arm-eabi@4.41.1':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-android-arm64@4.41.1':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-darwin-arm64@4.41.1':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-darwin-x64@4.41.1':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-freebsd-arm64@4.41.1':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-freebsd-x64@4.41.1':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-linux-arm-gnueabihf@4.41.1':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-linux-arm-musleabihf@4.41.1':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-linux-arm64-gnu@4.41.1':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-linux-arm64-musl@4.41.1':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-linux-loongarch64-gnu@4.41.1':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-linux-powerpc64le-gnu@4.41.1':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-linux-riscv64-gnu@4.41.1':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-linux-riscv64-musl@4.41.1':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-linux-s390x-gnu@4.41.1':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-linux-x64-gnu@4.41.1':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-linux-x64-musl@4.41.1':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-win32-arm64-msvc@4.41.1':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-win32-ia32-msvc@4.41.1':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@rollup/rollup-win32-x64-msvc@4.41.1':
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@types/bun@1.2.15':
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      bun-types: 1.2.15
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@types/estree@1.0.7': {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@types/lodash-es@4.17.12':
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      '@types/lodash': 4.17.17
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@types/lodash@4.17.17': {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@types/node-forge@1.3.11':
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      '@types/node': 22.15.29
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '@types/node@22.15.29':
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      undici-types: 6.21.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ansi-colors@4.1.3: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ansi-regex@5.0.1: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  bun-types@1.2.15:
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      '@types/node': 22.15.29
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  commander@14.0.0: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  cross-env@7.0.3:
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      cross-spawn: 7.0.6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  cross-spawn@7.0.6:
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      path-key: 3.1.1
 | 
				
			||||||
 | 
					      shebang-command: 2.0.0
 | 
				
			||||||
 | 
					      which: 2.0.2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dotenv@16.5.0: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  enquirer@2.4.1:
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      ansi-colors: 4.1.3
 | 
				
			||||||
 | 
					      strip-ansi: 6.0.1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  esbuild@0.25.5:
 | 
				
			||||||
 | 
					    optionalDependencies:
 | 
				
			||||||
 | 
					      '@esbuild/aix-ppc64': 0.25.5
 | 
				
			||||||
 | 
					      '@esbuild/android-arm': 0.25.5
 | 
				
			||||||
 | 
					      '@esbuild/android-arm64': 0.25.5
 | 
				
			||||||
 | 
					      '@esbuild/android-x64': 0.25.5
 | 
				
			||||||
 | 
					      '@esbuild/darwin-arm64': 0.25.5
 | 
				
			||||||
 | 
					      '@esbuild/darwin-x64': 0.25.5
 | 
				
			||||||
 | 
					      '@esbuild/freebsd-arm64': 0.25.5
 | 
				
			||||||
 | 
					      '@esbuild/freebsd-x64': 0.25.5
 | 
				
			||||||
 | 
					      '@esbuild/linux-arm': 0.25.5
 | 
				
			||||||
 | 
					      '@esbuild/linux-arm64': 0.25.5
 | 
				
			||||||
 | 
					      '@esbuild/linux-ia32': 0.25.5
 | 
				
			||||||
 | 
					      '@esbuild/linux-loong64': 0.25.5
 | 
				
			||||||
 | 
					      '@esbuild/linux-mips64el': 0.25.5
 | 
				
			||||||
 | 
					      '@esbuild/linux-ppc64': 0.25.5
 | 
				
			||||||
 | 
					      '@esbuild/linux-riscv64': 0.25.5
 | 
				
			||||||
 | 
					      '@esbuild/linux-s390x': 0.25.5
 | 
				
			||||||
 | 
					      '@esbuild/linux-x64': 0.25.5
 | 
				
			||||||
 | 
					      '@esbuild/netbsd-arm64': 0.25.5
 | 
				
			||||||
 | 
					      '@esbuild/netbsd-x64': 0.25.5
 | 
				
			||||||
 | 
					      '@esbuild/openbsd-arm64': 0.25.5
 | 
				
			||||||
 | 
					      '@esbuild/openbsd-x64': 0.25.5
 | 
				
			||||||
 | 
					      '@esbuild/sunos-x64': 0.25.5
 | 
				
			||||||
 | 
					      '@esbuild/win32-arm64': 0.25.5
 | 
				
			||||||
 | 
					      '@esbuild/win32-ia32': 0.25.5
 | 
				
			||||||
 | 
					      '@esbuild/win32-x64': 0.25.5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  eventemitter3@5.0.1: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  fdir@6.4.5(picomatch@4.0.2):
 | 
				
			||||||
 | 
					    optionalDependencies:
 | 
				
			||||||
 | 
					      picomatch: 4.0.2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  fsevents@2.3.3:
 | 
				
			||||||
 | 
					    optional: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  isexe@2.0.0: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  nanoid@3.3.11: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  node-forge@1.3.1: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  path-key@3.1.1: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  path-to-regexp@8.2.0: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  picocolors@1.1.1: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  picomatch@4.0.2: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  postcss@8.5.4:
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      nanoid: 3.3.11
 | 
				
			||||||
 | 
					      picocolors: 1.1.1
 | 
				
			||||||
 | 
					      source-map-js: 1.2.1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  rollup@4.41.1:
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      '@types/estree': 1.0.7
 | 
				
			||||||
 | 
					    optionalDependencies:
 | 
				
			||||||
 | 
					      '@rollup/rollup-android-arm-eabi': 4.41.1
 | 
				
			||||||
 | 
					      '@rollup/rollup-android-arm64': 4.41.1
 | 
				
			||||||
 | 
					      '@rollup/rollup-darwin-arm64': 4.41.1
 | 
				
			||||||
 | 
					      '@rollup/rollup-darwin-x64': 4.41.1
 | 
				
			||||||
 | 
					      '@rollup/rollup-freebsd-arm64': 4.41.1
 | 
				
			||||||
 | 
					      '@rollup/rollup-freebsd-x64': 4.41.1
 | 
				
			||||||
 | 
					      '@rollup/rollup-linux-arm-gnueabihf': 4.41.1
 | 
				
			||||||
 | 
					      '@rollup/rollup-linux-arm-musleabihf': 4.41.1
 | 
				
			||||||
 | 
					      '@rollup/rollup-linux-arm64-gnu': 4.41.1
 | 
				
			||||||
 | 
					      '@rollup/rollup-linux-arm64-musl': 4.41.1
 | 
				
			||||||
 | 
					      '@rollup/rollup-linux-loongarch64-gnu': 4.41.1
 | 
				
			||||||
 | 
					      '@rollup/rollup-linux-powerpc64le-gnu': 4.41.1
 | 
				
			||||||
 | 
					      '@rollup/rollup-linux-riscv64-gnu': 4.41.1
 | 
				
			||||||
 | 
					      '@rollup/rollup-linux-riscv64-musl': 4.41.1
 | 
				
			||||||
 | 
					      '@rollup/rollup-linux-s390x-gnu': 4.41.1
 | 
				
			||||||
 | 
					      '@rollup/rollup-linux-x64-gnu': 4.41.1
 | 
				
			||||||
 | 
					      '@rollup/rollup-linux-x64-musl': 4.41.1
 | 
				
			||||||
 | 
					      '@rollup/rollup-win32-arm64-msvc': 4.41.1
 | 
				
			||||||
 | 
					      '@rollup/rollup-win32-ia32-msvc': 4.41.1
 | 
				
			||||||
 | 
					      '@rollup/rollup-win32-x64-msvc': 4.41.1
 | 
				
			||||||
 | 
					      fsevents: 2.3.3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  selfsigned@2.4.1:
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      '@types/node-forge': 1.3.11
 | 
				
			||||||
 | 
					      node-forge: 1.3.1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  shebang-command@2.0.0:
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      shebang-regex: 3.0.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  shebang-regex@3.0.0: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  source-map-js@1.2.1: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  strip-ansi@6.0.1:
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      ansi-regex: 5.0.1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  tinyglobby@0.2.14:
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      fdir: 6.4.5(picomatch@4.0.2)
 | 
				
			||||||
 | 
					      picomatch: 4.0.2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  typescript@5.8.3: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  undici-types@6.21.0: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  vite@6.3.5(@types/node@22.15.29):
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      esbuild: 0.25.5
 | 
				
			||||||
 | 
					      fdir: 6.4.5(picomatch@4.0.2)
 | 
				
			||||||
 | 
					      picomatch: 4.0.2
 | 
				
			||||||
 | 
					      postcss: 8.5.4
 | 
				
			||||||
 | 
					      rollup: 4.41.1
 | 
				
			||||||
 | 
					      tinyglobby: 0.2.14
 | 
				
			||||||
 | 
					    optionalDependencies:
 | 
				
			||||||
 | 
					      '@types/node': 22.15.29
 | 
				
			||||||
 | 
					      fsevents: 2.3.3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  which@2.0.2:
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      isexe: 2.0.0
 | 
				
			||||||
							
								
								
									
										11
									
								
								readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								readme.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					# ssl vite
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> 避免开发条件下每次都要重置 ssl,因为浏览器换个项目都需要重新自签名,同时导入 pem
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## use
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```js
 | 
				
			||||||
 | 
					import { ssl } from '@kevisual/ssl';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					plugins = [ssl()];
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
							
								
								
									
										78
									
								
								src/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								src/index.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,78 @@
 | 
				
			|||||||
 | 
					import path from 'node:path';
 | 
				
			||||||
 | 
					import { promises as fsp } from 'node:fs';
 | 
				
			||||||
 | 
					import type { Plugin } from 'vite';
 | 
				
			||||||
 | 
					import { createCert } from '@kevisual/router/sign';
 | 
				
			||||||
 | 
					const defaultCacheDir = 'node_modules/.vite';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					interface Options {
 | 
				
			||||||
 | 
					  certDir: string;
 | 
				
			||||||
 | 
					  http: string;
 | 
				
			||||||
 | 
					  download: boolean;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function viteBasicSslPlugin(options?: Partial<Options>): Plugin {
 | 
				
			||||||
 | 
					  return {
 | 
				
			||||||
 | 
					    name: 'vite:basic-ssl',
 | 
				
			||||||
 | 
					    async configResolved(config) {
 | 
				
			||||||
 | 
					      const certificate = await getCertificate(options?.certDir ?? (config.cacheDir ?? defaultCacheDir) + '/basic-ssl', options);
 | 
				
			||||||
 | 
					      const https = () => ({ cert: certificate, key: certificate });
 | 
				
			||||||
 | 
					      if (config.server.https === undefined || !!config.server.https) {
 | 
				
			||||||
 | 
					        config.server.https = Object.assign({}, config.server.https, https());
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      if (config.preview.https === undefined || !!config.preview.https) {
 | 
				
			||||||
 | 
					        config.preview.https = Object.assign({}, config.preview.https, https());
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					export const fetchText = async (url: string): Promise<string> => {
 | 
				
			||||||
 | 
					  try {
 | 
				
			||||||
 | 
					    const res = await fetch(url);
 | 
				
			||||||
 | 
					    console.log(`Fetching ${url}...`, res);
 | 
				
			||||||
 | 
					    if (res.status !== 200) return '';
 | 
				
			||||||
 | 
					    return await res.text();
 | 
				
			||||||
 | 
					  } catch (error) {
 | 
				
			||||||
 | 
					    console.error(`Failed to fetch ${url}:`, error);
 | 
				
			||||||
 | 
					    return '';
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					export async function getCertificate(cacheDir: string, options?: Partial<Options>): Promise<string> {
 | 
				
			||||||
 | 
					  const link = options?.http || 'https://kevisual.xiongxiao.me/root/ai/code/config/pem/';
 | 
				
			||||||
 | 
					  const cachePath = path.join(cacheDir, '_cert.pem');
 | 
				
			||||||
 | 
					  const download = options?.download ?? false;
 | 
				
			||||||
 | 
					  try {
 | 
				
			||||||
 | 
					    if (download === true) {
 | 
				
			||||||
 | 
					      throw new Error('need to download');
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    const [content] = await Promise.all([fsp.readFile(cachePath, 'utf8')]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return content;
 | 
				
			||||||
 | 
					  } catch {
 | 
				
			||||||
 | 
					    let content = '';
 | 
				
			||||||
 | 
					    if (link) {
 | 
				
			||||||
 | 
					      const keyLink = link + 'https-private-key.pem?download=1';
 | 
				
			||||||
 | 
					      const certLink = link + 'https-cert.pem?download=1';
 | 
				
			||||||
 | 
					      const key = await fetchText(keyLink);
 | 
				
			||||||
 | 
					      const cert = await fetchText(certLink);
 | 
				
			||||||
 | 
					      if (key && cert) {
 | 
				
			||||||
 | 
					        content = key + cert;
 | 
				
			||||||
 | 
					      } else {
 | 
				
			||||||
 | 
					        console.warn(`Failed to fetch certificate from ${link}. Using default certificate.`);
 | 
				
			||||||
 | 
					        console.error(`Key: ${key}, ${keyLink}`);
 | 
				
			||||||
 | 
					        console.error(`Cert: ${cert}, ${certLink}`);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if (!content) {
 | 
				
			||||||
 | 
					      const cert = createCert();
 | 
				
			||||||
 | 
					      content = cert.key + cert.cert;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    fsp
 | 
				
			||||||
 | 
					      .mkdir(cacheDir, { recursive: true })
 | 
				
			||||||
 | 
					      .then(() => fsp.writeFile(cachePath, content))
 | 
				
			||||||
 | 
					      .catch(() => {});
 | 
				
			||||||
 | 
					    return content;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					export const ssl = viteBasicSslPlugin;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default viteBasicSslPlugin;
 | 
				
			||||||
							
								
								
									
										18
									
								
								tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								tsconfig.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "extends": "@kevisual/types/json/backend.json",
 | 
				
			||||||
 | 
					  "compilerOptions": {
 | 
				
			||||||
 | 
					    "baseUrl": ".",
 | 
				
			||||||
 | 
					    "typeRoots": [
 | 
				
			||||||
 | 
					      "./node_modules/@types",
 | 
				
			||||||
 | 
					      "./node_modules/@kevisual"
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    "paths": {
 | 
				
			||||||
 | 
					      "@/*": [
 | 
				
			||||||
 | 
					        "src/*"
 | 
				
			||||||
 | 
					      ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "include": [
 | 
				
			||||||
 | 
					    "src/**/*",
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user