mirror of
https://github.com/J3vb/OwnCord.git
synced 2026-09-03 03:50:00 +03:00
* build(client): upgrade TypeScript to 6.0.3 Staging step toward TypeScript 7 (the native compiler), which needs its 7.1 stable API before typescript-eslint and Stryker's typescript-checker can run on it. TS 6 is the JS-based bridge release that aligns config defaults with 7. Two fallout fixes: - tsconfig.e2e.json: TS 6 defaults "types" to [] instead of every installed @types package, so the Playwright layer's Node globals (process, Buffer) need an explicit "types": ["node"]. - media-visibility.test.ts: TS 6's DOM lib adds scrollMargin to IntersectionObserver, so the mock grows the property. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Lw5KEz6gdD816Wxmm4A3Bn * build(server): bump chi to 5.3.2, modernc.org/sqlite to 1.57.0, toolchain to go1.26.7 Go 1.27 deliberately deferred until 1.27.1 lands. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Lw5KEz6gdD816Wxmm4A3Bn * build(tauri): bump tokio-tungstenite to 0.30, refresh Cargo.lock In-range lockfile refresh via cargo update; tungstenite 0.29/0.30 changes are client-API-neutral (header handling, server-side handshake hardening). Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Lw5KEz6gdD816Wxmm4A3Bn * build(client): upgrade vite 8, vitest 4, jsdom 30, stryker 10 + minors - vite 6 -> 8: Rolldown requires the function form of manualChunks; __dirname -> import.meta.dirname in configs - vitest 3 -> 4: browser provider moved to @vitest/browser-playwright; vi.fn() mocks now need explicit signatures (typed throughout tests); constructor mocks use function impls; restoreAllMocks no longer resets vi.fn state; matchMedia spies replaced with vi.stubGlobal - jsdom 29 -> 30: one internal bookkeeping abort listener per signal, listener-count regression tests adjusted (leak detection retained) - stryker 9 -> 10, @types/node 20 -> 24, eslint/oxlint/livekit-client minors - tsconfigs: explicit "types" now that TS6/vitest4 stop injecting @types/node ambiently; build config keeps Node globals out of src/ Validated: tsc (main/build/e2e), eslint, oxlint, knip, prettier, unit+integration (5196 tests), browser suite, vite build, stryker dry run. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Lw5KEz6gdD816Wxmm4A3Bn * ci: move Node 20 (EOL 2026-04-30) to Node 24 LTS The jsdom suite runs on modern Node without --no-experimental-webstorage: tests/setup.ts already replaces the shadowed localStorage with an in-memory shim. Client CLAUDE.md gotcha updated accordingly. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Lw5KEz6gdD816Wxmm4A3Bn --------- Co-authored-by: Claude <noreply@anthropic.com>
57 lines
1.7 KiB
TypeScript
57 lines
1.7 KiB
TypeScript
import { defineConfig, type Plugin } from "vite";
|
|
import { resolve } from "path";
|
|
|
|
const host = process.env.TAURI_DEV_HOST;
|
|
|
|
/** Strip crossorigin attributes — Tauri serves via custom protocol. */
|
|
function stripCrossOrigin(): Plugin {
|
|
return {
|
|
name: "strip-crossorigin",
|
|
transformIndexHtml(html) {
|
|
return html.replace(/\s+crossorigin/g, "");
|
|
},
|
|
};
|
|
}
|
|
|
|
export default defineConfig({
|
|
plugins: [stripCrossOrigin()],
|
|
build: {
|
|
modulePreload: { polyfill: false },
|
|
cssCodeSplit: false,
|
|
rollupOptions: {
|
|
output: {
|
|
// Keep the ~1.3 MB LiveKit SDK in its own chunk, out of the entry.
|
|
// Rolldown (Vite 8) only supports the function form of manualChunks.
|
|
manualChunks(id) {
|
|
if (id.includes("node_modules/livekit-client/")) return "livekit";
|
|
return undefined;
|
|
},
|
|
},
|
|
},
|
|
},
|
|
resolve: {
|
|
alias: {
|
|
"@lib": resolve(import.meta.dirname, "src/lib"),
|
|
"@stores": resolve(import.meta.dirname, "src/stores"),
|
|
"@components": resolve(import.meta.dirname, "src/components"),
|
|
"@pages": resolve(import.meta.dirname, "src/pages"),
|
|
"@styles": resolve(import.meta.dirname, "src/styles"),
|
|
},
|
|
},
|
|
clearScreen: false,
|
|
server: {
|
|
port: 1420,
|
|
strictPort: true,
|
|
host: host || false,
|
|
hmr: host ? { protocol: "ws", host, port: 1421 } : undefined,
|
|
watch: {
|
|
// Never watch the Rust tree. `tauri dev` runs Vite as its
|
|
// `beforeDevCommand`, so without this the watcher picks up
|
|
// `src-tauri/target/` and dies with EBUSY the moment cargo writes the
|
|
// output DLL on Windows — taking the whole dev session with it. Tauri
|
|
// already watches `src-tauri` itself for rebuilds.
|
|
ignored: ["**/src-tauri/**"],
|
|
},
|
|
},
|
|
});
|