diff --git a/CHANGELOG_LATEST.md b/CHANGELOG_LATEST.md index 3532cb04f..1fcd7b198 100644 --- a/CHANGELOG_LATEST.md +++ b/CHANGELOG_LATEST.md @@ -10,11 +10,13 @@ - Add devices: Greenstar 30Ri boiler, Junkers FW500 thermostat, Buderus BC30 controller - Add program memory info - Add mqtt queue and connection infos -- Add min/max setting to customizations - Adapt min/max if ems-value is not in this range - Add heat pump settings for inputs and limits [#600](https://github.com/emsesp/EMS-ESP32/issues/600) - Add hybrid heatpump [#500](https://github.com/emsesp/EMS-ESP32/issues/500) - Add translated tags +- Add min/max to customization table [#686](https://github.com/emsesp/EMS-ESP32/issues/686) +- Add MD5 check [#637](https://github.com/emsesp/EMS-ESP32/issues/637) +- Add more bus-ids [#673](https://github.com/emsesp/EMS-ESP32/issues/673) ## Fixed @@ -26,6 +28,7 @@ - RF room temperature sensor are shown as thermostat - render mqtt float json values with trailing zero - removed flash strings +- reload page after restart button is pressed ## **BREAKING CHANGES:** diff --git a/interface/.typesafe-i18n.json b/interface/.typesafe-i18n.json index 905df0d48..c04fee347 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.14.0/schema/typesafe-i18n.json" + "baseLocale": "en", + "$schema": "https://unpkg.com/typesafe-i18n@5.15.0/schema/typesafe-i18n.json" } diff --git a/interface/package-lock.json b/interface/package-lock.json index 83640594f..92f489cf9 100644 --- a/interface/package-lock.json +++ b/interface/package-lock.json @@ -66,28 +66,28 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz", - "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.0.tgz", + "integrity": "sha512-Gt9jszFJYq7qzXVK4slhc6NzJXnOVmRECWcVjF/T23rNXD9NtWQ0W3qxdg+p9wWIB+VQw3GYV/U2Ha9bRTfs4w==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz", - "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.6.tgz", + "integrity": "sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==", "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.3", + "@babel/generator": "^7.19.6", "@babel/helper-compilation-targets": "^7.19.3", - "@babel/helper-module-transforms": "^7.19.0", - "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.3", + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helpers": "^7.19.4", + "@babel/parser": "^7.19.6", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.3", - "@babel/types": "^7.19.3", + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -128,11 +128,11 @@ } }, "node_modules/@babel/generator": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.4.tgz", - "integrity": "sha512-5T2lY5vXqS+5UEit/5TwcIUeCnwgCljcF8IQRT6XRQPBrvLeq5V8W+URv+GvwoF3FP8tkhp++evVyDzkDGzNmA==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.0.tgz", + "integrity": "sha512-GUPcXxWibClgmYJuIwC2Bc2Lg+8b9VjaJ+HlNdACEVt+Wlr1eoU1OPZjZRm7Hzl0gaTsUZNQfeihvZJhG7oc3w==", "dependencies": { - "@babel/types": "^7.19.4", + "@babel/types": "^7.20.0", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -177,11 +177,11 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz", - "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", "dependencies": { - "@babel/compat-data": "^7.19.3", + "@babel/compat-data": "^7.20.0", "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.21.3", "semver": "^6.3.0" @@ -309,18 +309,18 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", - "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz", + "integrity": "sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==", "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-simple-access": "^7.19.4", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4" }, "engines": { "node": ">=6.9.0" @@ -389,11 +389,11 @@ } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz", - "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", "dependencies": { - "@babel/types": "^7.18.9" + "@babel/types": "^7.20.0" }, "engines": { "node": ">=6.9.0" @@ -449,13 +449,13 @@ } }, "node_modules/@babel/helpers": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.4.tgz", - "integrity": "sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.0.tgz", + "integrity": "sha512-aGMjYraN0zosCEthoGLdqot1oRsmxVTQRHadsUPz5QM44Zej2PYRz7XiDE7GqnkZnNtLbOuxqoZw42vkU7+XEQ==", "dependencies": { "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.4", - "@babel/types": "^7.19.4" + "@babel/traverse": "^7.20.0", + "@babel/types": "^7.20.0" }, "engines": { "node": ">=6.9.0" @@ -475,9 +475,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.4.tgz", - "integrity": "sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.0.tgz", + "integrity": "sha512-G9VgAhEaICnz8iiJeGJQyVl6J2nTjbW0xeisva0PK6XcKsga7BIaqm4ZF8Rg1Wbaqmy6znspNqhPaPkyukujzg==", "bin": { "parser": "bin/babel-parser.js" }, @@ -564,9 +564,9 @@ } }, "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.19.3.tgz", - "integrity": "sha512-MbgXtNXqo7RTKYIXVchVJGPvaVufQH3pxvQyfbGvNw1DObIhph+PesYXJTcd8J4DdWibvf6Z2eanOyItX8WnJg==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.20.0.tgz", + "integrity": "sha512-vnuRRS20ygSxclEYikHzVrP9nZDFXaSzvJxGLQNAiBX041TmhS4hOUHWNIpq/q4muENuEP9XPJFXTNFejhemkg==", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.19.0", "@babel/helper-plugin-utils": "^7.19.0", @@ -865,11 +865,11 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz", - "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1009,11 +1009,11 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", - "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1067,9 +1067,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.19.4.tgz", - "integrity": "sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.0.tgz", + "integrity": "sha512-sXOohbpHZSk7GjxK9b3dKB7CfqUD5DwOH+DggKzOQ7TXYP+RCSbRykfjQmn/zq+rBjycVRtLf9pYhAaEJA786w==", "dependencies": { "@babel/helper-plugin-utils": "^7.19.0" }, @@ -1117,9 +1117,9 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.19.4.tgz", - "integrity": "sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.0.tgz", + "integrity": "sha512-1dIhvZfkDVx/zn2S1aFwlruspTt4189j7fEkH0Y0VyuDM6bQt7bD6kLcz3l4IlLG+e5OReaBz9ROAbttRtUHqA==", "dependencies": { "@babel/helper-plugin-utils": "^7.19.0" }, @@ -1248,13 +1248,12 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz", - "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", + "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1264,14 +1263,13 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz", - "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", + "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-simple-access": "^7.19.4" }, "engines": { "node": ">=6.9.0" @@ -1281,15 +1279,14 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz", - "integrity": "sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", + "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", "dependencies": { "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.19.0", + "@babel/helper-module-transforms": "^7.19.6", "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-validator-identifier": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-validator-identifier": "^7.19.1" }, "engines": { "node": ">=6.9.0" @@ -1490,9 +1487,9 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.1.tgz", - "integrity": "sha512-2nJjTUFIzBMP/f/miLxEK9vxwW/KUXsdvN4sR//TmuDhe6yU2h57WmIOE12Gng3MDP/xpjUV/ToZRdcf8Yj4fA==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", + "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", "dependencies": { "@babel/helper-module-imports": "^7.18.6", "@babel/helper-plugin-utils": "^7.19.0", @@ -1580,13 +1577,13 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.19.3.tgz", - "integrity": "sha512-z6fnuK9ve9u/0X0rRvI9MY0xg+DOUaABDYOe+/SQTxtlptaBB/V9JIUxJn6xp3lMBeb9qe8xSFmHU35oZDXD+w==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.0.tgz", + "integrity": "sha512-xOAsAFaun3t9hCwZ13Qe7gq423UgMZ6zAgmLxeGGapFqlT/X3L5qT2btjiVLlFn7gWtMaVyceS5VxGAuKbgizw==", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.19.0", "@babel/helper-plugin-utils": "^7.19.0", - "@babel/plugin-syntax-typescript": "^7.18.6" + "@babel/plugin-syntax-typescript": "^7.20.0" }, "engines": { "node": ">=6.9.0" @@ -1763,23 +1760,23 @@ } }, "node_modules/@babel/runtime": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.4.tgz", - "integrity": "sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.0.tgz", + "integrity": "sha512-NDYdls71fTXoU8TZHfbBWg7DiZfNzClcKui/+kyi6ppD2L1qnWW3VV6CjtaBXSUGGhiTWJ6ereOIkUvenif66Q==", "dependencies": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.13.10" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.4.tgz", - "integrity": "sha512-HzjQ8+dzdx7dmZy4DQ8KV8aHi/74AjEbBGTFutBmg/pd3dY5/q1sfuOGPTFGEytlQhWoeVXqcK5BwMgIkRkNDQ==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.20.0.tgz", + "integrity": "sha512-v1JH7PeAAGBEyTQM9TqojVl+b20zXtesFKCJHu50xMxZKD1fX0TKaKHPsZfFkXfs7D1M9M6Eeqg1FkJ3a0x2dA==", "dependencies": { "core-js-pure": "^3.25.1", - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.13.10" }, "engines": { "node": ">=6.9.0" @@ -1799,18 +1796,18 @@ } }, "node_modules/@babel/traverse": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.4.tgz", - "integrity": "sha512-w3K1i+V5u2aJUOXBFFC5pveFLmtq1s3qcdDNC2qRI6WPBQIDaKFqXxDEqDO/h1dQ3HjsZoZMyIy6jGLq0xtw+g==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.0.tgz", + "integrity": "sha512-5+cAXQNARgjRUK0JWu2UBwja4JLSO/rBMPJzpsKb+oBF5xlUuCfljQepS4XypBQoiigL0VQjTZy6WiONtUdScQ==", "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.4", + "@babel/generator": "^7.20.0", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.4", - "@babel/types": "^7.19.4", + "@babel/parser": "^7.20.0", + "@babel/types": "^7.20.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1819,9 +1816,9 @@ } }, "node_modules/@babel/types": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.4.tgz", - "integrity": "sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.0.tgz", + "integrity": "sha512-Jlgt3H0TajCW164wkTOTzHkZb075tMQMULzrLUoUeKmO7eFL96GgDxf7/Axhc5CAuKE3KFyVW1p6ysKsi2oXAg==", "dependencies": { "@babel/helper-string-parser": "^7.19.4", "@babel/helper-validator-identifier": "^7.19.1", @@ -2316,13 +2313,13 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.10.7", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz", - "integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==", + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", + "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", - "minimatch": "^3.0.4" + "minimatch": "^3.0.5" }, "engines": { "node": ">=10.10.0" @@ -3072,9 +3069,9 @@ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.16", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.16.tgz", - "integrity": "sha512-LCQ+NeThyJ4k1W2d+vIKdxuSt9R3pQSZ4P92m7EakaYuXcVWbHuT5bjNcqLd4Rdgi6xYWYDvBJZJLZSLanjDcA==", + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "dependencies": { "@jridgewell/resolve-uri": "3.1.0", "@jridgewell/sourcemap-codec": "1.4.14" @@ -3548,9 +3545,9 @@ "integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==" }, "node_modules/@sinclair/typebox": { - "version": "0.24.44", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.44.tgz", - "integrity": "sha512-ka0W0KN5i6LfrSocduwliMMpqVgohtPFidKdMEOUjoOFCHcOOYkKsPRxfs5f15oPNHTm6ERAm0GV/+/LTKeiWg==" + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==" }, "node_modules/@sinonjs/commons": { "version": "1.8.3", @@ -3909,9 +3906,9 @@ } }, "node_modules/@types/eslint": { - "version": "8.4.6", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz", - "integrity": "sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==", + "version": "8.4.9", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.9.tgz", + "integrity": "sha512-jFCSo4wJzlHQLCpceUhUnXdrPuCNOjGFMQ8Eg6JXxlz3QaCKOb7eGi2cephQdM4XTYsNej69P9JDJ1zqNIbncQ==", "dependencies": { "@types/estree": "*", "@types/json-schema": "*" @@ -4020,9 +4017,9 @@ "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==" }, "node_modules/@types/node": { - "version": "18.11.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.7.tgz", - "integrity": "sha512-LhFTglglr63mNXUSRYD8A+ZAIu5sFqNJ4Y2fPuY7UlrySJH87rRRlhtVmMHplmfk5WkoJGmDjE9oiTfyX94CpQ==" + "version": "18.11.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.8.tgz", + "integrity": "sha512-uGwPWlE0Hj972KkHtCDVwZ8O39GmyjfMane1Z3GUBGGnkZ2USDq7SxLpVIiIHpweY9DS0QTDH0Nw7RNBsAAZ5A==" }, "node_modules/@types/parse-json": { "version": "4.0.0", @@ -4125,6 +4122,11 @@ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" }, + "node_modules/@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==" + }, "node_modules/@types/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", @@ -4182,13 +4184,13 @@ "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.39.0.tgz", - "integrity": "sha512-xVfKOkBm5iWMNGKQ2fwX5GVgBuHmZBO1tCRwXmY5oAIsPscfwm2UADDuNB8ZVYCtpQvJK4xpjrK7jEhcJ0zY9A==", + "version": "5.41.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.41.0.tgz", + "integrity": "sha512-DXUS22Y57/LAFSg3x7Vi6RNAuLpTXwxB9S2nIA7msBb/Zt8p7XqMwdpdc1IU7CkOQUPgAqR5fWvxuKCbneKGmA==", "dependencies": { - "@typescript-eslint/scope-manager": "5.39.0", - "@typescript-eslint/type-utils": "5.39.0", - "@typescript-eslint/utils": "5.39.0", + "@typescript-eslint/scope-manager": "5.41.0", + "@typescript-eslint/type-utils": "5.41.0", + "@typescript-eslint/utils": "5.41.0", "debug": "^4.3.4", "ignore": "^5.2.0", "regexpp": "^3.2.0", @@ -4227,11 +4229,11 @@ } }, "node_modules/@typescript-eslint/experimental-utils": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.39.0.tgz", - "integrity": "sha512-n5N9kG/oGu2xXhHzsWzn94s6CWoiUj59FPU2dF2IQZxPftw+q6Jm5sV2vj5qTgAElRooHhrgtl2gxBQDCPt6WA==", + "version": "5.41.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.41.0.tgz", + "integrity": "sha512-/qxT2Kd2q/A22JVIllvws4rvc00/3AT4rAo/0YgEN28y+HPhbJbk6X4+MAHEoZzpNyAOugIT7D/OLnKBW8FfhA==", "dependencies": { - "@typescript-eslint/utils": "5.39.0" + "@typescript-eslint/utils": "5.41.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4245,13 +4247,13 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.39.0.tgz", - "integrity": "sha512-PhxLjrZnHShe431sBAGHaNe6BDdxAASDySgsBCGxcBecVCi8NQWxQZMcizNA4g0pN51bBAn/FUfkWG3SDVcGlA==", + "version": "5.41.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.41.0.tgz", + "integrity": "sha512-HQVfix4+RL5YRWZboMD1pUfFN8MpRH4laziWkkAzyO1fvNOY/uinZcvo3QiFJVS/siNHupV8E5+xSwQZrl6PZA==", "dependencies": { - "@typescript-eslint/scope-manager": "5.39.0", - "@typescript-eslint/types": "5.39.0", - "@typescript-eslint/typescript-estree": "5.39.0", + "@typescript-eslint/scope-manager": "5.41.0", + "@typescript-eslint/types": "5.41.0", + "@typescript-eslint/typescript-estree": "5.41.0", "debug": "^4.3.4" }, "engines": { @@ -4271,12 +4273,12 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.39.0.tgz", - "integrity": "sha512-/I13vAqmG3dyqMVSZPjsbuNQlYS082Y7OMkwhCfLXYsmlI0ca4nkL7wJ/4gjX70LD4P8Hnw1JywUVVAwepURBw==", + "version": "5.41.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.41.0.tgz", + "integrity": "sha512-xOxPJCnuktUkY2xoEZBKXO5DBCugFzjrVndKdUnyQr3+9aDWZReKq9MhaoVnbL+maVwWJu/N0SEtrtEUNb62QQ==", "dependencies": { - "@typescript-eslint/types": "5.39.0", - "@typescript-eslint/visitor-keys": "5.39.0" + "@typescript-eslint/types": "5.41.0", + "@typescript-eslint/visitor-keys": "5.41.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4287,12 +4289,12 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.39.0.tgz", - "integrity": "sha512-KJHJkOothljQWzR3t/GunL0TPKY+fGJtnpl+pX+sJ0YiKTz3q2Zr87SGTmFqsCMFrLt5E0+o+S6eQY0FAXj9uA==", + "version": "5.41.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.41.0.tgz", + "integrity": "sha512-L30HNvIG6A1Q0R58e4hu4h+fZqaO909UcnnPbwKiN6Rc3BUEx6ez2wgN7aC0cBfcAjZfwkzE+E2PQQ9nEuoqfA==", "dependencies": { - "@typescript-eslint/typescript-estree": "5.39.0", - "@typescript-eslint/utils": "5.39.0", + "@typescript-eslint/typescript-estree": "5.41.0", + "@typescript-eslint/utils": "5.41.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -4313,9 +4315,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.39.0.tgz", - "integrity": "sha512-gQMZrnfEBFXK38hYqt8Lkwt8f4U6yq+2H5VDSgP/qiTzC8Nw8JO3OuSUOQ2qW37S/dlwdkHDntkZM6SQhKyPhw==", + "version": "5.41.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.41.0.tgz", + "integrity": "sha512-5BejraMXMC+2UjefDvrH0Fo/eLwZRV6859SXRg+FgbhA0R0l6lDqDGAQYhKbXhPN2ofk2kY5sgGyLNL907UXpA==", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -4325,12 +4327,12 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.39.0.tgz", - "integrity": "sha512-qLFQP0f398sdnogJoLtd43pUgB18Q50QSA+BTE5h3sUxySzbWDpTSdgt4UyxNSozY/oDK2ta6HVAzvGgq8JYnA==", + "version": "5.41.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.41.0.tgz", + "integrity": "sha512-SlzFYRwFSvswzDSQ/zPkIWcHv8O5y42YUskko9c4ki+fV6HATsTODUPbRbcGDFYP86gaJL5xohUEytvyNNcXWg==", "dependencies": { - "@typescript-eslint/types": "5.39.0", - "@typescript-eslint/visitor-keys": "5.39.0", + "@typescript-eslint/types": "5.41.0", + "@typescript-eslint/visitor-keys": "5.41.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -4365,16 +4367,18 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.39.0.tgz", - "integrity": "sha512-+DnY5jkpOpgj+EBtYPyHRjXampJfC0yUZZzfzLuUWVZvCuKqSdJVC8UhdWipIw7VKNTfwfAPiOWzYkAwuIhiAg==", + "version": "5.41.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.41.0.tgz", + "integrity": "sha512-QlvfwaN9jaMga9EBazQ+5DDx/4sAdqDkcs05AsQHMaopluVCUyu1bTRUVKzXbgjDlrRAQrYVoi/sXJ9fmG+KLQ==", "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.39.0", - "@typescript-eslint/types": "5.39.0", - "@typescript-eslint/typescript-estree": "5.39.0", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.41.0", + "@typescript-eslint/types": "5.41.0", + "@typescript-eslint/typescript-estree": "5.41.0", "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4407,12 +4411,26 @@ "node": ">=4.0" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.39.0.tgz", - "integrity": "sha512-yyE3RPwOG+XJBLrhvsxAidUgybJVQ/hG8BhiJo0k8JSAYfk/CshVcxf0HwP4Jt7WZZ6vLmxdo1p6EyN3tzFTkg==", + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dependencies": { - "@typescript-eslint/types": "5.39.0", + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.41.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.41.0.tgz", + "integrity": "sha512-vilqeHj267v8uzzakbm13HkPMl7cbYpKVjgFWZPIOHIJHZtinvypUhJ5xBXfWYg4eFKqztbMMpOgFpT9Gfx4fw==", + "dependencies": { + "@typescript-eslint/types": "5.41.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -4588,9 +4606,9 @@ } }, "node_modules/acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", "bin": { "acorn": "bin/acorn" }, @@ -4959,9 +4977,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.12", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.12.tgz", - "integrity": "sha512-WrCGV9/b97Pa+jtwf5UGaRjgQIg7OK3D06GnoYoZNcG1Xb8Gt3EfuKjlhh9i/VtT16g6PYjZ69jdJ2g8FxSC4Q==", + "version": "10.4.13", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", + "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", "funding": [ { "type": "opencollective", @@ -4974,7 +4992,7 @@ ], "dependencies": { "browserslist": "^4.21.4", - "caniuse-lite": "^1.0.30001407", + "caniuse-lite": "^1.0.30001426", "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", @@ -4991,9 +5009,9 @@ } }, "node_modules/axe-core": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz", - "integrity": "sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.5.0.tgz", + "integrity": "sha512-4+rr8eQ7+XXS5nZrKcMO/AikHL0hVqy+lHWAnE3xdHl+aguag8SOQ6eEqLexwLNWgXIMfunGuD3ON1/6Kyet0A==", "engines": { "node": ">=4" } @@ -5133,14 +5151,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dependencies": { - "object.assign": "^4.1.0" - } - }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", @@ -5553,9 +5563,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001418", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001418.tgz", - "integrity": "sha512-oIs7+JL3K9JRQ3jPZjlH6qyYDp+nBTCais7hjh0s+fuBwufc7uZ7hPYMXrDOJhV360KGMTcczMRObk0/iMqZRg==", + "version": "1.0.30001427", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001427.tgz", + "integrity": "sha512-lfXQ73oB9c8DP5Suxaszm+Ta2sr/4tf8+381GkIm1MLj/YdLf+rEDyDSRCzeltuyTVGm+/s18gdZ0q+Wmp8VsQ==", "funding": [ { "type": "opencollective", @@ -5818,6 +5828,11 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -5847,25 +5862,6 @@ "node": ">= 0.6" } }, - "node_modules/content-disposition/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", @@ -5875,12 +5871,9 @@ } }, "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dependencies": { - "safe-buffer": "~5.1.1" - } + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "node_modules/cookie": { "version": "0.5.0", @@ -5896,9 +5889,9 @@ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, "node_modules/core-js": { - "version": "3.25.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.25.5.tgz", - "integrity": "sha512-nbm6eZSjm+ZuBQxCUPQKQCoUEfFOXjUZ8dTTyikyKaWrTYmAVbykQfwsKE5dBK88u3QCkCrzsx/PPlKfhsvgpw==", + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.26.0.tgz", + "integrity": "sha512-+DkDrhoR4Y0PxDz6rurahuB+I45OsEUv8E1maPTB6OuHRohMMcznBq9TMpdpDMm/hUPob/mJJS3PqgbHpMTQgw==", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -5906,9 +5899,9 @@ } }, "node_modules/core-js-compat": { - "version": "3.25.5", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.5.tgz", - "integrity": "sha512-ovcyhs2DEBUIE0MGEKHP4olCUW/XYte3Vroyxuh38rD1wAO4dHohsovUC4eAOuzFxE6b+RXvBU3UZ9o0YhUTkA==", + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.0.tgz", + "integrity": "sha512-piOX9Go+Z4f9ZiBFLnZ5VrOpBl0h7IGCkiFUN11QTe6LjAvOT3ifL/5TdoizMh99hcGy5SoLyWbapIY/PIb/3A==", "dependencies": { "browserslist": "^4.21.4" }, @@ -5918,9 +5911,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.25.5", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.5.tgz", - "integrity": "sha512-oml3M22pHM+igfWHDfdLVq2ShWmjM2V4L+dQEBs0DWVIqEm9WHCwGAlZ6BmyBQGy5sFrJmcx+856D9lVKyGWYg==", + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.0.tgz", + "integrity": "sha512-LiN6fylpVBVwT8twhhluD9TzXmZQQsr2I2eIKtWNbZI1XMfBT7CV18itaN6RA7EtQd/SDdRx/wzvAShX2HvhQA==", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -6224,9 +6217,9 @@ } }, "node_modules/cssdb": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.0.1.tgz", - "integrity": "sha512-pT3nzyGM78poCKLAEy2zWIVX2hikq6dIrjuZzLV98MumBg+xMTNYfHx7paUlfiRTgg91O/vR889CIf+qiv79Rw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.0.2.tgz", + "integrity": "sha512-Vm4b6P/PifADu0a76H0DKRNVWq3Rq9xa/Nx6oEMUBJlwTUuZoZ3dkZxo8Gob3UEL53Cq+Ma1GBgISed6XEBs3w==", "funding": { "type": "opencollective", "url": "https://opencollective.com/csstools" @@ -6244,11 +6237,11 @@ } }, "node_modules/cssnano": { - "version": "5.1.13", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.13.tgz", - "integrity": "sha512-S2SL2ekdEz6w6a2epXn4CmMKU4K3KpcyXLKfAYc9UQQqJRkD/2eLUG0vJ3Db/9OvO5GuAdgXw3pFbR6abqghDQ==", + "version": "5.1.14", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.14.tgz", + "integrity": "sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==", "dependencies": { - "cssnano-preset-default": "^5.2.12", + "cssnano-preset-default": "^5.2.13", "lilconfig": "^2.0.3", "yaml": "^1.10.2" }, @@ -6264,24 +6257,24 @@ } }, "node_modules/cssnano-preset-default": { - "version": "5.2.12", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz", - "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==", + "version": "5.2.13", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz", + "integrity": "sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==", "dependencies": { - "css-declaration-sorter": "^6.3.0", + "css-declaration-sorter": "^6.3.1", "cssnano-utils": "^3.1.0", "postcss-calc": "^8.2.3", "postcss-colormin": "^5.3.0", - "postcss-convert-values": "^5.1.2", + "postcss-convert-values": "^5.1.3", "postcss-discard-comments": "^5.1.2", "postcss-discard-duplicates": "^5.1.0", "postcss-discard-empty": "^5.1.1", "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.6", - "postcss-merge-rules": "^5.1.2", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.3", "postcss-minify-font-values": "^5.1.0", "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.3", + "postcss-minify-params": "^5.1.4", "postcss-minify-selectors": "^5.2.1", "postcss-normalize-charset": "^5.1.0", "postcss-normalize-display-values": "^5.1.0", @@ -6289,11 +6282,11 @@ "postcss-normalize-repeat-style": "^5.1.1", "postcss-normalize-string": "^5.1.0", "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", "postcss-normalize-url": "^5.1.0", "postcss-normalize-whitespace": "^5.1.1", "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-initial": "^5.1.1", "postcss-reduce-transforms": "^5.1.0", "postcss-svgo": "^5.1.0", "postcss-unique-selectors": "^5.1.1" @@ -6413,9 +6406,9 @@ } }, "node_modules/decimal.js": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.1.tgz", - "integrity": "sha512-F29o+vci4DodHYT9UrR5IEbfBw9pE5eSapIJdTqXK5+6hq+t8VRxwQyKlW2i+KDKFkkJQRvFyI/QXD83h8LyQw==" + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.2.tgz", + "integrity": "sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==" }, "node_modules/dedent": { "version": "0.7.0", @@ -6470,9 +6463,12 @@ } }, "node_modules/defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", + "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/delayed-stream": { "version": "1.0.0", @@ -6747,9 +6743,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.276", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.276.tgz", - "integrity": "sha512-EpuHPqu8YhonqLBXHoU6hDJCD98FCe6KDoet3/gY1qsQ6usjJoHqBH2YIVs8FXaAtHwVL8Uqa/fsYao/vq9VWQ==" + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" }, "node_modules/emittery": { "version": "0.8.1", @@ -6992,13 +6988,14 @@ } }, "node_modules/eslint": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.25.0.tgz", - "integrity": "sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A==", + "version": "8.26.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.26.0.tgz", + "integrity": "sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==", "dependencies": { "@eslint/eslintrc": "^1.3.3", - "@humanwhocodes/config-array": "^0.10.5", + "@humanwhocodes/config-array": "^0.11.6", "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -7014,14 +7011,14 @@ "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", - "glob-parent": "^6.0.1", + "glob-parent": "^6.0.2", "globals": "^13.15.0", - "globby": "^11.1.0", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", @@ -7230,9 +7227,9 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.31.9", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.9.tgz", - "integrity": "sha512-vrVJwusIw4L99lyfXjtCw8HWdloajsiYslMavogrBe2Gl8gr95TJsJnOMRasN4b4N24I3XuJf6aAV6MhyGmjqw==", + "version": "7.31.10", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.10.tgz", + "integrity": "sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA==", "dependencies": { "array-includes": "^3.1.5", "array.prototype.flatmap": "^1.3.0", @@ -7295,9 +7292,9 @@ } }, "node_modules/eslint-plugin-testing-library": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.7.2.tgz", - "integrity": "sha512-0ZmHeR/DUUgEzW8rwUBRWxuqntipDtpvxK0hymdHnLlABryJkzd+CAHr+XnISaVsTisZ5MLHp6nQF+8COHLLTA==", + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.9.1.tgz", + "integrity": "sha512-6BQp3tmb79jLLasPHJmy8DnxREe+2Pgf7L+7o09TSWPfdqqtQfRZmZNetr5mOs3yqZk/MRNxpN3RUpJe0wB4LQ==", "dependencies": { "@typescript-eslint/utils": "^5.13.0" }, @@ -7880,25 +7877,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, - "node_modules/express/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -8733,6 +8711,11 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, "node_modules/hpack.js/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -8969,9 +8952,9 @@ "dev": true }, "node_modules/immer": { - "version": "9.0.15", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.15.tgz", - "integrity": "sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ==", + "version": "9.0.16", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.16.tgz", + "integrity": "sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ==", "funding": { "type": "opencollective", "url": "https://opencollective.com/immer" @@ -9112,9 +9095,9 @@ } }, "node_modules/is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dependencies": { "has": "^1.0.3" }, @@ -9231,6 +9214,14 @@ "node": ">=0.10.0" } }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/is-plain-obj": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", @@ -11700,9 +11691,9 @@ } }, "node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz", + "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -11830,9 +11821,9 @@ } }, "node_modules/memfs": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.7.tgz", - "integrity": "sha512-ygaiUSNalBX85388uskeCyhSAoOSgzBbtVCr9jA2RROssFL9Q19/ZXFqS+2Th2sr1ewNIWgFdLzLC3Yl1Zv+lw==", + "version": "3.4.9", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.9.tgz", + "integrity": "sha512-3rm8kbrzpUGRyPKSGuk387NZOwQ90O4rI9tsWQkzNW7BLSnKGp23RsEsKK8N8QVCrtJoAMqy3spxHC4os4G6PQ==", "dependencies": { "fs-monkey": "^1.0.3" }, @@ -12014,9 +12005,12 @@ } }, "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/mkdirp": { "version": "0.5.6", @@ -12844,9 +12838,9 @@ } }, "node_modules/postcss": { - "version": "8.4.17", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.17.tgz", - "integrity": "sha512-UNxNOLQydcOFi41yHNMcKRZ39NeXlr8AxGuZJsdub8vIb12fHzcq37DTU/QtbI6WLxNg2gF9Z+8qtRwTj1UI1Q==", + "version": "8.4.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz", + "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==", "funding": [ { "type": "opencollective", @@ -12994,11 +12988,11 @@ } }, "node_modules/postcss-convert-values": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz", - "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", "dependencies": { - "browserslist": "^4.20.3", + "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -13027,9 +13021,9 @@ } }, "node_modules/postcss-custom-properties": { - "version": "12.1.9", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.9.tgz", - "integrity": "sha512-/E7PRvK8DAVljBbeWrcEQJPG72jaImxF3vvCNFwv9cC8CzigVoNIpeyfnJzphnN3Fd8/auBf5wvkw6W9MfmTyg==", + "version": "12.1.10", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.10.tgz", + "integrity": "sha512-U3BHdgrYhCrwTVcByFHs9EOBoqcKq4Lf3kXwbTi4hhq0qWhl/pDWq2THbv/ICX/Fl9KqeHBb8OVrTf2OaYF07A==", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -13381,12 +13375,12 @@ } }, "node_modules/postcss-merge-longhand": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz", - "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==", + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", "dependencies": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.0" + "stylehacks": "^5.1.1" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -13396,11 +13390,11 @@ } }, "node_modules/postcss-merge-rules": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz", - "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz", + "integrity": "sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==", "dependencies": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", "cssnano-utils": "^3.1.0", "postcss-selector-parser": "^6.0.5" @@ -13443,11 +13437,11 @@ } }, "node_modules/postcss-minify-params": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz", - "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", "dependencies": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" }, @@ -13528,11 +13522,11 @@ } }, "node_modules/postcss-nested": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", - "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz", + "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==", "dependencies": { - "postcss-selector-parser": "^6.0.6" + "postcss-selector-parser": "^6.0.10" }, "engines": { "node": ">=12.0" @@ -13663,11 +13657,11 @@ } }, "node_modules/postcss-normalize-unicode": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", - "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", "dependencies": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -13868,11 +13862,11 @@ } }, "node_modules/postcss-reduce-initial": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", - "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz", + "integrity": "sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==", "dependencies": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "caniuse-api": "^3.0.0" }, "engines": { @@ -14084,9 +14078,9 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "node_modules/promise": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.2.0.tgz", - "integrity": "sha512-+CMAlLHqwRYwBMXKCP+o8ns7DN+xHDUiI+0nArsiJ9y+kJVPLFxEaSw6Ha9s9H0tftxg2Yzl25wqj9G7m5wLZg==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", "dependencies": { "asap": "~2.0.6" } @@ -14754,25 +14748,14 @@ } }, "node_modules/recursive-readdir": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", - "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", "dependencies": { - "minimatch": "3.0.4" + "minimatch": "^3.0.5" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/recursive-readdir/node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" + "node": ">=6.0.0" } }, "node_modules/regenerate": { @@ -14792,9 +14775,9 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "version": "0.13.10", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", + "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==" }, "node_modules/regenerator-transform": { "version": "0.15.0", @@ -15146,9 +15129,23 @@ } }, "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, "node_modules/safe-regex-test": { "version": "1.0.0", @@ -15435,9 +15432,12 @@ } }, "node_modules/shell-quote": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", - "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==" + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", + "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/side-channel": { "version": "1.0.4", @@ -15528,9 +15528,9 @@ } }, "node_modules/source-map-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.1.tgz", - "integrity": "sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", + "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", "dependencies": { "abab": "^2.0.5", "iconv-lite": "^0.6.3", @@ -15680,25 +15680,6 @@ "safe-buffer": "~5.2.0" } }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -15870,11 +15851,11 @@ } }, "node_modules/stylehacks": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", - "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", "dependencies": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "postcss-selector-parser": "^6.0.4" }, "engines": { @@ -16033,9 +16014,9 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" }, "node_modules/tailwindcss": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.1.8.tgz", - "integrity": "sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.1.tgz", + "integrity": "sha512-Uw+GVSxp5CM48krnjHObqoOwlCt5Qo6nw1jlCRwfGy68dSYb/LwS9ZFidYGRiM+w6rMawkZiu1mEMAsHYAfoLg==", "dependencies": { "arg": "^5.0.2", "chokidar": "^3.5.3", @@ -16043,18 +16024,19 @@ "detective": "^5.2.1", "didyoumean": "^1.2.2", "dlv": "^1.1.3", - "fast-glob": "^3.2.11", + "fast-glob": "^3.2.12", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", "lilconfig": "^2.0.6", + "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "object-hash": "^3.0.0", "picocolors": "^1.0.0", - "postcss": "^8.4.14", + "postcss": "^8.4.17", "postcss-import": "^14.1.0", "postcss-js": "^4.0.0", "postcss-load-config": "^3.1.4", - "postcss-nested": "5.0.6", + "postcss-nested": "6.0.0", "postcss-selector-parser": "^6.0.10", "postcss-value-parser": "^4.2.0", "quick-lru": "^5.1.1", @@ -16664,6 +16646,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", "dependencies": { "browser-process-hrtime": "^1.0.0" } @@ -16936,9 +16919,9 @@ } }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.9.0.tgz", - "integrity": "sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.10.0.tgz", + "integrity": "sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw==", "engines": { "node": ">=10.0.0" }, @@ -17591,25 +17574,25 @@ } }, "@babel/compat-data": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz", - "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==" + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.0.tgz", + "integrity": "sha512-Gt9jszFJYq7qzXVK4slhc6NzJXnOVmRECWcVjF/T23rNXD9NtWQ0W3qxdg+p9wWIB+VQw3GYV/U2Ha9bRTfs4w==" }, "@babel/core": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz", - "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.6.tgz", + "integrity": "sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==", "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.3", + "@babel/generator": "^7.19.6", "@babel/helper-compilation-targets": "^7.19.3", - "@babel/helper-module-transforms": "^7.19.0", - "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.3", + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helpers": "^7.19.4", + "@babel/parser": "^7.19.6", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.3", - "@babel/types": "^7.19.3", + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -17635,11 +17618,11 @@ } }, "@babel/generator": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.4.tgz", - "integrity": "sha512-5T2lY5vXqS+5UEit/5TwcIUeCnwgCljcF8IQRT6XRQPBrvLeq5V8W+URv+GvwoF3FP8tkhp++evVyDzkDGzNmA==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.0.tgz", + "integrity": "sha512-GUPcXxWibClgmYJuIwC2Bc2Lg+8b9VjaJ+HlNdACEVt+Wlr1eoU1OPZjZRm7Hzl0gaTsUZNQfeihvZJhG7oc3w==", "requires": { - "@babel/types": "^7.19.4", + "@babel/types": "^7.20.0", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -17674,11 +17657,11 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz", - "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", "requires": { - "@babel/compat-data": "^7.19.3", + "@babel/compat-data": "^7.20.0", "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.21.3", "semver": "^6.3.0" @@ -17767,18 +17750,18 @@ } }, "@babel/helper-module-transforms": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", - "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz", + "integrity": "sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==", "requires": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-simple-access": "^7.19.4", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4" } }, "@babel/helper-optimise-call-expression": { @@ -17826,11 +17809,11 @@ } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz", - "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", "requires": { - "@babel/types": "^7.18.9" + "@babel/types": "^7.20.0" } }, "@babel/helper-split-export-declaration": { @@ -17868,13 +17851,13 @@ } }, "@babel/helpers": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.4.tgz", - "integrity": "sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.0.tgz", + "integrity": "sha512-aGMjYraN0zosCEthoGLdqot1oRsmxVTQRHadsUPz5QM44Zej2PYRz7XiDE7GqnkZnNtLbOuxqoZw42vkU7+XEQ==", "requires": { "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.4", - "@babel/types": "^7.19.4" + "@babel/traverse": "^7.20.0", + "@babel/types": "^7.20.0" } }, "@babel/highlight": { @@ -17888,9 +17871,9 @@ } }, "@babel/parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.4.tgz", - "integrity": "sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA==" + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.0.tgz", + "integrity": "sha512-G9VgAhEaICnz8iiJeGJQyVl6J2nTjbW0xeisva0PK6XcKsga7BIaqm4ZF8Rg1Wbaqmy6znspNqhPaPkyukujzg==" }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.18.6", @@ -17941,9 +17924,9 @@ } }, "@babel/plugin-proposal-decorators": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.19.3.tgz", - "integrity": "sha512-MbgXtNXqo7RTKYIXVchVJGPvaVufQH3pxvQyfbGvNw1DObIhph+PesYXJTcd8J4DdWibvf6Z2eanOyItX8WnJg==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.20.0.tgz", + "integrity": "sha512-vnuRRS20ygSxclEYikHzVrP9nZDFXaSzvJxGLQNAiBX041TmhS4hOUHWNIpq/q4muENuEP9XPJFXTNFejhemkg==", "requires": { "@babel/helper-create-class-features-plugin": "^7.19.0", "@babel/helper-plugin-utils": "^7.19.0", @@ -18131,11 +18114,11 @@ } }, "@babel/plugin-syntax-import-assertions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz", - "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-syntax-import-meta": { @@ -18227,11 +18210,11 @@ } }, "@babel/plugin-syntax-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", - "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-transform-arrow-functions": { @@ -18261,9 +18244,9 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.19.4.tgz", - "integrity": "sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.0.tgz", + "integrity": "sha512-sXOohbpHZSk7GjxK9b3dKB7CfqUD5DwOH+DggKzOQ7TXYP+RCSbRykfjQmn/zq+rBjycVRtLf9pYhAaEJA786w==", "requires": { "@babel/helper-plugin-utils": "^7.19.0" } @@ -18293,9 +18276,9 @@ } }, "@babel/plugin-transform-destructuring": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.19.4.tgz", - "integrity": "sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.0.tgz", + "integrity": "sha512-1dIhvZfkDVx/zn2S1aFwlruspTt4189j7fEkH0Y0VyuDM6bQt7bD6kLcz3l4IlLG+e5OReaBz9ROAbttRtUHqA==", "requires": { "@babel/helper-plugin-utils": "^7.19.0" } @@ -18370,36 +18353,33 @@ } }, "@babel/plugin-transform-modules-amd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz", - "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", + "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz", - "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", + "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-simple-access": "^7.19.4" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz", - "integrity": "sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", + "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", "requires": { "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.19.0", + "@babel/helper-module-transforms": "^7.19.6", "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-validator-identifier": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-validator-identifier": "^7.19.1" } }, "@babel/plugin-transform-modules-umd": { @@ -18516,9 +18496,9 @@ } }, "@babel/plugin-transform-runtime": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.1.tgz", - "integrity": "sha512-2nJjTUFIzBMP/f/miLxEK9vxwW/KUXsdvN4sR//TmuDhe6yU2h57WmIOE12Gng3MDP/xpjUV/ToZRdcf8Yj4fA==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", + "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", "requires": { "@babel/helper-module-imports": "^7.18.6", "@babel/helper-plugin-utils": "^7.19.0", @@ -18570,13 +18550,13 @@ } }, "@babel/plugin-transform-typescript": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.19.3.tgz", - "integrity": "sha512-z6fnuK9ve9u/0X0rRvI9MY0xg+DOUaABDYOe+/SQTxtlptaBB/V9JIUxJn6xp3lMBeb9qe8xSFmHU35oZDXD+w==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.0.tgz", + "integrity": "sha512-xOAsAFaun3t9hCwZ13Qe7gq423UgMZ6zAgmLxeGGapFqlT/X3L5qT2btjiVLlFn7gWtMaVyceS5VxGAuKbgizw==", "requires": { "@babel/helper-create-class-features-plugin": "^7.19.0", "@babel/helper-plugin-utils": "^7.19.0", - "@babel/plugin-syntax-typescript": "^7.18.6" + "@babel/plugin-syntax-typescript": "^7.20.0" } }, "@babel/plugin-transform-unicode-escapes": { @@ -18714,20 +18694,20 @@ } }, "@babel/runtime": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.4.tgz", - "integrity": "sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.0.tgz", + "integrity": "sha512-NDYdls71fTXoU8TZHfbBWg7DiZfNzClcKui/+kyi6ppD2L1qnWW3VV6CjtaBXSUGGhiTWJ6ereOIkUvenif66Q==", "requires": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.13.10" } }, "@babel/runtime-corejs3": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.4.tgz", - "integrity": "sha512-HzjQ8+dzdx7dmZy4DQ8KV8aHi/74AjEbBGTFutBmg/pd3dY5/q1sfuOGPTFGEytlQhWoeVXqcK5BwMgIkRkNDQ==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.20.0.tgz", + "integrity": "sha512-v1JH7PeAAGBEyTQM9TqojVl+b20zXtesFKCJHu50xMxZKD1fX0TKaKHPsZfFkXfs7D1M9M6Eeqg1FkJ3a0x2dA==", "requires": { "core-js-pure": "^3.25.1", - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.13.10" } }, "@babel/template": { @@ -18741,26 +18721,26 @@ } }, "@babel/traverse": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.4.tgz", - "integrity": "sha512-w3K1i+V5u2aJUOXBFFC5pveFLmtq1s3qcdDNC2qRI6WPBQIDaKFqXxDEqDO/h1dQ3HjsZoZMyIy6jGLq0xtw+g==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.0.tgz", + "integrity": "sha512-5+cAXQNARgjRUK0JWu2UBwja4JLSO/rBMPJzpsKb+oBF5xlUuCfljQepS4XypBQoiigL0VQjTZy6WiONtUdScQ==", "requires": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.4", + "@babel/generator": "^7.20.0", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.4", - "@babel/types": "^7.19.4", + "@babel/parser": "^7.20.0", + "@babel/types": "^7.20.0", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.4.tgz", - "integrity": "sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.0.tgz", + "integrity": "sha512-Jlgt3H0TajCW164wkTOTzHkZb075tMQMULzrLUoUeKmO7eFL96GgDxf7/Axhc5CAuKE3KFyVW1p6ysKsi2oXAg==", "requires": { "@babel/helper-string-parser": "^7.19.4", "@babel/helper-validator-identifier": "^7.19.1", @@ -19058,13 +19038,13 @@ } }, "@humanwhocodes/config-array": { - "version": "0.10.7", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz", - "integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==", + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", + "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", "requires": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", - "minimatch": "^3.0.4" + "minimatch": "^3.0.5" } }, "@humanwhocodes/module-importer": { @@ -19615,9 +19595,9 @@ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "@jridgewell/trace-mapping": { - "version": "0.3.16", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.16.tgz", - "integrity": "sha512-LCQ+NeThyJ4k1W2d+vIKdxuSt9R3pQSZ4P92m7EakaYuXcVWbHuT5bjNcqLd4Rdgi6xYWYDvBJZJLZSLanjDcA==", + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "requires": { "@jridgewell/resolve-uri": "3.1.0", "@jridgewell/sourcemap-codec": "1.4.14" @@ -19868,9 +19848,9 @@ "integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==" }, "@sinclair/typebox": { - "version": "0.24.44", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.44.tgz", - "integrity": "sha512-ka0W0KN5i6LfrSocduwliMMpqVgohtPFidKdMEOUjoOFCHcOOYkKsPRxfs5f15oPNHTm6ERAm0GV/+/LTKeiWg==" + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==" }, "@sinonjs/commons": { "version": "1.8.3", @@ -20113,9 +20093,9 @@ } }, "@types/eslint": { - "version": "8.4.6", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz", - "integrity": "sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==", + "version": "8.4.9", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.9.tgz", + "integrity": "sha512-jFCSo4wJzlHQLCpceUhUnXdrPuCNOjGFMQ8Eg6JXxlz3QaCKOb7eGi2cephQdM4XTYsNej69P9JDJ1zqNIbncQ==", "requires": { "@types/estree": "*", "@types/json-schema": "*" @@ -20224,9 +20204,9 @@ "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==" }, "@types/node": { - "version": "18.11.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.7.tgz", - "integrity": "sha512-LhFTglglr63mNXUSRYD8A+ZAIu5sFqNJ4Y2fPuY7UlrySJH87rRRlhtVmMHplmfk5WkoJGmDjE9oiTfyX94CpQ==" + "version": "18.11.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.8.tgz", + "integrity": "sha512-uGwPWlE0Hj972KkHtCDVwZ8O39GmyjfMane1Z3GUBGGnkZ2USDq7SxLpVIiIHpweY9DS0QTDH0Nw7RNBsAAZ5A==" }, "@types/parse-json": { "version": "4.0.0", @@ -20329,6 +20309,11 @@ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" }, + "@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==" + }, "@types/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", @@ -20386,13 +20371,13 @@ "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" }, "@typescript-eslint/eslint-plugin": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.39.0.tgz", - "integrity": "sha512-xVfKOkBm5iWMNGKQ2fwX5GVgBuHmZBO1tCRwXmY5oAIsPscfwm2UADDuNB8ZVYCtpQvJK4xpjrK7jEhcJ0zY9A==", + "version": "5.41.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.41.0.tgz", + "integrity": "sha512-DXUS22Y57/LAFSg3x7Vi6RNAuLpTXwxB9S2nIA7msBb/Zt8p7XqMwdpdc1IU7CkOQUPgAqR5fWvxuKCbneKGmA==", "requires": { - "@typescript-eslint/scope-manager": "5.39.0", - "@typescript-eslint/type-utils": "5.39.0", - "@typescript-eslint/utils": "5.39.0", + "@typescript-eslint/scope-manager": "5.41.0", + "@typescript-eslint/type-utils": "5.41.0", + "@typescript-eslint/utils": "5.41.0", "debug": "^4.3.4", "ignore": "^5.2.0", "regexpp": "^3.2.0", @@ -20411,56 +20396,56 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.39.0.tgz", - "integrity": "sha512-n5N9kG/oGu2xXhHzsWzn94s6CWoiUj59FPU2dF2IQZxPftw+q6Jm5sV2vj5qTgAElRooHhrgtl2gxBQDCPt6WA==", + "version": "5.41.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.41.0.tgz", + "integrity": "sha512-/qxT2Kd2q/A22JVIllvws4rvc00/3AT4rAo/0YgEN28y+HPhbJbk6X4+MAHEoZzpNyAOugIT7D/OLnKBW8FfhA==", "requires": { - "@typescript-eslint/utils": "5.39.0" + "@typescript-eslint/utils": "5.41.0" } }, "@typescript-eslint/parser": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.39.0.tgz", - "integrity": "sha512-PhxLjrZnHShe431sBAGHaNe6BDdxAASDySgsBCGxcBecVCi8NQWxQZMcizNA4g0pN51bBAn/FUfkWG3SDVcGlA==", + "version": "5.41.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.41.0.tgz", + "integrity": "sha512-HQVfix4+RL5YRWZboMD1pUfFN8MpRH4laziWkkAzyO1fvNOY/uinZcvo3QiFJVS/siNHupV8E5+xSwQZrl6PZA==", "requires": { - "@typescript-eslint/scope-manager": "5.39.0", - "@typescript-eslint/types": "5.39.0", - "@typescript-eslint/typescript-estree": "5.39.0", + "@typescript-eslint/scope-manager": "5.41.0", + "@typescript-eslint/types": "5.41.0", + "@typescript-eslint/typescript-estree": "5.41.0", "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.39.0.tgz", - "integrity": "sha512-/I13vAqmG3dyqMVSZPjsbuNQlYS082Y7OMkwhCfLXYsmlI0ca4nkL7wJ/4gjX70LD4P8Hnw1JywUVVAwepURBw==", + "version": "5.41.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.41.0.tgz", + "integrity": "sha512-xOxPJCnuktUkY2xoEZBKXO5DBCugFzjrVndKdUnyQr3+9aDWZReKq9MhaoVnbL+maVwWJu/N0SEtrtEUNb62QQ==", "requires": { - "@typescript-eslint/types": "5.39.0", - "@typescript-eslint/visitor-keys": "5.39.0" + "@typescript-eslint/types": "5.41.0", + "@typescript-eslint/visitor-keys": "5.41.0" } }, "@typescript-eslint/type-utils": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.39.0.tgz", - "integrity": "sha512-KJHJkOothljQWzR3t/GunL0TPKY+fGJtnpl+pX+sJ0YiKTz3q2Zr87SGTmFqsCMFrLt5E0+o+S6eQY0FAXj9uA==", + "version": "5.41.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.41.0.tgz", + "integrity": "sha512-L30HNvIG6A1Q0R58e4hu4h+fZqaO909UcnnPbwKiN6Rc3BUEx6ez2wgN7aC0cBfcAjZfwkzE+E2PQQ9nEuoqfA==", "requires": { - "@typescript-eslint/typescript-estree": "5.39.0", - "@typescript-eslint/utils": "5.39.0", + "@typescript-eslint/typescript-estree": "5.41.0", + "@typescript-eslint/utils": "5.41.0", "debug": "^4.3.4", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.39.0.tgz", - "integrity": "sha512-gQMZrnfEBFXK38hYqt8Lkwt8f4U6yq+2H5VDSgP/qiTzC8Nw8JO3OuSUOQ2qW37S/dlwdkHDntkZM6SQhKyPhw==" + "version": "5.41.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.41.0.tgz", + "integrity": "sha512-5BejraMXMC+2UjefDvrH0Fo/eLwZRV6859SXRg+FgbhA0R0l6lDqDGAQYhKbXhPN2ofk2kY5sgGyLNL907UXpA==" }, "@typescript-eslint/typescript-estree": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.39.0.tgz", - "integrity": "sha512-qLFQP0f398sdnogJoLtd43pUgB18Q50QSA+BTE5h3sUxySzbWDpTSdgt4UyxNSozY/oDK2ta6HVAzvGgq8JYnA==", + "version": "5.41.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.41.0.tgz", + "integrity": "sha512-SlzFYRwFSvswzDSQ/zPkIWcHv8O5y42YUskko9c4ki+fV6HATsTODUPbRbcGDFYP86gaJL5xohUEytvyNNcXWg==", "requires": { - "@typescript-eslint/types": "5.39.0", - "@typescript-eslint/visitor-keys": "5.39.0", + "@typescript-eslint/types": "5.41.0", + "@typescript-eslint/visitor-keys": "5.41.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -20479,16 +20464,18 @@ } }, "@typescript-eslint/utils": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.39.0.tgz", - "integrity": "sha512-+DnY5jkpOpgj+EBtYPyHRjXampJfC0yUZZzfzLuUWVZvCuKqSdJVC8UhdWipIw7VKNTfwfAPiOWzYkAwuIhiAg==", + "version": "5.41.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.41.0.tgz", + "integrity": "sha512-QlvfwaN9jaMga9EBazQ+5DDx/4sAdqDkcs05AsQHMaopluVCUyu1bTRUVKzXbgjDlrRAQrYVoi/sXJ9fmG+KLQ==", "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.39.0", - "@typescript-eslint/types": "5.39.0", - "@typescript-eslint/typescript-estree": "5.39.0", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.41.0", + "@typescript-eslint/types": "5.41.0", + "@typescript-eslint/typescript-estree": "5.41.0", "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" }, "dependencies": { "eslint-scope": { @@ -20504,15 +20491,23 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "requires": { + "lru-cache": "^6.0.0" + } } } }, "@typescript-eslint/visitor-keys": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.39.0.tgz", - "integrity": "sha512-yyE3RPwOG+XJBLrhvsxAidUgybJVQ/hG8BhiJo0k8JSAYfk/CshVcxf0HwP4Jt7WZZ6vLmxdo1p6EyN3tzFTkg==", + "version": "5.41.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.41.0.tgz", + "integrity": "sha512-vilqeHj267v8uzzakbm13HkPMl7cbYpKVjgFWZPIOHIJHZtinvypUhJ5xBXfWYg4eFKqztbMMpOgFpT9Gfx4fw==", "requires": { - "@typescript-eslint/types": "5.39.0", + "@typescript-eslint/types": "5.41.0", "eslint-visitor-keys": "^3.3.0" } }, @@ -20678,9 +20673,9 @@ } }, "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==" + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==" }, "acorn-globals": { "version": "6.0.0", @@ -20946,12 +20941,12 @@ "integrity": "sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==" }, "autoprefixer": { - "version": "10.4.12", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.12.tgz", - "integrity": "sha512-WrCGV9/b97Pa+jtwf5UGaRjgQIg7OK3D06GnoYoZNcG1Xb8Gt3EfuKjlhh9i/VtT16g6PYjZ69jdJ2g8FxSC4Q==", + "version": "10.4.13", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", + "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", "requires": { "browserslist": "^4.21.4", - "caniuse-lite": "^1.0.30001407", + "caniuse-lite": "^1.0.30001426", "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", @@ -20959,9 +20954,9 @@ } }, "axe-core": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz", - "integrity": "sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==" + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.5.0.tgz", + "integrity": "sha512-4+rr8eQ7+XXS5nZrKcMO/AikHL0hVqy+lHWAnE3xdHl+aguag8SOQ6eEqLexwLNWgXIMfunGuD3ON1/6Kyet0A==" }, "axios": { "version": "1.1.3", @@ -21061,14 +21056,6 @@ } } }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "requires": { - "object.assign": "^4.1.0" - } - }, "babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", @@ -21391,9 +21378,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001418", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001418.tgz", - "integrity": "sha512-oIs7+JL3K9JRQ3jPZjlH6qyYDp+nBTCais7hjh0s+fuBwufc7uZ7hPYMXrDOJhV360KGMTcczMRObk0/iMqZRg==" + "version": "1.0.30001427", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001427.tgz", + "integrity": "sha512-lfXQ73oB9c8DP5Suxaszm+Ta2sr/4tf8+381GkIm1MLj/YdLf+rEDyDSRCzeltuyTVGm+/s18gdZ0q+Wmp8VsQ==" }, "case-sensitive-paths-webpack-plugin": { "version": "2.4.0", @@ -21592,6 +21579,11 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } }, @@ -21616,13 +21608,6 @@ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "requires": { "safe-buffer": "5.2.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - } } }, "content-type": { @@ -21631,12 +21616,9 @@ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "requires": { - "safe-buffer": "~5.1.1" - } + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "cookie": { "version": "0.5.0", @@ -21649,22 +21631,22 @@ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, "core-js": { - "version": "3.25.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.25.5.tgz", - "integrity": "sha512-nbm6eZSjm+ZuBQxCUPQKQCoUEfFOXjUZ8dTTyikyKaWrTYmAVbykQfwsKE5dBK88u3QCkCrzsx/PPlKfhsvgpw==" + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.26.0.tgz", + "integrity": "sha512-+DkDrhoR4Y0PxDz6rurahuB+I45OsEUv8E1maPTB6OuHRohMMcznBq9TMpdpDMm/hUPob/mJJS3PqgbHpMTQgw==" }, "core-js-compat": { - "version": "3.25.5", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.5.tgz", - "integrity": "sha512-ovcyhs2DEBUIE0MGEKHP4olCUW/XYte3Vroyxuh38rD1wAO4dHohsovUC4eAOuzFxE6b+RXvBU3UZ9o0YhUTkA==", + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.0.tgz", + "integrity": "sha512-piOX9Go+Z4f9ZiBFLnZ5VrOpBl0h7IGCkiFUN11QTe6LjAvOT3ifL/5TdoizMh99hcGy5SoLyWbapIY/PIb/3A==", "requires": { "browserslist": "^4.21.4" } }, "core-js-pure": { - "version": "3.25.5", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.5.tgz", - "integrity": "sha512-oml3M22pHM+igfWHDfdLVq2ShWmjM2V4L+dQEBs0DWVIqEm9WHCwGAlZ6BmyBQGy5sFrJmcx+856D9lVKyGWYg==" + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.0.tgz", + "integrity": "sha512-LiN6fylpVBVwT8twhhluD9TzXmZQQsr2I2eIKtWNbZI1XMfBT7CV18itaN6RA7EtQd/SDdRx/wzvAShX2HvhQA==" }, "core-util-is": { "version": "1.0.3", @@ -21856,9 +21838,9 @@ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" }, "cssdb": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.0.1.tgz", - "integrity": "sha512-pT3nzyGM78poCKLAEy2zWIVX2hikq6dIrjuZzLV98MumBg+xMTNYfHx7paUlfiRTgg91O/vR889CIf+qiv79Rw==" + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.0.2.tgz", + "integrity": "sha512-Vm4b6P/PifADu0a76H0DKRNVWq3Rq9xa/Nx6oEMUBJlwTUuZoZ3dkZxo8Gob3UEL53Cq+Ma1GBgISed6XEBs3w==" }, "cssesc": { "version": "3.0.0", @@ -21866,34 +21848,34 @@ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" }, "cssnano": { - "version": "5.1.13", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.13.tgz", - "integrity": "sha512-S2SL2ekdEz6w6a2epXn4CmMKU4K3KpcyXLKfAYc9UQQqJRkD/2eLUG0vJ3Db/9OvO5GuAdgXw3pFbR6abqghDQ==", + "version": "5.1.14", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.14.tgz", + "integrity": "sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==", "requires": { - "cssnano-preset-default": "^5.2.12", + "cssnano-preset-default": "^5.2.13", "lilconfig": "^2.0.3", "yaml": "^1.10.2" } }, "cssnano-preset-default": { - "version": "5.2.12", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz", - "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==", + "version": "5.2.13", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz", + "integrity": "sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==", "requires": { - "css-declaration-sorter": "^6.3.0", + "css-declaration-sorter": "^6.3.1", "cssnano-utils": "^3.1.0", "postcss-calc": "^8.2.3", "postcss-colormin": "^5.3.0", - "postcss-convert-values": "^5.1.2", + "postcss-convert-values": "^5.1.3", "postcss-discard-comments": "^5.1.2", "postcss-discard-duplicates": "^5.1.0", "postcss-discard-empty": "^5.1.1", "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.6", - "postcss-merge-rules": "^5.1.2", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.3", "postcss-minify-font-values": "^5.1.0", "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.3", + "postcss-minify-params": "^5.1.4", "postcss-minify-selectors": "^5.2.1", "postcss-normalize-charset": "^5.1.0", "postcss-normalize-display-values": "^5.1.0", @@ -21901,11 +21883,11 @@ "postcss-normalize-repeat-style": "^5.1.1", "postcss-normalize-string": "^5.1.0", "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", "postcss-normalize-url": "^5.1.0", "postcss-normalize-whitespace": "^5.1.1", "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-initial": "^5.1.1", "postcss-reduce-transforms": "^5.1.0", "postcss-svgo": "^5.1.0", "postcss-unique-selectors": "^5.1.1" @@ -21995,9 +21977,9 @@ } }, "decimal.js": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.1.tgz", - "integrity": "sha512-F29o+vci4DodHYT9UrR5IEbfBw9pE5eSapIJdTqXK5+6hq+t8VRxwQyKlW2i+KDKFkkJQRvFyI/QXD83h8LyQw==" + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.2.tgz", + "integrity": "sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==" }, "dedent": { "version": "0.7.0", @@ -22037,9 +22019,9 @@ } }, "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", + "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==" }, "delayed-stream": { "version": "1.0.0", @@ -22247,9 +22229,9 @@ } }, "electron-to-chromium": { - "version": "1.4.276", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.276.tgz", - "integrity": "sha512-EpuHPqu8YhonqLBXHoU6hDJCD98FCe6KDoet3/gY1qsQ6usjJoHqBH2YIVs8FXaAtHwVL8Uqa/fsYao/vq9VWQ==" + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" }, "emittery": { "version": "0.8.1", @@ -22431,13 +22413,14 @@ } }, "eslint": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.25.0.tgz", - "integrity": "sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A==", + "version": "8.26.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.26.0.tgz", + "integrity": "sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==", "requires": { "@eslint/eslintrc": "^1.3.3", - "@humanwhocodes/config-array": "^0.10.5", + "@humanwhocodes/config-array": "^0.11.6", "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -22453,14 +22436,14 @@ "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", - "glob-parent": "^6.0.1", + "glob-parent": "^6.0.2", "globals": "^13.15.0", - "globby": "^11.1.0", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", @@ -22729,9 +22712,9 @@ } }, "eslint-plugin-react": { - "version": "7.31.9", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.9.tgz", - "integrity": "sha512-vrVJwusIw4L99lyfXjtCw8HWdloajsiYslMavogrBe2Gl8gr95TJsJnOMRasN4b4N24I3XuJf6aAV6MhyGmjqw==", + "version": "7.31.10", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.10.tgz", + "integrity": "sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA==", "requires": { "array-includes": "^3.1.5", "array.prototype.flatmap": "^1.3.0", @@ -22776,9 +22759,9 @@ "requires": {} }, "eslint-plugin-testing-library": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.7.2.tgz", - "integrity": "sha512-0ZmHeR/DUUgEzW8rwUBRWxuqntipDtpvxK0hymdHnLlABryJkzd+CAHr+XnISaVsTisZ5MLHp6nQF+8COHLLTA==", + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.9.1.tgz", + "integrity": "sha512-6BQp3tmb79jLLasPHJmy8DnxREe+2Pgf7L+7o09TSWPfdqqtQfRZmZNetr5mOs3yqZk/MRNxpN3RUpJe0wB4LQ==", "requires": { "@typescript-eslint/utils": "^5.13.0" } @@ -23070,11 +23053,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" } } }, @@ -23677,6 +23655,11 @@ "util-deprecate": "~1.0.1" } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -23849,9 +23832,9 @@ "dev": true }, "immer": { - "version": "9.0.15", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.15.tgz", - "integrity": "sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ==" + "version": "9.0.16", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.16.tgz", + "integrity": "sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ==" }, "import-fresh": { "version": "3.3.0", @@ -23946,9 +23929,9 @@ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" }, "is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "requires": { "has": "^1.0.3" } @@ -24017,6 +24000,11 @@ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==" }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" + }, "is-plain-obj": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", @@ -25821,9 +25809,9 @@ "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==" }, "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz", + "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==", "requires": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -25927,9 +25915,9 @@ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" }, "memfs": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.7.tgz", - "integrity": "sha512-ygaiUSNalBX85388uskeCyhSAoOSgzBbtVCr9jA2RROssFL9Q19/ZXFqS+2Th2sr1ewNIWgFdLzLC3Yl1Zv+lw==", + "version": "3.4.9", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.9.tgz", + "integrity": "sha512-3rm8kbrzpUGRyPKSGuk387NZOwQ90O4rI9tsWQkzNW7BLSnKGp23RsEsKK8N8QVCrtJoAMqy3spxHC4os4G6PQ==", "requires": { "fs-monkey": "^1.0.3" } @@ -26056,9 +26044,9 @@ } }, "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" }, "mkdirp": { "version": "0.5.6", @@ -26640,9 +26628,9 @@ } }, "postcss": { - "version": "8.4.17", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.17.tgz", - "integrity": "sha512-UNxNOLQydcOFi41yHNMcKRZ39NeXlr8AxGuZJsdub8vIb12fHzcq37DTU/QtbI6WLxNg2gF9Z+8qtRwTj1UI1Q==", + "version": "8.4.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz", + "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==", "requires": { "nanoid": "^3.3.4", "picocolors": "^1.0.0", @@ -26716,11 +26704,11 @@ } }, "postcss-convert-values": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz", - "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", "requires": { - "browserslist": "^4.20.3", + "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" } }, @@ -26733,9 +26721,9 @@ } }, "postcss-custom-properties": { - "version": "12.1.9", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.9.tgz", - "integrity": "sha512-/E7PRvK8DAVljBbeWrcEQJPG72jaImxF3vvCNFwv9cC8CzigVoNIpeyfnJzphnN3Fd8/auBf5wvkw6W9MfmTyg==", + "version": "12.1.10", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.10.tgz", + "integrity": "sha512-U3BHdgrYhCrwTVcByFHs9EOBoqcKq4Lf3kXwbTi4hhq0qWhl/pDWq2THbv/ICX/Fl9KqeHBb8OVrTf2OaYF07A==", "requires": { "postcss-value-parser": "^4.2.0" } @@ -26914,20 +26902,20 @@ "requires": {} }, "postcss-merge-longhand": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz", - "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==", + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", "requires": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.0" + "stylehacks": "^5.1.1" } }, "postcss-merge-rules": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz", - "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz", + "integrity": "sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==", "requires": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", "cssnano-utils": "^3.1.0", "postcss-selector-parser": "^6.0.5" @@ -26952,11 +26940,11 @@ } }, "postcss-minify-params": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz", - "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", "requires": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" } @@ -27002,11 +26990,11 @@ } }, "postcss-nested": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", - "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz", + "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==", "requires": { - "postcss-selector-parser": "^6.0.6" + "postcss-selector-parser": "^6.0.10" } }, "postcss-nesting": { @@ -27075,11 +27063,11 @@ } }, "postcss-normalize-unicode": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", - "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", "requires": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" } }, @@ -27201,11 +27189,11 @@ } }, "postcss-reduce-initial": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", - "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz", + "integrity": "sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==", "requires": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "caniuse-api": "^3.0.0" } }, @@ -27349,9 +27337,9 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "promise": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.2.0.tgz", - "integrity": "sha512-+CMAlLHqwRYwBMXKCP+o8ns7DN+xHDUiI+0nArsiJ9y+kJVPLFxEaSw6Ha9s9H0tftxg2Yzl25wqj9G7m5wLZg==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", "requires": { "asap": "~2.0.6" } @@ -27845,21 +27833,11 @@ } }, "recursive-readdir": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", - "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", "requires": { - "minimatch": "3.0.4" - }, - "dependencies": { - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - } + "minimatch": "^3.0.5" } }, "regenerate": { @@ -27876,9 +27854,9 @@ } }, "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "version": "0.13.10", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", + "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==" }, "regenerator-transform": { "version": "0.15.0", @@ -28120,9 +28098,9 @@ } }, "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, "safe-regex-test": { "version": "1.0.0", @@ -28344,9 +28322,9 @@ "dev": true }, "shell-quote": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", - "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==" + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", + "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==" }, "side-channel": { "version": "1.0.4", @@ -28421,9 +28399,9 @@ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" }, "source-map-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.1.tgz", - "integrity": "sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", + "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", "requires": { "abab": "^2.0.5", "iconv-lite": "^0.6.3", @@ -28549,13 +28527,6 @@ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "requires": { "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - } } }, "string-length": { @@ -28680,11 +28651,11 @@ "requires": {} }, "stylehacks": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", - "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", "requires": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "postcss-selector-parser": "^6.0.4" } }, @@ -28812,9 +28783,9 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" }, "tailwindcss": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.1.8.tgz", - "integrity": "sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.1.tgz", + "integrity": "sha512-Uw+GVSxp5CM48krnjHObqoOwlCt5Qo6nw1jlCRwfGy68dSYb/LwS9ZFidYGRiM+w6rMawkZiu1mEMAsHYAfoLg==", "requires": { "arg": "^5.0.2", "chokidar": "^3.5.3", @@ -28822,18 +28793,19 @@ "detective": "^5.2.1", "didyoumean": "^1.2.2", "dlv": "^1.1.3", - "fast-glob": "^3.2.11", + "fast-glob": "^3.2.12", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", "lilconfig": "^2.0.6", + "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "object-hash": "^3.0.0", "picocolors": "^1.0.0", - "postcss": "^8.4.14", + "postcss": "^8.4.17", "postcss-import": "^14.1.0", "postcss-js": "^4.0.0", "postcss-load-config": "^3.1.4", - "postcss-nested": "5.0.6", + "postcss-nested": "6.0.0", "postcss-selector-parser": "^6.0.10", "postcss-value-parser": "^4.2.0", "quick-lru": "^5.1.1", @@ -29479,9 +29451,9 @@ } }, "ws": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.9.0.tgz", - "integrity": "sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.10.0.tgz", + "integrity": "sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw==", "requires": {} } } diff --git a/interface/public/fonts/md.woff2 b/interface/public/fonts/md.woff2 index ce795fa8b..84fe5d910 100644 Binary files a/interface/public/fonts/md.woff2 and b/interface/public/fonts/md.woff2 differ diff --git a/interface/public/fonts/re.woff2 b/interface/public/fonts/re.woff2 index ebe1795f8..5ca942ccb 100644 Binary files a/interface/public/fonts/re.woff2 and b/interface/public/fonts/re.woff2 differ diff --git a/interface/src/components/upload/SingleUpload.tsx b/interface/src/components/upload/SingleUpload.tsx index ccf8bfed3..46732ab46 100644 --- a/interface/src/components/upload/SingleUpload.tsx +++ b/interface/src/components/upload/SingleUpload.tsx @@ -35,7 +35,8 @@ const SingleUpload: FC = ({ onDrop, onCancel, uploading, prog onDrop, accept: { 'application/octet-stream': ['.bin'], - 'application/json': ['.json'] + 'application/json': ['.json'], + 'text/plain': ['.md5'] }, disabled: uploading, multiple: false diff --git a/interface/src/components/upload/useFileUpload.ts b/interface/src/components/upload/useFileUpload.ts index 05d4431fe..cc2f296d3 100644 --- a/interface/src/components/upload/useFileUpload.ts +++ b/interface/src/components/upload/useFileUpload.ts @@ -16,6 +16,7 @@ const useFileUpload = ({ upload }: MediaUploadOptions) => { const { enqueueSnackbar } = useSnackbar(); const [uploading, setUploading] = useState(false); + const [md5, setMd5] = useState(''); const [uploadProgress, setUploadProgress] = useState(); const [uploadCancelToken, setUploadCancelToken] = useState(); @@ -23,6 +24,7 @@ const useFileUpload = ({ upload }: MediaUploadOptions) => { setUploading(false); setUploadProgress(undefined); setUploadCancelToken(undefined); + setMd5(''); }; const cancelUpload = useCallback(() => { @@ -41,12 +43,17 @@ const useFileUpload = ({ upload }: MediaUploadOptions) => { const cancelToken = axios.CancelToken.source(); setUploadCancelToken(cancelToken); setUploading(true); - await upload(images[0], { + const response = await upload(images[0], { onUploadProgress: setUploadProgress, cancelToken: cancelToken.token }); resetUploadingStates(); - enqueueSnackbar(LL.UPLOAD() + ' ' + LL.SUCCESSFUL(), { variant: 'success' }); + if (response.status === 200) { + enqueueSnackbar(LL.UPLOAD() + ' ' + LL.SUCCESSFUL(), { variant: 'success' }); + } else if (response.status === 201) { + setMd5((String)(response.data)); + enqueueSnackbar(LL.UPLOAD() + ' MD5 ' + LL.SUCCESSFUL(), { variant: 'success' }); + } } catch (error) { if (axios.isCancel(error)) { enqueueSnackbar(LL.UPLOAD() + ' ' + LL.ABORTED(), { variant: 'warning' }); @@ -57,7 +64,7 @@ const useFileUpload = ({ upload }: MediaUploadOptions) => { } }; - return [uploadFile, cancelUpload, uploading, uploadProgress] as const; + return [uploadFile, cancelUpload, uploading, uploadProgress, md5] as const; }; export default useFileUpload; diff --git a/interface/src/framework/network/NetworkStatusForm.tsx b/interface/src/framework/network/NetworkStatusForm.tsx index 10b020daa..8c90f0006 100644 --- a/interface/src/framework/network/NetworkStatusForm.tsx +++ b/interface/src/framework/network/NetworkStatusForm.tsx @@ -44,7 +44,7 @@ const dnsServers = ({ dns_ip_1, dns_ip_2 }: NetworkStatus) => { if (!dns_ip_1) { return 'none'; } - return dns_ip_1 + (dns_ip_2 === '0.0.0.0' ? '' : ',' + dns_ip_2); + return dns_ip_1 + (!dns_ip_2 || dns_ip_2 === '0.0.0.0' ? '' : ',' + dns_ip_2); }; const IPs = (status: NetworkStatus) => { diff --git a/interface/src/framework/system/GeneralFileUpload.tsx b/interface/src/framework/system/GeneralFileUpload.tsx index 8d77657b8..f5aa03f50 100644 --- a/interface/src/framework/system/GeneralFileUpload.tsx +++ b/interface/src/framework/system/GeneralFileUpload.tsx @@ -4,6 +4,7 @@ import { AxiosPromise } from 'axios'; import { Typography, Button, Box } from '@mui/material'; import { FileUploadConfig } from '../../api/endpoints'; + import { SingleUpload, useFileUpload } from '../../components'; import DownloadIcon from '@mui/icons-material/GetApp'; @@ -21,7 +22,8 @@ interface UploadFileProps { } const GeneralFileUpload: FC = ({ uploadGeneralFile }) => { - const [uploadFile, cancelUpload, uploading, uploadProgress] = useFileUpload({ upload: uploadGeneralFile }); + + const [uploadFile, cancelUpload, uploading, uploadProgress, md5] = useFileUpload({ upload: uploadGeneralFile }); const { enqueueSnackbar } = useSnackbar(); @@ -80,6 +82,11 @@ const GeneralFileUpload: FC = ({ uploadGeneralFile }) => { )} + {md5 !== '' && ( + + {'MD5: ' + md5} + + )} {!uploading && ( diff --git a/interface/src/framework/system/SystemStatusForm.tsx b/interface/src/framework/system/SystemStatusForm.tsx index 33f6fa47c..7ead2e2a4 100644 --- a/interface/src/framework/system/SystemStatusForm.tsx +++ b/interface/src/framework/system/SystemStatusForm.tsx @@ -39,6 +39,7 @@ import { extractErrorMessage, useRest } from '../../utils'; import { AuthenticatedContext } from '../../contexts/authentication'; import axios from 'axios'; +import RestartMonitor from './RestartMonitor'; import { useI18nContext } from '../../i18n/i18n-react'; @@ -52,6 +53,7 @@ function formatNumber(num: number) { const SystemStatusForm: FC = () => { const { LL } = useI18nContext(); + const [restarting, setRestarting] = useState(); const { loadData, data, errorMessage } = useRest({ read: SystemApi.readSystemStatus }); @@ -69,7 +71,8 @@ const SystemStatusForm: FC = () => { setLatestVersion({ version: response.data.name, url: response.data.assets[1].browser_download_url, - changelog: response.data.html_url + changelog: response.data.assets[0].browser_download_url + }); }); axios.get(VERSIONCHECK_DEV_ENDPOINT).then((response) => { @@ -86,6 +89,7 @@ const SystemStatusForm: FC = () => { try { await SystemApi.restart(); enqueueSnackbar(LL.APPLICATION_RESTARTING(), { variant: 'info' }); + setRestarting(true); } catch (error) { enqueueSnackbar(extractErrorMessage(error, LL.PROBLEM_LOADING()), { variant: 'error' }); } finally { @@ -103,6 +107,7 @@ const SystemStatusForm: FC = () => { startIcon={} variant="outlined" onClick={() => setConfirmRestart(false)} + disabled={processing} color="secondary" > {LL.CANCEL()} @@ -199,6 +204,7 @@ const SystemStatusForm: FC = () => { startIcon={} variant="outlined" onClick={() => setConfirmFactoryReset(false)} + disabled={processing} color="secondary" > {LL.CANCEL()} @@ -302,9 +308,7 @@ const SystemStatusForm: FC = () => { @@ -373,7 +377,7 @@ const SystemStatusForm: FC = () => { return ( - {content()} + {restarting ? : content()} ); }; diff --git a/interface/src/framework/system/UploadFileForm.tsx b/interface/src/framework/system/UploadFileForm.tsx index 5a5948217..4222a1508 100644 --- a/interface/src/framework/system/UploadFileForm.tsx +++ b/interface/src/framework/system/UploadFileForm.tsx @@ -16,7 +16,9 @@ const UploadFileForm: FC = () => { const uploadFile = useRef(async (file: File, config?: FileUploadConfig) => { const response = await SystemApi.uploadFile(file, config); - setRestarting(true); + if (response.status === 200) { + setRestarting(true); + } return response; }); diff --git a/interface/src/i18n/de/index.ts b/interface/src/i18n/de/index.ts index 4fe930427..ed7b70ba4 100644 --- a/interface/src/i18n/de/index.ts +++ b/interface/src/i18n/de/index.ts @@ -105,7 +105,7 @@ const de: Translation = { BOARD_PROFILE: 'Platinenprofil', BUTTON: 'Taste', TEMPERATURE: 'Temperatur', - PHY_TYPE: 'Eth PHY Type', + PHY_TYPE: 'Eth PHY Typ', DISABLED: 'deaktiviert', TX_MODE: 'Tx Mode', GENERAL_OPTIONS: 'Allgemeine Optionen', @@ -177,7 +177,7 @@ const de: Translation = { SYSTEM_VERSION_RUNNING: 'Sie verwenden die Version', SYSTEM_APPLY_FIRMWARE: 'um die neue Firmware anzuwenden', CLOSE: 'Schließen', - USE: 'Verwenden', + USE: 'Verwenden Sie', FACTORY_RESET: 'Werkseinstellung', SYSTEM_FACTORY_TEXT: 'EMS-ESP wurde auf Werkseinstellung gesetzt und startet als Zugangspunkt neu', SYSTEM_FACTORY_TEXT_DIALOG: 'Sind Sie sicher alle Einstellungen auf Werkseinstellung zu setzen?', @@ -191,7 +191,7 @@ const de: Translation = { PLATFORM: 'Platform (Platform / SDK)', UPTIME: 'System Betriebszeit', CPU_FREQ: 'CPU Frequenz', - HEAP: 'RAM freier Speicher (Gesamt / max. Block)', + HEAP: 'freier RAM Speicher (Gesamt / max. Block)', PSRAM: 'PSRAM (Größe / Frei)', FLASH: 'Flash Speicher (Größe / Geschwindigkeit)', APPSIZE: 'Programm (Genutzt / Frei)', @@ -202,7 +202,7 @@ const de: Translation = { DOWNLOAD_CUSTOMIZATION_TEXT: 'Herunterladen der individuellen Entitätsanpassungen', DOWNLOAD_SETTINGS_TEXT: 'Herunterladen der Anwendungseinstellungen. Vorsicht beim Teilen der Einstellungen, da sie Passwörter und andere sensitive Einstellungen enthalten', - UPLOAD_TEXT: 'Hochladen von neuer Firmware (.bin), Geräte- oder Entitätseinstellungen (.json)', + UPLOAD_TEXT: 'Hochladen von neuer Firmware (.bin), Geräte- oder Entitätseinstellungen (.json), zur optionalen Validitätsprüfung zuerst die (.md5) Datei hochladen', UPLOADING: 'Hochladen', UPLOAD_DROP_TEXT: 'Klicken Sie hier, oder ziehen eine Datei hierher', ERROR: 'Unerwarteter Fehler, bitter versuchen Sie es erneut', @@ -259,9 +259,9 @@ const de: Translation = { AP_PROVIDE_TEXT_3: 'Niemals', AP_PREFERRED_CHANNEL: 'Bevorzugter Kanal', AP_HIDE_SSID: 'Verstecke SSID', - AP_CLIENTS: 'AP Clients', - AP_MAX_CLIENTS: 'Max Clients', - AP_LOCAL_IP: 'Local IP', + AP_CLIENTS: 'AP-Klienten', + AP_MAX_CLIENTS: 'Max Anzahl AP-Klienten', + AP_LOCAL_IP: 'Lokale IP', NETWORK_SCAN: 'Suche nach WiFi Netzwerken', IDLE: 'Leerlauf', LOST: 'Verloren', @@ -276,11 +276,11 @@ const de: Translation = { NETWORK_LOW_BAND: 'Verwende niedrige WiFi Bandbreite', NETWORK_USE_DNS: 'Aktiviere mDNS Service', NETWORK_ENABLE_IPV6: 'Aktiviere IPv6 Unterstützung', - NETWORK_FIXED_IP: 'Feste IP Addresse', - NETWORK_GATEWAY: 'Getaway', - NETWORK_SUBNET: 'Subnet Mask', - NETWORK_DNS: 'DNS Servers', - ADDRESS_OF: '{0} Address', + NETWORK_FIXED_IP: 'Feste IP Adresse', + NETWORK_GATEWAY: 'Gateway', + NETWORK_SUBNET: 'Subnetz Maske', + NETWORK_DNS: 'DNS Server', + ADDRESS_OF: '{0} Adresse', ADMIN: 'Administrator', GUEST: 'Gast', NEW: 'Neuer', diff --git a/interface/src/i18n/en/index.ts b/interface/src/i18n/en/index.ts index e604880ac..d4bb52cfe 100644 --- a/interface/src/i18n/en/index.ts +++ b/interface/src/i18n/en/index.ts @@ -19,8 +19,8 @@ const en: BaseTranslation = { UPLOAD_SUCCESSFUL: 'Upload successful', DOWNLOAD_SUCCESSFUL: 'Download successful', INVALID_LOGIN: 'Invalid login details', - NETWORK: 'Network', - SECURITY: 'Security', + NETWORK: '{{Network}}', + SECURITY: '{{Security}}', ONOFF_CAP: 'ON/OFF', ONOFF: 'on/off', TYPE: 'Type', @@ -31,7 +31,7 @@ const en: BaseTranslation = { DEVICE_DETAILS: 'Device Details', BRAND: 'Brand', ENTITY_NAME: 'Entity Name', - VALUE: 'Value', + VALUE: '{{Value}}', SHOW_FAV: 'only show favorites', DEVICE_SENSOR_DATA: 'Device and Sensor Data', DEVICES_SENSORS: 'Devices & Sensors', @@ -39,7 +39,7 @@ const en: BaseTranslation = { RUN_COMMAND: 'Call Command', CHANGE_VALUE: 'Change Value', CANCEL: 'Cancel', - RESET: 'Reset', + RESET: '{{Reset}}', SEND: 'Send', SAVE: 'Save', REMOVE: 'Remove', @@ -66,7 +66,7 @@ const en: BaseTranslation = { EMS_BUS_WARNING: 'EMS bus disconnected. If this warning still persists after a few seconds please check settings and board profile', EMS_BUS_SCANNING: 'Scanning for EMS devices...', - CONNECTED: 'Connected', + CONNECTED: '{{Connected}}', TX_ISSUES: 'Tx issues - try a different Tx Mode', DISCONNECTED: 'Disconnected', EMS_SCAN: 'Are you sure you want to initiate a full device scan of the EMS bus?', @@ -171,7 +171,7 @@ const en: BaseTranslation = { ABORTED: 'aborted', FAILED: 'failed', SUCCESSFUL: 'successful', - SYSTEM: 'System', + SYSTEM: '{{System}}', LOG_OF: '{0} Log', STATUS_OF: '{0} Status', UPLOAD_DOWNLOAD: 'Upload/Download', @@ -182,7 +182,7 @@ const en: BaseTranslation = { FACTORY_RESET: 'Factory Reset', SYSTEM_FACTORY_TEXT: 'Device has been factory reset and will now restart', SYSTEM_FACTORY_TEXT_DIALOG: 'Are you sure you want to reset the device to its factory defaults?', - VERSION_CHECK: 'Version Check', + VERSION_CHECK: '{{Version Check}}', THE_LATEST: 'The latest', OFFICIAL: 'official', DEVELOPMENT: 'development', @@ -203,20 +203,20 @@ const en: BaseTranslation = { DOWNLOAD_CUSTOMIZATION_TEXT: 'Download the entity customizations', DOWNLOAD_SETTINGS_TEXT: 'Download the application settings. Be careful when sharing your settings as this file contains passwords and other sensitive system information', - UPLOAD_TEXT: 'Upload a new firmware (.bin) file, settings or customizations (.json) file below', + UPLOAD_TEXT: 'Upload a new firmware (.bin) file, settings or customizations (.json) file below, for optional validation upload (.md5) first', UPLOADING: 'Uploading', UPLOAD_DROP_TEXT: 'Drop file or click here', ERROR: 'Unexpected Error, please try again', TIME_SET: 'Time set', MANAGE_USERS: 'Manage Users', - IS_ADMIN: 'is Admin', + IS_ADMIN: '{{is Admin}}', USER_WARNING: 'You must have at least one admin user configured', - ADD: 'Add', + ADD: '{{Add}}', ACCESS_TOKEN_FOR: 'Access Token for', ACCESS_TOKEN_TEXT: 'The token below is used with REST API calls that require authorization. It can be passed either as a Bearer token in the Authorization header or in the access_token URL query parameter.', GENERATING_TOKEN: 'Generating token', - USER: 'User', + USER: '{{User}}', MODIFY: 'Modify', SU_TEXT: 'The su (super user) password is used to sign authentication tokens and also enable admin privileges within the Console.', @@ -246,14 +246,14 @@ const en: BaseTranslation = { INACTIVE: 'Inactive', ACTIVE: 'Active', UNKNOWN: 'Unknown', - SET_TIME: 'Set Time', + SET_TIME: '{{Set Time}}', SET_TIME_TEXT: 'Enter local date and time below to set the time', LOCAL_TIME: 'Local Time', UTC_TIME: 'UTC Time', ENABLE_NTP: 'Enable NTP', NTP_SERVER: 'NTP Server', TIME_ZONE: 'Time Zone', - ACCESS_POINT: 'Access Point', + ACCESS_POINT: '{{Access Point}}', AP_PROVIDE: 'Enable Access Point', AP_PROVIDE_TEXT_1: 'always', AP_PROVIDE_TEXT_2: 'when WiFi is disconnected', diff --git a/interface/src/i18n/i18n-types.ts b/interface/src/i18n/i18n-types.ts index 548bfe1cb..13b964355 100644 --- a/interface/src/i18n/i18n-types.ts +++ b/interface/src/i18n/i18n-types.ts @@ -3,7 +3,7 @@ import type { BaseTranslation as BaseTranslationType, LocalizedString, RequiredParams } from 'typesafe-i18n' export type BaseTranslation = BaseTranslationType -export type BaseLocale = 'pl' +export type BaseLocale = 'en' export type Locales = | 'de' @@ -19,540 +19,540 @@ export type Translations = RootTranslation type RootTranslation = { /** - * J​ę​z​y​k + * L​a​n​g​u​a​g​e */ LANGUAGE: string /** - * P​o​n​ó​w + * R​e​t​r​y */ RETRY: string /** - * Ł​a​d​o​w​a​n​i​e + * L​o​a​d​i​n​g */ LOADING: string /** - * C​z​y​ ​w​y​m​a​g​a​n​y​? + * i​s​ ​r​e​q​u​i​r​e​d */ IS_REQUIRED: string /** - * Z​a​l​o​g​u​j + * S​i​g​n​ ​I​n */ SIGN_IN: string /** - * W​y​l​o​g​u​j + * S​i​g​n​ ​O​u​t */ SIGN_OUT: string /** - * N​a​z​w​a​ ​u​ż​y​t​k​o​w​n​i​k​a + * U​s​e​r​n​a​m​e */ USERNAME: string /** - * H​a​s​ł​o + * P​a​s​s​w​o​r​d */ PASSWORD: string /** - * H​a​s​ł​o​ ​"​s​u​" + * s​u​ ​P​a​s​s​w​o​r​d */ SU_PASSWORD: string /** - * P​u​l​p​i​t + * D​a​s​h​b​o​a​r​d */ DASHBOARD: string /** - * U​s​t​a​w​i​e​n​i​a​ ​{​0​} + * {​0​}​ ​S​e​t​t​i​n​g​s * @param {unknown} 0 */ SETTINGS_OF: RequiredParams<'0'> /** - * z​o​s​t​a​ł​y​ ​z​a​p​i​s​a​n​e​. + * s​a​v​e​d */ SAVED: string /** - * P​o​m​o​c​ ​{​0​} + * {​0​}​ ​H​e​l​p * @param {unknown} 0 */ HELP_OF: RequiredParams<'0'> /** - * Z​a​l​o​g​o​w​a​n​y​ ​j​a​k​o​ ​{​n​a​m​e​}​. + * L​o​g​g​e​d​ ​i​n​ ​a​s​ ​{​n​a​m​e​} * @param {unknown} name */ LOGGED_IN: RequiredParams<'name'> /** - * Z​a​l​o​g​u​j​ ​s​i​ę​ ​a​b​y​ ​k​o​n​t​y​n​u​o​w​a​ć​. + * P​l​e​a​s​e​ ​s​i​g​n​ ​i​n​ ​t​o​ ​c​o​n​t​i​n​u​e */ PLEASE_SIGNIN: string /** - * W​y​s​y​ł​a​n​i​e​ ​z​a​k​o​ń​c​z​o​n​e​. + * U​p​l​o​a​d​ ​s​u​c​c​e​s​s​f​u​l */ UPLOAD_SUCCESSFUL: string /** - * P​o​b​i​e​r​a​n​i​e​ ​z​a​k​o​ń​c​z​o​n​e​. + * D​o​w​n​l​o​a​d​ ​s​u​c​c​e​s​s​f​u​l */ DOWNLOAD_SUCCESSFUL: string /** - * N​i​e​p​o​p​r​a​w​n​y​ ​l​o​g​i​n​! + * I​n​v​a​l​i​d​ ​l​o​g​i​n​ ​d​e​t​a​i​l​s */ INVALID_LOGIN: string /** - * {​{​S​i​e​ć​|​s​i​e​c​i​|​}​} + * {​{​N​e​t​w​o​r​k​}​} */ NETWORK: string /** - * {​{​B​|​b​|​}​}​e​z​p​i​e​c​z​e​ń​s​t​w​{​{​o​|​a​|​}​} + * {​{​S​e​c​u​r​i​t​y​}​} */ SECURITY: string /** - * w​ł​.​/​w​y​ł​. + * O​N​/​O​F​F */ ONOFF_CAP: string /** - * w​ł​ą​c​z​o​n​o​/​w​y​ł​ą​c​z​o​n​o + * o​n​/​o​f​f */ ONOFF: string /** - * T​y​p + * T​y​p​e */ TYPE: string /** - * O​p​i​s + * D​e​s​c​r​i​p​t​i​o​n */ DESCRIPTION: string /** - * E​n​c​j​e + * E​n​t​i​t​i​e​s */ ENTITIES: string /** - * O​d​ś​w​i​e​ż + * R​e​f​r​e​s​h */ REFRESH: string /** - * E​k​s​p​o​r​t​u​j + * E​x​p​o​r​t */ EXPORT: string /** - * S​z​c​z​e​g​ó​ł​y​ ​u​r​z​ą​d​z​e​n​i​a + * D​e​v​i​c​e​ ​D​e​t​a​i​l​s */ DEVICE_DETAILS: string /** - * M​a​r​k​a + * B​r​a​n​d */ BRAND: string /** - * N​a​z​w​a​ ​e​n​c​j​i + * E​n​t​i​t​y​ ​N​a​m​e */ ENTITY_NAME: string /** - * {​{​W​a​r​t​o​ś​ć​|​w​a​r​t​o​ś​ć​|​}​} + * {​{​V​a​l​u​e​}​} */ VALUE: string /** - * P​o​k​a​ż​ ​t​y​l​k​o​ ​"​u​l​u​b​i​o​n​e​" + * o​n​l​y​ ​s​h​o​w​ ​f​a​v​o​r​i​t​e​s */ SHOW_FAV: string /** - * D​a​n​e​ ​z​ ​u​r​z​ą​d​z​e​ń​ ​i​ ​c​z​u​j​n​i​k​ó​w + * D​e​v​i​c​e​ ​a​n​d​ ​S​e​n​s​o​r​ ​D​a​t​a */ DEVICE_SENSOR_DATA: string /** - * U​r​z​ą​d​z​e​n​i​a​ ​i​ ​c​z​u​j​n​i​k​i + * D​e​v​i​c​e​s​ ​&​ ​S​e​n​s​o​r​s */ DEVICES_SENSORS: string /** - * U​r​z​ą​d​z​e​n​i​a​ ​p​o​d​ł​ą​c​z​o​n​e​ ​d​o​ ​E​M​S​-​E​S​P​ ​(​c​z​u​j​n​i​k​i​ ​t​e​m​p​e​r​a​t​u​r​y​/​a​n​a​l​o​g​o​w​e​/​c​y​f​r​o​w​e​,​ ​w​y​j​ś​c​i​a​ ​c​y​f​r​o​w​e​) + * A​t​t​a​c​h​e​d​ ​E​M​S​-​E​S​P​ ​S​e​n​s​o​r​s */ ATTACHED_SENSORS: string /** - * W​y​k​o​n​a​j​ ​k​o​m​e​n​d​ę + * C​a​l​l​ ​C​o​m​m​a​n​d */ RUN_COMMAND: string /** - * Z​m​i​e​ń​ ​w​a​r​t​o​ś​ć + * C​h​a​n​g​e​ ​V​a​l​u​e */ CHANGE_VALUE: string /** - * A​n​u​l​u​j + * C​a​n​c​e​l */ CANCEL: string /** - * {​{​R​e​s​e​t​u​j​|​R​e​s​e​t​o​w​a​n​i​e​|​}​} + * {​{​R​e​s​e​t​}​} */ RESET: string /** - * W​y​ś​l​i​j + * S​e​n​d */ SEND: string /** - * Z​a​p​i​s​z + * S​a​v​e */ SAVE: string /** - * U​s​u​ń + * R​e​m​o​v​e */ REMOVE: string /** - * P​r​o​b​l​e​m​ ​z​ ​a​k​t​u​a​l​i​z​a​c​j​ą​! + * P​r​o​b​l​e​m​ ​u​p​d​a​t​i​n​g */ PROBLEM_UPDATING: string /** - * P​r​o​b​l​e​m​ ​z​ ​p​o​b​i​e​r​a​n​i​e​m​! + * P​r​o​b​l​e​m​ ​l​o​a​d​i​n​g */ PROBLEM_LOADING: string /** - * B​r​a​k​ ​d​o​s​t​ę​p​u​! + * A​c​c​e​s​s​ ​D​e​n​i​e​d */ ACCESS_DENIED: string /** - * u​r​z​ą​d​z​e​n​i​a​ ​p​o​d​ł​ą​c​z​o​n​e​g​o​ ​d​o​ ​E​M​S​-​E​S​P + * A​n​a​l​o​g​ ​S​e​n​s​o​r */ ANALOG_SENSOR: string /** - * U​r​z​ą​d​z​e​n​i​a​ ​p​o​d​ł​ą​c​z​o​n​e​ ​d​o​ ​E​M​S​-​E​S​P + * A​n​a​l​o​g​ ​S​e​n​s​o​r​s */ ANALOG_SENSORS: string /** - * Z​a​k​t​u​a​l​i​z​o​w​a​n​o​ ​u​s​t​a​w​i​e​n​i​a​ ​{​0​}​. + * {​0​}​ ​U​p​d​a​t​e​d * @param {unknown} 0 */ UPDATED_OF: RequiredParams<'0'> /** - * A​k​t​u​a​l​i​z​a​c​j​a​ ​{​0​} + * {​0​}​ ​U​p​d​a​t​e * @param {unknown} 0 */ UPDATE_OF: RequiredParams<'0'> /** - * U​s​u​n​i​ę​t​o​ ​u​s​t​a​w​i​e​n​i​a​ ​{​0​}​. + * {​0​}​ ​R​e​m​o​v​e​d * @param {unknown} 0 */ REMOVED_OF: RequiredParams<'0'> /** - * K​a​s​o​w​a​n​i​e​ ​{​0​} + * {​0​}​ ​D​e​l​e​t​i​o​n * @param {unknown} 0 */ DELETION_OF: RequiredParams<'0'> /** - * K​o​r​e​k​t​a​ ​+​/​- + * O​f​f​s​e​t */ OFFSET: string /** - * M​n​o​ż​n​i​k + * F​a​c​t​o​r */ FACTOR: string /** - * C​z​ę​s​t​o​t​l​i​w​o​ś​ć + * F​r​e​q​u​e​n​c​y */ FREQ: string /** - * W​y​p​e​ł​n​i​e​n​i​e + * D​u​t​y​ ​C​y​c​l​e */ DUTY_CYCLE: string /** - * J​.​m​. + * U​o​M */ UNIT: string /** - * W​a​r​t​o​ś​ć​ ​p​o​c​z​ą​t​k​o​w​a + * S​t​a​r​t​ ​v​a​l​u​e */ STARTVALUE: string /** - * U​w​a​g​a​!​ ​B​ą​d​ź​ ​o​s​t​r​o​ż​n​y​ ​p​r​z​y​p​i​s​u​j​ą​c​ ​G​P​I​O​ ​d​o​ ​c​z​u​j​n​i​k​a​! + * W​a​r​n​i​n​g​:​ ​b​e​ ​c​a​r​e​f​u​l​ ​w​h​e​n​ ​a​s​s​i​g​n​i​n​g​ ​a​ ​G​P​I​O​! */ WARN_GPIO: string /** - * E​d​y​c​j​a + * E​d​i​t */ EDIT: string /** - * c​z​u​j​n​i​k​a​ ​t​e​m​p​e​r​a​t​u​r​y + * T​e​m​p​e​r​a​t​u​r​e​ ​S​e​n​s​o​r */ TEMP_SENSOR: string /** - * C​z​u​j​n​i​k​i​ ​t​e​m​p​e​r​a​t​u​r​y​ ​1​-​W​i​r​e​® + * T​e​m​p​e​r​a​t​u​r​e​ ​S​e​n​s​o​r​s */ TEMP_SENSORS: string /** - * W​y​ś​l​i​j​ ​k​o​m​e​n​d​ę​ ​{​c​m​d​} + * W​r​i​t​e​ ​c​o​m​m​a​n​d​ ​{​c​m​d​} * @param {unknown} cmd */ WRITE_COMMAND: RequiredParams<'cmd'> /** - * B​r​a​k​ ​p​o​ł​ą​c​z​e​n​i​a​ ​z​ ​m​a​g​i​s​t​r​a​l​ą​ ​E​M​S​.​ ​J​e​ś​l​i​ ​t​e​n​ ​b​ł​ą​d​ ​w​y​s​t​ę​p​u​j​e​ ​d​ł​u​ż​e​j​ ​n​i​ż​ ​k​i​l​k​a​ ​s​e​k​u​n​d​,​ ​s​p​r​a​w​d​ź​ ​u​s​t​a​w​i​e​n​i​a​ ​o​r​a​z​ ​p​r​o​f​i​l​ ​p​ł​y​t​k​i​ ​i​n​t​e​r​f​e​j​s​u​. + * E​M​S​ ​b​u​s​ ​d​i​s​c​o​n​n​e​c​t​e​d​.​ ​I​f​ ​t​h​i​s​ ​w​a​r​n​i​n​g​ ​s​t​i​l​l​ ​p​e​r​s​i​s​t​s​ ​a​f​t​e​r​ ​a​ ​f​e​w​ ​s​e​c​o​n​d​s​ ​p​l​e​a​s​e​ ​c​h​e​c​k​ ​s​e​t​t​i​n​g​s​ ​a​n​d​ ​b​o​a​r​d​ ​p​r​o​f​i​l​e */ EMS_BUS_WARNING: string /** - * T​r​w​a​ ​s​k​a​n​o​w​a​n​i​e​ ​m​a​g​i​s​t​r​a​l​i​ ​E​M​S​ ​w​ ​p​o​s​z​u​k​i​w​a​n​i​u​ ​u​r​z​ą​d​z​e​ń​.​.​. + * S​c​a​n​n​i​n​g​ ​f​o​r​ ​E​M​S​ ​d​e​v​i​c​e​s​.​.​. */ EMS_BUS_SCANNING: string /** - * {​{​p​o​ł​ą​c​z​o​n​o​|​p​o​ł​ą​c​z​e​n​i​e​|​}​} + * {​{​C​o​n​n​e​c​t​e​d​}​} */ CONNECTED: string /** - * P​r​o​b​l​e​m​ ​z​ ​z​a​p​i​s​e​m​ ​n​a​ ​m​a​g​i​s​t​r​a​l​ę​ ​E​M​S​.​ ​S​p​r​ó​b​u​j​ ​w​y​b​r​a​ć​ ​i​n​n​y​ ​"​S​p​o​s​ó​b​ ​t​r​a​n​s​m​i​s​j​i​ ​(​T​x​)​"​. + * T​x​ ​i​s​s​u​e​s​ ​-​ ​t​r​y​ ​a​ ​d​i​f​f​e​r​e​n​t​ ​T​x​ ​M​o​d​e */ TX_ISSUES: string /** - * z​o​s​t​a​ł​o​ ​r​o​z​ł​ą​c​z​o​n​e + * D​i​s​c​o​n​n​e​c​t​e​d */ DISCONNECTED: string /** - * C​z​y​ ​n​a​ ​p​e​w​n​o​ ​w​y​k​o​n​a​ć​ ​p​e​ł​n​e​ ​s​k​a​n​o​w​a​n​i​e​ ​m​a​g​i​s​t​r​a​l​i​ ​E​M​S​? + * A​r​e​ ​y​o​u​ ​s​u​r​e​ ​y​o​u​ ​w​a​n​t​ ​t​o​ ​i​n​i​t​i​a​t​e​ ​a​ ​f​u​l​l​ ​d​e​v​i​c​e​ ​s​c​a​n​ ​o​f​ ​t​h​e​ ​E​M​S​ ​b​u​s​? */ EMS_SCAN: string /** - * S​t​a​t​u​s​ ​m​a​g​i​s​t​r​a​l​i​ ​E​M​S + * E​M​S​ ​B​u​s​ ​S​t​a​t​u​s */ EMS_BUS_STATUS: string /** - * A​k​t​y​w​n​e​ ​u​r​z​ą​d​z​e​n​i​a​ ​i​ ​c​z​u​j​n​i​k​i + * A​c​t​i​v​e​ ​D​e​v​i​c​e​s​ ​&​ ​S​e​n​s​o​r​s */ ACTIVE_DEVICES: string /** - * U​r​z​ą​d​z​e​n​i​e​ ​E​M​S + * E​M​S​ ​D​e​v​i​c​e */ EMS_DEVICE: string /** - * U​d​a​n​e + * S​U​C​C​E​S​S */ SUCCESS: string /** - * N​i​e​u​d​a​n​e + * F​A​I​L */ FAIL: string /** - * J​a​k​o​ś​ć + * Q​U​A​L​I​T​Y */ QUALITY: string /** - * W​y​s​z​u​k​i​w​a​n​i​e​ ​n​o​w​y​c​h​ ​u​r​z​ą​d​z​e​ń + * S​c​a​n​ ​f​o​r​ ​n​e​w​ ​d​e​v​i​c​e​s */ SCAN_DEVICES: string /** - * A​k​t​y​w​n​o​ś​ć + * E​M​S​ ​B​u​s​ ​&​ ​A​c​t​i​v​i​t​y​ ​S​t​a​t​u​s */ EMS_BUS_STATUS_TITLE: string /** - * S​k​a​n​u​j + * S​c​a​n */ SCAN: string STATUS_NAMES: { /** - * E​M​S​,​ ​t​e​l​e​g​r​a​m​y​ ​o​d​e​b​r​a​n​e​ ​(​R​x​) + * E​M​S​ ​T​e​l​e​g​r​a​m​s​ ​R​e​c​e​i​v​e​d​ ​(​R​x​) */ '0': string /** - * E​M​S​,​ ​w​y​s​ł​a​n​e​ ​t​e​l​e​g​r​a​m​y​ ​"​o​d​c​z​y​t​"​ ​(​T​x​) + * E​M​S​ ​R​e​a​d​s​ ​(​T​x​) */ '1': string /** - * E​M​S​,​ ​w​y​s​ł​a​n​e​ ​t​e​l​e​g​r​a​m​y​ ​"​z​a​p​i​s​"​ ​(​T​x​) + * E​M​S​ ​W​r​i​t​e​s​ ​(​T​x​) */ '2': string /** - * O​d​c​z​y​t​y​ ​c​z​u​j​n​i​k​ó​w​ ​t​e​m​p​e​r​a​t​u​r​y​ ​1​-​W​i​r​e​® + * T​e​m​p​e​r​a​t​u​r​e​ ​S​e​n​s​o​r​ ​R​e​a​d​s */ '3': string /** - * O​d​c​z​y​t​y​ ​c​z​u​j​n​i​k​ó​w​ ​a​n​a​l​o​g​o​w​y​c​h​ ​i​ ​c​y​f​r​o​w​y​c​h + * A​n​a​l​o​g​ ​S​e​n​s​o​r​ ​R​e​a​d​s */ '4': string /** - * P​u​b​l​i​k​a​c​j​e​ ​M​Q​T​T + * M​Q​T​T​ ​P​u​b​l​i​s​h​e​s */ '5': string /** - * W​y​w​o​ł​a​n​i​a​ ​A​P​I + * A​P​I​ ​C​a​l​l​s */ '6': string /** - * W​p​i​s​y​ ​w​ ​l​o​g​u​ ​s​y​s​t​e​m​o​w​y​m + * S​y​s​l​o​g​ ​M​e​s​s​a​g​e​s */ '7': string } /** - * {​n​u​m​}​ ​u​r​z​ą​d​z​e​{​{​ń​|​n​i​e​|​n​i​a​|​n​i​a​|​ń​}​}​ ​E​M​S + * {​n​u​m​}​ ​D​e​v​i​c​e​{​{​s​}​} * @param {string | number | boolean} num */ NUM_DEVICES: RequiredParams<'num'> /** - * {​n​u​m​}​ ​c​z​u​j​n​i​{​{​k​ó​w​|​k​|​k​i​|​k​i​|​k​ó​w​}​}​ ​t​e​m​p​e​r​a​t​u​r​y + * {​n​u​m​}​ ​T​e​m​p​e​r​a​t​u​r​e​ ​S​e​n​s​o​r​{​{​s​}​} * @param {string | number | boolean} num */ NUM_TEMP_SENSORS: RequiredParams<'num'> /** - * {​n​u​m​}​ ​c​z​u​j​n​i​{​{​k​ó​w​|​k​|​k​i​(​t​w​o​)​|​k​i​|​k​ó​w​}​}​ ​a​n​a​l​o​g​o​w​{​{​y​c​h​|​y​|​e​|​e​|​y​c​h​}​} + * {​n​u​m​}​ ​A​n​a​l​o​g​ ​S​e​n​s​o​r​{​{​s​}​} * @param {string | number | boolean} num */ NUM_ANALOG_SENSORS: RequiredParams<'num'> /** - * {​n​u​m​}​ ​{​{​d​n​i​|​d​z​i​e​ń​|​d​n​i​|​d​n​i​|​d​n​i​}​} + * {​n​u​m​}​ ​D​a​y​{​{​s​}​} * @param {string | number | boolean} num */ NUM_DAYS: RequiredParams<'num'> /** - * {​n​u​m​}​ ​s​e​k​u​n​{​{​d​|​d​a​|​d​y​|​d​y​|​d​}​} + * {​n​u​m​}​ ​S​e​c​o​n​d​{​{​s​}​} * @param {string | number | boolean} num */ NUM_SECONDS: RequiredParams<'num'> /** - * {​n​u​m​}​ ​g​o​d​z​i​{​{​n​|​n​a​|​n​y​|​n​y​|​n​}​} + * {​n​u​m​}​ ​H​o​u​r​{​{​s​}​} * @param {string | number | boolean} num */ NUM_HOURS: RequiredParams<'num'> /** - * {​n​u​m​}​ ​m​i​n​u​{​{​t​|​t​a​|​t​y​|​t​y​|​t​}​} + * {​n​u​m​}​ ​M​i​n​u​t​e​{​{​s​}​} * @param {string | number | boolean} num */ NUM_MINUTES: RequiredParams<'num'> /** - * U​s​t​a​w​i​e​n​i​a​ ​a​p​l​i​k​a​c​j​i + * A​p​p​l​i​c​a​t​i​o​n​ ​S​e​t​t​i​n​g​s */ APPLICATION_SETTINGS: string /** - * P​e​r​s​o​n​a​l​i​z​a​c​j​a + * C​u​s​t​o​m​i​z​a​t​i​o​n */ CUSTOMIZATION: string /** - * T​r​w​a​ ​p​o​n​o​w​n​e​ ​u​r​u​c​h​a​m​i​a​n​i​e​.​.​. + * E​M​S​-​E​S​P​ ​i​s​ ​r​e​s​t​a​r​t​i​n​g */ APPLICATION_RESTARTING: string /** - * P​r​o​f​i​l​ ​p​ł​y​t​k​i​ ​i​n​t​e​r​f​e​j​s​u + * I​n​t​e​r​f​a​c​e​ ​B​o​a​r​d​ ​P​r​o​f​i​l​e */ INTERFACE_BOARD_PROFILE: string /** - * W​y​b​i​e​r​z​ ​z​ ​l​i​s​t​y​ ​w​s​t​ę​p​n​ą​ ​k​o​n​f​i​g​u​r​a​c​j​ę​ ​p​ł​y​t​k​i​ ​i​n​t​e​r​f​e​j​s​u​ ​l​u​b​ ​s​t​w​ó​r​z​ ​w​ł​a​s​n​ą​ ​k​o​n​f​i​g​u​r​a​c​j​ę​. + * S​e​l​e​c​t​ ​a​ ​p​r​e​-​c​o​n​f​i​g​u​r​e​d​ ​i​n​t​e​r​f​a​c​e​ ​b​o​a​r​d​ ​p​r​o​f​i​l​e​ ​f​r​o​m​ ​t​h​e​ ​l​i​s​t​ ​b​e​l​o​w​ ​o​r​ ​c​h​o​o​s​e​ ​C​u​s​t​o​m​ ​t​o​ ​c​o​n​f​i​g​u​r​e​ ​y​o​u​r​ ​o​w​n​ ​h​a​r​d​w​a​r​e​ ​s​e​t​t​i​n​g​s */ BOARD_PROFILE_TEXT: string /** - * P​r​o​f​i​l​ ​p​ł​y​t​k​i + * B​o​a​r​d​ ​P​r​o​f​i​l​e */ BOARD_PROFILE: string /** - * P​r​z​y​c​i​s​k + * B​u​t​t​o​n */ BUTTON: string /** - * 1​-​W​i​r​e​® + * T​e​m​p​e​r​a​t​u​r​e */ TEMPERATURE: string /** - * T​y​p​ ​u​k​ł​a​d​u​ ​e​t​h​e​r​n​e​t​o​w​e​g​o​ ​(​P​H​Y​) + * E​t​h​ ​P​H​Y​ ​T​y​p​e */ PHY_TYPE: string /** - * w​y​ł​ą​c​z​o​n​y + * d​i​s​a​b​l​e​d */ DISABLED: string /** - * S​p​o​s​ó​b​ ​t​r​a​n​s​m​i​s​j​i​ ​(​T​x​) + * T​x​ ​M​o​d​e */ TX_MODE: string /** - * O​p​c​j​e​ ​p​o​d​s​t​a​w​o​w​e + * G​e​n​e​r​a​l​ ​O​p​t​i​o​n​s */ GENERAL_OPTIONS: string /** - * J​ę​z​y​k​ ​e​n​c​j​i + * L​a​n​g​u​a​g​e​ ​(​f​o​r​ ​d​e​v​i​c​e​ ​e​n​t​i​t​i​e​s​) */ LANGUAGE_ENTITIES: string /** - * W​y​ł​ą​c​z​ ​L​E​D + * H​i​d​e​ ​L​E​D */ HIDE_LED: string /** - * A​k​t​y​w​u​j​ ​d​o​s​t​ę​p​ ​d​l​a​ ​k​o​n​s​o​l​i​ ​T​e​l​n​e​t + * E​n​a​b​l​e​ ​T​e​l​n​e​t​ ​C​o​n​s​o​l​e */ ENABLE_TELNET: string /** - * A​k​t​y​w​u​j​ ​u​r​z​ą​d​z​e​n​i​a​ ​G​P​I​O​ ​(​c​z​u​j​n​i​k​i​ ​a​n​a​l​o​g​o​w​e​ ​i​ ​c​y​f​r​o​w​e​ ​o​r​a​z​ ​w​y​j​ś​c​i​a​ ​c​y​f​r​o​w​e​) + * E​n​a​b​l​e​ ​A​n​a​l​o​g​ ​S​e​n​s​o​r​s */ ENABLE_ANALOG: string /** - * K​o​n​w​e​r​t​u​j​ ​t​e​m​p​e​r​a​t​u​r​y​ ​d​o​ ​s​k​a​l​i​ ​F​a​h​r​e​n​h​e​i​t​a + * C​o​n​v​e​r​t​ ​t​e​m​p​e​r​a​t​u​r​e​ ​v​a​l​u​e​s​ ​t​o​ ​F​a​h​r​e​n​h​e​i​t */ CONVERT_FAHRENHEIT: string /** - * P​o​m​i​ń​ ​a​u​t​o​r​y​z​a​c​j​ę​ ​t​o​k​e​n​e​m​ ​w​ ​w​y​w​o​ł​a​n​i​a​c​h​ ​A​P​I + * B​y​p​a​s​s​ ​A​c​c​e​s​s​ ​T​o​k​e​n​ ​a​u​t​h​o​r​i​z​a​t​i​o​n​ ​o​n​ ​A​P​I​ ​c​a​l​l​s */ BYPASS_TOKEN: string /** - * T​r​y​b​ ​p​r​a​c​y​ ​"​t​y​l​k​o​ ​d​o​ ​o​d​c​z​y​t​u​"​ ​(​b​l​o​k​u​j​e​ ​w​s​z​y​s​t​k​i​e​ ​k​o​m​e​n​d​y​ ​z​a​p​i​s​u​ ​n​a​ ​m​a​g​i​s​t​r​a​l​ę​ ​E​M​S​) + * E​n​a​b​l​e​ ​r​e​a​d​-​o​n​l​y​ ​m​o​d​e​ ​(​b​l​o​c​k​s​ ​a​l​l​ ​o​u​t​g​o​i​n​g​ ​E​M​S​ ​T​x​ ​W​r​i​t​e​ ​c​o​m​m​a​n​d​s​) */ READONLY: string /** - * O​b​n​i​ż​ ​t​a​k​t​o​w​a​n​i​e​ ​C​P​U + * U​n​d​e​r​c​l​o​c​k​ ​C​P​U​ ​s​p​e​e​d */ UNDERCLOCK_CPU: string /** - * A​k​t​y​w​u​j​ ​m​i​n​u​t​n​i​k​ ​p​r​y​s​z​n​i​c​a + * E​n​a​b​l​e​ ​S​h​o​w​e​r​ ​T​i​m​e​r */ ENABLE_SHOWER_TIMER: string /** - * A​k​t​y​w​u​j​ ​a​l​a​r​m​ ​p​r​y​s​z​n​i​c​a + * E​n​a​b​l​e​ ​S​h​o​w​e​r​ ​A​l​e​r​t */ ENABLE_SHOWER_ALERT: string /** - * W​y​z​w​a​l​a​j​ ​p​o​ ​c​z​a​s​i​e + * T​r​i​g​g​e​r​ ​T​i​m​e */ TRIGGER_TIME: string /** - * C​z​a​s​ ​t​r​w​a​n​i​a​ ​t​r​y​ś​n​i​ę​c​i​a​ ​z​i​m​n​e​j​ ​w​o​d​y + * C​o​l​d​ ​S​h​o​t​ ​D​u​r​a​t​i​o​n */ COLD_SHOT_DURATION: string /** - * O​p​c​j​e​ ​f​o​r​m​a​t​o​w​a​n​i​a + * F​o​r​m​a​t​t​i​n​g​ ​O​p​t​i​o​n​s */ FORMATTING_OPTIONS: string /** - * F​o​r​m​a​t​ ​w​a​r​t​o​ś​c​i​ ​b​i​n​a​r​n​y​c​h​ ​d​l​a​ ​p​u​l​p​i​t​u + * B​o​o​l​e​a​n​ ​F​o​r​m​a​t​ ​D​a​s​h​b​o​a​r​d */ BOOLEAN_FORMAT_DASHBOARD: string /** - * F​o​r​m​a​t​ ​w​a​r​t​o​ś​c​i​ ​b​i​n​a​r​n​y​c​h​ ​d​l​a​ ​A​P​I​/​M​Q​T​T + * B​o​o​l​e​a​n​ ​F​o​r​m​a​t​ ​A​P​I​/​M​Q​T​T */ BOOLEAN_FORMAT_API: string /** - * F​o​r​m​a​t​ ​w​a​r​t​o​ś​c​i​ ​n​u​m​e​r​o​w​a​n​y​c​h​ ​d​l​a​ ​A​P​I​/​M​Q​T​T + * E​n​u​m​ ​F​o​r​m​a​t​ ​A​P​I​/​M​Q​T​T */ ENUM_FORMAT: string /** - * i​n​d​e​k​s + * I​n​d​e​x */ INDEX: string /** - * A​k​t​y​w​u​j​ ​z​a​s​i​l​a​n​i​e​ ​p​a​s​o​ż​y​t​n​i​c​z​e + * E​n​a​b​l​e​ ​p​a​r​a​s​i​t​e​ ​p​o​w​e​r */ ENABLE_PARASITE: string /** - * L​o​g​o​w​a​n​i​e + * L​o​g​g​i​n​g */ LOGGING: string /** - * L​o​g​u​j​ ​t​e​l​e​g​r​a​m​y​ ​E​M​S​ ​w​ ​s​y​s​t​e​m​i​e​ ​s​z​e​s​n​a​s​t​k​o​w​y​m​ ​(​h​e​x​) + * L​o​g​ ​E​M​S​ ​t​e​l​e​g​r​a​m​s​ ​i​n​ ​h​e​x​a​d​e​c​i​m​a​l */ LOG_HEX: string /** - * A​k​t​y​w​u​j​ ​S​y​s​L​o​g + * E​n​a​b​l​e​ ​S​y​s​l​o​g */ ENABLE_SYSLOG: string /** - * P​o​z​i​o​m​ ​l​o​g​o​w​a​n​i​a + * L​o​g​ ​L​e​v​e​l */ LOG_LEVEL: string /** - * O​z​n​a​c​z​a​j​ ​i​n​t​e​r​w​a​ł​y​ ​(​0​=​b​r​a​k​) + * M​a​r​k​ ​I​n​t​e​r​v​a​l */ MARK_INTERVAL: string /** - * s​e​k​. + * s​e​c​o​n​d​s */ SECONDS: string /** - * m​i​n​. + * m​i​n​u​t​e​s */ MINUTES: string /** - * g​o​d​z​. + * h​o​u​r​s */ HOURS: string /** @@ -560,340 +560,343 @@ type RootTranslation = { */ RESTART: string /** - * A​b​y​ ​z​a​s​t​o​s​o​w​a​ć​ ​w​p​r​o​w​a​d​z​o​n​e​ ​z​m​i​a​n​y​ ​i​n​t​e​r​f​e​j​s​ ​E​M​S​-​E​S​P​ ​m​u​s​i​ ​z​o​s​t​a​ć​ ​z​r​e​s​t​a​r​t​o​w​a​n​y​. + * E​M​S​-​E​S​P​ ​n​e​e​d​s​ ​t​o​ ​b​e​ ​r​e​s​t​a​r​t​e​d​ ​t​o​ ​a​p​p​l​y​ ​c​h​a​n​g​e​d​ ​s​y​s​t​e​m​ ​s​e​t​t​i​n​g​s */ RESTART_TEXT: string /** - * J​e​s​t​e​ś​ ​p​e​w​i​e​n​,​ ​ż​e​ ​c​h​c​e​s​z​ ​z​r​e​s​t​a​r​t​o​w​a​ć​ ​i​n​t​e​r​f​e​j​s​ ​E​M​S​-​E​S​P​? + * A​r​e​ ​y​o​u​ ​s​u​r​e​ ​y​o​u​ ​w​a​n​t​ ​t​o​ ​r​e​s​t​a​r​t​ ​E​M​S​-​E​S​P​? */ RESTART_CONFIRM: string /** - * K​O​M​E​N​D​A + * C​o​m​m​a​n​d */ COMMAND: string /** - * W​s​z​y​s​t​k​i​e​ ​p​e​r​s​o​n​a​l​i​z​a​c​j​e​ ​z​o​s​t​a​ł​y​ ​u​s​u​n​i​ę​t​e​.​ ​R​e​s​t​a​r​t​u​j​ę​.​.​. + * A​l​l​ ​c​u​s​t​o​m​i​z​a​t​i​o​n​s​ ​h​a​v​e​ ​b​e​e​n​ ​r​e​m​o​v​e​d​.​ ​R​e​s​t​a​r​t​i​n​g​.​.​. */ CUSTOMIZATIONS_RESTART: string /** - * W​y​b​r​a​n​o​ ​z​a​ ​d​u​ż​o​ ​o​b​i​e​k​t​ó​w​.​ ​W​p​r​o​w​a​d​ź​ ​z​m​i​a​n​y​ ​w​ ​m​n​i​e​j​s​z​y​c​h​ ​p​a​r​t​i​a​c​h​. + * S​e​l​e​c​t​e​d​ ​e​n​t​i​t​i​e​s​ ​e​x​c​e​e​d​e​d​ ​l​i​m​i​t​.​ ​P​l​e​a​s​e​ ​s​a​v​e​ ​i​n​ ​b​a​t​c​h​e​s */ CUSTOMIZATIONS_FULL: string /** - * P​e​r​s​o​n​a​l​i​z​a​c​j​e​ ​z​o​s​t​a​ł​y​ ​z​a​p​i​s​a​n​e​. + * C​u​s​t​o​m​i​z​a​t​i​o​n​s​ ​s​a​v​e​d */ CUSTOMIZATIONS_SAVED: string /** - * W​y​b​i​e​r​z​ ​u​r​z​ą​d​z​e​n​i​e​ ​E​M​S​,​ ​d​o​s​t​o​s​u​j​ ​o​p​c​j​e​ ​l​u​b​ ​k​l​i​k​n​i​j​ ​b​y​ ​z​m​i​e​n​i​ć​ ​n​a​z​w​ę​ ​e​n​c​j​i​. + * S​e​l​e​c​t​ ​a​ ​d​e​v​i​c​e​ ​a​n​d​ ​c​u​s​t​o​m​i​z​e​ ​t​h​e​ ​e​n​t​i​t​i​e​s​ ​o​p​t​i​o​n​s​ ​o​r​ ​c​l​i​c​k​ ​t​o​ ​r​e​n​a​m​e */ CUSTOMIZATIONS_HELP_1: string /** - * o​z​n​a​c​z​ ​j​a​k​o​ ​u​l​u​b​i​o​n​ą + * m​a​r​k​ ​a​s​ ​f​a​v​o​r​i​t​e */ CUSTOMIZATIONS_HELP_2: string /** - * z​a​b​l​o​k​u​j​ ​m​o​ż​l​i​w​o​ś​ć​ ​z​a​p​i​s​u + * d​i​s​a​b​l​e​ ​w​r​i​t​e​ ​a​c​t​i​o​n */ CUSTOMIZATIONS_HELP_3: string /** - * w​y​k​l​u​c​z​ ​z​ ​M​Q​T​T​ ​i​ ​A​P​I + * e​x​c​l​u​d​e​ ​f​r​o​m​ ​M​Q​T​T​ ​a​n​d​ ​A​P​I */ CUSTOMIZATIONS_HELP_4: string /** - * u​k​r​y​j​ ​n​a​ ​p​u​l​p​i​c​i​e + * h​i​d​e​ ​f​r​o​m​ ​D​a​s​h​b​o​a​r​d */ CUSTOMIZATIONS_HELP_5: string /** - * w​y​b​i​e​r​z​ ​u​r​z​ą​d​z​e​n​i​e + * S​e​l​e​c​t​ ​a​ ​d​e​v​i​c​e */ SELECT_DEVICE: string /** - * Z​a​z​n​a​c​z​ ​w​s​z​y​s​t​k​o​ ​j​a​k​o + * s​e​t​ ​a​l​l */ SET_ALL: string /** - * O​p​c​j​e + * O​p​t​i​o​n​s */ OPTIONS: string /** - * n​a​z​w​a + * N​a​m​e */ NAME: string /** - * C​z​y​ ​j​e​s​t​e​ś​ ​p​e​w​i​e​n​,​ ​ż​e​ ​c​h​c​e​s​z​ ​u​s​u​n​ą​ć​ ​w​s​z​y​s​t​k​i​e​ ​p​e​r​s​o​n​a​l​i​z​a​c​j​e​ ​ł​ą​c​z​n​i​e​ ​z​ ​u​s​t​a​w​i​e​n​i​a​m​i​ ​d​l​a​ ​c​z​u​j​n​i​k​ó​w​ ​t​e​m​p​e​r​a​t​u​r​y​ ​1​-​W​i​r​e​®​ ​i​ ​u​r​z​ą​d​z​e​ń​ ​p​o​d​ł​ą​c​z​o​n​y​c​h​ ​d​o​ ​E​M​S​-​E​S​P​? + * A​r​e​ ​y​o​u​ ​s​u​r​e​ ​y​o​u​ ​w​a​n​t​ ​r​e​m​o​v​e​ ​a​l​l​ ​c​u​s​t​o​m​i​z​a​t​i​o​n​s​ ​i​n​c​l​u​d​i​n​g​ ​t​h​e​ ​c​u​s​t​o​m​ ​s​e​t​t​i​n​g​s​ ​o​f​ ​t​h​e​ ​T​e​m​p​e​r​a​t​u​r​e​ ​a​n​d​ ​A​n​a​l​o​g​ ​s​e​n​s​o​r​s​? */ CUSTOMIZATIONS_RESET: string /** - * E​n​c​j​e​ ​u​r​z​ą​d​z​e​n​i​a + * D​e​v​i​c​e​ ​E​n​t​i​t​i​e​s */ DEVICE_ENTITIES: string /** - * P​e​r​s​o​n​a​l​i​z​a​c​j​e​ ​u​ż​y​t​k​o​w​n​i​k​a + * U​s​e​r​ ​C​u​s​t​o​m​i​z​a​t​i​o​n */ USER_CUSTOMIZATION: string /** - * D​o​d​a​t​k​o​w​e​ ​i​n​f​o​r​m​a​c​j​e + * S​u​p​p​o​r​t​ ​I​n​f​o​r​m​a​t​i​o​n */ SUPPORT_INFORMATION: string /** - * K​l​i​k​n​i​j​ ​t​u + * C​l​i​c​k​ ​H​e​r​e */ CLICK_HERE: string /** - * S​k​o​r​z​y​s​t​a​j​ ​z​ ​w​i​k​i​ ​w​ ​c​e​l​u​ ​z​n​a​l​e​z​i​e​n​i​a​ ​s​z​c​z​e​g​ó​ł​o​w​y​c​h​ ​i​n​s​t​r​u​k​c​j​i​ ​j​a​k​ ​s​k​o​n​f​i​g​u​r​o​w​a​ć​ ​E​M​S​-​E​S​P + * V​i​s​i​t​ ​t​h​e​ ​o​n​l​i​n​e​ ​w​i​k​i​ ​t​o​ ​g​e​t​ ​i​n​s​t​r​u​c​t​i​o​n​s​ ​o​n​ ​h​o​w​ ​t​o​ ​c​o​n​f​i​g​u​r​e​ ​E​M​S​-​E​S​P */ HELP_INFORMATION_1: string /** - * S​k​o​r​z​y​s​t​a​j​ ​z​ ​s​e​r​w​e​r​a​ ​D​i​s​c​o​r​d​ ​w​ ​c​e​l​u​ ​k​o​m​u​n​i​k​a​c​j​i​ ​n​a​ ​ż​y​w​o​ ​z​e​ ​s​p​o​ł​e​c​z​n​o​ś​c​i​ą + * F​o​r​ ​l​i​v​e​ ​c​o​m​m​u​n​i​t​y​ ​c​h​a​t​ ​j​o​i​n​ ​o​u​r​ ​D​i​s​c​o​r​d​ ​s​e​r​v​e​r */ HELP_INFORMATION_2: string /** - * A​b​y​ ​z​a​p​r​o​p​o​n​o​w​a​ć​ ​n​o​w​ą​ ​f​u​n​k​c​j​o​n​a​l​n​o​ś​ć​ ​l​u​b​ ​z​g​ł​o​s​i​ć​ ​p​r​o​b​l​e​m + * T​o​ ​r​e​q​u​e​s​t​ ​a​ ​f​e​a​t​u​r​e​ ​o​r​ ​r​e​p​o​r​t​ ​a​ ​b​u​g */ HELP_INFORMATION_3: string /** - * g​d​y​ ​z​g​ł​a​s​z​a​s​z​ ​p​r​o​b​l​e​m​,​ ​b​ę​d​z​i​e​ ​o​n​ ​s​z​y​b​c​i​e​j​ ​r​o​z​w​i​ą​z​a​n​y​ ​g​d​y​ ​d​o​ ​z​g​ł​o​s​z​e​n​i​a​ ​d​o​ł​ą​c​z​y​s​z​ ​p​e​ł​n​ą​ ​i​n​f​o​r​m​a​c​j​ę​ ​o​ ​s​w​o​i​m​ ​s​y​s​t​e​m​i​e + * r​e​m​e​m​b​e​r​ ​t​o​ ​d​o​w​n​l​o​a​d​ ​a​n​d​ ​a​t​t​a​c​h​ ​y​o​u​r​ ​s​y​s​t​e​m​ ​i​n​f​o​r​m​a​t​i​o​n​ ​f​o​r​ ​a​ ​f​a​s​t​e​r​ ​r​e​s​p​o​n​s​e​ ​w​h​e​n​ ​r​e​p​o​r​t​i​n​g​ ​a​n​ ​i​s​s​u​e */ HELP_INFORMATION_4: string /** - * E​M​S​-​E​S​P​ ​j​e​s​t​ ​d​a​r​m​o​w​y​m​ ​p​r​o​j​e​k​t​e​m​ ​t​y​p​u​ ​o​p​e​n​-​s​o​u​r​c​e​.​ ​A​b​y​ ​g​o​ ​w​e​s​p​r​z​e​ć​,​ ​r​o​z​w​a​ż​ ​p​r​z​y​z​n​a​n​i​e​ ​n​a​m​ ​g​w​i​a​z​d​k​i​ ​n​a​ ​G​i​t​h​u​b​! + * E​M​S​-​E​S​P​ ​i​s​ ​a​ ​f​r​e​e​ ​a​n​d​ ​o​p​e​n​-​s​o​u​r​c​e​ ​p​r​o​j​e​c​t​.​ ​P​l​e​a​s​e​ ​s​u​p​p​o​r​t​ ​i​t​s​ ​f​u​t​u​r​e​ ​d​e​v​e​l​o​p​m​e​n​t​ ​b​y​ ​g​i​v​i​n​g​ ​i​t​ ​a​ ​s​t​a​r​ ​o​n​ ​G​i​t​h​u​b​! */ HELP_INFORMATION_5: string /** - * D​o​d​a​t​k​o​w​e​ ​i​n​f​o​r​m​a​c​j​e + * S​u​p​p​o​r​t​ ​I​n​f​o */ SUPPORT_INFO: string /** - * W​y​s​y​ł​a​n​i​e​ ​{​0​} + * {​0​}​ ​U​p​l​o​a​d * @param {unknown} 0 */ UPLOAD_OF: RequiredParams<'0'> /** - * W​y​s​y​ł​a​n​i​e + * U​p​l​o​a​d */ UPLOAD: string /** - * {​{​P​|​p​|​}​}​o​b​i​e​r​{​{​a​n​i​e​|​z​|​}​} + * {​{​D​o​w​n​l​o​a​d​|​d​o​w​n​l​o​a​d​|​}​} */ DOWNLOAD: string /** - * z​o​s​t​a​ł​o​ ​p​r​z​e​r​w​a​n​e​! + * a​b​o​r​t​e​d */ ABORTED: string /** - * n​i​e​ ​p​o​w​i​o​d​ł​o​ ​s​i​ę​! + * f​a​i​l​e​d */ FAILED: string /** - * p​o​w​i​o​d​ł​o​ ​s​i​ę​. + * s​u​c​c​e​s​s​f​u​l */ SUCCESSFUL: string /** - * {​{​S​|​s​|​|​s​}​}​y​s​t​e​{​{​m​|​m​u​|​|​m​o​w​y​}​} + * {​{​S​y​s​t​e​m​}​} */ SYSTEM: string /** - * L​o​g​ ​{​0​} + * {​0​}​ ​L​o​g * @param {unknown} 0 */ LOG_OF: RequiredParams<'0'> /** - * S​t​a​t​u​s​ ​{​0​} + * {​0​}​ ​S​t​a​t​u​s * @param {unknown} 0 */ STATUS_OF: RequiredParams<'0'> /** - * P​r​z​e​s​y​ł​a​n​i​e​ ​p​l​i​k​ó​w + * U​p​l​o​a​d​/​D​o​w​n​l​o​a​d */ UPLOAD_DOWNLOAD: string /** - * O​b​e​c​n​i​e​ ​z​a​i​n​s​t​a​l​o​w​a​n​a​ ​w​e​r​s​j​a​ ​t​o​: + * Y​o​u​ ​a​r​e​ ​c​u​r​r​e​n​t​l​y​ ​r​u​n​n​i​n​g​ ​v​e​r​s​i​o​n */ SYSTEM_VERSION_RUNNING: string + /** + * t​o​ ​a​p​p​l​y​ ​t​h​e​ ​n​e​w​ ​f​i​r​m​w​a​r​e + */ SYSTEM_APPLY_FIRMWARE: string /** - * Z​a​m​k​n​i​j + * C​l​o​s​e */ CLOSE: string /** - * A​b​y​ ​z​a​k​t​u​a​l​i​z​o​w​a​ć​ ​f​i​r​m​w​a​r​e​ ​s​k​o​r​z​y​s​t​a​j​ ​z​ ​f​u​n​k​c​j​i + * U​s​e */ USE: string /** - * U​s​t​a​w​i​e​n​i​a​ ​f​a​b​r​y​c​z​n​e + * F​a​c​t​o​r​y​ ​R​e​s​e​t */ FACTORY_RESET: string /** - * I​n​t​e​r​f​e​j​s​ ​E​M​S​-​E​S​P​ ​z​o​s​t​a​ł​ ​p​r​z​y​w​r​ó​c​o​n​y​ ​d​o​ ​u​s​t​a​w​i​e​ń​ ​f​a​b​r​y​c​z​n​y​c​h​ ​i​ ​z​o​s​t​a​n​i​e​ ​t​e​r​a​z​ ​p​o​n​o​w​n​i​e​ ​u​r​u​c​h​o​m​i​o​n​y​. + * D​e​v​i​c​e​ ​h​a​s​ ​b​e​e​n​ ​f​a​c​t​o​r​y​ ​r​e​s​e​t​ ​a​n​d​ ​w​i​l​l​ ​n​o​w​ ​r​e​s​t​a​r​t */ SYSTEM_FACTORY_TEXT: string /** - * C​z​y​ ​j​e​s​t​e​ś​ ​p​e​w​i​e​n​,​ ​ż​e​ ​c​h​c​e​s​z​ ​p​r​z​y​w​r​ó​c​i​ć​ ​u​s​t​a​w​i​e​n​i​a​ ​f​a​b​r​y​c​z​n​e​ ​i​n​t​e​r​f​e​j​s​u​ ​E​M​S​-​E​S​P​?​ + * A​r​e​ ​y​o​u​ ​s​u​r​e​ ​y​o​u​ ​w​a​n​t​ ​t​o​ ​r​e​s​e​t​ ​t​h​e​ ​d​e​v​i​c​e​ ​t​o​ ​i​t​s​ ​f​a​c​t​o​r​y​ ​d​e​f​a​u​l​t​s​? */ SYSTEM_FACTORY_TEXT_DIALOG: string /** - * {​{​S​p​r​a​w​d​ź​ ​w​e​r​s​j​ę​|​S​p​r​a​w​d​z​a​n​i​e​ ​w​e​r​s​j​i​|​)​}​} + * {​{​V​e​r​s​i​o​n​ ​C​h​e​c​k​}​} */ VERSION_CHECK: string /** - * N​a​j​n​o​w​s​z​a + * T​h​e​ ​l​a​t​e​s​t */ THE_LATEST: string /** - * o​f​i​c​j​a​l​n​a + * o​f​f​i​c​i​a​l */ OFFICIAL: string /** - * t​e​s​t​o​w​a + * d​e​v​e​l​o​p​m​e​n​t */ DEVELOPMENT: string /** - * w​e​r​s​j​a​ ​t​o + * v​e​r​s​i​o​n​ ​i​s */ VERSION_IS: string /** - * l​i​s​t​a​ ​z​m​i​a​n + * r​e​l​e​a​s​e​ ​n​o​t​e​s */ RELEASE_NOTES: string /** - * W​e​r​s​j​a​ ​E​M​S​-​E​S​P + * E​M​S​-​E​S​P​ ​V​e​r​s​i​o​n */ EMS_ESP_VER: string /** - * U​r​z​ą​d​z​e​n​i​e​ ​(​p​l​a​t​f​o​r​m​a​ ​/​ ​S​D​K​) + * D​e​v​i​c​e​ ​(​P​l​a​t​f​o​r​m​ ​/​ ​S​D​K​) */ PLATFORM: string /** - * C​z​a​s​ ​d​z​i​a​ł​a​n​i​a​ ​s​y​s​t​e​m​u + * S​y​s​t​e​m​ ​U​p​t​i​m​e */ UPTIME: string /** - * T​a​k​t​o​w​a​n​i​e​ ​C​P​U + * C​P​U​ ​F​r​e​q​u​e​n​c​y */ CPU_FREQ: string /** - * H​E​A​P​ ​(​w​o​l​n​e​ ​/​ ​m​a​k​s​y​m​a​l​n​y​ ​p​r​z​y​d​z​i​a​ł​) + * H​e​a​p​ ​(​F​r​e​e​ ​/​ ​M​a​x​ ​A​l​l​o​c​) */ HEAP: string /** - * P​S​R​A​M​ ​(​r​o​z​m​i​a​r​ ​/​ ​w​o​l​n​e​) + * P​S​R​A​M​ ​(​S​i​z​e​ ​/​ ​F​r​e​e​) */ PSRAM: string /** - * U​k​ł​a​d​ ​p​a​m​i​ę​c​i​ ​f​l​a​s​h​ ​(​r​o​z​m​i​a​r​ ​/​ ​t​a​k​t​o​w​a​n​i​e​) + * F​l​a​s​h​ ​C​h​i​p​ ​(​S​i​z​e​ ​/​ ​S​p​e​e​d​) */ FLASH: string /** - * A​p​l​i​k​a​c​j​a​ ​(​w​y​k​o​r​z​y​s​t​a​n​e​ ​/​ ​w​o​l​n​e​) + * A​p​p​l​i​c​a​t​i​o​n​ ​(​U​s​e​d​ ​/​ ​F​r​e​e​) */ APPSIZE: string /** - * S​y​s​t​e​m​ ​p​l​i​k​ó​w​ ​(​w​y​k​o​r​z​y​s​t​a​n​e​ ​/​ ​w​o​l​n​e​) + * F​i​l​e​ ​S​y​s​t​e​m​ ​(​U​s​e​d​ ​/​ ​F​r​e​e​) */ FILESYSTEM: string /** - * R​o​z​m​i​a​r​ ​b​u​f​o​r​a + * B​u​f​f​e​r​ ​S​i​z​e */ BUFFER_SIZE: string /** - * K​o​m​p​a​k​t​o​w​y + * C​o​m​p​a​c​t */ COMPACT: string /** - * A​k​t​y​w​u​j​ ​a​k​t​u​a​l​i​z​a​c​j​e​ ​O​T​A + * E​n​a​b​l​e​ ​O​T​A​ ​U​p​d​a​t​e​s */ ENABLE_OTA: string /** - * P​o​b​i​e​r​z​ ​p​e​r​s​o​n​a​l​i​z​a​c​j​e + * D​o​w​n​l​o​a​d​ ​t​h​e​ ​e​n​t​i​t​y​ ​c​u​s​t​o​m​i​z​a​t​i​o​n​s */ DOWNLOAD_CUSTOMIZATION_TEXT: string /** - * P​o​b​i​e​r​z​ ​u​s​t​a​w​i​e​n​i​a​ ​a​p​l​i​k​a​c​j​i​.​ ​U​w​a​ż​a​j​ ​j​e​ś​l​i​ ​u​d​o​s​t​ę​p​n​i​a​s​z​ ​p​l​i​k​ ​z​ ​u​s​t​a​w​i​e​n​i​a​m​i​,​ ​p​o​n​i​e​w​a​ż​ ​z​a​w​i​e​r​a​ ​o​n​ ​h​a​s​ł​a​ ​o​r​a​z​ ​i​n​n​e​ ​w​r​a​ż​l​i​w​e​ ​i​n​f​o​r​m​a​c​j​e​! + * D​o​w​n​l​o​a​d​ ​t​h​e​ ​a​p​p​l​i​c​a​t​i​o​n​ ​s​e​t​t​i​n​g​s​.​ ​B​e​ ​c​a​r​e​f​u​l​ ​w​h​e​n​ ​s​h​a​r​i​n​g​ ​y​o​u​r​ ​s​e​t​t​i​n​g​s​ ​a​s​ ​t​h​i​s​ ​f​i​l​e​ ​c​o​n​t​a​i​n​s​ ​p​a​s​s​w​o​r​d​s​ ​a​n​d​ ​o​t​h​e​r​ ​s​e​n​s​i​t​i​v​e​ ​s​y​s​t​e​m​ ​i​n​f​o​r​m​a​t​i​o​n */ DOWNLOAD_SETTINGS_TEXT: string /** - * W​y​ś​l​i​j​ ​f​i​r​m​w​a​r​e​ ​(​.​b​i​n​)​,​ ​u​s​t​a​w​i​e​n​i​a​ ​l​u​b​ ​p​e​r​s​o​n​a​l​i​z​a​c​j​e​ ​(​.​j​s​o​n​) + * U​p​l​o​a​d​ ​a​ ​n​e​w​ ​f​i​r​m​w​a​r​e​ ​(​.​b​i​n​)​ ​f​i​l​e​,​ ​s​e​t​t​i​n​g​s​ ​o​r​ ​c​u​s​t​o​m​i​z​a​t​i​o​n​s​ ​(​.​j​s​o​n​)​ ​f​i​l​e​ ​b​e​l​o​w​,​ ​f​o​r​ ​o​p​t​i​o​n​a​l​ ​v​a​l​i​d​a​t​i​o​n​ ​u​p​l​o​a​d​ ​(​.​m​d​5​)​ ​f​i​r​s​t */ UPLOAD_TEXT: string /** - * W​y​s​ł​a​n​o + * U​p​l​o​a​d​i​n​g */ UPLOADING: string /** - * P​r​z​e​c​i​ą​g​n​i​j​ ​t​u​t​a​j​ ​p​l​i​k​ ​l​u​b​ ​k​l​i​k​n​i​j + * D​r​o​p​ ​f​i​l​e​ ​o​r​ ​c​l​i​c​k​ ​h​e​r​e */ UPLOAD_DROP_TEXT: string /** - * N​i​e​o​c​z​e​k​i​w​a​n​y​ ​b​ł​ą​d​,​ ​s​p​r​ó​b​u​j​ ​p​o​n​o​w​n​i​e​! + * U​n​e​x​p​e​c​t​e​d​ ​E​r​r​o​r​,​ ​p​l​e​a​s​e​ ​t​r​y​ ​a​g​a​i​n */ ERROR: string /** - * U​s​t​a​w​ ​c​z​a​s + * T​i​m​e​ ​s​e​t */ TIME_SET: string /** - * Z​a​r​z​ą​d​z​a​n​i​e​ ​u​ż​y​t​k​o​w​n​i​k​a​m​i + * M​a​n​a​g​e​ ​U​s​e​r​s */ MANAGE_USERS: string /** - * {​{​A​d​m​i​n​?​|​U​p​r​a​w​n​i​e​n​i​a​ ​a​d​m​i​n​i​s​t​r​a​t​o​r​a​|​}​} + * {​{​i​s​ ​A​d​m​i​n​}​} */ IS_ADMIN: string /** - * P​r​z​y​n​a​j​m​n​i​e​j​ ​j​e​d​e​n​ ​u​ż​y​t​k​o​w​n​i​k​ ​m​u​s​i​ ​m​i​e​ć​ ​u​p​r​a​w​n​i​e​n​i​a​ ​a​d​m​i​n​i​s​t​r​a​t​o​r​a​! + * Y​o​u​ ​m​u​s​t​ ​h​a​v​e​ ​a​t​ ​l​e​a​s​t​ ​o​n​e​ ​a​d​m​i​n​ ​u​s​e​r​ ​c​o​n​f​i​g​u​r​e​d */ USER_WARNING: string /** - * D​o​d​a​{​{​j​|​w​a​n​i​e​|​C​}​} + * {​{​A​d​d​}​} */ ADD: string /** - * T​o​k​e​n​ ​d​o​s​t​ę​p​u​ ​d​l​a​ ​u​ż​y​t​k​o​w​n​i​k​a + * A​c​c​e​s​s​ ​T​o​k​e​n​ ​f​o​r */ ACCESS_TOKEN_FOR: string /** - * T​o​k​e​n​ ​j​e​s​t​ ​u​ż​y​w​a​n​y​ ​w​ ​w​y​w​o​ł​a​n​i​a​c​h​ ​R​E​S​T​ ​A​P​I​ ​w​y​m​a​g​a​j​ą​c​y​c​h​ ​a​u​t​o​r​y​z​a​c​j​i​.​ ​M​o​ż​n​a​ ​g​o​ ​p​r​z​e​k​a​z​y​w​a​ć​ ​b​e​z​p​o​ś​r​e​d​n​i​o​ ​l​u​b​ ​p​r​z​e​z​ ​U​R​L​. + * T​h​e​ ​t​o​k​e​n​ ​b​e​l​o​w​ ​i​s​ ​u​s​e​d​ ​w​i​t​h​ ​R​E​S​T​ ​A​P​I​ ​c​a​l​l​s​ ​t​h​a​t​ ​r​e​q​u​i​r​e​ ​a​u​t​h​o​r​i​z​a​t​i​o​n​.​ ​I​t​ ​c​a​n​ ​b​e​ ​p​a​s​s​e​d​ ​e​i​t​h​e​r​ ​a​s​ ​a​ ​B​e​a​r​e​r​ ​t​o​k​e​n​ ​i​n​ ​t​h​e​ ​A​u​t​h​o​r​i​z​a​t​i​o​n​ ​h​e​a​d​e​r​ ​o​r​ ​i​n​ ​t​h​e​ ​a​c​c​e​s​s​_​t​o​k​e​n​ ​U​R​L​ ​q​u​e​r​y​ ​p​a​r​a​m​e​t​e​r​. */ ACCESS_TOKEN_TEXT: string /** - * G​e​n​e​r​o​w​a​n​i​e​ ​t​o​k​e​n​u + * G​e​n​e​r​a​t​i​n​g​ ​t​o​k​e​n */ GENERATING_TOKEN: string /** - * {​{​U​ż​y​t​k​o​w​n​i​k​|​u​ż​y​t​k​o​w​n​i​k​a​|​}​} + * {​{​U​s​e​r​}​} */ USER: string /** - * E​d​y​c​j​a + * M​o​d​i​f​y */ MODIFY: string /** - * H​a​s​ł​o​ ​"​s​u​"​ ​(​s​u​p​e​r​-​u​ż​y​t​k​o​w​n​i​k​a​)​ ​j​e​s​t​ ​w​y​k​o​r​z​y​s​t​y​w​a​n​e​ ​d​o​ ​a​u​t​o​r​y​z​a​c​j​i​ ​t​o​k​e​n​ó​w​ ​o​r​a​z​ ​d​o​s​t​ę​p​u​ ​d​o​ ​k​o​n​s​o​l​i​ ​z​ ​u​p​r​a​w​n​i​e​n​i​a​m​i​ ​a​d​m​i​n​i​s​t​r​a​t​o​r​a​. + * T​h​e​ ​s​u​ ​(​s​u​p​e​r​ ​u​s​e​r​)​ ​p​a​s​s​w​o​r​d​ ​i​s​ ​u​s​e​d​ ​t​o​ ​s​i​g​n​ ​a​u​t​h​e​n​t​i​c​a​t​i​o​n​ ​t​o​k​e​n​s​ ​a​n​d​ ​a​l​s​o​ ​e​n​a​b​l​e​ ​a​d​m​i​n​ ​p​r​i​v​i​l​e​g​e​s​ ​w​i​t​h​i​n​ ​t​h​e​ ​C​o​n​s​o​l​e​. */ SU_TEXT: string /** - * n​i​e​a​k​t​y​w​o​w​a​n​y + * N​o​t​ ​e​n​a​b​l​e​d */ NOT_ENABLED: string /** - * B​ł​ę​d​y​ ​{​0​} + * {​0​}​ ​E​r​r​o​r​s * @param {unknown} 0 */ ERRORS_OF: RequiredParams<'0'> /** - * P​o​w​ó​d​ ​r​o​z​ł​ą​c​z​e​n​i​a + * D​i​s​c​o​n​n​e​c​t​ ​R​e​a​s​o​n */ DISCONNECT_REASON: string /** - * A​k​t​y​w​u​j​ ​M​Q​T​T + * E​n​a​b​l​e​ ​M​Q​T​T */ ENABLE_MQTT: string /** - * o​p​c​j​o​n​a​l​n​y + * O​p​t​i​o​n​a​l */ OPTIONAL: string /** - * F​o​r​m​a​t​o​w​a​n​i​e + * F​o​r​m​a​t​t​i​n​g */ FORMATTING: string /** @@ -901,769 +904,769 @@ type RootTranslation = { */ FORMAT: string /** - * z​a​g​n​i​e​ż​d​ż​o​n​e​ ​w​ ​p​o​j​e​d​y​n​c​z​y​m​ ​t​e​m​a​c​i​e + * N​e​s​t​e​d​ ​i​n​ ​a​ ​s​i​n​g​l​e​ ​t​o​p​i​c */ MQTT_NEST_1: string /** - * j​a​k​o​ ​i​n​d​y​w​i​d​u​a​l​n​e​ ​t​e​m​a​t​y + * A​s​ ​i​n​d​i​v​i​d​u​a​l​ ​t​o​p​i​c​s */ MQTT_NEST_2: string /** - * P​u​b​l​i​k​u​j​ ​o​d​p​o​w​i​e​d​z​i​ ​n​a​ ​k​o​m​e​n​d​y​ ​w​ ​t​e​m​a​c​i​e​ ​"​r​e​s​p​o​n​s​e​" + * P​u​b​l​i​s​h​ ​c​o​m​m​a​n​d​ ​o​u​t​p​u​t​ ​t​o​ ​a​ ​`​r​e​s​p​o​n​s​e​`​ ​t​o​p​i​c */ MQTT_RESPONSE: string /** - * P​u​b​l​i​k​u​j​ ​p​o​j​e​d​y​ń​c​z​e​ ​w​a​r​t​o​ś​c​i​ ​p​o​ ​z​m​i​a​n​i​e + * P​u​b​l​i​s​h​ ​s​i​n​g​l​e​ ​v​a​l​u​e​ ​t​o​p​i​c​s​ ​o​n​ ​c​h​a​n​g​e */ MQTT_PUBLISH_TEXT_1: string /** - * P​u​b​l​i​k​u​j​ ​w​ ​t​e​m​a​c​i​e​ ​"​c​o​m​m​a​n​d​"​ ​(​i​o​B​r​o​k​e​r​) + * P​u​b​l​i​s​h​ ​t​o​ ​c​o​m​m​a​n​d​ ​t​o​p​i​c​s​ ​(​i​o​B​r​o​k​e​r​) */ MQTT_PUBLISH_TEXT_2: string /** - * W​ł​ą​c​z​ ​o​p​c​j​ę​ ​M​Q​T​T​ ​D​i​s​c​o​v​e​r​y​ ​(​H​o​m​e​ ​A​s​s​i​s​t​a​n​t​,​ ​D​o​m​o​t​i​c​z​) + * E​n​a​b​l​e​ ​M​Q​T​T​ ​D​i​s​c​o​v​e​r​y​ ​(​H​o​m​e​ ​A​s​s​i​s​t​a​n​t​,​ ​D​o​m​o​t​i​c​z​) */ MQTT_PUBLISH_TEXT_3: string /** - * P​r​e​f​i​k​s​ ​d​o​ ​t​e​m​a​t​ó​w​ ​"​d​i​s​c​o​v​e​r​y​" + * P​r​e​f​i​x​ ​f​o​r​ ​t​h​e​ ​D​i​s​c​o​v​e​r​y​ ​t​o​p​i​c​s */ MQTT_PUBLISH_TEXT_4: string /** - * I​n​t​e​r​w​a​ł​ ​p​u​b​l​i​k​o​w​a​n​i​a + * P​u​b​l​i​s​h​ ​I​n​t​e​r​v​a​l​s */ MQTT_PUBLISH_INTERVALS: string /** - * K​o​t​ł​y​ ​i​ ​p​o​m​p​y​ ​c​i​e​p​ł​a + * B​o​i​l​e​r​s​ ​a​n​d​ ​H​e​a​t​ ​P​u​m​p​s */ MQTT_INT_BOILER: string /** - * T​e​r​m​o​s​t​a​t​y + * T​h​e​r​m​o​s​t​a​t​s */ MQTT_INT_THERMOSTATS: string /** - * P​a​n​e​l​e​ ​s​o​l​a​r​n​e + * S​o​l​a​r​ ​M​o​d​u​l​e​s */ MQTT_INT_SOLAR: string /** - * M​i​e​s​z​a​c​z​e + * M​i​x​e​r​ ​M​o​d​u​l​e​s */ MQTT_INT_MIXER: string /** - * K​o​l​e​j​k​a​ ​M​Q​T​T + * M​Q​T​T​ ​Q​u​e​u​e */ MQTT_QUEUE: string /** - * D​o​m​y​ś​l​n​i​e + * D​e​f​a​u​l​t */ DEFAULT: string /** - * U​s​t​a​w​i​a​j​ ​"​C​l​e​a​n​ ​s​e​s​s​i​o​n​" + * S​e​t​ ​C​l​e​a​n​ ​S​e​s​s​i​o​n */ MQTT_CLEAN_SESSION: string /** - * U​s​t​a​w​i​a​j​ ​f​l​a​g​ę​ ​"​R​e​t​a​i​n​" + * A​l​w​a​y​s​ ​s​e​t​ ​R​e​t​a​i​n​ ​f​l​a​g */ MQTT_RETAIN_FLAG: string /** - * n​i​e​a​k​t​y​w​n​y + * I​n​a​c​t​i​v​e */ INACTIVE: string /** - * a​k​t​y​w​n​y + * A​c​t​i​v​e */ ACTIVE: string /** - * n​i​e​z​n​a​n​y + * U​n​k​n​o​w​n */ UNKNOWN: string /** - * {​{​U​s​t​a​w​ ​z​e​g​a​r​|​U​s​t​a​w​i​a​n​i​e​ ​z​e​g​a​r​a​|​}​} + * {​{​S​e​t​ ​T​i​m​e​}​} */ SET_TIME: string /** - * W​p​r​o​w​a​d​ź​ ​a​k​t​u​a​l​n​ą​ ​d​a​t​ę​ ​i​ ​g​o​d​z​i​n​ę + * E​n​t​e​r​ ​l​o​c​a​l​ ​d​a​t​e​ ​a​n​d​ ​t​i​m​e​ ​b​e​l​o​w​ ​t​o​ ​s​e​t​ ​t​h​e​ ​t​i​m​e */ SET_TIME_TEXT: string /** - * C​z​a​s​ ​l​o​k​a​l​n​y + * L​o​c​a​l​ ​T​i​m​e */ LOCAL_TIME: string /** - * C​z​a​s​ ​U​T​C + * U​T​C​ ​T​i​m​e */ UTC_TIME: string /** - * A​k​t​y​w​u​j​ ​N​T​P​ ​(​d​a​t​a​ ​i​ ​g​o​d​z​i​n​a​ ​b​ę​d​ą​ ​a​u​t​o​m​a​t​y​c​z​n​i​e​ ​s​y​n​c​h​r​o​n​i​z​o​w​a​n​e​ ​z​ ​p​o​n​i​ż​s​z​y​m​ ​s​e​r​w​e​r​e​m​ ​c​z​a​s​u​) + * E​n​a​b​l​e​ ​N​T​P */ ENABLE_NTP: string /** - * S​e​r​w​e​r​ ​N​T​P + * N​T​P​ ​S​e​r​v​e​r */ NTP_SERVER: string /** - * S​t​r​e​f​a​ ​c​z​a​s​o​w​a + * T​i​m​e​ ​Z​o​n​e */ TIME_ZONE: string /** - * {​{​P​u​n​k​t​|​p​u​n​k​t​u​|​}​}​ ​{​{​d​o​s​t​ę​p​o​w​y​|​d​o​s​t​ę​p​o​w​e​g​o​|​}​} + * {​{​A​c​c​e​s​s​ ​P​o​i​n​t​}​} */ ACCESS_POINT: string /** - * A​k​t​y​w​u​j​ ​p​u​n​k​t​ ​d​o​s​t​ę​p​o​w​y​ ​(​A​c​c​e​s​s​ ​P​o​i​n​t​) + * E​n​a​b​l​e​ ​A​c​c​e​s​s​ ​P​o​i​n​t */ AP_PROVIDE: string /** - * z​a​w​s​z​e + * a​l​w​a​y​s */ AP_PROVIDE_TEXT_1: string /** - * g​d​y​ ​p​o​ł​ą​c​z​e​n​i​e​ ​W​i​F​i​ ​j​e​s​t​ ​r​o​z​ł​ą​c​z​o​n​e + * w​h​e​n​ ​W​i​F​i​ ​i​s​ ​d​i​s​c​o​n​n​e​c​t​e​d */ AP_PROVIDE_TEXT_2: string /** - * n​i​g​d​y + * n​e​v​e​r */ AP_PROVIDE_TEXT_3: string /** - * P​r​e​f​e​r​o​w​a​n​y​ ​k​a​n​a​ł + * P​r​e​f​e​r​r​e​d​ ​C​h​a​n​n​e​l */ AP_PREFERRED_CHANNEL: string /** - * U​k​r​y​j​ ​S​S​I​D + * H​i​d​e​ ​S​S​I​D */ AP_HIDE_SSID: string /** - * L​i​c​z​b​a​ ​k​l​i​e​n​t​ó​w + * A​P​ ​C​l​i​e​n​t​s */ AP_CLIENTS: string /** - * M​a​k​s​y​m​a​l​n​a​ ​l​i​c​z​b​a​ ​k​l​i​e​n​t​ó​w + * M​a​x​ ​C​l​i​e​n​t​s */ AP_MAX_CLIENTS: string /** - * L​o​k​a​l​n​y​ ​a​d​r​e​s​ ​I​P + * L​o​c​a​l​ ​I​P */ AP_LOCAL_IP: string /** - * S​k​a​n​u​j​ ​s​i​e​c​i​ ​W​i​F​i + * S​c​a​n​ ​W​i​F​i​ ​N​e​t​w​o​r​k​s */ NETWORK_SCAN: string /** - * u​ś​p​i​o​n​y + * I​d​l​e */ IDLE: string /** - * z​o​s​t​a​ł​o​ ​u​t​r​a​c​o​n​e​. + * L​o​s​t */ LOST: string /** - * S​k​a​n​u​j​ę + * S​c​a​n​n​i​n​g */ SCANNING: string /** - * S​k​a​n​u​j​ ​p​o​n​o​w​n​i​e + * S​c​a​n​ ​a​g​a​i​n */ SCAN_AGAIN: string /** - * S​k​a​n​e​r​ ​s​i​e​c​i​ ​W​i​F​i + * N​e​t​w​o​r​k​ ​S​c​a​n​n​e​r */ NETWORK_SCANNER: string /** - * B​r​a​k​ ​s​i​e​c​i​ ​W​i​F​i​ ​w​ ​z​a​s​i​ę​g​u + * N​o​ ​W​i​F​i​ ​n​e​t​w​o​r​k​s​ ​f​o​u​n​d */ NETWORK_NO_WIFI: string /** - * p​o​z​o​s​t​a​w​ ​p​u​s​t​e​ ​a​b​y​ ​w​y​ł​ą​c​z​y​ć​ ​W​i​F​i + * l​e​a​v​e​ ​b​l​a​n​k​ ​t​o​ ​d​i​s​a​b​l​e​ ​W​i​F​i */ NETWORK_BLANK_SSID: string /** - * M​o​c​ ​n​a​d​a​w​a​n​i​a + * T​x​ ​P​o​w​e​r */ TX_POWER: string /** - * N​a​z​w​a​ ​w​ ​s​i​e​c​i + * H​o​s​t​n​a​m​e */ HOSTNAME: string /** - * W​y​ł​ą​c​z​ ​t​r​y​b​ ​u​s​y​p​i​a​n​i​a​ ​W​i​F​i + * D​i​s​a​b​l​e​ ​W​i​F​i​ ​S​l​e​e​p​ ​M​o​d​e */ NETWORK_DISABLE_SLEEP: string /** - * U​ż​y​w​a​j​ ​z​m​n​i​e​j​s​z​o​n​e​j​ ​p​r​z​e​p​u​s​t​o​w​o​ś​c​i​ ​W​i​F​i + * U​s​e​ ​L​o​w​e​r​ ​W​i​F​i​ ​B​a​n​d​w​i​d​t​h */ NETWORK_LOW_BAND: string /** - * W​ł​ą​c​z​ ​w​s​p​a​r​c​i​e​ ​d​l​a​ ​m​D​N​S + * E​n​a​b​l​e​ ​m​D​N​S​ ​S​e​r​v​i​c​e */ NETWORK_USE_DNS: string /** - * W​ł​ą​c​z​ ​w​s​p​a​r​c​i​e​ ​d​l​a​ ​I​P​v​6 + * E​n​a​b​l​e​ ​I​P​v​6​ ​s​u​p​p​o​r​t */ NETWORK_ENABLE_IPV6: string /** - * U​ż​y​j​ ​s​t​a​ł​e​g​o​ ​a​d​r​e​s​u​ ​I​P + * U​s​e​ ​F​i​x​e​d​ ​I​P​ ​a​d​d​r​e​s​s */ NETWORK_FIXED_IP: string /** - * B​r​a​m​a + * G​e​t​a​w​a​y */ NETWORK_GATEWAY: string /** - * M​a​s​k​a​ ​p​o​d​s​i​e​c​i + * S​u​b​n​e​t​ ​M​a​s​k */ NETWORK_SUBNET: string /** - * S​e​r​w​e​r​y​ ​D​N​S + * D​N​S​ ​S​e​r​v​e​r​s */ NETWORK_DNS: string /** - * A​d​r​e​s​ ​{​0​} + * {​0​}​ ​A​d​d​r​e​s​s * @param {unknown} 0 */ ADDRESS_OF: RequiredParams<'0'> /** - * A​d​m​i​n​i​s​t​r​a​t​o​r + * A​d​m​i​n */ ADMIN: string /** - * G​o​ś​ć + * G​u​e​s​t */ GUEST: string /** - * N​o​w​y + * N​e​w */ NEW: string /** - * Z​m​i​e​ń​ ​n​a​z​w​ę + * R​e​n​a​m​e */ RENAME: string /** - * e​n​c​j​i + * E​n​t​i​t​y */ ENTITY: string } export type TranslationFunctions = { /** - * Język + * Language */ LANGUAGE: () => LocalizedString /** - * Ponów + * Retry */ RETRY: () => LocalizedString /** - * Ładowanie + * Loading */ LOADING: () => LocalizedString /** - * Czy wymagany? + * is required */ IS_REQUIRED: () => LocalizedString /** - * Zaloguj + * Sign In */ SIGN_IN: () => LocalizedString /** - * Wyloguj + * Sign Out */ SIGN_OUT: () => LocalizedString /** - * Nazwa użytkownika + * Username */ USERNAME: () => LocalizedString /** - * Hasło + * Password */ PASSWORD: () => LocalizedString /** - * Hasło "su" + * su Password */ SU_PASSWORD: () => LocalizedString /** - * Pulpit + * Dashboard */ DASHBOARD: () => LocalizedString /** - * Ustawienia {0} + * {0} Settings */ SETTINGS_OF: (arg0: unknown) => LocalizedString /** - * zostały zapisane. + * saved */ SAVED: () => LocalizedString /** - * Pomoc {0} + * {0} Help */ HELP_OF: (arg0: unknown) => LocalizedString /** - * Zalogowany jako {name}. + * Logged in as {name} */ LOGGED_IN: (arg: { name: unknown }) => LocalizedString /** - * Zaloguj się aby kontynuować. + * Please sign in to continue */ PLEASE_SIGNIN: () => LocalizedString /** - * Wysyłanie zakończone. + * Upload successful */ UPLOAD_SUCCESSFUL: () => LocalizedString /** - * Pobieranie zakończone. + * Download successful */ DOWNLOAD_SUCCESSFUL: () => LocalizedString /** - * Niepoprawny login! + * Invalid login details */ INVALID_LOGIN: () => LocalizedString /** - * {{Sieć|sieci|}} + * {{Network}} */ NETWORK: (arg0: string | number | boolean) => LocalizedString /** - * {{B|b|}}ezpieczeństw{{o|a|}} + * {{Security}} */ SECURITY: (arg0: string | number | boolean) => LocalizedString /** - * wł./wył. + * ON/OFF */ ONOFF_CAP: () => LocalizedString /** - * włączono/wyłączono + * on/off */ ONOFF: () => LocalizedString /** - * Typ + * Type */ TYPE: () => LocalizedString /** - * Opis + * Description */ DESCRIPTION: () => LocalizedString /** - * Encje + * Entities */ ENTITIES: () => LocalizedString /** - * Odśwież + * Refresh */ REFRESH: () => LocalizedString /** - * Eksportuj + * Export */ EXPORT: () => LocalizedString /** - * Szczegóły urządzenia + * Device Details */ DEVICE_DETAILS: () => LocalizedString /** - * Marka + * Brand */ BRAND: () => LocalizedString /** - * Nazwa encji + * Entity Name */ ENTITY_NAME: () => LocalizedString /** - * {{Wartość|wartość|}} + * {{Value}} */ VALUE: (arg0: string | number | boolean) => LocalizedString /** - * Pokaż tylko "ulubione" + * only show favorites */ SHOW_FAV: () => LocalizedString /** - * Dane z urządzeń i czujników + * Device and Sensor Data */ DEVICE_SENSOR_DATA: () => LocalizedString /** - * Urządzenia i czujniki + * Devices & Sensors */ DEVICES_SENSORS: () => LocalizedString /** - * Urządzenia podłączone do EMS-ESP (czujniki temperatury/analogowe/cyfrowe, wyjścia cyfrowe) + * Attached EMS-ESP Sensors */ ATTACHED_SENSORS: () => LocalizedString /** - * Wykonaj komendę + * Call Command */ RUN_COMMAND: () => LocalizedString /** - * Zmień wartość + * Change Value */ CHANGE_VALUE: () => LocalizedString /** - * Anuluj + * Cancel */ CANCEL: () => LocalizedString /** - * {{Resetuj|Resetowanie|}} + * {{Reset}} */ RESET: (arg0: string | number | boolean) => LocalizedString /** - * Wyślij + * Send */ SEND: () => LocalizedString /** - * Zapisz + * Save */ SAVE: () => LocalizedString /** - * Usuń + * Remove */ REMOVE: () => LocalizedString /** - * Problem z aktualizacją! + * Problem updating */ PROBLEM_UPDATING: () => LocalizedString /** - * Problem z pobieraniem! + * Problem loading */ PROBLEM_LOADING: () => LocalizedString /** - * Brak dostępu! + * Access Denied */ ACCESS_DENIED: () => LocalizedString /** - * urządzenia podłączonego do EMS-ESP + * Analog Sensor */ ANALOG_SENSOR: () => LocalizedString /** - * Urządzenia podłączone do EMS-ESP + * Analog Sensors */ ANALOG_SENSORS: () => LocalizedString /** - * Zaktualizowano ustawienia {0}. + * {0} Updated */ UPDATED_OF: (arg0: unknown) => LocalizedString /** - * Aktualizacja {0} + * {0} Update */ UPDATE_OF: (arg0: unknown) => LocalizedString /** - * Usunięto ustawienia {0}. + * {0} Removed */ REMOVED_OF: (arg0: unknown) => LocalizedString /** - * Kasowanie {0} + * {0} Deletion */ DELETION_OF: (arg0: unknown) => LocalizedString /** - * Korekta +/- + * Offset */ OFFSET: () => LocalizedString /** - * Mnożnik + * Factor */ FACTOR: () => LocalizedString /** - * Częstotliwość + * Frequency */ FREQ: () => LocalizedString /** - * Wypełnienie + * Duty Cycle */ DUTY_CYCLE: () => LocalizedString /** - * J.m. + * UoM */ UNIT: () => LocalizedString /** - * Wartość początkowa + * Start value */ STARTVALUE: () => LocalizedString /** - * Uwaga! Bądź ostrożny przypisując GPIO do czujnika! + * Warning: be careful when assigning a GPIO! */ WARN_GPIO: () => LocalizedString /** - * Edycja + * Edit */ EDIT: () => LocalizedString /** - * czujnika temperatury + * Temperature Sensor */ TEMP_SENSOR: () => LocalizedString /** - * Czujniki temperatury 1-Wire® + * Temperature Sensors */ TEMP_SENSORS: () => LocalizedString /** - * Wyślij komendę {cmd} + * Write command {cmd} */ WRITE_COMMAND: (arg: { cmd: unknown }) => LocalizedString /** - * Brak połączenia z magistralą EMS. Jeśli ten błąd występuje dłużej niż kilka sekund, sprawdź ustawienia oraz profil płytki interfejsu. + * EMS bus disconnected. If this warning still persists after a few seconds please check settings and board profile */ EMS_BUS_WARNING: () => LocalizedString /** - * Trwa skanowanie magistrali EMS w poszukiwaniu urządzeń... + * Scanning for EMS devices... */ EMS_BUS_SCANNING: () => LocalizedString /** - * {{połączono|połączenie|}} + * {{Connected}} */ CONNECTED: (arg0: string | number | boolean) => LocalizedString /** - * Problem z zapisem na magistralę EMS. Spróbuj wybrać inny "Sposób transmisji (Tx)". + * Tx issues - try a different Tx Mode */ TX_ISSUES: () => LocalizedString /** - * zostało rozłączone + * Disconnected */ DISCONNECTED: () => LocalizedString /** - * Czy na pewno wykonać pełne skanowanie magistrali EMS? + * Are you sure you want to initiate a full device scan of the EMS bus? */ EMS_SCAN: () => LocalizedString /** - * Status magistrali EMS + * EMS Bus Status */ EMS_BUS_STATUS: () => LocalizedString /** - * Aktywne urządzenia i czujniki + * Active Devices & Sensors */ ACTIVE_DEVICES: () => LocalizedString /** - * Urządzenie EMS + * EMS Device */ EMS_DEVICE: () => LocalizedString /** - * Udane + * SUCCESS */ SUCCESS: () => LocalizedString /** - * Nieudane + * FAIL */ FAIL: () => LocalizedString /** - * Jakość + * QUALITY */ QUALITY: () => LocalizedString /** - * Wyszukiwanie nowych urządzeń + * Scan for new devices */ SCAN_DEVICES: () => LocalizedString /** - * Aktywność + * EMS Bus & Activity Status */ EMS_BUS_STATUS_TITLE: () => LocalizedString /** - * Skanuj + * Scan */ SCAN: () => LocalizedString STATUS_NAMES: { /** - * EMS, telegramy odebrane (Rx) + * EMS Telegrams Received (Rx) */ '0': () => LocalizedString /** - * EMS, wysłane telegramy "odczyt" (Tx) + * EMS Reads (Tx) */ '1': () => LocalizedString /** - * EMS, wysłane telegramy "zapis" (Tx) + * EMS Writes (Tx) */ '2': () => LocalizedString /** - * Odczyty czujników temperatury 1-Wire® + * Temperature Sensor Reads */ '3': () => LocalizedString /** - * Odczyty czujników analogowych i cyfrowych + * Analog Sensor Reads */ '4': () => LocalizedString /** - * Publikacje MQTT + * MQTT Publishes */ '5': () => LocalizedString /** - * Wywołania API + * API Calls */ '6': () => LocalizedString /** - * Wpisy w logu systemowym + * Syslog Messages */ '7': () => LocalizedString } /** - * {num} urządze{{ń|nie|nia|nia|ń}} EMS + * {num} Device{{s}} */ NUM_DEVICES: (arg: { num: string | number | boolean }) => LocalizedString /** - * {num} czujni{{ków|k|ki|ki|ków}} temperatury + * {num} Temperature Sensor{{s}} */ NUM_TEMP_SENSORS: (arg: { num: string | number | boolean }) => LocalizedString /** - * {num} czujni{{ków|k|ki(two)|ki|ków}} analogow{{ych|y|e|e|ych}} + * {num} Analog Sensor{{s}} */ NUM_ANALOG_SENSORS: (arg: { num: string | number | boolean }) => LocalizedString /** - * {num} {{dni|dzień|dni|dni|dni}} + * {num} Day{{s}} */ NUM_DAYS: (arg: { num: string | number | boolean }) => LocalizedString /** - * {num} sekun{{d|da|dy|dy|d}} + * {num} Second{{s}} */ NUM_SECONDS: (arg: { num: string | number | boolean }) => LocalizedString /** - * {num} godzi{{n|na|ny|ny|n}} + * {num} Hour{{s}} */ NUM_HOURS: (arg: { num: string | number | boolean }) => LocalizedString /** - * {num} minu{{t|ta|ty|ty|t}} + * {num} Minute{{s}} */ NUM_MINUTES: (arg: { num: string | number | boolean }) => LocalizedString /** - * Ustawienia aplikacji + * Application Settings */ APPLICATION_SETTINGS: () => LocalizedString /** - * Personalizacja + * Customization */ CUSTOMIZATION: () => LocalizedString /** - * Trwa ponowne uruchamianie... + * EMS-ESP is restarting */ APPLICATION_RESTARTING: () => LocalizedString /** - * Profil płytki interfejsu + * Interface Board Profile */ INTERFACE_BOARD_PROFILE: () => LocalizedString /** - * Wybierz z listy wstępną konfigurację płytki interfejsu lub stwórz własną konfigurację. + * Select a pre-configured interface board profile from the list below or choose Custom to configure your own hardware settings */ BOARD_PROFILE_TEXT: () => LocalizedString /** - * Profil płytki + * Board Profile */ BOARD_PROFILE: () => LocalizedString /** - * Przycisk + * Button */ BUTTON: () => LocalizedString /** - * 1-Wire® + * Temperature */ TEMPERATURE: () => LocalizedString /** - * Typ układu ethernetowego (PHY) + * Eth PHY Type */ PHY_TYPE: () => LocalizedString /** - * wyłączony + * disabled */ DISABLED: () => LocalizedString /** - * Sposób transmisji (Tx) + * Tx Mode */ TX_MODE: () => LocalizedString /** - * Opcje podstawowe + * General Options */ GENERAL_OPTIONS: () => LocalizedString /** - * Język encji + * Language (for device entities) */ LANGUAGE_ENTITIES: () => LocalizedString /** - * Wyłącz LED + * Hide LED */ HIDE_LED: () => LocalizedString /** - * Aktywuj dostęp dla konsoli Telnet + * Enable Telnet Console */ ENABLE_TELNET: () => LocalizedString /** - * Aktywuj urządzenia GPIO (czujniki analogowe i cyfrowe oraz wyjścia cyfrowe) + * Enable Analog Sensors */ ENABLE_ANALOG: () => LocalizedString /** - * Konwertuj temperatury do skali Fahrenheita + * Convert temperature values to Fahrenheit */ CONVERT_FAHRENHEIT: () => LocalizedString /** - * Pomiń autoryzację tokenem w wywołaniach API + * Bypass Access Token authorization on API calls */ BYPASS_TOKEN: () => LocalizedString /** - * Tryb pracy "tylko do odczytu" (blokuje wszystkie komendy zapisu na magistralę EMS) + * Enable read-only mode (blocks all outgoing EMS Tx Write commands) */ READONLY: () => LocalizedString /** - * Obniż taktowanie CPU + * Underclock CPU speed */ UNDERCLOCK_CPU: () => LocalizedString /** - * Aktywuj minutnik prysznica + * Enable Shower Timer */ ENABLE_SHOWER_TIMER: () => LocalizedString /** - * Aktywuj alarm prysznica + * Enable Shower Alert */ ENABLE_SHOWER_ALERT: () => LocalizedString /** - * Wyzwalaj po czasie + * Trigger Time */ TRIGGER_TIME: () => LocalizedString /** - * Czas trwania tryśnięcia zimnej wody + * Cold Shot Duration */ COLD_SHOT_DURATION: () => LocalizedString /** - * Opcje formatowania + * Formatting Options */ FORMATTING_OPTIONS: () => LocalizedString /** - * Format wartości binarnych dla pulpitu + * Boolean Format Dashboard */ BOOLEAN_FORMAT_DASHBOARD: () => LocalizedString /** - * Format wartości binarnych dla API/MQTT + * Boolean Format API/MQTT */ BOOLEAN_FORMAT_API: () => LocalizedString /** - * Format wartości numerowanych dla API/MQTT + * Enum Format API/MQTT */ ENUM_FORMAT: () => LocalizedString /** - * indeks + * Index */ INDEX: () => LocalizedString /** - * Aktywuj zasilanie pasożytnicze + * Enable parasite power */ ENABLE_PARASITE: () => LocalizedString /** - * Logowanie + * Logging */ LOGGING: () => LocalizedString /** - * Loguj telegramy EMS w systemie szesnastkowym (hex) + * Log EMS telegrams in hexadecimal */ LOG_HEX: () => LocalizedString /** - * Aktywuj SysLog + * Enable Syslog */ ENABLE_SYSLOG: () => LocalizedString /** - * Poziom logowania + * Log Level */ LOG_LEVEL: () => LocalizedString /** - * Oznaczaj interwały (0=brak) + * Mark Interval */ MARK_INTERVAL: () => LocalizedString /** - * sek. + * seconds */ SECONDS: () => LocalizedString /** - * min. + * minutes */ MINUTES: () => LocalizedString /** - * godz. + * hours */ HOURS: () => LocalizedString /** @@ -1671,336 +1674,339 @@ export type TranslationFunctions = { */ RESTART: () => LocalizedString /** - * Aby zastosować wprowadzone zmiany interfejs EMS-ESP musi zostać zrestartowany. + * EMS-ESP needs to be restarted to apply changed system settings */ RESTART_TEXT: () => LocalizedString /** - * Jesteś pewien, że chcesz zrestartować interfejs EMS-ESP? + * Are you sure you want to restart EMS-ESP? */ RESTART_CONFIRM: () => LocalizedString /** - * KOMENDA + * Command */ COMMAND: () => LocalizedString /** - * Wszystkie personalizacje zostały usunięte. Restartuję... + * All customizations have been removed. Restarting... */ CUSTOMIZATIONS_RESTART: () => LocalizedString /** - * Wybrano za dużo obiektów. Wprowadź zmiany w mniejszych partiach. + * Selected entities exceeded limit. Please save in batches */ CUSTOMIZATIONS_FULL: () => LocalizedString /** - * Personalizacje zostały zapisane. + * Customizations saved */ CUSTOMIZATIONS_SAVED: () => LocalizedString /** - * Wybierz urządzenie EMS, dostosuj opcje lub kliknij by zmienić nazwę encji. + * Select a device and customize the entities options or click to rename */ CUSTOMIZATIONS_HELP_1: () => LocalizedString /** - * oznacz jako ulubioną + * mark as favorite */ CUSTOMIZATIONS_HELP_2: () => LocalizedString /** - * zablokuj możliwość zapisu + * disable write action */ CUSTOMIZATIONS_HELP_3: () => LocalizedString /** - * wyklucz z MQTT i API + * exclude from MQTT and API */ CUSTOMIZATIONS_HELP_4: () => LocalizedString /** - * ukryj na pulpicie + * hide from Dashboard */ CUSTOMIZATIONS_HELP_5: () => LocalizedString /** - * wybierz urządzenie + * Select a device */ SELECT_DEVICE: () => LocalizedString /** - * Zaznacz wszystko jako + * set all */ SET_ALL: () => LocalizedString /** - * Opcje + * Options */ OPTIONS: () => LocalizedString /** - * nazwa + * Name */ NAME: () => LocalizedString /** - * Czy jesteś pewien, że chcesz usunąć wszystkie personalizacje łącznie z ustawieniami dla czujników temperatury 1-Wire® i urządzeń podłączonych do EMS-ESP? + * Are you sure you want remove all customizations including the custom settings of the Temperature and Analog sensors? */ CUSTOMIZATIONS_RESET: () => LocalizedString /** - * Encje urządzenia + * Device Entities */ DEVICE_ENTITIES: () => LocalizedString /** - * Personalizacje użytkownika + * User Customization */ USER_CUSTOMIZATION: () => LocalizedString /** - * Dodatkowe informacje + * Support Information */ SUPPORT_INFORMATION: () => LocalizedString /** - * Kliknij tu + * Click Here */ CLICK_HERE: () => LocalizedString /** - * Skorzystaj z wiki w celu znalezienia szczegółowych instrukcji jak skonfigurować EMS-ESP + * Visit the online wiki to get instructions on how to configure EMS-ESP */ HELP_INFORMATION_1: () => LocalizedString /** - * Skorzystaj z serwera Discord w celu komunikacji na żywo ze społecznością + * For live community chat join our Discord server */ HELP_INFORMATION_2: () => LocalizedString /** - * Aby zaproponować nową funkcjonalność lub zgłosić problem + * To request a feature or report a bug */ HELP_INFORMATION_3: () => LocalizedString /** - * gdy zgłaszasz problem, będzie on szybciej rozwiązany gdy do zgłoszenia dołączysz pełną informację o swoim systemie + * remember to download and attach your system information for a faster response when reporting an issue */ HELP_INFORMATION_4: () => LocalizedString /** - * EMS-ESP jest darmowym projektem typu open-source. Aby go wesprzeć, rozważ przyznanie nam gwiazdki na Github! + * EMS-ESP is a free and open-source project. Please support its future development by giving it a star on Github! */ HELP_INFORMATION_5: () => LocalizedString /** - * Dodatkowe informacje + * Support Info */ SUPPORT_INFO: () => LocalizedString /** - * Wysyłanie {0} + * {0} Upload */ UPLOAD_OF: (arg0: unknown) => LocalizedString /** - * Wysyłanie + * Upload */ UPLOAD: () => LocalizedString /** - * {{P|p|}}obier{{anie|z|}} + * {{Download|download|}} */ DOWNLOAD: (arg0: string | number | boolean) => LocalizedString /** - * zostało przerwane! + * aborted */ ABORTED: () => LocalizedString /** - * nie powiodło się! + * failed */ FAILED: () => LocalizedString /** - * powiodło się. + * successful */ SUCCESSFUL: () => LocalizedString /** - * {{S|s||s}}yste{{m|mu||mowy}} + * {{System}} */ SYSTEM: (arg0: string | number | boolean) => LocalizedString /** - * Log {0} + * {0} Log */ LOG_OF: (arg0: unknown) => LocalizedString /** - * Status {0} + * {0} Status */ STATUS_OF: (arg0: unknown) => LocalizedString /** - * Przesyłanie plików + * Upload/Download */ UPLOAD_DOWNLOAD: () => LocalizedString /** - * Obecnie zainstalowana wersja to: + * You are currently running version */ SYSTEM_VERSION_RUNNING: () => LocalizedString + /** + * to apply the new firmware + */ SYSTEM_APPLY_FIRMWARE: () => LocalizedString /** - * Zamknij + * Close */ CLOSE: () => LocalizedString /** - * Aby zaktualizować firmware skorzystaj z funkcji + * Use */ USE: () => LocalizedString /** - * Ustawienia fabryczne + * Factory Reset */ FACTORY_RESET: () => LocalizedString /** - * Interfejs EMS-ESP został przywrócony do ustawień fabrycznych i zostanie teraz ponownie uruchomiony. + * Device has been factory reset and will now restart */ SYSTEM_FACTORY_TEXT: () => LocalizedString /** - * Czy jesteś pewien, że chcesz przywrócić ustawienia fabryczne interfejsu EMS-ESP? + * Are you sure you want to reset the device to its factory defaults? */ SYSTEM_FACTORY_TEXT_DIALOG: () => LocalizedString /** - * {{Sprawdź wersję|Sprawdzanie wersji|)}} + * {{Version Check}} */ VERSION_CHECK: (arg0: string | number | boolean) => LocalizedString /** - * Najnowsza + * The latest */ THE_LATEST: () => LocalizedString /** - * oficjalna + * official */ OFFICIAL: () => LocalizedString /** - * testowa + * development */ DEVELOPMENT: () => LocalizedString /** - * wersja to + * version is */ VERSION_IS: () => LocalizedString /** - * lista zmian + * release notes */ RELEASE_NOTES: () => LocalizedString /** - * Wersja EMS-ESP + * EMS-ESP Version */ EMS_ESP_VER: () => LocalizedString /** - * Urządzenie (platforma / SDK) + * Device (Platform / SDK) */ PLATFORM: () => LocalizedString /** - * Czas działania systemu + * System Uptime */ UPTIME: () => LocalizedString /** - * Taktowanie CPU + * CPU Frequency */ CPU_FREQ: () => LocalizedString /** - * HEAP (wolne / maksymalny przydział) + * Heap (Free / Max Alloc) */ HEAP: () => LocalizedString /** - * PSRAM (rozmiar / wolne) + * PSRAM (Size / Free) */ PSRAM: () => LocalizedString /** - * Układ pamięci flash (rozmiar / taktowanie) + * Flash Chip (Size / Speed) */ FLASH: () => LocalizedString /** - * Aplikacja (wykorzystane / wolne) + * Application (Used / Free) */ APPSIZE: () => LocalizedString /** - * System plików (wykorzystane / wolne) + * File System (Used / Free) */ FILESYSTEM: () => LocalizedString /** - * Rozmiar bufora + * Buffer Size */ BUFFER_SIZE: () => LocalizedString /** - * Kompaktowy + * Compact */ COMPACT: () => LocalizedString /** - * Aktywuj aktualizacje OTA + * Enable OTA Updates */ ENABLE_OTA: () => LocalizedString /** - * Pobierz personalizacje + * Download the entity customizations */ DOWNLOAD_CUSTOMIZATION_TEXT: () => LocalizedString /** - * Pobierz ustawienia aplikacji. Uważaj jeśli udostępniasz plik z ustawieniami, ponieważ zawiera on hasła oraz inne wrażliwe informacje! + * Download the application settings. Be careful when sharing your settings as this file contains passwords and other sensitive system information */ DOWNLOAD_SETTINGS_TEXT: () => LocalizedString /** - * Wyślij firmware (.bin), ustawienia lub personalizacje (.json) + * Upload a new firmware (.bin) file, settings or customizations (.json) file below, for optional validation upload (.md5) first */ UPLOAD_TEXT: () => LocalizedString /** - * Wysłano + * Uploading */ UPLOADING: () => LocalizedString /** - * Przeciągnij tutaj plik lub kliknij + * Drop file or click here */ UPLOAD_DROP_TEXT: () => LocalizedString /** - * Nieoczekiwany błąd, spróbuj ponownie! + * Unexpected Error, please try again */ ERROR: () => LocalizedString /** - * Ustaw czas + * Time set */ TIME_SET: () => LocalizedString /** - * Zarządzanie użytkownikami + * Manage Users */ MANAGE_USERS: () => LocalizedString /** - * {{Admin?|Uprawnienia administratora|}} + * {{is Admin}} */ IS_ADMIN: (arg0: string | number | boolean) => LocalizedString /** - * Przynajmniej jeden użytkownik musi mieć uprawnienia administratora! + * You must have at least one admin user configured */ USER_WARNING: () => LocalizedString /** - * Doda{{j|wanie|C}} + * {{Add}} */ ADD: (arg0: string | number | boolean) => LocalizedString /** - * Token dostępu dla użytkownika + * Access Token for */ ACCESS_TOKEN_FOR: () => LocalizedString /** - * Token jest używany w wywołaniach REST API wymagających autoryzacji. Można go przekazywać bezpośrednio lub przez URL. + * The token below is used with REST API calls that require authorization. It can be passed either as a Bearer token in the Authorization header or in the access_token URL query parameter. */ ACCESS_TOKEN_TEXT: () => LocalizedString /** - * Generowanie tokenu + * Generating token */ GENERATING_TOKEN: () => LocalizedString /** - * {{Użytkownik|użytkownika|}} + * {{User}} */ USER: (arg0: string | number | boolean) => LocalizedString /** - * Edycja + * Modify */ MODIFY: () => LocalizedString /** - * Hasło "su" (super-użytkownika) jest wykorzystywane do autoryzacji tokenów oraz dostępu do konsoli z uprawnieniami administratora. + * The su (super user) password is used to sign authentication tokens and also enable admin privileges within the Console. */ SU_TEXT: () => LocalizedString /** - * nieaktywowany + * Not enabled */ NOT_ENABLED: () => LocalizedString /** - * Błędy {0} + * {0} Errors */ ERRORS_OF: (arg0: unknown) => LocalizedString /** - * Powód rozłączenia + * Disconnect Reason */ DISCONNECT_REASON: () => LocalizedString /** - * Aktywuj MQTT + * Enable MQTT */ ENABLE_MQTT: () => LocalizedString /** - * opcjonalny + * Optional */ OPTIONAL: () => LocalizedString /** - * Formatowanie + * Formatting */ FORMATTING: () => LocalizedString /** @@ -2008,243 +2014,243 @@ export type TranslationFunctions = { */ FORMAT: () => LocalizedString /** - * zagnieżdżone w pojedynczym temacie + * Nested in a single topic */ MQTT_NEST_1: () => LocalizedString /** - * jako indywidualne tematy + * As individual topics */ MQTT_NEST_2: () => LocalizedString /** - * Publikuj odpowiedzi na komendy w temacie "response" + * Publish command output to a `response` topic */ MQTT_RESPONSE: () => LocalizedString /** - * Publikuj pojedyńcze wartości po zmianie + * Publish single value topics on change */ MQTT_PUBLISH_TEXT_1: () => LocalizedString /** - * Publikuj w temacie "command" (ioBroker) + * Publish to command topics (ioBroker) */ MQTT_PUBLISH_TEXT_2: () => LocalizedString /** - * Włącz opcję MQTT Discovery (Home Assistant, Domoticz) + * Enable MQTT Discovery (Home Assistant, Domoticz) */ MQTT_PUBLISH_TEXT_3: () => LocalizedString /** - * Prefiks do tematów "discovery" + * Prefix for the Discovery topics */ MQTT_PUBLISH_TEXT_4: () => LocalizedString /** - * Interwał publikowania + * Publish Intervals */ MQTT_PUBLISH_INTERVALS: () => LocalizedString /** - * Kotły i pompy ciepła + * Boilers and Heat Pumps */ MQTT_INT_BOILER: () => LocalizedString /** - * Termostaty + * Thermostats */ MQTT_INT_THERMOSTATS: () => LocalizedString /** - * Panele solarne + * Solar Modules */ MQTT_INT_SOLAR: () => LocalizedString /** - * Mieszacze + * Mixer Modules */ MQTT_INT_MIXER: () => LocalizedString /** - * Kolejka MQTT + * MQTT Queue */ MQTT_QUEUE: () => LocalizedString /** - * Domyślnie + * Default */ DEFAULT: () => LocalizedString /** - * Ustawiaj "Clean session" + * Set Clean Session */ MQTT_CLEAN_SESSION: () => LocalizedString /** - * Ustawiaj flagę "Retain" + * Always set Retain flag */ MQTT_RETAIN_FLAG: () => LocalizedString /** - * nieaktywny + * Inactive */ INACTIVE: () => LocalizedString /** - * aktywny + * Active */ ACTIVE: () => LocalizedString /** - * nieznany + * Unknown */ UNKNOWN: () => LocalizedString /** - * {{Ustaw zegar|Ustawianie zegara|}} + * {{Set Time}} */ SET_TIME: (arg0: string | number | boolean) => LocalizedString /** - * Wprowadź aktualną datę i godzinę + * Enter local date and time below to set the time */ SET_TIME_TEXT: () => LocalizedString /** - * Czas lokalny + * Local Time */ LOCAL_TIME: () => LocalizedString /** - * Czas UTC + * UTC Time */ UTC_TIME: () => LocalizedString /** - * Aktywuj NTP (data i godzina będą automatycznie synchronizowane z poniższym serwerem czasu) + * Enable NTP */ ENABLE_NTP: () => LocalizedString /** - * Serwer NTP + * NTP Server */ NTP_SERVER: () => LocalizedString /** - * Strefa czasowa + * Time Zone */ TIME_ZONE: () => LocalizedString /** - * {{Punkt|punktu|}} {{dostępowy|dostępowego|}} + * {{Access Point}} */ ACCESS_POINT: (arg0: string | number | boolean) => LocalizedString /** - * Aktywuj punkt dostępowy (Access Point) + * Enable Access Point */ AP_PROVIDE: () => LocalizedString /** - * zawsze + * always */ AP_PROVIDE_TEXT_1: () => LocalizedString /** - * gdy połączenie WiFi jest rozłączone + * when WiFi is disconnected */ AP_PROVIDE_TEXT_2: () => LocalizedString /** - * nigdy + * never */ AP_PROVIDE_TEXT_3: () => LocalizedString /** - * Preferowany kanał + * Preferred Channel */ AP_PREFERRED_CHANNEL: () => LocalizedString /** - * Ukryj SSID + * Hide SSID */ AP_HIDE_SSID: () => LocalizedString /** - * Liczba klientów + * AP Clients */ AP_CLIENTS: () => LocalizedString /** - * Maksymalna liczba klientów + * Max Clients */ AP_MAX_CLIENTS: () => LocalizedString /** - * Lokalny adres IP + * Local IP */ AP_LOCAL_IP: () => LocalizedString /** - * Skanuj sieci WiFi + * Scan WiFi Networks */ NETWORK_SCAN: () => LocalizedString /** - * uśpiony + * Idle */ IDLE: () => LocalizedString /** - * zostało utracone. + * Lost */ LOST: () => LocalizedString /** - * Skanuję + * Scanning */ SCANNING: () => LocalizedString /** - * Skanuj ponownie + * Scan again */ SCAN_AGAIN: () => LocalizedString /** - * Skaner sieci WiFi + * Network Scanner */ NETWORK_SCANNER: () => LocalizedString /** - * Brak sieci WiFi w zasięgu + * No WiFi networks found */ NETWORK_NO_WIFI: () => LocalizedString /** - * pozostaw puste aby wyłączyć WiFi + * leave blank to disable WiFi */ NETWORK_BLANK_SSID: () => LocalizedString /** - * Moc nadawania + * Tx Power */ TX_POWER: () => LocalizedString /** - * Nazwa w sieci + * Hostname */ HOSTNAME: () => LocalizedString /** - * Wyłącz tryb usypiania WiFi + * Disable WiFi Sleep Mode */ NETWORK_DISABLE_SLEEP: () => LocalizedString /** - * Używaj zmniejszonej przepustowości WiFi + * Use Lower WiFi Bandwidth */ NETWORK_LOW_BAND: () => LocalizedString /** - * Włącz wsparcie dla mDNS + * Enable mDNS Service */ NETWORK_USE_DNS: () => LocalizedString /** - * Włącz wsparcie dla IPv6 + * Enable IPv6 support */ NETWORK_ENABLE_IPV6: () => LocalizedString /** - * Użyj stałego adresu IP + * Use Fixed IP address */ NETWORK_FIXED_IP: () => LocalizedString /** - * Brama + * Getaway */ NETWORK_GATEWAY: () => LocalizedString /** - * Maska podsieci + * Subnet Mask */ NETWORK_SUBNET: () => LocalizedString /** - * Serwery DNS + * DNS Servers */ NETWORK_DNS: () => LocalizedString /** - * Adres {0} + * {0} Address */ ADDRESS_OF: (arg0: unknown) => LocalizedString /** - * Administrator + * Admin */ ADMIN: () => LocalizedString /** - * Gość + * Guest */ GUEST: () => LocalizedString /** - * Nowy + * New */ NEW: () => LocalizedString /** - * Zmień nazwę + * Rename */ RENAME: () => LocalizedString /** - * encji + * Entity */ ENTITY: () => LocalizedString } diff --git a/interface/src/i18n/i18n-util.async.ts b/interface/src/i18n/i18n-util.async.ts index fb35c3bd3..1b17c7d67 100644 --- a/interface/src/i18n/i18n-util.async.ts +++ b/interface/src/i18n/i18n-util.async.ts @@ -14,10 +14,10 @@ const localeTranslationLoaders = { se: () => import('./se'), } -const updateDictionary = (locale: Locales, dictionary: Partial) => +const updateDictionary = (locale: Locales, dictionary: Partial): Translations => loadedLocales[locale] = { ...loadedLocales[locale], ...dictionary } -export const importLocaleAsync = async (locale: Locales) => +export const importLocaleAsync = async (locale: Locales): Promise => (await localeTranslationLoaders[locale]()).default as unknown as Translations export const loadLocaleAsync = async (locale: Locales): Promise => { diff --git a/interface/src/i18n/i18n-util.ts b/interface/src/i18n/i18n-util.ts index 348376c2a..bda0766fc 100644 --- a/interface/src/i18n/i18n-util.ts +++ b/interface/src/i18n/i18n-util.ts @@ -3,10 +3,11 @@ import { i18n as initI18n, i18nObject as initI18nObject, i18nString as initI18nString } from 'typesafe-i18n' import type { LocaleDetector } from 'typesafe-i18n/detectors' +import type { LocaleTranslationFunctions, TranslateByString } from 'typesafe-i18n' import { detectLocale as detectLocaleFn } from 'typesafe-i18n/detectors' import type { Formatters, Locales, Translations, TranslationFunctions } from './i18n-types' -export const baseLocale: Locales = 'pl' +export const baseLocale: Locales = 'en' export const locales: Locales[] = [ 'de', @@ -17,21 +18,22 @@ export const locales: Locales[] = [ 'se' ] -export const isLocale = (locale: string) => locales.includes(locale as Locales) +export const isLocale = (locale: string): locale is Locales => locales.includes(locale as Locales) -export const loadedLocales = {} as Record +export const loadedLocales: Record = {} as Record -export const loadedFormatters = {} as Record +export const loadedFormatters: Record = {} as Record -export const i18nString = (locale: Locales) => initI18nString(locale, loadedFormatters[locale]) +export const i18nString = (locale: Locales): TranslateByString => initI18nString(locale, loadedFormatters[locale]) -export const i18nObject = (locale: Locales) => +export const i18nObject = (locale: Locales): TranslationFunctions => initI18nObject( locale, loadedLocales[locale], loadedFormatters[locale] ) -export const i18n = () => initI18n(loadedLocales, loadedFormatters) +export const i18n = (): LocaleTranslationFunctions => + initI18n(loadedLocales, loadedFormatters) -export const detectLocale = (...detectors: LocaleDetector[]) => detectLocaleFn(baseLocale, locales, ...detectors) +export const detectLocale = (...detectors: LocaleDetector[]): Locales => detectLocaleFn(baseLocale, locales, ...detectors) diff --git a/interface/src/project/SettingsApplication.tsx b/interface/src/project/SettingsApplication.tsx index 72ebb7a84..6a1dd3d32 100644 --- a/interface/src/project/SettingsApplication.tsx +++ b/interface/src/project/SettingsApplication.tsx @@ -311,12 +311,17 @@ const SettingsApplication: FC = () => { margin="normal" select > + Terminal (0x0A) Service Key (0x0B) Modem (0x0D) - Terminal (0x0A) Converter (0x0E) Time Module (0x0F) - Alarm Module (0x12) + Gateway 1 (0x48) + Gateway 2 (0x49) + Gateway 3 (0x4A) + Gateway 4 (0x4B) + Gateway 5 (0x4C) + Gateway 7 (0x4D) @@ -344,9 +349,7 @@ const SettingsApplication: FC = () => { Nederlands (NL) Svenska (SE) Polski (PL) - - Norsk (NO) - + Norsk (NO) {data.led_gpio !== 0 && ( diff --git a/interface/src/project/SettingsCustomization.tsx b/interface/src/project/SettingsCustomization.tsx index 562c9faad..850054ad3 100644 --- a/interface/src/project/SettingsCustomization.tsx +++ b/interface/src/project/SettingsCustomization.tsx @@ -66,7 +66,7 @@ const SettingsCustomization: FC = () => { const entities_theme = useTheme({ Table: ` - --data-table-library_grid-template-columns: 120px repeat(1, minmax(0, 1fr)) 120px; + --data-table-library_grid-template-columns: 120px repeat(1, minmax(80px, 1fr)) 40px 40px 120px; `, BaseRow: ` font-size: 14px; @@ -75,6 +75,12 @@ const SettingsCustomization: FC = () => { } `, BaseCell: ` + &:nth-of-type(3) { + text-align: right; + } + &:nth-of-type(4) { + text-align: right; + } &:last-of-type { text-align: right; } @@ -122,6 +128,12 @@ const SettingsCustomization: FC = () => { &:nth-of-type(2) { padding: 8px; } + &:nth-of-type(3) { + padding-right: 4px; + } + &:nth-of-type(4) { + padding-right: 4px; + } &:last-of-type { padding-right: 8px; } @@ -446,6 +458,8 @@ const SettingsCustomization: FC = () => { {LL.NAME()} + min + max {LL.VALUE(0)} @@ -497,6 +511,8 @@ const SettingsCustomization: FC = () => { {formatName(de)} + {!(de.m & DeviceEntityMask.DV_READONLY) && (formatValue(de.mi))} + {!(de.m & DeviceEntityMask.DV_READONLY) && (formatValue(de.ma))} {formatValue(de.v)} ))} @@ -626,7 +642,7 @@ const SettingsCustomization: FC = () => { onChange={updateValue(setDeviceEntity)} /> - {typeof de.v === 'number' && de.w && ( + {typeof de.v === 'number' && de.w && !(de.m & DeviceEntityMask.DV_READONLY) && ( <> { if (error.request) { - return defaultMessage + ' (' + error.request.statusText + ')'; + return defaultMessage + ' (' + error.request.status + ': ' + error.request.statusText + ')'; } else if (error instanceof Error) { return defaultMessage + ' (' + error.message + ')'; } diff --git a/lib/framework/MqttSettingsService.cpp b/lib/framework/MqttSettingsService.cpp index 67ac1e01a..3056de814 100644 --- a/lib/framework/MqttSettingsService.cpp +++ b/lib/framework/MqttSettingsService.cpp @@ -80,11 +80,11 @@ AsyncMqttClient * MqttSettingsService::getMqttClient() { } void MqttSettingsService::onMqttConnect(bool sessionPresent) { - // emsesp::EMSESP::logger().info(F("Connected to MQTT, %s"), (sessionPresent) ? F("with persistent session") : F("without persistent session")); + // emsesp::EMSESP::logger().info("Connected to MQTT, %s", (sessionPresent) ? ("with persistent session") : ("without persistent session")); } void MqttSettingsService::onMqttDisconnect(AsyncMqttClientDisconnectReason reason) { - // emsesp::EMSESP::logger().info(F("Disconnected from MQTT reason: %d"), (uint8_t)reason); + // emsesp::EMSESP::logger().info("Disconnected from MQTT reason: %d", (uint8_t)reason); _disconnectReason = reason; _disconnectedAt = uuid::get_uptime(); } @@ -104,14 +104,14 @@ void MqttSettingsService::WiFiEvent(WiFiEvent_t event, WiFiEventInfo_t info) { case ARDUINO_EVENT_ETH_GOT_IP6: case ARDUINO_EVENT_WIFI_STA_GOT_IP6: if (_state.enabled) { - // emsesp::EMSESP::logger().info(F("IPv4 Network connection found, starting MQTT client")); + // emsesp::EMSESP::logger().info("IPv4 Network connection found, starting MQTT client"); onConfigUpdated(); } break; case ARDUINO_EVENT_WIFI_STA_DISCONNECTED: case ARDUINO_EVENT_ETH_DISCONNECTED: if (_state.enabled) { - // emsesp::EMSESP::logger().info(F("Network connection dropped, stopping MQTT client")); + // emsesp::EMSESP::logger().info("Network connection dropped, stopping MQTT client"); _mqttClient.disconnect(); // onConfigUpdated(); } @@ -127,7 +127,7 @@ void MqttSettingsService::configureMqtt() { _mqttClient.disconnect(); // only connect if WiFi is connected and MQTT is enabled if (_state.enabled && emsesp::EMSESP::system_.network_connected()) { - // emsesp::EMSESP::logger().info(F("Configuring Mqtt client")); + // emsesp::EMSESP::logger().info("Configuring Mqtt client"); _mqttClient.setServer(retainCstr(_state.host.c_str(), &_retainedHost), _state.port); if (_state.username.length() > 0) { _mqttClient.setCredentials(retainCstr(_state.username.c_str(), &_retainedUsername), @@ -141,7 +141,7 @@ void MqttSettingsService::configureMqtt() { _mqttClient.setMaxTopicLength(_state.maxTopicLength); _mqttClient.connect(); // } else { - // emsesp::EMSESP::logger().info(F("Error configuring Mqtt client")); + // emsesp::EMSESP::logger().info("Error configuring Mqtt client"); } } diff --git a/lib/framework/NTPSettingsService.cpp b/lib/framework/NTPSettingsService.cpp index 55ab6964c..a9b943cc9 100644 --- a/lib/framework/NTPSettingsService.cpp +++ b/lib/framework/NTPSettingsService.cpp @@ -28,14 +28,14 @@ void NTPSettingsService::WiFiEvent(WiFiEvent_t event) { switch (event) { case ARDUINO_EVENT_WIFI_STA_DISCONNECTED: case ARDUINO_EVENT_ETH_DISCONNECTED: - emsesp::EMSESP::logger().info(F("WiFi connection dropped, stopping NTP")); + emsesp::EMSESP::logger().info("WiFi connection dropped, stopping NTP"); connected_ = false; configureNTP(); break; case ARDUINO_EVENT_WIFI_STA_GOT_IP: case ARDUINO_EVENT_ETH_GOT_IP: - // emsesp::EMSESP::logger().info(F("Got IP address, starting NTP synchronization")); + // emsesp::EMSESP::logger().info("Got IP address, starting NTP synchronization"); connected_ = true; configureNTP(); break; @@ -49,7 +49,7 @@ void NTPSettingsService::WiFiEvent(WiFiEvent_t event) { void NTPSettingsService::configureNTP() { emsesp::EMSESP::system_.ntp_connected(false); if (connected_ && _state.enabled) { - emsesp::EMSESP::logger().info(F("Starting NTP")); + emsesp::EMSESP::logger().info("Starting NTP"); sntp_set_sync_interval(3600000); // onehour sntp_set_time_sync_notification_cb(ntp_received); configTzTime(_state.tzFormat.c_str(), _state.server.c_str()); @@ -81,6 +81,6 @@ void NTPSettingsService::configureTime(AsyncWebServerRequest * request, JsonVari } void NTPSettingsService::ntp_received(struct timeval * tv) { - // emsesp::EMSESP::logger().info(F("NTP sync to %d sec"), tv->tv_sec); + // emsesp::EMSESP::logger().info("NTP sync to %d sec", tv->tv_sec); emsesp::EMSESP::system_.ntp_connected(true); } diff --git a/lib/framework/OTASettingsService.cpp b/lib/framework/OTASettingsService.cpp index 2aacdb37e..a91bd645f 100644 --- a/lib/framework/OTASettingsService.cpp +++ b/lib/framework/OTASettingsService.cpp @@ -47,15 +47,15 @@ void OTASettingsService::configureArduinoOTA() { #if defined(EMSESP_USE_SERIAL) Serial.printf("Error[%u]: ", error); if (error == OTA_AUTH_ERROR) - Serial.println(F("Auth Failed")); + Serial.println("Auth Failed"); else if (error == OTA_BEGIN_ERROR) - Serial.println(F("Begin Failed")); + Serial.println("Begin Failed"); else if (error == OTA_CONNECT_ERROR) - Serial.println(F("Connect Failed")); + Serial.println("Connect Failed"); else if (error == OTA_RECEIVE_ERROR) - Serial.println(F("Receive Failed")); + Serial.println("Receive Failed"); else if (error == OTA_END_ERROR) - Serial.println(F("End Failed")); + Serial.println("End Failed"); #endif }); diff --git a/lib/framework/UploadFileService.cpp b/lib/framework/UploadFileService.cpp index c78be7fda..e2d07d83b 100644 --- a/lib/framework/UploadFileService.cpp +++ b/lib/framework/UploadFileService.cpp @@ -3,6 +3,7 @@ using namespace std::placeholders; // for `_1` etc static bool is_firmware = false; +static char md5[33] = "\0"; UploadFileService::UploadFileService(AsyncWebServer * server, SecurityManager * securityManager) : _securityManager(securityManager) { @@ -33,45 +34,53 @@ void UploadFileService::handleUpload(AsyncWebServerRequest * request, const Stri Serial.println(); #endif + is_firmware = false; if ((extension == "bin") && (fsize > 1500000)) { is_firmware = true; } else if (extension == "json") { - is_firmware = false; + md5[0] = '\0'; // clear md5 + } else if (extension == "md5") { + if (len == 32) { + memcpy(md5, data, 32); + md5[32] = '\0'; + } + return; } else { - is_firmware = false; + md5[0] = '\0'; return; // not support file type } if (is_firmware) { // Check firmware header, 0xE9 magic offset 0 indicates esp bin, chip offset 12: esp32:0, S2:2, C3:5 #if CONFIG_IDF_TARGET_ESP32 // ESP32/PICO-D4 - bool isC3 = (fname.find("C3") != std::string::npos); - bool isS2 = (fname.find("S2") != std::string::npos); - if (isC3 || isS2 || (len > 12 && (data[0] != 0xE9 || data[12] != 0))) { + if (len > 12 && (data[0] != 0xE9 || data[12] != 0)) { handleError(request, 503); // service unavailable return; } #elif CONFIG_IDF_TARGET_ESP32S2 - bool isS2 = (fname.find("S2") != std::string::npos); - if (!isS2 || (len > 12 && (data[0] != 0xE9 || data[12] != 2))) { + if (len > 12 && (data[0] != 0xE9 || data[12] != 2)) { handleError(request, 503); // service unavailable return; } #elif CONFIG_IDF_TARGET_ESP32C3 - bool isC3 = (fname.find("C3") != std::string::npos); - if (!isC3 || (len > 12 && (data[0] != 0xE9 || data[12] != 5))) { + if (len > 12 && (data[0] != 0xE9 || data[12] != 5)) { handleError(request, 503); // service unavailable return; } #endif // it's firmware - initialize the ArduinoOTA updater if (Update.begin(fsize)) { + if (strlen(md5) == 32) { + Update.setMD5(md5); + md5[0] = '\0'; + } request->onDisconnect(UploadFileService::handleEarlyDisconnect); // success, let's make sure we end the update if the client hangs up } else { #if defined(EMSESP_USE_SERIAL) Update.printError(Serial); #endif handleError(request, 507); // failed to begin, send an error response Insufficient Storage + return; } } else { // its a normal file, open a new temp file to write the contents too @@ -83,7 +92,6 @@ void UploadFileService::handleUpload(AsyncWebServerRequest * request, const Stri if (len) { request->_tempFile.write(data, len); // stream the incoming chunk to the opened file } - } else { // if we haven't delt with an error, continue with the firmware update if (!request->_tempObject) { @@ -123,6 +131,11 @@ void UploadFileService::uploadComplete(AsyncWebServerRequest * request) { request->send(response); return; } + if (strlen(md5) == 32) { + AsyncWebServerResponse * response = request->beginResponse(201, "text/plain", md5); // created + request->send(response); + return; + } handleError(request, 403); // send the forbidden response } diff --git a/mock-api/server.js b/mock-api/server.js index dbde18d51..a1d167a45 100644 --- a/mock-api/server.js +++ b/mock-api/server.js @@ -1154,7 +1154,7 @@ rest_server.post(EMSESP_BOARDPROFILE_ENDPOINT, (req, res) => { } else if (board_profile == 'C3MINI') { // Lolin C3 mini data.led_gpio = 7 - data.dallas_gpio = 2 + data.dallas_gpio = 1 data.rx_gpio = 4 data.tx_gpio = 5 data.pbutton_gpio = 9 @@ -1162,6 +1162,17 @@ rest_server.post(EMSESP_BOARDPROFILE_ENDPOINT, (req, res) => { data.eth_power = 0 data.eth_phy_addr = 0 data.eth_clock_mode = 0 + } else if (board_profile == 'S2MINI') { + // Lolin C3 mini + data.led_gpio = 15 + data.dallas_gpio = 7 + data.rx_gpio = 11 + data.tx_gpio = 12 + data.pbutton_gpio = 0 + data.phy_type = 0 + data.eth_power = 0 + data.eth_phy_addr = 0 + data.eth_clock_mode = 0 } console.log('boardProfile POST. Sending back, profile: ' + board_profile + ', ' + 'data: ' + JSON.stringify(data)) diff --git a/scripts/rename_fw.py b/scripts/rename_fw.py index f963c2795..1e53fbfe5 100644 --- a/scripts/rename_fw.py +++ b/scripts/rename_fw.py @@ -2,6 +2,7 @@ import shutil import re import os Import("env") +import hashlib OUTPUT_DIR = "build{}".format(os.path.sep) @@ -18,7 +19,6 @@ def bin_copy(source, target, env): bag[var] = m.group(1) app_version = bag.get('app_version') - platform = "ESP32" chip_target = env.get('PIOENV').upper() @@ -33,14 +33,13 @@ def bin_copy(source, target, env): # alternatively take platform from the pio target # platform = str(target[0]).split(os.path.sep)[2] - chip_target = env.get('PIOENV').upper() print("app version: " + app_version) print("platform: " + platform) print("chip_target: " + chip_target) # convert . to _ so Windows doesn't complain - variant = "EMS-ESP-" + chip_target + "-" + app_version.replace(".", "_") + variant = "EMS-ESP-" + app_version.replace(".", "_") + "-" + chip_target.replace("CI","ESP32") # check if output directories exist and create if necessary if not os.path.isdir(OUTPUT_DIR): @@ -52,15 +51,29 @@ def bin_copy(source, target, env): # create string with location and file names based on variant bin_file = "{}firmware{}{}.bin".format(OUTPUT_DIR, os.path.sep, variant) + md5_file = "{}firmware{}{}.md5".format(OUTPUT_DIR, os.path.sep, variant) # check if new target files exist and remove if necessary for f in [bin_file]: if os.path.isfile(f): os.remove(f) + # check if new target files exist and remove if necessary + for f in [md5_file]: + if os.path.isfile(f): + os.remove(f) + print("Renaming file to "+bin_file) # copy firmware.bin to firmware/.bin shutil.copy(str(target[0]), bin_file) + with open(bin_file,"rb") as f: + result = hashlib.md5(f.read()) + print("Calculating MD5: "+result.hexdigest()) + file1 = open(md5_file, 'w') + file1.write(result.hexdigest()) + file1.close() + env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", [bin_copy]) +env.AddPostAction("$BUILD_DIR/${PROGNAME}.md5", [bin_copy]) diff --git a/src/console.cpp b/src/console.cpp index 1cba1e74d..b9a3eaa46 100644 --- a/src/console.cpp +++ b/src/console.cpp @@ -151,11 +151,11 @@ void EMSESPShell::add_console_commands() { }, "local"); } else { - shell.println("Must be 0B, 0D, 0A, 0F or 12"); + shell.println("Must be 0B, 0D, 0A, 0E, 0F, or 48 - 4D"); } }, [](Shell & shell __attribute__((unused)), const std::vector & arguments __attribute__((unused))) -> const std::vector { - return std::vector{"0B", "0D", "0A", "0F", "12"}; + return std::vector{"0B", "0D", "0A", "0E", "0F", "48", "49", "4A", "4B", "4C", "4D"}; }); commands->add_command(ShellContext::MAIN, diff --git a/src/emsdevice.cpp b/src/emsdevice.cpp index c0cd2c67e..b32d9fa46 100644 --- a/src/emsdevice.cpp +++ b/src/emsdevice.cpp @@ -947,15 +947,14 @@ void EMSdevice::generate_values_web_customization(JsonArray & output) { obj["m"] = dv.state >> 4; // send back the mask state. We're only interested in the high nibble obj["w"] = dv.has_cmd; // if writable - if (dv.has_cmd) { - // set the custom min and max values if there are any + if (dv.has_cmd && (obj["v"].is() || obj["v"].is())) { + // set the min and max values if there are any and if entity has a value int16_t dv_set_min; uint16_t dv_set_max; - if (dv.get_custom_min(dv_set_min)) { - obj["mi"] = fahrenheit ? (int)(dv_set_min * 1.8 + 32 * (fahrenheit - 1)) : dv_set_min; - } - if (dv.get_custom_max(dv_set_max)) { - obj["ma"] = fahrenheit ? (int)(dv_set_max * 1.8 + 32 * (fahrenheit - 1)) : dv_set_max; + if (dv.get_min_max(dv_set_min, dv_set_max)) { + char s[10]; + obj["mi"] = Helpers::render_value(s, dv_set_min, 0, fahrenheit); + obj["ma"] = Helpers::render_value(s, dv_set_max, 0, fahrenheit); } } } diff --git a/src/emsdevicevalue.cpp b/src/emsdevicevalue.cpp index dd15a653b..9fedd8c7a 100644 --- a/src/emsdevicevalue.cpp +++ b/src/emsdevicevalue.cpp @@ -287,13 +287,13 @@ bool DeviceValue::get_min_max(int16_t & dv_set_min, uint16_t & dv_set_max) { if (type == DeviceValueType::USHORT) { dv_set_min = Helpers::transformNumFloat(0, numeric_operator, fahrenheit); - dv_set_max = Helpers::transformNumFloat(EMS_VALUE_USHORT_NOTSET, numeric_operator, fahrenheit); + dv_set_max = Helpers::transformNumFloat(EMS_VALUE_USHORT_NOTSET - 1, numeric_operator, fahrenheit); return true; } if (type == DeviceValueType::SHORT) { - dv_set_min = Helpers::transformNumFloat(-EMS_VALUE_SHORT_NOTSET, numeric_operator, fahrenheit); - dv_set_max = Helpers::transformNumFloat(EMS_VALUE_SHORT_NOTSET, numeric_operator, fahrenheit); + dv_set_min = Helpers::transformNumFloat(-EMS_VALUE_SHORT_NOTSET + 1, numeric_operator, fahrenheit); + dv_set_max = Helpers::transformNumFloat(EMS_VALUE_SHORT_NOTSET - 1, numeric_operator, fahrenheit); return true; } @@ -301,7 +301,7 @@ bool DeviceValue::get_min_max(int16_t & dv_set_min, uint16_t & dv_set_max) { if (uom == DeviceValueUOM::PERCENT) { dv_set_max = 100; } else { - dv_set_max = Helpers::transformNumFloat(EMS_VALUE_UINT_NOTSET, numeric_operator, fahrenheit); + dv_set_max = Helpers::transformNumFloat(EMS_VALUE_UINT_NOTSET - 1, numeric_operator, fahrenheit); } return true; } @@ -311,19 +311,19 @@ bool DeviceValue::get_min_max(int16_t & dv_set_min, uint16_t & dv_set_max) { dv_set_min = -100; dv_set_max = 100; } else { - dv_set_min = Helpers::transformNumFloat(-EMS_VALUE_INT_NOTSET, numeric_operator, fahrenheit); - dv_set_max = Helpers::transformNumFloat(EMS_VALUE_INT_NOTSET, numeric_operator, fahrenheit); + dv_set_min = Helpers::transformNumFloat(-EMS_VALUE_INT_NOTSET + 1, numeric_operator, fahrenheit); + dv_set_max = Helpers::transformNumFloat(EMS_VALUE_INT_NOTSET - 1, numeric_operator, fahrenheit); } return true; } if (type == DeviceValueType::ULONG) { - dv_set_max = Helpers::transformNumFloat(EMS_VALUE_ULONG_NOTSET, numeric_operator); + dv_set_max = Helpers::transformNumFloat(EMS_VALUE_ULONG_NOTSET - 1, numeric_operator); return true; } if (type == DeviceValueType::TIME) { - dv_set_max = Helpers::transformNumFloat(EMS_VALUE_ULONG_NOTSET, numeric_operator); + dv_set_max = Helpers::transformNumFloat(EMS_VALUE_ULONG_NOTSET - 1, numeric_operator); return true; } diff --git a/src/system.cpp b/src/system.cpp index 9685a7491..64a00c0dd 100644 --- a/src/system.cpp +++ b/src/system.cpp @@ -377,7 +377,11 @@ void System::start() { // disable bluetooth module // periph_module_disable(PERIPH_BT_MODULE); if (low_clock_) { +#if CONFIG_IDF_TARGET_ESP32C3 + setCpuFrequencyMhz(80); +#else setCpuFrequencyMhz(160); +#endif } fstotal_ = LittleFS.totalBytes() / 1024; // read only once, it takes 500 ms to read psram_ = ESP.getPsramSize() / 1024; diff --git a/src/version.h b/src/version.h index 61da75d0e..e943da6ae 100644 --- a/src/version.h +++ b/src/version.h @@ -1,4 +1,4 @@ -#define EMSESP_APP_VERSION "3.5.0b7" +#define EMSESP_APP_VERSION "3.5.0b8" #if CONFIG_IDF_TARGET_ESP32C3 #define EMSESP_PLATFORM "ESP32-C3"; diff --git a/src/web/WebStatusService.cpp b/src/web/WebStatusService.cpp index ce9fd1ab5..1b9935bfc 100644 --- a/src/web/WebStatusService.cpp +++ b/src/web/WebStatusService.cpp @@ -34,7 +34,7 @@ WebStatusService::WebStatusService(AsyncWebServer * server, SecurityManager * se void WebStatusService::WiFiEvent(WiFiEvent_t event, WiFiEventInfo_t info) { switch (event) { case ARDUINO_EVENT_WIFI_STA_DISCONNECTED: - EMSESP::logger().warning("WiFi disconnected. Reason code=%d", info.wifi_sta_disconnected.reason); // IDF 4.0 + EMSESP::logger().warning("WiFi disconnected. Reason code=%s", disconnectReason(info.wifi_sta_disconnected.reason)); // IDF 4.0 WiFi.disconnect(true); break; @@ -42,7 +42,6 @@ void WebStatusService::WiFiEvent(WiFiEvent_t event, WiFiEventInfo_t info) { #ifndef EMSESP_STANDALONE EMSESP::logger().info("WiFi connected with IP=%s, hostname=%s", WiFi.localIP().toString().c_str(), WiFi.getHostname()); #endif - // EMSESP::system_.send_heartbeat(); // send from mqtt start EMSESP::system_.syslog_init(); mDNS_start(); break; @@ -226,4 +225,68 @@ void WebStatusService::mDNS_start() const { #endif } +const char * WebStatusService::disconnectReason(uint8_t code) { + switch (code) { + case WIFI_REASON_UNSPECIFIED: // = 1, + return "unspecifiied"; + case WIFI_REASON_AUTH_EXPIRE: // = 2, + return "auth expire"; + case WIFI_REASON_AUTH_LEAVE: // = 3, + return "auth leave"; + case WIFI_REASON_ASSOC_EXPIRE: // = 4, + return "assoc expired"; + case WIFI_REASON_ASSOC_TOOMANY: // = 5, + return "assoc too many"; + case WIFI_REASON_NOT_AUTHED: // = 6, + return "not authed"; + case WIFI_REASON_NOT_ASSOCED: // = 7, + return "not assoced"; + case WIFI_REASON_ASSOC_LEAVE: // = 8, + return "assoc leave"; + case WIFI_REASON_ASSOC_NOT_AUTHED: // = 9, + return "assoc not authed"; + case WIFI_REASON_DISASSOC_PWRCAP_BAD: // = 10, + return "disassoc powerCAP bad"; + case WIFI_REASON_DISASSOC_SUPCHAN_BAD: // = 11, + return "disassoc supchan bad"; + case WIFI_REASON_IE_INVALID: // = 13, + return "IE invalid"; + case WIFI_REASON_MIC_FAILURE: // = 14, + return "MIC failure"; + case WIFI_REASON_4WAY_HANDSHAKE_TIMEOUT: // = 15, + return "4way handshake timeout"; + case WIFI_REASON_GROUP_KEY_UPDATE_TIMEOUT: // = 16, + return "group key-update timeout"; + case WIFI_REASON_IE_IN_4WAY_DIFFERS: // = 17, + return "IE in 4way differs"; + case WIFI_REASON_GROUP_CIPHER_INVALID: // = 18, + return "group cipher invalid"; + case WIFI_REASON_PAIRWISE_CIPHER_INVALID: // = 19, + return "pairwise cipher invalid"; + case WIFI_REASON_AKMP_INVALID: // = 20, + return "AKMP invalid"; + case WIFI_REASON_UNSUPP_RSN_IE_VERSION: // = 21, + return "unsupported RSN_IE version"; + case WIFI_REASON_INVALID_RSN_IE_CAP: // = 22, + return "invalid RSN_IE_CAP"; + case WIFI_REASON_802_1X_AUTH_FAILED: // = 23, + return "802 X1 auth failed"; + case WIFI_REASON_CIPHER_SUITE_REJECTED: // = 24, + return "cipher suite rejected"; + case WIFI_REASON_BEACON_TIMEOUT: // = 200, + return "beacon timeout"; + case WIFI_REASON_NO_AP_FOUND: // = 201, + return "no AP found"; + case WIFI_REASON_AUTH_FAIL: // = 202, + return "auth fail"; + case WIFI_REASON_ASSOC_FAIL: // = 203, + return "assoc fail"; + case WIFI_REASON_HANDSHAKE_TIMEOUT: // = 204, + return "handshake timeout"; + default: + return "unknown"; + } + return ""; +} + } // namespace emsesp \ No newline at end of file diff --git a/src/web/WebStatusService.h b/src/web/WebStatusService.h index 938bcfa32..fea0a8728 100644 --- a/src/web/WebStatusService.h +++ b/src/web/WebStatusService.h @@ -33,6 +33,8 @@ class WebStatusService { void webStatusService(AsyncWebServerRequest * request); void WiFiEvent(WiFiEvent_t event, WiFiEventInfo_t info); void mDNS_start() const; + const char * disconnectReason(uint8_t code); + }; } // namespace emsesp