Files
immich/web/svelte.config.js

63 lines
1.7 KiB
JavaScript

import adapter from '@sveltejs/adapter-static';
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
import dotenv from 'dotenv';
dotenv.config({ quiet: true });
process.env.PUBLIC_IMMICH_BUY_HOST = process.env.PUBLIC_IMMICH_BUY_HOST || 'https://buy.immich.app';
process.env.PUBLIC_IMMICH_PAY_HOST = process.env.PUBLIC_IMMICH_PAY_HOST || 'https://pay.futo.org';
/** @type {import('@sveltejs/kit').Config} */
const config = {
compilerOptions: {
// TODO pending `@immich/ui` to enable it
// runes: true,
},
preprocess: vitePreprocess(),
kit: {
paths: {
relative: false,
},
adapter: adapter({
fallback: 'index.html',
precompress: true,
}),
csp: {
mode: 'hash',
directives: {
'default-src': ['self'],
'script-src': [
'self',
'https://www.gstatic.com',
'wasm-unsafe-eval',
'sha256-h5wSYKWbmHcoYTdkHNNguMswVNCphpvwW+uxooXhF/Y=',
],
'style-src': ['self', 'unsafe-inline'],
'img-src': ['self', 'data:', 'blob:'],
'connect-src': [
'self',
'blob:',
'https://pay.futo.org',
'https://static.immich.cloud',
'https://tiles.immich.cloud',
],
'worker-src': ['self', 'blob:'],
'frame-src': ['none'],
'object-src': ['none'],
'base-uri': ['self'],
},
},
alias: {
$lib: 'src/lib',
'$lib/*': 'src/lib/*',
$tests: 'src/../tests',
'$tests/*': 'src/../tests/*',
'@test-data': 'src/test-data',
$i18n: '../i18n',
'chromecast-caf-sender': './node_modules/@types/chromecast-caf-sender/index.d.ts',
},
},
};
export default config;