diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 3afe24493..cad647ba7 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,13 +1,9 @@ { - // See http://go.microsoft.com/fwlink/?LinkId=827846 - // for the documentation about the extensions.json format - "recommendations": [ - "arcanis.vscode-zipfs", - "dbaeumer.vscode-eslint", - "esbenp.prettier-vscode", - "platformio.platformio-ide" - ], - "unwantedRecommendations": [ - "ms-vscode.cpptools-extension-pack" - ] + "recommendations": [ + "arcanis.vscode-zipfs", + "dbaeumer.vscode-eslint", + "esbenp.prettier-vscode", + "platformio.platformio-ide" + ], + "unwantedRecommendations": ["ms-vscode.cpptools-extension-pack"] } diff --git a/.vscode/settings.json b/.vscode/settings.json index 65809f694..4bba87e57 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -4,6 +4,7 @@ "**/.pnp.*": true }, "eslint.nodePath": "interface/.yarn/sdks", + "eslint.workingDirectories": ["interface"], "prettier.prettierPath": "interface/.yarn/sdks/prettier/index.js", "typescript.tsdk": "interface/.yarn/sdks/typescript/lib", "typescript.enablePromptUseWorkspaceTsdk": true diff --git a/interface/.eslintignore b/interface/.eslintignore index 68ad634f1..55ba94de1 100644 --- a/interface/.eslintignore +++ b/interface/.eslintignore @@ -5,3 +5,5 @@ dist/ .eslintrc* .yarn/ env.d.ts +progmem-generator.js +vite.config.ts \ No newline at end of file diff --git a/interface/.eslintrc.js b/interface/.eslintrc.js deleted file mode 100644 index 2f7ef4881..000000000 --- a/interface/.eslintrc.js +++ /dev/null @@ -1,50 +0,0 @@ -module.exports = { - plugins: ['@typescript-eslint', 'deprecation'], - extends: [ - // By extending from a plugin config, we can get recommended rules without having to add them manually. - 'eslint:recommended', - 'plugin:react/recommended', - 'plugin:import/recommended', - 'plugin:import/typescript', - 'plugin:jsx-a11y/recommended', - 'plugin:@typescript-eslint/recommended', - // This disables the formatting rules in ESLint that Prettier is going to be responsible for handling. - // Make sure it's always the last config, so it gets the chance to override other configs. - 'eslint-config-prettier' - ], - settings: { - react: { - // Tells eslint-plugin-react to automatically detect the version of React to use. - version: 'detect' - }, - // Tells eslint how to resolve imports - 'import/resolver': { - node: { - paths: ['src'], - extensions: ['.js', '.jsx', '.ts', '.tsx'] - }, - typescript: { - alwaysTryTypes: true // always try to resolve types under `@types` directory even it doesn't contain any source code, like `@types/unist` - } - } - }, - parserOptions: { - ecmaVersion: 2020, - sourceType: 'module', - project: ['tsconfig.json'], - createDefaultProgram: true - }, - rules: { - // Add your own rules here to override ones from the extended configs. - 'react/react-in-jsx-scope': 'off', - '@typescript-eslint/no-explicit-any': 'off', - 'jsx-a11y/no-autofocus': 'off', - 'react-refresh/only-export-components': 'off', - 'no-console': 'warn', - 'react/prop-types': 'off', - 'react/self-closing-comp': 'warn', - '@typescript-eslint/consistent-type-definitions': ['off', 'type'], - '@typescript-eslint/explicit-function-return-type': 'off', - 'deprecation/deprecation': 'warn' - } -}; diff --git a/interface/.eslintrc.json b/interface/.eslintrc.json new file mode 100644 index 000000000..135736d0f --- /dev/null +++ b/interface/.eslintrc.json @@ -0,0 +1,64 @@ +{ + "env": { + "browser": true, + "es6": true + }, + "extends": [ + "eslint:recommended", + "airbnb/hooks", + "airbnb-typescript", + "plugin:react/recommended", + "plugin:react/jsx-runtime", + "plugin:@typescript-eslint/recommended", + "plugin:@typescript-eslint/recommended-requiring-type-checking", + "plugin:prettier/recommended", + "plugin:import/recommended" + ], + "parser": "@typescript-eslint/parser", + "parserOptions": { + "ecmaFeatures": { + "jsx": true + }, + "ecmaVersion": "latest", + "sourceType": "module", + "tsconfigRootDir": ".", + "project": ["tsconfig.json"] + }, + "plugins": ["react", "@typescript-eslint"], + "settings": { + "import/resolver": { + "typescript": { + "project": "./tsconfig.json" + } + }, + "react": { + "version": "18.x" + } + }, + "rules": { + "react-hooks/exhaustive-deps": "off", + "object-shorthand": "error", + "no-console": "warn", + "@typescript-eslint/consistent-type-definitions": ["off", "type"], + "@typescript-eslint/explicit-function-return-type": "off", + "@typescript-eslint/no-unsafe-call": "off", + "@typescript-eslint/no-unsafe-assignment": "off", + "@typescript-eslint/no-unsafe-return": "off", + "@typescript-eslint/no-unsafe-member-access": "off", + "@typescript-eslint/naming-convention": "off", + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-unsafe-argument": "off", + "@typescript-eslint/restrict-plus-operands": "off", + "@typescript-eslint/no-unused-expressions": "off", + "@typescript-eslint/no-implied-eval": "off", + "@typescript-eslint/ban-types": [ + "error", + { + "extendDefaults": true, + "types": { + "{}": false + } + } + ] + } +} diff --git a/interface/.typesafe-i18n.json b/interface/.typesafe-i18n.json index c4dc70594..72661eea2 100644 --- a/interface/.typesafe-i18n.json +++ b/interface/.typesafe-i18n.json @@ -1,5 +1,5 @@ { - "adapter": "react", - "baseLocale": "pl", - "$schema": "https://unpkg.com/typesafe-i18n@5.24.2/schema/typesafe-i18n.json" -} + "adapter": "react", + "baseLocale": "pl", + "$schema": "https://unpkg.com/typesafe-i18n@5.24.3/schema/typesafe-i18n.json" +} \ No newline at end of file diff --git a/interface/.yarn/sdks/eslint/package.json b/interface/.yarn/sdks/eslint/package.json index 1393f7747..d11b06452 100644 --- a/interface/.yarn/sdks/eslint/package.json +++ b/interface/.yarn/sdks/eslint/package.json @@ -1,6 +1,6 @@ { "name": "eslint", - "version": "8.35.0-sdk", + "version": "8.36.0-sdk", "main": "./lib/api.js", "type": "commonjs" } diff --git a/interface/.yarn/sdks/prettier/package.json b/interface/.yarn/sdks/prettier/package.json index f2362f14d..516b75094 100644 --- a/interface/.yarn/sdks/prettier/package.json +++ b/interface/.yarn/sdks/prettier/package.json @@ -1,6 +1,6 @@ { "name": "prettier", - "version": "2.8.4-sdk", + "version": "2.8.7-sdk", "main": "./index.js", "type": "commonjs" } diff --git a/interface/.yarn/sdks/typescript/package.json b/interface/.yarn/sdks/typescript/package.json index 14f22f288..2cf656365 100644 --- a/interface/.yarn/sdks/typescript/package.json +++ b/interface/.yarn/sdks/typescript/package.json @@ -1,6 +1,6 @@ { "name": "typescript", - "version": "4.9.5-sdk", + "version": "5.0.2-sdk", "main": "./lib/typescript.js", "type": "commonjs" } diff --git a/interface/package.json b/interface/package.json index e0e3b36a1..597ba7247 100644 --- a/interface/package.json +++ b/interface/package.json @@ -16,8 +16,7 @@ "standalone": "npm-run-all -p dev typesafe-i18n mock-api", "typesafe-i18n": "typesafe-i18n", "format": "prettier --write '**/*.{ts,tsx,js,css,json,md}'", - "lint": "tsc --noEmit && eslint src/**/*.ts{,x} --cache --max-warnings=0", - "lint:fix": "eslint src/**/*.ts{,x} --fix" + "lint": "eslint . --cache --max-warnings=0" }, "dependencies": { "@emotion/react": "^11.10.6", @@ -28,8 +27,8 @@ "@remix-run/router": "^1.4.0", "@table-library/react-table-library": "4.1.0", "@types/lodash-es": "^4.17.7", - "@types/node": "^18.15.7", - "@types/react": "^18.0.28", + "@types/node": "^18.15.10", + "@types/react": "^18.0.29", "@types/react-dom": "^18.0.11", "@types/react-router-dom": "^5.3.3", "@yarnpkg/pnpify": "^4.0.0-rc.40", @@ -46,7 +45,7 @@ "react-router-dom": "^6.9.0", "react-toastify": "^9.1.2", "sockette": "^2.0.6", - "typesafe-i18n": "^5.24.2", + "typesafe-i18n": "^5.24.3", "typescript": "^5.0.2" }, "devDependencies": { @@ -60,7 +59,6 @@ "eslint-config-airbnb-typescript": "^17.0.0", "eslint-config-prettier": "^8.8.0", "eslint-import-resolver-typescript": "^3.5.3", - "eslint-plugin-deprecation": "^1.3.3", "eslint-plugin-import": "^2.27.5", "eslint-plugin-jsx-a11y": "^6.7.1", "eslint-plugin-prettier": "^4.2.1", @@ -70,7 +68,7 @@ "npm-run-all": "^4.1.5", "prettier": "^2.8.7", "rollup-plugin-visualizer": "^5.9.0", - "terser": "^5.16.6", + "terser": "^5.16.8", "vite": "^4.2.1", "vite-plugin-minify": "^1.5.2", "vite-plugin-svgr": "^2.4.0", diff --git a/interface/src/SignIn.tsx b/interface/src/SignIn.tsx index 495f0f946..85881c2f8 100644 --- a/interface/src/SignIn.tsx +++ b/interface/src/SignIn.tsx @@ -30,6 +30,8 @@ import { ReactComponent as TRflag } from 'i18n/TR.svg'; const SignIn: FC = () => { const authenticationContext = useContext(AuthenticationContext); + const { LL, setLocale, locale } = useContext(I18nContext); + const [signInRequest, setSignInRequest] = useState({ username: '', password: '' @@ -39,20 +41,6 @@ const SignIn: FC = () => { const updateLoginRequestValue = updateValue(setSignInRequest); - const validateAndSignIn = async () => { - setProcessing(true); - SIGN_IN_REQUEST_VALIDATOR.messages({ - required: LL.IS_REQUIRED('%s') - }); - try { - await validate(SIGN_IN_REQUEST_VALIDATOR, signInRequest); - signIn(); - } catch (errors: any) { - setFieldErrors(errors); - setProcessing(false); - } - }; - const signIn = async () => { try { const { data: loginResponse } = await AuthenticationApi.signIn(signInRequest); @@ -69,9 +57,21 @@ const SignIn: FC = () => { } }; - const submitOnEnter = onEnterCallback(signIn); + const validateAndSignIn = async () => { + setProcessing(true); + SIGN_IN_REQUEST_VALIDATOR.messages({ + required: LL.IS_REQUIRED('%s') + }); + try { + await validate(SIGN_IN_REQUEST_VALIDATOR, signInRequest); + signIn(); + } catch (errors: any) { + setFieldErrors(errors); + setProcessing(false); + } + }; - const { LL, setLocale, locale } = useContext(I18nContext); + const submitOnEnter = onEnterCallback(signIn); const selectLocale = async (loc: Locales) => { localStorage.setItem('lang', loc); diff --git a/interface/src/api/endpoints.ts b/interface/src/api/endpoints.ts index 4516fbc8f..18ad2a612 100644 --- a/interface/src/api/endpoints.ts +++ b/interface/src/api/endpoints.ts @@ -7,8 +7,11 @@ export const API_BASE_URL = '/rest/'; export const ES_BASE_URL = '/es/'; export const EMSESP_API_BASE_URL = '/api/'; export const ACCESS_TOKEN = 'access_token'; -export const WEB_SOCKET_ROOT = calculateWebSocketRoot(WS_BASE_URL); -export const EVENT_SOURCE_ROOT = calculateEventSourceRoot(ES_BASE_URL); + +const location = window.location; +const webProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:'; +export const WEB_SOCKET_ROOT = webProtocol + '//' + location.host + WS_BASE_URL; +export const EVENT_SOURCE_ROOT = location.protocol + '//' + location.host + ES_BASE_URL; export const AXIOS = axios.create({ baseURL: API_BASE_URL, @@ -76,17 +79,6 @@ export const AXIOS_BIN = axios.create({ ] }); -function calculateWebSocketRoot(webSocketPath: string) { - const location = window.location; - const webProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:'; - return webProtocol + '//' + location.host + webSocketPath; -} - -function calculateEventSourceRoot(endpointPath: string) { - const location = window.location; - return location.protocol + '//' + location.host + endpointPath; -} - export interface FileUploadConfig { cancelToken?: CancelToken; onUploadProgress?: (progressEvent: AxiosProgressEvent) => void; diff --git a/interface/src/components/routing/RouterTabs.tsx b/interface/src/components/routing/RouterTabs.tsx index 7a4adf531..c16b77ba6 100644 --- a/interface/src/components/routing/RouterTabs.tsx +++ b/interface/src/components/routing/RouterTabs.tsx @@ -1,4 +1,4 @@ -import React, { FC } from 'react'; +import { FC } from 'react'; import { useNavigate } from 'react-router-dom'; import { Tabs, useMediaQuery, useTheme } from '@mui/material'; @@ -15,7 +15,7 @@ const RouterTabs: FC = ({ value, children }) => { const theme = useTheme(); const smallDown = useMediaQuery(theme.breakpoints.down('sm')); - const handleTabChange = (event: React.ChangeEvent<{}>, path: string) => { + const handleTabChange = (event: React.ChangeEvent, path: string) => { navigate(path); }; diff --git a/interface/src/framework/mqtt/Mqtt.tsx b/interface/src/framework/mqtt/Mqtt.tsx index dcd3456fe..9af749753 100644 --- a/interface/src/framework/mqtt/Mqtt.tsx +++ b/interface/src/framework/mqtt/Mqtt.tsx @@ -1,4 +1,4 @@ -import React, { FC, useContext } from 'react'; +import { FC, useContext } from 'react'; import { Navigate, Route, Routes } from 'react-router-dom'; import { Tab } from '@mui/material'; diff --git a/interface/src/framework/security/UserForm.tsx b/interface/src/framework/security/UserForm.tsx index 57b88472c..f17c9dfbd 100644 --- a/interface/src/framework/security/UserForm.tsx +++ b/interface/src/framework/security/UserForm.tsx @@ -1,4 +1,4 @@ -import React, { FC, useState, useEffect } from 'react'; +import { FC, useState, useEffect } from 'react'; import Schema, { ValidateFieldsError } from 'async-validator'; import CancelIcon from '@mui/icons-material/Cancel'; diff --git a/interface/src/index.tsx b/interface/src/index.tsx index 4e58d6474..f35083f0b 100644 --- a/interface/src/index.tsx +++ b/interface/src/index.tsx @@ -1,13 +1,13 @@ -import React from 'react'; -import ReactDOM from 'react-dom/client'; +import { StrictMode } from 'react'; +import { createRoot } from 'react-dom/client'; import { createBrowserRouter, createRoutesFromElements, Route, RouterProvider } from 'react-router-dom'; import App from 'App'; const router = createBrowserRouter(createRoutesFromElements(} />)); -ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( - +createRoot(document.getElementById('root') as HTMLElement).render( + - + ); diff --git a/interface/src/project/DashboardData.tsx b/interface/src/project/DashboardData.tsx index bb4d7f335..15ffcc6cf 100644 --- a/interface/src/project/DashboardData.tsx +++ b/interface/src/project/DashboardData.tsx @@ -102,7 +102,6 @@ const DashboardData: FC = () => { text-transform: uppercase; background-color: black; color: #90CAF9; - .th { border-bottom: 1px solid #565656; } @@ -111,18 +110,15 @@ const DashboardData: FC = () => { background-color: #1e1e1e; position: relative; cursor: pointer; - .td { padding: 8px; border-top: 1px solid #565656; border-bottom: 1px solid #565656; } - &.tr.tr-body.row-select.row-select-single-selected { background-color: #3d4752; font-weight: normal; } - &:hover .td { border-top: 1px solid #177ac9; border-bottom: 1px solid #177ac9; @@ -279,6 +275,53 @@ const DashboardData: FC = () => { } ); + const fetchSensorData = async () => { + try { + setSensorData((await EMSESP.readSensorData()).data); + } catch (error) { + toast.error(extractErrorMessage(error, LL.PROBLEM_LOADING())); + } + }; + + const fetchDeviceData = async (id: string) => { + const unique_id = parseInt(id); + try { + setDeviceData((await EMSESP.readDeviceData({ id: unique_id })).data); + } catch (error) { + toast.error(extractErrorMessage(error, LL.PROBLEM_LOADING())); + } + }; + + const fetchCoreData = useCallback(async () => { + try { + setCoreData((await EMSESP.readCoreData()).data); + } catch (error) { + toast.error(extractErrorMessage(error, LL.PROBLEM_LOADING())); + } + }, [LL]); + + useEffect(() => { + fetchCoreData(); + }, [fetchCoreData]); + + const refreshDataIndex = (selectedDevice: string) => { + if (selectedDevice === 'sensor') { + fetchSensorData(); + return; + } + + setSensorData({ sensors: [], analogs: [] }); + if (selectedDevice) { + fetchDeviceData(selectedDevice); + } else { + fetchCoreData(); + } + }; + + const refreshData = () => { + refreshDataIndex(device_select.state.id); + }; + function onSelectChange(action: any, state: any) { if (action.type === 'ADD_BY_ID_EXCLUSIVELY') { refreshData(); @@ -337,36 +380,6 @@ const DashboardData: FC = () => { ); }; - const refreshDataIndex = (selectedDevice: string) => { - if (selectedDevice === 'sensor') { - fetchSensorData(); - return; - } - - setSensorData({ sensors: [], analogs: [] }); - if (selectedDevice) { - fetchDeviceData(selectedDevice); - } else { - fetchCoreData(); - } - }; - - const refreshData = () => { - refreshDataIndex(device_select.state.id); - }; - - const fetchCoreData = useCallback(async () => { - try { - setCoreData((await EMSESP.readCoreData()).data); - } catch (error) { - toast.error(extractErrorMessage(error, LL.PROBLEM_LOADING())); - } - }, [LL]); - - useEffect(() => { - fetchCoreData(); - }, [fetchCoreData]); - useEffect(() => { const timer = setInterval(() => refreshData(), 60000); return () => { @@ -375,23 +388,6 @@ const DashboardData: FC = () => { // eslint-disable-next-line }, [analog, sensor, deviceValue, sensorData]); - const fetchDeviceData = async (id: string) => { - const unique_id = parseInt(id); - try { - setDeviceData((await EMSESP.readDeviceData({ id: unique_id })).data); - } catch (error) { - toast.error(extractErrorMessage(error, LL.PROBLEM_LOADING())); - } - }; - - const fetchSensorData = async () => { - try { - setSensorData((await EMSESP.readSensorData()).data); - } catch (error) { - toast.error(extractErrorMessage(error, LL.PROBLEM_LOADING())); - } - }; - const isCmdOnly = (dv: DeviceValue) => dv.v === '' && dv.c; const formatDurationMin = (duration_min: number) => { diff --git a/interface/src/project/SettingsApplication.tsx b/interface/src/project/SettingsApplication.tsx index de17c6179..78481bebd 100644 --- a/interface/src/project/SettingsApplication.tsx +++ b/interface/src/project/SettingsApplication.tsx @@ -63,14 +63,14 @@ const SettingsApplication: FC = () => { const [fieldErrors, setFieldErrors] = useState(); const [processingBoard, setProcessingBoard] = useState(false); - const updateBoardProfile = async (board_profile: string) => { + const updateBoardProfile = async (boardProfile: string) => { setProcessingBoard(true); try { - const response = await EMSESP.getBoardProfile({ board_profile: board_profile }); + const response = await EMSESP.getBoardProfile({ board_profile: boardProfile }); if (data) { setData({ ...data, - board_profile: board_profile, + board_profile: boardProfile, led_gpio: response.data.led_gpio, dallas_gpio: response.data.dallas_gpio, rx_gpio: response.data.rx_gpio, @@ -105,15 +105,15 @@ const SettingsApplication: FC = () => { }; const changeBoardProfile = (event: React.ChangeEvent) => { - const board_profile = event.target.value; + const boardProfile = event.target.value; updateFormValue(event); - if (board_profile === 'CUSTOM') { + if (boardProfile === 'CUSTOM') { setData({ ...data, - board_profile: board_profile + board_profile: boardProfile }); } else { - updateBoardProfile(board_profile); + updateBoardProfile(boardProfile); } }; diff --git a/interface/src/project/SettingsCustomization.tsx b/interface/src/project/SettingsCustomization.tsx index 00e2b5711..d727ef613 100644 --- a/interface/src/project/SettingsCustomization.tsx +++ b/interface/src/project/SettingsCustomization.tsx @@ -70,6 +70,32 @@ const SettingsCustomization: FC = () => { // eslint-disable-next-line const [masks, setMasks] = useState(() => ['']); + function hasEntityChanged(de: DeviceEntity) { + return (de?.cn || '') !== (de?.o_cn || '') || de.m !== de.o_m || de.ma !== de.o_ma || de.mi !== de.o_mi; + } + + const getChanges = () => { + if (!deviceEntities || selectedDevice === -1) { + return []; + } + + return deviceEntities + .filter((de) => hasEntityChanged(de)) + .map( + (new_de) => + new_de.m.toString(16).padStart(2, '0') + + new_de.id + + (new_de.cn || new_de.mi || new_de.ma ? '|' : '') + + (new_de.cn ? new_de.cn : '') + + (new_de.mi ? '>' + new_de.mi : '') + + (new_de.ma ? '<' + new_de.ma : '') + ); + }; + + const countChanges = () => { + setNumChanges(getChanges().length); + }; + useEffect(() => { countChanges(); }); @@ -261,32 +287,6 @@ const SettingsCustomization: FC = () => { } }; - function hasEntityChanged(de: DeviceEntity) { - return (de?.cn || '') !== (de?.o_cn || '') || de.m !== de.o_m || de.ma !== de.o_ma || de.mi !== de.o_mi; - } - - const getChanges = () => { - if (!deviceEntities || selectedDevice === -1) { - return []; - } - - return deviceEntities - .filter((de) => hasEntityChanged(de)) - .map( - (new_de) => - new_de.m.toString(16).padStart(2, '0') + - new_de.id + - (new_de.cn || new_de.mi || new_de.ma ? '|' : '') + - (new_de.cn ? new_de.cn : '') + - (new_de.mi ? '>' + new_de.mi : '') + - (new_de.ma ? '<' + new_de.ma : '') - ); - }; - - const countChanges = () => { - setNumChanges(getChanges().length); - }; - const restart = async () => { try { await EMSESP.restart(); diff --git a/interface/src/project/SettingsScheduler.tsx b/interface/src/project/SettingsScheduler.tsx index b4681f184..344a67a63 100644 --- a/interface/src/project/SettingsScheduler.tsx +++ b/interface/src/project/SettingsScheduler.tsx @@ -92,6 +92,26 @@ const SettingsScheduler: FC = () => { return days.map((date) => formatter.format(date)); } + function hasScheduleChanged(si: ScheduleItem) { + return ( + si.id !== si.o_id || + (si?.name || '') !== (si?.o_name || '') || + si.active !== si.o_active || + si.deleted !== si.o_deleted || + si.flags !== si.o_flags || + si.time !== si.o_time || + si.cmd !== si.o_cmd || + si.value !== si.o_value + ); + } + + const getNumChanges = () => { + if (!schedule) { + return 0; + } + return schedule.filter((si) => hasScheduleChanged(si)).length; + }; + useEffect(() => { setNumChanges(getNumChanges()); }); @@ -141,20 +161,6 @@ const SettingsScheduler: FC = () => { ` }); - const fetchSchedule = useCallback(async () => { - try { - const response = await EMSESP.readSchedule(); - setOriginalSchedule(response.data.schedule); - } catch (error) { - setErrorMessage(extractErrorMessage(error, LL.PROBLEM_LOADING())); - } - setDow(getDayNames()); - }, [LL]); - - useEffect(() => { - fetchSchedule(); - }, [fetchSchedule]); - const setOriginalSchedule = (data: ScheduleItem[]) => { setSchedule( data.map((si) => ({ @@ -171,6 +177,20 @@ const SettingsScheduler: FC = () => { ); }; + const fetchSchedule = useCallback(async () => { + try { + const response = await EMSESP.readSchedule(); + setOriginalSchedule(response.data.schedule); + } catch (error) { + setErrorMessage(extractErrorMessage(error, LL.PROBLEM_LOADING())); + } + setDow(getDayNames()); + }, [LL]); + + useEffect(() => { + fetchSchedule(); + }, [fetchSchedule]); + const getFlagNumber = (newFlag: string[]) => { let new_flag = 0; for (const entry of newFlag) { @@ -208,26 +228,6 @@ const SettingsScheduler: FC = () => { return new_flags; }; - function hasScheduleChanged(si: ScheduleItem) { - return ( - si.id !== si.o_id || - (si?.name || '') !== (si?.o_name || '') || - si.active !== si.o_active || - si.deleted !== si.o_deleted || - si.flags !== si.o_flags || - si.time !== si.o_time || - si.cmd !== si.o_cmd || - si.value !== si.o_value - ); - } - - const getNumChanges = () => { - if (!schedule) { - return 0; - } - return schedule.filter((si) => hasScheduleChanged(si)).length; - }; - const saveSchedule = async () => { if (schedule) { try { diff --git a/interface/src/project/validators.ts b/interface/src/project/validators.ts index 7c2900572..f50e29f03 100644 --- a/interface/src/project/validators.ts +++ b/interface/src/project/validators.ts @@ -85,6 +85,16 @@ export const createSettingsValidator = (settings: Settings) => }) }); +export const uniqueNameValidator = (schedule: ScheduleItem[], o_name?: string) => ({ + validator(rule: InternalRuleItem, name: string, callback: (error?: string) => void) { + if (name && o_name && o_name !== name && schedule.find((si) => si.name === name)) { + callback('Name already in use'); + } else { + callback(); + } + } +}); + export const schedulerItemValidation = (schedule: ScheduleItem[], scheduleItem: ScheduleItem) => new Schema({ name: [ @@ -100,13 +110,3 @@ export const schedulerItemValidation = (schedule: ScheduleItem[], scheduleItem: { type: 'string', min: 1, max: 64, message: 'Command must be 1-64 characters' } ] }); - -export const uniqueNameValidator = (schedule: ScheduleItem[], o_name?: string) => ({ - validator(rule: InternalRuleItem, name: string, callback: (error?: string) => void) { - if (name && o_name && o_name !== name && schedule.find((si) => si.name === name)) { - callback('Name already in use'); - } else { - callback(); - } - } -}); diff --git a/interface/src/validators/security.ts b/interface/src/validators/security.ts index d3dea66e7..feb9498e2 100644 --- a/interface/src/validators/security.ts +++ b/interface/src/validators/security.ts @@ -8,6 +8,16 @@ export const SECURITY_SETTINGS_VALIDATOR = new Schema({ ] }); +export const createUniqueUsernameValidator = (users: User[]) => ({ + validator(rule: InternalRuleItem, username: string, callback: (error?: string) => void) { + if (username && users.find((u) => u.username === username)) { + callback('Username already in use'); + } else { + callback(); + } + } +}); + export const createUserValidator = (users: User[], creating: boolean) => new Schema({ username: [ @@ -24,13 +34,3 @@ export const createUserValidator = (users: User[], creating: boolean) => { type: 'string', min: 1, max: 64, message: 'Password must be 1-64 characters' } ] }); - -export const createUniqueUsernameValidator = (users: User[]) => ({ - validator(rule: InternalRuleItem, username: string, callback: (error?: string) => void) { - if (username && users.find((u) => u.username === username)) { - callback('Username already in use'); - } else { - callback(); - } - } -}); diff --git a/interface/tsconfig.json b/interface/tsconfig.json index 30010d35b..d50dac669 100644 --- a/interface/tsconfig.json +++ b/interface/tsconfig.json @@ -11,6 +11,7 @@ "strict": true, "forceConsistentCasingInFileNames": true, "noFallthroughCasesInSwitch": true, + "composite": true, "module": "ESNext", "moduleResolution": "Node", "resolveJsonModule": true, @@ -25,5 +26,6 @@ "@/*": ["src/*"] } }, - "include": ["src", "vite.config.ts", "progmem-generator.js"] + "include": ["src/**/*", "vite.config.ts", "progmem-generator.js"], + "exclude": ["node_modules", "dist", "src/**/*.test.tsx", "src/**/*.test.ts"] } diff --git a/interface/yarn.lock b/interface/yarn.lock index 7a6befbd4..5b4c053b3 100644 --- a/interface/yarn.lock +++ b/interface/yarn.lock @@ -41,37 +41,37 @@ __metadata: linkType: hard "@babel/core@npm:^7.19.6": - version: 7.21.0 - resolution: "@babel/core@npm:7.21.0" + version: 7.21.3 + resolution: "@babel/core@npm:7.21.3" dependencies: "@ampproject/remapping": ^2.2.0 "@babel/code-frame": ^7.18.6 - "@babel/generator": ^7.21.0 + "@babel/generator": ^7.21.3 "@babel/helper-compilation-targets": ^7.20.7 - "@babel/helper-module-transforms": ^7.21.0 + "@babel/helper-module-transforms": ^7.21.2 "@babel/helpers": ^7.21.0 - "@babel/parser": ^7.21.0 + "@babel/parser": ^7.21.3 "@babel/template": ^7.20.7 - "@babel/traverse": ^7.21.0 - "@babel/types": ^7.21.0 + "@babel/traverse": ^7.21.3 + "@babel/types": ^7.21.3 convert-source-map: ^1.7.0 debug: ^4.1.0 gensync: ^1.0.0-beta.2 json5: ^2.2.2 semver: ^6.3.0 - checksum: 357f4dd3638861ceebf6d95ff49ad8b902065ee8b7b352621deed5666c2a6d702a48ca7254dba23ecae2a0afb67d20f90db7dd645c3b75e35e72ad9776c671aa + checksum: bef25fbea96f461bf79bd1d0e4f0cdce679fd5ada464a89c1141ddba59ae1adfdbb23e04440c266ed525712d33d5ffd818cd8b0c25b1dee0e648d5559516153a languageName: node linkType: hard -"@babel/generator@npm:^7.21.0, @babel/generator@npm:^7.21.1": - version: 7.21.1 - resolution: "@babel/generator@npm:7.21.1" +"@babel/generator@npm:^7.21.3": + version: 7.21.3 + resolution: "@babel/generator@npm:7.21.3" dependencies: - "@babel/types": ^7.21.0 + "@babel/types": ^7.21.3 "@jridgewell/gen-mapping": ^0.3.2 "@jridgewell/trace-mapping": ^0.3.17 jsesc: ^2.5.1 - checksum: 69085a211ff91a7a608ee3f86e6fcb9cf5e724b756d792a713b0c328a671cd3e423e1ef1b12533f366baba0616caffe0a7ba9d328727eab484de5961badbef00 + checksum: be6bb5a32a0273260b91210d4137b7b5da148a2db8dd324654275cb0af865ae59de5e1536e93ac83423b2586415059e1c24cf94293026755cf995757238da749 languageName: node linkType: hard @@ -125,7 +125,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.21.0": +"@babel/helper-module-transforms@npm:^7.21.2": version: 7.21.2 resolution: "@babel/helper-module-transforms@npm:7.21.2" dependencies: @@ -202,12 +202,12 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.0, @babel/parser@npm:^7.21.2": - version: 7.21.2 - resolution: "@babel/parser@npm:7.21.2" +"@babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.3": + version: 7.21.3 + resolution: "@babel/parser@npm:7.21.3" bin: parser: ./bin/babel-parser.js - checksum: e2b89de2c63d4cdd2cafeaea34f389bba729727eec7a8728f736bc472a59396059e3e9fe322c9bed8fd126d201fb609712949dc8783f4cae4806acd9a73da6ff + checksum: a71e6456a1260c2a943736b56cc0acdf5f2a53c6c79e545f56618967e51f9b710d1d3359264e7c979313a7153741b1d95ad8860834cc2ab4ce4f428b13cc07be languageName: node linkType: hard @@ -231,32 +231,32 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.21.0, @babel/traverse@npm:^7.21.2": - version: 7.21.2 - resolution: "@babel/traverse@npm:7.21.2" +"@babel/traverse@npm:^7.21.0, @babel/traverse@npm:^7.21.2, @babel/traverse@npm:^7.21.3": + version: 7.21.3 + resolution: "@babel/traverse@npm:7.21.3" dependencies: "@babel/code-frame": ^7.18.6 - "@babel/generator": ^7.21.1 + "@babel/generator": ^7.21.3 "@babel/helper-environment-visitor": ^7.18.9 "@babel/helper-function-name": ^7.21.0 "@babel/helper-hoist-variables": ^7.18.6 "@babel/helper-split-export-declaration": ^7.18.6 - "@babel/parser": ^7.21.2 - "@babel/types": ^7.21.2 + "@babel/parser": ^7.21.3 + "@babel/types": ^7.21.3 debug: ^4.1.0 globals: ^11.1.0 - checksum: d851e3f5cfbdc2fac037a014eae7b0707709de50f7d2fbb82ffbf932d3eeba90a77431529371d6e544f8faaf8c6540eeb18fdd8d1c6fa2b61acea0fb47e18d4b + checksum: 0af5bcd47a2fc501592b90ac1feae9d449afb9ab0772a4f6e68230f4cd3a475795d538c1de3f880fe3414b6c2820bac84d02c6549eea796f39d74a603717447b languageName: node linkType: hard -"@babel/types@npm:^7.18.6, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.2, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.0, @babel/types@npm:^7.21.2, @babel/types@npm:^7.8.3": - version: 7.21.2 - resolution: "@babel/types@npm:7.21.2" +"@babel/types@npm:^7.18.6, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.2, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.0, @babel/types@npm:^7.21.2, @babel/types@npm:^7.21.3, @babel/types@npm:^7.8.3": + version: 7.21.3 + resolution: "@babel/types@npm:7.21.3" dependencies: "@babel/helper-string-parser": ^7.19.4 "@babel/helper-validator-identifier": ^7.19.1 to-fast-properties: ^2.0.0 - checksum: a45a52acde139e575502c6de42c994bdbe262bafcb92ae9381fb54cdf1a3672149086843fda655c7683ce9806e998fd002bbe878fa44984498d0fdc7935ce7ff + checksum: b750274718ba9cefd0b81836c464009bb6ba339fccce51b9baff497a0a2d96c044c61dc90cf203cec0adc770454b53a9681c3f7716883c802b85ab84c365ba35 languageName: node linkType: hard @@ -406,175 +406,175 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.17.12": - version: 0.17.12 - resolution: "@esbuild/android-arm64@npm:0.17.12" +"@esbuild/android-arm64@npm:0.17.13": + version: 0.17.13 + resolution: "@esbuild/android-arm64@npm:0.17.13" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@esbuild/android-arm@npm:0.17.12": - version: 0.17.12 - resolution: "@esbuild/android-arm@npm:0.17.12" +"@esbuild/android-arm@npm:0.17.13": + version: 0.17.13 + resolution: "@esbuild/android-arm@npm:0.17.13" conditions: os=android & cpu=arm languageName: node linkType: hard -"@esbuild/android-x64@npm:0.17.12": - version: 0.17.12 - resolution: "@esbuild/android-x64@npm:0.17.12" +"@esbuild/android-x64@npm:0.17.13": + version: 0.17.13 + resolution: "@esbuild/android-x64@npm:0.17.13" conditions: os=android & cpu=x64 languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.17.12": - version: 0.17.12 - resolution: "@esbuild/darwin-arm64@npm:0.17.12" +"@esbuild/darwin-arm64@npm:0.17.13": + version: 0.17.13 + resolution: "@esbuild/darwin-arm64@npm:0.17.13" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.17.12": - version: 0.17.12 - resolution: "@esbuild/darwin-x64@npm:0.17.12" +"@esbuild/darwin-x64@npm:0.17.13": + version: 0.17.13 + resolution: "@esbuild/darwin-x64@npm:0.17.13" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.17.12": - version: 0.17.12 - resolution: "@esbuild/freebsd-arm64@npm:0.17.12" +"@esbuild/freebsd-arm64@npm:0.17.13": + version: 0.17.13 + resolution: "@esbuild/freebsd-arm64@npm:0.17.13" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.17.12": - version: 0.17.12 - resolution: "@esbuild/freebsd-x64@npm:0.17.12" +"@esbuild/freebsd-x64@npm:0.17.13": + version: 0.17.13 + resolution: "@esbuild/freebsd-x64@npm:0.17.13" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.17.12": - version: 0.17.12 - resolution: "@esbuild/linux-arm64@npm:0.17.12" +"@esbuild/linux-arm64@npm:0.17.13": + version: 0.17.13 + resolution: "@esbuild/linux-arm64@npm:0.17.13" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.17.12": - version: 0.17.12 - resolution: "@esbuild/linux-arm@npm:0.17.12" +"@esbuild/linux-arm@npm:0.17.13": + version: 0.17.13 + resolution: "@esbuild/linux-arm@npm:0.17.13" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.17.12": - version: 0.17.12 - resolution: "@esbuild/linux-ia32@npm:0.17.12" +"@esbuild/linux-ia32@npm:0.17.13": + version: 0.17.13 + resolution: "@esbuild/linux-ia32@npm:0.17.13" conditions: os=linux & cpu=ia32 languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.17.12": - version: 0.17.12 - resolution: "@esbuild/linux-loong64@npm:0.17.12" +"@esbuild/linux-loong64@npm:0.17.13": + version: 0.17.13 + resolution: "@esbuild/linux-loong64@npm:0.17.13" conditions: os=linux & cpu=loong64 languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.17.12": - version: 0.17.12 - resolution: "@esbuild/linux-mips64el@npm:0.17.12" +"@esbuild/linux-mips64el@npm:0.17.13": + version: 0.17.13 + resolution: "@esbuild/linux-mips64el@npm:0.17.13" conditions: os=linux & cpu=mips64el languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.17.12": - version: 0.17.12 - resolution: "@esbuild/linux-ppc64@npm:0.17.12" +"@esbuild/linux-ppc64@npm:0.17.13": + version: 0.17.13 + resolution: "@esbuild/linux-ppc64@npm:0.17.13" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.17.12": - version: 0.17.12 - resolution: "@esbuild/linux-riscv64@npm:0.17.12" +"@esbuild/linux-riscv64@npm:0.17.13": + version: 0.17.13 + resolution: "@esbuild/linux-riscv64@npm:0.17.13" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.17.12": - version: 0.17.12 - resolution: "@esbuild/linux-s390x@npm:0.17.12" +"@esbuild/linux-s390x@npm:0.17.13": + version: 0.17.13 + resolution: "@esbuild/linux-s390x@npm:0.17.13" conditions: os=linux & cpu=s390x languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.17.12": - version: 0.17.12 - resolution: "@esbuild/linux-x64@npm:0.17.12" +"@esbuild/linux-x64@npm:0.17.13": + version: 0.17.13 + resolution: "@esbuild/linux-x64@npm:0.17.13" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.17.12": - version: 0.17.12 - resolution: "@esbuild/netbsd-x64@npm:0.17.12" +"@esbuild/netbsd-x64@npm:0.17.13": + version: 0.17.13 + resolution: "@esbuild/netbsd-x64@npm:0.17.13" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.17.12": - version: 0.17.12 - resolution: "@esbuild/openbsd-x64@npm:0.17.12" +"@esbuild/openbsd-x64@npm:0.17.13": + version: 0.17.13 + resolution: "@esbuild/openbsd-x64@npm:0.17.13" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.17.12": - version: 0.17.12 - resolution: "@esbuild/sunos-x64@npm:0.17.12" +"@esbuild/sunos-x64@npm:0.17.13": + version: 0.17.13 + resolution: "@esbuild/sunos-x64@npm:0.17.13" conditions: os=sunos & cpu=x64 languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.17.12": - version: 0.17.12 - resolution: "@esbuild/win32-arm64@npm:0.17.12" +"@esbuild/win32-arm64@npm:0.17.13": + version: 0.17.13 + resolution: "@esbuild/win32-arm64@npm:0.17.13" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.17.12": - version: 0.17.12 - resolution: "@esbuild/win32-ia32@npm:0.17.12" +"@esbuild/win32-ia32@npm:0.17.13": + version: 0.17.13 + resolution: "@esbuild/win32-ia32@npm:0.17.13" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.17.12": - version: 0.17.12 - resolution: "@esbuild/win32-x64@npm:0.17.12" +"@esbuild/win32-x64@npm:0.17.13": + version: 0.17.13 + resolution: "@esbuild/win32-x64@npm:0.17.13" conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@eslint-community/eslint-utils@npm:^4.2.0": - version: 4.2.0 - resolution: "@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: ^3.3.0 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - checksum: 82fdd1cc2a5d169def0e665ec790580ef708e7df9c91f20006595dc90e3bd42ec31c8976a2eeccd336286301a72e937c0ddf3ab4b7377d7014997c36333a7d22 + checksum: cdfe3ae42b4f572cbfb46d20edafe6f36fc5fb52bf2d90875c58aefe226892b9677fef60820e2832caf864a326fe4fc225714c46e8389ccca04d5f9288aabd22 languageName: node linkType: hard "@eslint-community/regexpp@npm:^4.4.0": - version: 4.4.0 - resolution: "@eslint-community/regexpp@npm:4.4.0" - checksum: 2d127af0c752b80e8a782eacfe996a86925d21de92da3ffc6f9e615e701145e44a62e26bdd88bfac2cd76779c39ba8d9875a91046ec5e7e5f23cb647c247ea6a + version: 4.4.1 + resolution: "@eslint-community/regexpp@npm:4.4.1" + checksum: db97d8d08e784147b55ab0dda5892503c1a0eebad94d1c4646d89a94f02ca70b25f05d8e021fc05a075e7eb312e03e21f63d84f0b327719f8cf3bb64e66917cb languageName: node linkType: hard @@ -937,9 +937,9 @@ __metadata: linkType: hard "@popperjs/core@npm:^2.11.6": - version: 2.11.6 - resolution: "@popperjs/core@npm:2.11.6" - checksum: 47fb328cec1924559d759b48235c78574f2d71a8a6c4c03edb6de5d7074078371633b91e39bbf3f901b32aa8af9b9d8f82834856d2f5737a23475036b16817f0 + version: 2.11.7 + resolution: "@popperjs/core@npm:2.11.7" + checksum: 5b6553747899683452a1d28898c1b39173a4efd780e74360bfcda8eb42f1c5e819602769c81a10920fc68c881d07fb40429604517d499567eac079cfa6470f19 languageName: node linkType: hard @@ -983,20 +983,20 @@ __metadata: linkType: hard "@svgr/babel-plugin-remove-jsx-attribute@npm:*": - version: 6.5.0 - resolution: "@svgr/babel-plugin-remove-jsx-attribute@npm:6.5.0" + version: 7.0.0 + resolution: "@svgr/babel-plugin-remove-jsx-attribute@npm:7.0.0" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 7a4dfc1345f5855b010684e9c5301731842bf91d72b82ce5cc4c82c80b94de1036e447a8a00fb306a6dd575cb4c640d8ce3cfee6607ddbb804796a77284c7f22 + checksum: 808ba216eea6904b2c0b664957b1ad4d3e0d9e36635ad2fca7fb2667031730cbbe067421ac0d50209f7c83dc3b6c2eff8f377780268cd1606c85603bc47b18d7 languageName: node linkType: hard "@svgr/babel-plugin-remove-jsx-empty-expression@npm:*": - version: 6.5.0 - resolution: "@svgr/babel-plugin-remove-jsx-empty-expression@npm:6.5.0" + version: 7.0.0 + resolution: "@svgr/babel-plugin-remove-jsx-empty-expression@npm:7.0.0" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 3e173f720d530f9f71f8506f3eb78583eec3d87d66e385efe1ef3b3ebfc4e3680ec30f36414726de6a163e99ca69f54886022967e49476dea522267e1986936e + checksum: da0cae989cc99b5437c877412da6251eef57edfff8514b879c1245b6519edfda101ebc4ba2be3cce3aa9a6014050ea4413e004084d839afd8ac8ffc587a921bf languageName: node linkType: hard @@ -1100,90 +1100,90 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.3.37": - version: 1.3.37 - resolution: "@swc/core-darwin-arm64@npm:1.3.37" +"@swc/core-darwin-arm64@npm:1.3.42": + version: 1.3.42 + resolution: "@swc/core-darwin-arm64@npm:1.3.42" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.3.37": - version: 1.3.37 - resolution: "@swc/core-darwin-x64@npm:1.3.37" +"@swc/core-darwin-x64@npm:1.3.42": + version: 1.3.42 + resolution: "@swc/core-darwin-x64@npm:1.3.42" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.3.37": - version: 1.3.37 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.37" +"@swc/core-linux-arm-gnueabihf@npm:1.3.42": + version: 1.3.42 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.42" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.3.37": - version: 1.3.37 - resolution: "@swc/core-linux-arm64-gnu@npm:1.3.37" +"@swc/core-linux-arm64-gnu@npm:1.3.42": + version: 1.3.42 + resolution: "@swc/core-linux-arm64-gnu@npm:1.3.42" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.3.37": - version: 1.3.37 - resolution: "@swc/core-linux-arm64-musl@npm:1.3.37" +"@swc/core-linux-arm64-musl@npm:1.3.42": + version: 1.3.42 + resolution: "@swc/core-linux-arm64-musl@npm:1.3.42" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.3.37": - version: 1.3.37 - resolution: "@swc/core-linux-x64-gnu@npm:1.3.37" +"@swc/core-linux-x64-gnu@npm:1.3.42": + version: 1.3.42 + resolution: "@swc/core-linux-x64-gnu@npm:1.3.42" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.3.37": - version: 1.3.37 - resolution: "@swc/core-linux-x64-musl@npm:1.3.37" +"@swc/core-linux-x64-musl@npm:1.3.42": + version: 1.3.42 + resolution: "@swc/core-linux-x64-musl@npm:1.3.42" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.3.37": - version: 1.3.37 - resolution: "@swc/core-win32-arm64-msvc@npm:1.3.37" +"@swc/core-win32-arm64-msvc@npm:1.3.42": + version: 1.3.42 + resolution: "@swc/core-win32-arm64-msvc@npm:1.3.42" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.3.37": - version: 1.3.37 - resolution: "@swc/core-win32-ia32-msvc@npm:1.3.37" +"@swc/core-win32-ia32-msvc@npm:1.3.42": + version: 1.3.42 + resolution: "@swc/core-win32-ia32-msvc@npm:1.3.42" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.3.37": - version: 1.3.37 - resolution: "@swc/core-win32-x64-msvc@npm:1.3.37" +"@swc/core-win32-x64-msvc@npm:1.3.42": + version: 1.3.42 + resolution: "@swc/core-win32-x64-msvc@npm:1.3.42" conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@swc/core@npm:^1.3.35": - version: 1.3.37 - resolution: "@swc/core@npm:1.3.37" + version: 1.3.42 + resolution: "@swc/core@npm:1.3.42" dependencies: - "@swc/core-darwin-arm64": 1.3.37 - "@swc/core-darwin-x64": 1.3.37 - "@swc/core-linux-arm-gnueabihf": 1.3.37 - "@swc/core-linux-arm64-gnu": 1.3.37 - "@swc/core-linux-arm64-musl": 1.3.37 - "@swc/core-linux-x64-gnu": 1.3.37 - "@swc/core-linux-x64-musl": 1.3.37 - "@swc/core-win32-arm64-msvc": 1.3.37 - "@swc/core-win32-ia32-msvc": 1.3.37 - "@swc/core-win32-x64-msvc": 1.3.37 + "@swc/core-darwin-arm64": 1.3.42 + "@swc/core-darwin-x64": 1.3.42 + "@swc/core-linux-arm-gnueabihf": 1.3.42 + "@swc/core-linux-arm64-gnu": 1.3.42 + "@swc/core-linux-arm64-musl": 1.3.42 + "@swc/core-linux-x64-gnu": 1.3.42 + "@swc/core-linux-x64-musl": 1.3.42 + "@swc/core-win32-arm64-msvc": 1.3.42 + "@swc/core-win32-ia32-msvc": 1.3.42 + "@swc/core-win32-x64-msvc": 1.3.42 dependenciesMeta: "@swc/core-darwin-arm64": optional: true @@ -1205,7 +1205,7 @@ __metadata: optional: true "@swc/core-win32-x64-msvc": optional: true - checksum: 1cfa1ce8967a1d04361af076023bb50cc90bb413c347b0d7c7e86cf9b8277d05471dd2a24708a77365e527c51ddde3cd752fe49975b9e236c3abf9590e3106dd + checksum: 5c28c03ee6a4e1f630c4a519b56d7e23a0102f70fad977a3ab144a3da96231cf4849e473cdc9ee7be6b9266ba0838d0bc0b6b3575a75540f302befe96cc9606e languageName: node linkType: hard @@ -1337,19 +1337,19 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^18.11.11": - version: 18.14.6 - resolution: "@types/node@npm:18.14.6" - checksum: 2f88f482cabadc6dbddd627a1674239e68c3c9beab56eb4ae2309fb96fd17fc3a509d99b0309bafe13b58529574f49ecf3a583f2ebe2896dd32fe4be436dc96e - languageName: node - linkType: hard - -"@types/node@npm:^18.15.7": version: 18.15.7 resolution: "@types/node@npm:18.15.7" checksum: 08d1dd1898be10cd274955ed7f491bcab5b7e70ce66b6a1e996a582d5467f7517046b0d9c5f4e15871df94dd72d1ad9e7be236d2cff1a1450ec906d7fa3062d2 languageName: node linkType: hard +"@types/node@npm:^18.15.10": + version: 18.15.10 + resolution: "@types/node@npm:18.15.10" + checksum: 9aeae0b683eda82892def5315812bdee3f1a28c4898b7e70f8e2514564538b16c4dccbe8339c1266f8fc1d707a48f152689264a854f5ebc2eba5011e793612d9 + languageName: node + linkType: hard + "@types/parse-json@npm:^4.0.0": version: 4.0.0 resolution: "@types/parse-json@npm:4.0.0" @@ -1412,14 +1412,14 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:*, @types/react@npm:^18.0.28": - version: 18.0.28 - resolution: "@types/react@npm:18.0.28" +"@types/react@npm:*, @types/react@npm:^18.0.29": + version: 18.0.29 + resolution: "@types/react@npm:18.0.29" dependencies: "@types/prop-types": "*" "@types/scheduler": "*" csstype: ^3.0.2 - checksum: e752df961105e5127652460504785897ca6e77259e0da8f233f694f9e8f451cde7fa0709d4456ade0ff600c8ce909cfe29f9b08b9c247fa9b734e126ec53edd7 + checksum: 75f56f81d80a1c15ee3fcd2039bdc5f7a70f49cf69827ee0fc8beece9809b234f245dd62552e91018d8f25792986bd513b44caf054554d5c5eb979a5f9460214 languageName: node linkType: hard @@ -1433,9 +1433,9 @@ __metadata: linkType: hard "@types/scheduler@npm:*": - version: 0.16.2 - resolution: "@types/scheduler@npm:0.16.2" - checksum: b6b4dcfeae6deba2e06a70941860fb1435730576d3689225a421280b7742318d1548b3d22c1f66ab68e414f346a9542f29240bc955b6332c5b11e561077583bc + version: 0.16.3 + resolution: "@types/scheduler@npm:0.16.3" + checksum: 2b0aec39c24268e3ce938c5db2f2e77f5c3dd280e05c262d9c2fe7d890929e4632a6b8e94334017b66b45e4f92a5aa42ba3356640c2a1175fa37bef2f5200767 languageName: node linkType: hard @@ -1488,17 +1488,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/experimental-utils@npm:^5.0.0": - version: 5.54.0 - resolution: "@typescript-eslint/experimental-utils@npm:5.54.0" - dependencies: - "@typescript-eslint/utils": 5.54.0 - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 7698471ff64c3590301105e0843563927a4289591365bdcc83b39a4dc7b3a40fd37c8c71e5f3088251ba2a38b51b1fb3edbc85c1294f5b74edbb807ec26cce90 - languageName: node - linkType: hard - "@typescript-eslint/parser@npm:^5.56.0": version: 5.56.0 resolution: "@typescript-eslint/parser@npm:5.56.0" @@ -1516,16 +1505,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:5.54.0": - version: 5.54.0 - resolution: "@typescript-eslint/scope-manager@npm:5.54.0" - dependencies: - "@typescript-eslint/types": 5.54.0 - "@typescript-eslint/visitor-keys": 5.54.0 - checksum: e50f12396de0ddb94aab119bdd5f4769b80dd2c273e137fd25e5811e25114d7a3d3668cdb3c454aca9537e940744881d62a1fed2ec86f07f60533dc7382ae15c - languageName: node - linkType: hard - "@typescript-eslint/scope-manager@npm:5.56.0": version: 5.56.0 resolution: "@typescript-eslint/scope-manager@npm:5.56.0" @@ -1553,13 +1532,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:5.54.0": - version: 5.54.0 - resolution: "@typescript-eslint/types@npm:5.54.0" - checksum: 0f66b1b93078f3afea6dfcd3d4e2f0abea4f60cd0c613c2cf13f85098e5bf786185484c9846ed80b6c4272de2c31a70c5a8aacb91314cf1b6da7dcb8855cb7ac - languageName: node - linkType: hard - "@typescript-eslint/types@npm:5.56.0": version: 5.56.0 resolution: "@typescript-eslint/types@npm:5.56.0" @@ -1567,24 +1539,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:5.54.0": - version: 5.54.0 - resolution: "@typescript-eslint/typescript-estree@npm:5.54.0" - dependencies: - "@typescript-eslint/types": 5.54.0 - "@typescript-eslint/visitor-keys": 5.54.0 - debug: ^4.3.4 - globby: ^11.1.0 - is-glob: ^4.0.3 - semver: ^7.3.7 - tsutils: ^3.21.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 377c75c34c4f95b7ab6218c1d96a6db3ea6ed6727711b6a09354582fe0157861dc1b6fb9e3f7113cd09741f713735d59d5ab5845457f5733a4ebad7470bf600a - languageName: node - linkType: hard - "@typescript-eslint/typescript-estree@npm:5.56.0": version: 5.56.0 resolution: "@typescript-eslint/typescript-estree@npm:5.56.0" @@ -1603,24 +1557,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:5.54.0": - version: 5.54.0 - resolution: "@typescript-eslint/utils@npm:5.54.0" - dependencies: - "@types/json-schema": ^7.0.9 - "@types/semver": ^7.3.12 - "@typescript-eslint/scope-manager": 5.54.0 - "@typescript-eslint/types": 5.54.0 - "@typescript-eslint/typescript-estree": 5.54.0 - eslint-scope: ^5.1.1 - eslint-utils: ^3.0.0 - semver: ^7.3.7 - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: b8f344fc2961c7af530b93e53d5a17b5084cdf550b381082e3fb7f349ef16e718d9eebde1b9fc2d8fc4ecf8d60d334b004359977247554265c1afc87323bed37 - languageName: node - linkType: hard - "@typescript-eslint/utils@npm:5.56.0": version: 5.56.0 resolution: "@typescript-eslint/utils@npm:5.56.0" @@ -1639,16 +1575,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:5.54.0": - version: 5.54.0 - resolution: "@typescript-eslint/visitor-keys@npm:5.54.0" - dependencies: - "@typescript-eslint/types": 5.54.0 - eslint-visitor-keys: ^3.3.0 - checksum: 17fc323c09e6272b603cdaec30a99916600fbbb737e1fbc8c1727a487753b4363cea112277fa43e0562bff34bdd1de9ad73ff9433118b1fd469b112fad0313ca - languageName: node - linkType: hard - "@typescript-eslint/visitor-keys@npm:5.56.0": version: 5.56.0 resolution: "@typescript-eslint/visitor-keys@npm:5.56.0" @@ -1802,8 +1728,8 @@ __metadata: "@table-library/react-table-library": 4.1.0 "@types/lodash-es": ^4.17.7 "@types/mime-types": ^2 - "@types/node": ^18.15.7 - "@types/react": ^18.0.28 + "@types/node": ^18.15.10 + "@types/react": ^18.0.29 "@types/react-dom": ^18.0.11 "@types/react-router-dom": ^5.3.3 "@types/styled-components": ^5 @@ -1818,7 +1744,6 @@ __metadata: eslint-config-airbnb-typescript: ^17.0.0 eslint-config-prettier: ^8.8.0 eslint-import-resolver-typescript: ^3.5.3 - eslint-plugin-deprecation: ^1.3.3 eslint-plugin-import: ^2.27.5 eslint-plugin-jsx-a11y: ^6.7.1 eslint-plugin-prettier: ^4.2.1 @@ -1839,8 +1764,8 @@ __metadata: react-toastify: ^9.1.2 rollup-plugin-visualizer: ^5.9.0 sockette: ^2.0.6 - terser: ^5.16.6 - typesafe-i18n: ^5.24.2 + terser: ^5.16.8 + typesafe-i18n: ^5.24.3 typescript: ^5.0.2 vite: ^4.2.1 vite-plugin-minify: ^1.5.2 @@ -1884,13 +1809,13 @@ __metadata: linkType: hard "agentkeepalive@npm:^4.2.1": - version: 4.2.1 - resolution: "agentkeepalive@npm:4.2.1" + version: 4.3.0 + resolution: "agentkeepalive@npm:4.3.0" dependencies: debug: ^4.1.0 - depd: ^1.1.2 + depd: ^2.0.0 humanize-ms: ^1.2.1 - checksum: 39cb49ed8cf217fd6da058a92828a0a84e0b74c35550f82ee0a10e1ee403c4b78ade7948be2279b188b7a7303f5d396ea2738b134731e464bf28de00a4f72a18 + checksum: 982453aa44c11a06826c836025e5162c846e1200adb56f2d075400da7d32d87021b3b0a58768d949d824811f5654223d5a8a3dad120921a2439625eb847c6260 languageName: node linkType: hard @@ -1993,6 +1918,16 @@ __metadata: languageName: node linkType: hard +"array-buffer-byte-length@npm:^1.0.0": + version: 1.0.0 + resolution: "array-buffer-byte-length@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + is-array-buffer: ^3.0.1 + checksum: 044e101ce150f4804ad19c51d6c4d4cfa505c5b2577bd179256e4aa3f3f6a0a5e9874c78cd428ee566ac574c8a04d7ce21af9fe52e844abfdccb82b33035a7c3 + languageName: node + linkType: hard + "array-includes@npm:^3.1.5, array-includes@npm:^3.1.6": version: 3.1.6 resolution: "array-includes@npm:3.1.6" @@ -2276,9 +2211,9 @@ __metadata: linkType: hard "caniuse-lite@npm:^1.0.30001449": - version: 1.0.30001458 - resolution: "caniuse-lite@npm:1.0.30001458" - checksum: 258cc5a25babbbfe483bf788c6f321a19400ff80b2bf156b360bac09a6f9f4da44516350d187a30395667cb142c682d9ea96577ea0df236d35f76234b07ccb41 + version: 1.0.30001469 + resolution: "caniuse-lite@npm:1.0.30001469" + checksum: 8e496509d7e9ff189c72205675b5db0c5f1b6a09917027441e835efae0848a468a8c4e7d2b409ffc202438fcd23ae53e017f976a03c22c04d12d3c0e1e33e5de languageName: node linkType: hard @@ -2650,10 +2585,10 @@ __metadata: languageName: node linkType: hard -"depd@npm:^1.1.2": - version: 1.1.2 - resolution: "depd@npm:1.1.2" - checksum: 6b406620d269619852885ce15965272b829df6f409724415e0002c8632ab6a8c0a08ec1f0bd2add05dc7bd7507606f7e2cc034fa24224ab829580040b835ecd9 +"depd@npm:^2.0.0": + version: 2.0.0 + resolution: "depd@npm:2.0.0" + checksum: abbe19c768c97ee2eed6282d8ce3031126662252c58d711f646921c9623f9052e3e1906443066beec1095832f534e57c523b7333f8e7e0d93051ab6baef5ab3a languageName: node linkType: hard @@ -2712,9 +2647,9 @@ __metadata: linkType: hard "electron-to-chromium@npm:^1.4.284": - version: 1.4.315 - resolution: "electron-to-chromium@npm:1.4.315" - checksum: 9b1e9a43afe086aaed9af2a60076a409c0d6a0d9a9f4d0a293131763329c48c86198bda4020155c7ce53d2569840d49d51e8ce2405b6cd90000a77c1bd650ea5 + version: 1.4.340 + resolution: "electron-to-chromium@npm:1.4.340" + checksum: b7ffa64814efa49891c23ca0560f6831a992fa904c463bbf635ceccd57821dd0f4ecc22fa066860d34d9614b0ef4b27b385a5f59aed5dcf73ed832d58f746780 languageName: node linkType: hard @@ -2791,16 +2726,16 @@ __metadata: linkType: hard "es-abstract@npm:^1.19.0, es-abstract@npm:^1.20.4": - version: 1.21.1 - resolution: "es-abstract@npm:1.21.1" + version: 1.21.2 + resolution: "es-abstract@npm:1.21.2" dependencies: + array-buffer-byte-length: ^1.0.0 available-typed-arrays: ^1.0.5 call-bind: ^1.0.2 es-set-tostringtag: ^2.0.1 es-to-primitive: ^1.2.1 - function-bind: ^1.1.1 function.prototype.name: ^1.1.5 - get-intrinsic: ^1.1.3 + get-intrinsic: ^1.2.0 get-symbol-description: ^1.0.0 globalthis: ^1.0.3 gopd: ^1.0.1 @@ -2808,8 +2743,8 @@ __metadata: has-property-descriptors: ^1.0.0 has-proto: ^1.0.1 has-symbols: ^1.0.3 - internal-slot: ^1.0.4 - is-array-buffer: ^3.0.1 + internal-slot: ^1.0.5 + is-array-buffer: ^3.0.2 is-callable: ^1.2.7 is-negative-zero: ^2.0.2 is-regex: ^1.1.4 @@ -2817,17 +2752,18 @@ __metadata: is-string: ^1.0.7 is-typed-array: ^1.1.10 is-weakref: ^1.0.2 - object-inspect: ^1.12.2 + object-inspect: ^1.12.3 object-keys: ^1.1.1 object.assign: ^4.1.4 regexp.prototype.flags: ^1.4.3 safe-regex-test: ^1.0.0 + string.prototype.trim: ^1.2.7 string.prototype.trimend: ^1.0.6 string.prototype.trimstart: ^1.0.6 typed-array-length: ^1.0.4 unbox-primitive: ^1.0.2 which-typed-array: ^1.1.9 - checksum: 23ff60d42d17a55d150e7bcedbdb065d4077a8b98c436e0e2e1ef4dd532a6d78a56028673de0bd8ed464a43c46ba781c50d9af429b6a17e44dbd14c7d7fb7926 + checksum: 037f55ee5e1cdf2e5edbab5524095a4f97144d95b94ea29e3611b77d852fd8c8a40e7ae7101fa6a759a9b9b1405f188c3c70928f2d3cd88d543a07fc0d5ad41a languageName: node linkType: hard @@ -2880,31 +2816,31 @@ __metadata: linkType: hard "esbuild@npm:^0.17.5": - version: 0.17.12 - resolution: "esbuild@npm:0.17.12" + version: 0.17.13 + resolution: "esbuild@npm:0.17.13" dependencies: - "@esbuild/android-arm": 0.17.12 - "@esbuild/android-arm64": 0.17.12 - "@esbuild/android-x64": 0.17.12 - "@esbuild/darwin-arm64": 0.17.12 - "@esbuild/darwin-x64": 0.17.12 - "@esbuild/freebsd-arm64": 0.17.12 - "@esbuild/freebsd-x64": 0.17.12 - "@esbuild/linux-arm": 0.17.12 - "@esbuild/linux-arm64": 0.17.12 - "@esbuild/linux-ia32": 0.17.12 - "@esbuild/linux-loong64": 0.17.12 - "@esbuild/linux-mips64el": 0.17.12 - "@esbuild/linux-ppc64": 0.17.12 - "@esbuild/linux-riscv64": 0.17.12 - "@esbuild/linux-s390x": 0.17.12 - "@esbuild/linux-x64": 0.17.12 - "@esbuild/netbsd-x64": 0.17.12 - "@esbuild/openbsd-x64": 0.17.12 - "@esbuild/sunos-x64": 0.17.12 - "@esbuild/win32-arm64": 0.17.12 - "@esbuild/win32-ia32": 0.17.12 - "@esbuild/win32-x64": 0.17.12 + "@esbuild/android-arm": 0.17.13 + "@esbuild/android-arm64": 0.17.13 + "@esbuild/android-x64": 0.17.13 + "@esbuild/darwin-arm64": 0.17.13 + "@esbuild/darwin-x64": 0.17.13 + "@esbuild/freebsd-arm64": 0.17.13 + "@esbuild/freebsd-x64": 0.17.13 + "@esbuild/linux-arm": 0.17.13 + "@esbuild/linux-arm64": 0.17.13 + "@esbuild/linux-ia32": 0.17.13 + "@esbuild/linux-loong64": 0.17.13 + "@esbuild/linux-mips64el": 0.17.13 + "@esbuild/linux-ppc64": 0.17.13 + "@esbuild/linux-riscv64": 0.17.13 + "@esbuild/linux-s390x": 0.17.13 + "@esbuild/linux-x64": 0.17.13 + "@esbuild/netbsd-x64": 0.17.13 + "@esbuild/openbsd-x64": 0.17.13 + "@esbuild/sunos-x64": 0.17.13 + "@esbuild/win32-arm64": 0.17.13 + "@esbuild/win32-ia32": 0.17.13 + "@esbuild/win32-x64": 0.17.13 dependenciesMeta: "@esbuild/android-arm": optional: true @@ -2952,7 +2888,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: ea6d33eb1bc6c9e00dcee5e253c7e935251b4801d376661fd9f19a9dcffc27f970078a6f7116d6c78ee825ceff9b974594b0b616bd560ce4d875a951aa92977b + checksum: c3be8d41a36504fbfee7ad1206df5cf3464dc9a057a417b66dbf1cdf9a180d299df8eee5d2ffa428ad0303f5f4e3ea238bd50087876daa28f709722035165c8c languageName: node linkType: hard @@ -3075,20 +3011,6 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-deprecation@npm:^1.3.3": - version: 1.3.3 - resolution: "eslint-plugin-deprecation@npm:1.3.3" - dependencies: - "@typescript-eslint/experimental-utils": ^5.0.0 - tslib: ^2.3.1 - tsutils: ^3.21.0 - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: ^3.7.5 || ^4.0.0 - checksum: 5e14d7bc8245a14784623632d43a6210880a4aad4c029fd44686a5516c248287f32406ff230f6e9d238784854b24cd09da953ec8f73d9d19a7c4b3905884e432 - languageName: node - linkType: hard - "eslint-plugin-import@npm:^2.27.5": version: 2.27.5 resolution: "eslint-plugin-import@npm:2.27.5" @@ -3209,24 +3131,6 @@ __metadata: languageName: node linkType: hard -"eslint-utils@npm:^3.0.0": - version: 3.0.0 - resolution: "eslint-utils@npm:3.0.0" - dependencies: - eslint-visitor-keys: ^2.0.0 - peerDependencies: - eslint: ">=5" - checksum: 0668fe02f5adab2e5a367eee5089f4c39033af20499df88fe4e6aba2015c20720404d8c3d6349b6f716b08fdf91b9da4e5d5481f265049278099c4c836ccb619 - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^2.0.0": - version: 2.1.0 - resolution: "eslint-visitor-keys@npm:2.1.0" - checksum: e3081d7dd2611a35f0388bbdc2f5da60b3a3c5b8b6e928daffff7391146b434d691577aa95064c8b7faad0b8a680266bcda0a42439c18c717b80e6718d7e267d - languageName: node - linkType: hard - "eslint-visitor-keys@npm:^3.3.0": version: 3.3.0 resolution: "eslint-visitor-keys@npm:3.3.0" @@ -3306,11 +3210,11 @@ __metadata: linkType: hard "esquery@npm:^1.4.2": - version: 1.4.2 - resolution: "esquery@npm:1.4.2" + version: 1.5.0 + resolution: "esquery@npm:1.5.0" dependencies: estraverse: ^5.1.0 - checksum: 2f4ad89c5aafaca61cc2c15e256190f0d6deb4791cae6552d3cb4b1eb8867958cdf27a56aaa3272ff17435e3eaa19ee0d4129fac336ca6373d7354d7b5da7966 + checksum: aefb0d2596c230118656cd4ec7532d447333a410a48834d80ea648b1e7b5c9bc9ed8b5e33a89cb04e487b60d622f44cf5713bf4abed7c97343edefdc84a35900 languageName: node linkType: hard @@ -3760,9 +3664,9 @@ __metadata: linkType: hard "graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6": - version: 4.2.10 - resolution: "graceful-fs@npm:4.2.10" - checksum: 3f109d70ae123951905d85032ebeae3c2a5a7a997430df00ea30df0e3a6c60cf6689b109654d6fdacd28810a053348c4d14642da1d075049e6be1ba5216218da + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 languageName: node linkType: hard @@ -4011,7 +3915,7 @@ __metadata: languageName: node linkType: hard -"internal-slot@npm:^1.0.3, internal-slot@npm:^1.0.4": +"internal-slot@npm:^1.0.3, internal-slot@npm:^1.0.4, internal-slot@npm:^1.0.5": version: 1.0.5 resolution: "internal-slot@npm:1.0.5" dependencies: @@ -4039,14 +3943,14 @@ __metadata: languageName: node linkType: hard -"is-array-buffer@npm:^3.0.1": - version: 3.0.1 - resolution: "is-array-buffer@npm:3.0.1" +"is-array-buffer@npm:^3.0.1, is-array-buffer@npm:^3.0.2": + version: 3.0.2 + resolution: "is-array-buffer@npm:3.0.2" dependencies: call-bind: ^1.0.2 - get-intrinsic: ^1.1.3 + get-intrinsic: ^1.2.0 is-typed-array: ^1.1.10 - checksum: f26ab87448e698285daf707e52a533920449f7abf63714140ffab9d5571aa5a71ac2fa2677e8b793ad0d5d3e40078d4d2c8a0ab39c957e3cfc6513bb6c9dfdc9 + checksum: dcac9dda66ff17df9cabdc58214172bf41082f956eab30bb0d86bc0fab1e44b690fc8e1f855cf2481245caf4e8a5a006a982a71ddccec84032ed41f9d8da8c14 languageName: node linkType: hard @@ -4293,9 +4197,9 @@ __metadata: linkType: hard "js-sdsl@npm:^4.1.4": - version: 4.3.0 - resolution: "js-sdsl@npm:4.3.0" - checksum: ce908257cf6909e213af580af3a691a736f5ee8b16315454768f917a682a4ea0c11bde1b241bbfaecedc0eb67b72101b2c2df2ffaed32aed5d539fca816f054e + version: 4.4.0 + resolution: "js-sdsl@npm:4.4.0" + checksum: 7bb08a2d746ab7ff742720339aa006c631afe05e77d11eda988c1c35fae8e03e492e4e347e883e786e3ce6170685d4780c125619111f0730c11fdb41b04059c7 languageName: node linkType: hard @@ -4540,9 +4444,9 @@ __metadata: linkType: hard "lru-cache@npm:^7.7.1": - version: 7.18.1 - resolution: "lru-cache@npm:7.18.1" - checksum: ab0ec1360c552f1ffa54b1eaf0026126c5116a07bee156b92d1e971f4c8c88e9160f0fad4ab6fed4e0fdea84f25a4590ece085bc57ed9ab1d90b17f0b138c556 + version: 7.18.3 + resolution: "lru-cache@npm:7.18.3" + checksum: e550d772384709deea3f141af34b6d4fa392e2e418c1498c078de0ee63670f1f46f5eee746e8ef7e69e1c895af0d4224e62ee33e66a543a14763b0f2e74c1356 languageName: node linkType: hard @@ -4717,9 +4621,9 @@ __metadata: linkType: hard "minipass@npm:^4.0.0": - version: 4.2.4 - resolution: "minipass@npm:4.2.4" - checksum: c664f2ae4401408d1e7a6e4f50aca45f87b1b0634bc9261136df5c378e313e77355765f73f59c4a5abcadcdf43d83fcd3eb14e4a7cdcce8e36508e2290345753 + version: 4.2.5 + resolution: "minipass@npm:4.2.5" + checksum: 4f9c19af23a5d4a9e7156feefc9110634b178a8cff8f8271af16ec5ebf7e221725a97429952c856f5b17b30c2065ebd24c81722d90c93d2122611d75b952b48f languageName: node linkType: hard @@ -4742,14 +4646,14 @@ __metadata: languageName: node linkType: hard -"ms@npm:2.1.2, ms@npm:^2.1.1": +"ms@npm:2.1.2": version: 2.1.2 resolution: "ms@npm:2.1.2" checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f languageName: node linkType: hard -"ms@npm:^2.0.0": +"ms@npm:^2.0.0, ms@npm:^2.1.1": version: 2.1.3 resolution: "ms@npm:2.1.3" checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d @@ -4938,7 +4842,7 @@ __metadata: languageName: node linkType: hard -"object-inspect@npm:^1.12.2, object-inspect@npm:^1.9.0": +"object-inspect@npm:^1.12.3, object-inspect@npm:^1.9.0": version: 1.12.3 resolution: "object-inspect@npm:1.12.3" checksum: dabfd824d97a5f407e6d5d24810d888859f6be394d8b733a77442b277e0808860555176719c5905e765e3743a7cada6b8b0a3b85e5331c530fd418cc8ae991db @@ -5485,13 +5389,13 @@ __metadata: linkType: hard "readable-stream@npm:^3.6.0": - version: 3.6.1 - resolution: "readable-stream@npm:3.6.1" + version: 3.6.2 + resolution: "readable-stream@npm:3.6.2" dependencies: inherits: ^2.0.3 string_decoder: ^1.1.1 util-deprecate: ^1.0.1 - checksum: b7ab0508dba3c37277b9e43c0a970ea27635375698859a687f558c3c9393154b6c4f39c3aa5689641de183fffa26771bc1a45878ddde0236ad18fc8fdfde50ea + checksum: bdcbe6c22e846b6af075e32cf8f4751c2576238c5043169a1c221c92ee2878458a816a4ea33f4c67623c0b6827c8a400409bfb3cf0bf3381392d0b1dfb52ac8d languageName: node linkType: hard @@ -5656,8 +5560,8 @@ __metadata: linkType: hard "rollup@npm:^3.18.0": - version: 3.19.1 - resolution: "rollup@npm:3.19.1" + version: 3.20.2 + resolution: "rollup@npm:3.20.2" dependencies: fsevents: ~2.3.2 dependenciesMeta: @@ -5665,7 +5569,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: f78198c6de224b26650c70b16db156762d1fcceeb375d34fb2c76fc5b23a78f712c3c881d3248e6f277a511589e20d50c247bcf5c7920f1ddc0a43cadf9f0140 + checksum: 34b0932839b7c2a5d1742fb21ce95a47e0b49a0849f4abee2dccf25833187aa7babb898ca90d4fc761cffa4102b9ed0ac6ad7f6f6b96c8b8e2d67305abc5da65 languageName: node linkType: hard @@ -5911,12 +5815,12 @@ __metadata: linkType: hard "spdx-correct@npm:^3.0.0": - version: 3.1.1 - resolution: "spdx-correct@npm:3.1.1" + version: 3.2.0 + resolution: "spdx-correct@npm:3.2.0" dependencies: spdx-expression-parse: ^3.0.0 spdx-license-ids: ^3.0.0 - checksum: 77ce438344a34f9930feffa61be0eddcda5b55fc592906ef75621d4b52c07400a97084d8701557b13f7d2aae0cb64f808431f469e566ef3fe0a3a131dcb775a6 + checksum: e9ae98d22f69c88e7aff5b8778dc01c361ef635580e82d29e5c60a6533cc8f4d820803e67d7432581af0cc4fb49973125076ee3b90df191d153e223c004193b2 languageName: node linkType: hard @@ -5938,9 +5842,9 @@ __metadata: linkType: hard "spdx-license-ids@npm:^3.0.0": - version: 3.0.12 - resolution: "spdx-license-ids@npm:3.0.12" - checksum: 92a4dddce62ce1db6fe54a7a839cf85e06abc308fc83b776a55b44e4f1906f02e7ebd506120847039e976bbbad359ea8bdfafb7925eae5cd7e73255f02e0b7d6 + version: 3.0.13 + resolution: "spdx-license-ids@npm:3.0.13" + checksum: 3469d85c65f3245a279fa11afc250c3dca96e9e847f2f79d57f466940c5bb8495da08a542646086d499b7f24a74b8d0b42f3fc0f95d50ff99af1f599f6360ad7 languageName: node linkType: hard @@ -6007,6 +5911,17 @@ __metadata: languageName: node linkType: hard +"string.prototype.trim@npm:^1.2.7": + version: 1.2.7 + resolution: "string.prototype.trim@npm:1.2.7" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 05b7b2d6af63648e70e44c4a8d10d8cc457536df78b55b9d6230918bde75c5987f6b8604438c4c8652eb55e4fc9725d2912789eb4ec457d6995f3495af190c09 + languageName: node + linkType: hard + "string.prototype.trimend@npm:^1.0.6": version: 1.0.6 resolution: "string.prototype.trimend@npm:1.0.6" @@ -6131,9 +6046,9 @@ __metadata: languageName: node linkType: hard -"terser@npm:^5.10.0, terser@npm:^5.16.6": - version: 5.16.6 - resolution: "terser@npm:5.16.6" +"terser@npm:^5.10.0, terser@npm:^5.16.8": + version: 5.16.8 + resolution: "terser@npm:5.16.8" dependencies: "@jridgewell/source-map": ^0.3.2 acorn: ^8.5.0 @@ -6141,7 +6056,7 @@ __metadata: source-map-support: ~0.5.20 bin: terser: bin/terser - checksum: f763a7bcc7b98cb2bfc41434f7b92bfe8a701a12c92ea6049377736c8e6de328240d654a20dfe15ce170fd783491b9873fad9f4cd8fee4f6c6fb8ca407859dee + checksum: f4a3ef4848a71f74f637c009395cf5a28660b56237fb8f13532cecfb24d6263e2dfbc1a511a11a94568988898f79cdcbecb9a4d8e104db35a0bea9639b70a325 languageName: node linkType: hard @@ -6204,16 +6119,16 @@ __metadata: linkType: hard "tsconfck@npm:^2.0.1": - version: 2.0.3 - resolution: "tsconfck@npm:2.0.3" + version: 2.1.1 + resolution: "tsconfck@npm:2.1.1" peerDependencies: - typescript: ^4.3.5 + typescript: ^4.3.5 || ^5.0.0 peerDependenciesMeta: typescript: optional: true bin: tsconfck: bin/tsconfck.js - checksum: 557060017e35cb45281134568ad64f15fe1702c318c3cfba18d49f7c66f964981f19d5c493ca1848edab31f71aeaade305ae485eb6b11c8fb40fda593f3f4998 + checksum: c531525f39763cbbd7e6dbf5e29f12a7ae67eb8712816c14d06a9db6cbdc9dda9ac3cd6db07ef645f8a4cdea906447ab44e2c8679e320871cf9dd598756e8c83 languageName: node linkType: hard @@ -6236,7 +6151,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.0.3, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.5.0": +"tslib@npm:^2.0.3, tslib@npm:^2.4.0, tslib@npm:^2.5.0": version: 2.5.0 resolution: "tslib@npm:2.5.0" checksum: ae3ed5f9ce29932d049908ebfdf21b3a003a85653a9a140d614da6b767a93ef94f460e52c3d787f0e4f383546981713f165037dc2274df212ea9f8a4541004e1 @@ -6295,14 +6210,14 @@ __metadata: languageName: node linkType: hard -"typesafe-i18n@npm:^5.24.2": - version: 5.24.2 - resolution: "typesafe-i18n@npm:5.24.2" +"typesafe-i18n@npm:^5.24.3": + version: 5.24.3 + resolution: "typesafe-i18n@npm:5.24.3" peerDependencies: typescript: ">=3.5.1" bin: typesafe-i18n: cli/typesafe-i18n.mjs - checksum: c87b86ca2d310d48ddae3ccfd65059a4edc3c9129fd7c86a266cff38a22ff54fa290108da25f0c8b0335aac5b1cedb2d33ecc11e80139170a12dc8b4a03dd7df + checksum: 4bb6f9ca388a1d8e8af76887c0dfb6c6e71251c70c7d45a7d6257ce5621c027f93c2fca8e0b587207ceab898a4861d5a9d21c7cd932dd44eb2c57698425070d0 languageName: node linkType: hard