refactor version check

This commit is contained in:
proddy
2024-11-26 13:32:30 +01:00
parent 3ba0bb80e7
commit f11b9ee420
20 changed files with 545 additions and 494 deletions

File diff suppressed because one or more lines are too long

View File

@@ -1,3 +1,3 @@
nodeLinker: node-modules nodeLinker: node-modules
yarnPath: .yarn/releases/yarn-4.5.2.cjs yarnPath: .yarn/releases/yarn-4.5.3.cjs

View File

@@ -47,20 +47,20 @@
"@preact/preset-vite": "^2.9.1", "@preact/preset-vite": "^2.9.1",
"@trivago/prettier-plugin-sort-imports": "^4.3.0", "@trivago/prettier-plugin-sort-imports": "^4.3.0",
"@types/formidable": "^3", "@types/formidable": "^3",
"@types/node": "^22.9.3", "@types/node": "^22.10.0",
"@types/react": "^18.3.12", "@types/react": "^18.3.12",
"@types/react-dom": "^18.3.1", "@types/react-dom": "^18.3.1",
"concurrently": "^9.1.0", "concurrently": "^9.1.0",
"eslint": "^9.15.0", "eslint": "^9.15.0",
"eslint-config-prettier": "^9.1.0", "eslint-config-prettier": "^9.1.0",
"formidable": "^3.5.2", "formidable": "^3.5.2",
"prettier": "^3.3.3", "prettier": "^3.4.0",
"rollup-plugin-visualizer": "^5.12.0", "rollup-plugin-visualizer": "^5.12.0",
"terser": "^5.36.0", "terser": "^5.36.0",
"typescript-eslint": "8.15.0", "typescript-eslint": "8.16.0",
"vite": "^5.4.11", "vite": "^6.0.0",
"vite-plugin-imagemin": "^0.6.1", "vite-plugin-imagemin": "^0.6.1",
"vite-tsconfig-paths": "^5.1.3" "vite-tsconfig-paths": "^5.1.3"
}, },
"packageManager": "yarn@4.5.2" "packageManager": "yarn@4.5.3"
} }

View File

