Merge pull request #1694 from proddy/dev

web testing cleanup + Tasmota Arduino Core 2.0.15 with IPv6 support, based on IDF 4.4.7 / core 2.0.15
This commit is contained in:
Proddy
2024-04-11 22:08:47 +02:00
committed by GitHub
16 changed files with 331 additions and 3133 deletions

22
.gitignore vendored
View File

@@ -30,7 +30,7 @@ stats.html
*.sln
*.sw?
.pnp.*
.yarn/*
*/.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
@@ -39,6 +39,16 @@ stats.html
yarn.lock
analyse.html
interface/vite.config.ts.timestamp*
*.local
# i18n generated files
interface/src/i18n/i18n-react.tsx
interface/src/i18n/i18n-types.ts
interface/src/i18n/i18n-util.ts
interface/src/i18n/i18n-util.sync.ts
interface/src/i18n/i18n-util.async.ts
# mock-api uploads
*/uploads/*
!uploads/README.md
# scripts
test.sh
@@ -46,18 +56,10 @@ scripts/run.sh
scripts/__pycache__
scripts/stackdmp.txt
# i18n generated files
interface/src/i18n/i18n-react.tsx
interface/src/i18n/i18n-types.ts
interface/src/i18n/i18n-util.ts
interface/src/i18n/i18n-util.sync.ts
interface/src/i18n/i18n-util.async.ts
# sonar
.scannerwork/
sonar/
bw-output/
# testing
# standalone executable for testing
emsesp

View File

@@ -1,7 +0,0 @@
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions

View File

@@ -14,9 +14,8 @@
"preview-standalone": "typesafe-i18n --no-watch && vite build && concurrently -c \"auto\" \"npm:mock-api\" \"vite preview\"",
"mock-api": "bun --watch ../mock-api/rest_server.ts",
"mock-es": "bun --watch ../mock-api/es_server.ts",
"old_mock-api": "bun --watch ../mock-api/server.js",
"standalone": "concurrently -c \"auto\" \"typesafe-i18n\" \"npm:mock-api\" \"npm:mock-es\" \"vite\"",
"old_standalone": "concurrently -c \"auto\" \"typesafe-i18n\" \"npm:old_mock-api\" \"vite\"",
"mock-upload": "bun --watch ../mock-api/upload_server.ts",
"standalone": "concurrently -c \"auto\" \"typesafe-i18n\" \"npm:mock-api\" \"npm:mock-es\" \"npm:mock-upload\" \"vite\"",
"typesafe-i18n": "typesafe-i18n --no-watch",
"webUI": "node progmem-generator.js",
"format": "prettier --write '**/*.{ts,tsx,js,css,json,md}'",
@@ -24,19 +23,19 @@
},
"dependencies": {
"@alova/adapter-xhr": "^1.0.3",
"@babel/core": "^7.24.3",
"@babel/core": "^7.24.4",
"@emotion/react": "^11.11.4",
"@emotion/styled": "^11.11.5",
"@mui/icons-material": "^5.15.14",
"@mui/material": "^5.15.14",
"@mui/icons-material": "^5.15.15",
"@mui/material": "^5.15.15",
"@table-library/react-table-library": "4.1.7",
"@types/imagemin": "^8.0.5",
"@types/lodash-es": "^4.17.12",
"@types/node": "^20.12.2",
"@types/react": "^18.2.74",
"@types/react-dom": "^18.2.23",
"@types/node": "^20.12.7",
"@types/react": "^18.2.76",
"@types/react-dom": "^18.2.25",
"@types/react-router-dom": "^5.3.3",
"alova": "^2.18.2",
"alova": "^2.19.0",
"async-validator": "^4.2.5",
"eslint-plugin-prettier": "^5.1.3",
"history": "^5.3.0",
@@ -50,26 +49,26 @@
"react-router-dom": "^6.22.3",
"react-toastify": "^10.0.5",
"typesafe-i18n": "^5.26.2",
"typescript": "^5.4.3"
"typescript": "^5.4.5"
},
"devDependencies": {
"@preact/compat": "^17.1.2",
"@preact/preset-vite": "^2.8.2",
"@typescript-eslint/eslint-plugin": "^7.5.0",
"@typescript-eslint/parser": "^7.5.0",
"@typescript-eslint/eslint-plugin": "^7.6.0",
"@typescript-eslint/parser": "^7.6.0",
"concurrently": "^8.2.2",
"eslint": "^8.57.0",
"eslint": "8.57.0",
"eslint-config-prettier": "^9.1.0",
"eslint-import-resolver-typescript": "^3.6.1",
"eslint-plugin-autofix": "^1.1.0",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-react": "^7.34.1",
"eslint-plugin-react-hooks": "^4.6.0",
"preact": "^10.20.1",
"preact": "^10.20.2",
"prettier": "^3.2.5",
"rollup-plugin-visualizer": "^5.12.0",
"terser": "^5.30.2",
"vite": "^5.2.7",
"terser": "^5.30.3",
"vite": "^5.2.8",
"vite-plugin-imagemin": "^0.6.1",
"vite-tsconfig-paths": "^4.3.2"
},

View File

