A fast, local-first "redirection engine" for !bang users with a few extra features ^-^

init

Theo Browne 92ab4914

+764
+24
.gitignore
··· 1 + # Logs 2 + logs 3 + *.log 4 + npm-debug.log* 5 + yarn-debug.log* 6 + yarn-error.log* 7 + pnpm-debug.log* 8 + lerna-debug.log* 9 + 10 + node_modules 11 + dist 12 + dist-ssr 13 + *.local 14 + 15 + # Editor directories and files 16 + .vscode/* 17 + !.vscode/extensions.json 18 + .idea 19 + .DS_Store 20 + *.suo 21 + *.ntvs* 22 + *.njsproj 23 + *.sln 24 + *.sw?
+13
index.html
··· 1 + <!doctype html> 2 + <html lang="en"> 3 + <head> 4 + <meta charset="UTF-8" /> 5 + <link rel="icon" type="image/svg+xml" href="/vite.svg" /> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <title>Vite + TS</title> 8 + </head> 9 + <body> 10 + <div id="app"></div> 11 + <script type="module" src="/src/main.ts"></script> 12 + </body> 13 + </html>
+15
package.json
··· 1 + { 2 + "name": "t3-search", 3 + "private": true, 4 + "version": "0.0.0", 5 + "type": "module", 6 + "scripts": { 7 + "dev": "vite", 8 + "build": "tsc && vite build", 9 + "preview": "vite preview" 10 + }, 11 + "devDependencies": { 12 + "typescript": "~5.7.2", 13 + "vite": "^6.1.0" 14 + } 15 + }
+556
pnpm-lock.yaml
··· 1 + lockfileVersion: '9.0' 2 + 3 + settings: 4 + autoInstallPeers: true 5 + excludeLinksFromLockfile: false 6 + 7 + importers: 8 + 9 + .: 10 + devDependencies: 11 + typescript: 12 + specifier: ~5.7.2 13 + version: 5.7.3 14 + vite: 15 + specifier: ^6.1.0 16 + version: 6.1.0 17 + 18 + packages: 19 + 20 + '@esbuild/aix-ppc64@0.24.2': 21 + resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} 22 + engines: {node: '>=18'} 23 + cpu: [ppc64] 24 + os: [aix] 25 + 26 + '@esbuild/android-arm64@0.24.2': 27 + resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} 28 + engines: {node: '>=18'} 29 + cpu: [arm64] 30 + os: [android] 31 + 32 + '@esbuild/android-arm@0.24.2': 33 + resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} 34 + engines: {node: '>=18'} 35 + cpu: [arm] 36 + os: [android] 37 + 38 + '@esbuild/android-x64@0.24.2': 39 + resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} 40 + engines: {node: '>=18'} 41 + cpu: [x64] 42 + os: [android] 43 + 44 + '@esbuild/darwin-arm64@0.24.2': 45 + resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} 46 + engines: {node: '>=18'} 47 + cpu: [arm64] 48 + os: [darwin] 49 + 50 + '@esbuild/darwin-x64@0.24.2': 51 + resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} 52 + engines: {node: '>=18'} 53 + cpu: [x64] 54 + os: [darwin] 55 + 56 + '@esbuild/freebsd-arm64@0.24.2': 57 + resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} 58 + engines: {node: '>=18'} 59 + cpu: [arm64] 60 + os: [freebsd] 61 + 62 + '@esbuild/freebsd-x64@0.24.2': 63 + resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} 64 + engines: {node: '>=18'} 65 + cpu: [x64] 66 + os: [freebsd] 67 + 68 + '@esbuild/linux-arm64@0.24.2': 69 + resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} 70 + engines: {node: '>=18'} 71 + cpu: [arm64] 72 + os: [linux] 73 + 74 + '@esbuild/linux-arm@0.24.2': 75 + resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} 76 + engines: {node: '>=18'} 77 + cpu: [arm] 78 + os: [linux] 79 + 80 + '@esbuild/linux-ia32@0.24.2': 81 + resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} 82 + engines: {node: '>=18'} 83 + cpu: [ia32] 84 + os: [linux] 85 + 86 + '@esbuild/linux-loong64@0.24.2': 87 + resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} 88 + engines: {node: '>=18'} 89 + cpu: [loong64] 90 + os: [linux] 91 + 92 + '@esbuild/linux-mips64el@0.24.2': 93 + resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} 94 + engines: {node: '>=18'} 95 + cpu: [mips64el] 96 + os: [linux] 97 + 98 + '@esbuild/linux-ppc64@0.24.2': 99 + resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} 100 + engines: {node: '>=18'} 101 + cpu: [ppc64] 102 + os: [linux] 103 + 104 + '@esbuild/linux-riscv64@0.24.2': 105 + resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} 106 + engines: {node: '>=18'} 107 + cpu: [riscv64] 108 + os: [linux] 109 + 110 + '@esbuild/linux-s390x@0.24.2': 111 + resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} 112 + engines: {node: '>=18'} 113 + cpu: [s390x] 114 + os: [linux] 115 + 116 + '@esbuild/linux-x64@0.24.2': 117 + resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} 118 + engines: {node: '>=18'} 119 + cpu: [x64] 120 + os: [linux] 121 + 122 + '@esbuild/netbsd-arm64@0.24.2': 123 + resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} 124 + engines: {node: '>=18'} 125 + cpu: [arm64] 126 + os: [netbsd] 127 + 128 + '@esbuild/netbsd-x64@0.24.2': 129 + resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} 130 + engines: {node: '>=18'} 131 + cpu: [x64] 132 + os: [netbsd] 133 + 134 + '@esbuild/openbsd-arm64@0.24.2': 135 + resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} 136 + engines: {node: '>=18'} 137 + cpu: [arm64] 138 + os: [openbsd] 139 + 140 + '@esbuild/openbsd-x64@0.24.2': 141 + resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} 142 + engines: {node: '>=18'} 143 + cpu: [x64] 144 + os: [openbsd] 145 + 146 + '@esbuild/sunos-x64@0.24.2': 147 + resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} 148 + engines: {node: '>=18'} 149 + cpu: [x64] 150 + os: [sunos] 151 + 152 + '@esbuild/win32-arm64@0.24.2': 153 + resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} 154 + engines: {node: '>=18'} 155 + cpu: [arm64] 156 + os: [win32] 157 + 158 + '@esbuild/win32-ia32@0.24.2': 159 + resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} 160 + engines: {node: '>=18'} 161 + cpu: [ia32] 162 + os: [win32] 163 + 164 + '@esbuild/win32-x64@0.24.2': 165 + resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} 166 + engines: {node: '>=18'} 167 + cpu: [x64] 168 + os: [win32] 169 + 170 + '@rollup/rollup-android-arm-eabi@4.34.7': 171 + resolution: {integrity: sha512-l6CtzHYo8D2TQ3J7qJNpp3Q1Iye56ssIAtqbM2H8axxCEEwvN7o8Ze9PuIapbxFL3OHrJU2JBX6FIIVnP/rYyw==} 172 + cpu: [arm] 173 + os: [android] 174 + 175 + '@rollup/rollup-android-arm64@4.34.7': 176 + resolution: {integrity: sha512-KvyJpFUueUnSp53zhAa293QBYqwm94TgYTIfXyOTtidhm5V0LbLCJQRGkQClYiX3FXDQGSvPxOTD/6rPStMMDg==} 177 + cpu: [arm64] 178 + os: [android] 179 + 180 + '@rollup/rollup-darwin-arm64@4.34.7': 181 + resolution: {integrity: sha512-jq87CjmgL9YIKvs8ybtIC98s/M3HdbqXhllcy9EdLV0yMg1DpxES2gr65nNy7ObNo/vZ/MrOTxt0bE5LinL6mA==} 182 + cpu: [arm64] 183 + os: [darwin] 184 + 185 + '@rollup/rollup-darwin-x64@4.34.7': 186 + resolution: {integrity: sha512-rSI/m8OxBjsdnMMg0WEetu/w+LhLAcCDEiL66lmMX4R3oaml3eXz3Dxfvrxs1FbzPbJMaItQiksyMfv1hoIxnA==} 187 + cpu: [x64] 188 + os: [darwin] 189 + 190 + '@rollup/rollup-freebsd-arm64@4.34.7': 191 + resolution: {integrity: sha512-oIoJRy3ZrdsXpFuWDtzsOOa/E/RbRWXVokpVrNnkS7npz8GEG++E1gYbzhYxhxHbO2om1T26BZjVmdIoyN2WtA==} 192 + cpu: [arm64] 193 + os: [freebsd] 194 + 195 + '@rollup/rollup-freebsd-x64@4.34.7': 196 + resolution: {integrity: sha512-X++QSLm4NZfZ3VXGVwyHdRf58IBbCu9ammgJxuWZYLX0du6kZvdNqPwrjvDfwmi6wFdvfZ/s6K7ia0E5kI7m8Q==} 197 + cpu: [x64] 198 + os: [freebsd] 199 + 200 + '@rollup/rollup-linux-arm-gnueabihf@4.34.7': 201 + resolution: {integrity: sha512-Z0TzhrsNqukTz3ISzrvyshQpFnFRfLunYiXxlCRvcrb3nvC5rVKI+ZXPFG/Aa4jhQa1gHgH3A0exHaRRN4VmdQ==} 202 + cpu: [arm] 203 + os: [linux] 204 + 205 + '@rollup/rollup-linux-arm-musleabihf@4.34.7': 206 + resolution: {integrity: sha512-nkznpyXekFAbvFBKBy4nNppSgneB1wwG1yx/hujN3wRnhnkrYVugMTCBXED4+Ni6thoWfQuHNYbFjgGH0MBXtw==} 207 + cpu: [arm] 208 + os: [linux] 209 + 210 + '@rollup/rollup-linux-arm64-gnu@4.34.7': 211 + resolution: {integrity: sha512-KCjlUkcKs6PjOcxolqrXglBDcfCuUCTVlX5BgzgoJHw+1rWH1MCkETLkLe5iLLS9dP5gKC7mp3y6x8c1oGBUtA==} 212 + cpu: [arm64] 213 + os: [linux] 214 + 215 + '@rollup/rollup-linux-arm64-musl@4.34.7': 216 + resolution: {integrity: sha512-uFLJFz6+utmpbR313TTx+NpPuAXbPz4BhTQzgaP0tozlLnGnQ6rCo6tLwaSa6b7l6gRErjLicXQ1iPiXzYotjw==} 217 + cpu: [arm64] 218 + os: [linux] 219 + 220 + '@rollup/rollup-linux-loongarch64-gnu@4.34.7': 221 + resolution: {integrity: sha512-ws8pc68UcJJqCpneDFepnwlsMUFoWvPbWXT/XUrJ7rWUL9vLoIN3GAasgG+nCvq8xrE3pIrd+qLX/jotcLy0Qw==} 222 + cpu: [loong64] 223 + os: [linux] 224 + 225 + '@rollup/rollup-linux-powerpc64le-gnu@4.34.7': 226 + resolution: {integrity: sha512-vrDk9JDa/BFkxcS2PbWpr0C/LiiSLxFbNOBgfbW6P8TBe9PPHx9Wqbvx2xgNi1TOAyQHQJ7RZFqBiEohm79r0w==} 227 + cpu: [ppc64] 228 + os: [linux] 229 + 230 + '@rollup/rollup-linux-riscv64-gnu@4.34.7': 231 + resolution: {integrity: sha512-rB+ejFyjtmSo+g/a4eovDD1lHWHVqizN8P0Hm0RElkINpS0XOdpaXloqM4FBkF9ZWEzg6bezymbpLmeMldfLTw==} 232 + cpu: [riscv64] 233 + os: [linux] 234 + 235 + '@rollup/rollup-linux-s390x-gnu@4.34.7': 236 + resolution: {integrity: sha512-nNXNjo4As6dNqRn7OrsnHzwTgtypfRA3u3AKr0B3sOOo+HkedIbn8ZtFnB+4XyKJojIfqDKmbIzO1QydQ8c+Pw==} 237 + cpu: [s390x] 238 + os: [linux] 239 + 240 + '@rollup/rollup-linux-x64-gnu@4.34.7': 241 + resolution: {integrity: sha512-9kPVf9ahnpOMSGlCxXGv980wXD0zRR3wyk8+33/MXQIpQEOpaNe7dEHm5LMfyRZRNt9lMEQuH0jUKj15MkM7QA==} 242 + cpu: [x64] 243 + os: [linux] 244 + 245 + '@rollup/rollup-linux-x64-musl@4.34.7': 246 + resolution: {integrity: sha512-7wJPXRWTTPtTFDFezA8sle/1sdgxDjuMoRXEKtx97ViRxGGkVQYovem+Q8Pr/2HxiHp74SSRG+o6R0Yq0shPwQ==} 247 + cpu: [x64] 248 + os: [linux] 249 + 250 + '@rollup/rollup-win32-arm64-msvc@4.34.7': 251 + resolution: {integrity: sha512-MN7aaBC7mAjsiMEZcsJvwNsQVNZShgES/9SzWp1HC9Yjqb5OpexYnRjF7RmE4itbeesHMYYQiAtUAQaSKs2Rfw==} 252 + cpu: [arm64] 253 + os: [win32] 254 + 255 + '@rollup/rollup-win32-ia32-msvc@4.34.7': 256 + resolution: {integrity: sha512-aeawEKYswsFu1LhDM9RIgToobquzdtSc4jSVqHV8uApz4FVvhFl/mKh92wc8WpFc6aYCothV/03UjY6y7yLgbg==} 257 + cpu: [ia32] 258 + os: [win32] 259 + 260 + '@rollup/rollup-win32-x64-msvc@4.34.7': 261 + resolution: {integrity: sha512-4ZedScpxxIrVO7otcZ8kCX1mZArtH2Wfj3uFCxRJ9NO80gg1XV0U/b2f/MKaGwj2X3QopHfoWiDQ917FRpwY3w==} 262 + cpu: [x64] 263 + os: [win32] 264 + 265 + '@types/estree@1.0.6': 266 + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} 267 + 268 + esbuild@0.24.2: 269 + resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} 270 + engines: {node: '>=18'} 271 + hasBin: true 272 + 273 + fsevents@2.3.3: 274 + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 275 + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 276 + os: [darwin] 277 + 278 + nanoid@3.3.8: 279 + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} 280 + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 281 + hasBin: true 282 + 283 + picocolors@1.1.1: 284 + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 285 + 286 + postcss@8.5.2: 287 + resolution: {integrity: sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==} 288 + engines: {node: ^10 || ^12 || >=14} 289 + 290 + rollup@4.34.7: 291 + resolution: {integrity: sha512-8qhyN0oZ4x0H6wmBgfKxJtxM7qS98YJ0k0kNh5ECVtuchIJ7z9IVVvzpmtQyT10PXKMtBxYr1wQ5Apg8RS8kXQ==} 292 + engines: {node: '>=18.0.0', npm: '>=8.0.0'} 293 + hasBin: true 294 + 295 + source-map-js@1.2.1: 296 + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 297 + engines: {node: '>=0.10.0'} 298 + 299 + typescript@5.7.3: 300 + resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} 301 + engines: {node: '>=14.17'} 302 + hasBin: true 303 + 304 + vite@6.1.0: 305 + resolution: {integrity: sha512-RjjMipCKVoR4hVfPY6GQTgveinjNuyLw+qruksLDvA5ktI1150VmcMBKmQaEWJhg/j6Uaf6dNCNA0AfdzUb/hQ==} 306 + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} 307 + hasBin: true 308 + peerDependencies: 309 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 310 + jiti: '>=1.21.0' 311 + less: '*' 312 + lightningcss: ^1.21.0 313 + sass: '*' 314 + sass-embedded: '*' 315 + stylus: '*' 316 + sugarss: '*' 317 + terser: ^5.16.0 318 + tsx: ^4.8.1 319 + yaml: ^2.4.2 320 + peerDependenciesMeta: 321 + '@types/node': 322 + optional: true 323 + jiti: 324 + optional: true 325 + less: 326 + optional: true 327 + lightningcss: 328 + optional: true 329 + sass: 330 + optional: true 331 + sass-embedded: 332 + optional: true 333 + stylus: 334 + optional: true 335 + sugarss: 336 + optional: true 337 + terser: 338 + optional: true 339 + tsx: 340 + optional: true 341 + yaml: 342 + optional: true 343 + 344 + snapshots: 345 + 346 + '@esbuild/aix-ppc64@0.24.2': 347 + optional: true 348 + 349 + '@esbuild/android-arm64@0.24.2': 350 + optional: true 351 + 352 + '@esbuild/android-arm@0.24.2': 353 + optional: true 354 + 355 + '@esbuild/android-x64@0.24.2': 356 + optional: true 357 + 358 + '@esbuild/darwin-arm64@0.24.2': 359 + optional: true 360 + 361 + '@esbuild/darwin-x64@0.24.2': 362 + optional: true 363 + 364 + '@esbuild/freebsd-arm64@0.24.2': 365 + optional: true 366 + 367 + '@esbuild/freebsd-x64@0.24.2': 368 + optional: true 369 + 370 + '@esbuild/linux-arm64@0.24.2': 371 + optional: true 372 + 373 + '@esbuild/linux-arm@0.24.2': 374 + optional: true 375 + 376 + '@esbuild/linux-ia32@0.24.2': 377 + optional: true 378 + 379 + '@esbuild/linux-loong64@0.24.2': 380 + optional: true 381 + 382 + '@esbuild/linux-mips64el@0.24.2': 383 + optional: true 384 + 385 + '@esbuild/linux-ppc64@0.24.2': 386 + optional: true 387 + 388 + '@esbuild/linux-riscv64@0.24.2': 389 + optional: true 390 + 391 + '@esbuild/linux-s390x@0.24.2': 392 + optional: true 393 + 394 + '@esbuild/linux-x64@0.24.2': 395 + optional: true 396 + 397 + '@esbuild/netbsd-arm64@0.24.2': 398 + optional: true 399 + 400 + '@esbuild/netbsd-x64@0.24.2': 401 + optional: true 402 + 403 + '@esbuild/openbsd-arm64@0.24.2': 404 + optional: true 405 + 406 + '@esbuild/openbsd-x64@0.24.2': 407 + optional: true 408 + 409 + '@esbuild/sunos-x64@0.24.2': 410 + optional: true 411 + 412 + '@esbuild/win32-arm64@0.24.2': 413 + optional: true 414 + 415 + '@esbuild/win32-ia32@0.24.2': 416 + optional: true 417 + 418 + '@esbuild/win32-x64@0.24.2': 419 + optional: true 420 + 421 + '@rollup/rollup-android-arm-eabi@4.34.7': 422 + optional: true 423 + 424 + '@rollup/rollup-android-arm64@4.34.7': 425 + optional: true 426 + 427 + '@rollup/rollup-darwin-arm64@4.34.7': 428 + optional: true 429 + 430 + '@rollup/rollup-darwin-x64@4.34.7': 431 + optional: true 432 + 433 + '@rollup/rollup-freebsd-arm64@4.34.7': 434 + optional: true 435 + 436 + '@rollup/rollup-freebsd-x64@4.34.7': 437 + optional: true 438 + 439 + '@rollup/rollup-linux-arm-gnueabihf@4.34.7': 440 + optional: true 441 + 442 + '@rollup/rollup-linux-arm-musleabihf@4.34.7': 443 + optional: true 444 + 445 + '@rollup/rollup-linux-arm64-gnu@4.34.7': 446 + optional: true 447 + 448 + '@rollup/rollup-linux-arm64-musl@4.34.7': 449 + optional: true 450 + 451 + '@rollup/rollup-linux-loongarch64-gnu@4.34.7': 452 + optional: true 453 + 454 + '@rollup/rollup-linux-powerpc64le-gnu@4.34.7': 455 + optional: true 456 + 457 + '@rollup/rollup-linux-riscv64-gnu@4.34.7': 458 + optional: true 459 + 460 + '@rollup/rollup-linux-s390x-gnu@4.34.7': 461 + optional: true 462 + 463 + '@rollup/rollup-linux-x64-gnu@4.34.7': 464 + optional: true 465 + 466 + '@rollup/rollup-linux-x64-musl@4.34.7': 467 + optional: true 468 + 469 + '@rollup/rollup-win32-arm64-msvc@4.34.7': 470 + optional: true 471 + 472 + '@rollup/rollup-win32-ia32-msvc@4.34.7': 473 + optional: true 474 + 475 + '@rollup/rollup-win32-x64-msvc@4.34.7': 476 + optional: true 477 + 478 + '@types/estree@1.0.6': {} 479 + 480 + esbuild@0.24.2: 481 + optionalDependencies: 482 + '@esbuild/aix-ppc64': 0.24.2 483 + '@esbuild/android-arm': 0.24.2 484 + '@esbuild/android-arm64': 0.24.2 485 + '@esbuild/android-x64': 0.24.2 486 + '@esbuild/darwin-arm64': 0.24.2 487 + '@esbuild/darwin-x64': 0.24.2 488 + '@esbuild/freebsd-arm64': 0.24.2 489 + '@esbuild/freebsd-x64': 0.24.2 490 + '@esbuild/linux-arm': 0.24.2 491 + '@esbuild/linux-arm64': 0.24.2 492 + '@esbuild/linux-ia32': 0.24.2 493 + '@esbuild/linux-loong64': 0.24.2 494 + '@esbuild/linux-mips64el': 0.24.2 495 + '@esbuild/linux-ppc64': 0.24.2 496 + '@esbuild/linux-riscv64': 0.24.2 497 + '@esbuild/linux-s390x': 0.24.2 498 + '@esbuild/linux-x64': 0.24.2 499 + '@esbuild/netbsd-arm64': 0.24.2 500 + '@esbuild/netbsd-x64': 0.24.2 501 + '@esbuild/openbsd-arm64': 0.24.2 502 + '@esbuild/openbsd-x64': 0.24.2 503 + '@esbuild/sunos-x64': 0.24.2 504 + '@esbuild/win32-arm64': 0.24.2 505 + '@esbuild/win32-ia32': 0.24.2 506 + '@esbuild/win32-x64': 0.24.2 507 + 508 + fsevents@2.3.3: 509 + optional: true 510 + 511 + nanoid@3.3.8: {} 512 + 513 + picocolors@1.1.1: {} 514 + 515 + postcss@8.5.2: 516 + dependencies: 517 + nanoid: 3.3.8 518 + picocolors: 1.1.1 519 + source-map-js: 1.2.1 520 + 521 + rollup@4.34.7: 522 + dependencies: 523 + '@types/estree': 1.0.6 524 + optionalDependencies: 525 + '@rollup/rollup-android-arm-eabi': 4.34.7 526 + '@rollup/rollup-android-arm64': 4.34.7 527 + '@rollup/rollup-darwin-arm64': 4.34.7 528 + '@rollup/rollup-darwin-x64': 4.34.7 529 + '@rollup/rollup-freebsd-arm64': 4.34.7 530 + '@rollup/rollup-freebsd-x64': 4.34.7 531 + '@rollup/rollup-linux-arm-gnueabihf': 4.34.7 532 + '@rollup/rollup-linux-arm-musleabihf': 4.34.7 533 + '@rollup/rollup-linux-arm64-gnu': 4.34.7 534 + '@rollup/rollup-linux-arm64-musl': 4.34.7 535 + '@rollup/rollup-linux-loongarch64-gnu': 4.34.7 536 + '@rollup/rollup-linux-powerpc64le-gnu': 4.34.7 537 + '@rollup/rollup-linux-riscv64-gnu': 4.34.7 538 + '@rollup/rollup-linux-s390x-gnu': 4.34.7 539 + '@rollup/rollup-linux-x64-gnu': 4.34.7 540 + '@rollup/rollup-linux-x64-musl': 4.34.7 541 + '@rollup/rollup-win32-arm64-msvc': 4.34.7 542 + '@rollup/rollup-win32-ia32-msvc': 4.34.7 543 + '@rollup/rollup-win32-x64-msvc': 4.34.7 544 + fsevents: 2.3.3 545 + 546 + source-map-js@1.2.1: {} 547 + 548 + typescript@5.7.3: {} 549 + 550 + vite@6.1.0: 551 + dependencies: 552 + esbuild: 0.24.2 553 + postcss: 8.5.2 554 + rollup: 4.34.7 555 + optionalDependencies: 556 + fsevents: 2.3.3
+1
public/vite.svg
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
+9
src/counter.ts
··· 1 + export function setupCounter(element: HTMLButtonElement) { 2 + let counter = 0 3 + const setCounter = (count: number) => { 4 + counter = count 5 + element.innerHTML = `count is ${counter}` 6 + } 7 + element.addEventListener('click', () => setCounter(counter + 1)) 8 + setCounter(0) 9 + }
+24
src/main.ts
··· 1 + import './style.css' 2 + import typescriptLogo from './typescript.svg' 3 + import viteLogo from '/vite.svg' 4 + import { setupCounter } from './counter.ts' 5 + 6 + document.querySelector<HTMLDivElement>('#app')!.innerHTML = ` 7 + <div> 8 + <a href="https://vite.dev" target="_blank"> 9 + <img src="${viteLogo}" class="logo" alt="Vite logo" /> 10 + </a> 11 + <a href="https://www.typescriptlang.org/" target="_blank"> 12 + <img src="${typescriptLogo}" class="logo vanilla" alt="TypeScript logo" /> 13 + </a> 14 + <h1>Vite + TypeScript</h1> 15 + <div class="card"> 16 + <button id="counter" type="button"></button> 17 + </div> 18 + <p class="read-the-docs"> 19 + Click on the Vite and TypeScript logos to learn more 20 + </p> 21 + </div> 22 + ` 23 + 24 + setupCounter(document.querySelector<HTMLButtonElement>('#counter')!)
+96
src/style.css
··· 1 + :root { 2 + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; 3 + line-height: 1.5; 4 + font-weight: 400; 5 + 6 + color-scheme: light dark; 7 + color: rgba(255, 255, 255, 0.87); 8 + background-color: #242424; 9 + 10 + font-synthesis: none; 11 + text-rendering: optimizeLegibility; 12 + -webkit-font-smoothing: antialiased; 13 + -moz-osx-font-smoothing: grayscale; 14 + } 15 + 16 + a { 17 + font-weight: 500; 18 + color: #646cff; 19 + text-decoration: inherit; 20 + } 21 + a:hover { 22 + color: #535bf2; 23 + } 24 + 25 + body { 26 + margin: 0; 27 + display: flex; 28 + place-items: center; 29 + min-width: 320px; 30 + min-height: 100vh; 31 + } 32 + 33 + h1 { 34 + font-size: 3.2em; 35 + line-height: 1.1; 36 + } 37 + 38 + #app { 39 + max-width: 1280px; 40 + margin: 0 auto; 41 + padding: 2rem; 42 + text-align: center; 43 + } 44 + 45 + .logo { 46 + height: 6em; 47 + padding: 1.5em; 48 + will-change: filter; 49 + transition: filter 300ms; 50 + } 51 + .logo:hover { 52 + filter: drop-shadow(0 0 2em #646cffaa); 53 + } 54 + .logo.vanilla:hover { 55 + filter: drop-shadow(0 0 2em #3178c6aa); 56 + } 57 + 58 + .card { 59 + padding: 2em; 60 + } 61 + 62 + .read-the-docs { 63 + color: #888; 64 + } 65 + 66 + button { 67 + border-radius: 8px; 68 + border: 1px solid transparent; 69 + padding: 0.6em 1.2em; 70 + font-size: 1em; 71 + font-weight: 500; 72 + font-family: inherit; 73 + background-color: #1a1a1a; 74 + cursor: pointer; 75 + transition: border-color 0.25s; 76 + } 77 + button:hover { 78 + border-color: #646cff; 79 + } 80 + button:focus, 81 + button:focus-visible { 82 + outline: 4px auto -webkit-focus-ring-color; 83 + } 84 + 85 + @media (prefers-color-scheme: light) { 86 + :root { 87 + color: #213547; 88 + background-color: #ffffff; 89 + } 90 + a:hover { 91 + color: #747bff; 92 + } 93 + button { 94 + background-color: #f9f9f9; 95 + } 96 + }
+1
src/typescript.svg
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="32" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path fill="#007ACC" d="M0 128v128h256V0H0z"></path><path fill="#FFF" d="m56.612 128.85l-.081 10.483h33.32v94.68h23.568v-94.68h33.321v-10.28c0-5.69-.122-10.444-.284-10.566c-.122-.162-20.4-.244-44.983-.203l-44.74.122l-.121 10.443Zm149.955-10.742c6.501 1.625 11.459 4.51 16.01 9.224c2.357 2.52 5.851 7.111 6.136 8.208c.08.325-11.053 7.802-17.798 11.988c-.244.162-1.22-.894-2.317-2.52c-3.291-4.795-6.745-6.867-12.028-7.233c-7.76-.528-12.759 3.535-12.718 10.321c0 1.992.284 3.17 1.097 4.795c1.707 3.536 4.876 5.649 14.832 9.956c18.326 7.883 26.168 13.084 31.045 20.48c5.445 8.249 6.664 21.415 2.966 31.208c-4.063 10.646-14.14 17.879-28.323 20.276c-4.388.772-14.79.65-19.504-.203c-10.28-1.828-20.033-6.908-26.047-13.572c-2.357-2.6-6.949-9.387-6.664-9.874c.122-.163 1.178-.813 2.356-1.504c1.138-.65 5.446-3.129 9.509-5.485l7.355-4.267l1.544 2.276c2.154 3.29 6.867 7.801 9.712 9.305c8.167 4.307 19.383 3.698 24.909-1.26c2.357-2.153 3.332-4.388 3.332-7.68c0-2.966-.366-4.266-1.91-6.501c-1.99-2.845-6.054-5.242-17.595-10.24c-13.206-5.69-18.895-9.224-24.096-14.832c-3.007-3.25-5.852-8.452-7.03-12.8c-.975-3.617-1.22-12.678-.447-16.335c2.723-12.76 12.353-21.659 26.25-24.3c4.51-.853 14.994-.528 19.424.569Z"></path></svg>
+1
src/vite-env.d.ts
··· 1 + /// <reference types="vite/client" />
+24
tsconfig.json
··· 1 + { 2 + "compilerOptions": { 3 + "target": "ES2020", 4 + "useDefineForClassFields": true, 5 + "module": "ESNext", 6 + "lib": ["ES2020", "DOM", "DOM.Iterable"], 7 + "skipLibCheck": true, 8 + 9 + /* Bundler mode */ 10 + "moduleResolution": "bundler", 11 + "allowImportingTsExtensions": true, 12 + "isolatedModules": true, 13 + "moduleDetection": "force", 14 + "noEmit": true, 15 + 16 + /* Linting */ 17 + "strict": true, 18 + "noUnusedLocals": true, 19 + "noUnusedParameters": true, 20 + "noFallthroughCasesInSwitch": true, 21 + "noUncheckedSideEffectImports": true 22 + }, 23 + "include": ["src"] 24 + }