diff --git a/interface/package.json b/interface/package.json index 0a881fa5f..0426a9136 100644 --- a/interface/package.json +++ b/interface/package.json @@ -42,11 +42,11 @@ "@eslint/js": "^10.0.1", "@preact/preset-vite": "^2.10.6", "@trivago/prettier-plugin-sort-imports": "^6.0.2", - "@types/node": "^26.6.3", + "@types/node": "^26.6.4", "@types/react": "^19.3.0", "@types/react-dom": "^19.3.0", "concurrently": "^10.0.5", - "eslint": "^10.11.0", + "eslint": "^10.12.0", "eslint-config-prettier": "^10.1.8", "etag": "^1.8.1", "mime-types": "^3.0.2", @@ -55,7 +55,7 @@ "terser": "^5.51.2", "typescript": "^6.0.3", "typescript-eslint": "^8.71.0", - "vite": "^8.3.1", + "vite": "^8.3.2", "vite-plugin-imagemin": "^0.6.1" }, "packageManager": "pnpm@12.8.1" diff --git a/interface/pnpm-lock.yaml b/interface/pnpm-lock.yaml index 140c0bf61..faaee8b4f 100644 --- a/interface/pnpm-lock.yaml +++ b/interface/pnpm-lock.yaml @@ -211,16 +211,16 @@ importers: devDependencies: '@eslint/js': specifier: ^10.0.1 - version: 10.0.1(eslint@10.11.0(supports-color@10.2.2)) + version: 10.0.1(eslint@10.12.0(supports-color@10.2.2)) '@preact/preset-vite': specifier: ^2.10.6 - version: 2.10.6(@babel/core@7.29.7(supports-color@10.2.2))(preact@11.0.0)(supports-color@10.2.2)(vite@8.3.1(@types/node@26.6.3)(terser@5.51.2)) + version: 2.10.6(@babel/core@7.29.7(supports-color@10.2.2))(preact@11.0.0)(supports-color@10.2.2)(vite@8.3.2(@types/node@26.6.4)(terser@5.51.2)) '@trivago/prettier-plugin-sort-imports': specifier: ^6.0.2 version: 6.0.2(prettier@3.9.9)(supports-color@10.2.2) '@types/node': - specifier: ^26.6.3 - version: 26.6.3 + specifier: ^26.6.4 + version: 26.6.4 '@types/react': specifier: ^19.3.0 version: 19.3.0 @@ -231,11 +231,11 @@ importers: specifier: ^10.0.5 version: 10.0.5 eslint: - specifier: ^10.11.0 - version: 10.11.0(supports-color@10.2.2) + specifier: ^10.12.0 + version: 10.12.0(supports-color@10.2.2) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.11.0(supports-color@10.2.2)) + version: 10.1.8(eslint@10.12.0(supports-color@10.2.2)) etag: specifier: ^1.8.1 version: 1.8.1 @@ -256,13 +256,13 @@ importers: version: 6.0.3 typescript-eslint: specifier: ^8.71.0 - version: 8.71.0(eslint@10.11.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + version: 8.71.0(eslint@10.12.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) vite: - specifier: ^8.3.1 - version: 8.3.1(@types/node@26.6.3)(terser@5.51.2) + specifier: ^8.3.2 + version: 8.3.2(@types/node@26.6.4)(terser@5.51.2) vite-plugin-imagemin: specifier: ^0.6.1 - version: 0.6.1(supports-color@10.2.2)(vite@8.3.1(@types/node@26.6.3)(terser@5.51.2)) + version: 0.6.1(supports-color@10.2.2)(vite@8.3.2(@types/node@26.6.4)(terser@5.51.2)) packages: @@ -842,8 +842,8 @@ packages: '@types/minimatch@5.1.2': resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - '@types/node@26.6.3': - resolution: {integrity: sha512-dsqMQQoeTLqu9wynDD00q573mNzso3IdQOAfHRJqLCcmCFPoGo9A1bDpUcv/9tnKpErQWv9uKeGfl37EIS02Yg==} + '@types/node@26.6.4': + resolution: {integrity: sha512-ldVPDCzj7fsaGZrLB0NuHuTvJcsNasysBAqMolr/cgxrLd1xbqxIr3XJiPnHHJUCxj5sNF1vnRj9aWnrVh5Jcg==} '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} @@ -1004,8 +1004,8 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.11.26: - resolution: {integrity: sha512-GLQdD3y6UF8iVuMJl5fHgE4jdn/ua7n+toKfLgNlg3BqQtOZjpy68T8Tup8/wGWZCDlm7KMg7tPb4MPn7oN0TQ==} + baseline-browser-mapping@2.11.27: + resolution: {integrity: sha512-ElY12DaROGuan+lMmZ8Cvo/ZUbXPe7Enc/9VU/b1T3Kp4dwytRcNdR8DoSJN5SNJT/CuvcCA0DHDVmMOCePdRQ==} engines: {node: '>=6.0.0'} hasBin: true @@ -1338,8 +1338,8 @@ packages: duplexer3@0.1.5: resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} - electron-to-chromium@1.5.443: - resolution: {integrity: sha512-TDJG36L9A3CWWwZ97HKaE+Iz1sW80pNp6sAU0owzCIV3Zc9eVyRqZK8Vz6NKuMIU8WjP0pIkoqCa0VRf/yFD0Q==} + electron-to-chromium@1.5.444: + resolution: {integrity: sha512-5ss/uJfoDYDHT0lfJzT6FbcskIzROIOPf0BbbFkGcvDzoJU7i//9GDrwwIHQVmIsrAGiF3ihpADBRIsrEFt1rQ==} emoji-regex@10.6.0: resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} @@ -1524,8 +1524,8 @@ packages: resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint@10.11.0: - resolution: {integrity: sha512-P7a6UEEqb9G95MYAtqkmsTbVXIYyzIfl6NGOIJk162PaahFxFyeGcrlXYFSiagECg4sEm8IseJdZBKR3rx6MsQ==} + eslint@10.12.0: + resolution: {integrity: sha512-npHjrHb2o4ehH3mE+YuxABR+0gyb0aVWCIolgJDArwCiHEIsonBm3ZKjel5b0U5+a+MbEvIyRCGCzD3eKKK2NA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: @@ -1869,8 +1869,8 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - ignore@7.0.11: - resolution: {integrity: sha512-YChdK5txDjwGUvgR7oCJcLGkwi3LDh8Zx8tS7ndYciLEg/oOCL26VUBSUEtgS7EjiybcBqFxh5j0rAdDX7/bbg==} + ignore@7.0.12: + resolution: {integrity: sha512-/8UvqAPU9DGTI9k4mxtf49U37Isfwr8Uts96+SBHIkFxPJnHS0Ew4f00sM4Scd8V8EjM0jUNtVDdv1kPdt35lg==} engines: {node: '>= 4'} imagemin-gifsicle@7.0.0: @@ -3057,8 +3057,8 @@ packages: peerDependencies: vite: 5.x || 6.x || 7.x || 8.x - vite@8.3.1: - resolution: {integrity: sha512-/bvH9E9tmCXRGp2uXY3WbOldqpTwFkbha/8ANaEQ6VkxhH60KyqLwgZq6lG2y+4uT55x9+9eUHMpQ7uGnOCKjA==} + vite@8.3.2: + resolution: {integrity: sha512-SQr1x6W5vVSbROg7vsyXIaxK9b0G7zsT68acdWWRmnBUsgDieLCRG+Rep9WdZgcposvv/GSnr4GUUBqB3vXq6w==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -3406,9 +3406,9 @@ snapshots: '@esbuild/linux-loong64@0.14.54': optional: true - '@eslint-community/eslint-utils@4.10.1(eslint@10.11.0(supports-color@10.2.2))': + '@eslint-community/eslint-utils@4.10.1(eslint@10.12.0(supports-color@10.2.2))': dependencies: - eslint: 10.11.0(supports-color@10.2.2) + eslint: 10.12.0(supports-color@10.2.2) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} @@ -3429,9 +3429,9 @@ snapshots: dependencies: '@types/json-schema': 7.0.15 - '@eslint/js@10.0.1(eslint@10.11.0(supports-color@10.2.2))': + '@eslint/js@10.0.1(eslint@10.12.0(supports-color@10.2.2))': optionalDependencies: - eslint: 10.11.0(supports-color@10.2.2) + eslint: 10.12.0(supports-color@10.2.2) '@eslint/object-schema@3.0.5': {} @@ -3591,19 +3591,19 @@ snapshots: '@popperjs/core@2.11.8': {} - '@preact/preset-vite@2.10.6(@babel/core@7.29.7(supports-color@10.2.2))(preact@11.0.0)(supports-color@10.2.2)(vite@8.3.1(@types/node@26.6.3)(terser@5.51.2))': + '@preact/preset-vite@2.10.6(@babel/core@7.29.7(supports-color@10.2.2))(preact@11.0.0)(supports-color@10.2.2)(vite@8.3.2(@types/node@26.6.4)(terser@5.51.2))': dependencies: '@babel/core': 7.29.7(supports-color@10.2.2) '@babel/plugin-transform-react-jsx': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2) '@babel/plugin-transform-react-jsx-development': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2) - '@prefresh/vite': 2.4.12(preact@11.0.0)(supports-color@10.2.2)(vite@8.3.1(@types/node@26.6.3)(terser@5.51.2)) + '@prefresh/vite': 2.4.12(preact@11.0.0)(supports-color@10.2.2)(vite@8.3.2(@types/node@26.6.4)(terser@5.51.2)) '@rollup/pluginutils': 5.4.0 babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.29.7(supports-color@10.2.2)) debug: 4.4.3(supports-color@10.2.2) magic-string: 0.30.21 picocolors: 1.1.1 - vite: 8.3.1(@types/node@26.6.3)(terser@5.51.2) - vite-prerender-plugin: 0.5.14(vite@8.3.1(@types/node@26.6.3)(terser@5.51.2)) + vite: 8.3.2(@types/node@26.6.4)(terser@5.51.2) + vite-prerender-plugin: 0.5.14(vite@8.3.2(@types/node@26.6.4)(terser@5.51.2)) zimmerframe: 1.1.5 transitivePeerDependencies: - preact @@ -3620,7 +3620,7 @@ snapshots: '@prefresh/utils@1.2.1': {} - '@prefresh/vite@2.4.12(preact@11.0.0)(supports-color@10.2.2)(vite@8.3.1(@types/node@26.6.3)(terser@5.51.2))': + '@prefresh/vite@2.4.12(preact@11.0.0)(supports-color@10.2.2)(vite@8.3.2(@types/node@26.6.4)(terser@5.51.2))': dependencies: '@babel/core': 7.29.7(supports-color@10.2.2) '@prefresh/babel-plugin': 0.5.4(@babel/core@7.29.7(supports-color@10.2.2)) @@ -3628,7 +3628,7 @@ snapshots: '@prefresh/utils': 1.2.1 '@rollup/pluginutils': 4.2.1 preact: 11.0.0 - vite: 8.3.1(@types/node@26.6.3)(terser@5.51.2) + vite: 8.3.2(@types/node@26.6.4)(terser@5.51.2) transitivePeerDependencies: - supports-color @@ -3724,7 +3724,7 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 26.6.3 + '@types/node': 26.6.4 '@types/imagemin-gifsicle@7.0.4': dependencies: @@ -3753,17 +3753,17 @@ snapshots: '@types/imagemin@7.0.1': dependencies: - '@types/node': 26.6.3 + '@types/node': 26.6.4 '@types/json-schema@7.0.15': {} '@types/keyv@3.1.4': dependencies: - '@types/node': 26.6.3 + '@types/node': 26.6.4 '@types/minimatch@5.1.2': {} - '@types/node@26.6.3': + '@types/node@26.6.4': dependencies: undici-types: 8.9.0 @@ -3785,36 +3785,36 @@ snapshots: '@types/responselike@1.0.3': dependencies: - '@types/node': 26.6.3 + '@types/node': 26.6.4 '@types/svgo@2.6.4': dependencies: - '@types/node': 26.6.3 + '@types/node': 26.6.4 - '@typescript-eslint/eslint-plugin@8.71.0(@typescript-eslint/parser@8.71.0(eslint@10.11.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.11.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': + '@typescript-eslint/eslint-plugin@8.71.0(@typescript-eslint/parser@8.71.0(eslint@10.12.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.12.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.71.0(eslint@10.11.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + '@typescript-eslint/parser': 8.71.0(eslint@10.12.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) '@typescript-eslint/scope-manager': 8.71.0 - '@typescript-eslint/type-utils': 8.71.0(eslint@10.11.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) - '@typescript-eslint/utils': 8.71.0(eslint@10.11.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + '@typescript-eslint/type-utils': 8.71.0(eslint@10.12.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + '@typescript-eslint/utils': 8.71.0(eslint@10.12.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) '@typescript-eslint/visitor-keys': 8.71.0 - eslint: 10.11.0(supports-color@10.2.2) - ignore: 7.0.11 + eslint: 10.12.0(supports-color@10.2.2) + ignore: 7.0.12 natural-compare: 1.4.0 ts-api-utils: 2.5.0(typescript@6.0.3) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.71.0(eslint@10.11.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': + '@typescript-eslint/parser@8.71.0(eslint@10.12.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': dependencies: '@typescript-eslint/scope-manager': 8.71.0 '@typescript-eslint/types': 8.71.0 '@typescript-eslint/typescript-estree': 8.71.0(supports-color@10.2.2)(typescript@6.0.3) '@typescript-eslint/visitor-keys': 8.71.0 debug: 4.4.3(supports-color@10.2.2) - eslint: 10.11.0(supports-color@10.2.2) + eslint: 10.12.0(supports-color@10.2.2) typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -3837,13 +3837,13 @@ snapshots: dependencies: typescript: 6.0.3 - '@typescript-eslint/type-utils@8.71.0(eslint@10.11.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': + '@typescript-eslint/type-utils@8.71.0(eslint@10.12.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': dependencies: '@typescript-eslint/types': 8.71.0 '@typescript-eslint/typescript-estree': 8.71.0(supports-color@10.2.2)(typescript@6.0.3) - '@typescript-eslint/utils': 8.71.0(eslint@10.11.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + '@typescript-eslint/utils': 8.71.0(eslint@10.12.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) debug: 4.4.3(supports-color@10.2.2) - eslint: 10.11.0(supports-color@10.2.2) + eslint: 10.12.0(supports-color@10.2.2) ts-api-utils: 2.5.0(typescript@6.0.3) typescript: 6.0.3 transitivePeerDependencies: @@ -3866,13 +3866,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.71.0(eslint@10.11.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': + '@typescript-eslint/utils@8.71.0(eslint@10.12.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.11.0(supports-color@10.2.2)) + '@eslint-community/eslint-utils': 4.10.1(eslint@10.12.0(supports-color@10.2.2)) '@typescript-eslint/scope-manager': 8.71.0 '@typescript-eslint/types': 8.71.0 '@typescript-eslint/typescript-estree': 8.71.0(supports-color@10.2.2)(typescript@6.0.3) - eslint: 10.11.0(supports-color@10.2.2) + eslint: 10.12.0(supports-color@10.2.2) typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -3942,7 +3942,7 @@ snapshots: base64-js@1.5.1: {} - baseline-browser-mapping@2.11.26: {} + baseline-browser-mapping@2.11.27: {} bin-build@3.0.0: dependencies: @@ -4003,9 +4003,9 @@ snapshots: browserslist@4.29.3: dependencies: - baseline-browser-mapping: 2.11.26 + baseline-browser-mapping: 2.11.27 caniuse-lite: 1.0.30001814 - electron-to-chromium: 1.5.443 + electron-to-chromium: 1.5.444 node-releases: 2.0.57 update-browserslist-db: 1.3.3(browserslist@4.29.3) @@ -4370,7 +4370,7 @@ snapshots: duplexer3@0.1.5: {} - electron-to-chromium@1.5.443: {} + electron-to-chromium@1.5.444: {} emoji-regex@10.6.0: {} @@ -4484,9 +4484,9 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-prettier@10.1.8(eslint@10.11.0(supports-color@10.2.2)): + eslint-config-prettier@10.1.8(eslint@10.12.0(supports-color@10.2.2)): dependencies: - eslint: 10.11.0(supports-color@10.2.2) + eslint: 10.12.0(supports-color@10.2.2) eslint-scope@9.1.2: dependencies: @@ -4499,9 +4499,9 @@ snapshots: eslint-visitor-keys@5.0.1: {} - eslint@10.11.0(supports-color@10.2.2): + eslint@10.12.0(supports-color@10.2.2): dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.11.0(supports-color@10.2.2)) + '@eslint-community/eslint-utils': 4.10.1(eslint@10.12.0(supports-color@10.2.2)) '@eslint-community/regexpp': 4.12.2 '@eslint/config-array': 0.23.5(supports-color@10.2.2) '@eslint/config-helpers': 0.7.0 @@ -4913,7 +4913,7 @@ snapshots: ignore@5.3.2: {} - ignore@7.0.11: {} + ignore@7.0.12: {} imagemin-gifsicle@7.0.0: dependencies: @@ -5931,13 +5931,13 @@ snapshots: dependencies: typescript: 6.0.3 - typescript-eslint@8.71.0(eslint@10.11.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3): + typescript-eslint@8.71.0(eslint@10.12.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.71.0(@typescript-eslint/parser@8.71.0(eslint@10.11.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.11.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) - '@typescript-eslint/parser': 8.71.0(eslint@10.11.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + '@typescript-eslint/eslint-plugin': 8.71.0(@typescript-eslint/parser@8.71.0(eslint@10.12.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.12.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + '@typescript-eslint/parser': 8.71.0(eslint@10.12.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) '@typescript-eslint/typescript-estree': 8.71.0(supports-color@10.2.2)(typescript@6.0.3) - '@typescript-eslint/utils': 8.71.0(eslint@10.11.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) - eslint: 10.11.0(supports-color@10.2.2) + '@typescript-eslint/utils': 8.71.0(eslint@10.12.0(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + eslint: 10.12.0(supports-color@10.2.2) typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -5982,7 +5982,7 @@ snapshots: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - vite-plugin-imagemin@0.6.1(supports-color@10.2.2)(vite@8.3.1(@types/node@26.6.3)(terser@5.51.2)): + vite-plugin-imagemin@0.6.1(supports-color@10.2.2)(vite@8.3.2(@types/node@26.6.4)(terser@5.51.2)): dependencies: '@types/imagemin': 7.0.1 '@types/imagemin-gifsicle': 7.0.4 @@ -6007,11 +6007,11 @@ snapshots: imagemin-webp: 6.1.0 jpegtran-bin: 6.0.1 pathe: 0.2.0 - vite: 8.3.1(@types/node@26.6.3)(terser@5.51.2) + vite: 8.3.2(@types/node@26.6.4)(terser@5.51.2) transitivePeerDependencies: - supports-color - vite-prerender-plugin@0.5.14(vite@8.3.1(@types/node@26.6.3)(terser@5.51.2)): + vite-prerender-plugin@0.5.14(vite@8.3.2(@types/node@26.6.4)(terser@5.51.2)): dependencies: kolorist: 1.8.0 magic-string: 0.30.21 @@ -6019,9 +6019,9 @@ snapshots: simple-code-frame: 1.3.0 source-map: 0.7.6 stack-trace: 1.0.0 - vite: 8.3.1(@types/node@26.6.3)(terser@5.51.2) + vite: 8.3.2(@types/node@26.6.4)(terser@5.51.2) - vite@8.3.1(@types/node@26.6.3)(terser@5.51.2): + vite@8.3.2(@types/node@26.6.4)(terser@5.51.2): dependencies: lightningcss: 1.33.0 picomatch: 4.0.7 @@ -6029,7 +6029,7 @@ snapshots: rolldown: 1.2.12 tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 26.6.3 + '@types/node': 26.6.4 fsevents: 2.3.3 terser: 5.51.2 diff --git a/lib/uuid-common/src/get_uptime_ms.cpp b/lib/uuid-common/src/get_uptime_ms.cpp index 1e6e268cf..6af3f1e03 100644 --- a/lib/uuid-common/src/get_uptime_ms.cpp +++ b/lib/uuid-common/src/get_uptime_ms.cpp @@ -43,11 +43,11 @@ uint32_t get_uptime() { return (uint32_t)now_millis; } -// both clocks are read live and in ms, whole-second values would make the offset jitter by 1s +// both clocks are read live and subtracted in us, rounding each to ms or s first makes the offset jitter int64_t get_wall_offset_ms() { struct timeval tv; gettimeofday(&tv, nullptr); - return (int64_t)tv.tv_sec * 1000 + tv.tv_usec / 1000 - esp_timer_get_time() / 1000; + return ((int64_t)tv.tv_sec * 1000000 + tv.tv_usec - esp_timer_get_time()) / 1000; } } // namespace uuid diff --git a/platformio.ini b/platformio.ini index 1448e2f51..9fa302349 100644 --- a/platformio.ini +++ b/platformio.ini @@ -51,6 +51,7 @@ build_flags = -D EMSESP_UART_RUNNING_CORE=1 ; default any core ; -D EMSESP_UART_STACKSIZE=2560 ; default ; -D EMSESP_GATEWAY_TX_HOLD ; hold Tx while a K30RF/KM200 gateway is syncing, see issue #3094 + ; -D EMSESP_TX_PRE_DELAY=1000 ; wait this many us before each Tx so we don't overlap the master's break, see issue #3094 unbuild_flags = ${common.core_unbuild_flags} diff --git a/src/uart/emsuart_esp32.cpp b/src/uart/emsuart_esp32.cpp index aac0f73f8..41de2166d 100644 --- a/src/uart/emsuart_esp32.cpp +++ b/src/uart/emsuart_esp32.cpp @@ -156,6 +156,11 @@ uint8_t EMSuart::transmit(const uint8_t * buf, const uint8_t len) { last_tx_src_ = len < 4 ? 0 : buf[0]; // update last tx source +#ifdef EMSESP_TX_PRE_DELAY + // the BRK event fires after one character time of low, while the master break may still be running + delayMicroseconds(EMSESP_TX_PRE_DELAY); +#endif + // TXMODE is hardware controlled mode if (tx_mode_ == EMS_TXMODE_HW) { uart_write_bytes_with_break(EMSUART_NUM, buf, len, 10);