mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-07 16:29:51 +03:00
3
.gitignore
vendored
3
.gitignore
vendored
@@ -65,3 +65,6 @@ interface/tsconfig.tsbuildinfo
|
||||
|
||||
# python virtual environment
|
||||
venv/
|
||||
|
||||
# cspell
|
||||
words-found-verbose.txt
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
- command 'show log' that lists out the current weblog buffer, showing last messages.
|
||||
- default web log buffer to 25 lines for ESP32s with no PSRAM
|
||||
- Try and determine correct board profile if none is set
|
||||
- Auto Scroll in WebLog UI - reduced delay so incoming logs are faster
|
||||
|
||||
## Fixed
|
||||
|
||||
|
||||
13
cspell.json
Normal file
13
cspell.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"$schema": "https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json",
|
||||
"version": "0.2",
|
||||
"dictionaryDefinitions": [
|
||||
{
|
||||
"name": "project-words",
|
||||
"path": "./project-words.txt",
|
||||
"addWords": true
|
||||
}
|
||||
],
|
||||
"dictionaries": ["project-words"],
|
||||
"ignorePaths": ["node_modules", "**/venv/**", "lib/eModbus", "lib/ESPAsyncWebServer", "lib/espMqttClient", "analyse.html", "dist", "**/*.csv", "locale_translations.h", "TZ.tsx", "**/*.txt","build/**", "**/i18n/**", "/project-words.txt"]
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"name": "EMS-ESP",
|
||||
"version": "3.7",
|
||||
"description": "Build the EMS-ESP WebUI",
|
||||
"version": "3.7.0",
|
||||
"description": "EMS-ESP WebUI",
|
||||
"homepage": "https://emsesp.org",
|
||||
"author": "proddy",
|
||||
"author": "proddy, emsesp.org",
|
||||
"license": "MIT",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
@@ -24,8 +24,8 @@
|
||||
"@alova/adapter-xhr": "2.0.7",
|
||||
"@emotion/react": "^11.13.3",
|
||||
"@emotion/styled": "^11.13.0",
|
||||
"@mui/icons-material": "^6.0.2",
|
||||
"@mui/material": "^6.0.2",
|
||||
"@mui/icons-material": "^6.1.0",
|
||||
"@mui/material": "^6.1.0",
|
||||
"@table-library/react-table-library": "4.1.7",
|
||||
"alova": "3.0.16",
|
||||
"async-validator": "^4.2.5",
|
||||
@@ -43,16 +43,15 @@
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.25.2",
|
||||
"@eslint/js": "^9.10.0",
|
||||
"@preact/compat": "^17.1.2",
|
||||
"@preact/compat": "^18.3.1",
|
||||
"@preact/preset-vite": "^2.9.0",
|
||||
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
|
||||
"@types/babel__core": "^7",
|
||||
"@types/formidable": "^3",
|
||||
"@types/node": "^22.5.4",
|
||||
"@types/react": "^18.3.5",
|
||||
"@types/react-dom": "^18.3.0",
|
||||
"@types/react-router-dom": "^5.3.3",
|
||||
"concurrently": "^9.0.0",
|
||||
"concurrently": "^9.0.1",
|
||||
"eslint": "^9.10.0",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"formidable": "^3.5.1",
|
||||
@@ -64,5 +63,5 @@
|
||||
"vite-plugin-imagemin": "^0.6.1",
|
||||
"vite-tsconfig-paths": "^5.0.1"
|
||||
},
|
||||
"packageManager": "yarn@4.4.0"
|
||||
"packageManager": "yarn@4.4.1"
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ export const alovaInstance = createAlova({
|
||||
method.config.headers.Authorization =
|
||||
'Bearer ' + localStorage.getItem(ACCESS_TOKEN);
|
||||
}
|
||||
// for simualting vrey slow networks
|
||||
// for simulating vrey slow networks
|
||||
// return new Promise((resolve) => {
|
||||
// const random = 3000 + Math.random() * 2000;
|
||||
// setTimeout(resolve, Math.floor(random));
|
||||
|
||||
@@ -15,7 +15,6 @@ export const readLogSettings = () =>
|
||||
alovaInstance.Get<LogSettings>(`/rest/logSettings`);
|
||||
export const updateLogSettings = (data: LogSettings) =>
|
||||
alovaInstance.Post('/rest/logSettings', data);
|
||||
export const fetchLog = () => alovaInstance.Post('/rest/fetchLog');
|
||||
export const fetchLogES = () => alovaInstance.Get('/es/log');
|
||||
|
||||
// Get versions from github
|
||||
|
||||
@@ -143,7 +143,6 @@ const DownloadUpload = () => {
|
||||
if (!latestVersion || !latestDevVersion) {
|
||||
return '';
|
||||
}
|
||||
console.log('getBinURL', useDevVersion, latestDevVersion, latestVersion);
|
||||
const filename =
|
||||
'EMS-ESP-' +
|
||||
(useDevVersion ? latestDevVersion : latestVersion).replaceAll('.', '_') +
|
||||
|
||||
@@ -6,12 +6,7 @@ import WarningIcon from '@mui/icons-material/Warning';
|
||||
import { Box, Button, Checkbox, MenuItem, TextField, styled } from '@mui/material';
|
||||
import Grid from '@mui/material/Grid2';
|
||||
|
||||
import {
|
||||
fetchLog,
|
||||
fetchLogES,
|
||||
readLogSettings,
|
||||
updateLogSettings
|
||||
} from 'api/system';
|
||||
import { fetchLogES, readLogSettings, updateLogSettings } from 'api/system';
|
||||
|
||||
import { useRequest, useSSE } from 'alova/client';
|
||||
import {
|
||||
@@ -86,7 +81,7 @@ const SystemLog = () => {
|
||||
});
|
||||
|
||||
const [logEntries, setLogEntries] = useState<LogEntry[]>([]);
|
||||
const [lastIndex, setLastIndex] = useState<number>(0);
|
||||
const [autoscroll, setAutoscroll] = useState(true);
|
||||
|
||||
const updateFormValue = updateValueDirty(
|
||||
origData,
|
||||
@@ -95,28 +90,18 @@ const SystemLog = () => {
|
||||
updateDataValue
|
||||
);
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/unbound-method
|
||||
const { onMessage, onError } = useSSE(fetchLogES, {
|
||||
// withCredentials: true,
|
||||
useSSE(fetchLogES, {
|
||||
immediate: true,
|
||||
interceptByGlobalResponded: false
|
||||
});
|
||||
|
||||
onMessage((message: { id: number; data: string }) => {
|
||||
const rawData = message.data;
|
||||
const logentry = JSON.parse(rawData) as LogEntry;
|
||||
if (logentry.i > lastIndex) {
|
||||
setLastIndex(logentry.i);
|
||||
})
|
||||
.onMessage((message: { id: number; data: string }) => {
|
||||
const rawData = message.data;
|
||||
const logentry = JSON.parse(rawData) as LogEntry;
|
||||
setLogEntries((log) => [...log, logentry]);
|
||||
}
|
||||
});
|
||||
|
||||
onError(() => {
|
||||
toast.error('No connection to Log server');
|
||||
});
|
||||
|
||||
// called on page load to reset pointer and fetch all log entries
|
||||
useRequest(fetchLog());
|
||||
})
|
||||
.onError(() => {
|
||||
toast.error('No connection to Log service');
|
||||
});
|
||||
|
||||
const paddedLevelLabel = (level: LogLevel) => {
|
||||
const label = levelLabel(level);
|
||||
@@ -157,7 +142,7 @@ const SystemLog = () => {
|
||||
// handle scrolling
|
||||
const ref = useRef<HTMLDivElement>(null);
|
||||
useEffect(() => {
|
||||
if (logEntries.length) {
|
||||
if (logEntries.length && autoscroll) {
|
||||
ref.current?.scrollIntoView({
|
||||
behavior: 'smooth',
|
||||
block: 'end'
|
||||
@@ -173,12 +158,12 @@ const SystemLog = () => {
|
||||
return (
|
||||
<>
|
||||
<Grid container spacing={2} alignItems="center">
|
||||
<Grid size={2}>
|
||||
<Grid>
|
||||
<TextField
|
||||
name="level"
|
||||
label={LL.LOG_LEVEL()}
|
||||
value={data.level}
|
||||
fullWidth
|
||||
sx={{ width: '15ch' }}
|
||||
variant="outlined"
|
||||
onChange={updateFormValue}
|
||||
margin="normal"
|
||||
@@ -193,12 +178,12 @@ const SystemLog = () => {
|
||||
</TextField>
|
||||
</Grid>
|
||||
{data.psram && (
|
||||
<Grid size={2}>
|
||||
<Grid>
|
||||
<TextField
|
||||
name="max_messages"
|
||||
label={LL.BUFFER_SIZE()}
|
||||
value={data.max_messages}
|
||||
fullWidth
|
||||
sx={{ width: '15ch' }}
|
||||
variant="outlined"
|
||||
onChange={updateFormValue}
|
||||
margin="normal"
|
||||
@@ -222,6 +207,16 @@ const SystemLog = () => {
|
||||
}
|
||||
label={LL.COMPACT()}
|
||||
/>
|
||||
<BlockFormControlLabel
|
||||
control={
|
||||
<Checkbox
|
||||
checked={autoscroll}
|
||||
onChange={() => setAutoscroll(!autoscroll)}
|
||||
name="autoscroll"
|
||||
/>
|
||||
}
|
||||
label={LL.AUTO_SCROLL()}
|
||||
/>
|
||||
</Grid>
|
||||
<Button
|
||||
startIcon={<DownloadIcon />}
|
||||
|
||||
@@ -338,7 +338,8 @@ const de: Translation = {
|
||||
LATEST_VERSION: 'Sie verwenden die neueste Firmware-Version.',
|
||||
PLEASE_WAIT: 'Bitte warten',
|
||||
RESTARTING_PRE: 'Initialisierung',
|
||||
RESTARTING_POST: 'Vorbereitung'
|
||||
RESTARTING_POST: 'Vorbereitung',
|
||||
AUTO_SCROLL: 'Automatisches Scrollen'
|
||||
};
|
||||
|
||||
export default de;
|
||||
|
||||
@@ -177,7 +177,7 @@ const en: Translation = {
|
||||
STABLE: 'Stable',
|
||||
DEVELOPMENT: 'Development',
|
||||
RELEASE_NOTES: 'release notes',
|
||||
EMS_ESP_VER: 'Firmware Version', // TODO translate
|
||||
EMS_ESP_VER: 'Firmware Version',
|
||||
UPTIME: 'System Uptime',
|
||||
FREE_MEMORY: 'Free Memory',
|
||||
PSRAM: 'PSRAM (Size / Free)',
|
||||
@@ -186,7 +186,7 @@ const en: Translation = {
|
||||
FILESYSTEM: 'File System (Used / Free)',
|
||||
BUFFER_SIZE: 'Max Buffer Size',
|
||||
COMPACT: 'Compact',
|
||||
DOWNLOAD_SETTINGS_TEXT: 'Create a backup of your configuration and settings', // TODO translate
|
||||
DOWNLOAD_SETTINGS_TEXT: 'Create a backup of your configuration and settings',
|
||||
UPLOAD_TEXT: 'Upload a new firmware (.bin) file or a backup file (.json)',
|
||||
UPLOAD_DROP_TEXT: 'Drop file or click here',
|
||||
ERROR: 'Unexpected Error, please try again',
|
||||
@@ -338,7 +338,8 @@ const en: Translation = {
|
||||
LATEST_VERSION: 'You are using the latest firmware version.',
|
||||
PLEASE_WAIT: 'Please wait',
|
||||
RESTARTING_PRE: 'Initializing',
|
||||
RESTARTING_POST: 'Preparing'
|
||||
RESTARTING_POST: 'Preparing',
|
||||
AUTO_SCROLL: 'Auto Scroll'
|
||||
};
|
||||
|
||||
export default en;
|
||||
|
||||
@@ -338,7 +338,8 @@ const fr: Translation = {
|
||||
LATEST_VERSION: 'You are using the latest firmware version.', // TODO translate // TODO translate
|
||||
PLEASE_WAIT: 'Please wait', // TODO translate
|
||||
RESTARTING_PRE: 'Initializing', // TODO translate
|
||||
RESTARTING_POST: 'Preparing' // TODO translate
|
||||
RESTARTING_POST: 'Preparing', // TODO translate
|
||||
AUTO_SCROLL: 'Auto Scroll' // TODO translate
|
||||
};
|
||||
|
||||
export default fr;
|
||||
|
||||
@@ -338,7 +338,8 @@ const it: Translation = {
|
||||
LATEST_VERSION: 'You are using the latest firmware version.', // TODO translate
|
||||
PLEASE_WAIT: 'Please wait', // TODO translate
|
||||
RESTARTING_PRE: 'Initializing', // TODO translate
|
||||
RESTARTING_POST: 'Preparing' // TODO translate
|
||||
RESTARTING_POST: 'Preparing', // TODO translate
|
||||
AUTO_SCROLL: 'Auto Scroll' // TODO translate
|
||||
};
|
||||
|
||||
export default it;
|
||||
|
||||
@@ -338,7 +338,8 @@ const nl: Translation = {
|
||||
LATEST_VERSION: 'You are using the latest firmware version.', // TODO translate
|
||||
PLEASE_WAIT: 'Please wait', // TODO translate
|
||||
RESTARTING_PRE: 'Initializing', // TODO translate
|
||||
RESTARTING_POST: 'Preparing' // TODO translate
|
||||
RESTARTING_POST: 'Preparing', // TODO translate
|
||||
AUTO_SCROLL: 'Auto Scroll' // TODO translate
|
||||
};
|
||||
|
||||
export default nl;
|
||||
|
||||
@@ -338,7 +338,8 @@ const no: Translation = {
|
||||
LATEST_VERSION: 'You are using the latest firmware version.', // TODO translate
|
||||
PLEASE_WAIT: 'Please wait', // TODO translate
|
||||
RESTARTING_PRE: 'Initializing', // TODO translate
|
||||
RESTARTING_POST: 'Preparing' // TODO translate
|
||||
RESTARTING_POST: 'Preparing', // TODO translate
|
||||
AUTO_SCROLL: 'Auto Scroll' // TODO translate
|
||||
};
|
||||
|
||||
export default no;
|
||||
|
||||
@@ -338,7 +338,8 @@ const pl: BaseTranslation = {
|
||||
LATEST_VERSION: 'You are using the latest firmware version.', // TODO translate
|
||||
PLEASE_WAIT: 'Please wait', // TODO translate
|
||||
RESTARTING_PRE: 'Initializing', // TODO translate
|
||||
RESTARTING_POST: 'Preparing' // TODO translate
|
||||
RESTARTING_POST: 'Preparing', // TODO translate
|
||||
AUTO_SCROLL: 'Auto Scroll' // TODO translate
|
||||
};
|
||||
|
||||
export default pl;
|
||||
|
||||
@@ -71,7 +71,7 @@ const sk: Translation = {
|
||||
TX_ISSUES: 'Problémy s Tx – skontrolujte Tx režim',
|
||||
DISCONNECTED: 'Odpojené',
|
||||
EMS_SCAN: 'Naozaj chcete spustiť úplnú kontrolu zariadenia zbernice EMS?',
|
||||
DATA_TRAFFIC: 'Dátová prevádzka', // TODO Translate
|
||||
DATA_TRAFFIC: 'Dátová prevádzka',
|
||||
EMS_DEVICE: 'EMS zariadenie',
|
||||
SUCCESS: 'ÚSPEŠNÉ',
|
||||
FAIL: 'ZLÝHANIE',
|
||||
@@ -174,7 +174,7 @@ const sk: Translation = {
|
||||
FACTORY_RESET: 'Továrenské nastavenia',
|
||||
SYSTEM_FACTORY_TEXT: 'Zariadenie bolo obnovené z výroby a teraz sa reštartuje',
|
||||
SYSTEM_FACTORY_TEXT_DIALOG: 'Naozaj chcete resetovať EMS-ESP na predvolené výrobné nastavenia?',
|
||||
STABLE: 'Stabilná', // TODO translate
|
||||
STABLE: 'Stabilná',
|
||||
DEVELOPMENT: 'Vývojárska',
|
||||
RELEASE_NOTES: 'poznámky k verzii',
|
||||
EMS_ESP_VER: 'Firmware verzia',
|
||||
@@ -291,9 +291,9 @@ const sk: Translation = {
|
||||
SCHEDULE: 'Plánovač',
|
||||
TIME: 'Čas',
|
||||
TIMER: 'Časovač',
|
||||
ONCHANGE: 'Pri zmene', // TODO translate
|
||||
CONDITION: 'Podmienka', // TODO translate
|
||||
IMMEDIATE: 'Okamžite', // TODO translate
|
||||
ONCHANGE: 'Pri zmene',
|
||||
CONDITION: 'Podmienka',
|
||||
IMMEDIATE: 'Okamžite',
|
||||
SCHEDULE_UPDATED: 'Plánovanie aktualizované',
|
||||
SCHEDULE_TIMER_1: 'pri spustení',
|
||||
SCHEDULE_TIMER_2: 'každú minútu',
|
||||
@@ -315,30 +315,31 @@ const sk: Translation = {
|
||||
ALWAYS: 'Vždy',
|
||||
ACTIVITY: 'Aktivita',
|
||||
CONFIGURE: 'Konfiguracia {0}',
|
||||
SYSTEM_MEMORY: 'Systémová pamäť', // TODO translate
|
||||
APPLICATION_SETTINGS_1: 'Zmeniť nastavenia aplikácie EMS-ESP', // TODO translate
|
||||
SECURITY_1: 'Pridať, alebo odstrániť použivateľov', // TODO translate
|
||||
DOWNLOAD_UPLOAD_1: 'Stiahnúť a nahrať nastavenia a firmware', // TODO translate
|
||||
MODULES: 'Moduly', // TODO translate
|
||||
MODULES_1: 'Aktivujte alebo deaktivujte externé moduly', // TODO translate
|
||||
MODULES_UPDATED: 'Aktualizované moduly', // TODO translate
|
||||
MODULES_DESCRIPTION: 'Kliknutím na modul aktivujete alebo deaktivujete moduly knižnice EMS-ESP', // TODO translate
|
||||
MODULES_NONE: 'Neboli zistené žiadne externé moduly', // TODO translate
|
||||
RENAME: 'Premenovať', // TODO translate
|
||||
SYSTEM_MEMORY: 'Systémová pamäť',
|
||||
APPLICATION_SETTINGS_1: 'Zmeniť nastavenia aplikácie EMS-ESP',
|
||||
SECURITY_1: 'Pridať, alebo odstrániť použivateľov',
|
||||
DOWNLOAD_UPLOAD_1: 'Stiahnúť a nahrať nastavenia a firmware',
|
||||
MODULES: 'Moduly',
|
||||
MODULES_1: 'Aktivujte alebo deaktivujte externé moduly',
|
||||
MODULES_UPDATED: 'Aktualizované moduly',
|
||||
MODULES_DESCRIPTION: 'Kliknutím na modul aktivujete alebo deaktivujete moduly knižnice EMS-ESP',
|
||||
MODULES_NONE: 'Neboli zistené žiadne externé moduly',
|
||||
RENAME: 'Premenovať',
|
||||
ENABLE_MODBUS: 'Povoliť Modbus',
|
||||
VIEW_LOG: 'Zobrazte log na diagnostiku problémov', // TODO translate
|
||||
UPLOAD_DRAG: 'presuňte sem súbor alebo ho kliknutím vyberte', // TODO translate
|
||||
SERVICES: 'Služby', // TODO translate
|
||||
ALLVALUES: 'Všetky hodnoty', // TODO translate
|
||||
SPECIAL_FUNCTIONS: 'Špeciálne funkcie', // TODO translate
|
||||
WAIT_FIRMWARE: 'Firmvér sa nahráva a inštaluje', // TODO translate
|
||||
INSTALL_VERSION: 'Týmto sa nainštaluje verzia {0}. Si si istý?', // TODO translate
|
||||
SWITCH_DEV: 'prejsť na vývojovú verziu', // TODO translate
|
||||
UPGRADE_AVAILABLE: 'K dispozícii je aktualizácia firmvéru!', // TODO translate
|
||||
LATEST_VERSION: 'Používate poslednú verziu firmvéru.', // TODO translate
|
||||
PLEASE_WAIT: 'Čakajte prosím', // TODO translate
|
||||
RESTARTING_PRE: 'Prebieha inicializácia', // TODO translate
|
||||
RESTARTING_POST: 'Opätovné načítanie' // TODO translate
|
||||
VIEW_LOG: 'Zobrazte log na diagnostiku problémov',
|
||||
UPLOAD_DRAG: 'presuňte sem súbor alebo ho kliknutím vyberte',
|
||||
SERVICES: 'Služby',
|
||||
ALLVALUES: 'Všetky hodnoty',
|
||||
SPECIAL_FUNCTIONS: 'Špeciálne funkcie',
|
||||
WAIT_FIRMWARE: 'Firmvér sa nahráva a inštaluje',
|
||||
INSTALL_VERSION: 'Týmto sa nainštaluje verzia {0}. Si si istý?',
|
||||
SWITCH_DEV: 'prejsť na vývojovú verziu',
|
||||
UPGRADE_AVAILABLE: 'K dispozícii je aktualizácia firmvéru!',
|
||||
LATEST_VERSION: 'Používate poslednú verziu firmvéru.',
|
||||
PLEASE_WAIT: 'Čakajte prosím',
|
||||
RESTARTING_PRE: 'Prebieha inicializácia',
|
||||
RESTARTING_POST: 'Príprava',
|
||||
AUTO_SCROLL: 'Auto Scroll' // TODO translate
|
||||
};
|
||||
|
||||
export default sk;
|
||||
|
||||
@@ -338,7 +338,8 @@ const sv: Translation = {
|
||||
LATEST_VERSION: 'You are using the latest firmware version.', // TODO translate
|
||||
PLEASE_WAIT: 'Please wait', // TODO translate
|
||||
RESTARTING_PRE: 'Initializing', // TODO translate
|
||||
RESTARTING_POST: 'Preparing' // TODO translate
|
||||
RESTARTING_POST: 'Preparing', // TODO translate
|
||||
AUTO_SCROLL: 'Auto Scroll' // TODO translate
|
||||
};
|
||||
|
||||
export default sv;
|
||||
|
||||
@@ -338,7 +338,8 @@ const tr: Translation = {
|
||||
LATEST_VERSION: 'You are using the latest firmware version.', // TODO translate
|
||||
PLEASE_WAIT: 'Please wait', // TODO translate
|
||||
RESTARTING_PRE: 'Initializing', // TODO translate
|
||||
RESTARTING_POST: 'Preparing' // TODO translate
|
||||
RESTARTING_POST: 'Preparing', // TODO translate
|
||||
AUTO_SCROLL: 'Auto Scroll' // TODO translate
|
||||
};
|
||||
|
||||
export default tr;
|
||||
|
||||
@@ -44,9 +44,9 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"@babel/compat-data@npm:^7.25.2":
|
||||
version: 7.25.2
|
||||
resolution: "@babel/compat-data@npm:7.25.2"
|
||||
checksum: 10c0/5bf1f14d6e5f0d37c19543e99209ff4a94bb97915e1ce01e5334a144aa08cd56b6e62ece8135dac77e126723d63d4d4b96fc603a12c43b88c28f4b5e070270c5
|
||||
version: 7.25.4
|
||||
resolution: "@babel/compat-data@npm:7.25.4"
|
||||
checksum: 10c0/50d79734d584a28c69d6f5b99adfaa064d0f41609a378aef04eb06accc5b44f8520e68549eba3a082478180957b7d5783f1bfb1672e4ae8574e797ce8bae79fa
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -84,15 +84,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@babel/generator@npm:^7.23.0, @babel/generator@npm:^7.25.0":
|
||||
version: 7.25.0
|
||||
resolution: "@babel/generator@npm:7.25.0"
|
||||
"@babel/generator@npm:^7.23.0, @babel/generator@npm:^7.25.0, @babel/generator@npm:^7.25.6":
|
||||
version: 7.25.6
|
||||
resolution: "@babel/generator@npm:7.25.6"
|
||||
dependencies:
|
||||
"@babel/types": "npm:^7.25.0"
|
||||
"@babel/types": "npm:^7.25.6"
|
||||
"@jridgewell/gen-mapping": "npm:^0.3.5"
|
||||
"@jridgewell/trace-mapping": "npm:^0.3.25"
|
||||
jsesc: "npm:^2.5.1"
|
||||
checksum: 10c0/d0e2dfcdc8bdbb5dded34b705ceebf2e0bc1b06795a1530e64fb6a3ccf313c189db7f60c1616effae48114e1a25adc75855bc4496f3779a396b3377bae718ce7
|
||||
checksum: 10c0/f89282cce4ddc63654470b98086994d219407d025497f483eb03ba102086e11e2b685b27122f6ff2e1d93b5b5fa0c3a6b7e974fbf2e4a75b685041a746a4291e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -218,12 +218,12 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"@babel/helpers@npm:^7.25.0":
|
||||
version: 7.25.0
|
||||
resolution: "@babel/helpers@npm:7.25.0"
|
||||
version: 7.25.6
|
||||
resolution: "@babel/helpers@npm:7.25.6"
|
||||
dependencies:
|
||||
"@babel/template": "npm:^7.25.0"
|
||||
"@babel/types": "npm:^7.25.0"
|
||||
checksum: 10c0/b7fe007fc4194268abf70aa3810365085e290e6528dcb9fbbf7a765d43c74b6369ce0f99c5ccd2d44c413853099daa449c9a0123f0b212ac8d18643f2e8174b8
|
||||
"@babel/types": "npm:^7.25.6"
|
||||
checksum: 10c0/448c1cdabccca42fd97a252f73f1e4bcd93776dbf24044f3b4f49b756bf2ece73ee6df05177473bb74ea7456dddd18d6f481e4d96d2cc7839d078900d48c696c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -239,14 +239,14 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.5, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.3":
|
||||
version: 7.25.3
|
||||
resolution: "@babel/parser@npm:7.25.3"
|
||||
"@babel/parser@npm:^7.20.5, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.6":
|
||||
version: 7.25.6
|
||||
resolution: "@babel/parser@npm:7.25.6"
|
||||
dependencies:
|
||||
"@babel/types": "npm:^7.25.2"
|
||||
"@babel/types": "npm:^7.25.6"
|
||||
bin:
|
||||
parser: ./bin/babel-parser.js
|
||||
checksum: 10c0/874b01349aedb805d6694f867a752fdc7469778fad76aca4548d2cc6ce96087c3ba5fb917a6f8d05d2d1a74aae309b5f50f1a4dba035f5a2c9fcfe6e106d2c4e
|
||||
checksum: 10c0/f88a0e895dbb096fd37c4527ea97d12b5fc013720602580a941ac3a339698872f0c911e318c292b184c36b5fbe23b612f05aff9d24071bc847c7b1c21552c41d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -287,21 +287,12 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.7":
|
||||
version: 7.25.0
|
||||
resolution: "@babel/runtime@npm:7.25.0"
|
||||
"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.25.6, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.7":
|
||||
version: 7.25.6
|
||||
resolution: "@babel/runtime@npm:7.25.6"
|
||||
dependencies:
|
||||
regenerator-runtime: "npm:^0.14.0"
|
||||
checksum: 10c0/bd3faf246170826cef2071a94d7b47b49d532351360ecd17722d03f6713fd93a3eb3dbd9518faa778d5e8ccad7392a7a604e56bd37aaad3f3aa68d619ccd983d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@babel/runtime@npm:^7.25.0":
|
||||
version: 7.25.4
|
||||
resolution: "@babel/runtime@npm:7.25.4"
|
||||
dependencies:
|
||||
regenerator-runtime: "npm:^0.14.0"
|
||||
checksum: 10c0/33e937e685f0bfc2d40c219261e2e50d0df7381a6e7cbf56b770e0c5d77cb0c21bf4d97da566cf0164317ed7508e992082c7b6cce7aaa3b17da5794f93fbfb46
|
||||
checksum: 10c0/d6143adf5aa1ce79ed374e33fdfd74fa975055a80bc6e479672ab1eadc4e4bfd7484444e17dd063a1d180e051f3ec62b357c7a2b817e7657687b47313158c3d2
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -335,17 +326,17 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"@babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.25.2":
|
||||
version: 7.25.3
|
||||
resolution: "@babel/traverse@npm:7.25.3"
|
||||
version: 7.25.6
|
||||
resolution: "@babel/traverse@npm:7.25.6"
|
||||
dependencies:
|
||||
"@babel/code-frame": "npm:^7.24.7"
|
||||
"@babel/generator": "npm:^7.25.0"
|
||||
"@babel/parser": "npm:^7.25.3"
|
||||
"@babel/generator": "npm:^7.25.6"
|
||||
"@babel/parser": "npm:^7.25.6"
|
||||
"@babel/template": "npm:^7.25.0"
|
||||
"@babel/types": "npm:^7.25.2"
|
||||
"@babel/types": "npm:^7.25.6"
|
||||
debug: "npm:^4.3.1"
|
||||
globals: "npm:^11.1.0"
|
||||
checksum: 10c0/4c8a1966fa90b53a783a4afd2fcdaa6ab1a912e6621dca9fcc6633e80ccb9491620e88caf73b537da4e16cefd537b548c87d7087868d5b0066414dea375c0e9b
|
||||
checksum: 10c0/964304c6fa46bd705428ba380bf73177eeb481c3f26d82ea3d0661242b59e0dd4329d23886035e9ca9a4ceb565c03a76fd615109830687a27bcd350059d6377e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -359,14 +350,14 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@babel/types@npm:^7.0.0, @babel/types@npm:^7.17.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.23.0, @babel/types@npm:^7.24.7, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2":
|
||||
version: 7.25.2
|
||||
resolution: "@babel/types@npm:7.25.2"
|
||||
"@babel/types@npm:^7.17.0, @babel/types@npm:^7.23.0, @babel/types@npm:^7.24.7, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2, @babel/types@npm:^7.25.6":
|
||||
version: 7.25.6
|
||||
resolution: "@babel/types@npm:7.25.6"
|
||||
dependencies:
|
||||
"@babel/helper-string-parser": "npm:^7.24.8"
|
||||
"@babel/helper-validator-identifier": "npm:^7.24.7"
|
||||
to-fast-properties: "npm:^2.0.0"
|
||||
checksum: 10c0/e489435856be239f8cc1120c90a197e4c2865385121908e5edb7223cfdff3768cba18f489adfe0c26955d9e7bbb1fb10625bc2517505908ceb0af848989bd864
|
||||
checksum: 10c0/89d45fbee24e27a05dca2d08300a26b905bd384a480448823f6723c72d3a30327c517476389b7280ce8cb9a2c48ef8f47da7f9f6d326faf6f53fd6b68237bdc4
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -446,20 +437,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@emotion/serialize@npm:^1.2.0, @emotion/serialize@npm:^1.3.0":
|
||||
version: 1.3.0
|
||||
resolution: "@emotion/serialize@npm:1.3.0"
|
||||
dependencies:
|
||||
"@emotion/hash": "npm:^0.9.2"
|
||||
"@emotion/memoize": "npm:^0.9.0"
|
||||
"@emotion/unitless": "npm:^0.9.0"
|
||||
"@emotion/utils": "npm:^1.4.0"
|
||||
csstype: "npm:^3.0.2"
|
||||
checksum: 10c0/dd3f9041b05e79664c27188d8aad0cf726baee6da934ac31fd96c03691ce2a2e222669252c8cd623f2b0e488c7f8cfe384798153f36685d48b98340e63655813
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@emotion/serialize@npm:^1.3.1":
|
||||
"@emotion/serialize@npm:^1.2.0, @emotion/serialize@npm:^1.3.0, @emotion/serialize@npm:^1.3.1":
|
||||
version: 1.3.1
|
||||
resolution: "@emotion/serialize@npm:1.3.1"
|
||||
dependencies:
|
||||
@@ -506,13 +484,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@emotion/unitless@npm:^0.9.0":
|
||||
version: 0.9.0
|
||||
resolution: "@emotion/unitless@npm:0.9.0"
|
||||
checksum: 10c0/f907d968a49315bb654b5734edf3315e52350f77c160a63f3437f14d80610dc78fd8295e759e7339055c45bd25c74c46363235c5971aae5587f7eeb969580c4c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@emotion/use-insertion-effect-with-fallbacks@npm:^1.1.0":
|
||||
version: 1.1.0
|
||||
resolution: "@emotion/use-insertion-effect-with-fallbacks@npm:1.1.0"
|
||||
@@ -853,38 +824,38 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@mui/core-downloads-tracker@npm:^6.0.2":
|
||||
version: 6.0.2
|
||||
resolution: "@mui/core-downloads-tracker@npm:6.0.2"
|
||||
checksum: 10c0/b83b067ab7b6fe90b1616a8ced478cb030384c0942502e63d2c5580677dcaed055a5a5178130c1c3a9b6b02f4b1a1e19ce0f2e6a754c1f5724495c6458a8efd8
|
||||
"@mui/core-downloads-tracker@npm:^6.1.0":
|
||||
version: 6.1.0
|
||||
resolution: "@mui/core-downloads-tracker@npm:6.1.0"
|
||||
checksum: 10c0/9cf0470456567b51450fe1e60b53aac7fb95bdb47ba3400153d29ae3c78c737f9fd1019df24ca553a6127154b92c7ab68547981ab3539ecc9a34a6e2135aac56
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@mui/icons-material@npm:^6.0.2":
|
||||
version: 6.0.2
|
||||
resolution: "@mui/icons-material@npm:6.0.2"
|
||||
"@mui/icons-material@npm:^6.1.0":
|
||||
version: 6.1.0
|
||||
resolution: "@mui/icons-material@npm:6.1.0"
|
||||
dependencies:
|
||||
"@babel/runtime": "npm:^7.25.0"
|
||||
"@babel/runtime": "npm:^7.25.6"
|
||||
peerDependencies:
|
||||
"@mui/material": ^6.0.2
|
||||
"@mui/material": ^6.1.0
|
||||
"@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||
react: ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||
peerDependenciesMeta:
|
||||
"@types/react":
|
||||
optional: true
|
||||
checksum: 10c0/862cae6f8cb9624ca728ffbb755f29fd937a45ab9a38f4aeea053b86747eb153279666cf62ffa0fb1f2617b824e66e5badd2f3a9133f7223b230c1c987d57de7
|
||||
checksum: 10c0/4ca4cc1e39c9a09ab5d9589bb795f57e28aa99a7bd9a1715b4e86c501788a05e28db24c78eecf621698ebfc4b6fb316ea1f6257380948f8c8d36a1ea267a7703
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@mui/material@npm:^6.0.2":
|
||||
version: 6.0.2
|
||||
resolution: "@mui/material@npm:6.0.2"
|
||||
"@mui/material@npm:^6.1.0":
|
||||
version: 6.1.0
|
||||
resolution: "@mui/material@npm:6.1.0"
|
||||
dependencies:
|
||||
"@babel/runtime": "npm:^7.25.0"
|
||||
"@mui/core-downloads-tracker": "npm:^6.0.2"
|
||||
"@mui/system": "npm:^6.0.2"
|
||||
"@babel/runtime": "npm:^7.25.6"
|
||||
"@mui/core-downloads-tracker": "npm:^6.1.0"
|
||||
"@mui/system": "npm:^6.1.0"
|
||||
"@mui/types": "npm:^7.2.16"
|
||||
"@mui/utils": "npm:^6.0.2"
|
||||
"@mui/utils": "npm:^6.1.0"
|
||||
"@popperjs/core": "npm:^2.11.8"
|
||||
"@types/react-transition-group": "npm:^4.4.11"
|
||||
clsx: "npm:^2.1.1"
|
||||
@@ -895,7 +866,7 @@ __metadata:
|
||||
peerDependencies:
|
||||
"@emotion/react": ^11.5.0
|
||||
"@emotion/styled": ^11.3.0
|
||||
"@mui/material-pigment-css": ^6.0.2
|
||||
"@mui/material-pigment-css": ^6.1.0
|
||||
"@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||
react: ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||
react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||
@@ -908,16 +879,16 @@ __metadata:
|
||||
optional: true
|
||||
"@types/react":
|
||||
optional: true
|
||||
checksum: 10c0/2dc43f4fec596f4cec4428610ba6e100d4e9e48a8a16e049baa10e9b6a028f5ce90a68edf0713bd8ca70c985c68d1544ffaffb51946348e04af287e686622c9b
|
||||
checksum: 10c0/fcfd1f0ebbda77e5d1afcf6883becd52965840b61c55e3e73f18b28b67c9211ffd371055697992d886b371ca3cd8860c3e55aa22a84512b36f8bd5f4fabb43a8
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@mui/private-theming@npm:^6.0.2":
|
||||
version: 6.0.2
|
||||
resolution: "@mui/private-theming@npm:6.0.2"
|
||||
"@mui/private-theming@npm:^6.1.0":
|
||||
version: 6.1.0
|
||||
resolution: "@mui/private-theming@npm:6.1.0"
|
||||
dependencies:
|
||||
"@babel/runtime": "npm:^7.25.0"
|
||||
"@mui/utils": "npm:^6.0.2"
|
||||
"@babel/runtime": "npm:^7.25.6"
|
||||
"@mui/utils": "npm:^6.1.0"
|
||||
prop-types: "npm:^15.8.1"
|
||||
peerDependencies:
|
||||
"@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||
@@ -925,16 +896,17 @@ __metadata:
|
||||
peerDependenciesMeta:
|
||||
"@types/react":
|
||||
optional: true
|
||||
checksum: 10c0/981bef131b755256d2942f92c7ca22a1baf11ef19f76824e44751d0eca0dc0ff62361b744d46efc5746c82816415597ec5e6248307619ccd79f79d70e98938d7
|
||||
checksum: 10c0/b5ca8cd192bb2979dabb5af91faeb3873f652f4129661eee2feb3473b54a08b78140756154f1128d9b4c1a1d048d97bd186f7c353e6551428b64912dae47a549
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@mui/styled-engine@npm:^6.0.2":
|
||||
version: 6.0.2
|
||||
resolution: "@mui/styled-engine@npm:6.0.2"
|
||||
"@mui/styled-engine@npm:^6.1.0":
|
||||
version: 6.1.0
|
||||
resolution: "@mui/styled-engine@npm:6.1.0"
|
||||
dependencies:
|
||||
"@babel/runtime": "npm:^7.25.0"
|
||||
"@babel/runtime": "npm:^7.25.6"
|
||||
"@emotion/cache": "npm:^11.13.1"
|
||||
"@emotion/sheet": "npm:^1.4.0"
|
||||
csstype: "npm:^3.1.3"
|
||||
prop-types: "npm:^15.8.1"
|
||||
peerDependencies:
|
||||
@@ -946,19 +918,19 @@ __metadata:
|
||||
optional: true
|
||||
"@emotion/styled":
|
||||
optional: true
|
||||
checksum: 10c0/36eb8298805e005dec6e564c83e63313f2f654bdac61d31b99785178478f5a9673660f67796633a0beeacc3c66e4bc3b2f33ec473d2cce400dfca707c8e10b37
|
||||
checksum: 10c0/2466bb2d990ae05c29a3643d0d9687dc901e396e12b352ddf8278698c5cc1b6fa565fc38620e04e436f17f0d340cf999cf51b3beb1779f7188e4e9099a4fe5ab
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@mui/system@npm:^6.0.2":
|
||||
version: 6.0.2
|
||||
resolution: "@mui/system@npm:6.0.2"
|
||||
"@mui/system@npm:^6.1.0":
|
||||
version: 6.1.0
|
||||
resolution: "@mui/system@npm:6.1.0"
|
||||
dependencies:
|
||||
"@babel/runtime": "npm:^7.25.0"
|
||||
"@mui/private-theming": "npm:^6.0.2"
|
||||
"@mui/styled-engine": "npm:^6.0.2"
|
||||
"@babel/runtime": "npm:^7.25.6"
|
||||
"@mui/private-theming": "npm:^6.1.0"
|
||||
"@mui/styled-engine": "npm:^6.1.0"
|
||||
"@mui/types": "npm:^7.2.16"
|
||||
"@mui/utils": "npm:^6.0.2"
|
||||
"@mui/utils": "npm:^6.1.0"
|
||||
clsx: "npm:^2.1.1"
|
||||
csstype: "npm:^3.1.3"
|
||||
prop-types: "npm:^15.8.1"
|
||||
@@ -974,7 +946,7 @@ __metadata:
|
||||
optional: true
|
||||
"@types/react":
|
||||
optional: true
|
||||
checksum: 10c0/bcb77617467f2b6ad22dd7d5c384f8e1a86511065f4384d7d45d4e2ca34db383454556f59a97f44fbd82bbe38ee0f45fb25e22fb39536e7f42d99c3ee88dcdb2
|
||||
checksum: 10c0/8c545e828404532f4e2ae7b54d934ff32d3722322997415e2b5de21250b86174a8ca799fc8103e96ddab8875f866f74dfffd360633f8c49d89712ac56663899d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -990,11 +962,11 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@mui/utils@npm:^6.0.2":
|
||||
version: 6.0.2
|
||||
resolution: "@mui/utils@npm:6.0.2"
|
||||
"@mui/utils@npm:^6.1.0":
|
||||
version: 6.1.0
|
||||
resolution: "@mui/utils@npm:6.1.0"
|
||||
dependencies:
|
||||
"@babel/runtime": "npm:^7.25.0"
|
||||
"@babel/runtime": "npm:^7.25.6"
|
||||
"@mui/types": "npm:^7.2.16"
|
||||
"@types/prop-types": "npm:^15.7.12"
|
||||
clsx: "npm:^2.1.1"
|
||||
@@ -1006,7 +978,7 @@ __metadata:
|
||||
peerDependenciesMeta:
|
||||
"@types/react":
|
||||
optional: true
|
||||
checksum: 10c0/7a7d45878727bb154cd2bed4b8bbe536f24cda9431688e64a87f82dfe313e82cb948865cacc3c416588a3988d5715f3546c636e2b341c6fa0f5409bbe287a133
|
||||
checksum: 10c0/a20120b8ee2ebbc0774ab54bd92d513aefc35f4f1caafe7fe4bb7aec49389e553033cb74f4b8adc8292b84485cce7965f6570dc902b8195306a64a97cff9a8fd
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1073,12 +1045,12 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@preact/compat@npm:^17.1.2":
|
||||
version: 17.1.2
|
||||
resolution: "@preact/compat@npm:17.1.2"
|
||||
"@preact/compat@npm:^18.3.1":
|
||||
version: 18.3.1
|
||||
resolution: "@preact/compat@npm:18.3.1"
|
||||
peerDependencies:
|
||||
preact: "*"
|
||||
checksum: 10c0/b4fb246d8996222c3d090901e88fb376a014164ad81f3985786389e7559acbd81f72c829ad3ff6fcbf58346950c9f48eafd7fe993cc43ca3cd0574e90101c7e1
|
||||
checksum: 10c0/7997c4b761098c9ff6ca3850362784982a4e0b3fee847eda7c1f2e5e8211cc55a1fa1ed4e91711ac8c197a1096335b0f019fa8eeb86a9ed738c0bf6e7647ceb2
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1162,114 +1134,114 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-android-arm-eabi@npm:4.21.1":
|
||||
version: 4.21.1
|
||||
resolution: "@rollup/rollup-android-arm-eabi@npm:4.21.1"
|
||||
"@rollup/rollup-android-arm-eabi@npm:4.21.2":
|
||||
version: 4.21.2
|
||||
resolution: "@rollup/rollup-android-arm-eabi@npm:4.21.2"
|
||||
conditions: os=android & cpu=arm
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-android-arm64@npm:4.21.1":
|
||||
version: 4.21.1
|
||||
resolution: "@rollup/rollup-android-arm64@npm:4.21.1"
|
||||
"@rollup/rollup-android-arm64@npm:4.21.2":
|
||||
version: 4.21.2
|
||||
resolution: "@rollup/rollup-android-arm64@npm:4.21.2"
|
||||
conditions: os=android & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-darwin-arm64@npm:4.21.1":
|
||||
version: 4.21.1
|
||||
resolution: "@rollup/rollup-darwin-arm64@npm:4.21.1"
|
||||
"@rollup/rollup-darwin-arm64@npm:4.21.2":
|
||||
version: 4.21.2
|
||||
resolution: "@rollup/rollup-darwin-arm64@npm:4.21.2"
|
||||
conditions: os=darwin & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-darwin-x64@npm:4.21.1":
|
||||
version: 4.21.1
|
||||
resolution: "@rollup/rollup-darwin-x64@npm:4.21.1"
|
||||
"@rollup/rollup-darwin-x64@npm:4.21.2":
|
||||
version: 4.21.2
|
||||
resolution: "@rollup/rollup-darwin-x64@npm:4.21.2"
|
||||
conditions: os=darwin & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-linux-arm-gnueabihf@npm:4.21.1":
|
||||
version: 4.21.1
|
||||
resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.21.1"
|
||||
"@rollup/rollup-linux-arm-gnueabihf@npm:4.21.2":
|
||||
version: 4.21.2
|
||||
resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.21.2"
|
||||
conditions: os=linux & cpu=arm & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-linux-arm-musleabihf@npm:4.21.1":
|
||||
version: 4.21.1
|
||||
resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.21.1"
|
||||
"@rollup/rollup-linux-arm-musleabihf@npm:4.21.2":
|
||||
version: 4.21.2
|
||||
resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.21.2"
|
||||
conditions: os=linux & cpu=arm & libc=musl
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-linux-arm64-gnu@npm:4.21.1":
|
||||
version: 4.21.1
|
||||
resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.21.1"
|
||||
"@rollup/rollup-linux-arm64-gnu@npm:4.21.2":
|
||||
version: 4.21.2
|
||||
resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.21.2"
|
||||
conditions: os=linux & cpu=arm64 & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-linux-arm64-musl@npm:4.21.1":
|
||||
version: 4.21.1
|
||||
resolution: "@rollup/rollup-linux-arm64-musl@npm:4.21.1"
|
||||
"@rollup/rollup-linux-arm64-musl@npm:4.21.2":
|
||||
version: 4.21.2
|
||||
resolution: "@rollup/rollup-linux-arm64-musl@npm:4.21.2"
|
||||
conditions: os=linux & cpu=arm64 & libc=musl
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-linux-powerpc64le-gnu@npm:4.21.1":
|
||||
version: 4.21.1
|
||||
resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.21.1"
|
||||
"@rollup/rollup-linux-powerpc64le-gnu@npm:4.21.2":
|
||||
version: 4.21.2
|
||||
resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.21.2"
|
||||
conditions: os=linux & cpu=ppc64 & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-linux-riscv64-gnu@npm:4.21.1":
|
||||
version: 4.21.1
|
||||
resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.21.1"
|
||||
"@rollup/rollup-linux-riscv64-gnu@npm:4.21.2":
|
||||
version: 4.21.2
|
||||
resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.21.2"
|
||||
conditions: os=linux & cpu=riscv64 & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-linux-s390x-gnu@npm:4.21.1":
|
||||
version: 4.21.1
|
||||
resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.21.1"
|
||||
"@rollup/rollup-linux-s390x-gnu@npm:4.21.2":
|
||||
version: 4.21.2
|
||||
resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.21.2"
|
||||
conditions: os=linux & cpu=s390x & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-linux-x64-gnu@npm:4.21.1":
|
||||
version: 4.21.1
|
||||
resolution: "@rollup/rollup-linux-x64-gnu@npm:4.21.1"
|
||||
"@rollup/rollup-linux-x64-gnu@npm:4.21.2":
|
||||
version: 4.21.2
|
||||
resolution: "@rollup/rollup-linux-x64-gnu@npm:4.21.2"
|
||||
conditions: os=linux & cpu=x64 & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-linux-x64-musl@npm:4.21.1":
|
||||
version: 4.21.1
|
||||
resolution: "@rollup/rollup-linux-x64-musl@npm:4.21.1"
|
||||
"@rollup/rollup-linux-x64-musl@npm:4.21.2":
|
||||
version: 4.21.2
|
||||
resolution: "@rollup/rollup-linux-x64-musl@npm:4.21.2"
|
||||
conditions: os=linux & cpu=x64 & libc=musl
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-win32-arm64-msvc@npm:4.21.1":
|
||||
version: 4.21.1
|
||||
resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.21.1"
|
||||
"@rollup/rollup-win32-arm64-msvc@npm:4.21.2":
|
||||
version: 4.21.2
|
||||
resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.21.2"
|
||||
conditions: os=win32 & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-win32-ia32-msvc@npm:4.21.1":
|
||||
version: 4.21.1
|
||||
resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.21.1"
|
||||
"@rollup/rollup-win32-ia32-msvc@npm:4.21.2":
|
||||
version: 4.21.2
|
||||
resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.21.2"
|
||||
conditions: os=win32 & cpu=ia32
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-win32-x64-msvc@npm:4.21.1":
|
||||
version: 4.21.1
|
||||
resolution: "@rollup/rollup-win32-x64-msvc@npm:4.21.1"
|
||||
"@rollup/rollup-win32-x64-msvc@npm:4.21.2":
|
||||
version: 4.21.2
|
||||
resolution: "@rollup/rollup-win32-x64-msvc@npm:4.21.2"
|
||||
conditions: os=win32 & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
@@ -1323,47 +1295,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/babel__core@npm:^7":
|
||||
version: 7.20.5
|
||||
resolution: "@types/babel__core@npm:7.20.5"
|
||||
dependencies:
|
||||
"@babel/parser": "npm:^7.20.7"
|
||||
"@babel/types": "npm:^7.20.7"
|
||||
"@types/babel__generator": "npm:*"
|
||||
"@types/babel__template": "npm:*"
|
||||
"@types/babel__traverse": "npm:*"
|
||||
checksum: 10c0/bdee3bb69951e833a4b811b8ee9356b69a61ed5b7a23e1a081ec9249769117fa83aaaf023bb06562a038eb5845155ff663e2d5c75dd95c1d5ccc91db012868ff
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/babel__generator@npm:*":
|
||||
version: 7.6.8
|
||||
resolution: "@types/babel__generator@npm:7.6.8"
|
||||
dependencies:
|
||||
"@babel/types": "npm:^7.0.0"
|
||||
checksum: 10c0/f0ba105e7d2296bf367d6e055bb22996886c114261e2cb70bf9359556d0076c7a57239d019dee42bb063f565bade5ccb46009bce2044b2952d964bf9a454d6d2
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/babel__template@npm:*":
|
||||
version: 7.4.4
|
||||
resolution: "@types/babel__template@npm:7.4.4"
|
||||
dependencies:
|
||||
"@babel/parser": "npm:^7.1.0"
|
||||
"@babel/types": "npm:^7.0.0"
|
||||
checksum: 10c0/cc84f6c6ab1eab1427e90dd2b76ccee65ce940b778a9a67be2c8c39e1994e6f5bbc8efa309f6cea8dc6754994524cd4d2896558df76d92e7a1f46ecffee7112b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/babel__traverse@npm:*":
|
||||
version: 7.20.6
|
||||
resolution: "@types/babel__traverse@npm:7.20.6"
|
||||
dependencies:
|
||||
"@babel/types": "npm:^7.20.7"
|
||||
checksum: 10c0/7ba7db61a53e28cac955aa99af280d2600f15a8c056619c05b6fc911cbe02c61aa4f2823299221b23ce0cce00b294c0e5f618ec772aa3f247523c2e48cf7b888
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/estree@npm:1.0.5":
|
||||
version: 1.0.5
|
||||
resolution: "@types/estree@npm:1.0.5"
|
||||
@@ -1486,16 +1417,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/node@npm:*":
|
||||
version: 22.2.0
|
||||
resolution: "@types/node@npm:22.2.0"
|
||||
dependencies:
|
||||
undici-types: "npm:~6.13.0"
|
||||
checksum: 10c0/c17900b34faecfec204f72970bd658d0c217aaf739c1bf7690c969465b6b26b77a8be1cd9ba735aadbd1dd20b5c3e4f406ec33528bf7c6eec90744886c5d5608
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/node@npm:^22.5.4":
|
||||
"@types/node@npm:*, @types/node@npm:^22.5.4":
|
||||
version: 22.5.4
|
||||
resolution: "@types/node@npm:22.5.4"
|
||||
dependencies:
|
||||
@@ -1557,17 +1479,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/react@npm:*":
|
||||
version: 18.3.3
|
||||
resolution: "@types/react@npm:18.3.3"
|
||||
dependencies:
|
||||
"@types/prop-types": "npm:*"
|
||||
csstype: "npm:^3.0.2"
|
||||
checksum: 10c0/fe455f805c5da13b89964c3d68060cebd43e73ec15001a68b34634604a78140e6fc202f3f61679b9d809dde6d7a7c2cb3ed51e0fd1462557911db09879b55114
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/react@npm:^18.3.5":
|
||||
"@types/react@npm:*, @types/react@npm:^18.3.5":
|
||||
version: 18.3.5
|
||||
resolution: "@types/react@npm:18.3.5"
|
||||
dependencies:
|
||||
@@ -1720,13 +1632,12 @@ __metadata:
|
||||
"@emotion/react": "npm:^11.13.3"
|
||||
"@emotion/styled": "npm:^11.13.0"
|
||||
"@eslint/js": "npm:^9.10.0"
|
||||
"@mui/icons-material": "npm:^6.0.2"
|
||||
"@mui/material": "npm:^6.0.2"
|
||||
"@preact/compat": "npm:^17.1.2"
|
||||
"@mui/icons-material": "npm:^6.1.0"
|
||||
"@mui/material": "npm:^6.1.0"
|
||||
"@preact/compat": "npm:^18.3.1"
|
||||
"@preact/preset-vite": "npm:^2.9.0"
|
||||
"@table-library/react-table-library": "npm:4.1.7"
|
||||
"@trivago/prettier-plugin-sort-imports": "npm:^4.3.0"
|
||||
"@types/babel__core": "npm:^7"
|
||||
"@types/formidable": "npm:^3"
|
||||
"@types/node": "npm:^22.5.4"
|
||||
"@types/react": "npm:^18.3.5"
|
||||
@@ -1734,7 +1645,7 @@ __metadata:
|
||||
"@types/react-router-dom": "npm:^5.3.3"
|
||||
alova: "npm:3.0.16"
|
||||
async-validator: "npm:^4.2.5"
|
||||
concurrently: "npm:^9.0.0"
|
||||
concurrently: "npm:^9.0.1"
|
||||
eslint: "npm:^9.10.0"
|
||||
eslint-config-prettier: "npm:^9.1.0"
|
||||
formidable: "npm:^3.5.1"
|
||||
@@ -1839,9 +1750,9 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"ansi-regex@npm:^6.0.1":
|
||||
version: 6.0.1
|
||||
resolution: "ansi-regex@npm:6.0.1"
|
||||
checksum: 10c0/cbe16dbd2c6b2735d1df7976a7070dd277326434f0212f43abf6d87674095d247968209babdaad31bb00882fa68807256ba9be340eec2f1004de14ca75f52a08
|
||||
version: 6.1.0
|
||||
resolution: "ansi-regex@npm:6.1.0"
|
||||
checksum: 10c0/a91daeddd54746338478eef88af3439a7edf30f8e23196e2d6ed182da9add559c601266dbef01c2efa46a958ad6f1f8b176799657616c702b5b02e799e7fd8dc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -2187,9 +2098,9 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"caniuse-lite@npm:^1.0.30001646":
|
||||
version: 1.0.30001651
|
||||
resolution: "caniuse-lite@npm:1.0.30001651"
|
||||
checksum: 10c0/7821278952a6dbd17358e5d08083d258f092e2a530f5bc1840657cb140fbbc5ec44293bc888258c44a18a9570cde149ed05819ac8320b9710cf22f699891e6ad
|
||||
version: 1.0.30001660
|
||||
resolution: "caniuse-lite@npm:1.0.30001660"
|
||||
checksum: 10c0/d28900b56c597176d515c3175ca75c454f2d30cb2c09a44d7bdb009bb0c4d8a2557905adb77642889bbe9feb85fbfe9d974c8b8e53521fb4b50ee16ab246104e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -2340,9 +2251,9 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"concurrently@npm:^9.0.0":
|
||||
version: 9.0.0
|
||||
resolution: "concurrently@npm:9.0.0"
|
||||
"concurrently@npm:^9.0.1":
|
||||
version: 9.0.1
|
||||
resolution: "concurrently@npm:9.0.1"
|
||||
dependencies:
|
||||
chalk: "npm:^4.1.2"
|
||||
lodash: "npm:^4.17.21"
|
||||
@@ -2354,7 +2265,7 @@ __metadata:
|
||||
bin:
|
||||
conc: dist/bin/concurrently.js
|
||||
concurrently: dist/bin/concurrently.js
|
||||
checksum: 10c0/65251009f4540c25eda0d5b2f367ba8755eac83db2ce562802132160e9241c5cd755228b18c330ea29ccd5b0a033302da8a670d724e89fe462c26253e3046f2e
|
||||
checksum: 10c0/e2c3d3f3d1b1457ccd27e69f0d840ba4915d571fae4e1088498234ec1174fd547c127de0df6dbe5eb71b2df973b26a6fdc931a9e7e3658f25287ef2106bdb413
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -2534,14 +2445,14 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4":
|
||||
version: 4.3.6
|
||||
resolution: "debug@npm:4.3.6"
|
||||
version: 4.3.7
|
||||
resolution: "debug@npm:4.3.7"
|
||||
dependencies:
|
||||
ms: "npm:2.1.2"
|
||||
ms: "npm:^2.1.3"
|
||||
peerDependenciesMeta:
|
||||
supports-color:
|
||||
optional: true
|
||||
checksum: 10c0/3293416bff072389c101697d4611c402a6bacd1900ac20c0492f61a9cdd6b3b29750fc7f5e299f8058469ef60ff8fb79b86395a30374fbd2490113c1c7112285
|
||||
checksum: 10c0/1471db19c3b06d485a622d62f65947a19a23fbd0dd73f7fd3eafb697eec5360cde447fb075919987899b1a2096e85d35d4eb5a4de09a57600ac9cf7e6c8e768b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -2797,9 +2708,9 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"electron-to-chromium@npm:^1.5.4":
|
||||
version: 1.5.6
|
||||
resolution: "electron-to-chromium@npm:1.5.6"
|
||||
checksum: 10c0/1dfef4feaa9f4e5231b8b0697f1f55623eb2ffd263b50e6d4ff995a0927653997ba116640ae06786661f8d24c7b99fa6727c0796e9c60d748f473674d78ab31e
|
||||
version: 1.5.19
|
||||
resolution: "electron-to-chromium@npm:1.5.19"
|
||||
checksum: 10c0/73e25a928e041d707565fb08371b6ba5f3d7d99c78adddfd553660f28809ca22f1608ff295da3c764903a8eae890cbdd701b1b64b3e1eaeb298cb8aecbf21937
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -3167,9 +3078,9 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"escalade@npm:^3.1.1, escalade@npm:^3.1.2":
|
||||
version: 3.1.2
|
||||
resolution: "escalade@npm:3.1.2"
|
||||
checksum: 10c0/6b4adafecd0682f3aa1cd1106b8fff30e492c7015b178bc81b2d2f75106dabea6c6d6e8508fc491bd58e597c74abb0e8e2368f943ecb9393d4162e3c2f3cf287
|
||||
version: 3.2.0
|
||||
resolution: "escalade@npm:3.2.0"
|
||||
checksum: 10c0/ced4dd3a78e15897ed3be74e635110bbf3b08877b0a41be50dcb325ee0e0b5f65fc2d50e9845194d7c4633f327e2e1c6cce00a71b617c5673df0374201d67f65
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -3468,13 +3379,13 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"fast-xml-parser@npm:^4.1.3":
|
||||
version: 4.4.1
|
||||
resolution: "fast-xml-parser@npm:4.4.1"
|
||||
version: 4.5.0
|
||||
resolution: "fast-xml-parser@npm:4.5.0"
|
||||
dependencies:
|
||||
strnum: "npm:^1.0.5"
|
||||
bin:
|
||||
fxparser: src/cli/cli.js
|
||||
checksum: 10c0/7f334841fe41bfb0bf5d920904ccad09cefc4b5e61eaf4c225bf1e1bb69ee77ef2147d8942f783ee8249e154d1ca8a858e10bda78a5d78b8bed3f48dcee9bf33
|
||||
checksum: 10c0/71d206c9e137f5c26af88d27dde0108068a5d074401901d643c500c36e95dfd828333a98bda020846c41f5b9b364e2b0e9be5b19b0bdcab5cf31559c07b80a95
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -4134,9 +4045,9 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"ignore@npm:^5.1.1, ignore@npm:^5.2.0, ignore@npm:^5.3.1":
|
||||
version: 5.3.1
|
||||
resolution: "ignore@npm:5.3.1"
|
||||
checksum: 10c0/703f7f45ffb2a27fb2c5a8db0c32e7dee66b33a225d28e8db4e1be6474795f606686a6e3bcc50e1aa12f2042db4c9d4a7d60af3250511de74620fbed052ea4cd
|
||||
version: 5.3.2
|
||||
resolution: "ignore@npm:5.3.2"
|
||||
checksum: 10c0/f9f652c957983634ded1e7f02da3b559a0d4cc210fca3792cb67f1b153623c9c42efdc1c4121af171e295444459fc4a9201101fb041b1104a3c000bccb188337
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -4325,11 +4236,11 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"is-core-module@npm:^2.13.0":
|
||||
version: 2.15.0
|
||||
resolution: "is-core-module@npm:2.15.0"
|
||||
version: 2.15.1
|
||||
resolution: "is-core-module@npm:2.15.1"
|
||||
dependencies:
|
||||
hasown: "npm:^2.0.2"
|
||||
checksum: 10c0/da161f3d9906f459486da65609b2f1a2dfdc60887c689c234d04e88a062cb7920fa5be5fb7ab08dc43b732929653c4135ef05bf77888ae2a9040ce76815eb7b1
|
||||
checksum: 10c0/53432f10c69c40bfd2fa8914133a68709ff9498c86c3bf5fca3cdf3145a56fd2168cbf4a43b29843a6202a120a5f9c5ffba0a4322e1e3441739bc0b641682612
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -4944,12 +4855,12 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"micromatch@npm:^4.0.4":
|
||||
version: 4.0.7
|
||||
resolution: "micromatch@npm:4.0.7"
|
||||
version: 4.0.8
|
||||
resolution: "micromatch@npm:4.0.8"
|
||||
dependencies:
|
||||
braces: "npm:^3.0.3"
|
||||
picomatch: "npm:^2.3.1"
|
||||
checksum: 10c0/58fa99bc5265edec206e9163a1d2cec5fabc46a5b473c45f4a700adce88c2520456ae35f2b301e4410fb3afb27e9521fb2813f6fc96be0a48a89430e0916a772
|
||||
checksum: 10c0/166fa6eb926b9553f32ef81f5f531d27b4ce7da60e5baf8c021d043b27a388fb95e46a8038d5045877881e673f8134122b59624d5cecbd16eb50a42e7a6b5ca8
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -5120,10 +5031,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ms@npm:2.1.2":
|
||||
version: 2.1.2
|
||||
resolution: "ms@npm:2.1.2"
|
||||
checksum: 10c0/a437714e2f90dbf881b5191d35a6db792efbca5badf112f87b9e1c712aace4b4b9b742dd6537f3edf90fd6f684de897cec230abde57e87883766712ddda297cc
|
||||
"ms@npm:^2.1.3":
|
||||
version: 2.1.3
|
||||
resolution: "ms@npm:2.1.3"
|
||||
checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -5583,9 +5494,9 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1":
|
||||
version: 1.0.1
|
||||
resolution: "picocolors@npm:1.0.1"
|
||||
checksum: 10c0/c63cdad2bf812ef0d66c8db29583802355d4ca67b9285d846f390cc15c2f6ccb94e8cb7eb6a6e97fc5990a6d3ad4ae42d86c84d3146e667c739a4234ed50d400
|
||||
version: 1.1.0
|
||||
resolution: "picocolors@npm:1.1.0"
|
||||
checksum: 10c0/86946f6032148801ef09c051c6fb13b5cf942eaf147e30ea79edb91dd32d700934edebe782a1078ff859fb2b816792e97ef4dab03d7f0b804f6b01a0df35e023
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -5647,13 +5558,13 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"postcss@npm:^8.4.43":
|
||||
version: 8.4.44
|
||||
resolution: "postcss@npm:8.4.44"
|
||||
version: 8.4.45
|
||||
resolution: "postcss@npm:8.4.45"
|
||||
dependencies:
|
||||
nanoid: "npm:^3.3.7"
|
||||
picocolors: "npm:^1.0.1"
|
||||
source-map-js: "npm:^1.2.0"
|
||||
checksum: 10c0/53c33338261a3d4f4198f8893e9dfe8b828d8d9186142ee85f02d228f04245c5bbe31239411a357a556ad20ed96f28db24d0921d63edc428fdc9133289371a1d
|
||||
checksum: 10c0/ad6f8b9b1157d678560373696109745ab97a947d449f8a997acac41c7f1e4c0f3ca4b092d6df1387f430f2c9a319987b1780dbdc27e35800a88cde9b606c1e8f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -5744,12 +5655,12 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"pump@npm:^3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "pump@npm:3.0.0"
|
||||
version: 3.0.2
|
||||
resolution: "pump@npm:3.0.2"
|
||||
dependencies:
|
||||
end-of-stream: "npm:^1.1.0"
|
||||
once: "npm:^1.3.1"
|
||||
checksum: 10c0/bbdeda4f747cdf47db97428f3a135728669e56a0ae5f354a9ac5b74556556f5446a46f720a8f14ca2ece5be9b4d5d23c346db02b555f46739934cc6c093a5478
|
||||
checksum: 10c0/5ad655cb2a7738b4bcf6406b24ad0970d680649d996b55ad20d1be8e0c02394034e4c45ff7cd105d87f1e9b96a0e3d06fd28e11fae8875da26e7f7a8e2c9726f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -6066,25 +5977,25 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"rollup@npm:^4.20.0":
|
||||
version: 4.21.1
|
||||
resolution: "rollup@npm:4.21.1"
|
||||
version: 4.21.2
|
||||
resolution: "rollup@npm:4.21.2"
|
||||
dependencies:
|
||||
"@rollup/rollup-android-arm-eabi": "npm:4.21.1"
|
||||
"@rollup/rollup-android-arm64": "npm:4.21.1"
|
||||
"@rollup/rollup-darwin-arm64": "npm:4.21.1"
|
||||
"@rollup/rollup-darwin-x64": "npm:4.21.1"
|
||||
"@rollup/rollup-linux-arm-gnueabihf": "npm:4.21.1"
|
||||
"@rollup/rollup-linux-arm-musleabihf": "npm:4.21.1"
|
||||
"@rollup/rollup-linux-arm64-gnu": "npm:4.21.1"
|
||||
"@rollup/rollup-linux-arm64-musl": "npm:4.21.1"
|
||||
"@rollup/rollup-linux-powerpc64le-gnu": "npm:4.21.1"
|
||||
"@rollup/rollup-linux-riscv64-gnu": "npm:4.21.1"
|
||||
"@rollup/rollup-linux-s390x-gnu": "npm:4.21.1"
|
||||
"@rollup/rollup-linux-x64-gnu": "npm:4.21.1"
|
||||
"@rollup/rollup-linux-x64-musl": "npm:4.21.1"
|
||||
"@rollup/rollup-win32-arm64-msvc": "npm:4.21.1"
|
||||
"@rollup/rollup-win32-ia32-msvc": "npm:4.21.1"
|
||||
"@rollup/rollup-win32-x64-msvc": "npm:4.21.1"
|
||||
"@rollup/rollup-android-arm-eabi": "npm:4.21.2"
|
||||
"@rollup/rollup-android-arm64": "npm:4.21.2"
|
||||
"@rollup/rollup-darwin-arm64": "npm:4.21.2"
|
||||
"@rollup/rollup-darwin-x64": "npm:4.21.2"
|
||||
"@rollup/rollup-linux-arm-gnueabihf": "npm:4.21.2"
|
||||
"@rollup/rollup-linux-arm-musleabihf": "npm:4.21.2"
|
||||
"@rollup/rollup-linux-arm64-gnu": "npm:4.21.2"
|
||||
"@rollup/rollup-linux-arm64-musl": "npm:4.21.2"
|
||||
"@rollup/rollup-linux-powerpc64le-gnu": "npm:4.21.2"
|
||||
"@rollup/rollup-linux-riscv64-gnu": "npm:4.21.2"
|
||||
"@rollup/rollup-linux-s390x-gnu": "npm:4.21.2"
|
||||
"@rollup/rollup-linux-x64-gnu": "npm:4.21.2"
|
||||
"@rollup/rollup-linux-x64-musl": "npm:4.21.2"
|
||||
"@rollup/rollup-win32-arm64-msvc": "npm:4.21.2"
|
||||
"@rollup/rollup-win32-ia32-msvc": "npm:4.21.2"
|
||||
"@rollup/rollup-win32-x64-msvc": "npm:4.21.2"
|
||||
"@types/estree": "npm:1.0.5"
|
||||
fsevents: "npm:~2.3.2"
|
||||
dependenciesMeta:
|
||||
@@ -6124,7 +6035,7 @@ __metadata:
|
||||
optional: true
|
||||
bin:
|
||||
rollup: dist/bin/rollup
|
||||
checksum: 10c0/e64b6adabadc3e18544c68e9704744c333b38a68ba803c49b5344a015c5865bf35a72669ba121ba26869fa306f193884e07319ccfc570c08fd8f9e72c9949d4d
|
||||
checksum: 10c0/c9d97f7a21cde110371b2e890a31a996fee09b81e639e79372b962a9638ae653d2d24186b94632fc5dfab8a0582e1d0639dfe34b8b75051facd86915a9585a5f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -6347,9 +6258,9 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"source-map-js@npm:^1.2.0":
|
||||
version: 1.2.0
|
||||
resolution: "source-map-js@npm:1.2.0"
|
||||
checksum: 10c0/7e5f896ac10a3a50fe2898e5009c58ff0dc102dcb056ed27a354623a0ece8954d4b2649e1a1b2b52ef2e161d26f8859c7710350930751640e71e374fe2d321a4
|
||||
version: 1.2.1
|
||||
resolution: "source-map-js@npm:1.2.1"
|
||||
checksum: 10c0/7bda1fc4c197e3c6ff17de1b8b2c20e60af81b63a52cb32ec5a5d67a20a7d42651e2cb34ebe93833c5a2a084377e17455854fee3e21e7925c64a51b6a52b0faf
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -6412,9 +6323,9 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"spdx-license-ids@npm:^3.0.0":
|
||||
version: 3.0.18
|
||||
resolution: "spdx-license-ids@npm:3.0.18"
|
||||
checksum: 10c0/c64ba03d4727191c8fdbd001f137d6ab51386c350d5516be8a4576c2e74044cb27bc8a758f6a04809da986cc0b14213f069b04de72caccecbc9f733753ccde32
|
||||
version: 3.0.20
|
||||
resolution: "spdx-license-ids@npm:3.0.20"
|
||||
checksum: 10c0/bdff7534fad6ef59be49becda1edc3fb7f5b3d6f296a715516ab9d972b8ad59af2c34b2003e01db8970d4c673d185ff696ba74c6b61d3bf327e2b3eac22c297c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -6794,8 +6705,8 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"tsconfck@npm:^3.0.3":
|
||||
version: 3.1.1
|
||||
resolution: "tsconfck@npm:3.1.1"
|
||||
version: 3.1.3
|
||||
resolution: "tsconfck@npm:3.1.3"
|
||||
peerDependencies:
|
||||
typescript: ^5.0.0
|
||||
peerDependenciesMeta:
|
||||
@@ -6803,14 +6714,14 @@ __metadata:
|
||||
optional: true
|
||||
bin:
|
||||
tsconfck: bin/tsconfck.js
|
||||
checksum: 10c0/e133eb308ba37e8db8dbac1905bddaaf4a62f0e01aa88143e19867e274a877b86b35cf69c9a0172ca3e7d1a4bb32400381ac7f7a1429e34250a8d7ae55aee3e7
|
||||
checksum: 10c0/64f7a8ed0a6d36b0902dfc0075e791d2242f7634644f124343ec0dec4f3f70092f929c5a9f59496d51883aa81bb1e595deb92a219593575d2e75b849064713d1
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"tslib@npm:^2.1.0":
|
||||
version: 2.6.3
|
||||
resolution: "tslib@npm:2.6.3"
|
||||
checksum: 10c0/2598aef53d9dbe711af75522464b2104724d6467b26a60f2bdac8297d2b5f1f6b86a71f61717384aa8fd897240467aaa7bcc36a0700a0faf751293d1331db39a
|
||||
version: 2.7.0
|
||||
resolution: "tslib@npm:2.7.0"
|
||||
checksum: 10c0/469e1d5bf1af585742128827000711efa61010b699cb040ab1800bcd3ccdd37f63ec30642c9e07c4439c1db6e46345582614275daca3e0f4abae29b0083f04a6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -6876,11 +6787,11 @@ __metadata:
|
||||
|
||||
"typescript@patch:typescript@npm%3A^5.6.2#optional!builtin<compat/typescript>":
|
||||
version: 5.6.2
|
||||
resolution: "typescript@patch:typescript@npm%3A5.6.2#optional!builtin<compat/typescript>::version=5.6.2&hash=74658d"
|
||||
resolution: "typescript@patch:typescript@npm%3A5.6.2#optional!builtin<compat/typescript>::version=5.6.2&hash=8c6c40"
|
||||
bin:
|
||||
tsc: bin/tsc
|
||||
tsserver: bin/tsserver
|
||||
checksum: 10c0/e6c1662e4852e22fe4bbdca471dca3e3edc74f6f1df043135c44a18a7902037023ccb0abdfb754595ca9028df8920f2f8492c00fc3cbb4309079aae8b7de71cd
|
||||
checksum: 10c0/94eb47e130d3edd964b76da85975601dcb3604b0c848a36f63ac448d0104e93819d94c8bdf6b07c00120f2ce9c05256b8b6092d23cf5cf1c6fa911159e4d572f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -6894,17 +6805,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"undici-types@npm:~6.13.0":
|
||||
version: 6.13.0
|
||||
resolution: "undici-types@npm:6.13.0"
|
||||
checksum: 10c0/2de55181f569c77a4f08063f8bf2722fcbb6ea312a26a9e927bd1f5ea5cf3a281c5ddf23155061db083e0a25838f54813543ff13b0ac34d230d5c1205ead66c1
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"undici-types@npm:~6.19.2":
|
||||
version: 6.19.6
|
||||
resolution: "undici-types@npm:6.19.6"
|
||||
checksum: 10c0/9b2264c5700e7169c6c62c643aac56cd8984c5fd7e18ed31ff11780260e137f6340dee8317a2e6e0ae3c49f5e5ef6fa577ea07193cbaa535265cba76a267cae9
|
||||
version: 6.19.8
|
||||
resolution: "undici-types@npm:6.19.8"
|
||||
checksum: 10c0/078afa5990fba110f6824823ace86073b4638f1d5112ee26e790155f481f2a868cc3e0615505b6f4282bdf74a3d8caad715fd809e870c2bb0704e3ea6082f344
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
||||
@@ -21,24 +21,24 @@
|
||||
#include "AsyncEventSource.h"
|
||||
|
||||
static String generateEventMessage(const char *message, const char *event, uint32_t id, uint32_t reconnect){
|
||||
String ev;
|
||||
String ev = "";
|
||||
|
||||
if(reconnect){
|
||||
ev += F("retry: ");
|
||||
ev += reconnect;
|
||||
ev += F("\r\n");
|
||||
ev += "retry: ";
|
||||
ev += String(reconnect);
|
||||
ev += "\r\n";
|
||||
}
|
||||
|
||||
if(id){
|
||||
ev += F("id: ");
|
||||
ev += "id: ";
|
||||
ev += String(id);
|
||||
ev += F("\r\n");
|
||||
ev += "\r\n";
|
||||
}
|
||||
|
||||
if(event != NULL){
|
||||
ev += F("event: ");
|
||||
ev += "event: ";
|
||||
ev += String(event);
|
||||
ev += F("\r\n");
|
||||
ev += "\r\n";
|
||||
}
|
||||
|
||||
if(message != NULL){
|
||||
@@ -54,9 +54,9 @@ static String generateEventMessage(const char *message, const char *event, uint3
|
||||
if(ldata != NULL){
|
||||
memcpy(ldata, lineStart, llen);
|
||||
ldata[llen] = 0;
|
||||
ev += F("data: ");
|
||||
ev += "data: ";
|
||||
ev += ldata;
|
||||
ev += F("\r\n\r\n");
|
||||
ev += "\r\n\r\n";
|
||||
free(ldata);
|
||||
}
|
||||
lineStart = (char *)message + messageLen;
|
||||
@@ -89,14 +89,14 @@ static String generateEventMessage(const char *message, const char *event, uint3
|
||||
if(ldata != NULL){
|
||||
memcpy(ldata, lineStart, llen);
|
||||
ldata[llen] = 0;
|
||||
ev += F("data: ");
|
||||
ev += "data: ";
|
||||
ev += ldata;
|
||||
ev += F("\r\n");
|
||||
ev += "\r\n";
|
||||
free(ldata);
|
||||
}
|
||||
lineStart = nextLine;
|
||||
if(lineStart == ((char *)message + messageLen))
|
||||
ev += F("\r\n");
|
||||
ev += "\r\n";
|
||||
}
|
||||
} while(lineStart < ((char *)message + messageLen));
|
||||
}
|
||||
@@ -123,8 +123,7 @@ AsyncEventSourceMessage::~AsyncEventSourceMessage() {
|
||||
free(_data);
|
||||
}
|
||||
|
||||
size_t AsyncEventSourceMessage::ack(size_t len, uint32_t time) {
|
||||
(void)time;
|
||||
size_t AsyncEventSourceMessage::ack(size_t len) {
|
||||
// If the whole message is now acked...
|
||||
if(_acked + len > _len){
|
||||
// Return the number of extra bytes acked (they will be carried on to the next message)
|
||||
@@ -137,17 +136,22 @@ size_t AsyncEventSourceMessage::ack(size_t len, uint32_t time) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// This could also return void as the return value is not used.
|
||||
// Leaving as-is for compatibility...
|
||||
size_t AsyncEventSourceMessage::write_buffer(AsyncClient *client) {
|
||||
if (!client->canSend())
|
||||
return 0;
|
||||
const size_t len = _len - _sent;
|
||||
if(client->space() < len){
|
||||
return 0;
|
||||
}
|
||||
size_t sent = client->add((const char *)_data, len);
|
||||
_sent += sent;
|
||||
return sent;
|
||||
}
|
||||
|
||||
size_t AsyncEventSourceMessage::send(AsyncClient *client) {
|
||||
if (_sent >= _len) {
|
||||
return 0;
|
||||
}
|
||||
const size_t len_to_send = _len - _sent;
|
||||
auto position = reinterpret_cast<const char*>(_data + _sent);
|
||||
const size_t sent_now = client->write(position, len_to_send);
|
||||
_sent += sent_now;
|
||||
return sent_now;
|
||||
size_t sent = write_buffer(client);
|
||||
client->send();
|
||||
return sent;
|
||||
}
|
||||
|
||||
// Client
|
||||
@@ -158,8 +162,8 @@ AsyncEventSourceClient::AsyncEventSourceClient(AsyncWebServerRequest *request, A
|
||||
_client = request->client();
|
||||
_server = server;
|
||||
_lastId = 0;
|
||||
if(request->hasHeader(F("Last-Event-ID")))
|
||||
_lastId = atoi(request->getHeader(F("Last-Event-ID"))->value().c_str());
|
||||
if(request->hasHeader("Last-Event-ID"))
|
||||
_lastId = atoi(request->getHeader("Last-Event-ID")->value().c_str());
|
||||
|
||||
_client->setRxTimeout(0);
|
||||
_client->onError(NULL, NULL);
|
||||
@@ -171,12 +175,12 @@ AsyncEventSourceClient::AsyncEventSourceClient(AsyncWebServerRequest *request, A
|
||||
|
||||
_server->_addClient(this);
|
||||
delete request;
|
||||
|
||||
_client->setNoDelay(true);
|
||||
}
|
||||
|
||||
AsyncEventSourceClient::~AsyncEventSourceClient(){
|
||||
_lockmq.lock();
|
||||
_messageQueue.free();
|
||||
_lockmq.unlock();
|
||||
_messageQueue.free();
|
||||
close();
|
||||
}
|
||||
|
||||
@@ -187,41 +191,28 @@ void AsyncEventSourceClient::_queueMessage(AsyncEventSourceMessage *dataMessage)
|
||||
delete dataMessage;
|
||||
return;
|
||||
}
|
||||
//length() is not thread-safe, thus acquiring the lock before this call..
|
||||
_lockmq.lock();
|
||||
|
||||
if(_messageQueue.length() >= SSE_MAX_QUEUED_MESSAGES){
|
||||
// ets_printf(String(F("ERROR: Too many messages queued\n")).c_str());
|
||||
ets_printf("AsyncEventSourceClient: ERROR: Queue is full, communications too slow, dropping event");
|
||||
delete dataMessage;
|
||||
} else {
|
||||
_messageQueue.add(dataMessage);
|
||||
// runqueue trigger when new messages added
|
||||
if(_client->canSend()) {
|
||||
_runQueue();
|
||||
}
|
||||
_messageQueue.add(dataMessage);
|
||||
}
|
||||
_lockmq.unlock();
|
||||
if(_client->canSend())
|
||||
_runQueue();
|
||||
}
|
||||
|
||||
void AsyncEventSourceClient::_onAck(size_t len, uint32_t time){
|
||||
// Same here, acquiring the lock early
|
||||
_lockmq.lock();
|
||||
while(len && !_messageQueue.isEmpty()){
|
||||
len = _messageQueue.front()->ack(len, time);
|
||||
if(_messageQueue.front()->finished())
|
||||
_messageQueue.remove(_messageQueue.front());
|
||||
}
|
||||
_runQueue();
|
||||
_lockmq.unlock();
|
||||
}
|
||||
|
||||
void AsyncEventSourceClient::_onPoll(){
|
||||
_lockmq.lock();
|
||||
if(!_messageQueue.isEmpty()){
|
||||
_runQueue();
|
||||
}
|
||||
_lockmq.unlock();
|
||||
}
|
||||
|
||||
|
||||
void AsyncEventSourceClient::_onTimeout(uint32_t time __attribute__((unused))){
|
||||
_client->close(true);
|
||||
}
|
||||
@@ -245,24 +236,52 @@ void AsyncEventSourceClient::send(const char *message, const char *event, uint32
|
||||
_queueMessage(new AsyncEventSourceMessage(ev.c_str(), ev.length()));
|
||||
}
|
||||
|
||||
size_t AsyncEventSourceClient::packetsWaiting() const {
|
||||
size_t len;
|
||||
_lockmq.lock();
|
||||
len = _messageQueue.length();
|
||||
_lockmq.unlock();
|
||||
return len;
|
||||
}
|
||||
void AsyncEventSourceClient::_runQueue(){
|
||||
#if defined(ESP32)
|
||||
if(!this->_messageQueue_mutex.try_lock()) {
|
||||
return;
|
||||
}
|
||||
#else
|
||||
if(this->_messageQueue_processing){
|
||||
return;
|
||||
}
|
||||
this->_messageQueue_processing = true;
|
||||
#endif // ESP32
|
||||
|
||||
void AsyncEventSourceClient::_runQueue() {
|
||||
// Calls to this private method now already protected by _lockmq acquisition
|
||||
// so no extra call of _lockmq.lock() here..
|
||||
for (auto i = _messageQueue.begin(); i != _messageQueue.end(); ++i) {
|
||||
// If it crashes here, iterator (i) has been invalidated as _messageQueue
|
||||
// has been changed... (UL 2020-11-15: Not supposed to happen any more ;-) )
|
||||
if (!(*i)->sent()) {
|
||||
(*i)->send(_client);
|
||||
size_t total_bytes_written = 0;
|
||||
for(auto i = _messageQueue.begin(); i != _messageQueue.end(); ++i)
|
||||
{
|
||||
if(!(*i)->sent()) {
|
||||
size_t bytes_written = (*i)->write_buffer(_client);
|
||||
total_bytes_written += bytes_written;
|
||||
if(bytes_written == 0)
|
||||
break;
|
||||
// todo: there is a further optimization to write a partial event to squeeze the last few bytes into the outgoing tcp send buffer, in
|
||||
// fact all of this code is already set up to do so, it's only write_buffer that needs to be updated to allow it instead of
|
||||
// returning zero when the full event won't fit into what's left of the buffer
|
||||
// todo: windows is taking 40-50ms to send an ack back while it waits for more data which won't come since this code must wait for ack first
|
||||
// due to system resource limitations - if the dashboard javascript just sends a single byte back per event received (which this
|
||||
// code would of course throw away as meaningless) then windows (or whatever other host runs the webbrower) will piggyback an ack
|
||||
// onto that outgoing packet for us, reducing roundtrip ack latency and potentially as much as trippling throughput again
|
||||
// (measured: ESP-01: 20ms to send another packet after ack received, windows: 40-50ms to ack after receiving a packet)
|
||||
}
|
||||
}
|
||||
if(total_bytes_written > 0)
|
||||
_client->send();
|
||||
|
||||
size_t len = total_bytes_written;
|
||||
while(len && !_messageQueue.isEmpty()){
|
||||
len = _messageQueue.front()->ack(len);
|
||||
if(_messageQueue.front()->finished()){
|
||||
_messageQueue.remove(_messageQueue.front());
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(ESP32)
|
||||
this->_messageQueue_mutex.unlock();
|
||||
#else
|
||||
this->_messageQueue_processing = false;
|
||||
#endif // ESP32
|
||||
}
|
||||
|
||||
|
||||
@@ -282,10 +301,6 @@ void AsyncEventSource::onConnect(ArEventHandlerFunction cb){
|
||||
_connectcb = cb;
|
||||
}
|
||||
|
||||
void AsyncEventSource::authorizeConnect(ArAuthorizeConnectHandler cb){
|
||||
_authorizeConnectHandler = cb;
|
||||
}
|
||||
|
||||
void AsyncEventSource::_addClient(AsyncEventSourceClient * client){
|
||||
/*char * temp = (char *)malloc(2054);
|
||||
if(temp != NULL){
|
||||
@@ -299,22 +314,17 @@ void AsyncEventSource::_addClient(AsyncEventSourceClient * client){
|
||||
client->write((const char *)temp, 2053);
|
||||
free(temp);
|
||||
}*/
|
||||
AsyncWebLockGuard l(_client_queue_lock);
|
||||
|
||||
_clients.add(client);
|
||||
if(_connectcb)
|
||||
_connectcb(client);
|
||||
}
|
||||
|
||||
void AsyncEventSource::_handleDisconnect(AsyncEventSourceClient * client){
|
||||
AsyncWebLockGuard l(_client_queue_lock);
|
||||
_clients.remove(client);
|
||||
}
|
||||
|
||||
void AsyncEventSource::close(){
|
||||
// While the whole loop is not done, the linked list is locked and so the
|
||||
// iterator should remain valid even when AsyncEventSource::_handleDisconnect()
|
||||
// is called very early
|
||||
AsyncWebLockGuard l(_client_queue_lock);
|
||||
for(const auto &c: _clients){
|
||||
if(c->connected())
|
||||
c->close();
|
||||
@@ -323,25 +333,26 @@ void AsyncEventSource::close(){
|
||||
|
||||
// pmb fix
|
||||
size_t AsyncEventSource::avgPacketsWaiting() const {
|
||||
size_t aql = 0;
|
||||
uint32_t nConnectedClients = 0;
|
||||
AsyncWebLockGuard l(_client_queue_lock);
|
||||
if (_clients.isEmpty()) {
|
||||
if(_clients.isEmpty())
|
||||
return 0;
|
||||
}
|
||||
|
||||
size_t aql=0;
|
||||
uint32_t nConnectedClients=0;
|
||||
|
||||
for(const auto &c: _clients){
|
||||
if(c->connected()) {
|
||||
aql += c->packetsWaiting();
|
||||
aql+=c->packetsWaiting();
|
||||
++nConnectedClients;
|
||||
}
|
||||
}
|
||||
return ((aql) + (nConnectedClients/2)) / (nConnectedClients); // round up
|
||||
// return aql / nConnectedClients;
|
||||
return ((aql) + (nConnectedClients/2))/(nConnectedClients); // round up
|
||||
}
|
||||
|
||||
void AsyncEventSource::send(
|
||||
const char *message, const char *event, uint32_t id, uint32_t reconnect){
|
||||
void AsyncEventSource::send(const char *message, const char *event, uint32_t id, uint32_t reconnect){
|
||||
|
||||
|
||||
String ev = generateEventMessage(message, event, id, reconnect);
|
||||
AsyncWebLockGuard l(_client_queue_lock);
|
||||
for(const auto &c: _clients){
|
||||
if(c->connected()) {
|
||||
c->write(ev.c_str(), ev.length());
|
||||
@@ -350,32 +361,22 @@ void AsyncEventSource::send(
|
||||
}
|
||||
|
||||
size_t AsyncEventSource::count() const {
|
||||
size_t n_clients;
|
||||
AsyncWebLockGuard l(_client_queue_lock);
|
||||
n_clients = _clients.count_if([](AsyncEventSourceClient *c){
|
||||
return c->connected();
|
||||
});
|
||||
return n_clients;
|
||||
return _clients.count_if([](AsyncEventSourceClient *c){
|
||||
return c->connected();
|
||||
});
|
||||
}
|
||||
|
||||
bool AsyncEventSource::canHandle(AsyncWebServerRequest *request){
|
||||
if(request->method() != HTTP_GET || !request->url().equals(_url)) {
|
||||
return false;
|
||||
}
|
||||
request->addInterestingHeader(F("Last-Event-ID"));
|
||||
request->addInterestingHeader("Cookie");
|
||||
request->addInterestingHeader("Last-Event-ID");
|
||||
return true;
|
||||
}
|
||||
|
||||
void AsyncEventSource::handleRequest(AsyncWebServerRequest *request){
|
||||
if((_username.length() && _password.length()) && !request->authenticate(_username.c_str(), _password.c_str())) {
|
||||
if((_username != "" && _password != "") && !request->authenticate(_username.c_str(), _password.c_str()))
|
||||
return request->requestAuthentication();
|
||||
}
|
||||
if(_authorizeConnectHandler != NULL){
|
||||
if(!_authorizeConnectHandler(request)){
|
||||
return request->send(401);
|
||||
}
|
||||
}
|
||||
request->send(new AsyncEventSourceResponse(this));
|
||||
}
|
||||
|
||||
@@ -384,10 +385,10 @@ void AsyncEventSource::handleRequest(AsyncWebServerRequest *request){
|
||||
AsyncEventSourceResponse::AsyncEventSourceResponse(AsyncEventSource *server){
|
||||
_server = server;
|
||||
_code = 200;
|
||||
_contentType = F("text/event-stream");
|
||||
_contentType = "text/event-stream";
|
||||
_sendContentLength = false;
|
||||
addHeader(F("Cache-Control"), F("no-cache"));
|
||||
addHeader(F("Connection"), F("keep-alive"));
|
||||
addHeader("Cache-Control", "no-cache");
|
||||
addHeader("Connection","keep-alive");
|
||||
}
|
||||
|
||||
void AsyncEventSourceResponse::_respond(AsyncWebServerRequest *request){
|
||||
@@ -402,4 +403,3 @@ size_t AsyncEventSourceResponse::_ack(AsyncWebServerRequest *request, size_t len
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -21,16 +21,19 @@
|
||||
#define ASYNCEVENTSOURCE_H_
|
||||
|
||||
#include <Arduino.h>
|
||||
#ifdef ESP32
|
||||
#include <Arduino.h>
|
||||
#if defined(ESP32) || defined(LIBRETINY)
|
||||
#include <AsyncTCP.h>
|
||||
#ifndef SSE_MAX_QUEUED_MESSAGES
|
||||
#define SSE_MAX_QUEUED_MESSAGES 32
|
||||
#endif
|
||||
#else
|
||||
#include <ESPAsyncTCP.h>
|
||||
#ifndef SSE_MAX_QUEUED_MESSAGES
|
||||
#define SSE_MAX_QUEUED_MESSAGES 8
|
||||
#endif
|
||||
|
||||
#if defined(ESP32)
|
||||
#include <mutex>
|
||||
#endif // ESP32
|
||||
|
||||
#ifndef SSE_MAX_QUEUED_MESSAGES
|
||||
#define SSE_MAX_QUEUED_MESSAGES 32
|
||||
#endif
|
||||
|
||||
#include <ESPAsyncWebServer.h>
|
||||
@@ -44,7 +47,7 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef ESP32
|
||||
#if defined(ESP32) || defined(LIBRETINY)
|
||||
#define DEFAULT_MAX_SSE_CLIENTS 8
|
||||
#else
|
||||
#define DEFAULT_MAX_SSE_CLIENTS 4
|
||||
@@ -54,7 +57,6 @@ class AsyncEventSource;
|
||||
class AsyncEventSourceResponse;
|
||||
class AsyncEventSourceClient;
|
||||
typedef std::function<void(AsyncEventSourceClient *client)> ArEventHandlerFunction;
|
||||
typedef std::function<bool(AsyncWebServerRequest *request)> ArAuthorizeConnectHandler;
|
||||
|
||||
class AsyncEventSourceMessage {
|
||||
private:
|
||||
@@ -66,7 +68,8 @@ class AsyncEventSourceMessage {
|
||||
public:
|
||||
AsyncEventSourceMessage(const char * data, size_t len);
|
||||
~AsyncEventSourceMessage();
|
||||
size_t ack(size_t len, uint32_t time __attribute__((unused)));
|
||||
size_t ack(size_t len);
|
||||
size_t write_buffer(AsyncClient *client);
|
||||
size_t send(AsyncClient *client);
|
||||
bool finished(){ return _acked == _len; }
|
||||
bool sent() { return _sent == _len; }
|
||||
@@ -77,9 +80,12 @@ class AsyncEventSourceClient {
|
||||
AsyncClient *_client;
|
||||
AsyncEventSource *_server;
|
||||
uint32_t _lastId;
|
||||
#if defined(ESP32)
|
||||
std::mutex _messageQueue_mutex;
|
||||
#else
|
||||
bool _messageQueue_processing{false};
|
||||
#endif // ESP32
|
||||
LinkedList<AsyncEventSourceMessage *> _messageQueue;
|
||||
// ArFi 2020-08-27 for protecting/serializing _messageQueue
|
||||
AsyncPlainLock _lockmq;
|
||||
void _queueMessage(AsyncEventSourceMessage *dataMessage);
|
||||
void _runQueue();
|
||||
|
||||
@@ -94,7 +100,7 @@ class AsyncEventSourceClient {
|
||||
void send(const char *message, const char *event=NULL, uint32_t id=0, uint32_t reconnect=0);
|
||||
bool connected() const { return (_client != NULL) && _client->connected(); }
|
||||
uint32_t lastId() const { return _lastId; }
|
||||
size_t packetsWaiting() const;
|
||||
size_t packetsWaiting() const { return _messageQueue.length(); }
|
||||
|
||||
//system callbacks (do not call)
|
||||
void _onAck(size_t len, uint32_t time);
|
||||
@@ -107,11 +113,7 @@ class AsyncEventSource: public AsyncWebHandler {
|
||||
private:
|
||||
String _url;
|
||||
LinkedList<AsyncEventSourceClient *> _clients;
|
||||
// Same as for individual messages, protect mutations of _clients list
|
||||
// since simultaneous access from different tasks is possible
|
||||
AsyncWebLock _client_queue_lock;
|
||||
ArEventHandlerFunction _connectcb;
|
||||
ArAuthorizeConnectHandler _authorizeConnectHandler;
|
||||
public:
|
||||
AsyncEventSource(const String& url);
|
||||
~AsyncEventSource();
|
||||
@@ -119,10 +121,8 @@ class AsyncEventSource: public AsyncWebHandler {
|
||||
const char * url() const { return _url.c_str(); }
|
||||
void close();
|
||||
void onConnect(ArEventHandlerFunction cb);
|
||||
void authorizeConnect(ArAuthorizeConnectHandler cb);
|
||||
void send(const char *message, const char *event=NULL, uint32_t id=0, uint32_t reconnect=0);
|
||||
// number of clients connected
|
||||
size_t count() const;
|
||||
size_t count() const; //number clinets connected
|
||||
size_t avgPacketsWaiting() const;
|
||||
|
||||
//system callbacks (do not call)
|
||||
|
||||
@@ -189,7 +189,7 @@ bool PButton::check(void) {
|
||||
cb_onVLongPress(*this);
|
||||
}
|
||||
|
||||
// if any action has been prefromed we can stop waiting, and become idle
|
||||
// if any action has been preformed we can stop waiting, and become idle
|
||||
if (resultEvent >= 1 && resultEvent <= 4) {
|
||||
buttonBusy_ = false;
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
#include "Print.h"
|
||||
#include "WString.h"
|
||||
|
||||
// compatability macros for testing
|
||||
// compatibility macros for testing
|
||||
/*
|
||||
#define getInt() parseInt()
|
||||
#define getInt(skipChar) parseInt(skipchar)
|
||||
@@ -91,7 +91,7 @@ class Stream : public Print {
|
||||
// initial characters that are not digits (or the minus sign) are skipped
|
||||
// integer is terminated by the first character that is not a digit.
|
||||
|
||||
float parseFloat(); // float version of parseInt
|
||||
float parseFloat(); // float version of parseInt
|
||||
|
||||
virtual size_t readBytes(char * buffer, size_t length) // read chars from stream into buffer
|
||||
{
|
||||
|
||||
@@ -116,7 +116,7 @@ export default () => {
|
||||
};
|
||||
count++;
|
||||
res.write(`data: ${JSON.stringify(data)}\n\n`);
|
||||
}, 800);
|
||||
}, 500);
|
||||
|
||||
// if client closes connection
|
||||
res.on('close', () => {
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "mock-api",
|
||||
"version": "3.7.0",
|
||||
"description": "mock api for EMS-ESP",
|
||||
"author": "proddy",
|
||||
"author": "proddy, emsesp.org",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"mock-rest": "bun --watch rest_server.ts",
|
||||
@@ -11,11 +11,9 @@
|
||||
"dependencies": {
|
||||
"@msgpack/msgpack": "^2.8.0",
|
||||
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
|
||||
"eslint": "^9.10.0",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"formidable": "^3.5.1",
|
||||
"itty-router": "^5.0.18",
|
||||
"prettier": "^3.3.3"
|
||||
},
|
||||
"packageManager": "yarn@4.4.0"
|
||||
"packageManager": "yarn@4.4.1"
|
||||
}
|
||||
|
||||
@@ -128,54 +128,6 @@ let log_settings = {
|
||||
psram: true
|
||||
};
|
||||
|
||||
const FETCH_LOG_ENDPOINT = REST_ENDPOINT_ROOT + 'fetchLog';
|
||||
const fetch_log = {
|
||||
events: [
|
||||
{
|
||||
t: '000+00:00:00.001',
|
||||
l: 3,
|
||||
i: 1,
|
||||
n: 'system',
|
||||
m: 'this is message 3'
|
||||
},
|
||||
{
|
||||
t: '000+00:00:00.002',
|
||||
l: 4,
|
||||
i: 2,
|
||||
n: 'ntp',
|
||||
m: 'this is message 4'
|
||||
},
|
||||
{
|
||||
t: '000+00:00:00.002',
|
||||
l: 5,
|
||||
i: 3,
|
||||
n: 'mqtt',
|
||||
m: 'this is message 5'
|
||||
},
|
||||
{
|
||||
t: '000+00:00:00.002',
|
||||
l: 6,
|
||||
i: 444,
|
||||
n: 'command',
|
||||
m: 'this is message 6'
|
||||
},
|
||||
{
|
||||
t: '000+00:00:00.002',
|
||||
l: 7,
|
||||
i: 5555,
|
||||
n: 'emsesp',
|
||||
m: 'this is message 7'
|
||||
},
|
||||
{
|
||||
t: '000+00:00:00.002',
|
||||
l: 8,
|
||||
i: 666666,
|
||||
n: 'thermostat',
|
||||
m: 'this is message 8'
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
// NTP
|
||||
const NTP_STATUS_ENDPOINT = REST_ENDPOINT_ROOT + 'ntpStatus';
|
||||
const NTP_SETTINGS_ENDPOINT = REST_ENDPOINT_ROOT + 'ntpSettings';
|
||||
@@ -4144,9 +4096,6 @@ const emsesp_deviceentities_none = [
|
||||
|
||||
// LOG
|
||||
router
|
||||
.post(FETCH_LOG_ENDPOINT, () => {
|
||||
return status(200);
|
||||
})
|
||||
.get(LOG_SETTINGS_ENDPOINT, () => log_settings)
|
||||
.post(LOG_SETTINGS_ENDPOINT, async (request: any) => {
|
||||
log_settings = await request.json();
|
||||
@@ -4215,7 +4164,7 @@ router
|
||||
.get(ACTIVITY_ENDPOINT, () => activity)
|
||||
.get(HARDWARE_STATUS_ENDPOINT, () => {
|
||||
if (countHardwarePoll === 0) {
|
||||
console.log('Reseting hardware count...');
|
||||
console.log('Resetting hardware count...');
|
||||
}
|
||||
|
||||
if (countHardwarePoll >= 2) {
|
||||
@@ -4332,7 +4281,7 @@ router
|
||||
let sorted_devices = [...emsesp_coredata.devices].sort((a, b) => a.t - b.t);
|
||||
// append emsesp_coredata to sorted_devices so Custom is always at the end of the list
|
||||
sorted_devices.push(emsesp_coredata_custom);
|
||||
// sorted_devices = []; // uncomment if simulating no decvices...
|
||||
// sorted_devices = []; // uncomment if simulating no devices...
|
||||
return { connected: true, devices: sorted_devices };
|
||||
})
|
||||
.get(EMSESP_SENSOR_DATA_ENDPOINT, () => {
|
||||
|
||||
@@ -162,89 +162,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@eslint-community/eslint-utils@npm:^4.2.0":
|
||||
version: 4.4.0
|
||||
resolution: "@eslint-community/eslint-utils@npm:4.4.0"
|
||||
dependencies:
|
||||
eslint-visitor-keys: "npm:^3.3.0"
|
||||
peerDependencies:
|
||||
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
|
||||
checksum: 10c0/7e559c4ce59cd3a06b1b5a517b593912e680a7f981ae7affab0d01d709e99cd5647019be8fafa38c350305bc32f1f7d42c7073edde2ab536c745e365f37b607e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@eslint-community/regexpp@npm:^4.11.0":
|
||||
version: 4.11.0
|
||||
resolution: "@eslint-community/regexpp@npm:4.11.0"
|
||||
checksum: 10c0/0f6328869b2741e2794da4ad80beac55cba7de2d3b44f796a60955b0586212ec75e6b0253291fd4aad2100ad471d1480d8895f2b54f1605439ba4c875e05e523
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@eslint/config-array@npm:^0.18.0":
|
||||
version: 0.18.0
|
||||
resolution: "@eslint/config-array@npm:0.18.0"
|
||||
dependencies:
|
||||
"@eslint/object-schema": "npm:^2.1.4"
|
||||
debug: "npm:^4.3.1"
|
||||
minimatch: "npm:^3.1.2"
|
||||
checksum: 10c0/0234aeb3e6b052ad2402a647d0b4f8a6aa71524bafe1adad0b8db1dfe94d7f5f26d67c80f79bb37ac61361a1d4b14bb8fb475efe501de37263cf55eabb79868f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@eslint/eslintrc@npm:^3.1.0":
|
||||
version: 3.1.0
|
||||
resolution: "@eslint/eslintrc@npm:3.1.0"
|
||||
dependencies:
|
||||
ajv: "npm:^6.12.4"
|
||||
debug: "npm:^4.3.2"
|
||||
espree: "npm:^10.0.1"
|
||||
globals: "npm:^14.0.0"
|
||||
ignore: "npm:^5.2.0"
|
||||
import-fresh: "npm:^3.2.1"
|
||||
js-yaml: "npm:^4.1.0"
|
||||
minimatch: "npm:^3.1.2"
|
||||
strip-json-comments: "npm:^3.1.1"
|
||||
checksum: 10c0/5b7332ed781edcfc98caa8dedbbb843abfb9bda2e86538529c843473f580e40c69eb894410eddc6702f487e9ee8f8cfa8df83213d43a8fdb549f23ce06699167
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@eslint/js@npm:9.10.0":
|
||||
version: 9.10.0
|
||||
resolution: "@eslint/js@npm:9.10.0"
|
||||
checksum: 10c0/2ac45a002dc1ccf25be46ea61001ada8d77248d1313ab4e53f3735e5ae00738a757874e41f62ad6fbd49df7dffeece66e5f53ff0d7b78a99ce4c68e8fea66753
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@eslint/object-schema@npm:^2.1.4":
|
||||
version: 2.1.4
|
||||
resolution: "@eslint/object-schema@npm:2.1.4"
|
||||
checksum: 10c0/e9885532ea70e483fb007bf1275968b05bb15ebaa506d98560c41a41220d33d342e19023d5f2939fed6eb59676c1bda5c847c284b4b55fce521d282004da4dda
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@eslint/plugin-kit@npm:^0.1.0":
|
||||
version: 0.1.0
|
||||
resolution: "@eslint/plugin-kit@npm:0.1.0"
|
||||
dependencies:
|
||||
levn: "npm:^0.4.1"
|
||||
checksum: 10c0/fae97cd4efc1c32501c286abba1b5409848ce8c989e1ca6a5bb057a304a2cd721e6e957f6bc35ce95cfd0871e822ed42df3c759fecdad72c30e70802e26f83c7
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@humanwhocodes/module-importer@npm:^1.0.1":
|
||||
version: 1.0.1
|
||||
resolution: "@humanwhocodes/module-importer@npm:1.0.1"
|
||||
checksum: 10c0/909b69c3b86d482c26b3359db16e46a32e0fb30bd306a3c176b8313b9e7313dba0f37f519de6aa8b0a1921349e505f259d19475e123182416a506d7f87e7f529
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@humanwhocodes/retry@npm:^0.3.0":
|
||||
version: 0.3.0
|
||||
resolution: "@humanwhocodes/retry@npm:0.3.0"
|
||||
checksum: 10c0/7111ec4e098b1a428459b4e3be5a5d2a13b02905f805a2468f4fa628d072f0de2da26a27d04f65ea2846f73ba51f4204661709f05bfccff645e3cedef8781bb6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@jridgewell/gen-mapping@npm:^0.3.5":
|
||||
version: 0.3.5
|
||||
resolution: "@jridgewell/gen-mapping@npm:0.3.5"
|
||||
@@ -294,33 +211,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@nodelib/fs.scandir@npm:2.1.5":
|
||||
version: 2.1.5
|
||||
resolution: "@nodelib/fs.scandir@npm:2.1.5"
|
||||
dependencies:
|
||||
"@nodelib/fs.stat": "npm:2.0.5"
|
||||
run-parallel: "npm:^1.1.9"
|
||||
checksum: 10c0/732c3b6d1b1e967440e65f284bd06e5821fedf10a1bea9ed2bb75956ea1f30e08c44d3def9d6a230666574edbaf136f8cfd319c14fd1f87c66e6a44449afb2eb
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@nodelib/fs.stat@npm:2.0.5":
|
||||
version: 2.0.5
|
||||
resolution: "@nodelib/fs.stat@npm:2.0.5"
|
||||
checksum: 10c0/88dafe5e3e29a388b07264680dc996c17f4bda48d163a9d4f5c1112979f0ce8ec72aa7116122c350b4e7976bc5566dc3ddb579be1ceaacc727872eb4ed93926d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@nodelib/fs.walk@npm:^1.2.8":
|
||||
version: 1.2.8
|
||||
resolution: "@nodelib/fs.walk@npm:1.2.8"
|
||||
dependencies:
|
||||
"@nodelib/fs.scandir": "npm:2.1.5"
|
||||
fastq: "npm:^1.6.0"
|
||||
checksum: 10c0/db9de047c3bb9b51f9335a7bb46f4fcfb6829fb628318c12115fbaf7d369bfce71c15b103d1fc3b464812d936220ee9bc1c8f762d032c9f6be9acc99249095b1
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@trivago/prettier-plugin-sort-imports@npm:^4.3.0":
|
||||
version: 4.3.0
|
||||
resolution: "@trivago/prettier-plugin-sort-imports@npm:4.3.0"
|
||||
@@ -341,43 +231,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"acorn-jsx@npm:^5.3.2":
|
||||
version: 5.3.2
|
||||
resolution: "acorn-jsx@npm:5.3.2"
|
||||
peerDependencies:
|
||||
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
|
||||
checksum: 10c0/4c54868fbef3b8d58927d5e33f0a4de35f59012fe7b12cf9dfbb345fb8f46607709e1c4431be869a23fb63c151033d84c4198fa9f79385cec34fcb1dd53974c1
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"acorn@npm:^8.12.0":
|
||||
version: 8.12.1
|
||||
resolution: "acorn@npm:8.12.1"
|
||||
bin:
|
||||
acorn: bin/acorn
|
||||
checksum: 10c0/51fb26cd678f914e13287e886da2d7021f8c2bc0ccc95e03d3e0447ee278dd3b40b9c57dc222acd5881adcf26f3edc40901a4953403232129e3876793cd17386
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ajv@npm:^6.12.4":
|
||||
version: 6.12.6
|
||||
resolution: "ajv@npm:6.12.6"
|
||||
dependencies:
|
||||
fast-deep-equal: "npm:^3.1.1"
|
||||
fast-json-stable-stringify: "npm:^2.0.0"
|
||||
json-schema-traverse: "npm:^0.4.1"
|
||||
uri-js: "npm:^4.2.2"
|
||||
checksum: 10c0/41e23642cbe545889245b9d2a45854ebba51cda6c778ebced9649420d9205f2efb39cb43dbc41e358409223b1ea43303ae4839db682c848b891e4811da1a5a71
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ansi-regex@npm:^5.0.1":
|
||||
version: 5.0.1
|
||||
resolution: "ansi-regex@npm:5.0.1"
|
||||
checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ansi-styles@npm:^3.2.1":
|
||||
version: 3.2.1
|
||||
resolution: "ansi-styles@npm:3.2.1"
|
||||
@@ -387,22 +240,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ansi-styles@npm:^4.1.0":
|
||||
version: 4.3.0
|
||||
resolution: "ansi-styles@npm:4.3.0"
|
||||
dependencies:
|
||||
color-convert: "npm:^2.0.1"
|
||||
checksum: 10c0/895a23929da416f2bd3de7e9cb4eabd340949328ab85ddd6e484a637d8f6820d485f53933446f5291c3b760cbc488beb8e88573dd0f9c7daf83dccc8fe81b041
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"argparse@npm:^2.0.1":
|
||||
version: 2.0.1
|
||||
resolution: "argparse@npm:2.0.1"
|
||||
checksum: 10c0/c5640c2d89045371c7cedd6a70212a04e360fd34d6edeae32f6952c63949e3525ea77dbec0289d8213a99bbaeab5abfa860b5c12cf88a2e6cf8106e90dd27a7e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"asap@npm:^2.0.0":
|
||||
version: 2.0.6
|
||||
resolution: "asap@npm:2.0.6"
|
||||
@@ -410,30 +247,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"balanced-match@npm:^1.0.0":
|
||||
version: 1.0.2
|
||||
resolution: "balanced-match@npm:1.0.2"
|
||||
checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"brace-expansion@npm:^1.1.7":
|
||||
version: 1.1.11
|
||||
resolution: "brace-expansion@npm:1.1.11"
|
||||
dependencies:
|
||||
balanced-match: "npm:^1.0.0"
|
||||
concat-map: "npm:0.0.1"
|
||||
checksum: 10c0/695a56cd058096a7cb71fb09d9d6a7070113c7be516699ed361317aca2ec169f618e28b8af352e02ab4233fb54eb0168460a40dc320bab0034b36ab59aaad668
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"callsites@npm:^3.0.0":
|
||||
version: 3.1.0
|
||||
resolution: "callsites@npm:3.1.0"
|
||||
checksum: 10c0/fff92277400eb06c3079f9e74f3af120db9f8ea03bad0e84d9aede54bbe2d44a56cccb5f6cf12211f93f52306df87077ecec5b712794c5a9b5dac6d615a3f301
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"chalk@npm:^2.4.2":
|
||||
version: 2.4.2
|
||||
resolution: "chalk@npm:2.4.2"
|
||||
@@ -445,16 +258,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"chalk@npm:^4.0.0":
|
||||
version: 4.1.2
|
||||
resolution: "chalk@npm:4.1.2"
|
||||
dependencies:
|
||||
ansi-styles: "npm:^4.1.0"
|
||||
supports-color: "npm:^7.1.0"
|
||||
checksum: 10c0/4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"color-convert@npm:^1.9.0":
|
||||
version: 1.9.3
|
||||
resolution: "color-convert@npm:1.9.3"
|
||||
@@ -464,15 +267,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"color-convert@npm:^2.0.1":
|
||||
version: 2.0.1
|
||||
resolution: "color-convert@npm:2.0.1"
|
||||
dependencies:
|
||||
color-name: "npm:~1.1.4"
|
||||
checksum: 10c0/37e1150172f2e311fe1b2df62c6293a342ee7380da7b9cfdba67ea539909afbd74da27033208d01d6d5cfc65ee7868a22e18d7e7648e004425441c0f8a15a7d7
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"color-name@npm:1.1.3":
|
||||
version: 1.1.3
|
||||
resolution: "color-name@npm:1.1.3"
|
||||
@@ -480,32 +274,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"color-name@npm:~1.1.4":
|
||||
version: 1.1.4
|
||||
resolution: "color-name@npm:1.1.4"
|
||||
checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"concat-map@npm:0.0.1":
|
||||
version: 0.0.1
|
||||
resolution: "concat-map@npm:0.0.1"
|
||||
checksum: 10c0/c996b1cfdf95b6c90fee4dae37e332c8b6eb7d106430c17d538034c0ad9a1630cb194d2ab37293b1bdd4d779494beee7786d586a50bd9376fd6f7bcc2bd4c98f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"cross-spawn@npm:^7.0.2":
|
||||
version: 7.0.3
|
||||
resolution: "cross-spawn@npm:7.0.3"
|
||||
dependencies:
|
||||
path-key: "npm:^3.1.0"
|
||||
shebang-command: "npm:^2.0.0"
|
||||
which: "npm:^2.0.1"
|
||||
checksum: 10c0/5738c312387081c98d69c98e105b6327b069197f864a60593245d64c8089c8a0a744e16349281210d56835bb9274130d825a78b2ad6853ca13cfbeffc0c31750
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"debug@npm:^4.1.0, debug@npm:^4.3.1, debug@npm:^4.3.2":
|
||||
"debug@npm:^4.1.0":
|
||||
version: 4.3.6
|
||||
resolution: "debug@npm:4.3.6"
|
||||
dependencies:
|
||||
@@ -517,13 +286,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"deep-is@npm:^0.1.3":
|
||||
version: 0.1.4
|
||||
resolution: "deep-is@npm:0.1.4"
|
||||
checksum: 10c0/7f0ee496e0dff14a573dc6127f14c95061b448b87b995fc96c017ce0a1e66af1675e73f1d6064407975bc4ea6ab679497a29fff7b5b9c4e99cb10797c1ad0b4c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"dezalgo@npm:^1.0.4":
|
||||
version: 1.0.4
|
||||
resolution: "dezalgo@npm:1.0.4"
|
||||
@@ -541,206 +303,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"escape-string-regexp@npm:^4.0.0":
|
||||
version: 4.0.0
|
||||
resolution: "escape-string-regexp@npm:4.0.0"
|
||||
checksum: 10c0/9497d4dd307d845bd7f75180d8188bb17ea8c151c1edbf6b6717c100e104d629dc2dfb687686181b0f4b7d732c7dfdc4d5e7a8ff72de1b0ca283a75bbb3a9cd9
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-config-prettier@npm:^9.1.0":
|
||||
version: 9.1.0
|
||||
resolution: "eslint-config-prettier@npm:9.1.0"
|
||||
peerDependencies:
|
||||
eslint: ">=7.0.0"
|
||||
bin:
|
||||
eslint-config-prettier: bin/cli.js
|
||||
checksum: 10c0/6d332694b36bc9ac6fdb18d3ca2f6ac42afa2ad61f0493e89226950a7091e38981b66bac2b47ba39d15b73fff2cd32c78b850a9cf9eed9ca9a96bfb2f3a2f10d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-scope@npm:^8.0.2":
|
||||
version: 8.0.2
|
||||
resolution: "eslint-scope@npm:8.0.2"
|
||||
dependencies:
|
||||
esrecurse: "npm:^4.3.0"
|
||||
estraverse: "npm:^5.2.0"
|
||||
checksum: 10c0/477f820647c8755229da913025b4567347fd1f0bf7cbdf3a256efff26a7e2e130433df052bd9e3d014025423dc00489bea47eb341002b15553673379c1a7dc36
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-visitor-keys@npm:^3.3.0":
|
||||
version: 3.4.3
|
||||
resolution: "eslint-visitor-keys@npm:3.4.3"
|
||||
checksum: 10c0/92708e882c0a5ffd88c23c0b404ac1628cf20104a108c745f240a13c332a11aac54f49a22d5762efbffc18ecbc9a580d1b7ad034bf5f3cc3307e5cbff2ec9820
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-visitor-keys@npm:^4.0.0":
|
||||
version: 4.0.0
|
||||
resolution: "eslint-visitor-keys@npm:4.0.0"
|
||||
checksum: 10c0/76619f42cf162705a1515a6868e6fc7567e185c7063a05621a8ac4c3b850d022661262c21d9f1fc1d144ecf0d5d64d70a3f43c15c3fc969a61ace0fb25698cf5
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint@npm:^9.10.0":
|
||||
version: 9.10.0
|
||||
resolution: "eslint@npm:9.10.0"
|
||||
dependencies:
|
||||
"@eslint-community/eslint-utils": "npm:^4.2.0"
|
||||
"@eslint-community/regexpp": "npm:^4.11.0"
|
||||
"@eslint/config-array": "npm:^0.18.0"
|
||||
"@eslint/eslintrc": "npm:^3.1.0"
|
||||
"@eslint/js": "npm:9.10.0"
|
||||
"@eslint/plugin-kit": "npm:^0.1.0"
|
||||
"@humanwhocodes/module-importer": "npm:^1.0.1"
|
||||
"@humanwhocodes/retry": "npm:^0.3.0"
|
||||
"@nodelib/fs.walk": "npm:^1.2.8"
|
||||
ajv: "npm:^6.12.4"
|
||||
chalk: "npm:^4.0.0"
|
||||
cross-spawn: "npm:^7.0.2"
|
||||
debug: "npm:^4.3.2"
|
||||
escape-string-regexp: "npm:^4.0.0"
|
||||
eslint-scope: "npm:^8.0.2"
|
||||
eslint-visitor-keys: "npm:^4.0.0"
|
||||
espree: "npm:^10.1.0"
|
||||
esquery: "npm:^1.5.0"
|
||||
esutils: "npm:^2.0.2"
|
||||
fast-deep-equal: "npm:^3.1.3"
|
||||
file-entry-cache: "npm:^8.0.0"
|
||||
find-up: "npm:^5.0.0"
|
||||
glob-parent: "npm:^6.0.2"
|
||||
ignore: "npm:^5.2.0"
|
||||
imurmurhash: "npm:^0.1.4"
|
||||
is-glob: "npm:^4.0.0"
|
||||
is-path-inside: "npm:^3.0.3"
|
||||
json-stable-stringify-without-jsonify: "npm:^1.0.1"
|
||||
lodash.merge: "npm:^4.6.2"
|
||||
minimatch: "npm:^3.1.2"
|
||||
natural-compare: "npm:^1.4.0"
|
||||
optionator: "npm:^0.9.3"
|
||||
strip-ansi: "npm:^6.0.1"
|
||||
text-table: "npm:^0.2.0"
|
||||
peerDependencies:
|
||||
jiti: "*"
|
||||
peerDependenciesMeta:
|
||||
jiti:
|
||||
optional: true
|
||||
bin:
|
||||
eslint: bin/eslint.js
|
||||
checksum: 10c0/7357f3995b15043eea83c8c0ab16c385ce3f28925c1b11cfcd6b2ede8faab3d91ede84a68173dd5f6e3e176e177984e6218de58b7b8388e53e2881f1ec07c836
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"espree@npm:^10.0.1, espree@npm:^10.1.0":
|
||||
version: 10.1.0
|
||||
resolution: "espree@npm:10.1.0"
|
||||
dependencies:
|
||||
acorn: "npm:^8.12.0"
|
||||
acorn-jsx: "npm:^5.3.2"
|
||||
eslint-visitor-keys: "npm:^4.0.0"
|
||||
checksum: 10c0/52e6feaa77a31a6038f0c0e3fce93010a4625701925b0715cd54a2ae190b3275053a0717db698697b32653788ac04845e489d6773b508d6c2e8752f3c57470a0
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esquery@npm:^1.5.0":
|
||||
version: 1.6.0
|
||||
resolution: "esquery@npm:1.6.0"
|
||||
dependencies:
|
||||
estraverse: "npm:^5.1.0"
|
||||
checksum: 10c0/cb9065ec605f9da7a76ca6dadb0619dfb611e37a81e318732977d90fab50a256b95fee2d925fba7c2f3f0523aa16f91587246693bc09bc34d5a59575fe6e93d2
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esrecurse@npm:^4.3.0":
|
||||
version: 4.3.0
|
||||
resolution: "esrecurse@npm:4.3.0"
|
||||
dependencies:
|
||||
estraverse: "npm:^5.2.0"
|
||||
checksum: 10c0/81a37116d1408ded88ada45b9fb16dbd26fba3aadc369ce50fcaf82a0bac12772ebd7b24cd7b91fc66786bf2c1ac7b5f196bc990a473efff972f5cb338877cf5
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0":
|
||||
version: 5.3.0
|
||||
resolution: "estraverse@npm:5.3.0"
|
||||
checksum: 10c0/1ff9447b96263dec95d6d67431c5e0771eb9776427421260a3e2f0fdd5d6bd4f8e37a7338f5ad2880c9f143450c9b1e4fc2069060724570a49cf9cf0312bd107
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esutils@npm:^2.0.2":
|
||||
version: 2.0.3
|
||||
resolution: "esutils@npm:2.0.3"
|
||||
checksum: 10c0/9a2fe69a41bfdade834ba7c42de4723c97ec776e40656919c62cbd13607c45e127a003f05f724a1ea55e5029a4cf2de444b13009f2af71271e42d93a637137c7
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3":
|
||||
version: 3.1.3
|
||||
resolution: "fast-deep-equal@npm:3.1.3"
|
||||
checksum: 10c0/40dedc862eb8992c54579c66d914635afbec43350afbbe991235fdcb4e3a8d5af1b23ae7e79bef7d4882d0ecee06c3197488026998fb19f72dc95acff1d1b1d0
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"fast-json-stable-stringify@npm:^2.0.0":
|
||||
version: 2.1.0
|
||||
resolution: "fast-json-stable-stringify@npm:2.1.0"
|
||||
checksum: 10c0/7f081eb0b8a64e0057b3bb03f974b3ef00135fbf36c1c710895cd9300f13c94ba809bb3a81cf4e1b03f6e5285610a61abbd7602d0652de423144dfee5a389c9b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"fast-levenshtein@npm:^2.0.6":
|
||||
version: 2.0.6
|
||||
resolution: "fast-levenshtein@npm:2.0.6"
|
||||
checksum: 10c0/111972b37338bcb88f7d9e2c5907862c280ebf4234433b95bc611e518d192ccb2d38119c4ac86e26b668d75f7f3894f4ff5c4982899afced7ca78633b08287c4
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"fastq@npm:^1.6.0":
|
||||
version: 1.17.1
|
||||
resolution: "fastq@npm:1.17.1"
|
||||
dependencies:
|
||||
reusify: "npm:^1.0.4"
|
||||
checksum: 10c0/1095f16cea45fb3beff558bb3afa74ca7a9250f5a670b65db7ed585f92b4b48381445cd328b3d87323da81e43232b5d5978a8201bde84e0cd514310f1ea6da34
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"file-entry-cache@npm:^8.0.0":
|
||||
version: 8.0.0
|
||||
resolution: "file-entry-cache@npm:8.0.0"
|
||||
dependencies:
|
||||
flat-cache: "npm:^4.0.0"
|
||||
checksum: 10c0/9e2b5938b1cd9b6d7e3612bdc533afd4ac17b2fc646569e9a8abbf2eb48e5eb8e316bc38815a3ef6a1b456f4107f0d0f055a614ca613e75db6bf9ff4d72c1638
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"find-up@npm:^5.0.0":
|
||||
version: 5.0.0
|
||||
resolution: "find-up@npm:5.0.0"
|
||||
dependencies:
|
||||
locate-path: "npm:^6.0.0"
|
||||
path-exists: "npm:^4.0.0"
|
||||
checksum: 10c0/062c5a83a9c02f53cdd6d175a37ecf8f87ea5bbff1fdfb828f04bfa021441bc7583e8ebc0872a4c1baab96221fb8a8a275a19809fb93fbc40bd69ec35634069a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"flat-cache@npm:^4.0.0":
|
||||
version: 4.0.1
|
||||
resolution: "flat-cache@npm:4.0.1"
|
||||
dependencies:
|
||||
flatted: "npm:^3.2.9"
|
||||
keyv: "npm:^4.5.4"
|
||||
checksum: 10c0/2c59d93e9faa2523e4fda6b4ada749bed432cfa28c8e251f33b25795e426a1c6dbada777afb1f74fcfff33934fdbdea921ee738fcc33e71adc9d6eca984a1cfc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"flatted@npm:^3.2.9":
|
||||
version: 3.3.1
|
||||
resolution: "flatted@npm:3.3.1"
|
||||
checksum: 10c0/324166b125ee07d4ca9bcf3a5f98d915d5db4f39d711fba640a3178b959919aae1f7cfd8aabcfef5826ed8aa8a2aa14cc85b2d7d18ff638ddf4ae3df39573eaf
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"formidable@npm:^3.5.1":
|
||||
version: 3.5.1
|
||||
resolution: "formidable@npm:3.5.1"
|
||||
@@ -752,15 +314,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"glob-parent@npm:^6.0.2":
|
||||
version: 6.0.2
|
||||
resolution: "glob-parent@npm:6.0.2"
|
||||
dependencies:
|
||||
is-glob: "npm:^4.0.3"
|
||||
checksum: 10c0/317034d88654730230b3f43bb7ad4f7c90257a426e872ea0bf157473ac61c99bf5d205fad8f0185f989be8d2fa6d3c7dce1645d99d545b6ea9089c39f838e7f8
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"globals@npm:^11.1.0":
|
||||
version: 11.12.0
|
||||
resolution: "globals@npm:11.12.0"
|
||||
@@ -768,13 +321,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"globals@npm:^14.0.0":
|
||||
version: 14.0.0
|
||||
resolution: "globals@npm:14.0.0"
|
||||
checksum: 10c0/b96ff42620c9231ad468d4c58ff42afee7777ee1c963013ff8aabe095a451d0ceeb8dcd8ef4cbd64d2538cef45f787a78ba3a9574f4a634438963e334471302d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"has-flag@npm:^3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "has-flag@npm:3.0.0"
|
||||
@@ -782,13 +328,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"has-flag@npm:^4.0.0":
|
||||
version: 4.0.0
|
||||
resolution: "has-flag@npm:4.0.0"
|
||||
checksum: 10c0/2e789c61b7888d66993e14e8331449e525ef42aac53c627cc53d1c3334e768bcb6abdc4f5f0de1478a25beec6f0bd62c7549058b7ac53e924040d4f301f02fd1
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"hexoid@npm:^1.0.0":
|
||||
version: 1.0.0
|
||||
resolution: "hexoid@npm:1.0.0"
|
||||
@@ -796,60 +335,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ignore@npm:^5.2.0":
|
||||
version: 5.3.2
|
||||
resolution: "ignore@npm:5.3.2"
|
||||
checksum: 10c0/f9f652c957983634ded1e7f02da3b559a0d4cc210fca3792cb67f1b153623c9c42efdc1c4121af171e295444459fc4a9201101fb041b1104a3c000bccb188337
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"import-fresh@npm:^3.2.1":
|
||||
version: 3.3.0
|
||||
resolution: "import-fresh@npm:3.3.0"
|
||||
dependencies:
|
||||
parent-module: "npm:^1.0.0"
|
||||
resolve-from: "npm:^4.0.0"
|
||||
checksum: 10c0/7f882953aa6b740d1f0e384d0547158bc86efbf2eea0f1483b8900a6f65c5a5123c2cf09b0d542cc419d0b98a759ecaeb394237e97ea427f2da221dc3cd80cc3
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"imurmurhash@npm:^0.1.4":
|
||||
version: 0.1.4
|
||||
resolution: "imurmurhash@npm:0.1.4"
|
||||
checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"is-extglob@npm:^2.1.1":
|
||||
version: 2.1.1
|
||||
resolution: "is-extglob@npm:2.1.1"
|
||||
checksum: 10c0/5487da35691fbc339700bbb2730430b07777a3c21b9ebaecb3072512dfd7b4ba78ac2381a87e8d78d20ea08affb3f1971b4af629173a6bf435ff8a4c47747912
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"is-glob@npm:^4.0.0, is-glob@npm:^4.0.3":
|
||||
version: 4.0.3
|
||||
resolution: "is-glob@npm:4.0.3"
|
||||
dependencies:
|
||||
is-extglob: "npm:^2.1.1"
|
||||
checksum: 10c0/17fb4014e22be3bbecea9b2e3a76e9e34ff645466be702f1693e8f1ee1adac84710d0be0bd9f967d6354036fd51ab7c2741d954d6e91dae6bb69714de92c197a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"is-path-inside@npm:^3.0.3":
|
||||
version: 3.0.3
|
||||
resolution: "is-path-inside@npm:3.0.3"
|
||||
checksum: 10c0/cf7d4ac35fb96bab6a1d2c3598fe5ebb29aafb52c0aaa482b5a3ed9d8ba3edc11631e3ec2637660c44b3ce0e61a08d54946e8af30dec0b60a7c27296c68ffd05
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"isexe@npm:^2.0.0":
|
||||
version: 2.0.0
|
||||
resolution: "isexe@npm:2.0.0"
|
||||
checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"itty-router@npm:^5.0.18":
|
||||
version: 5.0.18
|
||||
resolution: "itty-router@npm:5.0.18"
|
||||
@@ -871,17 +356,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"js-yaml@npm:^4.1.0":
|
||||
version: 4.1.0
|
||||
resolution: "js-yaml@npm:4.1.0"
|
||||
dependencies:
|
||||
argparse: "npm:^2.0.1"
|
||||
bin:
|
||||
js-yaml: bin/js-yaml.js
|
||||
checksum: 10c0/184a24b4eaacfce40ad9074c64fd42ac83cf74d8c8cd137718d456ced75051229e5061b8633c3366b8aada17945a7a356b337828c19da92b51ae62126575018f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"jsesc@npm:^2.5.1":
|
||||
version: 2.5.2
|
||||
resolution: "jsesc@npm:2.5.2"
|
||||
@@ -891,62 +365,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"json-buffer@npm:3.0.1":
|
||||
version: 3.0.1
|
||||
resolution: "json-buffer@npm:3.0.1"
|
||||
checksum: 10c0/0d1c91569d9588e7eef2b49b59851f297f3ab93c7b35c7c221e288099322be6b562767d11e4821da500f3219542b9afd2e54c5dc573107c1126ed1080f8e96d7
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"json-schema-traverse@npm:^0.4.1":
|
||||
version: 0.4.1
|
||||
resolution: "json-schema-traverse@npm:0.4.1"
|
||||
checksum: 10c0/108fa90d4cc6f08243aedc6da16c408daf81793bf903e9fd5ab21983cda433d5d2da49e40711da016289465ec2e62e0324dcdfbc06275a607fe3233fde4942ce
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"json-stable-stringify-without-jsonify@npm:^1.0.1":
|
||||
version: 1.0.1
|
||||
resolution: "json-stable-stringify-without-jsonify@npm:1.0.1"
|
||||
checksum: 10c0/cb168b61fd4de83e58d09aaa6425ef71001bae30d260e2c57e7d09a5fd82223e2f22a042dedaab8db23b7d9ae46854b08bb1f91675a8be11c5cffebef5fb66a5
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"keyv@npm:^4.5.4":
|
||||
version: 4.5.4
|
||||
resolution: "keyv@npm:4.5.4"
|
||||
dependencies:
|
||||
json-buffer: "npm:3.0.1"
|
||||
checksum: 10c0/aa52f3c5e18e16bb6324876bb8b59dd02acf782a4b789c7b2ae21107fab95fab3890ed448d4f8dba80ce05391eeac4bfabb4f02a20221342982f806fa2cf271e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"levn@npm:^0.4.1":
|
||||
version: 0.4.1
|
||||
resolution: "levn@npm:0.4.1"
|
||||
dependencies:
|
||||
prelude-ls: "npm:^1.2.1"
|
||||
type-check: "npm:~0.4.0"
|
||||
checksum: 10c0/effb03cad7c89dfa5bd4f6989364bfc79994c2042ec5966cb9b95990e2edee5cd8969ddf42616a0373ac49fac1403437deaf6e9050fbbaa3546093a59b9ac94e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"locate-path@npm:^6.0.0":
|
||||
version: 6.0.0
|
||||
resolution: "locate-path@npm:6.0.0"
|
||||
dependencies:
|
||||
p-locate: "npm:^5.0.0"
|
||||
checksum: 10c0/d3972ab70dfe58ce620e64265f90162d247e87159b6126b01314dd67be43d50e96a50b517bce2d9452a79409c7614054c277b5232377de50416564a77ac7aad3
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"lodash.merge@npm:^4.6.2":
|
||||
version: 4.6.2
|
||||
resolution: "lodash.merge@npm:4.6.2"
|
||||
checksum: 10c0/402fa16a1edd7538de5b5903a90228aa48eb5533986ba7fa26606a49db2572bf414ff73a2c9f5d5fd36b31c46a5d5c7e1527749c07cbcf965ccff5fbdf32c506
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"lodash@npm:^4.17.21":
|
||||
version: 4.17.21
|
||||
resolution: "lodash@npm:4.17.21"
|
||||
@@ -954,23 +372,12 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"minimatch@npm:^3.1.2":
|
||||
version: 3.1.2
|
||||
resolution: "minimatch@npm:3.1.2"
|
||||
dependencies:
|
||||
brace-expansion: "npm:^1.1.7"
|
||||
checksum: 10c0/0262810a8fc2e72cca45d6fd86bd349eee435eb95ac6aa45c9ea2180e7ee875ef44c32b55b5973ceabe95ea12682f6e3725cbb63d7a2d1da3ae1163c8b210311
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"mock-api@workspace:.":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "mock-api@workspace:."
|
||||
dependencies:
|
||||
"@msgpack/msgpack": "npm:^2.8.0"
|
||||
"@trivago/prettier-plugin-sort-imports": "npm:^4.3.0"
|
||||
eslint: "npm:^9.10.0"
|
||||
eslint-config-prettier: "npm:^9.1.0"
|
||||
formidable: "npm:^3.5.1"
|
||||
itty-router: "npm:^5.0.18"
|
||||
prettier: "npm:^3.3.3"
|
||||
@@ -984,13 +391,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"natural-compare@npm:^1.4.0":
|
||||
version: 1.4.0
|
||||
resolution: "natural-compare@npm:1.4.0"
|
||||
checksum: 10c0/f5f9a7974bfb28a91afafa254b197f0f22c684d4a1731763dda960d2c8e375b36c7d690e0d9dc8fba774c537af14a7e979129bca23d88d052fbeb9466955e447
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"once@npm:^1.4.0":
|
||||
version: 1.4.0
|
||||
resolution: "once@npm:1.4.0"
|
||||
@@ -1000,61 +400,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"optionator@npm:^0.9.3":
|
||||
version: 0.9.4
|
||||
resolution: "optionator@npm:0.9.4"
|
||||
dependencies:
|
||||
deep-is: "npm:^0.1.3"
|
||||
fast-levenshtein: "npm:^2.0.6"
|
||||
levn: "npm:^0.4.1"
|
||||
prelude-ls: "npm:^1.2.1"
|
||||
type-check: "npm:^0.4.0"
|
||||
word-wrap: "npm:^1.2.5"
|
||||
checksum: 10c0/4afb687a059ee65b61df74dfe87d8d6815cd6883cb8b3d5883a910df72d0f5d029821f37025e4bccf4048873dbdb09acc6d303d27b8f76b1a80dd5a7d5334675
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"p-limit@npm:^3.0.2":
|
||||
version: 3.1.0
|
||||
resolution: "p-limit@npm:3.1.0"
|
||||
dependencies:
|
||||
yocto-queue: "npm:^0.1.0"
|
||||
checksum: 10c0/9db675949dbdc9c3763c89e748d0ef8bdad0afbb24d49ceaf4c46c02c77d30db4e0652ed36d0a0a7a95154335fab810d95c86153105bb73b3a90448e2bb14e1a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"p-locate@npm:^5.0.0":
|
||||
version: 5.0.0
|
||||
resolution: "p-locate@npm:5.0.0"
|
||||
dependencies:
|
||||
p-limit: "npm:^3.0.2"
|
||||
checksum: 10c0/2290d627ab7903b8b70d11d384fee714b797f6040d9278932754a6860845c4d3190603a0772a663c8cb5a7b21d1b16acb3a6487ebcafa9773094edc3dfe6009a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"parent-module@npm:^1.0.0":
|
||||
version: 1.0.1
|
||||
resolution: "parent-module@npm:1.0.1"
|
||||
dependencies:
|
||||
callsites: "npm:^3.0.0"
|
||||
checksum: 10c0/c63d6e80000d4babd11978e0d3fee386ca7752a02b035fd2435960ffaa7219dc42146f07069fb65e6e8bf1caef89daf9af7535a39bddf354d78bf50d8294f556
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"path-exists@npm:^4.0.0":
|
||||
version: 4.0.0
|
||||
resolution: "path-exists@npm:4.0.0"
|
||||
checksum: 10c0/8c0bd3f5238188197dc78dced15207a4716c51cc4e3624c44fc97acf69558f5ebb9a2afff486fe1b4ee148e0c133e96c5e11a9aa5c48a3006e3467da070e5e1b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"path-key@npm:^3.1.0":
|
||||
version: 3.1.1
|
||||
resolution: "path-key@npm:3.1.1"
|
||||
checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"picocolors@npm:^1.0.0":
|
||||
version: 1.0.1
|
||||
resolution: "picocolors@npm:1.0.1"
|
||||
@@ -1062,13 +407,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"prelude-ls@npm:^1.2.1":
|
||||
version: 1.2.1
|
||||
resolution: "prelude-ls@npm:1.2.1"
|
||||
checksum: 10c0/b00d617431e7886c520a6f498a2e14c75ec58f6d93ba48c3b639cf241b54232d90daa05d83a9e9b9fef6baa63cb7e1e4602c2372fea5bc169668401eb127d0cd
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"prettier@npm:^3.3.3":
|
||||
version: 3.3.3
|
||||
resolution: "prettier@npm:3.3.3"
|
||||
@@ -1078,59 +416,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"punycode@npm:^2.1.0":
|
||||
version: 2.3.1
|
||||
resolution: "punycode@npm:2.3.1"
|
||||
checksum: 10c0/14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"queue-microtask@npm:^1.2.2":
|
||||
version: 1.2.3
|
||||
resolution: "queue-microtask@npm:1.2.3"
|
||||
checksum: 10c0/900a93d3cdae3acd7d16f642c29a642aea32c2026446151f0778c62ac089d4b8e6c986811076e1ae180a694cedf077d453a11b58ff0a865629a4f82ab558e102
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"resolve-from@npm:^4.0.0":
|
||||
version: 4.0.0
|
||||
resolution: "resolve-from@npm:4.0.0"
|
||||
checksum: 10c0/8408eec31a3112ef96e3746c37be7d64020cda07c03a920f5024e77290a218ea758b26ca9529fd7b1ad283947f34b2291c1c0f6aa0ed34acfdda9c6014c8d190
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"reusify@npm:^1.0.4":
|
||||
version: 1.0.4
|
||||
resolution: "reusify@npm:1.0.4"
|
||||
checksum: 10c0/c19ef26e4e188f408922c46f7ff480d38e8dfc55d448310dfb518736b23ed2c4f547fb64a6ed5bdba92cd7e7ddc889d36ff78f794816d5e71498d645ef476107
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"run-parallel@npm:^1.1.9":
|
||||
version: 1.2.0
|
||||
resolution: "run-parallel@npm:1.2.0"
|
||||
dependencies:
|
||||
queue-microtask: "npm:^1.2.2"
|
||||
checksum: 10c0/200b5ab25b5b8b7113f9901bfe3afc347e19bb7475b267d55ad0eb86a62a46d77510cb0f232507c9e5d497ebda569a08a9867d0d14f57a82ad5564d991588b39
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"shebang-command@npm:^2.0.0":
|
||||
version: 2.0.0
|
||||
resolution: "shebang-command@npm:2.0.0"
|
||||
dependencies:
|
||||
shebang-regex: "npm:^3.0.0"
|
||||
checksum: 10c0/a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"shebang-regex@npm:^3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "shebang-regex@npm:3.0.0"
|
||||
checksum: 10c0/1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"source-map@npm:^0.5.0":
|
||||
version: 0.5.7
|
||||
resolution: "source-map@npm:0.5.7"
|
||||
@@ -1138,22 +423,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"strip-ansi@npm:^6.0.1":
|
||||
version: 6.0.1
|
||||
resolution: "strip-ansi@npm:6.0.1"
|
||||
dependencies:
|
||||
ansi-regex: "npm:^5.0.1"
|
||||
checksum: 10c0/1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"strip-json-comments@npm:^3.1.1":
|
||||
version: 3.1.1
|
||||
resolution: "strip-json-comments@npm:3.1.1"
|
||||
checksum: 10c0/9681a6257b925a7fa0f285851c0e613cc934a50661fa7bb41ca9cbbff89686bb4a0ee366e6ecedc4daafd01e83eee0720111ab294366fe7c185e935475ebcecd
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"supports-color@npm:^5.3.0":
|
||||
version: 5.5.0
|
||||
resolution: "supports-color@npm:5.5.0"
|
||||
@@ -1163,22 +432,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"supports-color@npm:^7.1.0":
|
||||
version: 7.2.0
|
||||
resolution: "supports-color@npm:7.2.0"
|
||||
dependencies:
|
||||
has-flag: "npm:^4.0.0"
|
||||
checksum: 10c0/afb4c88521b8b136b5f5f95160c98dee7243dc79d5432db7efc27efb219385bbc7d9427398e43dd6cc730a0f87d5085ce1652af7efbe391327bc0a7d0f7fc124
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"text-table@npm:^0.2.0":
|
||||
version: 0.2.0
|
||||
resolution: "text-table@npm:0.2.0"
|
||||
checksum: 10c0/02805740c12851ea5982686810702e2f14369a5f4c5c40a836821e3eefc65ffeec3131ba324692a37608294b0fd8c1e55a2dd571ffed4909822787668ddbee5c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"to-fast-properties@npm:^2.0.0":
|
||||
version: 2.0.0
|
||||
resolution: "to-fast-properties@npm:2.0.0"
|
||||
@@ -1186,52 +439,9 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"type-check@npm:^0.4.0, type-check@npm:~0.4.0":
|
||||
version: 0.4.0
|
||||
resolution: "type-check@npm:0.4.0"
|
||||
dependencies:
|
||||
prelude-ls: "npm:^1.2.1"
|
||||
checksum: 10c0/7b3fd0ed43891e2080bf0c5c504b418fbb3e5c7b9708d3d015037ba2e6323a28152ec163bcb65212741fa5d2022e3075ac3c76440dbd344c9035f818e8ecee58
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"uri-js@npm:^4.2.2":
|
||||
version: 4.4.1
|
||||
resolution: "uri-js@npm:4.4.1"
|
||||
dependencies:
|
||||
punycode: "npm:^2.1.0"
|
||||
checksum: 10c0/4ef57b45aa820d7ac6496e9208559986c665e49447cb072744c13b66925a362d96dd5a46c4530a6b8e203e5db5fe849369444440cb22ecfc26c679359e5dfa3c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"which@npm:^2.0.1":
|
||||
version: 2.0.2
|
||||
resolution: "which@npm:2.0.2"
|
||||
dependencies:
|
||||
isexe: "npm:^2.0.0"
|
||||
bin:
|
||||
node-which: ./bin/node-which
|
||||
checksum: 10c0/66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"word-wrap@npm:^1.2.5":
|
||||
version: 1.2.5
|
||||
resolution: "word-wrap@npm:1.2.5"
|
||||
checksum: 10c0/e0e4a1ca27599c92a6ca4c32260e8a92e8a44f4ef6ef93f803f8ed823f486e0889fc0b93be4db59c8d51b3064951d25e43d434e95dc8c960cc3a63d65d00ba20
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"wrappy@npm:1":
|
||||
version: 1.0.2
|
||||
resolution: "wrappy@npm:1.0.2"
|
||||
checksum: 10c0/56fece1a4018c6a6c8e28fbc88c87e0fbf4ea8fd64fc6c63b18f4acc4bd13e0ad2515189786dd2c30d3eec9663d70f4ecf699330002f8ccb547e4a18231fc9f0
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"yocto-queue@npm:^0.1.0":
|
||||
version: 0.1.0
|
||||
resolution: "yocto-queue@npm:0.1.0"
|
||||
checksum: 10c0/dceb44c28578b31641e13695d200d34ec4ab3966a5729814d5445b194933c096b7ced71494ce53a0e8820685d1d010df8b2422e5bf2cdea7e469d97ffbea306f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -17,22 +17,33 @@
|
||||
|
||||
[platformio]
|
||||
; default_envs = s_16M_P ; BBQKees E32V2
|
||||
; default_envs = s3_16M_P ; BBQKees S3
|
||||
default_envs = s_4M ; BBQKees S32
|
||||
default_envs = s3_16M_P ; BBQKees S3
|
||||
; default_envs = s_4M ; BBQKees S32
|
||||
; default_envs = native
|
||||
; default_envs = debug
|
||||
|
||||
[env]
|
||||
; upload settings
|
||||
; for USB
|
||||
; upload_protocol = esptool
|
||||
upload_port = /dev/ttyUSB*
|
||||
; for OTA add scripts/upload.py to extra_scripts
|
||||
upload_protocol = custom
|
||||
custom_emsesp_ip = 10.10.10.175
|
||||
; custom_emsesp_ip = ems-esp.local
|
||||
; set the username and password for the admin account (default both admin)
|
||||
custom_username = admin
|
||||
custom_password = admin
|
||||
|
||||
; ** upload settings **
|
||||
; for direct USB set:
|
||||
; upload_protocol = esptool
|
||||
; upload_port = /dev/ttyUSB*
|
||||
;
|
||||
; for direct via URL (OTA) set:
|
||||
; upload_protocol = custom
|
||||
; custom_emsesp_ip = <ip address> or ems-esp.local
|
||||
; custom_password = admin
|
||||
|
||||
; upload_protocol = esptool
|
||||
; upload_port = /dev/ttyUSB*
|
||||
|
||||
; upload_protocol = custom
|
||||
; custom_emsesp_ip = 10.10.10.175
|
||||
|
||||
; ** modules **
|
||||
; example below is using a locally built version of EMS-ESP-Modules. You can also test with:
|
||||
; rm -rf .pio/libdeps/native/EMS-ESP-Modules; pio run -e native -t clean; pio run -e native -t exec
|
||||
; lib_deps =
|
||||
@@ -57,7 +68,7 @@ extra_scripts =
|
||||
|
||||
[env:s_4M]
|
||||
extra_scripts =
|
||||
pre:scripts/build_interface.py ; comment out if you don't want to re-build the WebUI each time
|
||||
; pre:scripts/build_interface.py ; comment out if you don't want to re-build the WebUI each time
|
||||
scripts/rename_fw.py
|
||||
scripts/upload.py
|
||||
|
||||
|
||||
1347
project-words.txt
Normal file
1347
project-words.txt
Normal file
File diff suppressed because it is too large
Load Diff
16
scripts/cspell.sh
Normal file
16
scripts/cspell.sh
Normal file
@@ -0,0 +1,16 @@
|
||||
# check spelling
|
||||
# see https://cspell.org/docs/installation/
|
||||
# and https://github.com/streetsidesoftware/vscode-spell-checker/blob/main/FAQ.md
|
||||
|
||||
# go to root top level directory
|
||||
# install cpsell with yarn add --dev cspell@latest
|
||||
|
||||
# first time installation
|
||||
# 1) run `npx cspell "**" --no-progress --unique > words-found-verbose.txt`
|
||||
# and check if there are folders that you should be added to the ignore list in cpsell.json
|
||||
#
|
||||
# 2) then to build up the dictionary with just the words
|
||||
# % npx cspell --words-only --unique "**" | sort --ignore-case > project-words.txt
|
||||
|
||||
# To run a full check on the code do:
|
||||
# % npx cspell "**"
|
||||
@@ -657,7 +657,7 @@ bool AnalogSensor::get_value_info(JsonObject output, const char * cmd, const int
|
||||
// match custom name or sensor GPIO
|
||||
if (cmd == Helpers::toLower(sensor.name()) || Helpers::atoint(cmd) == sensor.gpio()) {
|
||||
get_value_json(output, sensor);
|
||||
return Command::set_attirbute(output, cmd, attribute_s);
|
||||
return Command::set_attribute(output, cmd, attribute_s);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -294,7 +294,7 @@ const char * Command::get_attribute(const char * cmd) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
bool Command::set_attirbute(JsonObject output, const char * cmd, const char * attribute) {
|
||||
bool Command::set_attribute(JsonObject output, const char * cmd, const char * attribute) {
|
||||
if (attribute == nullptr) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -136,7 +136,7 @@ class Command {
|
||||
|
||||
static const char * parse_command_string(const char * command, int8_t & id);
|
||||
static const char * get_attribute(const char * cmd);
|
||||
static bool set_attirbute(JsonObject output, const char * cmd, const char * attirbute);
|
||||
static bool set_attribute(JsonObject output, const char * cmd, const char * attribute);
|
||||
|
||||
static const char * return_code_string(const uint8_t return_code);
|
||||
|
||||
|
||||
@@ -2673,7 +2673,7 @@ bool Boiler::set_ww_circulation_pump(const char * value, const int8_t id) {
|
||||
}
|
||||
|
||||
// Set the mode of circulation, 1x3min, ... 6x3min, continuous
|
||||
// if 0-off, switching is not possibe, if 1-7 switching to off is not possible
|
||||
// if 0-off, switching is not possible, if 1-7 switching to off is not possible
|
||||
bool Boiler::set_ww_circulation_mode(const char * value, const int8_t id) {
|
||||
uint8_t v;
|
||||
if (!Helpers::value2enum(value, v, FL_(enum_freq))) {
|
||||
|
||||
@@ -307,8 +307,8 @@ class Boiler : public EMSdevice {
|
||||
uint8_t wwValve_;
|
||||
|
||||
// special
|
||||
double nrgHeatF_; // double calcutate for nrgHeat
|
||||
double nrgWwF_; // double calcutate for nrgWw
|
||||
double nrgHeatF_; // double calculate for nrgHeat
|
||||
double nrgWwF_; // double calculate for nrgWw
|
||||
uint8_t nomPower_;
|
||||
|
||||
/*
|
||||
|
||||
@@ -25,7 +25,7 @@ REGISTER_FACTORY(Extension, EMSdevice::DeviceType::EXTENSION);
|
||||
Extension::Extension(uint8_t device_type, uint8_t device_id, uint8_t product_id, const char * version, const char * name, uint8_t flags, uint8_t brand)
|
||||
: EMSdevice(device_type, device_id, product_id, version, name, flags, brand) {
|
||||
if (device_id == 0x16) {
|
||||
// no entities for T1RF outdoor sensor, values are comming from RFbase 0x50 (connect)
|
||||
// no entities for T1RF outdoor sensor, values are coming from RFbase 0x50 (connect)
|
||||
return;
|
||||
}
|
||||
// Extension module EM100 device_id 0x12
|
||||
|
||||
@@ -55,7 +55,7 @@ class Thermostat : public EMSdevice {
|
||||
uint8_t summertemp;
|
||||
int8_t nofrosttemp; // signed -20°C to +10°C
|
||||
uint8_t designtemp; // heating curve design temp at MinExtTemp
|
||||
int8_t offsettemp; // heating curve offest temp at roomtemp signed!
|
||||
int8_t offsettemp; // heating curve offset temp at roomtemp signed!
|
||||
uint8_t manualtemp;
|
||||
uint8_t summersetmode;
|
||||
uint8_t hpoperatingmode;
|
||||
|
||||
@@ -1462,7 +1462,7 @@ bool EMSdevice::get_value_info(JsonObject output, const char * cmd, const int8_t
|
||||
if (cmd == Helpers::toLower(dv.short_name) && (tag <= 0 || tag == dv.tag)) {
|
||||
get_value_json(output, dv);
|
||||
// if we're filtering on an attribute, go find it
|
||||
return Command::set_attirbute(output, cmd, attribute_s);
|
||||
return Command::set_attribute(output, cmd, attribute_s);
|
||||
}
|
||||
}
|
||||
return false; // not found, but don't return a message error yet
|
||||
@@ -1664,7 +1664,7 @@ bool EMSdevice::generate_values(JsonObject output, const int8_t tag_filter, cons
|
||||
if (have_tag) {
|
||||
snprintf(name, sizeof(name), "%s %s (%s)", tag_to_string(dv.tag), fullname.c_str(), dv.short_name); // prefix tag
|
||||
// TAG https://github.com/emsesp/EMS-ESP32/issues/1338
|
||||
// snprintf(name, sizeof(name), "%s %s (%s)", fullname.c_str(), tag_to_string(dv.tag), dv.short_name); // sufix tag
|
||||
// snprintf(name, sizeof(name), "%s %s (%s)", fullname.c_str(), tag_to_string(dv.tag), dv.short_name); // suffix tag
|
||||
} else {
|
||||
snprintf(name, sizeof(name), "%s (%s)", fullname.c_str(), dv.short_name);
|
||||
}
|
||||
|
||||
@@ -354,7 +354,7 @@ class EMSdevice {
|
||||
ANALOGSENSOR, // for internal analog sensors
|
||||
SCHEDULER, // for internal schedule
|
||||
CUSTOM, // for user defined entities
|
||||
BOILER, // frome here on enum the ems-devices
|
||||
BOILER, // from here on enum the ems-devices
|
||||
THERMOSTAT,
|
||||
MIXER,
|
||||
SOLAR,
|
||||
|
||||
@@ -815,9 +815,9 @@ bool EMSESP::return_not_found(JsonObject output, const char * msg, const char *
|
||||
// search for recognized device_ids : Me, All, otherwise print hex value
|
||||
std::string EMSESP::device_tostring(const uint8_t device_id) {
|
||||
if ((device_id & 0x7F) == EMSbus::ems_bus_id()) {
|
||||
return "Me";
|
||||
return "me";
|
||||
} else if (device_id == 0x00) {
|
||||
return "All";
|
||||
return "all";
|
||||
} else {
|
||||
char buffer[5];
|
||||
return Helpers::hextoa(buffer, device_id);
|
||||
|
||||
@@ -373,7 +373,7 @@ char * Helpers::render_value(char * result, const uint32_t value, const int8_t f
|
||||
return result;
|
||||
}
|
||||
|
||||
// creates string of hex values from an arrray of bytes
|
||||
// creates string of hex values from an array of bytes
|
||||
std::string Helpers::data_to_hex(const uint8_t * data, const uint8_t length) {
|
||||
if (length == 0) {
|
||||
return "<empty>";
|
||||
|
||||
@@ -354,7 +354,7 @@ MAKE_ENUM(enum_dayOfWeek, FL_(day_mo), FL_(day_tu), FL_(day_we), FL_(day_th), FL
|
||||
MAKE_ENUM(enum_progMode2, FL_(own_1), FL_(family), FL_(morning), FL_(evening), FL_(am), FL_(pm), FL_(midday), FL_(singles), FL_(seniors), FL_(new), FL_(own_2))
|
||||
MAKE_ENUM(enum_progMode3, FL_(family), FL_(morning), FL_(evening), FL_(am), FL_(pm), FL_(midday), FL_(singles), FL_(seniors))
|
||||
MAKE_ENUM(enum_hybridStrategy, FL_(co2_optimized), FL_(cost_optimized), FL_(outside_temp_switched), FL_(co2_cost_mix))
|
||||
MAKE_ENUM(enum_hybridStrategy1, FL_(cost_optimized), FL_(co2_optimized), FL_(outside_temp_alt), FL_(outside_temp_par), FL_(hp_prefered), FL_(boiler_only))
|
||||
MAKE_ENUM(enum_hybridStrategy1, FL_(cost_optimized), FL_(co2_optimized), FL_(outside_temp_alt), FL_(outside_temp_par), FL_(hp_preferred), FL_(boiler_only))
|
||||
MAKE_ENUM(enum_lowNoiseMode, FL_(off), FL_(reduced_output), FL_(switchoff), FL_(perm))
|
||||
|
||||
// heat pump
|
||||
|
||||
@@ -214,7 +214,7 @@ MAKE_WORD_TRANSLATION(hot_water, "hot water", "Warmwasser", "warm water", "varmv
|
||||
MAKE_WORD_TRANSLATION(pool, "pool", "Pool", "zwembad", "pool", "basen", "basseng", "piscine", "havuz", "piscina", "bazén")
|
||||
MAKE_WORD_TRANSLATION(outside_temp_alt, "outside temperature alt.", "Außentemp. alternativ", "alternatieve buitentemperatuur", "Alternativ utomhustemp.", "temp. zewn. alternat.", "alternativ utendørstemp.", "température extérieure alternative", "alternatif dış sıcaklık", "temperatura esterna alternativa", "vonkajšia teplota altern.")
|
||||
MAKE_WORD_TRANSLATION(outside_temp_par, "outside temperature parallel", "Außentemp. parallel", "buitentemperatuur parallel", "Parallell utomhustemp.", "temp. zewn. równoległa", "parallell utendørstemp.", "température extérieure parallèle", "paralel dış sıcaklık", "temperatura esterna parallela", "paralelne s vonkajšou teplotou")
|
||||
MAKE_WORD_TRANSLATION(hp_prefered, "heatpump prefered", "Wärmepumpe bevorzugt", "voorkeur warmtepomp", "Värmepump föredraget", "preferowana pompa ciepła", "varmepumpe prioritert", "pompe à chaleur préférée", "tercih edilen pompa", "pompa di calore preferita", "preferované tepelné čerpadlo")
|
||||
MAKE_WORD_TRANSLATION(hp_preferred, "heatpump prefered", "Wärmepumpe bevorzugt", "voorkeur warmtepomp", "Värmepump föredraget", "preferowana pompa ciepła", "varmepumpe prioritert", "pompe à chaleur préférée", "tercih edilen pompa", "pompa di calore preferita", "preferované tepelné čerpadlo")
|
||||
MAKE_WORD_TRANSLATION(boiler_only, "boiler only", "nur Kessel", "uitsluitend cv ketel", "Värmepanna enbart", "tylko kocioł", "kun kjele", "chaudière uniquement", "sadece kazan", "solo caldaia", "len kotol")
|
||||
MAKE_WORD_TRANSLATION(reduced_output, "reduced output", "Reduzierte Leistung", "gereduceerde output", "Reducerad produktion", "zmniejszona wydajność", "redusert ytelse", "sortie réduite", "düşürülmüş çıkış", "riduzione uscita", "znížený výkon")
|
||||
MAKE_WORD_TRANSLATION(switchoff, "switch off hp", "WP ausschalten", "WP uitschakelen", "Värmepump avstängd", "wyłącz pompę ciepła", "slå av varmepumpe", "éteindre la PAC", "ısı pompasını kapat", "spegnimento pompa calore", "vypnúť tep. čerpadlo")
|
||||
|
||||
@@ -747,7 +747,7 @@ bool Mqtt::queue_ha(const char * topic, const JsonObjectConst payload) {
|
||||
bool Mqtt::publish_ha_sensor_config(DeviceValue & dv, const char * model, const char * brand, const bool remove, const bool create_device_config) {
|
||||
JsonDocument dev_json;
|
||||
|
||||
// always create the ids (discovery indentifiers)
|
||||
// always create the ids (discovery identifiers)
|
||||
// with the name always
|
||||
// and the manufacturer and model if we're creating the device config for the first entity
|
||||
JsonArray ids = dev_json["ids"].to<JsonArray>();
|
||||
|
||||
@@ -203,7 +203,7 @@ void Roomctrl::version(uint8_t addr, uint8_t dst, uint8_t hc) {
|
||||
if (type_[hc] == RC20) {
|
||||
data[5] = 2; // version 2.01
|
||||
data[6] = 1;
|
||||
data[7] = EMSbus::calculate_crc(data, 7); // apppend CRC
|
||||
data[7] = EMSbus::calculate_crc(data, 7); // append CRC
|
||||
EMSuart::transmit(data, 8);
|
||||
return;
|
||||
} else if (type_[hc] == FB10) {
|
||||
@@ -216,7 +216,7 @@ void Roomctrl::version(uint8_t addr, uint8_t dst, uint8_t hc) {
|
||||
data[11] = 0;
|
||||
data[12] = 0;
|
||||
data[13] = 0;
|
||||
data[14] = EMSbus::calculate_crc(data, 14); // apppend CRC
|
||||
data[14] = EMSbus::calculate_crc(data, 14); // append CRC
|
||||
EMSuart::transmit(data, 15);
|
||||
return;
|
||||
} else if (type_[hc] == RC200) {
|
||||
@@ -229,7 +229,7 @@ void Roomctrl::version(uint8_t addr, uint8_t dst, uint8_t hc) {
|
||||
data[11] = 0;
|
||||
data[12] = 0;
|
||||
data[13] = 0;
|
||||
data[14] = EMSbus::calculate_crc(data, 14); // apppend CRC
|
||||
data[14] = EMSbus::calculate_crc(data, 14); // append CRC
|
||||
EMSuart::transmit(data, 15);
|
||||
return;
|
||||
} else if (type_[hc] == RC100H) {
|
||||
@@ -237,7 +237,7 @@ void Roomctrl::version(uint8_t addr, uint8_t dst, uint8_t hc) {
|
||||
data[6] = 4;
|
||||
data[7] = 0;
|
||||
data[8] = 0xFF;
|
||||
data[9] = EMSbus::calculate_crc(data, 9); // apppend CRC
|
||||
data[9] = EMSbus::calculate_crc(data, 9); // append CRC
|
||||
EMSuart::transmit(data, 10);
|
||||
return;
|
||||
} else if (type_[hc] == RC100) {
|
||||
@@ -245,13 +245,13 @@ void Roomctrl::version(uint8_t addr, uint8_t dst, uint8_t hc) {
|
||||
data[6] = 3;
|
||||
data[7] = 0;
|
||||
data[8] = 0xFF;
|
||||
data[9] = EMSbus::calculate_crc(data, 9); // apppend CRC
|
||||
data[9] = EMSbus::calculate_crc(data, 9); // append CRC
|
||||
EMSuart::transmit(data, 10);
|
||||
return;
|
||||
} else if (type_[hc] == RT800) {
|
||||
data[5] = 21; // version 21.03
|
||||
data[6] = 3;
|
||||
data[7] = EMSbus::calculate_crc(data, 7); // apppend CRC
|
||||
data[7] = EMSbus::calculate_crc(data, 7); // append CRC
|
||||
EMSuart::transmit(data, 8);
|
||||
return;
|
||||
}
|
||||
@@ -266,7 +266,7 @@ void Roomctrl::unknown(uint8_t addr, uint8_t dst, uint8_t type, uint8_t offset)
|
||||
data[1] = dst & 0x7F;
|
||||
data[2] = type;
|
||||
data[3] = offset;
|
||||
data[4] = EMSbus::calculate_crc(data, 4); // apppend CRC
|
||||
data[4] = EMSbus::calculate_crc(data, 4); // append CRC
|
||||
EMSuart::transmit(data, 5);
|
||||
}
|
||||
|
||||
@@ -278,7 +278,7 @@ void Roomctrl::unknown(uint8_t addr, uint8_t dst, uint8_t offset, uint8_t typeh,
|
||||
data[3] = offset;
|
||||
data[4] = typeh;
|
||||
data[5] = typel;
|
||||
data[6] = EMSbus::calculate_crc(data, 6); // apppend CRC
|
||||
data[6] = EMSbus::calculate_crc(data, 6); // append CRC
|
||||
EMSuart::transmit(data, 7);
|
||||
}
|
||||
|
||||
@@ -295,7 +295,7 @@ void Roomctrl::temperature(uint8_t addr, uint8_t dst, uint8_t hc) {
|
||||
data[4] = (uint8_t)(remotetemp_[hc] >> 8);
|
||||
data[5] = (uint8_t)(remotetemp_[hc] & 0xFF);
|
||||
data[6] = 0;
|
||||
data[7] = EMSbus::calculate_crc(data, 7); // apppend CRC
|
||||
data[7] = EMSbus::calculate_crc(data, 7); // append CRC
|
||||
EMSuart::transmit(data, 8);
|
||||
} else if (type_[hc] == FB10) { // Junkers FB10, telegram 0x0123
|
||||
data[2] = 0xFF;
|
||||
@@ -304,7 +304,7 @@ void Roomctrl::temperature(uint8_t addr, uint8_t dst, uint8_t hc) {
|
||||
data[5] = 0x23; // fixed for all hc
|
||||
data[6] = (uint8_t)(remotetemp_[hc] >> 8);
|
||||
data[7] = (uint8_t)(remotetemp_[hc] & 0xFF);
|
||||
data[8] = EMSbus::calculate_crc(data, 8); // apppend CRC
|
||||
data[8] = EMSbus::calculate_crc(data, 8); // append CRC
|
||||
EMSuart::transmit(data, 9);
|
||||
} else if (type_[hc] == RC200) { // RC200, telegram 42B, ff
|
||||
data[2] = 0xFF;
|
||||
@@ -317,7 +317,7 @@ void Roomctrl::temperature(uint8_t addr, uint8_t dst, uint8_t hc) {
|
||||
data[8] = (uint8_t)(t1 >> 8);
|
||||
data[9] = (uint8_t)(t1 & 0xFF);
|
||||
data[10] = 1; // not sure what this is and if we need it, maybe mode?
|
||||
data[11] = EMSbus::calculate_crc(data, 11); // apppend CRC
|
||||
data[11] = EMSbus::calculate_crc(data, 11); // append CRC
|
||||
EMSuart::transmit(data, 12);
|
||||
} else if (type_[hc] == RC100H || type_[hc] == RC100) { // RC100H, telegram 42B, ff
|
||||
data[2] = 0xFF;
|
||||
@@ -326,7 +326,7 @@ void Roomctrl::temperature(uint8_t addr, uint8_t dst, uint8_t hc) {
|
||||
data[5] = 0x2B + hc;
|
||||
data[6] = (uint8_t)(remotetemp_[hc] >> 8);
|
||||
data[7] = (uint8_t)(remotetemp_[hc] & 0xFF);
|
||||
data[8] = EMSbus::calculate_crc(data, 8); // apppend CRC
|
||||
data[8] = EMSbus::calculate_crc(data, 8); // append CRC
|
||||
EMSuart::transmit(data, 9);
|
||||
} else if (type_[hc] == SENSOR) { // wireless sensor, broadcast id 435
|
||||
data[2] = 0xFF;
|
||||
@@ -335,7 +335,7 @@ void Roomctrl::temperature(uint8_t addr, uint8_t dst, uint8_t hc) {
|
||||
data[5] = 0x35 + hc;
|
||||
data[6] = (uint8_t)(remotetemp_[hc] >> 8);
|
||||
data[7] = (uint8_t)(remotetemp_[hc] & 0xFF);
|
||||
data[8] = EMSbus::calculate_crc(data, 8); // apppend CRC
|
||||
data[8] = EMSbus::calculate_crc(data, 8); // append CRC
|
||||
EMSuart::transmit(data, 9);
|
||||
} else if (type_[hc] == RT800) { // RC200, telegram 42B, ff
|
||||
data[2] = 0xFF;
|
||||
@@ -349,7 +349,7 @@ void Roomctrl::temperature(uint8_t addr, uint8_t dst, uint8_t hc) {
|
||||
data[9] = (uint8_t)(t1 & 0xFF);
|
||||
data[10] = 1; // not sure what this is and if we need it, maybe mode?
|
||||
data[11] = 9; // not sure what this is and if we need it, maybe mode?
|
||||
data[12] = EMSbus::calculate_crc(data, 12); // apppend CRC
|
||||
data[12] = EMSbus::calculate_crc(data, 12); // append CRC
|
||||
EMSuart::transmit(data, 13);
|
||||
}
|
||||
}
|
||||
@@ -368,7 +368,7 @@ void Roomctrl::humidity(uint8_t addr, uint8_t dst, uint8_t hc) {
|
||||
data[7] = remotehum_[hc];
|
||||
data[8] = (uint8_t)(dew << 8);
|
||||
data[9] = (uint8_t)(dew & 0xFF);
|
||||
data[10] = EMSbus::calculate_crc(data, 10); // apppend CRC
|
||||
data[10] = EMSbus::calculate_crc(data, 10); // append CRC
|
||||
EMSuart::transmit(data, 11);
|
||||
}
|
||||
|
||||
@@ -411,7 +411,7 @@ void Roomctrl::replyF7(uint8_t addr, uint8_t dst, uint8_t offset, uint8_t typehh
|
||||
data[7] = 0;
|
||||
data[8] = 0;
|
||||
}
|
||||
data[9] = EMSbus::calculate_crc(data, 9); // apppend CRC
|
||||
data[9] = EMSbus::calculate_crc(data, 9); // append CRC
|
||||
EMSuart::transmit(data, 10);
|
||||
}
|
||||
|
||||
|
||||
@@ -1435,7 +1435,7 @@ bool System::command_info(const char * value, const int8_t id, JsonObject output
|
||||
|
||||
// System
|
||||
node = output["system"].to<JsonObject>();
|
||||
// prevent false negataive in Unity tests everytime the version changes
|
||||
// prevent false negative in Unity tests every time the version changes
|
||||
#if defined(EMSESP_UNITY)
|
||||
node["version"] = "dev";
|
||||
#else
|
||||
|
||||
@@ -428,7 +428,7 @@ void TxService::send_telegram(const uint8_t * data, const uint8_t length) {
|
||||
for (uint8_t i = 0; i < length; i++) {
|
||||
telegram_raw[i] = data[i];
|
||||
}
|
||||
telegram_raw[length] = calculate_crc(telegram_raw, length); // apppend CRC
|
||||
telegram_raw[length] = calculate_crc(telegram_raw, length); // append CRC
|
||||
|
||||
tx_state(Telegram::Operation::NONE); // no post validation needed
|
||||
|
||||
@@ -656,7 +656,7 @@ uint16_t TxService::read_next_tx(const uint8_t offset, const uint8_t length) {
|
||||
|
||||
// check telegram, length, offset and overflow
|
||||
// some telegrams only reply with one byte less, but have higher offsets (boiler 0x10)
|
||||
// some reply with higher offset than requestes and have not_set values intermediate (boiler 0xEA)
|
||||
// some reply with higher offset than requests and have not_set values intermediate (boiler 0xEA)
|
||||
|
||||
// We have th last byte received
|
||||
if (offset + old_length >= telegram_last_->offset + telegram_last_->message_data[0]) {
|
||||
|
||||
@@ -372,7 +372,7 @@ bool TemperatureSensor::get_value_info(JsonObject output, const char * cmd, cons
|
||||
// match custom name or sensor ID
|
||||
if (cmd == Helpers::toLower(sensor.name()) || cmd == Helpers::toLower(sensor.id())) {
|
||||
get_value_json(output, sensor);
|
||||
return Command::set_attirbute(output, cmd, attribute_s);
|
||||
return Command::set_attribute(output, cmd, attribute_s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -491,7 +491,7 @@ void TemperatureSensor::publish_values(const bool force) {
|
||||
if (Mqtt::discovery_type() == Mqtt::discoveryType::HOMEASSISTANT) {
|
||||
config["val_tpl"] = (std::string) "{{" + val_obj + " if " + val_cond + " else -55}}";
|
||||
} else {
|
||||
config["val_tpl"] = (std::string) "{{" + val_obj + "}}"; // ommit value conditional Jinja2 template code
|
||||
config["val_tpl"] = (std::string) "{{" + val_obj + "}}"; // omit value conditional Jinja2 template code
|
||||
}
|
||||
|
||||
char uniq_s[70];
|
||||
|
||||
@@ -1 +1 @@
|
||||
#define EMSESP_APP_VERSION "3.7.0-dev.35"
|
||||
#define EMSESP_APP_VERSION "3.7.0-dev.36"
|
||||
|
||||
@@ -315,7 +315,7 @@ bool WebCustomEntityService::get_value_info(JsonObject output, const char * cmd)
|
||||
for (const auto & entity : *customEntityItems_) {
|
||||
if (Helpers::toLower(entity.name) == cmd) {
|
||||
get_value_json(output, entity);
|
||||
return Command::set_attirbute(output, cmd, attribute_s);
|
||||
return Command::set_attribute(output, cmd, attribute_s);
|
||||
}
|
||||
}
|
||||
return false; // not found
|
||||
|
||||
@@ -27,9 +27,6 @@ WebLogService::WebLogService(AsyncWebServer * server, SecurityManager * security
|
||||
// get & set settings
|
||||
server->on(EMSESP_LOG_SETTINGS_PATH, [this](AsyncWebServerRequest * request, JsonVariant json) { getSetValues(request, json); });
|
||||
|
||||
// for bring back the whole log - is a command, hence a POST
|
||||
server->on(EMSESP_FETCH_LOG_PATH, HTTP_POST, [this](AsyncWebServerRequest * request) { fetchLog(request); });
|
||||
|
||||
// events_.setFilter(securityManager->filterRequest(AuthenticationPredicates::IS_ADMIN));
|
||||
server->addHandler(&events_);
|
||||
}
|
||||
@@ -183,11 +180,13 @@ void WebLogService::loop() {
|
||||
return;
|
||||
}
|
||||
|
||||
// put a small delay in
|
||||
/*
|
||||
// put a small delay in - https://github.com/emsesp/EMS-ESP32/issues/1652
|
||||
if (uuid::get_uptime_ms() - last_transmit_ < REFRESH_SYNC) {
|
||||
return;
|
||||
}
|
||||
last_transmit_ = uuid::get_uptime_ms();
|
||||
*/
|
||||
|
||||
// flush
|
||||
for (const auto & message : log_messages_) {
|
||||
@@ -234,13 +233,6 @@ void WebLogService::transmit(const QueuedLogMessage & message) {
|
||||
delete[] buffer;
|
||||
}
|
||||
|
||||
// send the complete log buffer to the API, not filtering on log level
|
||||
// done by resetting the pointer
|
||||
void WebLogService::fetchLog(AsyncWebServerRequest * request) {
|
||||
log_message_id_tail_ = 0;
|
||||
request->send(200);
|
||||
}
|
||||
|
||||
// sets the values after a POST
|
||||
void WebLogService::getSetValues(AsyncWebServerRequest * request, JsonVariant json) {
|
||||
if ((request->method() == HTTP_GET) || (!json.is<JsonObject>())) {
|
||||
@@ -254,9 +246,14 @@ void WebLogService::getSetValues(AsyncWebServerRequest * request, JsonVariant js
|
||||
|
||||
response->setLength();
|
||||
request->send(response);
|
||||
|
||||
// reset the tail pointer so complete log is sent
|
||||
log_message_id_tail_ = 0;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// POST - set the values
|
||||
auto && body = json.as<JsonObject>();
|
||||
|
||||
uuid::log::Level level = body["level"];
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
#define WebLogService_h
|
||||
|
||||
#define EMSESP_EVENT_SOURCE_LOG_PATH "/es/log"
|
||||
#define EMSESP_FETCH_LOG_PATH "/rest/fetchLog"
|
||||
#define EMSESP_LOG_SETTINGS_PATH "/rest/logSettings"
|
||||
|
||||
using ::uuid::console::Shell;
|
||||
@@ -29,8 +28,8 @@ namespace emsesp {
|
||||
|
||||
class WebLogService : public uuid::log::Handler {
|
||||
public:
|
||||
static constexpr size_t MAX_LOG_MESSAGES = 50;
|
||||
static constexpr size_t REFRESH_SYNC = 30;
|
||||
static constexpr size_t MAX_LOG_MESSAGES = 25;
|
||||
// static constexpr size_t REFRESH_SYNC = 30;
|
||||
|
||||
WebLogService(AsyncWebServer * server, SecurityManager * securityManager);
|
||||
|
||||
@@ -62,7 +61,6 @@ class WebLogService : public uuid::log::Handler {
|
||||
};
|
||||
|
||||
void transmit(const QueuedLogMessage & message);
|
||||
void fetchLog(AsyncWebServerRequest * request);
|
||||
void getSetValues(AsyncWebServerRequest * request, JsonVariant json);
|
||||
|
||||
char * messagetime(char * out, const uint64_t t, const size_t bufsize);
|
||||
|
||||
@@ -172,7 +172,7 @@ bool WebSchedulerService::get_value_info(JsonObject output, const char * cmd) {
|
||||
for (const ScheduleItem & scheduleItem : *scheduleItems_) {
|
||||
if (Helpers::toLower(scheduleItem.name) == cmd) {
|
||||
get_value_json(output, scheduleItem);
|
||||
return Command::set_attirbute(output, cmd, attribute_s);
|
||||
return Command::set_attribute(output, cmd, attribute_s);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -129,7 +129,7 @@ void uart_telegram(const char * rx_data) {
|
||||
EMSESP::incoming_telegram(data, count + 2);
|
||||
}
|
||||
|
||||
// add an EMS device and regiser it
|
||||
// add an EMS device and register it
|
||||
void add_device(uint8_t device_id, uint8_t product_id) {
|
||||
uart_telegram({device_id, 0x0B, EMSdevice::EMS_TYPE_VERSION, 0, product_id, 1, 0});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user