desktop/ serves the normal frontend build over a privileged app://j621 scheme, so localStorage, OPFS, Web Workers, WebCodecs and history routing behave exactly like Chrome. Development points at the Vite dev server; `npm run smoke` runs headless Electron and checks the bundled app. External links open in the system browser, and download navigations (?download=1 or media URLs) are rerouted through webContents.downloadURL, since preventing them cancels the download. The setup screen names the shell's origin when the connection test fails, and the deploy docs list app://j621 for CORS_ALLOWED_ORIGINS.
19 lines
486 B
TypeScript
19 lines
486 B
TypeScript
/** Baked at build time by Vite (see vite.config.ts). */
|
|
declare const __GIT_HASH__: string;
|
|
|
|
/**
|
|
* Injected by the Electron shell (desktop/src/preload.ts) when it hosts the
|
|
* SPA. Absent in browsers.
|
|
*/
|
|
interface J621DesktopBridge {
|
|
readonly isDesktop: true;
|
|
readonly platform: string;
|
|
/** The shell's origin (e.g. `app://j621`), for backend CORS hints. */
|
|
readonly origin: string;
|
|
getVersion(): Promise<string>;
|
|
}
|
|
|
|
interface Window {
|
|
j621Desktop?: J621DesktopBridge;
|
|
}
|