From 36884867f72bab59a670ebd1963944ea596dd417 Mon Sep 17 00:00:00 2001 From: proddy Date: Sun, 2 Aug 2026 14:40:32 +0200 Subject: [PATCH] fix for formidable loading, and svg being compressed --- interface/pnpm-lock.yaml | 66 ++++++---------------------------- interface/public/app/icon.png | Bin 5762 -> 2427 bytes interface/vite.config.ts | 38 +++++++++++--------- 3 files changed, 31 insertions(+), 73 deletions(-) diff --git a/interface/pnpm-lock.yaml b/interface/pnpm-lock.yaml index 05c0a878b..126709bab 100644 --- a/interface/pnpm-lock.yaml +++ b/interface/pnpm-lock.yaml @@ -131,10 +131,6 @@ packages: resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==} engines: {node: '>=6.9.0'} - '@babel/generator@7.29.7': - resolution: {integrity: sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==} - engines: {node: '>=6.9.0'} - '@babel/generator@7.29.8': resolution: {integrity: sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==} engines: {node: '>=6.9.0'} @@ -181,11 +177,6 @@ packages: resolution: {integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==} engines: {node: '>=6.9.0'} - '@babel/parser@7.29.7': - resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==} - engines: {node: '>=6.0.0'} - hasBin: true - '@babel/parser@7.29.8': resolution: {integrity: sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==} engines: {node: '>=6.0.0'} @@ -217,18 +208,10 @@ packages: resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.29.7': - resolution: {integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==} - engines: {node: '>=6.9.0'} - '@babel/traverse@7.29.8': resolution: {integrity: sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==} engines: {node: '>=6.9.0'} - '@babel/types@7.29.7': - resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} - engines: {node: '>=6.9.0'} - '@babel/types@7.29.8': resolution: {integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==} engines: {node: '>=6.9.0'} @@ -3042,14 +3025,14 @@ snapshots: '@babel/core@7.29.7(supports-color@10.2.2)': dependencies: '@babel/code-frame': 7.29.7 - '@babel/generator': 7.29.7 + '@babel/generator': 7.29.8 '@babel/helper-compilation-targets': 7.29.7 '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2) '@babel/helpers': 7.29.7 - '@babel/parser': 7.29.7 + '@babel/parser': 7.29.8 '@babel/template': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@10.2.2) - '@babel/types': 7.29.7 + '@babel/traverse': 7.29.8(supports-color@10.2.2) + '@babel/types': 7.29.8 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 debug: 4.4.3(supports-color@10.2.2) @@ -3059,14 +3042,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.29.7': - dependencies: - '@babel/parser': 7.29.7 - '@babel/types': 7.29.7 - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - jsesc: 3.1.0 - '@babel/generator@7.29.8': dependencies: '@babel/parser': 7.29.8 @@ -3091,8 +3066,8 @@ snapshots: '@babel/helper-module-imports@7.29.7(supports-color@10.2.2)': dependencies: - '@babel/traverse': 7.29.7(supports-color@10.2.2) - '@babel/types': 7.29.7 + '@babel/traverse': 7.29.8(supports-color@10.2.2) + '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color @@ -3101,7 +3076,7 @@ snapshots: '@babel/core': 7.29.7(supports-color@10.2.2) '@babel/helper-module-imports': 7.29.7(supports-color@10.2.2) '@babel/helper-validator-identifier': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@10.2.2) + '@babel/traverse': 7.29.8(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -3116,11 +3091,7 @@ snapshots: '@babel/helpers@7.29.7': dependencies: '@babel/template': 7.29.7 - '@babel/types': 7.29.7 - - '@babel/parser@7.29.7': - dependencies: - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 '@babel/parser@7.29.8': dependencies: @@ -3154,20 +3125,8 @@ snapshots: '@babel/template@7.29.7': dependencies: '@babel/code-frame': 7.29.7 - '@babel/parser': 7.29.7 - '@babel/types': 7.29.7 - - '@babel/traverse@7.29.7(supports-color@10.2.2)': - dependencies: - '@babel/code-frame': 7.29.7 - '@babel/generator': 7.29.7 - '@babel/helper-globals': 7.29.7 - '@babel/parser': 7.29.7 - '@babel/template': 7.29.7 - '@babel/types': 7.29.7 - debug: 4.4.3(supports-color@10.2.2) - transitivePeerDependencies: - - supports-color + '@babel/parser': 7.29.8 + '@babel/types': 7.29.8 '@babel/traverse@7.29.8(supports-color@10.2.2)': dependencies: @@ -3181,11 +3140,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/types@7.29.7': - dependencies: - '@babel/helper-string-parser': 7.29.7 - '@babel/helper-validator-identifier': 7.29.7 - '@babel/types@7.29.8': dependencies: '@babel/helper-string-parser': 7.29.7 diff --git a/interface/public/app/icon.png b/interface/public/app/icon.png index b8078ace52ba0190e3c05f4d52a374ac3cce5a15..a97723e486502cd553c80fe8c8dda512637c47e5 100644 GIT binary patch literal 2427 zcmeHF`8U-49{-M=MwSPY2~GCOK17~6W^5&c$r4(|5|XkcF)L zFtz3M^uJ4ho5S>6@nitt2Cx`=Gmd2JvH=LBd6^Y6x;D7M<~S#G^@AS9_bhGr(PqS? zU~$Q5N~$M0zHieIhdHpn>C0g)GtBdz_tHuytR0*z@QECU{Ao6;qDJkU@%_$8pC?U{ za>vhl-n)`h=}qY>ZFreS8>US%Y~vp%=H#U|QzPgrl-C_dCr`|EcfY)fxTG`_OU%u{ zphzOIY3L*J(p6GzQ|Djfb8I$eLz{rGfXsiuU@$pt16c#KV`_=pZC{V@m^;1m00~K z`hWb7C(s|Ecnts`K#;Aq9l&OTAb5dOoX#eKx3$4RjyPb~aOjuGQUAgoI0k~^9I-Dx z41(sr+zbfl{EQov_)Vp8gij3QMwkW^{5Qp$u?cep0N#@prf7To=aqtxe6pcvLPqPz z1?cu8u0<4LwuST~$sN205ugu)&l2p=Da@}%EJi6TD zNc_^fx_5PX=5A64uO<>J%{8n@qdTKT`udR(mhJZOl*=~MceS1)`T6bO?)KJJ<9*=; z6OZOQaaybFHn#5)8dv_LW_PQ9y}FaBW_twp;LDxvn$1*AN#kBg)UCj|!tkXs@y6pd zE&;oQY|AS)R$nnc$1zI??G!}peq469Z69;Fl|NvKdBs3f<$F~URV6|xXZ0A%1RtSh z`N47W%pi69MqeB}Vw`LY%^pQJsd+wkrZ~uob}>CC1mX*=DGnzx09KExTkUgqMECDs zyx{xKuzFb7m(6C^x1DJ^4%~vYG$fa4RGS9^or~dNkN|Dt@obdhclWK4Z~#VkR?+(l zVo7l;PAV)aUo_4_xpiP%>hidM2FL4^E0{^2VOKx+C_#6I29y^pmqOj;DbmG)b+9H{ z^x{~LkMVCPC>-|`pP7-k{8S$jE7LQ$W@_rsU`Y`W5RK!gZX7yFMvze1<;q_-<)AWv z{M5itMGmw?e;lF`(r5pS-l3ZzCs5D{Yo}8DbUN{x5PY3WKOLa$Yu%kS;G!xA37sbl zpswPzdp@0lue7@I5EG8}d_F4RlRbyF=20HtUP-ui4;7Y`9qt{=3lCHv->M)uq-{ivy72mWxNEARSt!HcS=A6Ggw<-l%-zzG-9R zweaZCxx}r!+~Pmg`(L>{I@F?-#mMcH*DTRQUbdshie1x3_NKvP54KsgQkWs#qp`wO zhSTb!-W!^sC8~T~W=4Kt#Hzkr=ek5|+yg6(GIfpifX$`>ztdXv{hF5wXu55(3QotS zUBaSXG~zmfp?lRylHVU6d(ZHirOJ>)+%Dp$)ohR?vf~q zbVrA!*nf}871vs6+F2FyQS9qY?p^OkJFJx#! zXLQCpEM>f+bX=s!lm)`*cc~Yjg}x)hy$NSU$(pS-@P%qqD@0|}O30~I1hym< zi3?7l1Qp}jW2w{fW^lFF$=>YdZA+;Z9}$&+{xnCWTiuk|E;Rh1A?^yfrD)i3{fUgv z@|qVJQ3f4+Upq`SQvNYe1q-}STPGE2e*L2&^Mi*%yAJ=Gt(^A>k^%M_eGj`@kmSv6eRwY(e$1Dwv$z@mqdfK7LPm+vFoO)c z@s`$RCZ<3?v|$Fhl~y=UkP|3G1XqxG6~uD+$`gPU{M)HkxZEdkqbaVP)IhDYoh2K4 zVV%tIIVfp9bkSbgFy{wf;{5Or35Qdc!o7AsNSm9S?TP2o7UJ!y@cY~f1`>8R*8N@V z^eps}V-U|*uAi)Tiw@LiinJL$NxU!8=W0-xTv}Gt`0(JRiA`1do;Y5SM1`pq7|(jF zoEEVO=~JV~*Y*_Kwob0<@{asbCxXim{B;!qD)gWG`>$L8iPywq0&@rY`2%Tw!GZ!g zSwFq%AJ`G>7))QW5$(ME$#VfASvMb_PQ_G$kXMx2Xgt9Q4RBy#W^Gz+>>Be=QJq+I literal 5762 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 diff --git a/interface/vite.config.ts b/interface/vite.config.ts index 071ee223f..ba4f39b1a 100644 --- a/interface/vite.config.ts +++ b/interface/vite.config.ts @@ -2,6 +2,7 @@ import preact from '@preact/preset-vite'; import fs from 'fs'; import path from 'path'; import { visualizer } from 'rollup-plugin-visualizer'; +import { pathToFileURL } from 'url'; import { Plugin, PluginOption, defineConfig } from 'vite'; import viteImagemin from 'vite-plugin-imagemin'; import zlib from 'zlib'; @@ -178,24 +179,20 @@ const createProductionTerserOptions = () => ({ toplevel: true }); -// Image optimization plugin +// Image optimization plugin. +// Only svgo runs here: the raster optimizers (optipng, pngquant, gifsicle, +// jpegtran, mozjpeg) are native binaries whose install scripts are blocked by +// `allowBuilds` in pnpm-workspace.yaml, so they would fail on every build. +// Raster assets are committed pre-optimized instead. const imageOptimizationPlugin = { ...viteImagemin({ verbose: false, - gifsicle: { - optimizationLevel: 7, - interlaced: false - }, - optipng: { - optimizationLevel: 7 - }, - mozjpeg: { - quality: 20 - }, - pngquant: { - quality: [0.8, 0.9], - speed: 4 - }, + filter: /\.svg$/i, + gifsicle: false, + jpegTran: false, + mozjpeg: false, + optipng: false, + pngquant: false, svgo: { plugins: [ { name: 'removeViewBox' }, @@ -210,8 +207,15 @@ export default defineConfig( async ({ command, mode }: { command: string; mode: string }) => { if (command === 'serve') { console.log(`Preparing for standalone build with server, mode=${mode}`); - // @ts-expect-error - mock server doesn't have type declarations - const { default: mockServer } = await import('../mock-api/mockServer.js'); + // Imported through a computed URL so the config bundler leaves it as a real + // runtime import: mock-api is a separate package with its own node_modules, + // and inlining it here would drag its dependencies into every build. + const mockServerUrl = pathToFileURL( + path.resolve(import.meta.dirname, '../mock-api/mockServer.js') + ).href; + const { default: mockServer } = (await import( + /* @vite-ignore */ mockServerUrl + )) as { default: () => PluginOption }; return { plugins: [...createBasePlugins(true, true), mockServer()], resolve: {