The AtmosphereConf talks your skyline missed
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

chore: add vitest + vite-tsconfig-paths for unit testing

+850 -3
+835 -1
package-lock.json
··· 26 26 "eslint-config-next": "16.2.2", 27 27 "tailwindcss": "^4", 28 28 "tsx": "^4.21.0", 29 - "typescript": "^5" 29 + "typescript": "^5", 30 + "vite-tsconfig-paths": "^6.1.1", 31 + "vitest": "^4.1.4" 30 32 } 31 33 }, 32 34 "node_modules/@alloc/quick-lru": { ··· 2049 2051 "node": ">=12.4.0" 2050 2052 } 2051 2053 }, 2054 + "node_modules/@oxc-project/types": { 2055 + "version": "0.124.0", 2056 + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.124.0.tgz", 2057 + "integrity": "sha512-VBFWMTBvHxS11Z5Lvlr3IWgrwhMTXV+Md+EQF0Xf60+wAdsGFTBx7X7K/hP4pi8N7dcm1RvcHwDxZ16Qx8keUg==", 2058 + "dev": true, 2059 + "license": "MIT", 2060 + "funding": { 2061 + "url": "https://github.com/sponsors/Boshen" 2062 + } 2063 + }, 2064 + "node_modules/@rolldown/binding-android-arm64": { 2065 + "version": "1.0.0-rc.15", 2066 + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.15.tgz", 2067 + "integrity": "sha512-YYe6aWruPZDtHNpwu7+qAHEMbQ/yRl6atqb/AhznLTnD3UY99Q1jE7ihLSahNWkF4EqRPVC4SiR4O0UkLK02tA==", 2068 + "cpu": [ 2069 + "arm64" 2070 + ], 2071 + "dev": true, 2072 + "license": "MIT", 2073 + "optional": true, 2074 + "os": [ 2075 + "android" 2076 + ], 2077 + "engines": { 2078 + "node": "^20.19.0 || >=22.12.0" 2079 + } 2080 + }, 2081 + "node_modules/@rolldown/binding-darwin-arm64": { 2082 + "version": "1.0.0-rc.15", 2083 + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.15.tgz", 2084 + "integrity": "sha512-oArR/ig8wNTPYsXL+Mzhs0oxhxfuHRfG7Ikw7jXsw8mYOtk71W0OkF2VEVh699pdmzjPQsTjlD1JIOoHkLP1Fg==", 2085 + "cpu": [ 2086 + "arm64" 2087 + ], 2088 + "dev": true, 2089 + "license": "MIT", 2090 + "optional": true, 2091 + "os": [ 2092 + "darwin" 2093 + ], 2094 + "engines": { 2095 + "node": "^20.19.0 || >=22.12.0" 2096 + } 2097 + }, 2098 + "node_modules/@rolldown/binding-darwin-x64": { 2099 + "version": "1.0.0-rc.15", 2100 + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.15.tgz", 2101 + "integrity": "sha512-YzeVqOqjPYvUbJSWJ4EDL8ahbmsIXQpgL3JVipmN+MX0XnXMeWomLN3Fb+nwCmP/jfyqte5I3XRSm7OfQrbyxw==", 2102 + "cpu": [ 2103 + "x64" 2104 + ], 2105 + "dev": true, 2106 + "license": "MIT", 2107 + "optional": true, 2108 + "os": [ 2109 + "darwin" 2110 + ], 2111 + "engines": { 2112 + "node": "^20.19.0 || >=22.12.0" 2113 + } 2114 + }, 2115 + "node_modules/@rolldown/binding-freebsd-x64": { 2116 + "version": "1.0.0-rc.15", 2117 + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.15.tgz", 2118 + "integrity": "sha512-9Erhx956jeQ0nNTyif1+QWAXDRD38ZNjr//bSHrt6wDwB+QkAfl2q6Mn1k6OBPerznjRmbM10lgRb1Pli4xZPw==", 2119 + "cpu": [ 2120 + "x64" 2121 + ], 2122 + "dev": true, 2123 + "license": "MIT", 2124 + "optional": true, 2125 + "os": [ 2126 + "freebsd" 2127 + ], 2128 + "engines": { 2129 + "node": "^20.19.0 || >=22.12.0" 2130 + } 2131 + }, 2132 + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { 2133 + "version": "1.0.0-rc.15", 2134 + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.15.tgz", 2135 + "integrity": "sha512-cVwk0w8QbZJGTnP/AHQBs5yNwmpgGYStL88t4UIaqcvYJWBfS0s3oqVLZPwsPU6M0zlW4GqjP0Zq5MnAGwFeGA==", 2136 + "cpu": [ 2137 + "arm" 2138 + ], 2139 + "dev": true, 2140 + "license": "MIT", 2141 + "optional": true, 2142 + "os": [ 2143 + "linux" 2144 + ], 2145 + "engines": { 2146 + "node": "^20.19.0 || >=22.12.0" 2147 + } 2148 + }, 2149 + "node_modules/@rolldown/binding-linux-arm64-gnu": { 2150 + "version": "1.0.0-rc.15", 2151 + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.15.tgz", 2152 + "integrity": "sha512-eBZ/u8iAK9SoHGanqe/jrPnY0JvBN6iXbVOsbO38mbz+ZJsaobExAm1Iu+rxa4S1l2FjG0qEZn4Rc6X8n+9M+w==", 2153 + "cpu": [ 2154 + "arm64" 2155 + ], 2156 + "dev": true, 2157 + "license": "MIT", 2158 + "optional": true, 2159 + "os": [ 2160 + "linux" 2161 + ], 2162 + "engines": { 2163 + "node": "^20.19.0 || >=22.12.0" 2164 + } 2165 + }, 2166 + "node_modules/@rolldown/binding-linux-arm64-musl": { 2167 + "version": "1.0.0-rc.15", 2168 + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.15.tgz", 2169 + "integrity": "sha512-ZvRYMGrAklV9PEkgt4LQM6MjQX2P58HPAuecwYObY2DhS2t35R0I810bKi0wmaYORt6m/2Sm+Z+nFgb0WhXNcQ==", 2170 + "cpu": [ 2171 + "arm64" 2172 + ], 2173 + "dev": true, 2174 + "license": "MIT", 2175 + "optional": true, 2176 + "os": [ 2177 + "linux" 2178 + ], 2179 + "engines": { 2180 + "node": "^20.19.0 || >=22.12.0" 2181 + } 2182 + }, 2183 + "node_modules/@rolldown/binding-linux-ppc64-gnu": { 2184 + "version": "1.0.0-rc.15", 2185 + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.15.tgz", 2186 + "integrity": "sha512-VDpgGBzgfg5hLg+uBpCLoFG5kVvEyafmfxGUV0UHLcL5irxAK7PKNeC2MwClgk6ZAiNhmo9FLhRYgvMmedLtnQ==", 2187 + "cpu": [ 2188 + "ppc64" 2189 + ], 2190 + "dev": true, 2191 + "license": "MIT", 2192 + "optional": true, 2193 + "os": [ 2194 + "linux" 2195 + ], 2196 + "engines": { 2197 + "node": "^20.19.0 || >=22.12.0" 2198 + } 2199 + }, 2200 + "node_modules/@rolldown/binding-linux-s390x-gnu": { 2201 + "version": "1.0.0-rc.15", 2202 + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.15.tgz", 2203 + "integrity": "sha512-y1uXY3qQWCzcPgRJATPSOUP4tCemh4uBdY7e3EZbVwCJTY3gLJWnQABgeUetvED+bt1FQ01OeZwvhLS2bpNrAQ==", 2204 + "cpu": [ 2205 + "s390x" 2206 + ], 2207 + "dev": true, 2208 + "license": "MIT", 2209 + "optional": true, 2210 + "os": [ 2211 + "linux" 2212 + ], 2213 + "engines": { 2214 + "node": "^20.19.0 || >=22.12.0" 2215 + } 2216 + }, 2217 + "node_modules/@rolldown/binding-linux-x64-gnu": { 2218 + "version": "1.0.0-rc.15", 2219 + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.15.tgz", 2220 + "integrity": "sha512-023bTPBod7J3Y/4fzAN6QtpkSABR0rigtrwaP+qSEabUh5zf6ELr9Nc7GujaROuPY3uwdSIXWrvhn1KxOvurWA==", 2221 + "cpu": [ 2222 + "x64" 2223 + ], 2224 + "dev": true, 2225 + "license": "MIT", 2226 + "optional": true, 2227 + "os": [ 2228 + "linux" 2229 + ], 2230 + "engines": { 2231 + "node": "^20.19.0 || >=22.12.0" 2232 + } 2233 + }, 2234 + "node_modules/@rolldown/binding-linux-x64-musl": { 2235 + "version": "1.0.0-rc.15", 2236 + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.15.tgz", 2237 + "integrity": "sha512-witB2O0/hU4CgfOOKUoeFgQ4GktPi1eEbAhaLAIpgD6+ZnhcPkUtPsoKKHRzmOoWPZue46IThdSgdo4XneOLYw==", 2238 + "cpu": [ 2239 + "x64" 2240 + ], 2241 + "dev": true, 2242 + "license": "MIT", 2243 + "optional": true, 2244 + "os": [ 2245 + "linux" 2246 + ], 2247 + "engines": { 2248 + "node": "^20.19.0 || >=22.12.0" 2249 + } 2250 + }, 2251 + "node_modules/@rolldown/binding-openharmony-arm64": { 2252 + "version": "1.0.0-rc.15", 2253 + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.15.tgz", 2254 + "integrity": "sha512-UCL68NJ0Ud5zRipXZE9dF5PmirzJE4E4BCIOOssEnM7wLDsxjc6Qb0sGDxTNRTP53I6MZpygyCpY8Aa8sPfKPg==", 2255 + "cpu": [ 2256 + "arm64" 2257 + ], 2258 + "dev": true, 2259 + "license": "MIT", 2260 + "optional": true, 2261 + "os": [ 2262 + "openharmony" 2263 + ], 2264 + "engines": { 2265 + "node": "^20.19.0 || >=22.12.0" 2266 + } 2267 + }, 2268 + "node_modules/@rolldown/binding-wasm32-wasi": { 2269 + "version": "1.0.0-rc.15", 2270 + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.15.tgz", 2271 + "integrity": "sha512-ApLruZq/ig+nhaE7OJm4lDjayUnOHVUa77zGeqnqZ9pn0ovdVbbNPerVibLXDmWeUZXjIYIT8V3xkT58Rm9u5Q==", 2272 + "cpu": [ 2273 + "wasm32" 2274 + ], 2275 + "dev": true, 2276 + "license": "MIT", 2277 + "optional": true, 2278 + "dependencies": { 2279 + "@emnapi/core": "1.9.2", 2280 + "@emnapi/runtime": "1.9.2", 2281 + "@napi-rs/wasm-runtime": "^1.1.3" 2282 + }, 2283 + "engines": { 2284 + "node": ">=14.0.0" 2285 + } 2286 + }, 2287 + "node_modules/@rolldown/binding-wasm32-wasi/node_modules/@napi-rs/wasm-runtime": { 2288 + "version": "1.1.3", 2289 + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.3.tgz", 2290 + "integrity": "sha512-xK9sGVbJWYb08+mTJt3/YV24WxvxpXcXtP6B172paPZ+Ts69Re9dAr7lKwJoeIx8OoeuimEiRZ7umkiUVClmmQ==", 2291 + "dev": true, 2292 + "license": "MIT", 2293 + "optional": true, 2294 + "dependencies": { 2295 + "@tybys/wasm-util": "^0.10.1" 2296 + }, 2297 + "funding": { 2298 + "type": "github", 2299 + "url": "https://github.com/sponsors/Brooooooklyn" 2300 + }, 2301 + "peerDependencies": { 2302 + "@emnapi/core": "^1.7.1", 2303 + "@emnapi/runtime": "^1.7.1" 2304 + } 2305 + }, 2306 + "node_modules/@rolldown/binding-win32-arm64-msvc": { 2307 + "version": "1.0.0-rc.15", 2308 + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.15.tgz", 2309 + "integrity": "sha512-KmoUoU7HnN+Si5YWJigfTws1jz1bKBYDQKdbLspz0UaqjjFkddHsqorgiW1mxcAj88lYUE6NC/zJNwT+SloqtA==", 2310 + "cpu": [ 2311 + "arm64" 2312 + ], 2313 + "dev": true, 2314 + "license": "MIT", 2315 + "optional": true, 2316 + "os": [ 2317 + "win32" 2318 + ], 2319 + "engines": { 2320 + "node": "^20.19.0 || >=22.12.0" 2321 + } 2322 + }, 2323 + "node_modules/@rolldown/binding-win32-x64-msvc": { 2324 + "version": "1.0.0-rc.15", 2325 + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.15.tgz", 2326 + "integrity": "sha512-3P2A8L+x75qavWLe/Dll3EYBJLQmtkJN8rfh+U/eR3MqMgL/h98PhYI+JFfXuDPgPeCB7iZAKiqii5vqOvnA0g==", 2327 + "cpu": [ 2328 + "x64" 2329 + ], 2330 + "dev": true, 2331 + "license": "MIT", 2332 + "optional": true, 2333 + "os": [ 2334 + "win32" 2335 + ], 2336 + "engines": { 2337 + "node": "^20.19.0 || >=22.12.0" 2338 + } 2339 + }, 2340 + "node_modules/@rolldown/pluginutils": { 2341 + "version": "1.0.0-rc.15", 2342 + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.15.tgz", 2343 + "integrity": "sha512-UromN0peaE53IaBRe9W7CjrZgXl90fqGpK+mIZbA3qSTeYqg3pqpROBdIPvOG3F5ereDHNwoHBI2e50n1BDr1g==", 2344 + "dev": true, 2345 + "license": "MIT" 2346 + }, 2052 2347 "node_modules/@rtsao/scc": { 2053 2348 "version": "1.1.0", 2054 2349 "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", 2055 2350 "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", 2351 + "dev": true, 2352 + "license": "MIT" 2353 + }, 2354 + "node_modules/@standard-schema/spec": { 2355 + "version": "1.1.0", 2356 + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", 2357 + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", 2056 2358 "dev": true, 2057 2359 "license": "MIT" 2058 2360 }, ··· 2346 2648 "dependencies": { 2347 2649 "tslib": "^2.4.0" 2348 2650 } 2651 + }, 2652 + "node_modules/@types/chai": { 2653 + "version": "5.2.3", 2654 + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", 2655 + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", 2656 + "dev": true, 2657 + "license": "MIT", 2658 + "dependencies": { 2659 + "@types/deep-eql": "*", 2660 + "assertion-error": "^2.0.1" 2661 + } 2662 + }, 2663 + "node_modules/@types/deep-eql": { 2664 + "version": "4.0.2", 2665 + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", 2666 + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", 2667 + "dev": true, 2668 + "license": "MIT" 2349 2669 }, 2350 2670 "node_modules/@types/estree": { 2351 2671 "version": "1.0.8", ··· 2962 3282 "win32" 2963 3283 ] 2964 3284 }, 3285 + "node_modules/@vitest/expect": { 3286 + "version": "4.1.4", 3287 + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.4.tgz", 3288 + "integrity": "sha512-iPBpra+VDuXmBFI3FMKHSFXp3Gx5HfmSCE8X67Dn+bwephCnQCaB7qWK2ldHa+8ncN8hJU8VTMcxjPpyMkUjww==", 3289 + "dev": true, 3290 + "license": "MIT", 3291 + "dependencies": { 3292 + "@standard-schema/spec": "^1.1.0", 3293 + "@types/chai": "^5.2.2", 3294 + "@vitest/spy": "4.1.4", 3295 + "@vitest/utils": "4.1.4", 3296 + "chai": "^6.2.2", 3297 + "tinyrainbow": "^3.1.0" 3298 + }, 3299 + "funding": { 3300 + "url": "https://opencollective.com/vitest" 3301 + } 3302 + }, 3303 + "node_modules/@vitest/mocker": { 3304 + "version": "4.1.4", 3305 + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.4.tgz", 3306 + "integrity": "sha512-R9HTZBhW6yCSGbGQnDnH3QHfJxokKN4KB+Yvk9Q1le7eQNYwiCyKxmLmurSpFy6BzJanSLuEUDrD+j97Q+ZLPg==", 3307 + "dev": true, 3308 + "license": "MIT", 3309 + "dependencies": { 3310 + "@vitest/spy": "4.1.4", 3311 + "estree-walker": "^3.0.3", 3312 + "magic-string": "^0.30.21" 3313 + }, 3314 + "funding": { 3315 + "url": "https://opencollective.com/vitest" 3316 + }, 3317 + "peerDependencies": { 3318 + "msw": "^2.4.9", 3319 + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" 3320 + }, 3321 + "peerDependenciesMeta": { 3322 + "msw": { 3323 + "optional": true 3324 + }, 3325 + "vite": { 3326 + "optional": true 3327 + } 3328 + } 3329 + }, 3330 + "node_modules/@vitest/pretty-format": { 3331 + "version": "4.1.4", 3332 + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.4.tgz", 3333 + "integrity": "sha512-ddmDHU0gjEUyEVLxtZa7xamrpIefdEETu3nZjWtHeZX4QxqJ7tRxSteHVXJOcr8jhiLoGAhkK4WJ3WqBpjx42A==", 3334 + "dev": true, 3335 + "license": "MIT", 3336 + "dependencies": { 3337 + "tinyrainbow": "^3.1.0" 3338 + }, 3339 + "funding": { 3340 + "url": "https://opencollective.com/vitest" 3341 + } 3342 + }, 3343 + "node_modules/@vitest/runner": { 3344 + "version": "4.1.4", 3345 + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.4.tgz", 3346 + "integrity": "sha512-xTp7VZ5aXP5ZJrn15UtJUWlx6qXLnGtF6jNxHepdPHpMfz/aVPx+htHtgcAL2mDXJgKhpoo2e9/hVJsIeFbytQ==", 3347 + "dev": true, 3348 + "license": "MIT", 3349 + "dependencies": { 3350 + "@vitest/utils": "4.1.4", 3351 + "pathe": "^2.0.3" 3352 + }, 3353 + "funding": { 3354 + "url": "https://opencollective.com/vitest" 3355 + } 3356 + }, 3357 + "node_modules/@vitest/snapshot": { 3358 + "version": "4.1.4", 3359 + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.4.tgz", 3360 + "integrity": "sha512-MCjCFgaS8aZz+m5nTcEcgk/xhWv0rEH4Yl53PPlMXOZ1/Ka2VcZU6CJ+MgYCZbcJvzGhQRjVrGQNZqkGPttIKw==", 3361 + "dev": true, 3362 + "license": "MIT", 3363 + "dependencies": { 3364 + "@vitest/pretty-format": "4.1.4", 3365 + "@vitest/utils": "4.1.4", 3366 + "magic-string": "^0.30.21", 3367 + "pathe": "^2.0.3" 3368 + }, 3369 + "funding": { 3370 + "url": "https://opencollective.com/vitest" 3371 + } 3372 + }, 3373 + "node_modules/@vitest/spy": { 3374 + "version": "4.1.4", 3375 + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.4.tgz", 3376 + "integrity": "sha512-XxNdAsKW7C+FLydqFJLb5KhJtl3PGCMmYwFRfhvIgxJvLSXhhVI1zM8f1qD3Zg7RCjTSzDVyct6sghs9UEgBEQ==", 3377 + "dev": true, 3378 + "license": "MIT", 3379 + "funding": { 3380 + "url": "https://opencollective.com/vitest" 3381 + } 3382 + }, 3383 + "node_modules/@vitest/utils": { 3384 + "version": "4.1.4", 3385 + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.4.tgz", 3386 + "integrity": "sha512-13QMT+eysM5uVGa1rG4kegGYNp6cnQcsTc67ELFbhNLQO+vgsygtYJx2khvdt4gVQqSSpC/KT5FZZxUpP3Oatw==", 3387 + "dev": true, 3388 + "license": "MIT", 3389 + "dependencies": { 3390 + "@vitest/pretty-format": "4.1.4", 3391 + "convert-source-map": "^2.0.0", 3392 + "tinyrainbow": "^3.1.0" 3393 + }, 3394 + "funding": { 3395 + "url": "https://opencollective.com/vitest" 3396 + } 3397 + }, 2965 3398 "node_modules/acorn": { 2966 3399 "version": "8.16.0", 2967 3400 "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", ··· 3205 3638 }, 3206 3639 "engines": { 3207 3640 "node": ">=18" 3641 + } 3642 + }, 3643 + "node_modules/assertion-error": { 3644 + "version": "2.0.1", 3645 + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", 3646 + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", 3647 + "dev": true, 3648 + "license": "MIT", 3649 + "engines": { 3650 + "node": ">=12" 3208 3651 } 3209 3652 }, 3210 3653 "node_modules/ast-types-flow": { ··· 3423 3866 ], 3424 3867 "license": "CC-BY-4.0" 3425 3868 }, 3869 + "node_modules/chai": { 3870 + "version": "6.2.2", 3871 + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", 3872 + "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", 3873 + "dev": true, 3874 + "license": "MIT", 3875 + "engines": { 3876 + "node": ">=18" 3877 + } 3878 + }, 3426 3879 "node_modules/chalk": { 3427 3880 "version": "4.1.2", 3428 3881 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", ··· 3830 4283 "engines": { 3831 4284 "node": ">= 0.4" 3832 4285 } 4286 + }, 4287 + "node_modules/es-module-lexer": { 4288 + "version": "2.0.0", 4289 + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", 4290 + "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", 4291 + "dev": true, 4292 + "license": "MIT" 3833 4293 }, 3834 4294 "node_modules/es-object-atoms": { 3835 4295 "version": "1.1.1", ··· 4352 4812 "node": ">=4.0" 4353 4813 } 4354 4814 }, 4815 + "node_modules/estree-walker": { 4816 + "version": "3.0.3", 4817 + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", 4818 + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", 4819 + "dev": true, 4820 + "license": "MIT", 4821 + "dependencies": { 4822 + "@types/estree": "^1.0.0" 4823 + } 4824 + }, 4355 4825 "node_modules/esutils": { 4356 4826 "version": "2.0.3", 4357 4827 "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", ··· 4360 4830 "license": "BSD-2-Clause", 4361 4831 "engines": { 4362 4832 "node": ">=0.10.0" 4833 + } 4834 + }, 4835 + "node_modules/expect-type": { 4836 + "version": "1.3.0", 4837 + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", 4838 + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", 4839 + "dev": true, 4840 + "license": "Apache-2.0", 4841 + "engines": { 4842 + "node": ">=12.0.0" 4363 4843 } 4364 4844 }, 4365 4845 "node_modules/fast-deep-equal": { ··· 4691 5171 "funding": { 4692 5172 "url": "https://github.com/sponsors/ljharb" 4693 5173 } 5174 + }, 5175 + "node_modules/globrex": { 5176 + "version": "0.1.2", 5177 + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", 5178 + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", 5179 + "dev": true, 5180 + "license": "MIT" 4694 5181 }, 4695 5182 "node_modules/gopd": { 4696 5183 "version": "1.2.0", ··· 6147 6634 "url": "https://github.com/sponsors/ljharb" 6148 6635 } 6149 6636 }, 6637 + "node_modules/obug": { 6638 + "version": "2.1.1", 6639 + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", 6640 + "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", 6641 + "dev": true, 6642 + "funding": [ 6643 + "https://github.com/sponsors/sxzz", 6644 + "https://opencollective.com/debug" 6645 + ], 6646 + "license": "MIT" 6647 + }, 6150 6648 "node_modules/optionator": { 6151 6649 "version": "0.9.4", 6152 6650 "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", ··· 6252 6750 "version": "1.0.7", 6253 6751 "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 6254 6752 "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 6753 + "dev": true, 6754 + "license": "MIT" 6755 + }, 6756 + "node_modules/pathe": { 6757 + "version": "2.0.3", 6758 + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", 6759 + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", 6255 6760 "dev": true, 6256 6761 "license": "MIT" 6257 6762 }, ··· 6493 6998 "node": ">=0.10.0" 6494 6999 } 6495 7000 }, 7001 + "node_modules/rolldown": { 7002 + "version": "1.0.0-rc.15", 7003 + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.15.tgz", 7004 + "integrity": "sha512-Ff31guA5zT6WjnGp0SXw76X6hzGRk/OQq2hE+1lcDe+lJdHSgnSX6nK3erbONHyCbpSj9a9E+uX/OvytZoWp2g==", 7005 + "dev": true, 7006 + "license": "MIT", 7007 + "dependencies": { 7008 + "@oxc-project/types": "=0.124.0", 7009 + "@rolldown/pluginutils": "1.0.0-rc.15" 7010 + }, 7011 + "bin": { 7012 + "rolldown": "bin/cli.mjs" 7013 + }, 7014 + "engines": { 7015 + "node": "^20.19.0 || >=22.12.0" 7016 + }, 7017 + "optionalDependencies": { 7018 + "@rolldown/binding-android-arm64": "1.0.0-rc.15", 7019 + "@rolldown/binding-darwin-arm64": "1.0.0-rc.15", 7020 + "@rolldown/binding-darwin-x64": "1.0.0-rc.15", 7021 + "@rolldown/binding-freebsd-x64": "1.0.0-rc.15", 7022 + "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.15", 7023 + "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.15", 7024 + "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.15", 7025 + "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.15", 7026 + "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.15", 7027 + "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.15", 7028 + "@rolldown/binding-linux-x64-musl": "1.0.0-rc.15", 7029 + "@rolldown/binding-openharmony-arm64": "1.0.0-rc.15", 7030 + "@rolldown/binding-wasm32-wasi": "1.0.0-rc.15", 7031 + "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.15", 7032 + "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.15" 7033 + } 7034 + }, 6496 7035 "node_modules/run-parallel": { 6497 7036 "version": "1.2.0", 6498 7037 "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", ··· 6794 7333 "url": "https://github.com/sponsors/ljharb" 6795 7334 } 6796 7335 }, 7336 + "node_modules/siginfo": { 7337 + "version": "2.0.0", 7338 + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", 7339 + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", 7340 + "dev": true, 7341 + "license": "ISC" 7342 + }, 6797 7343 "node_modules/source-map-js": { 6798 7344 "version": "1.2.1", 6799 7345 "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", ··· 6807 7353 "version": "0.0.5", 6808 7354 "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", 6809 7355 "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", 7356 + "dev": true, 7357 + "license": "MIT" 7358 + }, 7359 + "node_modules/stackback": { 7360 + "version": "0.0.2", 7361 + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", 7362 + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", 7363 + "dev": true, 7364 + "license": "MIT" 7365 + }, 7366 + "node_modules/std-env": { 7367 + "version": "4.0.0", 7368 + "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.0.0.tgz", 7369 + "integrity": "sha512-zUMPtQ/HBY3/50VbpkupYHbRroTRZJPRLvreamgErJVys0ceuzMkD44J/QjqhHjOzK42GQ3QZIeFG1OYfOtKqQ==", 6810 7370 "dev": true, 6811 7371 "license": "MIT" 6812 7372 }, ··· 7030 7590 "url": "https://opencollective.com/webpack" 7031 7591 } 7032 7592 }, 7593 + "node_modules/tinybench": { 7594 + "version": "2.9.0", 7595 + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", 7596 + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", 7597 + "dev": true, 7598 + "license": "MIT" 7599 + }, 7600 + "node_modules/tinyexec": { 7601 + "version": "1.1.1", 7602 + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.1.1.tgz", 7603 + "integrity": "sha512-VKS/ZaQhhkKFMANmAOhhXVoIfBXblQxGX1myCQ2faQrfmobMftXeJPcZGp0gS07ocvGJWDLZGyOZDadDBqYIJg==", 7604 + "dev": true, 7605 + "license": "MIT", 7606 + "engines": { 7607 + "node": ">=18" 7608 + } 7609 + }, 7033 7610 "node_modules/tinyglobby": { 7034 7611 "version": "0.2.15", 7035 7612 "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", ··· 7078 7655 "url": "https://github.com/sponsors/jonschlinkert" 7079 7656 } 7080 7657 }, 7658 + "node_modules/tinyrainbow": { 7659 + "version": "3.1.0", 7660 + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz", 7661 + "integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==", 7662 + "dev": true, 7663 + "license": "MIT", 7664 + "engines": { 7665 + "node": ">=14.0.0" 7666 + } 7667 + }, 7081 7668 "node_modules/tlds": { 7082 7669 "version": "1.261.0", 7083 7670 "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.261.0.tgz", ··· 7111 7698 }, 7112 7699 "peerDependencies": { 7113 7700 "typescript": ">=4.8.4" 7701 + } 7702 + }, 7703 + "node_modules/tsconfck": { 7704 + "version": "3.1.6", 7705 + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.6.tgz", 7706 + "integrity": "sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==", 7707 + "dev": true, 7708 + "license": "MIT", 7709 + "bin": { 7710 + "tsconfck": "bin/tsconfck.js" 7711 + }, 7712 + "engines": { 7713 + "node": "^18 || >=20" 7714 + }, 7715 + "peerDependencies": { 7716 + "typescript": "^5.0.0" 7717 + }, 7718 + "peerDependenciesMeta": { 7719 + "typescript": { 7720 + "optional": true 7721 + } 7114 7722 } 7115 7723 }, 7116 7724 "node_modules/tsconfig-paths": { ··· 7420 8028 "punycode": "^2.1.0" 7421 8029 } 7422 8030 }, 8031 + "node_modules/vite": { 8032 + "version": "8.0.8", 8033 + "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.8.tgz", 8034 + "integrity": "sha512-dbU7/iLVa8KZALJyLOBOQ88nOXtNG8vxKuOT4I2mD+Ya70KPceF4IAmDsmU0h1Qsn5bPrvsY9HJstCRh3hG6Uw==", 8035 + "dev": true, 8036 + "license": "MIT", 8037 + "dependencies": { 8038 + "lightningcss": "^1.32.0", 8039 + "picomatch": "^4.0.4", 8040 + "postcss": "^8.5.8", 8041 + "rolldown": "1.0.0-rc.15", 8042 + "tinyglobby": "^0.2.15" 8043 + }, 8044 + "bin": { 8045 + "vite": "bin/vite.js" 8046 + }, 8047 + "engines": { 8048 + "node": "^20.19.0 || >=22.12.0" 8049 + }, 8050 + "funding": { 8051 + "url": "https://github.com/vitejs/vite?sponsor=1" 8052 + }, 8053 + "optionalDependencies": { 8054 + "fsevents": "~2.3.3" 8055 + }, 8056 + "peerDependencies": { 8057 + "@types/node": "^20.19.0 || >=22.12.0", 8058 + "@vitejs/devtools": "^0.1.0", 8059 + "esbuild": "^0.27.0 || ^0.28.0", 8060 + "jiti": ">=1.21.0", 8061 + "less": "^4.0.0", 8062 + "sass": "^1.70.0", 8063 + "sass-embedded": "^1.70.0", 8064 + "stylus": ">=0.54.8", 8065 + "sugarss": "^5.0.0", 8066 + "terser": "^5.16.0", 8067 + "tsx": "^4.8.1", 8068 + "yaml": "^2.4.2" 8069 + }, 8070 + "peerDependenciesMeta": { 8071 + "@types/node": { 8072 + "optional": true 8073 + }, 8074 + "@vitejs/devtools": { 8075 + "optional": true 8076 + }, 8077 + "esbuild": { 8078 + "optional": true 8079 + }, 8080 + "jiti": { 8081 + "optional": true 8082 + }, 8083 + "less": { 8084 + "optional": true 8085 + }, 8086 + "sass": { 8087 + "optional": true 8088 + }, 8089 + "sass-embedded": { 8090 + "optional": true 8091 + }, 8092 + "stylus": { 8093 + "optional": true 8094 + }, 8095 + "sugarss": { 8096 + "optional": true 8097 + }, 8098 + "terser": { 8099 + "optional": true 8100 + }, 8101 + "tsx": { 8102 + "optional": true 8103 + }, 8104 + "yaml": { 8105 + "optional": true 8106 + } 8107 + } 8108 + }, 8109 + "node_modules/vite-tsconfig-paths": { 8110 + "version": "6.1.1", 8111 + "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-6.1.1.tgz", 8112 + "integrity": "sha512-2cihq7zliibCCZ8P9cKJrQBkfgdvcFkOOc3Y02o3GWUDLgqjWsZudaoiuOwO/gzTzy17cS5F7ZPo4bsnS4DGkg==", 8113 + "dev": true, 8114 + "license": "MIT", 8115 + "dependencies": { 8116 + "debug": "^4.1.1", 8117 + "globrex": "^0.1.2", 8118 + "tsconfck": "^3.0.3" 8119 + }, 8120 + "peerDependencies": { 8121 + "vite": "*" 8122 + } 8123 + }, 8124 + "node_modules/vite/node_modules/picomatch": { 8125 + "version": "4.0.4", 8126 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", 8127 + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", 8128 + "dev": true, 8129 + "license": "MIT", 8130 + "engines": { 8131 + "node": ">=12" 8132 + }, 8133 + "funding": { 8134 + "url": "https://github.com/sponsors/jonschlinkert" 8135 + } 8136 + }, 8137 + "node_modules/vitest": { 8138 + "version": "4.1.4", 8139 + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.4.tgz", 8140 + "integrity": "sha512-tFuJqTxKb8AvfyqMfnavXdzfy3h3sWZRWwfluGbkeR7n0HUev+FmNgZ8SDrRBTVrVCjgH5cA21qGbCffMNtWvg==", 8141 + "dev": true, 8142 + "license": "MIT", 8143 + "dependencies": { 8144 + "@vitest/expect": "4.1.4", 8145 + "@vitest/mocker": "4.1.4", 8146 + "@vitest/pretty-format": "4.1.4", 8147 + "@vitest/runner": "4.1.4", 8148 + "@vitest/snapshot": "4.1.4", 8149 + "@vitest/spy": "4.1.4", 8150 + "@vitest/utils": "4.1.4", 8151 + "es-module-lexer": "^2.0.0", 8152 + "expect-type": "^1.3.0", 8153 + "magic-string": "^0.30.21", 8154 + "obug": "^2.1.1", 8155 + "pathe": "^2.0.3", 8156 + "picomatch": "^4.0.3", 8157 + "std-env": "^4.0.0-rc.1", 8158 + "tinybench": "^2.9.0", 8159 + "tinyexec": "^1.0.2", 8160 + "tinyglobby": "^0.2.15", 8161 + "tinyrainbow": "^3.1.0", 8162 + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", 8163 + "why-is-node-running": "^2.3.0" 8164 + }, 8165 + "bin": { 8166 + "vitest": "vitest.mjs" 8167 + }, 8168 + "engines": { 8169 + "node": "^20.0.0 || ^22.0.0 || >=24.0.0" 8170 + }, 8171 + "funding": { 8172 + "url": "https://opencollective.com/vitest" 8173 + }, 8174 + "peerDependencies": { 8175 + "@edge-runtime/vm": "*", 8176 + "@opentelemetry/api": "^1.9.0", 8177 + "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", 8178 + "@vitest/browser-playwright": "4.1.4", 8179 + "@vitest/browser-preview": "4.1.4", 8180 + "@vitest/browser-webdriverio": "4.1.4", 8181 + "@vitest/coverage-istanbul": "4.1.4", 8182 + "@vitest/coverage-v8": "4.1.4", 8183 + "@vitest/ui": "4.1.4", 8184 + "happy-dom": "*", 8185 + "jsdom": "*", 8186 + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" 8187 + }, 8188 + "peerDependenciesMeta": { 8189 + "@edge-runtime/vm": { 8190 + "optional": true 8191 + }, 8192 + "@opentelemetry/api": { 8193 + "optional": true 8194 + }, 8195 + "@types/node": { 8196 + "optional": true 8197 + }, 8198 + "@vitest/browser-playwright": { 8199 + "optional": true 8200 + }, 8201 + "@vitest/browser-preview": { 8202 + "optional": true 8203 + }, 8204 + "@vitest/browser-webdriverio": { 8205 + "optional": true 8206 + }, 8207 + "@vitest/coverage-istanbul": { 8208 + "optional": true 8209 + }, 8210 + "@vitest/coverage-v8": { 8211 + "optional": true 8212 + }, 8213 + "@vitest/ui": { 8214 + "optional": true 8215 + }, 8216 + "happy-dom": { 8217 + "optional": true 8218 + }, 8219 + "jsdom": { 8220 + "optional": true 8221 + }, 8222 + "vite": { 8223 + "optional": false 8224 + } 8225 + } 8226 + }, 8227 + "node_modules/vitest/node_modules/picomatch": { 8228 + "version": "4.0.4", 8229 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", 8230 + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", 8231 + "dev": true, 8232 + "license": "MIT", 8233 + "engines": { 8234 + "node": ">=12" 8235 + }, 8236 + "funding": { 8237 + "url": "https://github.com/sponsors/jonschlinkert" 8238 + } 8239 + }, 7423 8240 "node_modules/which": { 7424 8241 "version": "2.0.2", 7425 8242 "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", ··· 7523 8340 }, 7524 8341 "funding": { 7525 8342 "url": "https://github.com/sponsors/ljharb" 8343 + } 8344 + }, 8345 + "node_modules/why-is-node-running": { 8346 + "version": "2.3.0", 8347 + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", 8348 + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", 8349 + "dev": true, 8350 + "license": "MIT", 8351 + "dependencies": { 8352 + "siginfo": "^2.0.0", 8353 + "stackback": "0.0.2" 8354 + }, 8355 + "bin": { 8356 + "why-is-node-running": "cli.js" 8357 + }, 8358 + "engines": { 8359 + "node": ">=8" 7526 8360 } 7527 8361 }, 7528 8362 "node_modules/word-wrap": {
+6 -2
package.json
··· 8 8 "start": "next start", 9 9 "lint": "eslint", 10 10 "transcribe": "tsx scripts/transcribe.ts", 11 - "build-talk-index": "tsx scripts/build-talk-index.ts" 11 + "build-talk-index": "tsx scripts/build-talk-index.ts", 12 + "test": "vitest run", 13 + "test:watch": "vitest" 12 14 }, 13 15 "dependencies": { 14 16 "@atproto/api": "^0.19.6", ··· 29 31 "eslint-config-next": "16.2.2", 30 32 "tailwindcss": "^4", 31 33 "tsx": "^4.21.0", 32 - "typescript": "^5" 34 + "typescript": "^5", 35 + "vite-tsconfig-paths": "^6.1.1", 36 + "vitest": "^4.1.4" 33 37 } 34 38 }
+9
vitest.config.ts
··· 1 + import { defineConfig } from "vitest/config"; 2 + import tsconfigPaths from "vite-tsconfig-paths"; 3 + 4 + export default defineConfig({ 5 + plugins: [tsconfigPaths()], 6 + test: { 7 + environment: "node", 8 + }, 9 + });