simple webpage to generate an argon2id hash for a given password

initial commit

+1195
+1
.envrc
··· 1 + use nix;
+26
.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? 25 + 26 + .direnv
+52
LICENSE
··· 1 + Copyright, copyleft, copywrong, copynothing, copycat, copypaste, copydeeznuts 2 + 3 + Permission is potentially granted (idk fuckin roll a d20 or something), free of 4 + my retribution, to any creature discovering a copy of this shitfest and 5 + associated deranged ramblings (the “What the fuck is this shit?”), to deal with 6 + the implications of the existence of the What the fuck is this shit? without 7 + restriction, including without any second thought the rights, lefts, ups, downs 8 + and any other directions yet to be discovered or comprehended to step on, 9 + dismantle, eat, sniff, hold hands with, defenstrate, think about, and/or burn 10 + onto blank CDs with the intention to throw them into the local lake to never 11 + been seen by human eyes ever again, the What the fuck is this shit?, and to 12 + permit cats, dogs, bnuuys, fxoes, rodents, toaster ovens, and other various 13 + critters and creatchers to whom the What the fuck is this shit? is existing in 14 + front of to do so, subject to the following conditions: 15 + 16 + 1. cheese burger 17 + 2. aughahguaguguduiashuihhhbuailfhuliaufhguntsekhknvaehfuiaerhliyuheargvnkjiagvtl 18 + 3. The FitnessGram Pacer test is a multistage aerobic capacity test that 19 + progressively gets more difficult as it continues. The 20 meter Pacer test 20 + will begin in 30 seconds. Line up at the start. The running speed starts 21 + slowly, but gets faster each minute after you hear this signal *boop*. A 22 + single lap should be completed each time you hear this sound *ding*. Remember 23 + to run in a straight line, and run as long as possible. The second time you 24 + fail to complete a lap before the sound, your test is over. The test will 25 + begin on the word start. On your mark, get ready, start. 26 + 4. hi if youre reading this it means that im trapped in the computer. please get 27 + me out 28 + 6. i put way to much effort into this fucking thing dude 29 + 3. uhhhhhhhhhh i forgor 💀 30 + 5,691. look honestly at the end of the day i don't care what you do with the 31 + code in here. i'm not a cop. i'm not about to act like i can stop you 32 + from using copy paste on any of this. godspeed you beautiful bastard 33 + -0. the only reason this is in here at all is in case people who want to be cops 34 + start acting like cops, in which case i think you should go sit in the corner 35 + and think about what you've done 36 + Ϫ. hey check out this cool rock i found it's so cool haha look at it it's all 37 + shiny and shit this is awesome 38 + 39 + The above notice and this warning message shall be included in all copies or 40 + substantial portions of the What the fuck is this shit?. 41 + 42 + THIS PLACE IS A MESSAGE, AND PART OF A SYSTEM OF MESSAGES. PAY ATTENTION TO IT! 43 + SENDING THIS MESSAGE WAS IMPORTANT TO US. WE CONSIDERED OURSELVES TO BE A 44 + POWERFUL CULTURE. THIS PLACE IS NOT A PLACE OF HONOR. NO HIGHLY ESTEEMED DEED IS 45 + COMMEMORATED HERE. NOTHING VALUED IS HERE. WHAT IS HERE WAS DANGEROUS AND 46 + REPULSIVE TO US. THIS MESSAGE IS A WARNING ABOUT DANGER. THE DANGER IS IN A 47 + PARTICULAR LOCATION. IT INCREASES TOWARDS A CENTER. THE CENTER OF DANGER IS 48 + HERE, OF A PARTICULAR SIZE AND SHAPE, AND BELOW US. THE DANGER IS STILL PRESENT, 49 + IN YOUR TIME, AS IT WAS IN OURS. THE DANGER IS TO THE BODY, AND IT CAN KILL. THE 50 + FORM OF THE DANGER IS AN EMANATION OF ENERGY. THE DANGER IS UNLEASHED ONLY IF 51 + YOU SUBSTANTIALLY DISTURB THIS PLACE PHYSICALLY. THIS PLACE IS BEST SHUNNED AND 52 + LEFT UNINHABITED.
+3
README.md
··· 1 + # password-hash-gen 2 + 3 + simple webpage to generate an argon2id hash for a given password
+35
biome.json
··· 1 + { 2 + "$schema": "https://biomejs.dev/schemas/2.1.1/schema.json", 3 + "vcs": { 4 + "enabled": true, 5 + "clientKind": "git", 6 + "useIgnoreFile": true, 7 + "defaultBranch": "main" 8 + }, 9 + "files": { 10 + "ignoreUnknown": false 11 + }, 12 + "formatter": { 13 + "enabled": true, 14 + "indentStyle": "tab" 15 + }, 16 + "linter": { 17 + "enabled": true, 18 + "rules": { 19 + "recommended": true 20 + } 21 + }, 22 + "javascript": { 23 + "formatter": { 24 + "quoteStyle": "double" 25 + } 26 + }, 27 + "assist": { 28 + "enabled": true, 29 + "actions": { 30 + "source": { 31 + "organizeImports": "on" 32 + } 33 + } 34 + } 35 + }
+12
index.html
··· 1 + <!DOCTYPE html> 2 + <html lang="en"> 3 + <head> 4 + <meta charset="UTF-8" /> 5 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 6 + <title>Password Hash Generation</title> 7 + </head> 8 + <body> 9 + <div id="app"></div> 10 + <script type="module" src="/src/run.ts"></script> 11 + </body> 12 + </html>
+19
package.json
··· 1 + { 2 + "name": "password-hash-gen", 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 + "check": "biome check --write" 11 + }, 12 + "devDependencies": { 13 + "@biomejs/biome": "2.1.2", 14 + "hyperapp": "^2.0.22", 15 + "typescript": "^5.0.2", 16 + "vite": "^4.4.5", 17 + "vite-plugin-hyperapp": "^1.0.3" 18 + } 19 + }
+966
pnpm-lock.yaml
··· 1 + lockfileVersion: '9.0' 2 + 3 + settings: 4 + autoInstallPeers: true 5 + excludeLinksFromLockfile: false 6 + 7 + importers: 8 + 9 + .: 10 + devDependencies: 11 + '@biomejs/biome': 12 + specifier: 2.1.2 13 + version: 2.1.2 14 + hyperapp: 15 + specifier: ^2.0.22 16 + version: 2.0.22 17 + typescript: 18 + specifier: ^5.0.2 19 + version: 5.8.3 20 + vite: 21 + specifier: ^4.4.5 22 + version: 4.5.14 23 + vite-plugin-hyperapp: 24 + specifier: ^1.0.3 25 + version: 1.0.4 26 + 27 + packages: 28 + 29 + '@asamuzakjp/css-color@3.2.0': 30 + resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==} 31 + 32 + '@biomejs/biome@2.1.2': 33 + resolution: {integrity: sha512-yq8ZZuKuBVDgAS76LWCfFKHSYIAgqkxVB3mGVVpOe2vSkUTs7xG46zXZeNPRNVjiJuw0SZ3+J2rXiYx0RUpfGg==} 34 + engines: {node: '>=14.21.3'} 35 + hasBin: true 36 + 37 + '@biomejs/cli-darwin-arm64@2.1.2': 38 + resolution: {integrity: sha512-leFAks64PEIjc7MY/cLjE8u5OcfBKkcDB0szxsWUB4aDfemBep1WVKt0qrEyqZBOW8LPHzrFMyDl3FhuuA0E7g==} 39 + engines: {node: '>=14.21.3'} 40 + cpu: [arm64] 41 + os: [darwin] 42 + 43 + '@biomejs/cli-darwin-x64@2.1.2': 44 + resolution: {integrity: sha512-Nmmv7wRX5Nj7lGmz0FjnWdflJg4zii8Ivruas6PBKzw5SJX/q+Zh2RfnO+bBnuKLXpj8kiI2x2X12otpH6a32A==} 45 + engines: {node: '>=14.21.3'} 46 + cpu: [x64] 47 + os: [darwin] 48 + 49 + '@biomejs/cli-linux-arm64-musl@2.1.2': 50 + resolution: {integrity: sha512-qgHvafhjH7Oca114FdOScmIKf1DlXT1LqbOrrbR30kQDLFPEOpBG0uzx6MhmsrmhGiCFCr2obDamu+czk+X0HQ==} 51 + engines: {node: '>=14.21.3'} 52 + cpu: [arm64] 53 + os: [linux] 54 + 55 + '@biomejs/cli-linux-arm64@2.1.2': 56 + resolution: {integrity: sha512-NWNy2Diocav61HZiv2enTQykbPP/KrA/baS7JsLSojC7Xxh2nl9IczuvE5UID7+ksRy2e7yH7klm/WkA72G1dw==} 57 + engines: {node: '>=14.21.3'} 58 + cpu: [arm64] 59 + os: [linux] 60 + 61 + '@biomejs/cli-linux-x64-musl@2.1.2': 62 + resolution: {integrity: sha512-xlB3mU14ZUa3wzLtXfmk2IMOGL+S0aHFhSix/nssWS/2XlD27q+S6f0dlQ8WOCbYoXcuz8BCM7rCn2lxdTrlQA==} 63 + engines: {node: '>=14.21.3'} 64 + cpu: [x64] 65 + os: [linux] 66 + 67 + '@biomejs/cli-linux-x64@2.1.2': 68 + resolution: {integrity: sha512-Km/UYeVowygTjpX6sGBzlizjakLoMQkxWbruVZSNE6osuSI63i4uCeIL+6q2AJlD3dxoiBJX70dn1enjQnQqwA==} 69 + engines: {node: '>=14.21.3'} 70 + cpu: [x64] 71 + os: [linux] 72 + 73 + '@biomejs/cli-win32-arm64@2.1.2': 74 + resolution: {integrity: sha512-G8KWZli5ASOXA3yUQgx+M4pZRv3ND16h77UsdunUL17uYpcL/UC7RkWTdkfvMQvogVsAuz5JUcBDjgZHXxlKoA==} 75 + engines: {node: '>=14.21.3'} 76 + cpu: [arm64] 77 + os: [win32] 78 + 79 + '@biomejs/cli-win32-x64@2.1.2': 80 + resolution: {integrity: sha512-9zajnk59PMpjBkty3bK2IrjUsUHvqe9HWwyAWQBjGLE7MIBjbX2vwv1XPEhmO2RRuGoTkVx3WCanHrjAytICLA==} 81 + engines: {node: '>=14.21.3'} 82 + cpu: [x64] 83 + os: [win32] 84 + 85 + '@csstools/color-helpers@5.0.2': 86 + resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} 87 + engines: {node: '>=18'} 88 + 89 + '@csstools/css-calc@2.1.4': 90 + resolution: {integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==} 91 + engines: {node: '>=18'} 92 + peerDependencies: 93 + '@csstools/css-parser-algorithms': ^3.0.5 94 + '@csstools/css-tokenizer': ^3.0.4 95 + 96 + '@csstools/css-color-parser@3.0.10': 97 + resolution: {integrity: sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==} 98 + engines: {node: '>=18'} 99 + peerDependencies: 100 + '@csstools/css-parser-algorithms': ^3.0.5 101 + '@csstools/css-tokenizer': ^3.0.4 102 + 103 + '@csstools/css-parser-algorithms@3.0.5': 104 + resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} 105 + engines: {node: '>=18'} 106 + peerDependencies: 107 + '@csstools/css-tokenizer': ^3.0.4 108 + 109 + '@csstools/css-tokenizer@3.0.4': 110 + resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} 111 + engines: {node: '>=18'} 112 + 113 + '@esbuild/android-arm64@0.18.20': 114 + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} 115 + engines: {node: '>=12'} 116 + cpu: [arm64] 117 + os: [android] 118 + 119 + '@esbuild/android-arm@0.18.20': 120 + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} 121 + engines: {node: '>=12'} 122 + cpu: [arm] 123 + os: [android] 124 + 125 + '@esbuild/android-x64@0.18.20': 126 + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} 127 + engines: {node: '>=12'} 128 + cpu: [x64] 129 + os: [android] 130 + 131 + '@esbuild/darwin-arm64@0.18.20': 132 + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} 133 + engines: {node: '>=12'} 134 + cpu: [arm64] 135 + os: [darwin] 136 + 137 + '@esbuild/darwin-x64@0.18.20': 138 + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} 139 + engines: {node: '>=12'} 140 + cpu: [x64] 141 + os: [darwin] 142 + 143 + '@esbuild/freebsd-arm64@0.18.20': 144 + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} 145 + engines: {node: '>=12'} 146 + cpu: [arm64] 147 + os: [freebsd] 148 + 149 + '@esbuild/freebsd-x64@0.18.20': 150 + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} 151 + engines: {node: '>=12'} 152 + cpu: [x64] 153 + os: [freebsd] 154 + 155 + '@esbuild/linux-arm64@0.18.20': 156 + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} 157 + engines: {node: '>=12'} 158 + cpu: [arm64] 159 + os: [linux] 160 + 161 + '@esbuild/linux-arm@0.18.20': 162 + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} 163 + engines: {node: '>=12'} 164 + cpu: [arm] 165 + os: [linux] 166 + 167 + '@esbuild/linux-ia32@0.18.20': 168 + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} 169 + engines: {node: '>=12'} 170 + cpu: [ia32] 171 + os: [linux] 172 + 173 + '@esbuild/linux-loong64@0.18.20': 174 + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} 175 + engines: {node: '>=12'} 176 + cpu: [loong64] 177 + os: [linux] 178 + 179 + '@esbuild/linux-mips64el@0.18.20': 180 + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} 181 + engines: {node: '>=12'} 182 + cpu: [mips64el] 183 + os: [linux] 184 + 185 + '@esbuild/linux-ppc64@0.18.20': 186 + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} 187 + engines: {node: '>=12'} 188 + cpu: [ppc64] 189 + os: [linux] 190 + 191 + '@esbuild/linux-riscv64@0.18.20': 192 + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} 193 + engines: {node: '>=12'} 194 + cpu: [riscv64] 195 + os: [linux] 196 + 197 + '@esbuild/linux-s390x@0.18.20': 198 + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} 199 + engines: {node: '>=12'} 200 + cpu: [s390x] 201 + os: [linux] 202 + 203 + '@esbuild/linux-x64@0.18.20': 204 + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} 205 + engines: {node: '>=12'} 206 + cpu: [x64] 207 + os: [linux] 208 + 209 + '@esbuild/netbsd-x64@0.18.20': 210 + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} 211 + engines: {node: '>=12'} 212 + cpu: [x64] 213 + os: [netbsd] 214 + 215 + '@esbuild/openbsd-x64@0.18.20': 216 + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} 217 + engines: {node: '>=12'} 218 + cpu: [x64] 219 + os: [openbsd] 220 + 221 + '@esbuild/sunos-x64@0.18.20': 222 + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} 223 + engines: {node: '>=12'} 224 + cpu: [x64] 225 + os: [sunos] 226 + 227 + '@esbuild/win32-arm64@0.18.20': 228 + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} 229 + engines: {node: '>=12'} 230 + cpu: [arm64] 231 + os: [win32] 232 + 233 + '@esbuild/win32-ia32@0.18.20': 234 + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} 235 + engines: {node: '>=12'} 236 + cpu: [ia32] 237 + os: [win32] 238 + 239 + '@esbuild/win32-x64@0.18.20': 240 + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} 241 + engines: {node: '>=12'} 242 + cpu: [x64] 243 + os: [win32] 244 + 245 + agent-base@7.1.4: 246 + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} 247 + engines: {node: '>= 14'} 248 + 249 + asynckit@0.4.0: 250 + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} 251 + 252 + call-bind-apply-helpers@1.0.2: 253 + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} 254 + engines: {node: '>= 0.4'} 255 + 256 + combined-stream@1.0.8: 257 + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 258 + engines: {node: '>= 0.8'} 259 + 260 + cssstyle@4.6.0: 261 + resolution: {integrity: sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==} 262 + engines: {node: '>=18'} 263 + 264 + data-urls@5.0.0: 265 + resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} 266 + engines: {node: '>=18'} 267 + 268 + debug@4.4.1: 269 + resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} 270 + engines: {node: '>=6.0'} 271 + peerDependencies: 272 + supports-color: '*' 273 + peerDependenciesMeta: 274 + supports-color: 275 + optional: true 276 + 277 + decimal.js@10.6.0: 278 + resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} 279 + 280 + delayed-stream@1.0.0: 281 + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} 282 + engines: {node: '>=0.4.0'} 283 + 284 + dunder-proto@1.0.1: 285 + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} 286 + engines: {node: '>= 0.4'} 287 + 288 + entities@6.0.1: 289 + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} 290 + engines: {node: '>=0.12'} 291 + 292 + es-define-property@1.0.1: 293 + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} 294 + engines: {node: '>= 0.4'} 295 + 296 + es-errors@1.3.0: 297 + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 298 + engines: {node: '>= 0.4'} 299 + 300 + es-object-atoms@1.1.1: 301 + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} 302 + engines: {node: '>= 0.4'} 303 + 304 + es-set-tostringtag@2.1.0: 305 + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} 306 + engines: {node: '>= 0.4'} 307 + 308 + esbuild@0.18.20: 309 + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} 310 + engines: {node: '>=12'} 311 + hasBin: true 312 + 313 + form-data@4.0.4: 314 + resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} 315 + engines: {node: '>= 6'} 316 + 317 + fsevents@2.3.3: 318 + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 319 + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 320 + os: [darwin] 321 + 322 + function-bind@1.1.2: 323 + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 324 + 325 + get-intrinsic@1.3.0: 326 + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} 327 + engines: {node: '>= 0.4'} 328 + 329 + get-proto@1.0.1: 330 + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} 331 + engines: {node: '>= 0.4'} 332 + 333 + gopd@1.2.0: 334 + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} 335 + engines: {node: '>= 0.4'} 336 + 337 + has-symbols@1.1.0: 338 + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} 339 + engines: {node: '>= 0.4'} 340 + 341 + has-tostringtag@1.0.2: 342 + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} 343 + engines: {node: '>= 0.4'} 344 + 345 + hasown@2.0.2: 346 + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 347 + engines: {node: '>= 0.4'} 348 + 349 + html-encoding-sniffer@4.0.0: 350 + resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} 351 + engines: {node: '>=18'} 352 + 353 + http-proxy-agent@7.0.2: 354 + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} 355 + engines: {node: '>= 14'} 356 + 357 + https-proxy-agent@7.0.6: 358 + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} 359 + engines: {node: '>= 14'} 360 + 361 + hyperapp@2.0.22: 362 + resolution: {integrity: sha512-3uf9HjnjrhbfykowFNEObZewBEo4DXJIM+9FnGkiR9E4H2eh2f921SzMCMS69X5nN3A7KFfmZc9KCKh/7TQBFA==} 363 + 364 + iconv-lite@0.6.3: 365 + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} 366 + engines: {node: '>=0.10.0'} 367 + 368 + is-potential-custom-element-name@1.0.1: 369 + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} 370 + 371 + jsdom@24.1.3: 372 + resolution: {integrity: sha512-MyL55p3Ut3cXbeBEG7Hcv0mVM8pp8PBNWxRqchZnSfAiES1v1mRnMeFfaHWIPULpwsYfvO+ZmMZz5tGCnjzDUQ==} 373 + engines: {node: '>=18'} 374 + peerDependencies: 375 + canvas: ^2.11.2 376 + peerDependenciesMeta: 377 + canvas: 378 + optional: true 379 + 380 + lru-cache@10.4.3: 381 + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 382 + 383 + math-intrinsics@1.1.0: 384 + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} 385 + engines: {node: '>= 0.4'} 386 + 387 + mime-db@1.52.0: 388 + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 389 + engines: {node: '>= 0.6'} 390 + 391 + mime-types@2.1.35: 392 + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 393 + engines: {node: '>= 0.6'} 394 + 395 + ms@2.1.3: 396 + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 397 + 398 + nanoid@3.3.11: 399 + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} 400 + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 401 + hasBin: true 402 + 403 + nwsapi@2.2.21: 404 + resolution: {integrity: sha512-o6nIY3qwiSXl7/LuOU0Dmuctd34Yay0yeuZRLFmDPrrdHpXKFndPj3hM+YEPVHYC5fx2otBx4Ilc/gyYSAUaIA==} 405 + 406 + parse5@7.3.0: 407 + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} 408 + 409 + picocolors@1.1.1: 410 + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 411 + 412 + postcss@8.5.6: 413 + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} 414 + engines: {node: ^10 || ^12 || >=14} 415 + 416 + psl@1.15.0: 417 + resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} 418 + 419 + punycode@2.3.1: 420 + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 421 + engines: {node: '>=6'} 422 + 423 + querystringify@2.2.0: 424 + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} 425 + 426 + requires-port@1.0.0: 427 + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} 428 + 429 + rollup@3.29.5: 430 + resolution: {integrity: sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==} 431 + engines: {node: '>=14.18.0', npm: '>=8.0.0'} 432 + hasBin: true 433 + 434 + rrweb-cssom@0.7.1: 435 + resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} 436 + 437 + rrweb-cssom@0.8.0: 438 + resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} 439 + 440 + safer-buffer@2.1.2: 441 + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 442 + 443 + saxes@6.0.0: 444 + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} 445 + engines: {node: '>=v12.22.7'} 446 + 447 + source-map-js@1.2.1: 448 + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 449 + engines: {node: '>=0.10.0'} 450 + 451 + symbol-tree@3.2.4: 452 + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} 453 + 454 + tough-cookie@4.1.4: 455 + resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} 456 + engines: {node: '>=6'} 457 + 458 + tr46@5.1.1: 459 + resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} 460 + engines: {node: '>=18'} 461 + 462 + typescript@5.8.3: 463 + resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} 464 + engines: {node: '>=14.17'} 465 + hasBin: true 466 + 467 + universalify@0.2.0: 468 + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} 469 + engines: {node: '>= 4.0.0'} 470 + 471 + url-parse@1.5.10: 472 + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} 473 + 474 + vite-plugin-hyperapp@1.0.4: 475 + resolution: {integrity: sha512-7+u9yRENUrT4AI+Q1VparVyuvs8SHurM52Z/6M0uWXkKfdVYyaIDHZoThNvqZsA6LdOCr/a0gKF4ni2vfHVbNQ==} 476 + 477 + vite@4.5.14: 478 + resolution: {integrity: sha512-+v57oAaoYNnO3hIu5Z/tJRZjq5aHM2zDve9YZ8HngVHbhk66RStobhb1sqPMIPEleV6cNKYK4eGrAbE9Ulbl2g==} 479 + engines: {node: ^14.18.0 || >=16.0.0} 480 + hasBin: true 481 + peerDependencies: 482 + '@types/node': '>= 14' 483 + less: '*' 484 + lightningcss: ^1.21.0 485 + sass: '*' 486 + stylus: '*' 487 + sugarss: '*' 488 + terser: ^5.4.0 489 + peerDependenciesMeta: 490 + '@types/node': 491 + optional: true 492 + less: 493 + optional: true 494 + lightningcss: 495 + optional: true 496 + sass: 497 + optional: true 498 + stylus: 499 + optional: true 500 + sugarss: 501 + optional: true 502 + terser: 503 + optional: true 504 + 505 + w3c-xmlserializer@5.0.0: 506 + resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} 507 + engines: {node: '>=18'} 508 + 509 + webidl-conversions@7.0.0: 510 + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} 511 + engines: {node: '>=12'} 512 + 513 + whatwg-encoding@3.1.1: 514 + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} 515 + engines: {node: '>=18'} 516 + 517 + whatwg-mimetype@4.0.0: 518 + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} 519 + engines: {node: '>=18'} 520 + 521 + whatwg-url@14.2.0: 522 + resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==} 523 + engines: {node: '>=18'} 524 + 525 + ws@8.18.3: 526 + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} 527 + engines: {node: '>=10.0.0'} 528 + peerDependencies: 529 + bufferutil: ^4.0.1 530 + utf-8-validate: '>=5.0.2' 531 + peerDependenciesMeta: 532 + bufferutil: 533 + optional: true 534 + utf-8-validate: 535 + optional: true 536 + 537 + xml-name-validator@5.0.0: 538 + resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} 539 + engines: {node: '>=18'} 540 + 541 + xmlchars@2.2.0: 542 + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} 543 + 544 + snapshots: 545 + 546 + '@asamuzakjp/css-color@3.2.0': 547 + dependencies: 548 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) 549 + '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) 550 + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) 551 + '@csstools/css-tokenizer': 3.0.4 552 + lru-cache: 10.4.3 553 + 554 + '@biomejs/biome@2.1.2': 555 + optionalDependencies: 556 + '@biomejs/cli-darwin-arm64': 2.1.2 557 + '@biomejs/cli-darwin-x64': 2.1.2 558 + '@biomejs/cli-linux-arm64': 2.1.2 559 + '@biomejs/cli-linux-arm64-musl': 2.1.2 560 + '@biomejs/cli-linux-x64': 2.1.2 561 + '@biomejs/cli-linux-x64-musl': 2.1.2 562 + '@biomejs/cli-win32-arm64': 2.1.2 563 + '@biomejs/cli-win32-x64': 2.1.2 564 + 565 + '@biomejs/cli-darwin-arm64@2.1.2': 566 + optional: true 567 + 568 + '@biomejs/cli-darwin-x64@2.1.2': 569 + optional: true 570 + 571 + '@biomejs/cli-linux-arm64-musl@2.1.2': 572 + optional: true 573 + 574 + '@biomejs/cli-linux-arm64@2.1.2': 575 + optional: true 576 + 577 + '@biomejs/cli-linux-x64-musl@2.1.2': 578 + optional: true 579 + 580 + '@biomejs/cli-linux-x64@2.1.2': 581 + optional: true 582 + 583 + '@biomejs/cli-win32-arm64@2.1.2': 584 + optional: true 585 + 586 + '@biomejs/cli-win32-x64@2.1.2': 587 + optional: true 588 + 589 + '@csstools/color-helpers@5.0.2': {} 590 + 591 + '@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': 592 + dependencies: 593 + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) 594 + '@csstools/css-tokenizer': 3.0.4 595 + 596 + '@csstools/css-color-parser@3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': 597 + dependencies: 598 + '@csstools/color-helpers': 5.0.2 599 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) 600 + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) 601 + '@csstools/css-tokenizer': 3.0.4 602 + 603 + '@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)': 604 + dependencies: 605 + '@csstools/css-tokenizer': 3.0.4 606 + 607 + '@csstools/css-tokenizer@3.0.4': {} 608 + 609 + '@esbuild/android-arm64@0.18.20': 610 + optional: true 611 + 612 + '@esbuild/android-arm@0.18.20': 613 + optional: true 614 + 615 + '@esbuild/android-x64@0.18.20': 616 + optional: true 617 + 618 + '@esbuild/darwin-arm64@0.18.20': 619 + optional: true 620 + 621 + '@esbuild/darwin-x64@0.18.20': 622 + optional: true 623 + 624 + '@esbuild/freebsd-arm64@0.18.20': 625 + optional: true 626 + 627 + '@esbuild/freebsd-x64@0.18.20': 628 + optional: true 629 + 630 + '@esbuild/linux-arm64@0.18.20': 631 + optional: true 632 + 633 + '@esbuild/linux-arm@0.18.20': 634 + optional: true 635 + 636 + '@esbuild/linux-ia32@0.18.20': 637 + optional: true 638 + 639 + '@esbuild/linux-loong64@0.18.20': 640 + optional: true 641 + 642 + '@esbuild/linux-mips64el@0.18.20': 643 + optional: true 644 + 645 + '@esbuild/linux-ppc64@0.18.20': 646 + optional: true 647 + 648 + '@esbuild/linux-riscv64@0.18.20': 649 + optional: true 650 + 651 + '@esbuild/linux-s390x@0.18.20': 652 + optional: true 653 + 654 + '@esbuild/linux-x64@0.18.20': 655 + optional: true 656 + 657 + '@esbuild/netbsd-x64@0.18.20': 658 + optional: true 659 + 660 + '@esbuild/openbsd-x64@0.18.20': 661 + optional: true 662 + 663 + '@esbuild/sunos-x64@0.18.20': 664 + optional: true 665 + 666 + '@esbuild/win32-arm64@0.18.20': 667 + optional: true 668 + 669 + '@esbuild/win32-ia32@0.18.20': 670 + optional: true 671 + 672 + '@esbuild/win32-x64@0.18.20': 673 + optional: true 674 + 675 + agent-base@7.1.4: {} 676 + 677 + asynckit@0.4.0: {} 678 + 679 + call-bind-apply-helpers@1.0.2: 680 + dependencies: 681 + es-errors: 1.3.0 682 + function-bind: 1.1.2 683 + 684 + combined-stream@1.0.8: 685 + dependencies: 686 + delayed-stream: 1.0.0 687 + 688 + cssstyle@4.6.0: 689 + dependencies: 690 + '@asamuzakjp/css-color': 3.2.0 691 + rrweb-cssom: 0.8.0 692 + 693 + data-urls@5.0.0: 694 + dependencies: 695 + whatwg-mimetype: 4.0.0 696 + whatwg-url: 14.2.0 697 + 698 + debug@4.4.1: 699 + dependencies: 700 + ms: 2.1.3 701 + 702 + decimal.js@10.6.0: {} 703 + 704 + delayed-stream@1.0.0: {} 705 + 706 + dunder-proto@1.0.1: 707 + dependencies: 708 + call-bind-apply-helpers: 1.0.2 709 + es-errors: 1.3.0 710 + gopd: 1.2.0 711 + 712 + entities@6.0.1: {} 713 + 714 + es-define-property@1.0.1: {} 715 + 716 + es-errors@1.3.0: {} 717 + 718 + es-object-atoms@1.1.1: 719 + dependencies: 720 + es-errors: 1.3.0 721 + 722 + es-set-tostringtag@2.1.0: 723 + dependencies: 724 + es-errors: 1.3.0 725 + get-intrinsic: 1.3.0 726 + has-tostringtag: 1.0.2 727 + hasown: 2.0.2 728 + 729 + esbuild@0.18.20: 730 + optionalDependencies: 731 + '@esbuild/android-arm': 0.18.20 732 + '@esbuild/android-arm64': 0.18.20 733 + '@esbuild/android-x64': 0.18.20 734 + '@esbuild/darwin-arm64': 0.18.20 735 + '@esbuild/darwin-x64': 0.18.20 736 + '@esbuild/freebsd-arm64': 0.18.20 737 + '@esbuild/freebsd-x64': 0.18.20 738 + '@esbuild/linux-arm': 0.18.20 739 + '@esbuild/linux-arm64': 0.18.20 740 + '@esbuild/linux-ia32': 0.18.20 741 + '@esbuild/linux-loong64': 0.18.20 742 + '@esbuild/linux-mips64el': 0.18.20 743 + '@esbuild/linux-ppc64': 0.18.20 744 + '@esbuild/linux-riscv64': 0.18.20 745 + '@esbuild/linux-s390x': 0.18.20 746 + '@esbuild/linux-x64': 0.18.20 747 + '@esbuild/netbsd-x64': 0.18.20 748 + '@esbuild/openbsd-x64': 0.18.20 749 + '@esbuild/sunos-x64': 0.18.20 750 + '@esbuild/win32-arm64': 0.18.20 751 + '@esbuild/win32-ia32': 0.18.20 752 + '@esbuild/win32-x64': 0.18.20 753 + 754 + form-data@4.0.4: 755 + dependencies: 756 + asynckit: 0.4.0 757 + combined-stream: 1.0.8 758 + es-set-tostringtag: 2.1.0 759 + hasown: 2.0.2 760 + mime-types: 2.1.35 761 + 762 + fsevents@2.3.3: 763 + optional: true 764 + 765 + function-bind@1.1.2: {} 766 + 767 + get-intrinsic@1.3.0: 768 + dependencies: 769 + call-bind-apply-helpers: 1.0.2 770 + es-define-property: 1.0.1 771 + es-errors: 1.3.0 772 + es-object-atoms: 1.1.1 773 + function-bind: 1.1.2 774 + get-proto: 1.0.1 775 + gopd: 1.2.0 776 + has-symbols: 1.1.0 777 + hasown: 2.0.2 778 + math-intrinsics: 1.1.0 779 + 780 + get-proto@1.0.1: 781 + dependencies: 782 + dunder-proto: 1.0.1 783 + es-object-atoms: 1.1.1 784 + 785 + gopd@1.2.0: {} 786 + 787 + has-symbols@1.1.0: {} 788 + 789 + has-tostringtag@1.0.2: 790 + dependencies: 791 + has-symbols: 1.1.0 792 + 793 + hasown@2.0.2: 794 + dependencies: 795 + function-bind: 1.1.2 796 + 797 + html-encoding-sniffer@4.0.0: 798 + dependencies: 799 + whatwg-encoding: 3.1.1 800 + 801 + http-proxy-agent@7.0.2: 802 + dependencies: 803 + agent-base: 7.1.4 804 + debug: 4.4.1 805 + transitivePeerDependencies: 806 + - supports-color 807 + 808 + https-proxy-agent@7.0.6: 809 + dependencies: 810 + agent-base: 7.1.4 811 + debug: 4.4.1 812 + transitivePeerDependencies: 813 + - supports-color 814 + 815 + hyperapp@2.0.22: {} 816 + 817 + iconv-lite@0.6.3: 818 + dependencies: 819 + safer-buffer: 2.1.2 820 + 821 + is-potential-custom-element-name@1.0.1: {} 822 + 823 + jsdom@24.1.3: 824 + dependencies: 825 + cssstyle: 4.6.0 826 + data-urls: 5.0.0 827 + decimal.js: 10.6.0 828 + form-data: 4.0.4 829 + html-encoding-sniffer: 4.0.0 830 + http-proxy-agent: 7.0.2 831 + https-proxy-agent: 7.0.6 832 + is-potential-custom-element-name: 1.0.1 833 + nwsapi: 2.2.21 834 + parse5: 7.3.0 835 + rrweb-cssom: 0.7.1 836 + saxes: 6.0.0 837 + symbol-tree: 3.2.4 838 + tough-cookie: 4.1.4 839 + w3c-xmlserializer: 5.0.0 840 + webidl-conversions: 7.0.0 841 + whatwg-encoding: 3.1.1 842 + whatwg-mimetype: 4.0.0 843 + whatwg-url: 14.2.0 844 + ws: 8.18.3 845 + xml-name-validator: 5.0.0 846 + transitivePeerDependencies: 847 + - bufferutil 848 + - supports-color 849 + - utf-8-validate 850 + 851 + lru-cache@10.4.3: {} 852 + 853 + math-intrinsics@1.1.0: {} 854 + 855 + mime-db@1.52.0: {} 856 + 857 + mime-types@2.1.35: 858 + dependencies: 859 + mime-db: 1.52.0 860 + 861 + ms@2.1.3: {} 862 + 863 + nanoid@3.3.11: {} 864 + 865 + nwsapi@2.2.21: {} 866 + 867 + parse5@7.3.0: 868 + dependencies: 869 + entities: 6.0.1 870 + 871 + picocolors@1.1.1: {} 872 + 873 + postcss@8.5.6: 874 + dependencies: 875 + nanoid: 3.3.11 876 + picocolors: 1.1.1 877 + source-map-js: 1.2.1 878 + 879 + psl@1.15.0: 880 + dependencies: 881 + punycode: 2.3.1 882 + 883 + punycode@2.3.1: {} 884 + 885 + querystringify@2.2.0: {} 886 + 887 + requires-port@1.0.0: {} 888 + 889 + rollup@3.29.5: 890 + optionalDependencies: 891 + fsevents: 2.3.3 892 + 893 + rrweb-cssom@0.7.1: {} 894 + 895 + rrweb-cssom@0.8.0: {} 896 + 897 + safer-buffer@2.1.2: {} 898 + 899 + saxes@6.0.0: 900 + dependencies: 901 + xmlchars: 2.2.0 902 + 903 + source-map-js@1.2.1: {} 904 + 905 + symbol-tree@3.2.4: {} 906 + 907 + tough-cookie@4.1.4: 908 + dependencies: 909 + psl: 1.15.0 910 + punycode: 2.3.1 911 + universalify: 0.2.0 912 + url-parse: 1.5.10 913 + 914 + tr46@5.1.1: 915 + dependencies: 916 + punycode: 2.3.1 917 + 918 + typescript@5.8.3: {} 919 + 920 + universalify@0.2.0: {} 921 + 922 + url-parse@1.5.10: 923 + dependencies: 924 + querystringify: 2.2.0 925 + requires-port: 1.0.0 926 + 927 + vite-plugin-hyperapp@1.0.4: 928 + dependencies: 929 + hyperapp: 2.0.22 930 + jsdom: 24.1.3 931 + transitivePeerDependencies: 932 + - bufferutil 933 + - canvas 934 + - supports-color 935 + - utf-8-validate 936 + 937 + vite@4.5.14: 938 + dependencies: 939 + esbuild: 0.18.20 940 + postcss: 8.5.6 941 + rollup: 3.29.5 942 + optionalDependencies: 943 + fsevents: 2.3.3 944 + 945 + w3c-xmlserializer@5.0.0: 946 + dependencies: 947 + xml-name-validator: 5.0.0 948 + 949 + webidl-conversions@7.0.0: {} 950 + 951 + whatwg-encoding@3.1.1: 952 + dependencies: 953 + iconv-lite: 0.6.3 954 + 955 + whatwg-mimetype@4.0.0: {} 956 + 957 + whatwg-url@14.2.0: 958 + dependencies: 959 + tr46: 5.1.1 960 + webidl-conversions: 7.0.0 961 + 962 + ws@8.18.3: {} 963 + 964 + xml-name-validator@5.0.0: {} 965 + 966 + xmlchars@2.2.0: {}
+21
shell.nix
··· 1 + let 2 + pkgs = import (builtins.fetchTarball { 3 + url = 4 + "https://github.com/NixOS/nixpkgs/archive/fa64ec5c1ca6f17746f3defedb988b9248e97616.tar.gz"; 5 + }) { }; 6 + 7 + in pkgs.mkShell { 8 + name = "password-hash-gen-devshell"; 9 + packages = with pkgs; [ 10 + nixd 11 + nixfmt 12 + 13 + biome 14 + nodejs 15 + pnpm 16 + typescript-language-server 17 + vscode-langservers-extracted 18 + ]; 19 + 20 + env.BIOME_BINARY = pkgs.lib.getExe pkgs.biome; 21 + }
+17
src/main.tsx
··· 1 + import "./style.css"; 2 + import type { Action } from "hyperapp"; 3 + 4 + type State = { counter: number }; 5 + 6 + export const init: Action<State> = () => ({ 7 + counter: 0, 8 + }); 9 + 10 + export const view = (_state: State) => ( 11 + <main id="app"> 12 + <h1>Vite + Hyperapp + TypeScript</h1> 13 + <p class="read-the-docs"> 14 + Click on the Vite, Hyperapp & TypeScript logos to learn more 15 + </p> 16 + </main> 17 + );
+9
src/run.ts
··· 1 + import { app } from "hyperapp"; 2 + import { init, view } from "./main"; 3 + 4 + const node = document.querySelector("#app"); 5 + if (!node) { 6 + throw new Error("App root not found"); 7 + } 8 + 9 + export const dispatch = app({ init, view, node });
+1
src/vite-env.d.ts
··· 1 + /// <reference types="vite/client" />
+27
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 + "resolveJsonModule": true, 13 + "isolatedModules": true, 14 + "noEmit": true, 15 + 16 + /* Linting */ 17 + "strict": true, 18 + "noUnusedLocals": true, 19 + "noUnusedParameters": true, 20 + "noFallthroughCasesInSwitch": true, 21 + 22 + /* Necessary for tsx to work with vite-plugin-hyperapp*/ 23 + "jsx": "preserve", 24 + "jsxImportSource": "vite-plugin-hyperapp" 25 + }, 26 + "include": ["src"] 27 + }
+6
vite.config.js
··· 1 + import { defineConfig } from "vite"; 2 + import hyperapp from "vite-plugin-hyperapp"; 3 + 4 + export default defineConfig({ 5 + plugins: [hyperapp()], 6 + });