chore: fix eslint configuration for vue.js
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Thu, 1 Aug 2024 22:25:34 +0000 (00:25 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Thu, 1 Aug 2024 22:25:34 +0000 (00:25 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
16 files changed:
eslint.config.js
pnpm-lock.yaml
ui/web/package.json
ui/web/src/components/Container.vue
ui/web/src/components/actions/AddChargingStations.vue
ui/web/src/components/actions/SetSupervisionUrl.vue
ui/web/src/components/actions/StartTransaction.vue
ui/web/src/components/buttons/Button.vue
ui/web/src/components/buttons/ToggleButton.vue
ui/web/src/components/charging-stations/CSConnector.vue
ui/web/src/components/charging-stations/CSData.vue
ui/web/src/components/charging-stations/CSTable.vue
ui/web/src/composables/UIClient.ts
ui/web/src/views/ChargingStationsView.vue
ui/web/src/views/NotFoundView.vue
ui/web/tsconfig.json

index 6b2e2d32e76ca39918a2daf7d92c82bfcaf52236..b7ebdc9c57af830b6a13760ed4f880d13cac9739 100644 (file)
@@ -3,7 +3,8 @@ import js from '@eslint/js'
 import { defineFlatConfig } from 'eslint-define-config'
 import jsdoc from 'eslint-plugin-jsdoc'
 import simpleImportSort from 'eslint-plugin-simple-import-sort'
-// import pluginVue from 'eslint-plugin-vue'
+// eslint-disable-next-line n/no-extraneous-import
+import pluginVue from 'eslint-plugin-vue'
 import neostandard, { plugins } from 'neostandard'
 
 export default defineFlatConfig([
@@ -25,15 +26,25 @@ export default defineFlatConfig([
       ],
     },
   },
-  ...neostandard({
-    ts: true,
-  }),
-  // ...pluginVue.configs['flat/recommended'],
-  ...plugins['typescript-eslint'].config(
-    ...plugins['typescript-eslint'].configs.strictTypeChecked,
-    ...plugins['typescript-eslint'].configs.stylisticTypeChecked
-  ),
+  ...pluginVue.configs['flat/recommended'],
+  {
+    files: ['**/*.vue'],
+    languageOptions: {
+      parserOptions: {
+        parser: '@typescript-eslint/parser',
+      },
+    },
+  },
+  ...plugins['typescript-eslint']
+    .config(
+      ...plugins['typescript-eslint'].configs.strictTypeChecked,
+      ...plugins['typescript-eslint'].configs.stylisticTypeChecked
+    )
+    .map(config => {
+      return { files: ['**/*.ts', '**/*.tsx', '**/*.mts', '**/*.cts', '*/**.vue'], ...config }
+    }),
   {
+    files: ['**/*.ts', '**/*.tsx', '**/*.mts', '**/*.cts'],
     languageOptions: {
       parserOptions: {
         projectService: true,
@@ -50,6 +61,9 @@ export default defineFlatConfig([
       'simple-import-sort/exports': 'error',
     },
   },
+  ...neostandard({
+    ts: true,
+  }),
   {
     files: [
       'src/charging-station/Bootstrap.ts',
@@ -75,6 +89,12 @@ export default defineFlatConfig([
       '@typescript-eslint/no-unsafe-member-access': 'off',
     },
   },
+  {
+    files: ['ui/web/src/components/Container.vue', 'ui/web/src/components/buttons/Button.vue'],
+    rules: {
+      'vue/multi-word-component-names': 'off',
+    },
+  },
   {
     files: ['**/*.js', '**/*.mjs', '**/*.cjs'],
     ...plugins['typescript-eslint'].configs.disableTypeChecked,
index eb82b41c7b4ffb7c92081c2fe292ae173b5b9a1a..4bd57002e73a7354228e0798600c7220374651ea 100644 (file)
@@ -216,17 +216,17 @@ importers:
         specifier: ^7.0.3
         version: 7.0.3
       eslint:
-        specifier: ^8.57.0
-        version: 8.57.0
+        specifier: ^9.8.0
+        version: 9.8.0
       eslint-define-config:
         specifier: ^2.1.0
         version: 2.1.0
       eslint-plugin-simple-import-sort:
         specifier: ^12.1.1
-        version: 12.1.1(eslint@8.57.0)
+        version: 12.1.1(eslint@9.8.0)
       eslint-plugin-vue:
         specifier: ^9.27.0
-        version: 9.27.0(eslint@8.57.0)
+        version: 9.27.0(eslint@9.8.0)
       jsdom:
         specifier: ^24.1.1
         version: 24.1.1(bufferutil@4.0.8)(utf-8-validate@6.0.4)
@@ -240,8 +240,8 @@ importers:
         specifier: ~5.5.4
         version: 5.5.4
       typescript-eslint:
-        specifier: ^7.18.0
-        version: 7.18.0(eslint@8.57.0)(typescript@5.5.4)
+        specifier: ^8.0.0
+        version: 8.0.0(eslint@9.8.0)(typescript@5.5.4)
       vite:
         specifier: ^5.3.5
         version: 5.3.5(@types/node@22.0.2)
@@ -798,18 +798,10 @@ packages:
     resolution: {integrity: sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  '@eslint/eslintrc@2.1.4':
-    resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-
   '@eslint/eslintrc@3.1.0':
     resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  '@eslint/js@8.57.0':
-    resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-
   '@eslint/js@9.8.0':
     resolution: {integrity: sha512-MfluB7EUfxXtv3i/++oh89uzAr4PDI4nn201hsp+qaXqsjAWzinlZEHEfPgAX4doIlKvPG/i0A9dpKxOLII8yA==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -821,11 +813,6 @@ packages:
   '@gar/promisify@1.1.3':
     resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==}
 
-  '@humanwhocodes/config-array@0.11.14':
-    resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
-    engines: {node: '>=10.10.0'}
-    deprecated: Use @eslint/config-array instead
-
   '@humanwhocodes/gitignore-to-minimatch@1.0.2':
     resolution: {integrity: sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==}
 
@@ -833,10 +820,6 @@ packages:
     resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
     engines: {node: '>=12.22'}
 
-  '@humanwhocodes/object-schema@2.0.3':
-    resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==}
-    deprecated: Use @eslint/object-schema instead
-
   '@humanwhocodes/retry@0.3.0':
     resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==}
     engines: {node: '>=18.18'}
@@ -1200,17 +1183,6 @@ packages:
   '@types/yargs@17.0.32':
     resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==}
 
-  '@typescript-eslint/eslint-plugin@7.18.0':
-    resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==}
-    engines: {node: ^18.18.0 || >=20.0.0}
-    peerDependencies:
-      '@typescript-eslint/parser': ^7.0.0
-      eslint: ^8.56.0
-      typescript: '*'
-    peerDependenciesMeta:
-      typescript:
-        optional: true
-
   '@typescript-eslint/eslint-plugin@8.0.0':
     resolution: {integrity: sha512-STIZdwEQRXAHvNUS6ILDf5z3u95Gc8jzywunxSNqX00OooIemaaNIA0vEgynJlycL5AjabYLLrIyHd4iazyvtg==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -1222,16 +1194,6 @@ packages:
       typescript:
         optional: true
 
-  '@typescript-eslint/parser@7.18.0':
-    resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==}
-    engines: {node: ^18.18.0 || >=20.0.0}
-    peerDependencies:
-      eslint: ^8.56.0
-      typescript: '*'
-    peerDependenciesMeta:
-      typescript:
-        optional: true
-
   '@typescript-eslint/parser@8.0.0':
     resolution: {integrity: sha512-pS1hdZ+vnrpDIxuFXYQpLTILglTjSYJ9MbetZctrUawogUsPdz31DIIRZ9+rab0LhYNTsk88w4fIzVheiTbWOQ==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -1242,24 +1204,10 @@ packages:
       typescript:
         optional: true
 
-  '@typescript-eslint/scope-manager@7.18.0':
-    resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==}
-    engines: {node: ^18.18.0 || >=20.0.0}
-
   '@typescript-eslint/scope-manager@8.0.0':
     resolution: {integrity: sha512-V0aa9Csx/ZWWv2IPgTfY7T4agYwJyILESu/PVqFtTFz9RIS823mAze+NbnBI8xiwdX3iqeQbcTYlvB04G9wyQw==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  '@typescript-eslint/type-utils@7.18.0':
-    resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==}
-    engines: {node: ^18.18.0 || >=20.0.0}
-    peerDependencies:
-      eslint: ^8.56.0
-      typescript: '*'
-    peerDependenciesMeta:
-      typescript:
-        optional: true
-
   '@typescript-eslint/type-utils@8.0.0':
     resolution: {integrity: sha512-mJAFP2mZLTBwAn5WI4PMakpywfWFH5nQZezUQdSKV23Pqo6o9iShQg1hP2+0hJJXP2LnZkWPphdIq4juYYwCeg==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -1269,23 +1217,10 @@ packages:
       typescript:
         optional: true
 
-  '@typescript-eslint/types@7.18.0':
-    resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==}
-    engines: {node: ^18.18.0 || >=20.0.0}
-
   '@typescript-eslint/types@8.0.0':
     resolution: {integrity: sha512-wgdSGs9BTMWQ7ooeHtu5quddKKs5Z5dS+fHLbrQI+ID0XWJLODGMHRfhwImiHoeO2S5Wir2yXuadJN6/l4JRxw==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  '@typescript-eslint/typescript-estree@7.18.0':
-    resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==}
-    engines: {node: ^18.18.0 || >=20.0.0}
-    peerDependencies:
-      typescript: '*'
-    peerDependenciesMeta:
-      typescript:
-        optional: true
-
   '@typescript-eslint/typescript-estree@8.0.0':
     resolution: {integrity: sha512-5b97WpKMX+Y43YKi4zVcCVLtK5F98dFls3Oxui8LbnmRsseKenbbDinmvxrWegKDMmlkIq/XHuyy0UGLtpCDKg==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -1295,29 +1230,16 @@ packages:
       typescript:
         optional: true
 
-  '@typescript-eslint/utils@7.18.0':
-    resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==}
-    engines: {node: ^18.18.0 || >=20.0.0}
-    peerDependencies:
-      eslint: ^8.56.0
-
   '@typescript-eslint/utils@8.0.0':
     resolution: {integrity: sha512-k/oS/A/3QeGLRvOWCg6/9rATJL5rec7/5s1YmdS0ZU6LHveJyGFwBvLhSRBv6i9xaj7etmosp+l+ViN1I9Aj/Q==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
       eslint: ^8.57.0 || ^9.0.0
 
-  '@typescript-eslint/visitor-keys@7.18.0':
-    resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==}
-    engines: {node: ^18.18.0 || >=20.0.0}
-
   '@typescript-eslint/visitor-keys@8.0.0':
     resolution: {integrity: sha512-oN0K4nkHuOyF3PVMyETbpP5zp6wfyOvm7tWhTMfoqxSSsPmJIh6JNASuZDlODE8eE+0EB9uar+6+vxr9DBTYOA==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  '@ungap/structured-clone@1.2.0':
-    resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
-
   '@vitejs/plugin-vue-jsx@4.0.0':
     resolution: {integrity: sha512-A+6wL2AdQhDsLsDnY+2v4rRDI1HLJGIMc97a8FURO9tqKsH5QvjWrzsa5DH3NlZsM742W2wODl2fF+bfcTWtXw==}
     engines: {node: ^18.0.0 || >=20.0.0}
@@ -1749,8 +1671,8 @@ packages:
     engines: {node: '>= 0.8'}
     hasBin: true
 
-  browserslist@4.23.2:
-    resolution: {integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==}
+  browserslist@4.23.3:
+    resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==}
     engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
     hasBin: true
 
@@ -2380,10 +2302,6 @@ packages:
     resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
     engines: {node: '>=0.10.0'}
 
-  doctrine@3.0.0:
-    resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
-    engines: {node: '>=6.0.0'}
-
   domain-browser@1.2.0:
     resolution: {integrity: sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==}
     engines: {node: '>=0.4', npm: '>=1.2'}
@@ -2654,11 +2572,6 @@ packages:
     resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  eslint@8.57.0:
-    resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-    hasBin: true
-
   eslint@9.8.0:
     resolution: {integrity: sha512-K8qnZ/QJzT2dLKdZJVX6W4XOwBzutMYmt0lqUS+JdXgd+HTYFlonFgkJ8s44d/zMPPCnOOk0kMWCApCPhiOy9A==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -2805,10 +2718,6 @@ packages:
     resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==}
     engines: {node: '>=4'}
 
-  file-entry-cache@6.0.1:
-    resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
-    engines: {node: ^10.12.0 || >=12.0.0}
-
   file-entry-cache@8.0.0:
     resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
     engines: {node: '>=16.0.0'}
@@ -2842,10 +2751,6 @@ packages:
   flame-gradient@1.0.0:
     resolution: {integrity: sha512-9ejk16/DqvQJ4dHsh68W/4N0zmVQ60zukyUuEHrTbf5pJvP4JqlIdke86Z9174PZokRCXAntY5+H1txSyC7mUA==}
 
-  flat-cache@3.2.0:
-    resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
-    engines: {node: ^10.12.0 || >=12.0.0}
-
   flat-cache@4.0.1:
     resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
     engines: {node: '>=16'}
@@ -4655,8 +4560,8 @@ packages:
     resolution: {integrity: sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==}
     engines: {node: '>=8'}
 
-  qs@6.12.3:
-    resolution: {integrity: sha512-AWJm14H1vVaO/iNZ4/hO+HyaTehuy9nRqVdkTqlJt0HWvBiBIEXFmb4C0DGeYo3Xes9rrEW+TxHsaigCbN5ICQ==}
+  qs@6.13.0:
+    resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==}
     engines: {node: '>=0.6'}
 
   qs@6.5.3:
@@ -5463,16 +5368,6 @@ packages:
   typedarray@0.0.6:
     resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==}
 
-  typescript-eslint@7.18.0:
-    resolution: {integrity: sha512-PonBkP603E3tt05lDkbOMyaxJjvKqQrXsnow72sVeOFINDE/qNmnnd+f9b4N+U7W6MXnnYyrhtmF2t08QWwUbA==}
-    engines: {node: ^18.18.0 || >=20.0.0}
-    peerDependencies:
-      eslint: ^8.56.0
-      typescript: '*'
-    peerDependenciesMeta:
-      typescript:
-        optional: true
-
   typescript-eslint@8.0.0:
     resolution: {integrity: sha512-yQWBJutWL1PmpmDddIOl9/Mi6vZjqNCjqSGBMQ4vsc2Aiodk0SnbQQWPXbSy0HNuKCuGkw1+u4aQ2mO40TdhDQ==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -5963,7 +5858,7 @@ snapshots:
     dependencies:
       '@babel/compat-data': 7.25.2
       '@babel/helper-validator-option': 7.24.8
-      browserslist: 4.23.2
+      browserslist: 4.23.3
       lru-cache: 5.1.1
       semver: 7.6.3
 
@@ -6496,11 +6391,6 @@ snapshots:
   '@esbuild/win32-x64@0.23.0':
     optional: true
 
-  '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)':
-    dependencies:
-      eslint: 8.57.0
-      eslint-visitor-keys: 3.4.3
-
   '@eslint-community/eslint-utils@4.4.0(eslint@9.8.0)':
     dependencies:
       eslint: 9.8.0
@@ -6516,20 +6406,6 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  '@eslint/eslintrc@2.1.4':
-    dependencies:
-      ajv: 6.12.6
-      debug: 4.3.6
-      espree: 9.6.1
-      globals: 13.24.0
-      ignore: 5.3.1
-      import-fresh: 3.3.0
-      js-yaml: 4.1.0
-      minimatch: 3.1.2
-      strip-json-comments: 3.1.1
-    transitivePeerDependencies:
-      - supports-color
-
   '@eslint/eslintrc@3.1.0':
     dependencies:
       ajv: 6.12.6
@@ -6544,8 +6420,6 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  '@eslint/js@8.57.0': {}
-
   '@eslint/js@9.8.0': {}
 
   '@eslint/object-schema@2.1.4': {}
@@ -6553,20 +6427,10 @@ snapshots:
   '@gar/promisify@1.1.3':
     optional: true
 
-  '@humanwhocodes/config-array@0.11.14':
-    dependencies:
-      '@humanwhocodes/object-schema': 2.0.3
-      debug: 4.3.6
-      minimatch: 3.1.2
-    transitivePeerDependencies:
-      - supports-color
-
   '@humanwhocodes/gitignore-to-minimatch@1.0.2': {}
 
   '@humanwhocodes/module-importer@1.0.1': {}
 
-  '@humanwhocodes/object-schema@2.0.3': {}
-
   '@humanwhocodes/retry@0.3.0': {}
 
   '@isaacs/cliui@8.0.2':
@@ -6974,24 +6838,6 @@ snapshots:
     dependencies:
       '@types/yargs-parser': 21.0.3
 
-  '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)':
-    dependencies:
-      '@eslint-community/regexpp': 4.11.0
-      '@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.5.4)
-      '@typescript-eslint/scope-manager': 7.18.0
-      '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4)
-      '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4)
-      '@typescript-eslint/visitor-keys': 7.18.0
-      eslint: 8.57.0
-      graphemer: 1.4.0
-      ignore: 5.3.1
-      natural-compare: 1.4.0
-      ts-api-utils: 1.3.0(typescript@5.5.4)
-    optionalDependencies:
-      typescript: 5.5.4
-    transitivePeerDependencies:
-      - supports-color
-
   '@typescript-eslint/eslint-plugin@8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4)':
     dependencies:
       '@eslint-community/regexpp': 4.11.0
@@ -7010,19 +6856,6 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  '@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4)':
-    dependencies:
-      '@typescript-eslint/scope-manager': 7.18.0
-      '@typescript-eslint/types': 7.18.0
-      '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4)
-      '@typescript-eslint/visitor-keys': 7.18.0
-      debug: 4.3.6
-      eslint: 8.57.0
-    optionalDependencies:
-      typescript: 5.5.4
-    transitivePeerDependencies:
-      - supports-color
-
   '@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4)':
     dependencies:
       '@typescript-eslint/scope-manager': 8.0.0
@@ -7036,28 +6869,11 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  '@typescript-eslint/scope-manager@7.18.0':
-    dependencies:
-      '@typescript-eslint/types': 7.18.0
-      '@typescript-eslint/visitor-keys': 7.18.0
-
   '@typescript-eslint/scope-manager@8.0.0':
     dependencies:
       '@typescript-eslint/types': 8.0.0
       '@typescript-eslint/visitor-keys': 8.0.0
 
-  '@typescript-eslint/type-utils@7.18.0(eslint@8.57.0)(typescript@5.5.4)':
-    dependencies:
-      '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4)
-      '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4)
-      debug: 4.3.6
-      eslint: 8.57.0
-      ts-api-utils: 1.3.0(typescript@5.5.4)
-    optionalDependencies:
-      typescript: 5.5.4
-    transitivePeerDependencies:
-      - supports-color
-
   '@typescript-eslint/type-utils@8.0.0(eslint@9.8.0)(typescript@5.5.4)':
     dependencies:
       '@typescript-eslint/typescript-estree': 8.0.0(typescript@5.5.4)
@@ -7070,25 +6886,8 @@ snapshots:
       - eslint
       - supports-color
 
-  '@typescript-eslint/types@7.18.0': {}
-
   '@typescript-eslint/types@8.0.0': {}
 
-  '@typescript-eslint/typescript-estree@7.18.0(typescript@5.5.4)':
-    dependencies:
-      '@typescript-eslint/types': 7.18.0
-      '@typescript-eslint/visitor-keys': 7.18.0
-      debug: 4.3.6
-      globby: 11.1.0
-      is-glob: 4.0.3
-      minimatch: 9.0.5
-      semver: 7.6.3
-      ts-api-utils: 1.3.0(typescript@5.5.4)
-    optionalDependencies:
-      typescript: 5.5.4
-    transitivePeerDependencies:
-      - supports-color
-
   '@typescript-eslint/typescript-estree@8.0.0(typescript@5.5.4)':
     dependencies:
       '@typescript-eslint/types': 8.0.0
@@ -7104,17 +6903,6 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  '@typescript-eslint/utils@7.18.0(eslint@8.57.0)(typescript@5.5.4)':
-    dependencies:
-      '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
-      '@typescript-eslint/scope-manager': 7.18.0
-      '@typescript-eslint/types': 7.18.0
-      '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4)
-      eslint: 8.57.0
-    transitivePeerDependencies:
-      - supports-color
-      - typescript
-
   '@typescript-eslint/utils@8.0.0(eslint@9.8.0)(typescript@5.5.4)':
     dependencies:
       '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0)
@@ -7126,18 +6914,11 @@ snapshots:
       - supports-color
       - typescript
 
-  '@typescript-eslint/visitor-keys@7.18.0':
-    dependencies:
-      '@typescript-eslint/types': 7.18.0
-      eslint-visitor-keys: 3.4.3
-
   '@typescript-eslint/visitor-keys@8.0.0':
     dependencies:
       '@typescript-eslint/types': 8.0.0
       eslint-visitor-keys: 3.4.3
 
-  '@ungap/structured-clone@1.2.0': {}
-
   '@vitejs/plugin-vue-jsx@4.0.0(vite@5.3.5(@types/node@22.0.2))(vue@3.4.35(typescript@5.5.4))':
     dependencies:
       '@babel/core': 7.25.2
@@ -7737,12 +7518,12 @@ snapshots:
       vm-browserify: 1.1.2
       xtend: 4.0.2
 
-  browserslist@4.23.2:
+  browserslist@4.23.3:
     dependencies:
       caniuse-lite: 1.0.30001646
       electron-to-chromium: 1.5.4
       node-releases: 2.0.18
-      update-browserslist-db: 1.1.0(browserslist@4.23.2)
+      update-browserslist-db: 1.1.0(browserslist@4.23.3)
 
   bson@6.8.0: {}
 
@@ -8452,10 +8233,6 @@ snapshots:
     dependencies:
       esutils: 2.0.3
 
-  doctrine@3.0.0:
-    dependencies:
-      esutils: 2.0.3
-
   domain-browser@1.2.0: {}
 
   dot-prop@5.3.0:
@@ -8849,24 +8626,20 @@ snapshots:
       string.prototype.matchall: 4.0.11
       string.prototype.repeat: 1.0.0
 
-  eslint-plugin-simple-import-sort@12.1.1(eslint@8.57.0):
-    dependencies:
-      eslint: 8.57.0
-
   eslint-plugin-simple-import-sort@12.1.1(eslint@9.8.0):
     dependencies:
       eslint: 9.8.0
 
-  eslint-plugin-vue@9.27.0(eslint@8.57.0):
+  eslint-plugin-vue@9.27.0(eslint@9.8.0):
     dependencies:
-      '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
-      eslint: 8.57.0
+      '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0)
+      eslint: 9.8.0
       globals: 13.24.0
       natural-compare: 1.4.0
       nth-check: 2.1.1
       postcss-selector-parser: 6.1.1
       semver: 7.6.3
-      vue-eslint-parser: 9.4.3(eslint@8.57.0)
+      vue-eslint-parser: 9.4.3(eslint@9.8.0)
       xml-name-validator: 4.0.0
     transitivePeerDependencies:
       - supports-color
@@ -8885,49 +8658,6 @@ snapshots:
 
   eslint-visitor-keys@4.0.0: {}
 
-  eslint@8.57.0:
-    dependencies:
-      '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
-      '@eslint-community/regexpp': 4.11.0
-      '@eslint/eslintrc': 2.1.4
-      '@eslint/js': 8.57.0
-      '@humanwhocodes/config-array': 0.11.14
-      '@humanwhocodes/module-importer': 1.0.1
-      '@nodelib/fs.walk': 1.2.8
-      '@ungap/structured-clone': 1.2.0
-      ajv: 6.12.6
-      chalk: 4.1.2
-      cross-spawn: 7.0.3
-      debug: 4.3.6
-      doctrine: 3.0.0
-      escape-string-regexp: 4.0.0
-      eslint-scope: 7.2.2
-      eslint-visitor-keys: 3.4.3
-      espree: 9.6.1
-      esquery: 1.6.0
-      esutils: 2.0.3
-      fast-deep-equal: 3.1.3
-      file-entry-cache: 6.0.1
-      find-up: 5.0.0
-      glob-parent: 6.0.2
-      globals: 13.24.0
-      graphemer: 1.4.0
-      ignore: 5.3.1
-      imurmurhash: 0.1.4
-      is-glob: 4.0.3
-      is-path-inside: 3.0.3
-      js-yaml: 4.1.0
-      json-stable-stringify-without-jsonify: 1.0.1
-      levn: 0.4.1
-      lodash.merge: 4.6.2
-      minimatch: 3.1.2
-      natural-compare: 1.4.0
-      optionator: 0.9.4
-      strip-ansi: 6.0.1
-      text-table: 0.2.0
-    transitivePeerDependencies:
-      - supports-color
-
   eslint@9.8.0:
     dependencies:
       '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0)
@@ -9114,10 +8844,6 @@ snapshots:
     dependencies:
       escape-string-regexp: 1.0.5
 
-  file-entry-cache@6.0.1:
-    dependencies:
-      flat-cache: 3.2.0
-
   file-entry-cache@8.0.0:
     dependencies:
       flat-cache: 4.0.1
@@ -9163,12 +8889,6 @@ snapshots:
     dependencies:
       sinusoidal-decimal: 1.0.0
 
-  flat-cache@3.2.0:
-    dependencies:
-      flatted: 3.3.1
-      keyv: 4.5.4
-      rimraf: 3.0.2
-
   flat-cache@4.0.1:
     dependencies:
       flatted: 3.3.1
@@ -11065,7 +10785,7 @@ snapshots:
     dependencies:
       escape-goat: 2.1.1
 
-  qs@6.12.3:
+  qs@6.13.0:
     dependencies:
       side-channel: 1.0.6
 
@@ -12021,17 +11741,6 @@ snapshots:
 
   typedarray@0.0.6: {}
 
-  typescript-eslint@7.18.0(eslint@8.57.0)(typescript@5.5.4):
-    dependencies:
-      '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)
-      '@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.5.4)
-      '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4)
-      eslint: 8.57.0
-    optionalDependencies:
-      typescript: 5.5.4
-    transitivePeerDependencies:
-      - supports-color
-
   typescript-eslint@8.0.0(eslint@9.8.0)(typescript@5.5.4):
     dependencies:
       '@typescript-eslint/eslint-plugin': 8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4)
@@ -12090,9 +11799,9 @@ snapshots:
 
   unpipe@1.0.0: {}
 
-  update-browserslist-db@1.1.0(browserslist@4.23.2):
+  update-browserslist-db@1.1.0(browserslist@4.23.3):
     dependencies:
-      browserslist: 4.23.2
+      browserslist: 4.23.3
       escalade: 3.1.2
       picocolors: 1.0.1
 
@@ -12127,7 +11836,7 @@ snapshots:
   url@0.11.4:
     dependencies:
       punycode: 1.4.1
-      qs: 6.12.3
+      qs: 6.13.0
 
   utf-8-validate@6.0.4:
     dependencies:
@@ -12235,10 +11944,10 @@ snapshots:
 
   vue-component-type-helpers@2.0.29: {}
 
-  vue-eslint-parser@9.4.3(eslint@8.57.0):
+  vue-eslint-parser@9.4.3(eslint@9.8.0):
     dependencies:
       debug: 4.3.6
-      eslint: 8.57.0
+      eslint: 9.8.0
       eslint-scope: 7.2.2
       eslint-visitor-keys: 3.4.3
       espree: 9.6.1
index c9d3179d1cdd64eb2bf0c24b0a6918f16ee26ef7..a9578f76920f0f724d87985074e2f63a7c8b7320 100644 (file)
@@ -44,7 +44,7 @@
     "@vue/test-utils": "^2.4.6",
     "@vue/tsconfig": "^0.5.1",
     "cross-env": "^7.0.3",
-    "eslint": "^8.57.0",
+    "eslint": "^9.8.0",
     "eslint-define-config": "^2.1.0",
     "eslint-plugin-simple-import-sort": "^12.1.1",
     "eslint-plugin-vue": "^9.27.0",
@@ -52,7 +52,7 @@
     "prettier": "^3.3.3",
     "rimraf": "^6.0.1",
     "typescript": "~5.5.4",
-    "typescript-eslint": "^7.18.0",
+    "typescript-eslint": "^8.0.0",
     "vite": "^5.3.5",
     "vitest": "^2.0.5"
   }
index 451a7659d45e73807f69d596d417db6f0156fd28..0bc72b01a60da5457c18a981daa8517063469cbc 100644 (file)
@@ -1,6 +1,6 @@
 <template>
   <div class="container">
-    <slot></slot>
+    <slot />
   </div>
 </template>
 
index 9c87a48957ca1ae5940b8c4e7421955cde3bf744..7a6fcec05681b8202064382e006f5ff082f35fa8 100644 (file)
@@ -1,8 +1,18 @@
 <template>
-  <h1 id="action">Add Charging Stations</h1>
+  <h1 id="action">
+    Add Charging Stations
+  </h1>
   <p>Template:</p>
-  <select :key="state.renderTemplates" v-model="state.template">
-    <option disabled value="">Please select a template</option>
+  <select
+    :key="state.renderTemplates"
+    v-model="state.template"
+  >
+    <option
+      disabled
+      value=""
+    >
+      Please select a template
+    </option>
     <option
       v-for="template in $templates.value"
       v-show="Array.isArray($templates.value) && $templates.value.length > 0"
@@ -19,7 +29,7 @@
     min="1"
     name="number-of-stations"
     placeholder="number of stations"
-  />
+  >
   <p>Template options overrides:</p>
   <ul id="template-options">
     <li>
         type="url"
         name="supervision-url"
         placeholder="wss://"
-      />
+      >
     </li>
     <li>
       Auto start:
-      <input v-model="state.autoStart" type="checkbox" true-value="true" false-value="false" />
+      <input
+        v-model="state.autoStart"
+        type="checkbox"
+        true-value="true"
+        false-value="false"
+      >
     </li>
     <li>
       Persistent configuration:
@@ -43,7 +58,7 @@
         type="checkbox"
         true-value="true"
         false-value="false"
-      />
+      >
     </li>
     <li>
       OCPP strict compliance:
@@ -52,7 +67,7 @@
         type="checkbox"
         true-value="true"
         false-value="false"
-      />
+      >
     </li>
     <li>
       Performance statistics:
         type="checkbox"
         true-value="true"
         false-value="false"
-      />
+      >
     </li>
   </ul>
-  <br />
+  <br>
   <Button
     id="action-button"
     @click="
index 7c43f2c5ab9611a6530112ee7bb29fea137e1491..c904f704d7c4bdaa928b7bc78d14ec270dc17a37 100644 (file)
@@ -1,5 +1,7 @@
 <template>
-  <h1 id="action">Set Supervision Url</h1>
+  <h1 id="action">
+    Set Supervision Url
+  </h1>
   <h2>{{ chargingStationId }}</h2>
   <p>Supervision Url:</p>
   <input
@@ -8,8 +10,8 @@
     type="url"
     name="supervision-url"
     placeholder="wss://"
-  />
-  <br />
+  >
+  <br>
   <Button
     id="action-button"
     @click="
index b47f7118439dfa16f5feea96f0ee28d44b4affe3..e4cf5b13ae70afcd3a1705fedd4261dd484c1f19 100644 (file)
@@ -1,10 +1,18 @@
 <template>
-  <h1 id="action">Start Transaction</h1>
+  <h1 id="action">
+    Start Transaction
+  </h1>
   <h2>{{ chargingStationId }}</h2>
   <h3>Connector {{ connectorId }}</h3>
   <p>Scan RFID tag:</p>
-  <input id="idtag" v-model.trim="state.idTag" type="text" name="idtag" placeholder="RFID tag" />
-  <br />
+  <input
+    id="idtag"
+    v-model.trim="state.idTag"
+    type="text"
+    name="idtag"
+    placeholder="RFID tag"
+  >
+  <br>
   <Button
     id="action-button"
     @click="
index 9d99cdb4e8cf424bbf1a87e9763d448b7cf29319..a18b8064791e448af8c6d4e8cb14807220f7a898 100644 (file)
@@ -1,6 +1,9 @@
 <template>
-  <button type="button" class="button">
-    <slot></slot>
+  <button
+    type="button"
+    class="button"
+  >
+    <slot />
   </button>
 </template>
 
index 5f4447453a7a7c8703fb1c856839e17b8a45ae11..03748f2815940e933c3a1dfc40bd16c1ba56ac88 100644 (file)
@@ -1,6 +1,9 @@
 <template>
-  <Button :class="{ on: state.status }" @click="click()">
-    <slot></slot>
+  <Button
+    :class="{ on: state.status }"
+    @click="click()"
+  >
+    <slot />
   </Button>
 </template>
 
index 7619d43f60087161c205130c31fd2f489f5ecdcf..45548a93f35ed32df7da3494352aa2b8a700d4d3 100644 (file)
@@ -1,7 +1,11 @@
 <template>
   <tr class="connectors-table__row">
-    <td class="connectors-table__column">{{ connectorId }}</td>
-    <td class="connectors-table__column">{{ connector.status ?? 'Ø' }}</td>
+    <td class="connectors-table__column">
+      {{ connectorId }}
+    </td>
+    <td class="connectors-table__column">
+      {{ connector.status ?? 'Ø' }}
+    </td>
     <td class="connectors-table__column">
       {{ connector.transactionStarted === true ? 'Yes' : 'No' }}
     </td>
       >
         Start Transaction
       </ToggleButton>
-      <Button @click="stopTransaction()">Stop Transaction</Button>
-      <Button @click="startAutomaticTransactionGenerator()">Start ATG</Button>
-      <Button @click="stopAutomaticTransactionGenerator()">Stop ATG</Button>
+      <Button @click="stopTransaction()">
+        Stop Transaction
+      </Button>
+      <Button @click="startAutomaticTransactionGenerator()">
+        Start ATG
+      </Button>
+      <Button @click="stopAutomaticTransactionGenerator()">
+        Stop ATG
+      </Button>
     </td>
   </tr>
 </template>
@@ -66,7 +76,7 @@ const stopTransaction = (): void => {
   uiClient
     .stopTransaction(props.hashId, props.connector.transactionId)
     .then(() => {
-      $toast.success('Transaction successfully stopped')
+      return $toast.success('Transaction successfully stopped')
     })
     .catch((error: Error) => {
       $toast.error('Error at stopping transaction')
@@ -77,7 +87,7 @@ const startAutomaticTransactionGenerator = (): void => {
   uiClient
     .startAutomaticTransactionGenerator(props.hashId, props.connectorId)
     .then(() => {
-      $toast.success('Automatic transaction generator successfully started')
+      return $toast.success('Automatic transaction generator successfully started')
     })
     .catch((error: Error) => {
       $toast.error('Error at starting automatic transaction generator')
@@ -88,7 +98,7 @@ const stopAutomaticTransactionGenerator = (): void => {
   uiClient
     .stopAutomaticTransactionGenerator(props.hashId, props.connectorId)
     .then(() => {
-      $toast.success('Automatic transaction generator successfully stopped')
+      return $toast.success('Automatic transaction generator successfully stopped')
     })
     .catch((error: Error) => {
       $toast.error('Error at stopping automatic transaction generator')
index 32d4490f75f31c8c1261cae7d74cf99732d92806..941bf754a72eff06d92036338280001d47d8eaf7 100644 (file)
@@ -3,25 +3,37 @@
     <td class="cs-table__column">
       {{ chargingStation.stationInfo.chargingStationId }}
     </td>
-    <td class="cs-table__column">{{ chargingStation.started === true ? 'Yes' : 'No' }}</td>
+    <td class="cs-table__column">
+      {{ chargingStation.started === true ? 'Yes' : 'No' }}
+    </td>
     <td class="cs-table__column">
       {{ getSupervisionUrl() }}
     </td>
-    <td class="cs-table__column">{{ getWSState() }}</td>
+    <td class="cs-table__column">
+      {{ getWSState() }}
+    </td>
     <td class="cs-table__column">
       {{ chargingStation.bootNotificationResponse?.status ?? 'Ø' }}
     </td>
     <td class="cs-table__column">
       {{ chargingStation.stationInfo.templateName }}
     </td>
-    <td class="cs-table__column">{{ chargingStation.stationInfo.chargePointVendor }}</td>
-    <td class="cs-table__column">{{ chargingStation.stationInfo.chargePointModel }}</td>
+    <td class="cs-table__column">
+      {{ chargingStation.stationInfo.chargePointVendor }}
+    </td>
+    <td class="cs-table__column">
+      {{ chargingStation.stationInfo.chargePointModel }}
+    </td>
     <td class="cs-table__column">
       {{ chargingStation.stationInfo.firmwareVersion ?? 'Ø' }}
     </td>
     <td class="cs-table__column">
-      <Button @click="startChargingStation()">Start Charging Station</Button>
-      <Button @click="stopChargingStation()">Stop Charging Station</Button>
+      <Button @click="startChargingStation()">
+        Start Charging Station
+      </Button>
+      <Button @click="stopChargingStation()">
+        Stop Charging Station
+      </Button>
       <ToggleButton
         :id="`${chargingStation.stationInfo.hashId}-set-supervision-url`"
         :shared="true"
       >
         Set Supervision Url
       </ToggleButton>
-      <Button @click="openConnection()">Open Connection</Button>
-      <Button @click="closeConnection()">Close Connection</Button>
-      <Button @click="deleteChargingStation()">Delete Charging Station</Button>
+      <Button @click="openConnection()">
+        Open Connection
+      </Button>
+      <Button @click="closeConnection()">
+        Close Connection
+      </Button>
+      <Button @click="deleteChargingStation()">
+        Delete Charging Station
+      </Button>
     </td>
     <td class="cs-table__connectors-column">
       <table id="connectors-table">
-        <caption></caption>
+        <caption />
         <thead id="connectors-table__head">
           <tr class="connectors-table__row">
-            <th scope="col" class="connectors-table__column">Identifier</th>
-            <th scope="col" class="connectors-table__column">Status</th>
-            <th scope="col" class="connectors-table__column">Transaction</th>
-            <th scope="col" class="connectors-table__column">ATG Started</th>
-            <th scope="col" class="connectors-table__column">Actions</th>
+            <th
+              scope="col"
+              class="connectors-table__column"
+            >
+              Identifier
+            </th>
+            <th
+              scope="col"
+              class="connectors-table__column"
+            >
+              Status
+            </th>
+            <th
+              scope="col"
+              class="connectors-table__column"
+            >
+              Transaction
+            </th>
+            <th
+              scope="col"
+              class="connectors-table__column"
+            >
+              ATG Started
+            </th>
+            <th
+              scope="col"
+              class="connectors-table__column"
+            >
+              Actions
+            </th>
           </tr>
         </thead>
         <tbody id="connectors-table__body">
@@ -142,7 +185,7 @@ const startChargingStation = (): void => {
   uiClient
     .startChargingStation(props.chargingStation.stationInfo.hashId)
     .then(() => {
-      $toast.success('Charging station successfully started')
+      return $toast.success('Charging station successfully started')
     })
     .catch((error: Error) => {
       $toast.error('Error at starting charging station')
@@ -153,7 +196,7 @@ const stopChargingStation = (): void => {
   uiClient
     .stopChargingStation(props.chargingStation.stationInfo.hashId)
     .then(() => {
-      $toast.success('Charging station successfully stopped')
+      return $toast.success('Charging station successfully stopped')
     })
     .catch((error: Error) => {
       $toast.error('Error at stopping charging station')
@@ -164,7 +207,7 @@ const openConnection = (): void => {
   uiClient
     .openConnection(props.chargingStation.stationInfo.hashId)
     .then(() => {
-      $toast.success('Connection successfully opened')
+      return $toast.success('Connection successfully opened')
     })
     .catch((error: Error) => {
       $toast.error('Error at opening connection')
@@ -175,7 +218,7 @@ const closeConnection = (): void => {
   uiClient
     .closeConnection(props.chargingStation.stationInfo.hashId)
     .then(() => {
-      $toast.success('Connection successfully closed')
+      return $toast.success('Connection successfully closed')
     })
     .catch((error: Error) => {
       $toast.error('Error at closing connection')
@@ -186,7 +229,7 @@ const deleteChargingStation = (): void => {
   uiClient
     .deleteChargingStation(props.chargingStation.stationInfo.hashId)
     .then(() => {
-      $toast.success('Charging station successfully deleted')
+      return $toast.success('Charging station successfully deleted')
     })
     .catch((error: Error) => {
       $toast.error('Error at deleting charging station')
index 3175d6501974b2b3c7afa5251a957e452a5a7c59..d7e79856c5efd2cf11aedb79fde137fb80a0d619 100644 (file)
@@ -5,17 +5,72 @@
     </caption>
     <thead id="cs-table__head">
       <tr class="cs-table__row">
-        <th scope="col" class="cs-table__column">Name</th>
-        <th scope="col" class="cs-table__column">Started</th>
-        <th scope="col" class="cs-table__column">Supervision Url</th>
-        <th scope="col" class="cs-table__column">WebSocket State</th>
-        <th scope="col" class="cs-table__column">Registration Status</th>
-        <th scope="col" class="cs-table__column">Template</th>
-        <th scope="col" class="cs-table__column">Vendor</th>
-        <th scope="col" class="cs-table__column">Model</th>
-        <th scope="col" class="cs-table__column">Firmware</th>
-        <th scope="col" class="cs-table__column">Actions</th>
-        <th scope="col" class="cs-table__connectors-column">Connector(s)</th>
+        <th
+          scope="col"
+          class="cs-table__column"
+        >
+          Name
+        </th>
+        <th
+          scope="col"
+          class="cs-table__column"
+        >
+          Started
+        </th>
+        <th
+          scope="col"
+          class="cs-table__column"
+        >
+          Supervision Url
+        </th>
+        <th
+          scope="col"
+          class="cs-table__column"
+        >
+          WebSocket State
+        </th>
+        <th
+          scope="col"
+          class="cs-table__column"
+        >
+          Registration Status
+        </th>
+        <th
+          scope="col"
+          class="cs-table__column"
+        >
+          Template
+        </th>
+        <th
+          scope="col"
+          class="cs-table__column"
+        >
+          Vendor
+        </th>
+        <th
+          scope="col"
+          class="cs-table__column"
+        >
+          Model
+        </th>
+        <th
+          scope="col"
+          class="cs-table__column"
+        >
+          Firmware
+        </th>
+        <th
+          scope="col"
+          class="cs-table__column"
+        >
+          Actions
+        </th>
+        <th
+          scope="col"
+          class="cs-table__connectors-column"
+        >
+          Connector(s)
+        </th>
       </tr>
     </thead>
     <tbody id="cs-table__body">
index 765d91bb8c5e8771c5a14860c6ca27d9f9cd6c92..0428df73a4da4af57656df0dba4c7a0efb414765 100644 (file)
@@ -239,7 +239,11 @@ export class UIClient {
           this.responseHandlers.set(uuid, { procedureName, resolve, reject })
         } catch (error) {
           this.responseHandlers.delete(uuid)
-          reject(error as Error)
+          reject(
+            new Error(
+              `Send request '${procedureName}' message: error ${(error as Error).toString()}`
+            )
+          )
         } finally {
           clearTimeout(sendTimeout)
         }
index dba6d24651e0083256370a57ea7801b8e05dd45e..e9b4d3b299f0e0e7199fc81603db4256a2935af3 100644 (file)
@@ -208,14 +208,15 @@ const getSimulatorState = (): void => {
       .simulatorState()
       .then((response: ResponsePayload) => {
         simulatorState.value = response.state as SimulatorState
+        return undefined
+      })
+      .finally(() => {
+        state.value.gettingSimulatorState = false
       })
       .catch((error: Error) => {
         $toast.error('Error at fetching simulator state')
         console.error('Error at fetching simulator state:', error)
       })
-      .finally(() => {
-        state.value.gettingSimulatorState = false
-      })
   }
 }
 
@@ -228,15 +229,16 @@ const getTemplates = (): void => {
         if (app != null) {
           app.appContext.config.globalProperties.$templates.value = response.templates as string[]
         }
+        return undefined
+      })
+      .finally(() => {
+        state.value.gettingTemplates = false
       })
       .catch((error: Error) => {
         clearTemplates()
         $toast.error('Error at fetching charging station templates')
         console.error('Error at fetching charging station templates:', error)
       })
-      .finally(() => {
-        state.value.gettingTemplates = false
-      })
   }
 }
 
@@ -250,15 +252,16 @@ const getChargingStations = (): void => {
           app.appContext.config.globalProperties.$chargingStations.value =
             response.chargingStations as ChargingStationData[]
         }
+        return undefined
+      })
+      .finally(() => {
+        state.value.gettingChargingStations = false
       })
       .catch((error: Error) => {
         clearChargingStations()
         $toast.error('Error at fetching charging stations')
         console.error('Error at fetching charging stations:', error)
       })
-      .finally(() => {
-        state.value.gettingChargingStations = false
-      })
   }
 }
 
@@ -303,30 +306,30 @@ const startSimulator = (): void => {
   uiClient
     .startSimulator()
     .then(() => {
-      $toast.success('Simulator successfully started')
+      return $toast.success('Simulator successfully started')
+    })
+    .finally(() => {
+      getSimulatorState()
     })
     .catch((error: Error) => {
       $toast.error('Error at starting simulator')
       console.error('Error at starting simulator:', error)
     })
-    .finally(() => {
-      getSimulatorState()
-    })
 }
 const stopSimulator = (): void => {
   uiClient
     .stopSimulator()
     .then(() => {
       clearChargingStations()
-      $toast.success('Simulator successfully stopped')
+      return $toast.success('Simulator successfully stopped')
+    })
+    .finally(() => {
+      getSimulatorState()
     })
     .catch((error: Error) => {
       $toast.error('Error at stopping simulator')
       console.error('Error at stopping simulator:', error)
     })
-    .finally(() => {
-      getSimulatorState()
-    })
 }
 </script>
 
index a87072aa84439d5a4ca6fc5818c314187f9e9235..7f800e80fd5bce248f73b37b249879a1aa8f9487 100644 (file)
@@ -1,4 +1,8 @@
-<template><Container id="not-found">404 - Not found</Container></template>
+<template>
+  <Container id="not-found">
+    404 - Not found
+  </Container>
+</template>
 
 <script setup lang="ts">
 import Container from '@/components/Container.vue'
index c49133560fbfec1d95253e5e49aba82ab573be15..49de9ed3cc82ebf5279714bdaf1ecb08da838f1d 100644 (file)
       "@/*": ["./src/*"]
     }
   },
-  "include": [
-    "*.ts",
-    "src/**/*.ts",
-    "src/**/*.tsx",
-    "src/**/*.vue",
-    "tests/**/*.ts",
-    "tests/**/*.tsx"
-  ]
+  "include": ["*.ts", "src/**/*.ts", "src/**/*.vue", "tests/**/*.ts"]
 }