@@ -30,11 +30,20 @@ import { useI18nContext } from 'i18n/i18n-react';
const Version = () => { const Version = () => {
const { LL } = useI18nContext(); const { LL } = useI18nContext();
const [restarting, setRestarting] = useState<boolean>(false); const [restarting, setRestarting] = useState<boolean>(false);
const [openDialog, setOpenDialog] = useState<boolean>(false); const [openInstallDialog, setOpenInstallDialog] = useState<boolean>(false);
const [useDev, setUseDev] = useState<boolean>(false); const [usingDevVersion, setUsingDevVersion] = useState<boolean>(false);
const [upgradeAvailable, setUpgradeAvailable] = useState<boolean>(false); const [upgradeAvailable, setUpgradeAvailable] = useState<boolean>(false);
const [internetLive, setInternetLive] = useState<boolean>(false);
const [downloadOnly, setDownloadOnly] = useState<boolean>(false);
const STABLE_URL = 'https://github.com/emsesp/EMS-ESP32/releases/download/';
const STABLE_RELNOTES_URL =
'https://github.com/emsesp/EMS-ESP32/blob/main/CHANGELOG.md';
const DEV_URL = 'https://github.com/emsesp/EMS-ESP32/releases/download/latest/';
const DEV_RELNOTES_URL =
'https://github.com/emsesp/EMS-ESP32/blob/dev/CHANGELOG_LATEST.md';
const { send: sendCheckUpgrade } = useRequest( const { send: sendCheckUpgrade } = useRequest(
(versions: string) => callAction({ action: 'checkUpgrade', param: versions }), (versions: string) => callAction({ action: 'checkUpgrade', param: versions }),
@@ -46,7 +55,15 @@ const Version = () => {
setUpgradeAvailable(data.upgradeable); setUpgradeAvailable(data.upgradeable);
}); });
const { data, send: loadData, error } = useRequest(SystemApi.readSystemStatus); const {
data: data,
send: loadData,
error
} = useRequest(SystemApi.readSystemStatus).onSuccess((event) => {
// older version of EMS-ESP didn't have the psram set, so we can't do an OTA upgrade
setDownloadOnly(event.data.psram === undefined);
setUsingDevVersion(event.data.emsesp_version.includes('dev'));
});
const { send: sendUploadURL } = useRequest( const { send: sendUploadURL } = useRequest(
(url: string) => callAction({ action: 'uploadURL', param: url }), (url: string) => callAction({ action: 'uploadURL', param: url }),
@@ -61,34 +78,27 @@ const Version = () => {
useEffect(() => { useEffect(() => {
if (latestVersion && latestDevVersion) { if (latestVersion && latestDevVersion) {
// console.log("Latest versions, stable: " + latestVersion + " dev: " + latestDevVersion); sendCheckUpgrade(latestDevVersion + ',' + latestVersion)
sendCheckUpgrade(latestDevVersion + ',' + latestVersion).catch( .catch((error: Error) => {
(error: Error) => { toast.error('Failed to check for upgrades: ' + error.message);
toast.error('Failed to check upgrade: ' + error.message); })
} .finally(() => {
); setInternetLive(true);
});
} }
}, [latestVersion, latestDevVersion]); }, [latestVersion, latestDevVersion]);
const STABLE_URL = 'https://github.com/emsesp/EMS-ESP32/releases/download/'; const getBinURL = () => {
const STABLE_RELNOTES_URL =
'https://github.com/emsesp/EMS-ESP32/blob/main/CHANGELOG.md';
const DEV_URL = 'https://github.com/emsesp/EMS-ESP32/releases/download/latest/';
const DEV_RELNOTES_URL =
'https://github.com/emsesp/EMS-ESP32/blob/dev/CHANGELOG_LATEST.md';
const getBinURL = (useDevVersion: boolean) => {
if (!latestVersion || !latestDevVersion) { if (!latestVersion || !latestDevVersion) {
return ''; return '';
} }
const filename = const filename =
'EMS-ESP-' + 'EMS-ESP-' +
(useDevVersion ? latestDevVersion : latestVersion).replaceAll('.', '_') + (usingDevVersion ? latestDevVersion : latestVersion).replaceAll('.', '_') +
'-' + '-' +
getPlatform() + getPlatform() +
'.bin'; '.bin';
return useDevVersion return usingDevVersion
? DEV_URL + filename ? DEV_URL + filename
: STABLE_URL + 'v' + latestVersion + '/' + filename; : STABLE_URL + 'v' + latestVersion + '/' + filename;
}; };
@@ -109,19 +119,28 @@ const Version = () => {
useLayoutTitle('EMS-ESP Firmware'); useLayoutTitle('EMS-ESP Firmware');
const renderUploadDialog = () => ( const renderInstallDialog = () => (
<Dialog sx={dialogStyle} open={openDialog} onClose={() => setOpenDialog(false)}> <Dialog
<DialogTitle>{LL.INSTALL('') + ' ' + ' Firmware'}</DialogTitle> sx={dialogStyle}
open={openInstallDialog}
onClose={() => closeInstallDialog()}
>
<DialogTitle>
{LL.INSTALL() +
' ' +
(usingDevVersion ? LL.DEVELOPMENT() : LL.STABLE()) +
' Firmware'}
</DialogTitle>
<DialogContent dividers> <DialogContent dividers>
<Typography mb={2}> <Typography mb={2}>
{LL.INSTALL_VERSION(useDev ? latestDevVersion : latestVersion)} {LL.INSTALL_VERSION(usingDevVersion ? latestDevVersion : latestVersion)}
</Typography> </Typography>
</DialogContent> </DialogContent>
<DialogActions> <DialogActions>
<Button <Button
startIcon={<CancelIcon />} startIcon={<CancelIcon />}
variant="outlined" variant="outlined"
onClick={() => setOpenDialog(false)} onClick={() => closeInstallDialog()}
color="secondary" color="secondary"
> >
{LL.CANCEL()} {LL.CANCEL()}
@@ -129,35 +148,73 @@ const Version = () => {
<Button <Button
startIcon={<DownloadIcon />} startIcon={<DownloadIcon />}
variant="outlined" variant="outlined"
onClick={() => setOpenDialog(false)} onClick={() => closeInstallDialog()}
color="primary"
>
<Link
underline="none"
target="_blank"
href={getBinURL(useDev)}
color="primary" color="primary"
> >
<Link underline="none" target="_blank" href={getBinURL()} color="primary">
{LL.DOWNLOAD(1)} {LL.DOWNLOAD(1)}
</Link> </Link>
</Button> </Button>
<Button <Button
startIcon={<WarningIcon color="warning" />} startIcon={<WarningIcon color="warning" />}
variant="outlined" variant="outlined"
onClick={() => installFirmwareURL(getBinURL(useDev))} onClick={() => installFirmwareURL(getBinURL())}
color="primary" color="primary"
> >
{LL.INSTALL('')} {LL.INSTALL()}
</Button> </Button>
</DialogActions> </DialogActions>
</Dialog> </Dialog>
); );
const showFirmwareDialog = (useDevVersion: boolean) => { const showFirmwareDialog = (useDevVersion?: boolean) => {
if (useDevVersion || data.emsesp_version.includes('dev')) { setUsingDevVersion(useDevVersion || usingDevVersion);
setUseDev(true); setOpenInstallDialog(true);
};
const closeInstallDialog = () => {
setOpenInstallDialog(false);
setUsingDevVersion(data.emsesp_version.includes('dev'));
};
const switchToDev = () => {
setUsingDevVersion(true);
setUpgradeAvailable(true);
};
const showButtons = () => {
if (!upgradeAvailable) {
return;
} }
setOpenDialog(true);
if (downloadOnly) {
return (
<Button
startIcon={<DownloadIcon />}
variant="outlined"
onClick={() => setOpenInstallDialog(false)}
color="warning"
size="small"
sx={{ ml: 2 }}
>
<Link underline="none" target="_blank" href={getBinURL()} color="warning">
{LL.DOWNLOAD(1)}
</Link>
</Button>
);
}
return (
<Button
sx={{ ml: 2 }}
variant="outlined"
color="warning"
size="small"
onClick={() => showFirmwareDialog()}
>
{LL.UPGRADE()}&hellip;
</Button>
);
}; };
const content = () => { const content = () => {
@@ -165,19 +222,6 @@ const Version = () => {
return <FormLoader onRetry={loadData} errorMessage={error?.message} />; return <FormLoader onRetry={loadData} errorMessage={error?.message} />;
} }
const isDev = data.emsesp_version.includes('dev');
// const isDev = false; // for testing
// const isDev = true; // for testing
// check for older versions where auto-upgrade is not supported. These are bbqkees boards with no psram.
const canUpload = upgradeAvailable && data && data.psram;
// const canUpload = true as boolean; // for testing
// const canUpload = false as boolean; // for testing
// see if we have internet access
const internet_live =
latestDevVersion !== undefined && latestVersion !== undefined;
return ( return (
<> <>
<Box p={2} border="1px solid grey" borderRadius={2}> <Box p={2} border="1px solid grey" borderRadius={2}>
@@ -208,20 +252,9 @@ const Version = () => {
</Typography> </Typography>
<Typography mb={1}>{getPlatform()}</Typography> <Typography mb={1}>{getPlatform()}</Typography>
<Typography mb={1}> <Typography mb={1}>
{isDev ? LL.DEVELOPMENT() : LL.STABLE()} {data.emsesp_version.includes('dev')
{!isDev && internet_live && ( ? LL.DEVELOPMENT()
<Typography variant="caption"> : LL.STABLE()}
<Button
sx={{ ml: 2 }}
variant="outlined"
color="primary"
size="small"
onClick={() => showFirmwareDialog(true)}
>
{LL.SWITCH_DEV()}
</Button>
</Typography>
)}
</Typography> </Typography>
</Grid> </Grid>
</Grid> </Grid>
@@ -230,7 +263,7 @@ const Version = () => {
{LL.AVAILABLE_VERSION()} {LL.AVAILABLE_VERSION()}
</Typography> </Typography>
{internet_live ? ( {internetLive ? (
<> <>
<Grid container spacing={4}> <Grid container spacing={4}>
<Grid mb={1}> <Grid mb={1}>
@@ -247,72 +280,14 @@ const Version = () => {
<Link target="_blank" href={STABLE_RELNOTES_URL} color="primary"> <Link target="_blank" href={STABLE_RELNOTES_URL} color="primary">
(changelog) (changelog)
</Link> </Link>
{!isDev && canUpload && ( {!usingDevVersion && showButtons()}
<Button
sx={{ ml: 2 }}
variant="outlined"
color="warning"
size="small"
onClick={() => showFirmwareDialog(false)}
>
{LL.UPGRADE()}&hellip;
</Button>
)}
{!isDev && !canUpload && (
<Button
startIcon={<DownloadIcon />}
variant="outlined"
onClick={() => setOpenDialog(false)}
color="warning"
size="small"
sx={{ ml: 2 }}
>
<Link
underline="none"
target="_blank"
href={getBinURL(useDev)}
color="warning"
>
{LL.DOWNLOAD(1)}
</Link>
</Button>
)}
</Typography> </Typography>
<Typography mb={1}> <Typography mb={1}>
{latestDevVersion}&nbsp;&nbsp; {latestDevVersion}&nbsp;&nbsp;
<Link target="_blank" href={DEV_RELNOTES_URL} color="primary"> <Link target="_blank" href={DEV_RELNOTES_URL} color="primary">
(changelog) (changelog)
</Link> </Link>
{isDev && canUpload && ( {usingDevVersion && showButtons()}
<Button
sx={{ ml: 2 }}
variant="outlined"
color="warning"
size="small"
onClick={() => showFirmwareDialog(false)}
>
{LL.UPGRADE()}&hellip;
</Button>
)}
{isDev && !canUpload && (
<Button
startIcon={<DownloadIcon />}
variant="outlined"
onClick={() => setOpenDialog(false)}
color="warning"
size="small"
sx={{ ml: 2 }}
>
<Link
underline="none"
target="_blank"
href={getBinURL(useDev)}
color="warning"
>
{LL.DOWNLOAD(1)}
</Link>
</Button>
)}
</Typography> </Typography>
</Grid> </Grid>
</Grid> </Grid>
@@ -333,14 +308,29 @@ const Version = () => {
{LL.LATEST_VERSION()} {LL.LATEST_VERSION()}
</Typography> </Typography>
)} )}
{!data.emsesp_version.includes('dev') && !usingDevVersion && (
<Typography variant="caption">
<Button
sx={{ mt: 2 }}
variant="outlined"
color="primary"
size="small"
onClick={() => switchToDev()}
>
{LL.SWITCH_DEV()}
</Button>
</Typography>
)}
</> </>
) : ( ) : (
<Typography mb={1} color="warning"> <Typography mb={1} color="warning">
not online <WarningIcon color="warning" sx={{ verticalAlign: 'middle', mr: 2 }} />
device cannot access internet
</Typography> </Typography>
)} )}
{renderUploadDialog()} {renderInstallDialog()}
</Box> </Box>
</> </>
); );

View File

@@ -161,7 +161,7 @@ const cz: Translation = {
HELP_INFORMATION_4: 'Stáhněte a připojte informace podpoře pro rychlejší odezvu při hlášení problému', HELP_INFORMATION_4: 'Stáhněte a připojte informace podpoře pro rychlejší odezvu při hlášení problému',
UPLOAD: 'Nahrát', UPLOAD: 'Nahrát',
DOWNLOAD: '{{S|s|s}}táhnout', DOWNLOAD: '{{S|s|s}}táhnout',
INSTALL: 'Instalovat {0}', INSTALL: 'Instalovat',
ABORTED: 'přerušeno', ABORTED: 'přerušeno',
FAILED: 'neúspěšné', FAILED: 'neúspěšné',
SUCCESSFUL: 'úspěšné', SUCCESSFUL: 'úspěšné',

View File

@@ -161,7 +161,7 @@ const de: Translation = {
HELP_INFORMATION_4: 'Bitte laden Sie die Systemdetails und hängen Sie sie an das Support-Issue an', HELP_INFORMATION_4: 'Bitte laden Sie die Systemdetails und hängen Sie sie an das Support-Issue an',
UPLOAD: 'Hochladen', UPLOAD: 'Hochladen',
DOWNLOAD: '{{H|h|h}}erunterladen', DOWNLOAD: '{{H|h|h}}erunterladen',
INSTALL: 'Installieren {0}', INSTALL: 'Installieren',
ABORTED: 'abgebrochen', ABORTED: 'abgebrochen',
FAILED: 'gescheitert', FAILED: 'gescheitert',
SUCCESSFUL: 'erfolgreich', SUCCESSFUL: 'erfolgreich',

View File

@@ -161,7 +161,7 @@ const en: Translation = {
HELP_INFORMATION_4: 'Download and attach your support information for a faster response when reporting an issue', HELP_INFORMATION_4: 'Download and attach your support information for a faster response when reporting an issue',
UPLOAD: 'Upload', UPLOAD: 'Upload',
DOWNLOAD: '{{D|d|d}}ownload', DOWNLOAD: '{{D|d|d}}ownload',
INSTALL: 'Install {0}', INSTALL: 'Install',
ABORTED: 'aborted', ABORTED: 'aborted',
FAILED: 'failed', FAILED: 'failed',
SUCCESSFUL: 'successful', SUCCESSFUL: 'successful',

View File

@@ -161,7 +161,7 @@ const fr: Translation = {
HELP_INFORMATION_4: "N'oubliez pas de télécharger et de joindre les informations relatives à votre système pour obtenir une réponse plus rapide lorsque vous signalez un problème", HELP_INFORMATION_4: "N'oubliez pas de télécharger et de joindre les informations relatives à votre système pour obtenir une réponse plus rapide lorsque vous signalez un problème",
UPLOAD: 'Upload', UPLOAD: 'Upload',
DOWNLOAD: '{{D|d|d}}ownload', DOWNLOAD: '{{D|d|d}}ownload',
INSTALL: 'Installer {0}', INSTALL: 'Installer',
ABORTED: 'annulé', ABORTED: 'annulé',
FAILED: 'échoué', FAILED: 'échoué',
SUCCESSFUL: 'réussi', SUCCESSFUL: 'réussi',

View File

@@ -161,7 +161,7 @@ const nl: Translation = {
HELP_INFORMATION_4: 'Zorg dat je ook je systeem details zijn toevoeged voor een sneller antwoord', HELP_INFORMATION_4: 'Zorg dat je ook je systeem details zijn toevoeged voor een sneller antwoord',
UPLOAD: 'Upload', UPLOAD: 'Upload',
DOWNLOAD: '{{D|d|d}}ownload', DOWNLOAD: '{{D|d|d}}ownload',
INSTALL: 'Installeren {0}', INSTALL: 'Installeren',
ABORTED: 'afgebroken', ABORTED: 'afgebroken',
FAILED: 'mislukt', FAILED: 'mislukt',
SUCCESSFUL: 'successvol', SUCCESSFUL: 'successvol',

View File

@@ -161,7 +161,7 @@ const no: Translation = {
HELP_INFORMATION_4: 'Husk å laste ned og legg ved din systeminformasjon for en raskere respons når du rapporterer et problem', HELP_INFORMATION_4: 'Husk å laste ned og legg ved din systeminformasjon for en raskere respons når du rapporterer et problem',
UPLOAD: 'Opplasning', UPLOAD: 'Opplasning',
DOWNLOAD: '{{N|n|n}}edlasting', DOWNLOAD: '{{N|n|n}}edlasting',
INSTALL: 'Installer {0}', INSTALL: 'Installer',
ABORTED: 'avbrutt', ABORTED: 'avbrutt',
FAILED: 'feilet', FAILED: 'feilet',
SUCCESSFUL: 'vellykket', SUCCESSFUL: 'vellykket',

View File

@@ -161,7 +161,7 @@ const pl: BaseTranslation = {
HELP_INFORMATION_4: 'Zgłaszając problem, nie zapomnij pobrać i dołączyć informacji o swoim systemie!', HELP_INFORMATION_4: 'Zgłaszając problem, nie zapomnij pobrać i dołączyć informacji o swoim systemie!',
UPLOAD: 'Wysyłanie', UPLOAD: 'Wysyłanie',
DOWNLOAD: '{{P|p||P}}obier{{anie|z||z}}', DOWNLOAD: '{{P|p||P}}obier{{anie|z||z}}',
INSTALL: 'Zainstalować {0}', INSTALL: 'Zainstalować',
ABORTED: 'zostało przerwane!', ABORTED: 'zostało przerwane!',
FAILED: 'nie powiodł{{o|a|}} się!', FAILED: 'nie powiodł{{o|a|}} się!',
SUCCESSFUL: 'powiodło się.', SUCCESSFUL: 'powiodło się.',

View File

@@ -161,7 +161,7 @@ const sk: Translation = {
HELP_INFORMATION_4: 'nezabudnite si stiahnuť a pripojiť informácie o vašom systéme, aby ste mohli rýchlejšie reagovať pri nahlasovaní problému', HELP_INFORMATION_4: 'nezabudnite si stiahnuť a pripojiť informácie o vašom systéme, aby ste mohli rýchlejšie reagovať pri nahlasovaní problému',
UPLOAD: 'Nahrať', UPLOAD: 'Nahrať',
DOWNLOAD: '{{S|s|s}}tiahnuť', DOWNLOAD: '{{S|s|s}}tiahnuť',
INSTALL: 'Inštalovať {0}', INSTALL: 'Inštalovať',
ABORTED: 'zrušené', ABORTED: 'zrušené',
FAILED: 'chybné', FAILED: 'chybné',
SUCCESSFUL: 'úspešné', SUCCESSFUL: 'úspešné',

View File

@@ -161,7 +161,7 @@ const sv: Translation = {
HELP_INFORMATION_4: 'Bifoga din systeminformation för snabbare hantering när du rapporterar ett problem', HELP_INFORMATION_4: 'Bifoga din systeminformation för snabbare hantering när du rapporterar ett problem',
UPLOAD: 'Uppladdning', UPLOAD: 'Uppladdning',
DOWNLOAD: '{{N|n|n}}edladdning', DOWNLOAD: '{{N|n|n}}edladdning',
INSTALL: 'Installera {0}', INSTALL: 'Installera',
ABORTED: 'Avbruten', ABORTED: 'Avbruten',
FAILED: 'Misslyckades', FAILED: 'Misslyckades',
SUCCESSFUL: 'Lyckades', SUCCESSFUL: 'Lyckades',

View File

@@ -161,7 +161,7 @@ const tr: Translation = {
HELP_INFORMATION_4: 'Bir sorun bildirirken daha hızlı bir dönüş için sistem bilginizi indirip eklemeyi unutmayın', HELP_INFORMATION_4: 'Bir sorun bildirirken daha hızlı bir dönüş için sistem bilginizi indirip eklemeyi unutmayın',
UPLOAD: 'Yükleme', UPLOAD: 'Yükleme',
DOWNLOAD: '{{İ|i|i}}İndirme', DOWNLOAD: '{{İ|i|i}}İndirme',
INSTALL: 'Düzenlemek {0}', INSTALL: 'Düzenlemek',
ABORTED: 'iptal edildi', ABORTED: 'iptal edildi',
FAILED: 'başarısız', FAILED: 'başarısız',
SUCCESSFUL: 'başarılı', SUCCESSFUL: 'başarılı',

View File

@@ -485,79 +485,79 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/aix-ppc64@npm:0.21.5": "@esbuild/aix-ppc64@npm:0.24.0":
version: 0.21.5 version: 0.24.0
resolution: "@esbuild/aix-ppc64@npm:0.21.5" resolution: "@esbuild/aix-ppc64@npm:0.24.0"
conditions: os=aix & cpu=ppc64 conditions: os=aix & cpu=ppc64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/android-arm64@npm:0.21.5": "@esbuild/android-arm64@npm:0.24.0":
version: 0.21.5 version: 0.24.0
resolution: "@esbuild/android-arm64@npm:0.21.5" resolution: "@esbuild/android-arm64@npm:0.24.0"
conditions: os=android & cpu=arm64 conditions: os=android & cpu=arm64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/android-arm@npm:0.21.5": "@esbuild/android-arm@npm:0.24.0":
version: 0.21.5 version: 0.24.0
resolution: "@esbuild/android-arm@npm:0.21.5" resolution: "@esbuild/android-arm@npm:0.24.0"
conditions: os=android & cpu=arm conditions: os=android & cpu=arm
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/android-x64@npm:0.21.5": "@esbuild/android-x64@npm:0.24.0":
version: 0.21.5 version: 0.24.0
resolution: "@esbuild/android-x64@npm:0.21.5" resolution: "@esbuild/android-x64@npm:0.24.0"
conditions: os=android & cpu=x64 conditions: os=android & cpu=x64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/darwin-arm64@npm:0.21.5": "@esbuild/darwin-arm64@npm:0.24.0":
version: 0.21.5 version: 0.24.0
resolution: "@esbuild/darwin-arm64@npm:0.21.5" resolution: "@esbuild/darwin-arm64@npm:0.24.0"
conditions: os=darwin & cpu=arm64 conditions: os=darwin & cpu=arm64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/darwin-x64@npm:0.21.5": "@esbuild/darwin-x64@npm:0.24.0":
version: 0.21.5 version: 0.24.0
resolution: "@esbuild/darwin-x64@npm:0.21.5" resolution: "@esbuild/darwin-x64@npm:0.24.0"
conditions: os=darwin & cpu=x64 conditions: os=darwin & cpu=x64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/freebsd-arm64@npm:0.21.5": "@esbuild/freebsd-arm64@npm:0.24.0":
version: 0.21.5 version: 0.24.0
resolution: "@esbuild/freebsd-arm64@npm:0.21.5" resolution: "@esbuild/freebsd-arm64@npm:0.24.0"
conditions: os=freebsd & cpu=arm64 conditions: os=freebsd & cpu=arm64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/freebsd-x64@npm:0.21.5": "@esbuild/freebsd-x64@npm:0.24.0":
version: 0.21.5 version: 0.24.0
resolution: "@esbuild/freebsd-x64@npm:0.21.5" resolution: "@esbuild/freebsd-x64@npm:0.24.0"
conditions: os=freebsd & cpu=x64 conditions: os=freebsd & cpu=x64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/linux-arm64@npm:0.21.5": "@esbuild/linux-arm64@npm:0.24.0":
version: 0.21.5 version: 0.24.0
resolution: "@esbuild/linux-arm64@npm:0.21.5" resolution: "@esbuild/linux-arm64@npm:0.24.0"
conditions: os=linux & cpu=arm64 conditions: os=linux & cpu=arm64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/linux-arm@npm:0.21.5": "@esbuild/linux-arm@npm:0.24.0":
version: 0.21.5 version: 0.24.0
resolution: "@esbuild/linux-arm@npm:0.21.5" resolution: "@esbuild/linux-arm@npm:0.24.0"
conditions: os=linux & cpu=arm conditions: os=linux & cpu=arm
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/linux-ia32@npm:0.21.5": "@esbuild/linux-ia32@npm:0.24.0":
version: 0.21.5 version: 0.24.0
resolution: "@esbuild/linux-ia32@npm:0.21.5" resolution: "@esbuild/linux-ia32@npm:0.24.0"
conditions: os=linux & cpu=ia32 conditions: os=linux & cpu=ia32
languageName: node languageName: node
linkType: hard linkType: hard
@@ -569,86 +569,93 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/linux-loong64@npm:0.21.5": "@esbuild/linux-loong64@npm:0.24.0":
version: 0.21.5 version: 0.24.0
resolution: "@esbuild/linux-loong64@npm:0.21.5" resolution: "@esbuild/linux-loong64@npm:0.24.0"
conditions: os=linux & cpu=loong64 conditions: os=linux & cpu=loong64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/linux-mips64el@npm:0.21.5": "@esbuild/linux-mips64el@npm:0.24.0":
version: 0.21.5 version: 0.24.0
resolution: "@esbuild/linux-mips64el@npm:0.21.5" resolution: "@esbuild/linux-mips64el@npm:0.24.0"
conditions: os=linux & cpu=mips64el conditions: os=linux & cpu=mips64el
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/linux-ppc64@npm:0.21.5": "@esbuild/linux-ppc64@npm:0.24.0":
version: 0.21.5 version: 0.24.0
resolution: "@esbuild/linux-ppc64@npm:0.21.5" resolution: "@esbuild/linux-ppc64@npm:0.24.0"
conditions: os=linux & cpu=ppc64 conditions: os=linux & cpu=ppc64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/linux-riscv64@npm:0.21.5": "@esbuild/linux-riscv64@npm:0.24.0":
version: 0.21.5 version: 0.24.0
resolution: "@esbuild/linux-riscv64@npm:0.21.5" resolution: "@esbuild/linux-riscv64@npm:0.24.0"
conditions: os=linux & cpu=riscv64 conditions: os=linux & cpu=riscv64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/linux-s390x@npm:0.21.5": "@esbuild/linux-s390x@npm:0.24.0":
version: 0.21.5 version: 0.24.0
resolution: "@esbuild/linux-s390x@npm:0.21.5" resolution: "@esbuild/linux-s390x@npm:0.24.0"
conditions: os=linux & cpu=s390x conditions: os=linux & cpu=s390x
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/linux-x64@npm:0.21.5": "@esbuild/linux-x64@npm:0.24.0":
version: 0.21.5 version: 0.24.0
resolution: "@esbuild/linux-x64@npm:0.21.5" resolution: "@esbuild/linux-x64@npm:0.24.0"
conditions: os=linux & cpu=x64 conditions: os=linux & cpu=x64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/netbsd-x64@npm:0.21.5": "@esbuild/netbsd-x64@npm:0.24.0":
version: 0.21.5 version: 0.24.0
resolution: "@esbuild/netbsd-x64@npm:0.21.5" resolution: "@esbuild/netbsd-x64@npm:0.24.0"
conditions: os=netbsd & cpu=x64 conditions: os=netbsd & cpu=x64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/openbsd-x64@npm:0.21.5": "@esbuild/openbsd-arm64@npm:0.24.0":
version: 0.21.5 version: 0.24.0
resolution: "@esbuild/openbsd-x64@npm:0.21.5" resolution: "@esbuild/openbsd-arm64@npm:0.24.0"
conditions: os=openbsd & cpu=arm64
languageName: node
linkType: hard
"@esbuild/openbsd-x64@npm:0.24.0":
version: 0.24.0
resolution: "@esbuild/openbsd-x64@npm:0.24.0"
conditions: os=openbsd & cpu=x64 conditions: os=openbsd & cpu=x64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/sunos-x64@npm:0.21.5": "@esbuild/sunos-x64@npm:0.24.0":
version: 0.21.5 version: 0.24.0
resolution: "@esbuild/sunos-x64@npm:0.21.5" resolution: "@esbuild/sunos-x64@npm:0.24.0"
conditions: os=sunos & cpu=x64 conditions: os=sunos & cpu=x64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/win32-arm64@npm:0.21.5": "@esbuild/win32-arm64@npm:0.24.0":
version: 0.21.5 version: 0.24.0
resolution: "@esbuild/win32-arm64@npm:0.21.5" resolution: "@esbuild/win32-arm64@npm:0.24.0"
conditions: os=win32 & cpu=arm64 conditions: os=win32 & cpu=arm64
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/win32-ia32@npm:0.21.5": "@esbuild/win32-ia32@npm:0.24.0":
version: 0.21.5 version: 0.24.0
resolution: "@esbuild/win32-ia32@npm:0.21.5" resolution: "@esbuild/win32-ia32@npm:0.24.0"
conditions: os=win32 & cpu=ia32 conditions: os=win32 & cpu=ia32
languageName: node languageName: node
linkType: hard linkType: hard
"@esbuild/win32-x64@npm:0.21.5": "@esbuild/win32-x64@npm:0.24.0":
version: 0.21.5 version: 0.24.0
resolution: "@esbuild/win32-x64@npm:0.21.5" resolution: "@esbuild/win32-x64@npm:0.24.0"
conditions: os=win32 & cpu=x64 conditions: os=win32 & cpu=x64
languageName: node languageName: node
linkType: hard linkType: hard
@@ -1440,7 +1447,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@types/node@npm:*, @types/node@npm:^22.9.3": "@types/node@npm:*":
version: 22.9.3 version: 22.9.3
resolution: "@types/node@npm:22.9.3" resolution: "@types/node@npm:22.9.3"
dependencies: dependencies:
@@ -1449,6 +1456,15 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@types/node@npm:^22.10.0":
version: 22.10.0
resolution: "@types/node@npm:22.10.0"
dependencies:
undici-types: "npm:~6.20.0"
checksum: 10c0/efb3783b6fe74b4300c5bdd4f245f1025887d9b1d0950edae584af58a30d95cc058c10b4b3428f8300e4318468b605240c2ede8fcfb6ead2e0f05bca31e54c1b
languageName: node
linkType: hard
"@types/parse-json@npm:^4.0.0": "@types/parse-json@npm:^4.0.0":
version: 4.0.2 version: 4.0.2
resolution: "@types/parse-json@npm:4.0.2" resolution: "@types/parse-json@npm:4.0.2"
@@ -1509,15 +1525,15 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/eslint-plugin@npm:8.15.0": "@typescript-eslint/eslint-plugin@npm:8.16.0":
version: 8.15.0 version: 8.16.0
resolution: "@typescript-eslint/eslint-plugin@npm:8.15.0" resolution: "@typescript-eslint/eslint-plugin@npm:8.16.0"
dependencies: dependencies:
"@eslint-community/regexpp": "npm:^4.10.0" "@eslint-community/regexpp": "npm:^4.10.0"
"@typescript-eslint/scope-manager": "npm:8.15.0" "@typescript-eslint/scope-manager": "npm:8.16.0"
"@typescript-eslint/type-utils": "npm:8.15.0" "@typescript-eslint/type-utils": "npm:8.16.0"
"@typescript-eslint/utils": "npm:8.15.0" "@typescript-eslint/utils": "npm:8.16.0"
"@typescript-eslint/visitor-keys": "npm:8.15.0" "@typescript-eslint/visitor-keys": "npm:8.16.0"
graphemer: "npm:^1.4.0" graphemer: "npm:^1.4.0"
ignore: "npm:^5.3.1" ignore: "npm:^5.3.1"
natural-compare: "npm:^1.4.0" natural-compare: "npm:^1.4.0"
@@ -1528,44 +1544,44 @@ __metadata:
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
checksum: 10c0/90ef10cc7d37a81abec4f4a3ffdfc3a0da8e99d949e03c75437e96e8ab2e896e34b85ab64718690180a7712581031b8611c5d8e7666d6ed4d60b9ace834d58e3 checksum: 10c0/b03612b726ee5aff631cd50e05ceeb06a522e64465e4efdc134e3a27a09406b959ef7a05ec4acef1956b3674dc4fedb6d3a62ce69382f9e30c227bd4093003e5
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/parser@npm:8.15.0": "@typescript-eslint/parser@npm:8.16.0":
version: 8.15.0 version: 8.16.0
resolution: "@typescript-eslint/parser@npm:8.15.0" resolution: "@typescript-eslint/parser@npm:8.16.0"
dependencies: dependencies:
"@typescript-eslint/scope-manager": "npm:8.15.0" "@typescript-eslint/scope-manager": "npm:8.16.0"
"@typescript-eslint/types": "npm:8.15.0" "@typescript-eslint/types": "npm:8.16.0"
"@typescript-eslint/typescript-estree": "npm:8.15.0" "@typescript-eslint/typescript-estree": "npm:8.16.0"
"@typescript-eslint/visitor-keys": "npm:8.15.0" "@typescript-eslint/visitor-keys": "npm:8.16.0"
debug: "npm:^4.3.4" debug: "npm:^4.3.4"
peerDependencies: peerDependencies:
eslint: ^8.57.0 || ^9.0.0 eslint: ^8.57.0 || ^9.0.0
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
checksum: 10c0/19c25aea0dc51faa758701a5319a89950fd30494d9d645db8ced84fb60714c5e7d4b51fc4ee8ccb07ddefec88c51ee307ee7e49addd6330ee8f3e7ee9ba329fc checksum: 10c0/e49c6640a7a863a16baecfbc5b99392a4731e9c7e9c9aaae4efbc354e305485fe0f39a28bf0acfae85bc01ce37fe0cc140fd315fdaca8b18f9b5e0addff8ceae
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/scope-manager@npm:8.15.0": "@typescript-eslint/scope-manager@npm:8.16.0":
version: 8.15.0 version: 8.16.0
resolution: "@typescript-eslint/scope-manager@npm:8.15.0" resolution: "@typescript-eslint/scope-manager@npm:8.16.0"
dependencies: dependencies:
"@typescript-eslint/types": "npm:8.15.0" "@typescript-eslint/types": "npm:8.16.0"
"@typescript-eslint/visitor-keys": "npm:8.15.0" "@typescript-eslint/visitor-keys": "npm:8.16.0"
checksum: 10c0/c27dfdcea4100cc2d6fa967f857067cbc93155b55e648f9f10887a1b9372bb76cf864f7c804f3fa48d7868d9461cdef10bcea3dab7637d5337e8aa8042dc08b9 checksum: 10c0/23b7c738b83f381c6419a36e6ca951944187e3e00abb8e012bce8041880410fe498303e28bdeb0e619023a69b14cf32a5ec1f9427c5382807788cd8e52a46a6e
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/type-utils@npm:8.15.0": "@typescript-eslint/type-utils@npm:8.16.0":
version: 8.15.0 version: 8.16.0
resolution: "@typescript-eslint/type-utils@npm:8.15.0" resolution: "@typescript-eslint/type-utils@npm:8.16.0"
dependencies: dependencies:
"@typescript-eslint/typescript-estree": "npm:8.15.0" "@typescript-eslint/typescript-estree": "npm:8.16.0"
"@typescript-eslint/utils": "npm:8.15.0" "@typescript-eslint/utils": "npm:8.16.0"
debug: "npm:^4.3.4" debug: "npm:^4.3.4"
ts-api-utils: "npm:^1.3.0" ts-api-utils: "npm:^1.3.0"
peerDependencies: peerDependencies:
@@ -1573,23 +1589,23 @@ __metadata:
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
checksum: 10c0/20f09c79c83b38a962cf7eff10d47a2c01bcc0bab7bf6d762594221cd89023ef8c7aec26751c47b524f53f5c8d38bba55a282529b3df82d5f5ab4350496316f9 checksum: 10c0/24c0e815c8bdf99bf488c7528bd6a7c790e8b3b674cb7fb075663afc2ee26b48e6f4cf7c0d14bb21e2376ca62bd8525cbcb5688f36135b00b62b1d353d7235b9
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/types@npm:8.15.0": "@typescript-eslint/types@npm:8.16.0":
version: 8.15.0 version: 8.16.0
resolution: "@typescript-eslint/types@npm:8.15.0" resolution: "@typescript-eslint/types@npm:8.16.0"
checksum: 10c0/84abc6fd954aff13822a76ac49efdcb90a55c0025c20eee5d8cebcfb68faff33b79bbc711ea524e0209cecd90c5ee3a5f92babc7083c081d3a383a0710264a41 checksum: 10c0/141e257ab4060a9c0e2e14334ca14ab6be713659bfa38acd13be70a699fb5f36932a2584376b063063ab3d723b24bc703dbfb1ce57d61d7cfd7ec5bd8a975129
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/typescript-estree@npm:8.15.0": "@typescript-eslint/typescript-estree@npm:8.16.0":
version: 8.15.0 version: 8.16.0
resolution: "@typescript-eslint/typescript-estree@npm:8.15.0" resolution: "@typescript-eslint/typescript-estree@npm:8.16.0"
dependencies: dependencies:
"@typescript-eslint/types": "npm:8.15.0" "@typescript-eslint/types": "npm:8.16.0"
"@typescript-eslint/visitor-keys": "npm:8.15.0" "@typescript-eslint/visitor-keys": "npm:8.16.0"
debug: "npm:^4.3.4" debug: "npm:^4.3.4"
fast-glob: "npm:^3.3.2" fast-glob: "npm:^3.3.2"
is-glob: "npm:^4.0.3" is-glob: "npm:^4.0.3"
@@ -1599,34 +1615,34 @@ __metadata:
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
checksum: 10c0/3af5c129532db3575349571bbf64d32aeccc4f4df924ac447f5d8f6af8b387148df51965eb2c9b99991951d3dadef4f2509d7ce69bf34a2885d013c040762412 checksum: 10c0/f28fea5af4798a718b6735d1758b791a331af17386b83cb2856d89934a5d1693f7cb805e73c3b33f29140884ac8ead9931b1d7c3de10176fa18ca7a346fe10d0
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/utils@npm:8.15.0": "@typescript-eslint/utils@npm:8.16.0":
version: 8.15.0 version: 8.16.0
resolution: "@typescript-eslint/utils@npm:8.15.0" resolution: "@typescript-eslint/utils@npm:8.16.0"
dependencies: dependencies:
"@eslint-community/eslint-utils": "npm:^4.4.0" "@eslint-community/eslint-utils": "npm:^4.4.0"
"@typescript-eslint/scope-manager": "npm:8.15.0" "@typescript-eslint/scope-manager": "npm:8.16.0"
"@typescript-eslint/types": "npm:8.15.0" "@typescript-eslint/types": "npm:8.16.0"
"@typescript-eslint/typescript-estree": "npm:8.15.0" "@typescript-eslint/typescript-estree": "npm:8.16.0"
peerDependencies: peerDependencies:
eslint: ^8.57.0 || ^9.0.0 eslint: ^8.57.0 || ^9.0.0
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
checksum: 10c0/65743f51845a1f6fd2d21f66ca56182ba33e966716bdca73d30b7a67c294e47889c322de7d7b90ab0818296cd33c628e5eeeb03cec7ef2f76c47de7a453eeda2 checksum: 10c0/1e61187eef3da1ab1486d2a977d8f3b1cb8ef7fa26338500a17eb875ca42a8942ef3f2241f509eef74cf7b5620c109483afc7d83d5b0ab79b1e15920f5a49818
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/visitor-keys@npm:8.15.0": "@typescript-eslint/visitor-keys@npm:8.16.0":
version: 8.15.0 version: 8.16.0
resolution: "@typescript-eslint/visitor-keys@npm:8.15.0" resolution: "@typescript-eslint/visitor-keys@npm:8.16.0"
dependencies: dependencies:
"@typescript-eslint/types": "npm:8.15.0" "@typescript-eslint/types": "npm:8.16.0"
eslint-visitor-keys: "npm:^4.2.0" eslint-visitor-keys: "npm:^4.2.0"
checksum: 10c0/02a954c3752c4328482a884eb1da06ca8fb72ae78ef28f1d854b18f3779406ed47263af22321cf3f65a637ec7584e5f483e34a263b5c8cec60ec85aebc263574 checksum: 10c0/537df37801831aa8d91082b2adbffafd40305ed4518f0e7d3cbb17cc466d8b9ac95ac91fa232e7fe585d7c522d1564489ec80052ebb2a6ab9bbf89ef9dd9b7bc
languageName: node languageName: node
linkType: hard linkType: hard
@@ -1646,7 +1662,7 @@ __metadata:
"@table-library/react-table-library": "npm:4.1.7" "@table-library/react-table-library": "npm:4.1.7"
"@trivago/prettier-plugin-sort-imports": "npm:^4.3.0" "@trivago/prettier-plugin-sort-imports": "npm:^4.3.0"
"@types/formidable": "npm:^3" "@types/formidable": "npm:^3"
"@types/node": "npm:^22.9.3" "@types/node": "npm:^22.10.0"
"@types/react": "npm:^18.3.12" "@types/react": "npm:^18.3.12"
"@types/react-dom": "npm:^18.3.1" "@types/react-dom": "npm:^18.3.1"
alova: "npm:3.2.4" alova: "npm:3.2.4"
@@ -1658,7 +1674,7 @@ __metadata:
jwt-decode: "npm:^4.0.0" jwt-decode: "npm:^4.0.0"
mime-types: "npm:^2.1.35" mime-types: "npm:^2.1.35"
preact: "npm:^10.25.0" preact: "npm:^10.25.0"
prettier: "npm:^3.3.3" prettier: "npm:^3.4.0"
react: "npm:^18.3.1" react: "npm:^18.3.1"
react-dom: "npm:^18.3.1" react-dom: "npm:^18.3.1"
react-icons: "npm:^5.3.0" react-icons: "npm:^5.3.0"
@@ -1668,8 +1684,8 @@ __metadata:
terser: "npm:^5.36.0" terser: "npm:^5.36.0"
typesafe-i18n: "npm:^5.26.2" typesafe-i18n: "npm:^5.26.2"
typescript: "npm:^5.7.2" typescript: "npm:^5.7.2"
typescript-eslint: "npm:8.15.0" typescript-eslint: "npm:8.16.0"
vite: "npm:^5.4.11" vite: "npm:^6.0.0"
vite-plugin-imagemin: "npm:^0.6.1" vite-plugin-imagemin: "npm:^0.6.1"
vite-tsconfig-paths: "npm:^5.1.3" vite-tsconfig-paths: "npm:^5.1.3"
languageName: unknown languageName: unknown
@@ -2974,33 +2990,34 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"esbuild@npm:^0.21.3": "esbuild@npm:^0.24.0":
version: 0.21.5 version: 0.24.0
resolution: "esbuild@npm:0.21.5" resolution: "esbuild@npm:0.24.0"
dependencies: dependencies:
"@esbuild/aix-ppc64": "npm:0.21.5" "@esbuild/aix-ppc64": "npm:0.24.0"
"@esbuild/android-arm": "npm:0.21.5" "@esbuild/android-arm": "npm:0.24.0"
"@esbuild/android-arm64": "npm:0.21.5" "@esbuild/android-arm64": "npm:0.24.0"
"@esbuild/android-x64": "npm:0.21.5" "@esbuild/android-x64": "npm:0.24.0"
"@esbuild/darwin-arm64": "npm:0.21.5" "@esbuild/darwin-arm64": "npm:0.24.0"
"@esbuild/darwin-x64": "npm:0.21.5" "@esbuild/darwin-x64": "npm:0.24.0"
"@esbuild/freebsd-arm64": "npm:0.21.5" "@esbuild/freebsd-arm64": "npm:0.24.0"
"@esbuild/freebsd-x64": "npm:0.21.5" "@esbuild/freebsd-x64": "npm:0.24.0"
"@esbuild/linux-arm": "npm:0.21.5" "@esbuild/linux-arm": "npm:0.24.0"
"@esbuild/linux-arm64": "npm:0.21.5" "@esbuild/linux-arm64": "npm:0.24.0"
"@esbuild/linux-ia32": "npm:0.21.5" "@esbuild/linux-ia32": "npm:0.24.0"
"@esbuild/linux-loong64": "npm:0.21.5" "@esbuild/linux-loong64": "npm:0.24.0"
"@esbuild/linux-mips64el": "npm:0.21.5" "@esbuild/linux-mips64el": "npm:0.24.0"
"@esbuild/linux-ppc64": "npm:0.21.5" "@esbuild/linux-ppc64": "npm:0.24.0"
"@esbuild/linux-riscv64": "npm:0.21.5" "@esbuild/linux-riscv64": "npm:0.24.0"
"@esbuild/linux-s390x": "npm:0.21.5" "@esbuild/linux-s390x": "npm:0.24.0"
"@esbuild/linux-x64": "npm:0.21.5" "@esbuild/linux-x64": "npm:0.24.0"
"@esbuild/netbsd-x64": "npm:0.21.5" "@esbuild/netbsd-x64": "npm:0.24.0"
"@esbuild/openbsd-x64": "npm:0.21.5" "@esbuild/openbsd-arm64": "npm:0.24.0"
"@esbuild/sunos-x64": "npm:0.21.5" "@esbuild/openbsd-x64": "npm:0.24.0"
"@esbuild/win32-arm64": "npm:0.21.5" "@esbuild/sunos-x64": "npm:0.24.0"
"@esbuild/win32-ia32": "npm:0.21.5" "@esbuild/win32-arm64": "npm:0.24.0"
"@esbuild/win32-x64": "npm:0.21.5" "@esbuild/win32-ia32": "npm:0.24.0"
"@esbuild/win32-x64": "npm:0.24.0"
dependenciesMeta: dependenciesMeta:
"@esbuild/aix-ppc64": "@esbuild/aix-ppc64":
optional: true optional: true
@@ -3038,6 +3055,8 @@ __metadata:
optional: true optional: true
"@esbuild/netbsd-x64": "@esbuild/netbsd-x64":
optional: true optional: true
"@esbuild/openbsd-arm64":
optional: true
"@esbuild/openbsd-x64": "@esbuild/openbsd-x64":
optional: true optional: true
"@esbuild/sunos-x64": "@esbuild/sunos-x64":
@@ -3050,7 +3069,7 @@ __metadata:
optional: true optional: true
bin: bin:
esbuild: bin/esbuild esbuild: bin/esbuild
checksum: 10c0/fa08508adf683c3f399e8a014a6382a6b65542213431e26206c0720e536b31c09b50798747c2a105a4bbba1d9767b8d3615a74c2f7bf1ddf6d836cd11eb672de checksum: 10c0/9f1aadd8d64f3bff422ae78387e66e51a5e09de6935a6f987b6e4e189ed00fdc2d1bc03d2e33633b094008529c8b6e06c7ad1a9782fb09fec223bf95998c0683
languageName: node languageName: node
linkType: hard linkType: hard
@@ -5529,7 +5548,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"postcss@npm:^8.4.43": "postcss@npm:^8.4.49":
version: 8.4.49 version: 8.4.49
resolution: "postcss@npm:8.4.49" resolution: "postcss@npm:8.4.49"
dependencies: dependencies:
@@ -5568,12 +5587,12 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"prettier@npm:^3.3.3": "prettier@npm:^3.4.0":
version: 3.3.3 version: 3.4.0
resolution: "prettier@npm:3.3.3" resolution: "prettier@npm:3.4.0"
bin: bin:
prettier: bin/prettier.cjs prettier: bin/prettier.cjs
checksum: 10c0/b85828b08e7505716324e4245549b9205c0cacb25342a030ba8885aba2039a115dbcf75a0b7ca3b37bc9d101ee61fab8113fc69ca3359f2a226f1ecc07ad2e26 checksum: 10c0/00974e5053dcf04cefe8d6bdef16d6a311d834ff074e927dcb85a425c8a300113fe60dc269373c892edb58e0e57749541f2a7a91ee51cdd40ab3092587772cae
languageName: node languageName: node
linkType: hard linkType: hard
@@ -5942,7 +5961,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"rollup@npm:^4.20.0": "rollup@npm:^4.23.0":
version: 4.27.4 version: 4.27.4
resolution: "rollup@npm:4.27.4" resolution: "rollup@npm:4.27.4"
dependencies: dependencies:
@@ -6731,19 +6750,19 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"typescript-eslint@npm:8.15.0": "typescript-eslint@npm:8.16.0":
version: 8.15.0 version: 8.16.0
resolution: "typescript-eslint@npm:8.15.0" resolution: "typescript-eslint@npm:8.16.0"
dependencies: dependencies:
"@typescript-eslint/eslint-plugin": "npm:8.15.0" "@typescript-eslint/eslint-plugin": "npm:8.16.0"
"@typescript-eslint/parser": "npm:8.15.0" "@typescript-eslint/parser": "npm:8.16.0"
"@typescript-eslint/utils": "npm:8.15.0" "@typescript-eslint/utils": "npm:8.16.0"
peerDependencies: peerDependencies:
eslint: ^8.57.0 || ^9.0.0 eslint: ^8.57.0 || ^9.0.0
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
checksum: 10c0/589aebf0d0b9b79db1cd0b7c2ea08c6b5727c1db095d39077d070c332066c7d549a0eb2ef60b0d41619720c317c1955236c5c8ee6320bc7c6ae475add7223b55 checksum: 10c0/3da9401d6c2416b9d95c96a41a9423a5379d233a120cd3304e2c03f191d350ce91cf0c7e60017f7b10c93b4cc1190592702735735b771c1ce1bf68f71a9f1647
languageName: node languageName: node
linkType: hard linkType: hard
@@ -6784,6 +6803,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"undici-types@npm:~6.20.0":
version: 6.20.0
resolution: "undici-types@npm:6.20.0"
checksum: 10c0/68e659a98898d6a836a9a59e6adf14a5d799707f5ea629433e025ac90d239f75e408e2e5ff086afc3cace26f8b26ee52155293564593fbb4a2f666af57fc59bf
languageName: node
linkType: hard
"unique-filename@npm:^3.0.0": "unique-filename@npm:^3.0.0":
version: 3.0.0 version: 3.0.0
resolution: "unique-filename@npm:3.0.0" resolution: "unique-filename@npm:3.0.0"
@@ -6932,29 +6958,34 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"vite@npm:^5.4.11": "vite@npm:^6.0.0":
version: 5.4.11 version: 6.0.0
resolution: "vite@npm:5.4.11" resolution: "vite@npm:6.0.0"
dependencies: dependencies:
esbuild: "npm:^0.21.3" esbuild: "npm:^0.24.0"
fsevents: "npm:~2.3.3" fsevents: "npm:~2.3.3"
postcss: "npm:^8.4.43" postcss: "npm:^8.4.49"
rollup: "npm:^4.20.0" rollup: "npm:^4.23.0"
peerDependencies: peerDependencies:
"@types/node": ^18.0.0 || >=20.0.0 "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0
jiti: ">=1.21.0"
less: "*" less: "*"
lightningcss: ^1.21.0 lightningcss: ^1.21.0
sass: "*" sass: "*"
sass-embedded: "*" sass-embedded: "*"
stylus: "*" stylus: "*"
sugarss: "*" sugarss: "*"
terser: ^5.4.0 terser: ^5.16.0
tsx: ^4.8.1
yaml: ^2.4.2
dependenciesMeta: dependenciesMeta:
fsevents: fsevents:
optional: true optional: true
peerDependenciesMeta: peerDependenciesMeta:
"@types/node": "@types/node":
optional: true optional: true
jiti:
optional: true
less: less:
optional: true optional: true
lightningcss: lightningcss:
@@ -6969,9 +7000,13 @@ __metadata:
optional: true optional: true
terser: terser:
optional: true optional: true
tsx:
optional: true
yaml:
optional: true
bin: bin:
vite: bin/vite.js vite: bin/vite.js
checksum: 10c0/d536bb7af57dd0eca2a808f95f5ff1d7b7ffb8d86e17c6893087680a0448bd0d15e07475270c8a6de65cb5115592d037130a1dd979dc76bcef8c1dda202a1874 checksum: 10c0/2516144161c108452691ec1379aefd8f3201da8f225e628cb1cdb7b35b92d856d990cd31f1c36c0f36517346efe181ea3c096a04bc846c5b0d1416b7b7111af8
languageName: node languageName: node
linkType: hard linkType: hard

File diff suppressed because one or more lines are too long

View File

@@ -1,3 +1,3 @@
nodeLinker: node-modules nodeLinker: node-modules
yarnPath: .yarn/releases/yarn-4.5.2.cjs yarnPath: .yarn/releases/yarn-4.5.3.cjs

View File

@@ -13,7 +13,7 @@
"@trivago/prettier-plugin-sort-imports": "^4.3.0", "@trivago/prettier-plugin-sort-imports": "^4.3.0",
"formidable": "^3.5.2", "formidable": "^3.5.2",
"itty-router": "^5.0.18", "itty-router": "^5.0.18",
"prettier": "^3.3.3" "prettier": "^3.4.0"
}, },
"packageManager": "yarn@4.5.2" "packageManager": "yarn@4.5.3"
} }

View File

@@ -29,19 +29,45 @@ const headers = {
'Content-type': 'application/msgpack' 'Content-type': 'application/msgpack'
}; };
// Versions - all without the 'v' let VERSION_IS_UPGRADEABLE;
// Versions
// default - on latest stable, no upgrades
let THIS_VERSION = '3.7.0'; let THIS_VERSION = '3.7.0';
let LATEST_STABLE_VERSION = '3.7.0'; let LATEST_STABLE_VERSION = '3.7.0';
let LATEST_DEV_VERSION = '3.7.1-dev.1'; let LATEST_DEV_VERSION = '3.7.1-dev.1';
let VERSION_IS_UPGRADEABLE = false;
// for testing - scenario 1 // scenarios for testing, overriding the default
THIS_VERSION = '3.7.1-dev.1'; const version_test = 0;
switch (version_test as number) {
case 0:
default:
// use default - on latest stable, no upgrades, but can switch
VERSION_IS_UPGRADEABLE = false;
break;
case 1:
// on latest dev, no update
THIS_VERSION = '3.7.1-dev.12';
LATEST_STABLE_VERSION = '3.7.0';
LATEST_DEV_VERSION = '3.7.1-dev.12';
VERSION_IS_UPGRADEABLE = false;
break;
case 2:
// upgrade stable to latest stable
THIS_VERSION = '3.6.5';
LATEST_STABLE_VERSION = '3.7.0';
LATEST_DEV_VERSION = '3.7.1-dev.12';
VERSION_IS_UPGRADEABLE = true; VERSION_IS_UPGRADEABLE = true;
break;
// for testing - scenario 2 case 3:
// THIS_VERSION = '3.6.5'; // upgrade dev to latest dev
// VERSION_IS_UPGRADEABLE = true; THIS_VERSION = '3.7.0-dev-1';
LATEST_STABLE_VERSION = '3.7.0';
LATEST_DEV_VERSION = '3.7.1-dev.12';
VERSION_IS_UPGRADEABLE = true;
break;
}
// GLOBAL VARIABLES // GLOBAL VARIABLES
let countWifiScanPoll = 0; // wifi network scan let countWifiScanPoll = 0; // wifi network scan

View File

@@ -328,7 +328,7 @@ __metadata:
"@trivago/prettier-plugin-sort-imports": "npm:^4.3.0" "@trivago/prettier-plugin-sort-imports": "npm:^4.3.0"
formidable: "npm:^3.5.2" formidable: "npm:^3.5.2"
itty-router: "npm:^5.0.18" itty-router: "npm:^5.0.18"
prettier: "npm:^3.3.3" prettier: "npm:^3.4.0"
languageName: unknown languageName: unknown
linkType: soft linkType: soft
@@ -355,12 +355,12 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"prettier@npm:^3.3.3": "prettier@npm:^3.4.0":
version: 3.3.3 version: 3.4.0
resolution: "prettier@npm:3.3.3" resolution: "prettier@npm:3.4.0"
bin: bin:
prettier: bin/prettier.cjs prettier: bin/prettier.cjs
checksum: 10c0/b85828b08e7505716324e4245549b9205c0cacb25342a030ba8885aba2039a115dbcf75a0b7ca3b37bc9d101ee61fab8113fc69ca3359f2a226f1ecc07ad2e26 checksum: 10c0/00974e5053dcf04cefe8d6bdef16d6a311d834ff074e927dcb85a425c8a300113fe60dc269373c892edb58e0e57749541f2a7a91ee51cdd40ab3092587772cae
languageName: node languageName: node
linkType: hard linkType: hard