// vite.config.js import { defineConfig } from "file:///home/litruv/Development/cinny-desktop/cinny/node_modules/vite/dist/node/index.js"; import react from "file:///home/litruv/Development/cinny-desktop/cinny/node_modules/@vitejs/plugin-react/dist/index.mjs"; import { wasm } from "file:///home/litruv/Development/cinny-desktop/cinny/node_modules/@rollup/plugin-wasm/dist/es/index.js"; import { viteStaticCopy } from "file:///home/litruv/Development/cinny-desktop/cinny/node_modules/vite-plugin-static-copy/dist/index.js"; import { vanillaExtractPlugin } from "file:///home/litruv/Development/cinny-desktop/cinny/node_modules/@vanilla-extract/vite-plugin/dist/vanilla-extract-vite-plugin.cjs.js"; import { NodeGlobalsPolyfillPlugin } from "file:///home/litruv/Development/cinny-desktop/cinny/node_modules/@esbuild-plugins/node-globals-polyfill/dist/index.js"; import inject from "file:///home/litruv/Development/cinny-desktop/cinny/node_modules/@rollup/plugin-inject/dist/es/index.js"; import topLevelAwait from "file:///home/litruv/Development/cinny-desktop/cinny/node_modules/vite-plugin-top-level-await/exports/import.mjs"; import { VitePWA } from "file:///home/litruv/Development/cinny-desktop/cinny/node_modules/vite-plugin-pwa/dist/index.js"; import fs from "fs"; import path from "path"; // build.config.ts var build_config_default = { base: "/" }; // vite.config.js var copyFiles = { targets: [ { src: "node_modules/pdfjs-dist/build/pdf.worker.min.mjs", dest: "", rename: "pdf.worker.min.js" }, { src: "node_modules/gif.js/dist/gif.worker.js", dest: "" }, { src: "netlify.toml", dest: "" }, { src: "config.json", dest: "" }, { src: "public/manifest.json", dest: "" }, { src: "public/res/android", dest: "public/" }, { src: "public/locales", dest: "public/" } ] }; function serverMatrixSdkCryptoWasm(wasmFilePath) { return { name: "vite-plugin-serve-matrix-sdk-crypto-wasm", configureServer(server) { server.middlewares.use((req, res, next) => { if (req.url === wasmFilePath) { const resolvedPath = path.join(path.resolve(), "/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.wasm"); if (fs.existsSync(resolvedPath)) { res.setHeader("Content-Type", "application/wasm"); res.setHeader("Cache-Control", "no-cache"); const fileStream = fs.createReadStream(resolvedPath); fileStream.pipe(res); } else { res.writeHead(404); res.end("File not found"); } } else { next(); } }); } }; } function serveGifWorker() { return { name: "vite-plugin-serve-gif-worker", configureServer(server) { server.middlewares.use((req, res, next) => { if (req.url === "/gif.worker.js") { const resolvedPath = path.join(path.resolve(), "/node_modules/gif.js/dist/gif.worker.js"); if (fs.existsSync(resolvedPath)) { res.setHeader("Content-Type", "application/javascript"); res.setHeader("Cache-Control", "no-cache"); const fileStream = fs.createReadStream(resolvedPath); fileStream.pipe(res); } else { res.writeHead(404); res.end("File not found"); } } else { next(); } }); } }; } var vite_config_default = defineConfig({ appType: "spa", publicDir: false, base: build_config_default.base, server: { port: 8080, host: "0.0.0.0", fs: { // Allow serving files from one level up to the project root allow: [".."] } }, plugins: [ serverMatrixSdkCryptoWasm("/node_modules/.vite/deps/pkg/matrix_sdk_crypto_wasm_bg.wasm"), serveGifWorker(), topLevelAwait({ // The export name of top-level await promise for each chunk module promiseExportName: "__tla", // The function to generate import names of top-level await promise in each chunk module promiseImportName: (i) => `__tla_${i}` }), viteStaticCopy(copyFiles), vanillaExtractPlugin(), wasm(), react(), VitePWA({ srcDir: "src", filename: "sw.ts", strategies: "injectManifest", injectRegister: false, manifest: false, injectManifest: { injectionPoint: void 0 }, devOptions: { enabled: false, type: "module" } }) ], optimizeDeps: { esbuildOptions: { define: { global: "globalThis" }, plugins: [ // Enable esbuild polyfill plugins NodeGlobalsPolyfillPlugin({ process: false, buffer: true }) ] } }, build: { outDir: "dist", sourcemap: true, copyPublicDir: false, rollupOptions: { plugins: [inject({ Buffer: ["buffer", "Buffer"] })] } } }); export { vite_config_default as default }; //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcuanMiLCAiYnVpbGQuY29uZmlnLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL2hvbWUvbGl0cnV2L0RldmVsb3BtZW50L2Npbm55LWRlc2t0b3AvY2lubnlcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIi9ob21lL2xpdHJ1di9EZXZlbG9wbWVudC9jaW5ueS1kZXNrdG9wL2Npbm55L3ZpdGUuY29uZmlnLmpzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9ob21lL2xpdHJ1di9EZXZlbG9wbWVudC9jaW5ueS1kZXNrdG9wL2Npbm55L3ZpdGUuY29uZmlnLmpzXCI7aW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSAndml0ZSc7XG5pbXBvcnQgcmVhY3QgZnJvbSAnQHZpdGVqcy9wbHVnaW4tcmVhY3QnO1xuaW1wb3J0IHsgd2FzbSB9IGZyb20gJ0Byb2xsdXAvcGx1Z2luLXdhc20nO1xuaW1wb3J0IHsgdml0ZVN0YXRpY0NvcHkgfSBmcm9tICd2aXRlLXBsdWdpbi1zdGF0aWMtY29weSc7XG5pbXBvcnQgeyB2YW5pbGxhRXh0cmFjdFBsdWdpbiB9IGZyb20gJ0B2YW5pbGxhLWV4dHJhY3Qvdml0ZS1wbHVnaW4nO1xuaW1wb3J0IHsgTm9kZUdsb2JhbHNQb2x5ZmlsbFBsdWdpbiB9IGZyb20gJ0Blc2J1aWxkLXBsdWdpbnMvbm9kZS1nbG9iYWxzLXBvbHlmaWxsJztcbmltcG9ydCBpbmplY3QgZnJvbSAnQHJvbGx1cC9wbHVnaW4taW5qZWN0JztcbmltcG9ydCB0b3BMZXZlbEF3YWl0IGZyb20gJ3ZpdGUtcGx1Z2luLXRvcC1sZXZlbC1hd2FpdCc7XG5pbXBvcnQgeyBWaXRlUFdBIH0gZnJvbSAndml0ZS1wbHVnaW4tcHdhJztcbmltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBidWlsZENvbmZpZyBmcm9tICcuL2J1aWxkLmNvbmZpZyc7XG5cbmNvbnN0IGNvcHlGaWxlcyA9IHtcbiAgdGFyZ2V0czogW1xuICAgIHtcbiAgICAgIHNyYzogJ25vZGVfbW9kdWxlcy9wZGZqcy1kaXN0L2J1aWxkL3BkZi53b3JrZXIubWluLm1qcycsXG4gICAgICBkZXN0OiAnJyxcbiAgICAgIHJlbmFtZTogJ3BkZi53b3JrZXIubWluLmpzJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHNyYzogJ25vZGVfbW9kdWxlcy9naWYuanMvZGlzdC9naWYud29ya2VyLmpzJyxcbiAgICAgIGRlc3Q6ICcnLFxuICAgIH0sXG4gICAge1xuICAgICAgc3JjOiAnbmV0bGlmeS50b21sJyxcbiAgICAgIGRlc3Q6ICcnLFxuICAgIH0sXG4gICAge1xuICAgICAgc3JjOiAnY29uZmlnLmpzb24nLFxuICAgICAgZGVzdDogJycsXG4gICAgfSxcbiAgICB7XG4gICAgICBzcmM6ICdwdWJsaWMvbWFuaWZlc3QuanNvbicsXG4gICAgICBkZXN0OiAnJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHNyYzogJ3B1YmxpYy9yZXMvYW5kcm9pZCcsXG4gICAgICBkZXN0OiAncHVibGljLycsXG4gICAgfSxcbiAgICB7XG4gICAgICBzcmM6ICdwdWJsaWMvbG9jYWxlcycsXG4gICAgICBkZXN0OiAncHVibGljLycsXG4gICAgfSxcbiAgXSxcbn07XG5cbmZ1bmN0aW9uIHNlcnZlck1hdHJpeFNka0NyeXB0b1dhc20od2FzbUZpbGVQYXRoKSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3ZpdGUtcGx1Z2luLXNlcnZlLW1hdHJpeC1zZGstY3J5cHRvLXdhc20nLFxuICAgIGNvbmZpZ3VyZVNlcnZlcihzZXJ2ZXIpIHtcbiAgICAgIHNlcnZlci5taWRkbGV3YXJlcy51c2UoKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgICAgIGlmIChyZXEudXJsID09PSB3YXNtRmlsZVBhdGgpIHtcbiAgICAgICAgICBjb25zdCByZXNvbHZlZFBhdGggPSBwYXRoLmpvaW4ocGF0aC5yZXNvbHZlKCksIFwiL25vZGVfbW9kdWxlcy9AbWF0cml4LW9yZy9tYXRyaXgtc2RrLWNyeXB0by13YXNtL3BrZy9tYXRyaXhfc2RrX2NyeXB0b193YXNtX2JnLndhc21cIik7XG5cbiAgICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyhyZXNvbHZlZFBhdGgpKSB7XG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vd2FzbScpO1xuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ2FjaGUtQ29udHJvbCcsICduby1jYWNoZScpO1xuXG4gICAgICAgICAgICBjb25zdCBmaWxlU3RyZWFtID0gZnMuY3JlYXRlUmVhZFN0cmVhbShyZXNvbHZlZFBhdGgpO1xuICAgICAgICAgICAgZmlsZVN0cmVhbS5waXBlKHJlcyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlcy53cml0ZUhlYWQoNDA0KTtcbiAgICAgICAgICAgIHJlcy5lbmQoJ0ZpbGUgbm90IGZvdW5kJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gc2VydmVHaWZXb3JrZXIoKSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3ZpdGUtcGx1Z2luLXNlcnZlLWdpZi13b3JrZXInLFxuICAgIGNvbmZpZ3VyZVNlcnZlcihzZXJ2ZXIpIHtcbiAgICAgIHNlcnZlci5taWRkbGV3YXJlcy51c2UoKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgICAgIGlmIChyZXEudXJsID09PSAnL2dpZi53b3JrZXIuanMnKSB7XG4gICAgICAgICAgY29uc3QgcmVzb2x2ZWRQYXRoID0gcGF0aC5qb2luKHBhdGgucmVzb2x2ZSgpLCAnL25vZGVfbW9kdWxlcy9naWYuanMvZGlzdC9naWYud29ya2VyLmpzJyk7XG5cbiAgICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyhyZXNvbHZlZFBhdGgpKSB7XG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vamF2YXNjcmlwdCcpO1xuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ2FjaGUtQ29udHJvbCcsICduby1jYWNoZScpO1xuXG4gICAgICAgICAgICBjb25zdCBmaWxlU3RyZWFtID0gZnMuY3JlYXRlUmVhZFN0cmVhbShyZXNvbHZlZFBhdGgpO1xuICAgICAgICAgICAgZmlsZVN0cmVhbS5waXBlKHJlcyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlcy53cml0ZUhlYWQoNDA0KTtcbiAgICAgICAgICAgIHJlcy5lbmQoJ0ZpbGUgbm90IGZvdW5kJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcbiAgYXBwVHlwZTogJ3NwYScsXG4gIHB1YmxpY0RpcjogZmFsc2UsXG4gIGJhc2U6IGJ1aWxkQ29uZmlnLmJhc2UsXG4gIHNlcnZlcjoge1xuICAgIHBvcnQ6IDgwODAsXG4gICAgaG9zdDogJzAuMC4wLjAnLFxuICAgIGZzOiB7XG4gICAgICAvLyBBbGxvdyBzZXJ2aW5nIGZpbGVzIGZyb20gb25lIGxldmVsIHVwIHRvIHRoZSBwcm9qZWN0IHJvb3RcbiAgICAgIGFsbG93OiBbJy4uJ10sXG4gICAgfSxcbiAgfSxcbiAgcGx1Z2luczogW1xuICAgIHNlcnZlck1hdHJpeFNka0NyeXB0b1dhc20oJy9ub2RlX21vZHVsZXMvLnZpdGUvZGVwcy9wa2cvbWF0cml4X3Nka19jcnlwdG9fd2FzbV9iZy53YXNtJyksXG4gICAgc2VydmVHaWZXb3JrZXIoKSxcbiAgICB0b3BMZXZlbEF3YWl0KHtcbiAgICAgIC8vIFRoZSBleHBvcnQgbmFtZSBvZiB0b3AtbGV2ZWwgYXdhaXQgcHJvbWlzZSBmb3IgZWFjaCBjaHVuayBtb2R1bGVcbiAgICAgIHByb21pc2VFeHBvcnROYW1lOiAnX190bGEnLFxuICAgICAgLy8gVGhlIGZ1bmN0aW9uIHRvIGdlbmVyYXRlIGltcG9ydCBuYW1lcyBvZiB0b3AtbGV2ZWwgYXdhaXQgcHJvbWlzZSBpbiBlYWNoIGNodW5rIG1vZHVsZVxuICAgICAgcHJvbWlzZUltcG9ydE5hbWU6IChpKSA9PiBgX190bGFfJHtpfWAsXG4gICAgfSksXG4gICAgdml0ZVN0YXRpY0NvcHkoY29weUZpbGVzKSxcbiAgICB2YW5pbGxhRXh0cmFjdFBsdWdpbigpLFxuICAgIHdhc20oKSxcbiAgICByZWFjdCgpLFxuICAgIFZpdGVQV0Eoe1xuICAgICAgc3JjRGlyOiAnc3JjJyxcbiAgICAgIGZpbGVuYW1lOiAnc3cudHMnLFxuICAgICAgc3RyYXRlZ2llczogJ2luamVjdE1hbmlmZXN0JyxcbiAgICAgIGluamVjdFJlZ2lzdGVyOiBmYWxzZSxcbiAgICAgIG1hbmlmZXN0OiBmYWxzZSxcbiAgICAgIGluamVjdE1hbmlmZXN0OiB7XG4gICAgICAgIGluamVjdGlvblBvaW50OiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgICAgZGV2T3B0aW9uczoge1xuICAgICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgICAgdHlwZTogJ21vZHVsZSdcbiAgICAgIH1cbiAgICB9KSxcbiAgXSxcbiAgb3B0aW1pemVEZXBzOiB7XG4gICAgZXNidWlsZE9wdGlvbnM6IHtcbiAgICAgIGRlZmluZToge1xuICAgICAgICBnbG9iYWw6ICdnbG9iYWxUaGlzJyxcbiAgICAgIH0sXG4gICAgICBwbHVnaW5zOiBbXG4gICAgICAgIC8vIEVuYWJsZSBlc2J1aWxkIHBvbHlmaWxsIHBsdWdpbnNcbiAgICAgICAgTm9kZUdsb2JhbHNQb2x5ZmlsbFBsdWdpbih7XG4gICAgICAgICAgcHJvY2VzczogZmFsc2UsXG4gICAgICAgICAgYnVmZmVyOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcbiAgYnVpbGQ6IHtcbiAgICBvdXREaXI6ICdkaXN0JyxcbiAgICBzb3VyY2VtYXA6IHRydWUsXG4gICAgY29weVB1YmxpY0RpcjogZmFsc2UsXG4gICAgcm9sbHVwT3B0aW9uczoge1xuICAgICAgcGx1Z2luczogW2luamVjdCh7IEJ1ZmZlcjogWydidWZmZXInLCAnQnVmZmVyJ10gfSldLFxuICAgIH0sXG4gIH0sXG59KTtcbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL2hvbWUvbGl0cnV2L0RldmVsb3BtZW50L2Npbm55LWRlc2t0b3AvY2lubnlcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIi9ob21lL2xpdHJ1di9EZXZlbG9wbWVudC9jaW5ueS1kZXNrdG9wL2Npbm55L2J1aWxkLmNvbmZpZy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vaG9tZS9saXRydXYvRGV2ZWxvcG1lbnQvY2lubnktZGVza3RvcC9jaW5ueS9idWlsZC5jb25maWcudHNcIjtleHBvcnQgZGVmYXVsdCB7XG4gIGJhc2U6ICcvJyxcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQXNULFNBQVMsb0JBQW9CO0FBQ25WLE9BQU8sV0FBVztBQUNsQixTQUFTLFlBQVk7QUFDckIsU0FBUyxzQkFBc0I7QUFDL0IsU0FBUyw0QkFBNEI7QUFDckMsU0FBUyxpQ0FBaUM7QUFDMUMsT0FBTyxZQUFZO0FBQ25CLE9BQU8sbUJBQW1CO0FBQzFCLFNBQVMsZUFBZTtBQUN4QixPQUFPLFFBQVE7QUFDZixPQUFPLFVBQVU7OztBQ1Z1UyxJQUFPLHVCQUFRO0FBQUEsRUFDclUsTUFBTTtBQUNSOzs7QURXQSxJQUFNLFlBQVk7QUFBQSxFQUNoQixTQUFT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