@@ -13,7 +13,6 @@ export default defineConfig(({ command, mode }) => {
open: true,
port: mode == 'production' ? 4173 : 3000,
proxy: {
'/rest': 'http://localhost:3080',
'/api': {
target: 'http://localhost:3080',
changeOrigin: true,
@@ -23,7 +22,9 @@ export default defineConfig(({ command, mode }) => {
target: 'http://localhost:3081',
changeOrigin: true,
secure: false
}
},
'/rest/uploadFile': 'http://localhost:3082', // this must come first to work!
'/rest': 'http://localhost:3080'
}
}
};

View File

@@ -46,7 +46,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/core@npm:^7.22.1, @babel/core@npm:^7.24.3":
"@babel/core@npm:^7.22.1":
version: 7.24.3
resolution: "@babel/core@npm:7.24.3"
dependencies:
@@ -69,6 +69,29 @@ __metadata:
languageName: node
linkType: hard
"@babel/core@npm:^7.24.4":
version: 7.24.4
resolution: "@babel/core@npm:7.24.4"
dependencies:
"@ampproject/remapping": "npm:^2.2.0"
"@babel/code-frame": "npm:^7.24.2"
"@babel/generator": "npm:^7.24.4"
"@babel/helper-compilation-targets": "npm:^7.23.6"
"@babel/helper-module-transforms": "npm:^7.23.3"
"@babel/helpers": "npm:^7.24.4"
"@babel/parser": "npm:^7.24.4"
"@babel/template": "npm:^7.24.0"
"@babel/traverse": "npm:^7.24.1"
"@babel/types": "npm:^7.24.0"
convert-source-map: "npm:^2.0.0"
debug: "npm:^4.1.0"
gensync: "npm:^1.0.0-beta.2"
json5: "npm:^2.2.3"
semver: "npm:^6.3.1"
checksum: 10/1e049f8df26be0fe5be36173fd7c33dfb004eeeec28152fea83c90e71784f9a6f2237296f43a2ee7d9041e2a33a05f43da48ce2d4e0cd473a682328ca07ce7e0
languageName: node
linkType: hard
"@babel/generator@npm:^7.24.1":
version: 7.24.1
resolution: "@babel/generator@npm:7.24.1"
@@ -81,6 +104,18 @@ __metadata:
languageName: node
linkType: hard
"@babel/generator@npm:^7.24.4":
version: 7.24.4
resolution: "@babel/generator@npm:7.24.4"
dependencies:
"@babel/types": "npm:^7.24.0"
"@jridgewell/gen-mapping": "npm:^0.3.5"
"@jridgewell/trace-mapping": "npm:^0.3.25"
jsesc: "npm:^2.5.1"
checksum: 10/69e1772dcf8f95baec951f422cca091d59a3f29b5eedc989ad87f7262289b94625983f6fe654302ca17aae0a32f9232332b83fcc85533311d6267b09c58b1061
languageName: node
linkType: hard
"@babel/helper-annotate-as-pure@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/helper-annotate-as-pure@npm:7.22.5"
@@ -210,6 +245,17 @@ __metadata:
languageName: node
linkType: hard
"@babel/helpers@npm:^7.24.4":
version: 7.24.4
resolution: "@babel/helpers@npm:7.24.4"
dependencies:
"@babel/template": "npm:^7.24.0"
"@babel/traverse": "npm:^7.24.1"
"@babel/types": "npm:^7.24.0"
checksum: 10/54a9d0f86f2803fcc216cfa23b66b871ea0fa0a892af1c9a79075872c2437de71afbb150ed8216f30e00b19a0b9c5c9d5845173d170e1ebfbbf8887839b89dde
languageName: node
linkType: hard
"@babel/highlight@npm:^7.24.2":
version: 7.24.2
resolution: "@babel/highlight@npm:7.24.2"
@@ -231,6 +277,15 @@ __metadata:
languageName: node
linkType: hard
"@babel/parser@npm:^7.24.4":
version: 7.24.4
resolution: "@babel/parser@npm:7.24.4"
bin:
parser: ./bin/babel-parser.js
checksum: 10/3742cc5068036287e6395269dce5a2735e6349cdc8d4b53297c75f98c580d7e1c8cb43235623999d151f2ef975d677dbc2c2357573a1855caa71c271bf3046c9
languageName: node
linkType: hard
"@babel/plugin-syntax-jsx@npm:^7.23.3":
version: 7.24.1
resolution: "@babel/plugin-syntax-jsx@npm:7.24.1"
@@ -655,7 +710,7 @@ __metadata:
languageName: node
linkType: hard
"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1":
"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.6.1":
version: 4.10.0
resolution: "@eslint-community/regexpp@npm:4.10.0"
checksum: 10/8c36169c815fc5d726078e8c71a5b592957ee60d08c6470f9ce0187c8046af1a00afbda0a065cc40ff18d5d83f82aed9793c6818f7304a74a7488dc9f3ecbd42
@@ -743,9 +798,9 @@ __metadata:
linkType: hard
"@humanwhocodes/object-schema@npm:^2.0.2":
version: 2.0.2
resolution: "@humanwhocodes/object-schema@npm:2.0.2"
checksum: 10/ef915e3e2f34652f3d383b28a9a99cfea476fa991482370889ab14aac8ecd2b38d47cc21932526c6d949da0daf4a4a6bf629d30f41b0caca25e146819cbfa70e
version: 2.0.3
resolution: "@humanwhocodes/object-schema@npm:2.0.3"
checksum: 10/05bb99ed06c16408a45a833f03a732f59bf6184795d4efadd33238ff8699190a8c871ad1121241bb6501589a9598dc83bf25b99dcbcf41e155cdf36e35e937a3
languageName: node
linkType: hard
@@ -837,16 +892,16 @@ __metadata:
languageName: node
linkType: hard
"@mui/core-downloads-tracker@npm:^5.15.14":
version: 5.15.14
resolution: "@mui/core-downloads-tracker@npm:5.15.14"
checksum: 10/0a1c63d906af594d0a7fb63d1d574482b3916351ea8908e8621c8bfa16ac38cf4edb5a334f0e28084f583ac928b587cab6e031f992195e0a590186faba13b9a5
"@mui/core-downloads-tracker@npm:^5.15.15":
version: 5.15.15
resolution: "@mui/core-downloads-tracker@npm:5.15.15"
checksum: 10/3e99a04e03f66d5fa5f0c23cdce0f9fa2331ba08c99a75dc2347ccaa1c6ed520153e04aaeb0d613c9dca099a3e6242558a6284c33d93f95cc65e3243b17860bc
languageName: node
linkType: hard
"@mui/icons-material@npm:^5.15.14":
version: 5.15.14
resolution: "@mui/icons-material@npm:5.15.14"
"@mui/icons-material@npm:^5.15.15":
version: 5.15.15
resolution: "@mui/icons-material@npm:5.15.15"
dependencies:
"@babel/runtime": "npm:^7.23.9"
peerDependencies:
@@ -856,18 +911,18 @@ __metadata:
peerDependenciesMeta:
"@types/react":
optional: true
checksum: 10/a5033b67d4ff455f5fdd91fc51d26d967d634e861cde194b9dde02a8cc3f557d1b3f7e0b3175bc654b8e944f2118d46620485734ecd9d2ed4a6f748386447933
checksum: 10/e8810d7ffbba914baf21509e5d664f5f23bdba5d2a7ec7c485a3c7ddbbcb417e555c31feff2a3fa9c7d7fa0d22d4380f32488559ab3b170d891641dbc2161b22
languageName: node
linkType: hard
"@mui/material@npm:^5.15.14":
version: 5.15.14
resolution: "@mui/material@npm:5.15.14"
"@mui/material@npm:^5.15.15":
version: 5.15.15
resolution: "@mui/material@npm:5.15.15"
dependencies:
"@babel/runtime": "npm:^7.23.9"
"@mui/base": "npm:5.0.0-beta.40"
"@mui/core-downloads-tracker": "npm:^5.15.14"
"@mui/system": "npm:^5.15.14"
"@mui/core-downloads-tracker": "npm:^5.15.15"
"@mui/system": "npm:^5.15.15"
"@mui/types": "npm:^7.2.14"
"@mui/utils": "npm:^5.15.14"
"@types/react-transition-group": "npm:^4.4.10"
@@ -889,7 +944,7 @@ __metadata:
optional: true
"@types/react":
optional: true
checksum: 10/a2c3355b39b86472bf2debb84d6c032b1ea4ba691fbda0f25803f2702f9106130bb85a7d2757545ce97540fe185f07cf24574d5786a29df26baa298ff7db063b
checksum: 10/e2803d078243ee5489bf693f7e9d421061dfda79b6ce74762f3a81e3c519cf69c18af179e4267fc9d0ce799898e6b3d7eac029e7dcfbea12dab5e867d641984b
languageName: node
linkType: hard
@@ -931,9 +986,9 @@ __metadata:
languageName: node
linkType: hard
"@mui/system@npm:^5.15.14":
version: 5.15.14
resolution: "@mui/system@npm:5.15.14"
"@mui/system@npm:^5.15.15":
version: 5.15.15
resolution: "@mui/system@npm:5.15.15"
dependencies:
"@babel/runtime": "npm:^7.23.9"
"@mui/private-theming": "npm:^5.15.14"
@@ -955,7 +1010,7 @@ __metadata:
optional: true
"@types/react":
optional: true
checksum: 10/64a9eac1bebefad3042cce28a75d0af2828aa71acd4c32fb0267f5e68bc75b16a093b6fb30709db83ec32130f14f1d67c1c27457ef62733e54a9d04f9b027cee
checksum: 10/90a84ad0bc1b401b6e53b13fe9cfe8a34668e84885d391abf5ab80b3cd0f37370be25cb40af253cdd468746386282fed24964315933fcb28d2d6e62de0db7bf1
languageName: node
linkType: hard
@@ -1364,7 +1419,7 @@ __metadata:
languageName: node
linkType: hard
"@types/json-schema@npm:^7.0.12":
"@types/json-schema@npm:^7.0.15":
version: 7.0.15
resolution: "@types/json-schema@npm:7.0.15"
checksum: 10/1a3c3e06236e4c4aab89499c428d585527ce50c24fe8259e8b3926d3df4cfbbbcf306cfc73ddfb66cbafc973116efd15967020b0f738f63e09e64c7d260519e7
@@ -1419,12 +1474,12 @@ __metadata:
languageName: node
linkType: hard
"@types/node@npm:^20.12.2":
version: 20.12.2
resolution: "@types/node@npm:20.12.2"
"@types/node@npm:^20.12.7":
version: 20.12.7
resolution: "@types/node@npm:20.12.7"
dependencies:
undici-types: "npm:~5.26.4"
checksum: 10/f1f0ebfe475aefa183763b856e0023b81b76554196e8676a45b9fcfd1012cdd20d32adefb3c0330001c0011e074676603c34c24821a4924228250ea13a75da43
checksum: 10/b4a28a3b593a9bdca5650880b6a9acef46911d58cf7cfa57268f048e9a7157a7c3196421b96cea576850ddb732e3b54bc982c8eb5e1e5ef0635d4424c2fce801
languageName: node
linkType: hard
@@ -1442,12 +1497,12 @@ __metadata:
languageName: node
linkType: hard
"@types/react-dom@npm:^18.2.23":
version: 18.2.23
resolution: "@types/react-dom@npm:18.2.23"
"@types/react-dom@npm:^18.2.25":
version: 18.2.25
resolution: "@types/react-dom@npm:18.2.25"
dependencies:
"@types/react": "npm:*"
checksum: 10/8311c67767b0aafb5cd94176a90f801f0f5f6930731d57caaa04bb0d87fdef6bc6f723a116d9777d2082ec022682acaad7a62d04dc27e330e818cf34f2ef2703
checksum: 10/0e45856a2fdbf09e74632b132b3af773c6b18fc2ab0bd04595c9f2bcc0bb04d5e732ac8156d145b712dedab7484a8fe9dce5cf720a5437b5d26099c7060c7ba4
languageName: node
linkType: hard
@@ -1492,13 +1547,13 @@ __metadata:
languageName: node
linkType: hard
"@types/react@npm:^18.2.74":
version: 18.2.74
resolution: "@types/react@npm:18.2.74"
"@types/react@npm:^18.2.76":
version: 18.2.76
resolution: "@types/react@npm:18.2.76"
dependencies:
"@types/prop-types": "npm:*"
csstype: "npm:^3.0.2"
checksum: 10/4057aa7d082d434f8e580e5aebd4007e5dbe7f8e9ae5e506a34a629e382070694a0401bf3f0d38fe8d64f4b38622e5794341e634b9739784deae19b037ae43fa
checksum: 10/25e9f548ba72be3e0cc624653e3bf2ec7d3ad1ede522e474884375eb352be977098857fe89611295ae3f5dd2f370305955a396996cde93c10fb9d1fbb93a5a74
languageName: node
linkType: hard
@@ -1518,7 +1573,7 @@ __metadata:
languageName: node
linkType: hard
"@types/semver@npm:^7.5.0":
"@types/semver@npm:^7.5.8":
version: 7.5.8
resolution: "@types/semver@npm:7.5.8"
checksum: 10/3496808818ddb36deabfe4974fd343a78101fa242c4690044ccdc3b95dcf8785b494f5d628f2f47f38a702f8db9c53c67f47d7818f2be1b79f2efb09692e1178
@@ -1534,126 +1589,126 @@ __metadata:
languageName: node
linkType: hard
"@typescript-eslint/eslint-plugin@npm:^7.5.0":
version: 7.5.0
resolution: "@typescript-eslint/eslint-plugin@npm:7.5.0"
"@typescript-eslint/eslint-plugin@npm:^7.6.0":
version: 7.6.0
resolution: "@typescript-eslint/eslint-plugin@npm:7.6.0"
dependencies:
"@eslint-community/regexpp": "npm:^4.5.1"
"@typescript-eslint/scope-manager": "npm:7.5.0"
"@typescript-eslint/type-utils": "npm:7.5.0"
"@typescript-eslint/utils": "npm:7.5.0"
"@typescript-eslint/visitor-keys": "npm:7.5.0"
"@eslint-community/regexpp": "npm:^4.10.0"
"@typescript-eslint/scope-manager": "npm:7.6.0"
"@typescript-eslint/type-utils": "npm:7.6.0"
"@typescript-eslint/utils": "npm:7.6.0"
"@typescript-eslint/visitor-keys": "npm:7.6.0"
debug: "npm:^4.3.4"
graphemer: "npm:^1.4.0"
ignore: "npm:^5.2.4"
ignore: "npm:^5.3.1"
natural-compare: "npm:^1.4.0"
semver: "npm:^7.5.4"
ts-api-utils: "npm:^1.0.1"
semver: "npm:^7.6.0"
ts-api-utils: "npm:^1.3.0"
peerDependencies:
"@typescript-eslint/parser": ^7.0.0
eslint: ^8.56.0
peerDependenciesMeta:
typescript:
optional: true
checksum: 10/5469900a0c2f485dcae10fc8509e2e1d981538d4c90a13330672fbd10cb7b9bb6d55445d6edea876e2c1719f1f0e25f6af0eb2d413e0c458a8930a371481b9e6
checksum: 10/6977c5fb5397ac6c9fda8786b149130321ffba45a71b813ca8a800fe711ac626bcbe05d5ace2ef6245eb8f0c4b6feb2b505a0e0e398fa37ce088731e78478b20
languageName: node
linkType: hard
"@typescript-eslint/parser@npm:^7.5.0":
version: 7.5.0
resolution: "@typescript-eslint/parser@npm:7.5.0"
"@typescript-eslint/parser@npm:^7.6.0":
version: 7.6.0
resolution: "@typescript-eslint/parser@npm:7.6.0"
dependencies:
"@typescript-eslint/scope-manager": "npm:7.5.0"
"@typescript-eslint/types": "npm:7.5.0"
"@typescript-eslint/typescript-estree": "npm:7.5.0"
"@typescript-eslint/visitor-keys": "npm:7.5.0"
"@typescript-eslint/scope-manager": "npm:7.6.0"
"@typescript-eslint/types": "npm:7.6.0"
"@typescript-eslint/typescript-estree": "npm:7.6.0"
"@typescript-eslint/visitor-keys": "npm:7.6.0"
debug: "npm:^4.3.4"
peerDependencies:
eslint: ^8.56.0
peerDependenciesMeta:
typescript:
optional: true
checksum: 10/a5414fb2fbd78bf7337125f4a3040318bdffa996a94e27b4f791d51535d5d9286c3e0ae43652b251c48549bbfece0e3a33553b30ed986af6b4f715d76361d6bb
checksum: 10/245b975280691c6c7bd3fe3e9d57943220e0400df62738274b98dffcbd3011b7191fd54c950cb4d0b6328699f3b1a45cea5e46cc5c86528e7f14e533277616c8
languageName: node
linkType: hard
"@typescript-eslint/scope-manager@npm:7.5.0":
version: 7.5.0
resolution: "@typescript-eslint/scope-manager@npm:7.5.0"
"@typescript-eslint/scope-manager@npm:7.6.0":
version: 7.6.0
resolution: "@typescript-eslint/scope-manager@npm:7.6.0"
dependencies:
"@typescript-eslint/types": "npm:7.5.0"
"@typescript-eslint/visitor-keys": "npm:7.5.0"
checksum: 10/9446c07290a7f7f539a0bdaaf2fb97ae57095a01cd0baad9ecac532da88e7d0d207e5180131c0608542aee2fd1270caf700a2788fa460ffc6e65e966baf34135
"@typescript-eslint/types": "npm:7.6.0"
"@typescript-eslint/visitor-keys": "npm:7.6.0"
checksum: 10/1daa0b84f751e740df39abf7303e63dcff26883242a616712d338edb11d24a05a03156d8f5d6b2c42ef01a28c540dbfc5c83853e159f341189870320e4c4acef
languageName: node
linkType: hard
"@typescript-eslint/type-utils@npm:7.5.0":
version: 7.5.0
resolution: "@typescript-eslint/type-utils@npm:7.5.0"
"@typescript-eslint/type-utils@npm:7.6.0":
version: 7.6.0
resolution: "@typescript-eslint/type-utils@npm:7.6.0"
dependencies:
"@typescript-eslint/typescript-estree": "npm:7.5.0"
"@typescript-eslint/utils": "npm:7.5.0"
"@typescript-eslint/typescript-estree": "npm:7.6.0"
"@typescript-eslint/utils": "npm:7.6.0"
debug: "npm:^4.3.4"
ts-api-utils: "npm:^1.0.1"
ts-api-utils: "npm:^1.3.0"
peerDependencies:
eslint: ^8.56.0
peerDependenciesMeta:
typescript:
optional: true
checksum: 10/257730553760fa943538db9648a11f4253efb722ab3394cd325bd775ee0c9d93af84c62540dee9377d4a669eb1cd801faed5e1bcb673d1606c9225eee82b420a
checksum: 10/1011e1d3ff15f0167f653652865c5b850a1acb21627abff30b0cf1e15865dd490bfb7e9334fa2f4123477fc1eea1ebf4a5c3c8c5cc1972e3b195a39bd8c03aa8
languageName: node
linkType: hard
"@typescript-eslint/types@npm:7.5.0":
version: 7.5.0
resolution: "@typescript-eslint/types@npm:7.5.0"
checksum: 10/12eac46d0dfbbeb1db7d0658b841d554d38365420f42b699dea531e0c475b77d6fd838ac4046b7672e53d9bb76a021eaf6198cf3210fe1ecf1056ea44b6699a9
"@typescript-eslint/types@npm:7.6.0":
version: 7.6.0
resolution: "@typescript-eslint/types@npm:7.6.0"
checksum: 10/830c1b12d8a9242285516e9b7e46bf434b52ad835da4fc5cdac19e79f02bf637c9458923d72cc0babe20d474ddcafcdd4dcd8991c2280d00084a014de3d32da0
languageName: node
linkType: hard
"@typescript-eslint/typescript-estree@npm:7.5.0":
version: 7.5.0
resolution: "@typescript-eslint/typescript-estree@npm:7.5.0"
"@typescript-eslint/typescript-estree@npm:7.6.0":
version: 7.6.0
resolution: "@typescript-eslint/typescript-estree@npm:7.6.0"
dependencies:
"@typescript-eslint/types": "npm:7.5.0"
"@typescript-eslint/visitor-keys": "npm:7.5.0"
"@typescript-eslint/types": "npm:7.6.0"
"@typescript-eslint/visitor-keys": "npm:7.6.0"
debug: "npm:^4.3.4"
globby: "npm:^11.1.0"
is-glob: "npm:^4.0.3"
minimatch: "npm:9.0.3"
semver: "npm:^7.5.4"
ts-api-utils: "npm:^1.0.1"
minimatch: "npm:^9.0.4"
semver: "npm:^7.6.0"
ts-api-utils: "npm:^1.3.0"
peerDependenciesMeta:
typescript:
optional: true
checksum: 10/7487293a9ab9459b133322e695435b4540ffcad89f2bea917c3389676d68283297a663c77d6bda298144d3581361733ae4af632213fa7ef48be67e9aa792b4cc
checksum: 10/a10ae981669180d7c09acdd01e1c3b3dcb544edb8fa44d0c82586c2915d3001e6e15c792ef6b0b75774d6ff705613ec213f2316a7d9477a122e68c5913545a2b
languageName: node
linkType: hard
"@typescript-eslint/utils@npm:7.5.0":
version: 7.5.0
resolution: "@typescript-eslint/utils@npm:7.5.0"
"@typescript-eslint/utils@npm:7.6.0":
version: 7.6.0
resolution: "@typescript-eslint/utils@npm:7.6.0"
dependencies:
"@eslint-community/eslint-utils": "npm:^4.4.0"
"@types/json-schema": "npm:^7.0.12"
"@types/semver": "npm:^7.5.0"
"@typescript-eslint/scope-manager": "npm:7.5.0"
"@typescript-eslint/types": "npm:7.5.0"
"@typescript-eslint/typescript-estree": "npm:7.5.0"
semver: "npm:^7.5.4"
"@types/json-schema": "npm:^7.0.15"
"@types/semver": "npm:^7.5.8"
"@typescript-eslint/scope-manager": "npm:7.6.0"
"@typescript-eslint/types": "npm:7.6.0"
"@typescript-eslint/typescript-estree": "npm:7.6.0"
semver: "npm:^7.6.0"
peerDependencies:
eslint: ^8.56.0
checksum: 10/a0b2f206a1c35dd77b292d1cd385443f42d00ccf8a5151811fe6bdd6b5f3a450372bf99b8757c307988d14d99587424c59ed59e78cf56c17b43c9c3fd8932871
checksum: 10/45bcc1b00ec281cfc997aeff4bca3b3e169f49c656ddfcfad909b18ecdcd8b0d27776df1c452d47d9291cd1346023e0a2d7c8aa67bf3ad917f530033f6b193aa
languageName: node
linkType: hard
"@typescript-eslint/visitor-keys@npm:7.5.0":
version: 7.5.0
resolution: "@typescript-eslint/visitor-keys@npm:7.5.0"
"@typescript-eslint/visitor-keys@npm:7.6.0":
version: 7.6.0
resolution: "@typescript-eslint/visitor-keys@npm:7.6.0"
dependencies:
"@typescript-eslint/types": "npm:7.5.0"
eslint-visitor-keys: "npm:^3.4.1"
checksum: 10/ba83113110b13bc65120ea3d1e21e1dcea6010b0a1a3d07da2fd274bb0feb552a92276b6052e659d2fe40178938b17368ede64752c4937f41685c53bdf9d2634
"@typescript-eslint/types": "npm:7.6.0"
eslint-visitor-keys: "npm:^3.4.3"
checksum: 10/2703629f1359f08e7a20706e225f2d83bf12292c282d2effa431eae441b12d4af1fe8c692535f6ef32d5b6d0c15ad61c4c102e4dd157c8fe30eefb94222ba239
languageName: node
linkType: hard
@@ -1669,26 +1724,26 @@ __metadata:
resolution: "EMS-ESP@workspace:."
dependencies:
"@alova/adapter-xhr": "npm:^1.0.3"
"@babel/core": "npm:^7.24.3"
"@babel/core": "npm:^7.24.4"
"@emotion/react": "npm:^11.11.4"
"@emotion/styled": "npm:^11.11.5"
"@mui/icons-material": "npm:^5.15.14"
"@mui/material": "npm:^5.15.14"
"@mui/icons-material": "npm:^5.15.15"
"@mui/material": "npm:^5.15.15"
"@preact/compat": "npm:^17.1.2"
"@preact/preset-vite": "npm:^2.8.2"
"@table-library/react-table-library": "npm:4.1.7"
"@types/imagemin": "npm:^8.0.5"
"@types/lodash-es": "npm:^4.17.12"
"@types/node": "npm:^20.12.2"
"@types/react": "npm:^18.2.74"
"@types/react-dom": "npm:^18.2.23"
"@types/node": "npm:^20.12.7"
"@types/react": "npm:^18.2.76"
"@types/react-dom": "npm:^18.2.25"
"@types/react-router-dom": "npm:^5.3.3"
"@typescript-eslint/eslint-plugin": "npm:^7.5.0"
"@typescript-eslint/parser": "npm:^7.5.0"
alova: "npm:^2.18.2"
"@typescript-eslint/eslint-plugin": "npm:^7.6.0"
"@typescript-eslint/parser": "npm:^7.6.0"
alova: "npm:^2.19.0"
async-validator: "npm:^4.2.5"
concurrently: "npm:^8.2.2"
eslint: "npm:^8.57.0"
eslint: "npm:8.57.0"
eslint-config-prettier: "npm:^9.1.0"
eslint-import-resolver-typescript: "npm:^3.6.1"
eslint-plugin-autofix: "npm:^1.1.0"
@@ -1700,7 +1755,7 @@ __metadata:
jwt-decode: "npm:^4.0.0"
lodash-es: "npm:^4.17.21"
mime-types: "npm:^2.1.35"
preact: "npm:^10.20.1"
preact: "npm:^10.20.2"
prettier: "npm:^3.2.5"
react: "npm:latest"
react-dom: "npm:latest"
@@ -1709,10 +1764,10 @@ __metadata:
react-router-dom: "npm:^6.22.3"
react-toastify: "npm:^10.0.5"
rollup-plugin-visualizer: "npm:^5.12.0"
terser: "npm:^5.30.2"
terser: "npm:^5.30.3"
typesafe-i18n: "npm:^5.26.2"
typescript: "npm:^5.4.3"
vite: "npm:^5.2.7"
typescript: "npm:^5.4.5"
vite: "npm:^5.2.8"
vite-plugin-imagemin: "npm:^0.6.1"
vite-tsconfig-paths: "npm:^4.3.2"
languageName: unknown
@@ -1774,10 +1829,10 @@ __metadata:
languageName: node
linkType: hard
"alova@npm:^2.18.2":
version: 2.18.2
resolution: "alova@npm:2.18.2"
checksum: 10/715d97c5b80c2b3541b7b5dd203bb7496d7308a49682df31ed007c12a7d716ee910f3da852accc2398c2283db3808748678074cb87324b5d77bb991018431bf3
"alova@npm:^2.19.0":
version: 2.19.0
resolution: "alova@npm:2.19.0"
checksum: 10/0afdc54ada9b8540f9f4b0f71f3c6147da618865472c10a9bc6c59bc436489dc0d79d1b51c231f6361b7998f0ae594c24c208973b552a9fac3c272581e313a54
languageName: node
linkType: hard
@@ -3683,7 +3738,7 @@ __metadata:
languageName: node
linkType: hard
"eslint@npm:^8.57.0":
"eslint@npm:8.57.0":
version: 8.57.0
resolution: "eslint@npm:8.57.0"
dependencies:
@@ -4734,7 +4789,7 @@ __metadata:
languageName: node
linkType: hard
"ignore@npm:^5.1.1, ignore@npm:^5.2.0, ignore@npm:^5.2.4":
"ignore@npm:^5.1.1, ignore@npm:^5.2.0, ignore@npm:^5.3.1":
version: 5.3.1
resolution: "ignore@npm:5.3.1"
checksum: 10/0a884c2fbc8c316f0b9f92beaf84464253b73230a4d4d286697be45fca081199191ca33e1c2e82d9e5f851f5e9a48a78e25a35c951e7eb41e59f150db3530065
@@ -5829,7 +5884,16 @@ __metadata:
languageName: node
linkType: hard
"minimatch@npm:9.0.3, minimatch@npm:^9.0.1":
"minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2":
version: 3.1.2
resolution: "minimatch@npm:3.1.2"
dependencies:
brace-expansion: "npm:^1.1.7"
checksum: 10/e0b25b04cd4ec6732830344e5739b13f8690f8a012d73445a4a19fbc623f5dd481ef7a5827fde25954cd6026fede7574cc54dc4643c99d6c6b653d6203f94634
languageName: node
linkType: hard
"minimatch@npm:^9.0.1":
version: 9.0.3
resolution: "minimatch@npm:9.0.3"
dependencies:
@@ -5838,12 +5902,12 @@ __metadata:
languageName: node
linkType: hard
"minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2":
version: 3.1.2
resolution: "minimatch@npm:3.1.2"
"minimatch@npm:^9.0.4":
version: 9.0.4
resolution: "minimatch@npm:9.0.4"
dependencies:
brace-expansion: "npm:^1.1.7"
checksum: 10/e0b25b04cd4ec6732830344e5739b13f8690f8a012d73445a4a19fbc623f5dd481ef7a5827fde25954cd6026fede7574cc54dc4643c99d6c6b653d6203f94634
brace-expansion: "npm:^2.0.1"
checksum: 10/4cdc18d112b164084513e890d6323370db14c22249d536ad1854539577a895e690a27513dc346392f61a4a50afbbd8abc88f3f25558bfbbbb862cd56508b20f5
languageName: node
linkType: hard
@@ -6585,10 +6649,10 @@ __metadata:
languageName: node
linkType: hard
"preact@npm:^10.20.1":
version: 10.20.1
resolution: "preact@npm:10.20.1"
checksum: 10/894ac14b3ec6f8ca308b53fb14e12e57678248fd1faa24ae857f5e37d9c11b34833e6dd1ba8210a34de4d6d523462923b1f9c93d35ce433874affd056f2d0998
"preact@npm:^10.20.2":
version: 10.20.2
resolution: "preact@npm:10.20.2"
checksum: 10/55b6128906771e33fb789898698e66eb0bdbc8b3303e1bf6c6e8a7d4191d12e476590a8a32e52513a1ac02b94313c3b20e8712bb9bc60fa377f0924cee2da992
languageName: node
linkType: hard
@@ -7250,7 +7314,7 @@ __metadata:
languageName: node
linkType: hard
"semver@npm:^7.3.5, semver@npm:^7.5.4":
"semver@npm:^7.3.5, semver@npm:^7.6.0":
version: 7.6.0
resolution: "semver@npm:7.6.0"
dependencies:
@@ -7861,9 +7925,9 @@ __metadata:
languageName: node
linkType: hard
"terser@npm:^5.30.2":
version: 5.30.2
resolution: "terser@npm:5.30.2"
"terser@npm:^5.30.3":
version: 5.30.3
resolution: "terser@npm:5.30.3"
dependencies:
"@jridgewell/source-map": "npm:^0.3.3"
acorn: "npm:^8.8.2"
@@ -7871,7 +7935,7 @@ __metadata:
source-map-support: "npm:~0.5.20"
bin:
terser: bin/terser
checksum: 10/df671714eb9160cc61d340ddbe6e54f66060bc893c2d420090e10df7f1a2e459725a56dc2e547e992c021ad4523b81eabc8f5a551c53505def80b7320a72506a
checksum: 10/f4ee378065a327c85472f351ac232fa47ec84d4f15df7ec58c044b41e3c063cf11aaedd90dcfe9c7f2a6ef01d4aab23deb61622301170dc77d0a8b6a6a83cf5e
languageName: node
linkType: hard
@@ -7944,7 +8008,7 @@ __metadata:
languageName: node
linkType: hard
"ts-api-utils@npm:^1.0.1":
"ts-api-utils@npm:^1.3.0":
version: 1.3.0
resolution: "ts-api-utils@npm:1.3.0"
peerDependencies:
@@ -8081,23 +8145,23 @@ __metadata:
languageName: node
linkType: hard
"typescript@npm:^5.4.3":
version: 5.4.3
resolution: "typescript@npm:5.4.3"
"typescript@npm:^5.4.5":
version: 5.4.5
resolution: "typescript@npm:5.4.5"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
checksum: 10/de4c69f49a7ad4b1ea66a6dcc8b055ac34eb56af059a069d8988dd811c5e649be07e042e5bf573e8d0ac3ec2f30e6c999aa651cd09f6e9cbc6113749e8b6be20
checksum: 10/d04a9e27e6d83861f2126665aa8d84847e8ebabcea9125b9ebc30370b98cb38b5dff2508d74e2326a744938191a83a69aa9fddab41f193ffa43eabfdf3f190a5
languageName: node
linkType: hard
"typescript@patch:typescript@npm%3A^5.4.3#optional!builtin<compat/typescript>":
version: 5.4.3
resolution: "typescript@patch:typescript@npm%3A5.4.3#optional!builtin<compat/typescript>::version=5.4.3&hash=5adc0c"
"typescript@patch:typescript@npm%3A^5.4.5#optional!builtin<compat/typescript>":
version: 5.4.5
resolution: "typescript@patch:typescript@npm%3A5.4.5#optional!builtin<compat/typescript>::version=5.4.5&hash=5adc0c"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
checksum: 10/5aedd97595582b08aadb8a70e8e3ddebaf5a9c1e5ad4d6503c2fcfc15329b5cf8d01145b09913e9555683ac16c5123a96be32b6d72614098ebd42df520eed9b1
checksum: 10/760f7d92fb383dbf7dee2443bf902f4365db2117f96f875cf809167f6103d55064de973db9f78fe8f31ec08fff52b2c969aee0d310939c0a3798ec75d0bca2e1
languageName: node
linkType: hard
@@ -8278,9 +8342,9 @@ __metadata:
languageName: node
linkType: hard
"vite@npm:^5.2.7":
version: 5.2.7
resolution: "vite@npm:5.2.7"
"vite@npm:^5.2.8":
version: 5.2.8
resolution: "vite@npm:5.2.8"
dependencies:
esbuild: "npm:^0.20.1"
fsevents: "npm:~2.3.3"
@@ -8314,7 +8378,7 @@ __metadata:
optional: true
bin:
vite: bin/vite.js
checksum: 10/a00173446c8392069a70a92be78b060f7e5895f28c229eb25198953daa55c16ffbddcd4e8f015f220b2b1113e12d30e7a892221de34be336b222a12cddbb78a4
checksum: 10/caa40343c2c4e6d8e257fccb4c3029f62909c319a86063ce727ed550925c0a834460b0d1ca20c4d6c915f35302aa1052f6ec5193099a47ce21d74b9b817e69e1
languageName: node
linkType: hard

View File

@@ -1,10 +0,0 @@
root = true
[*]
end_of_line = lf
insert_final_newline = true
[*.{js,json,yml}]
charset = utf-8
indent_style = space
indent_size = 2

View File

@@ -1,4 +0,0 @@
/.yarn/** linguist-vendored
/.yarn/releases/* binary
/.yarn/plugins/**/* binary
/.pnp.* binary linguist-generated

9
mock-api/.gitignore vendored
View File

@@ -1,9 +0,0 @@
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
uploads/*
!uploads/README.md

View File

@@ -64,4 +64,4 @@ rest_server.get(ES_LOG_ENDPOINT, (_req, res) => {
});
// start eventsource server
rest_server.listen(port, () => console.log(`EMS-ESP EventSource server running on http://localhost:${port}/`));
rest_server.listen(port, () => console.log(`EMS-ESP EventSource mock server running on http://localhost:${port}/`));

File diff suppressed because it is too large Load Diff

View File

@@ -6,13 +6,14 @@
"license": "MIT",
"scripts": {
"mock-api": "bun --watch rest_server.ts",
"mock-es": "bun --watch es_server.ts"
"mock-es": "bun --watch es_server.ts",
"mock-upload": "bun --watch upload_server.ts"
},
"dependencies": {
"@msgpack/msgpack": "^2.8.0",
"compression": "^1.7.4",
"express": "^4.19.2",
"itty-router": "^5.0.5",
"itty-router": "^5.0.12",
"multer": "^1.4.5-lts.1"
},
"packageManager": "yarn@4.1.1",

View File

@@ -1,15 +1,11 @@
import { AutoRouter, error, status } from 'itty-router';
import { Encoder } from '@msgpack/msgpack';
// import busboy from 'busboy';
// import multer from 'multer';
// const upload = multer({ dest: '../mock-api/uploads' });
const encoder = new Encoder();
const router = AutoRouter({
port: 3080,
missing: () => error(404, 'Error, not found')
missing: () => error(404, 'Error, endpoint not found')
});
const REST_ENDPOINT_ROOT = '/rest/';
@@ -24,17 +20,6 @@ const headers = {
// GLOBAL VARIABLES
let countWifiScanPoll = 0; // wifi network scan
// FUNCTIONS
// const delay = (ms) => new Promise((res) => setTimeout(res, ms));
// function delay_blocking(milliseconds) {
// var start = new Date().getTime();
// for (var i = 0; i < 1e7; i++) {
// if (new Date().getTime() - start > milliseconds) {
// break;
// }
// }
// }
function updateMask(entity: any, de: any, dd: any) {
const current_mask = parseInt(entity.slice(0, 2), 16);
@@ -364,7 +349,6 @@ const ESPSYSTEM_STATUS_ENDPOINT = REST_ENDPOINT_ROOT + 'ESPSystemStatus';
const SECURITY_SETTINGS_ENDPOINT = REST_ENDPOINT_ROOT + 'securitySettings';
const RESTART_ENDPOINT = REST_ENDPOINT_ROOT + 'restart';
const FACTORY_RESET_ENDPOINT = REST_ENDPOINT_ROOT + 'factoryReset';
const UPLOAD_FILE_ENDPOINT = REST_ENDPOINT_ROOT + 'uploadFile';
// SYSTEM SIGNIN
const VERIFY_AUTHORIZATION_ENDPOINT = REST_ENDPOINT_ROOT + 'verifyAuthorization';
@@ -2394,107 +2378,9 @@ router
.get(VERIFY_AUTHORIZATION_ENDPOINT, () => verify_authentication)
.post(RESTART_ENDPOINT, () => status(200))
.post(FACTORY_RESET_ENDPOINT, () => status(200))
.post(UPLOAD_FILE_ENDPOINT, () => status(404)) // TODO remove upload when fixed
.post(SIGN_IN_ENDPOINT, () => signin)
.get(GENERATE_TOKEN_ENDPOINT, () => generate_token);
// uploads // TODO fix uploading later
// const progress_middleware = async (req: any) => {
// console.log('progress_middleware');
// let progress = 0;
// const file_size = req.headers['content-length'];
// // set event listener
// req.on('data', async (chunk) => {
// progress += chunk.length;
// const percentage = (progress / file_size) * 100;
// console.log(`Progress: ${Math.round(percentage)}%`);
// delay_blocking(200); // slow it down
// });
// // next(); // invoke next middleware which is multer
// };
// const withContent = async (request) => {
// const { headers } = request;
// const type = headers.get('content-type');
// // console.log(Object.getOwnPropertyNames(Object.getPrototypeOf(request)));
// if (type?.includes('form-data')) {
// console.log('withContent: got formdata');
// // request.content = await request.formData();
// // const bb = busboy({ headers: request.headers });
// // console.log('bb created');
// // bb.on('file', (name, file, info) => {
// // const { filename, encoding, mimeType } = info;
// // console.log(`File [${name}]: filename: %j, encoding: %j, mimeType: %j`, filename, encoding, mimeType);
// // request.filename = filename;
// // file
// // .on('data', (data) => {
// // console.log(`File [${name}] got ${data.length} bytes`);
// // })
// // .on('close', () => {
// // console.log(`File [${name}] done`);
// // });
// // });
// // bb.on('field', (name, val, info) => {
// // console.log(`Field [${name}]: value: %j`, val);
// // });
// // bb.on('close', () => {
// // console.log('Done parsing form!');
// // // res.writeHead(303, { Connection: 'close', Location: '/' });
// // // res.end();
// // });
// }
// };
// const makeMiddleware = (req) => {
// console.log('makeMiddleware');
// // const bb = busboy({ headers: req.headers });
// // bb.on('error', (err) => {
// // // Send this error along to the global error handler
// // console.log('Error' + err);
// // return;
// // });
// // bb.on('file', (name, file, info) => {
// // const { filename, encoding, mimeType } = info;
// // console.log(`File [${name}]: filename: %j, encoding: %j, mimeType: %j`, filename, encoding, mimeType);
// // req.filename = filename;
// // file
// // .on('data', (data) => {
// // console.log(`File [${name}] got ${data.length} bytes`);
// // })
// // .on('close', () => {
// // console.log(`File [${name}] done`);
// // });
// // });
// // bb.end(req.rawBody);
// // req.pipe(bb);
// };
// router.post(UPLOAD_FILE_ENDPOINT, withContent, makeMiddleware, progress_middleware, ({ filename }) => {
// console.log('filename: ' + filename);
// // if (req.file) {
// // const filename = req.file.originalname;
// // const ext = filename.substring(filename.lastIndexOf('.') + 1);
// // console.log(req.file);
// // console.log('ext: ' + ext);
// // if (ext === 'bin' || ext === 'json') {
// // return res.sendStatus(200);
// // } else if (ext === 'md5') {
// // return res.json({ md5: 'ef4304fc4d9025a58dcf25d71c882d2c' });
// // }
// // }
// return new Response('OK', { status: 200 });
// });
//
// EMS-ESP Project stuff
//

57
mock-api/upload_server.ts Normal file
View File

@@ -0,0 +1,57 @@
import express from 'express';
import multer from 'multer';
const rest_server = express();
const port = 3082;
const upload = multer({ dest: './uploads' });
const UPLOAD_FILE_ENDPOINT = '/rest/uploadFile';
// delay functions, 2 different types
const delay = (ms) => new Promise((res) => setTimeout(res, ms));
function delay_blocking(milliseconds) {
var start = new Date().getTime();
// for (var i = 0; i < 1e7; i++) {
while (true) {
if (new Date().getTime() - start > milliseconds) {
break;
}
}
}
function progress_middleware(req, res, next) {
let progress = 0;
const file_size = req.headers['content-length'];
console.log('Uploading file. Size ' + file_size + ' bytes');
// set event listener
req.on('data', async (chunk) => {
progress += chunk.length;
const percentage = (progress / file_size) * 100;
console.log(`Progress: ${Math.round(percentage)}%`);
// await delay(1000); // slow it down
delay_blocking(1000); // slow it down
});
next(); // invoke next middleware which is multer
}
rest_server.post(UPLOAD_FILE_ENDPOINT, progress_middleware, upload.single('file'), (req, res) => {
if (req.file) {
const filename = req.file.originalname;
const ext = filename.substring(filename.lastIndexOf('.') + 1);
console.log(req.file);
if (ext === 'bin' || ext === 'json') {
console.log('Received firmware or json file, extension: ' + ext);
return res.sendStatus(200);
} else if (ext === 'md5') {
return res.json({ md5: 'ef4304fc4d9025a58dcf25d71c882d2c' });
}
}
console.log('Invalid file extension');
return res.sendStatus(400);
});
// start server
rest_server.listen(port, () => console.log(`EMS-ESP File Upload mock server running on http://localhost:${port}/`));

View File

@@ -140,7 +140,7 @@ __metadata:
"@types/multer": "npm:^1.4.11"
compression: "npm:^1.7.4"
express: "npm:^4.19.2"
itty-router: "npm:^5.0.5"
itty-router: "npm:^5.0.12"
multer: "npm:^1.4.5-lts.1"
languageName: unknown
linkType: soft
@@ -526,10 +526,10 @@ __metadata:
languageName: node
linkType: hard
"itty-router@npm:^5.0.5":
version: 5.0.5
resolution: "itty-router@npm:5.0.5"
checksum: 10/b10ddeb65568e4ed5eb5a99b5e5e660bae62d53ab88ffdf56a9045d6323a87f561a000f3d8835dcd15451c565fd01083e049122e46d55ffd24fa675f9446971c
"itty-router@npm:^5.0.12":
version: 5.0.12
resolution: "itty-router@npm:5.0.12"
checksum: 10/c103482967564471585c04ca47df7aa0b166b2081f6a746f6b699942c524c924bec598a9a61b73e9c5e31f554b27ec642121370d21f7095f63fe2cdacf365019
languageName: node
linkType: hard

View File

@@ -50,9 +50,11 @@ extra_scripts =
[espressi32_base_tasmota]
; use Tasmota's library which removes some unused libs (like mbedtsl, so no WiFi_secure.h) and increases available heap
; Tasmota Arduino Core 2.0.14 with IPv6 support, based on IDF 4.4.6
platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.01.01/platform-espressif32.zip
; Tasmota Arduino Core 3.0.0-alpha based on IDF v5.1.2
; Tasmota Arduino Core 2.0.14 with IPv6 support, based on IDF 4.4.6
; platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.01.01/platform-espressif32.zip
; Tasmota Arduino Core 2.0.15 with IPv6 support, based on IDF 4.4.7 / core 2.0.15
platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.04.00/platform-espressif32.zip
; Tasmota Arduino Core 3.0.0-alpha based on IDF v5.1.2
; platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.02.10/platform-espressif32.zip
framework = arduino
board_build.filesystem = littlefs

View File

@@ -6,6 +6,7 @@
@host = http://ems-esp.local
@host_dev = http://10.10.10.20
@host_standalone = http://localhost:3080
@host_standalone2 = http://localhost:3082
@token = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIiwiYWRtaW4iOnRydWV9.2bHpWya2C7Q12WjNUBD6_7N3RCD7CMl-EGhyQVzFdDg
@@ -113,4 +114,19 @@ GET {{host_dev}}/api/thermostat/seltemp
GET {{host_standalone}}/api/system/info
###
###
POST {{host_standalone2}}/rest/uploadFile
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="text"
title
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file"; filename="emsesp_settings.json"
Content-Type: application/json
< ./standalone_file_export/emsesp_settings.json
------WebKitFormBoundary7MA4YWxkTrZu0gW--