refactor: more coding style fixes
authorJérôme Benoit <jerome.benoit@sap.com>
Fri, 29 Dec 2023 17:58:18 +0000 (18:58 +0100)
committerJérôme Benoit <jerome.benoit@sap.com>
Fri, 29 Dec 2023 17:58:18 +0000 (18:58 +0100)
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
74 files changed:
.lintstagedrc.js
.prettierrc.json
package.json
pnpm-lock.yaml
prepare.js
skip-preinstall.js
src/charging-station/AutomaticTransactionGenerator.ts
src/charging-station/Bootstrap.ts
src/charging-station/ChargingStation.ts
src/charging-station/ConfigurationKeyUtils.ts
src/charging-station/Helpers.ts
src/charging-station/SharedLRUCache.ts
src/charging-station/broadcast-channel/ChargingStationWorkerBroadcastChannel.ts
src/charging-station/broadcast-channel/UIServiceWorkerBroadcastChannel.ts
src/charging-station/ocpp/1.6/OCPP16IncomingRequestService.ts
src/charging-station/ocpp/1.6/OCPP16ResponseService.ts
src/charging-station/ocpp/OCPPIncomingRequestService.ts
src/charging-station/ocpp/OCPPRequestService.ts
src/charging-station/ocpp/OCPPResponseService.ts
src/charging-station/ocpp/OCPPServiceUtils.ts
src/charging-station/ui-server/UIHttpServer.ts
src/charging-station/ui-server/ui-services/AbstractUIService.ts
src/types/AutomaticTransactionGenerator.ts
src/types/ChargingStationEvents.ts
src/types/ChargingStationTemplate.ts
src/types/ChargingStationWorker.ts
src/types/ConfigurationData.ts
src/types/FileType.ts
src/types/Storage.ts
src/types/UIProtocol.ts
src/types/WebSocket.ts
src/types/WorkerBroadcastChannel.ts
src/types/ocpp/1.6/ChargePointErrorCode.ts
src/types/ocpp/1.6/ChargePointStatus.ts
src/types/ocpp/1.6/ChargingProfile.ts
src/types/ocpp/1.6/Configuration.ts
src/types/ocpp/1.6/DiagnosticsStatus.ts
src/types/ocpp/1.6/MeterValues.ts
src/types/ocpp/1.6/Requests.ts
src/types/ocpp/1.6/Responses.ts
src/types/ocpp/1.6/Transaction.ts
src/types/ocpp/2.0/Common.ts
src/types/ocpp/2.0/Requests.ts
src/types/ocpp/2.0/Variables.ts
src/types/ocpp/Common.ts
src/types/ocpp/Configuration.ts
src/types/ocpp/ErrorType.ts
src/types/ocpp/MessageType.ts
src/types/ocpp/OCPPProtocol.ts
src/types/ocpp/OCPPVersion.ts
src/types/ocpp/Requests.ts
src/types/ocpp/Reservation.ts
src/utils/AsyncLock.ts
src/utils/ChargingStationConfigurationUtils.ts
src/utils/CircularArray.ts
src/utils/ConfigurationUtils.ts
src/worker/WorkerTypes.ts
ui/web/.eslintrc.cjs
ui/web/.lintstagedrc.js
ui/web/.prettierrc.json
ui/web/package.json
ui/web/pnpm-lock.yaml
ui/web/src/assets/config.ts
ui/web/src/composables/UIClient.ts
ui/web/src/composables/Utils.ts
ui/web/src/router/index.ts
ui/web/src/types/ChargingStationType.ts
ui/web/src/types/UIProtocol.ts
ui/web/src/types/index.ts
ui/web/src/views/ChargingStationsView.vue
ui/web/start.js
ui/web/tests/unit/CSTable.spec.ts
ui/web/vite.config.ts
ui/web/vitest.config.ts

index 0124480b4544144624cc6959bfd0a8ff223cee57..0eef8bcc26a3092bb53886a1e3579dfb3d443f82 100644 (file)
@@ -1,5 +1,5 @@
 export default {
   '{src,tests}/**/*.{ts,tsx,cts,mts}': ['prettier --cache --write', 'eslint --cache --fix'],
   '**/*.{json,md,yml,yaml}': ['prettier --cache --write'],
-  '**/*.{js,jsx,cjs,mjs}': ['prettier --cache --write', 'eslint --cache --fix']
+  '**/*.{js,jsx,cjs,mjs}': ['prettier --cache --write', 'eslint --cache --fix'],
 }
index 6632aaeb6873d9f1edf3b4ab3cbe617ab8ec283a..baeeb0d43e1a8c7b87062d2de936f0b1f9db887a 100644 (file)
@@ -3,5 +3,5 @@
   "printWidth": 100,
   "semi": false,
   "singleQuote": true,
-  "trailingComma": "none"
+  "trailingComma": "es5"
 }
index 6d773d66f122069baaeb85788b8057fd0351c63d..a31aa5eea5a76f9aa6838011af548b4d8fa1738a 100644 (file)
     "esbuild-plugin-clean": "^1.0.1",
     "esbuild-plugin-copy": "^2.1.1",
     "eslint": "^8.56.0",
-    "eslint-config-prettier": "^9.1.0",
     "eslint-config-standard": "^17.1.0",
     "eslint-config-standard-with-typescript": "^43.0.0",
     "eslint-define-config": "^2.1.0",
     "eslint-import-resolver-typescript": "^3.6.1",
     "eslint-plugin-import": "^2.29.1",
     "eslint-plugin-jsdoc": "^46.9.1",
-    "eslint-plugin-n": "^16.5.0",
+    "eslint-plugin-n": "^16.6.0",
     "eslint-plugin-prettier": "^5.1.2",
     "eslint-plugin-tsdoc": "^0.2.17",
     "expect": "^29.7.0",
index 2bb140e31fca74e39be5207e505a9f5a85f2936b..5ebf99fa306b88a00b2c8549dac7d06a9f34eea8 100644 (file)
@@ -135,15 +135,12 @@ devDependencies:
   eslint:
     specifier: ^8.56.0
     version: 8.56.0
-  eslint-config-prettier:
-    specifier: ^9.1.0
-    version: 9.1.0(eslint@8.56.0)
   eslint-config-standard:
     specifier: ^17.1.0
-    version: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.5.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)
+    version: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)
   eslint-config-standard-with-typescript:
     specifier: ^43.0.0
-    version: 43.0.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.5.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3)
+    version: 43.0.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3)
   eslint-define-config:
     specifier: ^2.1.0
     version: 2.1.0
@@ -157,11 +154,11 @@ devDependencies:
     specifier: ^46.9.1
     version: 46.9.1(eslint@8.56.0)
   eslint-plugin-n:
-    specifier: ^16.5.0
-    version: 16.5.0(eslint@8.56.0)
+    specifier: ^16.6.0
+    version: 16.6.0(eslint@8.56.0)
   eslint-plugin-prettier:
     specifier: ^5.1.2
-    version: 5.1.2(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.1.1)
+    version: 5.1.2(eslint@8.56.0)(prettier@3.1.1)
   eslint-plugin-tsdoc:
     specifier: ^0.2.17
     version: 0.2.17
@@ -1901,19 +1898,19 @@ packages:
       event-target-shim: 5.0.1
     dev: true
 
-  /acorn-jsx@5.3.2(acorn@8.11.2):
+  /acorn-jsx@5.3.2(acorn@8.11.3):
     resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
     peerDependencies:
       acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
     dependencies:
-      acorn: 8.11.2
+      acorn: 8.11.3
     dev: true
 
   /acorn-loose@8.3.0:
     resolution: {integrity: sha512-75lAs9H19ldmW+fAbyqHdjgdCrz0pWGXKmnqFoh8PyVd1L2RIb4RzYrSjmopeqv3E1G3/Pimu6GgLlrGbrkF7w==}
     engines: {node: '>=0.4.0'}
     dependencies:
-      acorn: 8.11.2
+      acorn: 8.11.3
 
   /acorn-node@1.8.2:
     resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==}
@@ -1932,14 +1929,19 @@ packages:
     resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==}
     engines: {node: '>=0.4.0'}
 
+  /acorn-walk@8.3.1:
+    resolution: {integrity: sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==}
+    engines: {node: '>=0.4.0'}
+    dev: true
+
   /acorn@7.4.1:
     resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==}
     engines: {node: '>=0.4.0'}
     hasBin: true
     dev: true
 
-  /acorn@8.11.2:
-    resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==}
+  /acorn@8.11.3:
+    resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
     engines: {node: '>=0.4.0'}
     hasBin: true
 
@@ -4175,15 +4177,6 @@ packages:
       eslint: 8.56.0
     dev: true
 
-  /eslint-config-prettier@9.1.0(eslint@8.56.0):
-    resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
-    hasBin: true
-    peerDependencies:
-      eslint: '>=7.0.0'
-    dependencies:
-      eslint: 8.56.0
-    dev: true
-
   /eslint-config-standard-jsx@11.0.0(eslint-plugin-react@7.33.2)(eslint@8.56.0):
     resolution: {integrity: sha512-+1EV/R0JxEK1L0NGolAr8Iktm3Rgotx3BKwgaX+eAuSX8D952LULKtjgZD3F+e6SvibONnhLwoTi9DPxN5LvvQ==}
     peerDependencies:
@@ -4216,7 +4209,7 @@ packages:
       - supports-color
     dev: true
 
-  /eslint-config-standard-with-typescript@43.0.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.5.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3):
+  /eslint-config-standard-with-typescript@43.0.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3):
     resolution: {integrity: sha512-AT0qK01M5bmsWiE3UZvaQO5da1y1n6uQckAKqGNe6zPW5IOzgMLXZxw77nnFm+C11nxAZXsCPrbsgJhSrGfX6Q==}
     peerDependencies:
       '@typescript-eslint/eslint-plugin': ^6.4.0
@@ -4229,9 +4222,9 @@ packages:
       '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3)
       '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3)
       eslint: 8.56.0
-      eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.5.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)
+      eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)
       eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0)
-      eslint-plugin-n: 16.5.0(eslint@8.56.0)
+      eslint-plugin-n: 16.6.0(eslint@8.56.0)
       eslint-plugin-promise: 6.1.1(eslint@8.56.0)
       typescript: 5.3.3
     transitivePeerDependencies:
@@ -4252,7 +4245,7 @@ packages:
       eslint-plugin-promise: 6.1.1(eslint@8.56.0)
     dev: true
 
-  /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.5.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0):
+  /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0):
     resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==}
     engines: {node: '>=12.0.0'}
     peerDependencies:
@@ -4263,7 +4256,7 @@ packages:
     dependencies:
       eslint: 8.56.0
       eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0)
-      eslint-plugin-n: 16.5.0(eslint@8.56.0)
+      eslint-plugin-n: 16.6.0(eslint@8.56.0)
       eslint-plugin-promise: 6.1.1(eslint@8.56.0)
     dev: true
 
@@ -4495,8 +4488,8 @@ packages:
       semver: 7.5.4
     dev: true
 
-  /eslint-plugin-n@16.5.0(eslint@8.56.0):
-    resolution: {integrity: sha512-Hw02Bj1QrZIlKyj471Tb1jSReTl4ghIMHGuBGiMVmw+s0jOPbI4CBuYpGbZr+tdQ+VAvSK6FDSta3J4ib/SKHQ==}
+  /eslint-plugin-n@16.6.0(eslint@8.56.0):
+    resolution: {integrity: sha512-Ag3tYFF90lYU8JdHEl9qSSpeLYbVnO+Oj7sgPUarWUacv1mPL3d5h5yG4Bv3tLe71hrcxmgTi7oByYwKXaVatw==}
     engines: {node: '>=16.0.0'}
     peerDependencies:
       eslint: '>=7.0.0'
@@ -4506,6 +4499,7 @@ packages:
       eslint: 8.56.0
       eslint-plugin-es-x: 7.5.0(eslint@8.56.0)
       get-tsconfig: 4.7.2
+      globals: 13.24.0
       ignore: 5.3.0
       is-builtin-module: 3.2.1
       is-core-module: 2.13.1
@@ -4514,7 +4508,7 @@ packages:
       semver: 7.5.4
     dev: true
 
-  /eslint-plugin-prettier@5.1.2(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.1.1):
+  /eslint-plugin-prettier@5.1.2(eslint@8.56.0)(prettier@3.1.1):
     resolution: {integrity: sha512-dhlpWc9vOwohcWmClFcA+HjlvUpuyynYs0Rf+L/P6/0iQE6vlHW9l5bkfzN62/Stm9fbq8ku46qzde76T1xlSg==}
     engines: {node: ^14.18.0 || >=16.0.0}
     peerDependencies:
@@ -4529,7 +4523,6 @@ packages:
         optional: true
     dependencies:
       eslint: 8.56.0
-      eslint-config-prettier: 9.1.0(eslint@8.56.0)
       prettier: 3.1.1
       prettier-linter-helpers: 1.0.0
       synckit: 0.8.8
@@ -4679,8 +4672,8 @@ packages:
     resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     dependencies:
-      acorn: 8.11.2
-      acorn-jsx: 5.3.2(acorn@8.11.2)
+      acorn: 8.11.3
+      acorn-jsx: 5.3.2(acorn@8.11.3)
       eslint-visitor-keys: 3.4.3
     dev: true
 
@@ -6965,7 +6958,7 @@ packages:
       denque: 2.1.0
       iconv-lite: 0.6.3
       long: 5.2.3
-      moment-timezone: 0.5.43
+      moment-timezone: 0.5.44
       please-upgrade-node: 3.2.0
 
   /md5.js@1.3.5:
@@ -7306,8 +7299,8 @@ packages:
       xtend: 4.0.2
     dev: true
 
-  /moment-timezone@0.5.43:
-    resolution: {integrity: sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ==}
+  /moment-timezone@0.5.44:
+    resolution: {integrity: sha512-nv3YpzI/8lkQn0U6RkLd+f0W/zy/JnoR5/EyPz/dNkPTBjA2jNLCVxaiQ8QpeLymhSZvX0wCL5s27NQWdOPwAw==}
     dependencies:
       moment: 2.30.1
 
@@ -9630,7 +9623,7 @@ packages:
     engines: {node: '>=6.0.0'}
     hasBin: true
     dependencies:
-      acorn: 8.11.2
+      acorn: 8.11.3
       commander: 2.20.3
       source-map: 0.6.1
       source-map-support: 0.5.21
@@ -9798,8 +9791,8 @@ packages:
       '@tsconfig/node14': 1.0.3
       '@tsconfig/node16': 1.0.4
       '@types/node': 20.10.5
-      acorn: 8.11.2
-      acorn-walk: 8.2.0
+      acorn: 8.11.3
+      acorn-walk: 8.3.1
       arg: 4.1.3
       create-require: 1.1.1
       diff: 4.0.2
index 256ce91619f81fd5301a70c6b320061f640d44e3..b31baa23b8efc5adde1c51156de2ff63859a1cfb 100644 (file)
@@ -1,7 +1,7 @@
 import { env } from 'node:process'
 
-const isCIEnvironment = env.CI !== undefined
-const isCFEnvironment = env.VCAP_APPLICATION !== undefined
+const isCIEnvironment = env.CI != null
+const isCFEnvironment = env.VCAP_APPLICATION != null
 if (isCFEnvironment === false && isCIEnvironment === false) {
   // eslint-disable-next-line n/no-unpublished-import
   import('husky').then(({ install }) => install())
index fde48de577488f3eeedf8e8059624676bddda644..e181f0e008798cb6151a924d13807f4e1d1f8e60 100644 (file)
@@ -1,6 +1,6 @@
 import { env, exit } from 'node:process'
 
-const skipPreinstall = env.SKIP_PREINSTALL || env.VCAP_APPLICATION !== undefined
+const skipPreinstall = parseInt(env.SKIP_PREINSTALL) || env.VCAP_APPLICATION != null
 if (skipPreinstall) {
   // eslint-disable-next-line n/no-process-exit
   exit()
index 9da371cdc2deab82b92adba90fbc427fc5c8a457..329f748367d0a20790cca278f08a92e549882a22 100644 (file)
@@ -404,7 +404,7 @@ export class AutomaticTransactionGenerator {
   }
 
   private resetConnectorStatus (connectorStatus: Status | undefined): void {
-    if (connectorStatus === undefined) {
+    if (connectorStatus == null) {
       return
     }
     delete connectorStatus?.startDate
index 731cc477d7a406d8165c8764ea851bc06115bafe..6a8d79fae543fa9bf51e3c8005a1e72191065680 100644 (file)
@@ -48,7 +48,7 @@ enum exitCodes {
   succeeded = 0,
   missingChargingStationsConfiguration = 1,
   noChargingStationTemplates = 2,
-  gracefulShutdownError = 3
+  gracefulShutdownError = 3,
 }
 
 export class Bootstrap extends EventEmitter {
index 6df137f82e7469e7b7cb07d6c95f1a6805f34f89..df029c3a6b8245963839d4c093442985bd537253 100644 (file)
@@ -38,6 +38,7 @@ import {
   getMaxNumberOfEvses,
   getNumberOfReservableConnectors,
   getPhaseRotationValue,
+  hasFeatureProfile,
   hasReservationExpired,
   initializeConnectorsMapStatus,
   propagateSerialNumber,
@@ -461,7 +462,7 @@ export class ChargingStation extends EventEmitter {
       this,
       StandardParametersKey.AuthorizeRemoteTxRequests
     )
-    return authorizeRemoteTxRequests !== undefined
+    return authorizeRemoteTxRequests != null
       ? convertToBoolean(authorizeRemoteTxRequests.value)
       : false
   }
@@ -471,16 +472,16 @@ export class ChargingStation extends EventEmitter {
       this,
       StandardParametersKey.LocalAuthListEnabled
     )
-    return localAuthListEnabled !== undefined ? convertToBoolean(localAuthListEnabled.value) : false
+    return localAuthListEnabled != null ? convertToBoolean(localAuthListEnabled.value) : false
   }
 
   public getHeartbeatInterval (): number {
     const HeartbeatInterval = getConfigurationKey(this, StandardParametersKey.HeartbeatInterval)
-    if (HeartbeatInterval !== undefined) {
+    if (HeartbeatInterval != null) {
       return secondsToMilliseconds(convertToInt(HeartbeatInterval.value))
     }
     const HeartBeatInterval = getConfigurationKey(this, StandardParametersKey.HeartBeatInterval)
-    if (HeartBeatInterval !== undefined) {
+    if (HeartBeatInterval != null) {
       return secondsToMilliseconds(convertToInt(HeartBeatInterval.value))
     }
     this.stationInfo?.autoRegister === false &&
@@ -507,7 +508,7 @@ export class ChargingStation extends EventEmitter {
   }
 
   public startHeartbeat (): void {
-    if (this.getHeartbeatInterval() > 0 && this.heartbeatSetInterval === undefined) {
+    if (this.getHeartbeatInterval() > 0 && this.heartbeatSetInterval == null) {
       this.heartbeatSetInterval = setInterval(() => {
         this.ocppRequestService
           .requestHandler<HeartbeatRequest, HeartbeatResponse>(this, RequestCommand.HEARTBEAT)
@@ -523,7 +524,7 @@ export class ChargingStation extends EventEmitter {
           this.getHeartbeatInterval()
         )}`
       )
-    } else if (this.heartbeatSetInterval !== undefined) {
+    } else if (this.heartbeatSetInterval != null) {
       logger.info(
         `${this.logPrefix()} Heartbeat already started every ${formatDurationMilliSeconds(
           this.getHeartbeatInterval()
@@ -613,7 +614,7 @@ export class ChargingStation extends EventEmitter {
   }
 
   public stopMeterValues (connectorId: number): void {
-    if (this.getConnectorStatus(connectorId)?.transactionSetInterval !== undefined) {
+    if (this.getConnectorStatus(connectorId)?.transactionSetInterval != null) {
       clearInterval(this.getConnectorStatus(connectorId)?.transactionSetInterval)
     }
   }
@@ -897,7 +898,7 @@ export class ChargingStation extends EventEmitter {
 
   public async addReservation (reservation: Reservation): Promise<void> {
     const reservationFound = this.getReservationBy('reservationId', reservation.reservationId)
-    if (reservationFound !== undefined) {
+    if (reservationFound != null) {
       await this.removeReservation(reservationFound, ReservationTerminationReason.REPLACE_EXISTING)
     }
     // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
@@ -990,7 +991,7 @@ export class ChargingStation extends EventEmitter {
   }
 
   private setIntervalFlushMessageBuffer (): void {
-    if (this.flushMessageBufferSetInterval === undefined) {
+    if (this.flushMessageBufferSetInterval == null) {
       this.flushMessageBufferSetInterval = setInterval(() => {
         if (this.isWebSocketConnectionOpened() && this.inAcceptedState()) {
           this.flushMessageBuffer()
@@ -1003,7 +1004,7 @@ export class ChargingStation extends EventEmitter {
   }
 
   private clearIntervalFlushMessageBuffer (): void {
-    if (this.flushMessageBufferSetInterval !== undefined) {
+    if (this.flushMessageBufferSetInterval != null) {
       clearInterval(this.flushMessageBufferSetInterval)
       delete this.flushMessageBufferSetInterval
     }
@@ -1401,9 +1402,7 @@ export class ChargingStation extends EventEmitter {
     }
     if (
       isNullOrUndefined(getConfigurationKey(this, StandardParametersKey.LocalAuthListEnabled)) &&
-      getConfigurationKey(this, StandardParametersKey.SupportedFeatureProfiles)?.value?.includes(
-        SupportedFeatureProfiles.LocalAuthListManagement
-      ) === true
+      hasFeatureProfile(this, SupportedFeatureProfiles.LocalAuthListManagement) === true
     ) {
       addConfigurationKey(this, StandardParametersKey.LocalAuthListEnabled, 'false')
     }
@@ -2072,7 +2071,7 @@ export class ChargingStation extends EventEmitter {
 
   // 0 for disabling
   private getConnectionTimeout (): number {
-    if (getConfigurationKey(this, StandardParametersKey.ConnectionTimeOut) !== undefined) {
+    if (getConfigurationKey(this, StandardParametersKey.ConnectionTimeOut) != null) {
       return convertToInt(
         // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
         getConfigurationKey(this, StandardParametersKey.ConnectionTimeOut)!.value! ??
@@ -2120,7 +2119,7 @@ export class ChargingStation extends EventEmitter {
     if (
       isNotEmptyString(this.stationInfo?.amperageLimitationOcppKey) &&
       // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
-      getConfigurationKey(this, this.stationInfo.amperageLimitationOcppKey!) !== undefined
+      getConfigurationKey(this, this.stationInfo.amperageLimitationOcppKey!) != null
     ) {
       return (
         convertToInt(
@@ -2238,12 +2237,12 @@ export class ChargingStation extends EventEmitter {
 
   private startWebSocketPing (): void {
     const webSocketPingInterval: number =
-      getConfigurationKey(this, StandardParametersKey.WebSocketPingInterval) !== undefined
+      getConfigurationKey(this, StandardParametersKey.WebSocketPingInterval) != null
         ? convertToInt(
           getConfigurationKey(this, StandardParametersKey.WebSocketPingInterval)?.value
         )
         : 0
-    if (webSocketPingInterval > 0 && this.webSocketPingSetInterval === undefined) {
+    if (webSocketPingInterval > 0 && this.webSocketPingSetInterval == null) {
       this.webSocketPingSetInterval = setInterval(() => {
         if (this.isWebSocketConnectionOpened()) {
           this.wsConnection?.ping()
@@ -2254,7 +2253,7 @@ export class ChargingStation extends EventEmitter {
           webSocketPingInterval
         )}`
       )
-    } else if (this.webSocketPingSetInterval !== undefined) {
+    } else if (this.webSocketPingSetInterval != null) {
       logger.info(
         `${this.logPrefix()} WebSocket ping already started every ${formatDurationSeconds(
           webSocketPingInterval
@@ -2268,7 +2267,7 @@ export class ChargingStation extends EventEmitter {
   }
 
   private stopWebSocketPing (): void {
-    if (this.webSocketPingSetInterval !== undefined) {
+    if (this.webSocketPingSetInterval != null) {
       clearInterval(this.webSocketPingSetInterval)
       delete this.webSocketPingSetInterval
     }
@@ -2314,7 +2313,7 @@ export class ChargingStation extends EventEmitter {
   }
 
   private stopHeartbeat (): void {
-    if (this.heartbeatSetInterval !== undefined) {
+    if (this.heartbeatSetInterval != null) {
       clearInterval(this.heartbeatSetInterval)
       delete this.heartbeatSetInterval
     }
index 044c09230b85c9e1ee01ecd41b8fe37be2cc5183..72fb88d757ba93565cd6b93574a5914141190a4b 100644 (file)
@@ -46,13 +46,13 @@ export const addConfigurationKey = (
   }
   params = { ...{ overwrite: false, save: false }, ...params }
   let keyFound = getConfigurationKey(chargingStation, key)
-  if (keyFound !== undefined && params?.overwrite === true) {
+  if (keyFound != null && params?.overwrite === true) {
     deleteConfigurationKey(chargingStation, keyFound.key, {
       save: false
     })
     keyFound = undefined
   }
-  if (keyFound === undefined) {
+  if (keyFound == null) {
     chargingStation.ocppConfiguration?.configurationKey?.push({
       key,
       // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
@@ -77,7 +77,7 @@ export const setConfigurationKeyValue = (
   caseInsensitive = false
 ): void => {
   const keyFound = getConfigurationKey(chargingStation, key, caseInsensitive)
-  if (keyFound !== undefined) {
+  if (keyFound != null) {
     // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
     chargingStation.ocppConfiguration!.configurationKey![
       // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
@@ -99,7 +99,7 @@ export const deleteConfigurationKey = (
 ): ConfigurationKey[] | undefined => {
   params = { ...{ save: true, caseInsensitive: false }, ...params }
   const keyFound = getConfigurationKey(chargingStation, key, params?.caseInsensitive)
-  if (keyFound !== undefined) {
+  if (keyFound != null) {
     const deletedConfigurationKey = chargingStation.ocppConfiguration?.configurationKey?.splice(
       chargingStation.ocppConfiguration.configurationKey.indexOf(keyFound),
       1
index cc630d332c49b8533c417412949ae23ca268e0c2..c38248491dbcc2db95464671decaa6109cc0612f 100644 (file)
@@ -78,14 +78,14 @@ export const getChargingStationId = (
   index: number,
   stationTemplate: ChargingStationTemplate | undefined
 ): string => {
-  if (stationTemplate === undefined) {
+  if (stationTemplate == null) {
     return "Unknown 'chargingStationId'"
   }
   // In case of multiple instances: add instance index to charging station id
   const instanceIndex = env.CF_INSTANCE_INDEX ?? 0
   const idSuffix = stationTemplate?.nameSuffix ?? ''
   const idStr = `000000000${index.toString()}`
-  return stationTemplate?.fixedName != null
+  return stationTemplate?.fixedName === true
     ? stationTemplate.baseName
     : `${stationTemplate.baseName}-${instanceIndex.toString()}${idStr.substring(
         idStr.length - 4
@@ -267,13 +267,12 @@ export const checkConfiguration = (
   logPrefix: string,
   configurationFile: string
 ): void => {
-  if (isNullOrUndefined(stationConfiguration)) {
+  if (stationConfiguration == null) {
     const errorMsg = `Failed to read charging station configuration file ${configurationFile}`
     logger.error(`${logPrefix} ${errorMsg}`)
     throw new BaseError(errorMsg)
   }
-  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
-  if (isEmptyObject(stationConfiguration!)) {
+  if (isEmptyObject(stationConfiguration)) {
     const errorMsg = `Empty charging station configuration from file ${configurationFile}`
     logger.error(`${logPrefix} ${errorMsg}`)
     throw new BaseError(errorMsg)
@@ -314,7 +313,7 @@ export const checkStationInfoConnectorStatus = (
   logPrefix: string,
   templateFile: string
 ): void => {
-  if (!isNullOrUndefined(connectorStatus?.status)) {
+  if (connectorStatus?.status != null) {
     logger.warn(
       `${logPrefix} Charging station information from template ${templateFile} with connector id ${connectorId} status configuration defined, undefine it`
     )
index 6985e707a34554b62ef96b3505721ca271d6293d..97f417e72fb8813e67bf7a384e2d7743697e0f53 100644 (file)
@@ -11,7 +11,7 @@ import {
 
 enum CacheType {
   chargingStationTemplate = 'chargingStationTemplate',
-  chargingStationConfiguration = 'chargingStationConfiguration'
+  chargingStationConfiguration = 'chargingStationConfiguration',
 }
 
 type CacheValueType = ChargingStationTemplate | ChargingStationConfiguration
index 87f693f8342e7e055232735a7afa00ff155ace8e..d990c48e8cf698ca9e0c67d7ddbcb0b5967d3a50 100644 (file)
@@ -180,7 +180,12 @@ export class ChargingStationWorkerBroadcastChannel extends WorkerBroadcastChanne
           await this.chargingStation.ocppRequestService.requestHandler<
           StatusNotificationRequest,
           StatusNotificationResponse
-          >(this.chargingStation, RequestCommand.STATUS_NOTIFICATION, requestPayload, requestParams)
+          >(
+            this.chargingStation,
+            RequestCommand.STATUS_NOTIFICATION,
+            requestPayload,
+            requestParams
+          )
       ],
       [
         BroadcastChannelProcedureName.HEARTBEAT,
@@ -212,7 +217,7 @@ export class ChargingStationWorkerBroadcastChannel extends WorkerBroadcastChanne
                   // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
                   this.chargingStation.getConnectorStatus(requestPayload!.connectorId!)!
                     .transactionId!,
-                  configuredMeterValueSampleInterval !== undefined
+                  configuredMeterValueSampleInterval != null
                     ? secondsToMilliseconds(convertToInt(configuredMeterValueSampleInterval.value))
                     : Constants.DEFAULT_METER_VALUES_INTERVAL
                 )
@@ -285,10 +290,11 @@ export class ChargingStationWorkerBroadcastChannel extends WorkerBroadcastChanne
       return
     }
     let responsePayload: BroadcastChannelResponsePayload | undefined
-    let commandResponse: CommandResponse | undefined
+    // eslint-disable-next-line @typescript-eslint/no-invalid-void-type
+    let commandResponse: CommandResponse | void | undefined
     try {
       commandResponse = await this.commandHandler(command, requestPayload)
-      if (isNullOrUndefined(commandResponse) || isEmptyObject(commandResponse)) {
+      if (isNullOrUndefined(commandResponse) || isEmptyObject(commandResponse as CommandResponse)) {
         responsePayload = {
           hashId: this.chargingStation.stationInfo.hashId,
           status: ResponseStatus.SUCCESS
@@ -297,7 +303,7 @@ export class ChargingStationWorkerBroadcastChannel extends WorkerBroadcastChanne
         responsePayload = this.commandResponseToResponsePayload(
           command,
           requestPayload,
-          commandResponse
+          commandResponse as CommandResponse
         )
       }
     } catch (error) {
index 57b4bc788fecf56ad3a9b467f7162d636634ad09..93586ceeee85a927e5fcbbea9f79b70cc2db59d7 100644 (file)
@@ -73,7 +73,7 @@ export class UIServiceWorkerBroadcastChannel extends WorkerBroadcastChannel {
       hashIdsSucceeded: this.responses
         .get(uuid)
         ?.responses.map(({ status, hashId }) => {
-          if (hashId !== undefined && status === ResponseStatus.SUCCESS) {
+          if (hashId != null && status === ResponseStatus.SUCCESS) {
             return hashId
           }
           return undefined
@@ -83,7 +83,7 @@ export class UIServiceWorkerBroadcastChannel extends WorkerBroadcastChannel {
         hashIdsFailed: this.responses
           .get(uuid)
           ?.responses.map(({ status, hashId }) => {
-            if (hashId !== undefined && status === ResponseStatus.FAILURE) {
+            if (hashId != null && status === ResponseStatus.FAILURE) {
               return hashId
             }
             return undefined
@@ -94,7 +94,7 @@ export class UIServiceWorkerBroadcastChannel extends WorkerBroadcastChannel {
         responsesFailed: this.responses
           .get(uuid)
           ?.responses.map((response) => {
-            if (response !== undefined && response.status === ResponseStatus.FAILURE) {
+            if (response != null && response.status === ResponseStatus.FAILURE) {
               return response
             }
             return undefined
index 656d2cb39b16346f8ef717c8e8268ad29a2fb518..94f03ef8b26a4442c34a120212a8775b87866998 100644 (file)
@@ -521,7 +521,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService {
       // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
       for (const k of key!) {
         const keyFound = getConfigurationKey(chargingStation, k, true)
-        if (keyFound !== undefined) {
+        if (keyFound != null) {
           if (isUndefined(keyFound.visible)) {
             keyFound.visible = true
           }
index 37c05637e4a1565cbcdfe8c4f232d2c8a5f0ebd3..d7d9ce0aab94c2b65496083dca3d0342bd9667d9 100644 (file)
@@ -658,7 +658,7 @@ export class OCPP16ResponseService extends OCPPResponseService {
       )
       chargingStation.startMeterValues(
         connectorId,
-        configuredMeterValueSampleInterval !== undefined
+        configuredMeterValueSampleInterval != null
           ? secondsToMilliseconds(convertToInt(configuredMeterValueSampleInterval.value))
           : Constants.DEFAULT_METER_VALUES_INTERVAL
       )
index ba224189ce900fe734454f5281264f2ee94a81c5..62e58661054f973028b9fae1f1713cac5a99db27 100644 (file)
@@ -38,7 +38,7 @@ export abstract class OCPPIncomingRequestService {
     this.incomingRequestHandler = this.incomingRequestHandler.bind(this) as <
       ReqType extends JsonType,
       // eslint-disable-next-line @typescript-eslint/no-unused-vars
-      ResType extends JsonType
+      ResType extends JsonType,
     >(
       chargingStation: ChargingStation,
       messageId: string,
@@ -46,7 +46,7 @@ export abstract class OCPPIncomingRequestService {
       commandPayload: ReqType
     ) => Promise<void>
     this.validateIncomingRequestPayload = this.validateIncomingRequestPayload.bind(this) as <
-      T extends JsonType
+      T extends JsonType,
     >(
       chargingStation: ChargingStation,
       commandName: IncomingRequestCommand,
index 67b93afe9ce1febbca3eda1bab3c9d88630d4794..e98ebdfa6ab4384eb0b7ee2683cf7cdf3302919b 100644 (file)
@@ -63,7 +63,7 @@ export abstract class OCPPRequestService {
     this.requestHandler = this.requestHandler.bind(this) as <
       // eslint-disable-next-line @typescript-eslint/no-unused-vars
       ReqType extends JsonType,
-      ResType extends JsonType
+      ResType extends JsonType,
     >(
       chargingStation: ChargingStation,
       commandName: RequestCommand,
index 738aa5ae4ffea2c8ea2f7ce7013826241eabb1c1..428c63c458255633dbff8aa30aa3f29e164d08a1 100644 (file)
@@ -49,7 +49,7 @@ export abstract class OCPPResponseService {
     >()
     this.responseHandler = this.responseHandler.bind(this) as <
       ReqType extends JsonType,
-      ResType extends JsonType
+      ResType extends JsonType,
     >(
       chargingStation: ChargingStation,
       commandName: RequestCommand,
index b0225063976efdf3c1927d402282c7f7e60e42f1..6b055bebc7dbb0f52afeeca98e7361cd2c592686 100644 (file)
@@ -1349,7 +1349,7 @@ export class OCPPServiceUtils {
   }
 
   public static startHeartbeatInterval (chargingStation: ChargingStation, interval: number): void {
-    if (chargingStation.heartbeatSetInterval === undefined) {
+    if (chargingStation.heartbeatSetInterval == null) {
       chargingStation.startHeartbeat()
     } else if (chargingStation.getHeartbeatInterval() !== interval) {
       chargingStation.restartHeartbeat()
index ce1a6ed88d085038d639b01d2f5fbbaece8c9f6f..0b6eee9feb5bb783610a5f9001d4f04f6b7fe008 100644 (file)
@@ -24,7 +24,7 @@ enum HttpMethods {
   GET = 'GET',
   PUT = 'PUT',
   POST = 'POST',
-  PATCH = 'PATCH'
+  PATCH = 'PATCH',
 }
 
 export class UIHttpServer extends AbstractUIServer {
@@ -96,7 +96,7 @@ export class UIHttpServer extends AbstractUIServer {
     const [protocol, version, procedureName] = req.url?.split('/').slice(1) as [
       Protocol,
       ProtocolVersion,
-      ProcedureName
+      ProcedureName,
     ]
     const uuid = generateUUID()
     this.responseHandlers.set(uuid, res)
index 448734ba70583b5de1e0997e6e5b618028ab499e..499e96990949e9c89a614e4411b6cbc576a75c43 100644 (file)
@@ -164,7 +164,7 @@ export abstract class AbstractUIService {
     if (isNotEmptyArray(payload.hashIds)) {
       payload.hashIds = payload.hashIds
         ?.map((hashId) => {
-          if (hashId !== undefined && this.uiServer.chargingStations.has(hashId)) {
+          if (hashId != null && this.uiServer.chargingStations.has(hashId)) {
             return hashId
           }
           logger.warn(
index 9a29fb7b772a8ac2ec61d44abee623376f344b3a..68fd2fe3800b16b5dd14c7497ab5b99223400a74 100644 (file)
@@ -1,7 +1,7 @@
 export enum IdTagDistribution {
   RANDOM = 'random',
   ROUND_ROBIN = 'round-robin',
-  CONNECTOR_AFFINITY = 'connector-affinity'
+  CONNECTOR_AFFINITY = 'connector-affinity',
 }
 
 export interface AutomaticTransactionGeneratorConfiguration {
index 5a0fc8fd6ee7d5a2007fa1a80d4aeacf37756234..f7980b47b3f7e5a77473473383be465fc0689cd1 100644 (file)
@@ -4,5 +4,5 @@ export enum ChargingStationEvents {
   registered = 'registered',
   accepted = 'accepted',
   updated = 'updated',
-  connectorStatusChanged = 'connectorStatusChanged'
+  connectorStatusChanged = 'connectorStatusChanged',
 }
index cb358844a98e4968b832eeddc59476397fd2c02e..1b4299b3b798a8dc685788a62cd74a57f28ec192 100644 (file)
@@ -17,26 +17,26 @@ import type {
 
 export enum CurrentType {
   AC = 'AC',
-  DC = 'DC'
+  DC = 'DC',
 }
 
 export enum PowerUnits {
   WATT = 'W',
-  KILO_WATT = 'kW'
+  KILO_WATT = 'kW',
 }
 
 export enum AmpereUnits {
   MILLI_AMPERE = 'mA',
   CENTI_AMPERE = 'cA',
   DECI_AMPERE = 'dA',
-  AMPERE = 'A'
+  AMPERE = 'A',
 }
 
 export enum Voltage {
   VOLTAGE_110 = 110,
   VOLTAGE_230 = 230,
   VOLTAGE_400 = 400,
-  VOLTAGE_800 = 800
+  VOLTAGE_800 = 800,
 }
 
 export type WsOptions = ClientOptions & ClientRequestArgs
@@ -61,7 +61,7 @@ enum x509CertificateType {
   CSMSRootCertificate = 'CSMSRootCertificate',
   ManufacturerRootCertificate = 'ManufacturerRootCertificate',
   ChargingStationCertificate = 'ChargingStationCertificate',
-  V2GCertificate = 'V2GCertificate'
+  V2GCertificate = 'V2GCertificate',
 }
 
 export interface ChargingStationTemplate {
index 5b12307973d495118e65b273bc00190d32809b20..740d6e50a21a0e30f2138be7cbce8dd49fcf046c 100644 (file)
@@ -41,7 +41,7 @@ export interface ChargingStationData extends WorkerData {
 }
 
 enum ChargingStationMessageEvents {
-  performanceStatistics = 'performanceStatistics'
+  performanceStatistics = 'performanceStatistics',
 }
 
 export const ChargingStationWorkerMessageEvents = {
index fe8b84819452354572011d23388ffc679637d701..7f5353f4c391ac2ca17c12e51b7f4d9d7bcb37fc 100644 (file)
@@ -13,13 +13,13 @@ export enum ConfigurationSection {
   log = 'log',
   performanceStorage = 'performanceStorage',
   worker = 'worker',
-  uiServer = 'uiServer'
+  uiServer = 'uiServer',
 }
 
 export enum SupervisionUrlDistribution {
   ROUND_ROBIN = 'round-robin',
   RANDOM = 'random',
-  CHARGING_STATION_AFFINITY = 'charging-station-affinity'
+  CHARGING_STATION_AFFINITY = 'charging-station-affinity',
 }
 
 export interface StationTemplateUrl {
@@ -42,7 +42,7 @@ export interface LogConfiguration {
 
 export enum ApplicationProtocolVersion {
   VERSION_11 = 1.1,
-  VERSION_20 = 2.0
+  VERSION_20 = 2.0,
 }
 
 export interface UIServerConfiguration {
index 2b6bc380cbe401c1c294407c489ed47f9bc331fc..3781b7d9e9b22d58423782e128c70f13be467e09 100644 (file)
@@ -4,5 +4,5 @@ export enum FileType {
   ChargingStationConfiguration = 'charging station configuration',
   ChargingStationTemplate = 'charging station template',
   PerformanceRecords = 'performance records',
-  JsonSchema = 'json schema'
+  JsonSchema = 'json schema',
 }
index 3301f5ca57e673adf5845c452c02e4534b5aa669..92aa4cb44a344be2927c9a79b18aa578fe14aa16 100644 (file)
@@ -7,12 +7,12 @@ export enum StorageType {
   MONGO_DB = 'mongodb',
   MYSQL = 'mysql',
   MARIA_DB = 'mariadb',
-  SQLITE = 'sqlite'
+  SQLITE = 'sqlite',
 }
 
 export enum DBName {
   MONGO_DB = 'MongoDB',
   MYSQL = 'MySQL',
   MARIA_DB = 'MariaDB',
-  SQLITE = 'SQLite'
+  SQLITE = 'SQLite',
 }
index f44475d86f680982c87fa376427f8481dc1a9410..4911f9ada2411c53612978878105ba7b5765beba 100644 (file)
@@ -2,20 +2,20 @@ import type { JsonObject } from './JsonType.js'
 import type { BroadcastChannelResponsePayload } from './WorkerBroadcastChannel.js'
 
 export enum Protocol {
-  UI = 'ui'
+  UI = 'ui',
 }
 
 export enum ApplicationProtocol {
   HTTP = 'http',
-  WS = 'ws'
+  WS = 'ws',
 }
 
 export enum AuthenticationType {
-  BASIC_AUTH = 'basic-auth'
+  BASIC_AUTH = 'basic-auth',
 }
 
 export enum ProtocolVersion {
-  '0.0.1' = '0.0.1'
+  '0.0.1' = '0.0.1',
 }
 
 export type ProtocolRequest = [string, ProcedureName, RequestPayload]
@@ -47,7 +47,7 @@ export enum ProcedureName {
   METER_VALUES = 'meterValues',
   DATA_TRANSFER = 'dataTransfer',
   DIAGNOSTICS_STATUS_NOTIFICATION = 'diagnosticsStatusNotification',
-  FIRMWARE_STATUS_NOTIFICATION = 'firmwareStatusNotification'
+  FIRMWARE_STATUS_NOTIFICATION = 'firmwareStatusNotification',
 }
 
 export interface RequestPayload extends JsonObject {
@@ -57,7 +57,7 @@ export interface RequestPayload extends JsonObject {
 
 export enum ResponseStatus {
   SUCCESS = 'success',
-  FAILURE = 'failure'
+  FAILURE = 'failure',
 }
 
 export interface ResponsePayload extends JsonObject {
index 2f7269aaf2ea563271745b9826b9f877382d0d5a..c0d0bd9d758c0f592ad01601446980ad85c7969d 100644 (file)
@@ -34,7 +34,7 @@ export enum WebSocketCloseEventStatusCode {
   CLOSE_SERVICE_RESTART = 1012,
   CLOSE_TRY_AGAIN_LATER = 1013,
   CLOSE_BAD_GATEWAY = 1014,
-  CLOSE_TLS_HANDSHAKE = 1015
+  CLOSE_TLS_HANDSHAKE = 1015,
 }
 
 export interface WSError extends Error {
index 8d807b9af9beb39724c46e0af3437c5e79c0e09b..ac4ea8e6b3ad353c9878b7e039e0fe47893ac745 100644 (file)
@@ -3,7 +3,7 @@ import type { RequestPayload, ResponsePayload } from './UIProtocol.js'
 export type BroadcastChannelRequest = [
   string,
   BroadcastChannelProcedureName,
-  BroadcastChannelRequestPayload
+  BroadcastChannelRequestPayload,
 ]
 export type BroadcastChannelResponse = [string, BroadcastChannelResponsePayload]
 
@@ -24,7 +24,7 @@ export enum BroadcastChannelProcedureName {
   METER_VALUES = 'meterValues',
   DATA_TRANSFER = 'dataTransfer',
   DIAGNOSTICS_STATUS_NOTIFICATION = 'diagnosticsStatusNotification',
-  FIRMWARE_STATUS_NOTIFICATION = 'firmwareStatusNotification'
+  FIRMWARE_STATUS_NOTIFICATION = 'firmwareStatusNotification',
 }
 
 export interface BroadcastChannelRequestPayload extends RequestPayload {
index db06d0c9da53758e055398531fd549906b0b045a..4255cd059c8a8c22623b08f756a01c29c6145380 100644 (file)
@@ -14,5 +14,5 @@ export enum OCPP16ChargePointErrorCode {
   READER_FAILURE = 'ReaderFailure',
   RESET_FAILURE = 'ResetFailure',
   UNDER_VOLTAGE = 'UnderVoltage',
-  WEAK_SIGNAL = 'WeakSignal'
+  WEAK_SIGNAL = 'WeakSignal',
 }
index ef7467bd4841d3186c32a5d3432243403f29c920..4cef943e712f797ec4e3c3d6ba88c446e0ff7eb6 100644 (file)
@@ -7,5 +7,5 @@ export enum OCPP16ChargePointStatus {
   Finishing = 'Finishing',
   Reserved = 'Reserved',
   Unavailable = 'Unavailable',
-  Faulted = 'Faulted'
+  Faulted = 'Faulted',
 }
index 744696c586306f52bca08fd23b2d9f28e37db6c2..efd8f31ac9900a61001d4b659fb09fd3213a2488 100644 (file)
@@ -28,22 +28,22 @@ export interface OCPP16ChargingSchedulePeriod extends JsonObject {
 
 export enum OCPP16ChargingRateUnitType {
   WATT = 'W',
-  AMPERE = 'A'
+  AMPERE = 'A',
 }
 
 export enum OCPP16ChargingProfileKindType {
   ABSOLUTE = 'Absolute',
   RECURRING = 'Recurring',
-  RELATIVE = 'Relative'
+  RELATIVE = 'Relative',
 }
 
 export enum OCPP16ChargingProfilePurposeType {
   CHARGE_POINT_MAX_PROFILE = 'ChargePointMaxProfile',
   TX_DEFAULT_PROFILE = 'TxDefaultProfile',
-  TX_PROFILE = 'TxProfile'
+  TX_PROFILE = 'TxProfile',
 }
 
 export enum OCPP16RecurrencyKindType {
   DAILY = 'Daily',
-  WEEKLY = 'Weekly'
+  WEEKLY = 'Weekly',
 }
index a5888d93c200567cb6bd4d2cbcffda8d544bac1b..1bd923767be2d9121967a013af68ee560490e015 100644 (file)
@@ -4,7 +4,7 @@ export enum OCPP16SupportedFeatureProfiles {
   LocalAuthListManagement = 'LocalAuthListManagement',
   Reservation = 'Reservation',
   SmartCharging = 'SmartCharging',
-  RemoteTrigger = 'RemoteTrigger'
+  RemoteTrigger = 'RemoteTrigger',
 }
 
 export enum OCPP16StandardParametersKey {
@@ -51,9 +51,9 @@ export enum OCPP16StandardParametersKey {
   ChargingScheduleAllowedChargingRateUnit = 'ChargingScheduleAllowedChargingRateUnit',
   ChargingScheduleMaxPeriods = 'ChargingScheduleMaxPeriods',
   ConnectorSwitch3to1PhaseSupported = 'ConnectorSwitch3to1PhaseSupported',
-  MaxChargingProfilesInstalled = 'MaxChargingProfilesInstalled'
+  MaxChargingProfilesInstalled = 'MaxChargingProfilesInstalled',
 }
 
 export enum OCPP16VendorParametersKey {
-  ConnectionUrl = 'ConnectionUrl'
+  ConnectionUrl = 'ConnectionUrl',
 }
index c9feccea5f91a34789f9ced610338d6644e2387d..c8c2c8905d5423a8f81df56117ab9211bf9535f4 100644 (file)
@@ -2,5 +2,5 @@ export enum OCPP16DiagnosticsStatus {
   Idle = 'Idle',
   Uploaded = 'Uploaded',
   UploadFailed = 'UploadFailed',
-  Uploading = 'Uploading'
+  Uploading = 'Uploading',
 }
index 92cac7c3245bad2f2952e731727afa689ab4f2a6..1fd189820c1ad7168408876b0ce40ad3cecb67ea 100644 (file)
@@ -17,7 +17,7 @@ export enum OCPP16MeterValueUnit {
   TEMP_CELSIUS = 'Celsius',
   TEMP_FAHRENHEIT = 'Fahrenheit',
   TEMP_KELVIN = 'K',
-  PERCENT = 'Percent'
+  PERCENT = 'Percent',
 }
 
 export enum OCPP16MeterValueContext {
@@ -28,7 +28,7 @@ export enum OCPP16MeterValueContext {
   SAMPLE_PERIODIC = 'Sample.Periodic',
   TRANSACTION_BEGIN = 'Transaction.Begin',
   TRANSACTION_END = 'Transaction.End',
-  TRIGGER = 'Trigger'
+  TRIGGER = 'Trigger',
 }
 
 export enum OCPP16MeterValueMeasurand {
@@ -53,7 +53,7 @@ export enum OCPP16MeterValueMeasurand {
   FAN_RPM = 'RPM',
   STATE_OF_CHARGE = 'SoC',
   TEMPERATURE = 'Temperature',
-  VOLTAGE = 'Voltage'
+  VOLTAGE = 'Voltage',
 }
 
 export enum OCPP16MeterValueLocation {
@@ -61,7 +61,7 @@ export enum OCPP16MeterValueLocation {
   CABLE = 'Cable',
   EV = 'EV',
   INLET = 'Inlet',
-  OUTLET = 'Outlet'
+  OUTLET = 'Outlet',
 }
 
 export enum OCPP16MeterValuePhase {
@@ -74,12 +74,12 @@ export enum OCPP16MeterValuePhase {
   L3_N = 'L3-N',
   L1_L2 = 'L1-L2',
   L2_L3 = 'L2-L3',
-  L3_L1 = 'L3-L1'
+  L3_L1 = 'L3-L1',
 }
 
 enum OCPP16MeterValueFormat {
   RAW = 'Raw',
-  SIGNED_DATA = 'SignedData'
+  SIGNED_DATA = 'SignedData',
 }
 
 export interface OCPP16SampledValue extends JsonObject {
index 32d9757f4cea58be69ca349976cbc760709933c2..a3c4911cc5702479b922134d109335f5a25deab2 100644 (file)
@@ -20,7 +20,7 @@ export enum OCPP16RequestCommand {
   METER_VALUES = 'MeterValues',
   DIAGNOSTICS_STATUS_NOTIFICATION = 'DiagnosticsStatusNotification',
   FIRMWARE_STATUS_NOTIFICATION = 'FirmwareStatusNotification',
-  DATA_TRANSFER = 'DataTransfer'
+  DATA_TRANSFER = 'DataTransfer',
 }
 
 export enum OCPP16IncomingRequestCommand {
@@ -40,7 +40,7 @@ export enum OCPP16IncomingRequestCommand {
   DATA_TRANSFER = 'DataTransfer',
   UPDATE_FIRMWARE = 'UpdateFirmware',
   RESERVE_NOW = 'ReserveNow',
-  CANCEL_RESERVATION = 'CancelReservation'
+  CANCEL_RESERVATION = 'CancelReservation',
 }
 
 export type OCPP16HeartbeatRequest = EmptyObject
@@ -96,7 +96,7 @@ export interface GetConfigurationRequest extends JsonObject {
 
 enum ResetType {
   HARD = 'Hard',
-  SOFT = 'Soft'
+  SOFT = 'Soft',
 }
 
 export interface ResetRequest extends JsonObject {
@@ -116,7 +116,7 @@ export interface SetChargingProfileRequest extends JsonObject {
 
 export enum OCPP16AvailabilityType {
   Inoperative = 'Inoperative',
-  Operative = 'Operative'
+  Operative = 'Operative',
 }
 
 export interface OCPP16ChangeAvailabilityRequest extends JsonObject {
@@ -145,7 +145,7 @@ export enum OCPP16FirmwareStatus {
   Idle = 'Idle',
   InstallationFailed = 'InstallationFailed',
   Installing = 'Installing',
-  Installed = 'Installed'
+  Installed = 'Installed',
 }
 
 export type OCPP16FirmwareStatusNotificationRequest = {
@@ -170,7 +170,7 @@ export enum OCPP16MessageTrigger {
   FirmwareStatusNotification = 'FirmwareStatusNotification',
   Heartbeat = 'Heartbeat',
   MeterValues = 'MeterValues',
-  StatusNotification = 'StatusNotification'
+  StatusNotification = 'StatusNotification',
 }
 
 export interface OCPP16TriggerMessageRequest extends JsonObject {
index b8c36ed24f471f6d23734b74c569e5eedd6ddfa0..f1e8b0e2699e68303ff92231c36db147bff914ba 100644 (file)
@@ -11,7 +11,7 @@ export interface OCPP16HeartbeatResponse extends JsonObject {
 export enum OCPP16UnlockStatus {
   UNLOCKED = 'Unlocked',
   UNLOCK_FAILED = 'UnlockFailed',
-  NOT_SUPPORTED = 'NotSupported'
+  NOT_SUPPORTED = 'NotSupported',
 }
 
 export interface UnlockConnectorResponse extends JsonObject {
@@ -22,7 +22,7 @@ export enum OCPP16ConfigurationStatus {
   ACCEPTED = 'Accepted',
   REJECTED = 'Rejected',
   REBOOT_REQUIRED = 'RebootRequired',
-  NOT_SUPPORTED = 'NotSupported'
+  NOT_SUPPORTED = 'NotSupported',
 }
 
 export interface ChangeConfigurationResponse extends JsonObject {
@@ -45,7 +45,7 @@ export interface GetConfigurationResponse extends JsonObject {
 export enum OCPP16ChargingProfileStatus {
   ACCEPTED = 'Accepted',
   REJECTED = 'Rejected',
-  NOT_SUPPORTED = 'NotSupported'
+  NOT_SUPPORTED = 'NotSupported',
 }
 
 export interface OCPP16GetCompositeScheduleResponse extends JsonObject {
@@ -62,7 +62,7 @@ export interface SetChargingProfileResponse extends JsonObject {
 export enum OCPP16AvailabilityStatus {
   ACCEPTED = 'Accepted',
   REJECTED = 'Rejected',
-  SCHEDULED = 'Scheduled'
+  SCHEDULED = 'Scheduled',
 }
 
 export interface OCPP16ChangeAvailabilityResponse extends JsonObject {
@@ -71,7 +71,7 @@ export interface OCPP16ChangeAvailabilityResponse extends JsonObject {
 
 export enum OCPP16ClearChargingProfileStatus {
   ACCEPTED = 'Accepted',
-  UNKNOWN = 'Unknown'
+  UNKNOWN = 'Unknown',
 }
 
 export interface OCPP16ClearChargingProfileResponse extends JsonObject {
@@ -91,7 +91,7 @@ export type OCPP16DiagnosticsStatusNotificationResponse = EmptyObject
 export enum OCPP16TriggerMessageStatus {
   ACCEPTED = 'Accepted',
   REJECTED = 'Rejected',
-  NOT_IMPLEMENTED = 'NotImplemented'
+  NOT_IMPLEMENTED = 'NotImplemented',
 }
 
 export interface OCPP16TriggerMessageResponse extends JsonObject {
@@ -102,7 +102,7 @@ export enum OCPP16DataTransferStatus {
   ACCEPTED = 'Accepted',
   REJECTED = 'Rejected',
   UNKNOWN_MESSAGE_ID = 'UnknownMessageId',
-  UNKNOWN_VENDOR_ID = 'UnknownVendorId'
+  UNKNOWN_VENDOR_ID = 'UnknownVendorId',
 }
 
 export interface OCPP16DataTransferResponse extends JsonObject {
@@ -116,7 +116,7 @@ export enum OCPP16ReservationStatus {
   OCCUPIED = 'Occupied',
   REJECTED = 'Rejected',
   UNAVAILABLE = 'Unavailable',
-  NOT_SUPPORTED = 'NotSupported'
+  NOT_SUPPORTED = 'NotSupported',
 }
 
 export interface OCPP16ReserveNowResponse extends JsonObject {
index 2e6c7289cde3ac8940d605b74bdff41c86b061df..58f7e96c0f8ce8863bfd5e81f5e9b0a1f05774f7 100644 (file)
@@ -12,7 +12,7 @@ export enum OCPP16StopTransactionReason {
   REMOTE = 'Remote',
   SOFT_RESET = 'SoftReset',
   UNLOCK_COMMAND = 'UnlockCommand',
-  DE_AUTHORIZED = 'DeAuthorized'
+  DE_AUTHORIZED = 'DeAuthorized',
 }
 
 export enum OCPP16AuthorizationStatus {
@@ -20,7 +20,7 @@ export enum OCPP16AuthorizationStatus {
   BLOCKED = 'Blocked',
   EXPIRED = 'Expired',
   INVALID = 'Invalid',
-  CONCURRENT_TX = 'ConcurrentTx'
+  CONCURRENT_TX = 'ConcurrentTx',
 }
 
 interface IdTagInfo extends JsonObject {
index 9d13b2a829aa295cb6cffd86b0409d5cb1b419f9..01fed13b09aebd837c4f3475a1a32fbff821caff 100644 (file)
@@ -9,7 +9,7 @@ export enum DataEnumType {
   boolean = 'boolean',
   OptionList = 'OptionList',
   SequenceList = 'SequenceList',
-  MemberList = 'MemberList'
+  MemberList = 'MemberList',
 }
 
 export enum BootReasonEnumType {
@@ -21,12 +21,12 @@ export enum BootReasonEnumType {
   ScheduledReset = 'ScheduledReset',
   Triggered = 'Triggered',
   Unknown = 'Unknown',
-  Watchdog = 'Watchdog'
+  Watchdog = 'Watchdog',
 }
 
 export enum OperationalStatusEnumType {
   Operative = 'Operative',
-  Inoperative = 'Inoperative'
+  Inoperative = 'Inoperative',
 }
 
 export enum OCPP20ConnectorStatusEnumType {
@@ -34,7 +34,7 @@ export enum OCPP20ConnectorStatusEnumType {
   Occupied = 'Occupied',
   Reserved = 'Reserved',
   Unavailable = 'Unavailable',
-  Faulted = 'Faulted'
+  Faulted = 'Faulted',
 }
 
 export type GenericStatusEnumType = GenericStatus
@@ -42,7 +42,7 @@ export type GenericStatusEnumType = GenericStatus
 export enum HashAlgorithmEnumType {
   SHA256 = 'SHA256',
   SHA384 = 'SHA384',
-  SHA512 = 'SHA512'
+  SHA512 = 'SHA512',
 }
 
 export enum GetCertificateIdUseEnumType {
@@ -50,46 +50,46 @@ export enum GetCertificateIdUseEnumType {
   MORootCertificate = 'MORootCertificate',
   CSMSRootCertificate = 'CSMSRootCertificate',
   V2GCertificateChain = 'V2GCertificateChain',
-  ManufacturerRootCertificate = 'ManufacturerRootCertificate'
+  ManufacturerRootCertificate = 'ManufacturerRootCertificate',
 }
 
 export enum GetCertificateStatusEnumType {
   Accepted = 'Accepted',
-  Failed = 'Failed'
+  Failed = 'Failed',
 }
 
 export enum GetInstalledCertificateStatusEnumType {
   Accepted = 'Accepted',
-  NotFound = 'NotFound'
+  NotFound = 'NotFound',
 }
 
 export enum InstallCertificateStatusEnumType {
   Accepted = 'Accepted',
   Rejected = 'Rejected',
-  Failed = 'Failed'
+  Failed = 'Failed',
 }
 
 export enum InstallCertificateUseEnumType {
   V2GRootCertificate = 'V2GRootCertificate',
   MORootCertificate = 'MORootCertificate',
   CSMSRootCertificate = 'CSMSRootCertificate',
-  ManufacturerRootCertificate = 'ManufacturerRootCertificate'
+  ManufacturerRootCertificate = 'ManufacturerRootCertificate',
 }
 
 export enum DeleteCertificateStatusEnumType {
   Accepted = 'Accepted',
   Failed = 'Failed',
-  NotFound = 'NotFound'
+  NotFound = 'NotFound',
 }
 
 export enum CertificateActionEnumType {
   Install = 'Install',
-  Update = 'Update'
+  Update = 'Update',
 }
 
 export enum CertificateSigningUseEnumType {
   ChargingStationCertificate = 'ChargingStationCertificate',
-  V2GCertificate = 'V2GCertificate'
+  V2GCertificate = 'V2GCertificate',
 }
 
 export type CertificateSignedStatusEnumType = GenericStatusEnumType
index ef7a5161b3797282425947b30d5e0c30c85bddaa..0404936e834022793cf9caf41bee123e34a427e3 100644 (file)
@@ -10,13 +10,13 @@ import type { JsonObject } from '../../JsonType.js'
 export enum OCPP20RequestCommand {
   BOOT_NOTIFICATION = 'BootNotification',
   HEARTBEAT = 'Heartbeat',
-  STATUS_NOTIFICATION = 'StatusNotification'
+  STATUS_NOTIFICATION = 'StatusNotification',
 }
 
 export enum OCPP20IncomingRequestCommand {
   CLEAR_CACHE = 'ClearCache',
   REQUEST_START_TRANSACTION = 'RequestStartTransaction',
-  REQUEST_STOP_TRANSACTION = 'RequestStopTransaction'
+  REQUEST_STOP_TRANSACTION = 'RequestStopTransaction',
 }
 
 type ModemType = {
index b5cd53e5620d001b9a1e39c71185b064b7fe9309..2aa2ed3332b7486f853da09033f8dbfca4f19c71 100644 (file)
@@ -19,7 +19,7 @@ enum OCPP20ComponentName {
   SecurityCtrlr = 'SecurityCtrlr',
   SmartChargingCtrlr = 'SmartChargingCtrlr',
   TariffCostCtrlr = 'TariffCostCtrlr',
-  TxCtrlr = 'TxCtrlr'
+  TxCtrlr = 'TxCtrlr',
 }
 
 export enum OCPP20RequiredVariableName {
@@ -50,23 +50,23 @@ export enum OCPP20RequiredVariableName {
   TxEndedMeasurands = 'TxEndedMeasurands',
   TxStartedMeasurands = 'TxStartedMeasurands',
   TxUpdatedMeasurands = 'TxUpdatedMeasurands',
-  TxUpdatedInterval = 'TxUpdatedInterval'
+  TxUpdatedInterval = 'TxUpdatedInterval',
 }
 
 export enum OCPP20OptionalVariableName {
   HeartbeatInterval = 'HeartbeatInterval',
-  WebSocketPingInterval = 'WebSocketPingInterval'
+  WebSocketPingInterval = 'WebSocketPingInterval',
 }
 
 export enum OCPP20VendorVariableName {
-  ConnectionUrl = 'ConnectionUrl'
+  ConnectionUrl = 'ConnectionUrl',
 }
 
 enum AttributeEnumType {
   Actual = 'Actual',
   Target = 'Target',
   MinSet = 'MinSet',
-  MaxSet = 'MaxSet'
+  MaxSet = 'MaxSet',
 }
 
 type ComponentType = {
@@ -99,7 +99,7 @@ enum SetVariableStatusEnumType {
   UnknownComponent = 'UnknownComponent',
   UnknownVariable = 'UnknownVariable',
   NotSupportedAttributeType = 'NotSupportedAttributeType',
-  RebootRequired = 'RebootRequired'
+  RebootRequired = 'RebootRequired',
 }
 
 export type OCPP20SetVariableResultType = {
index 55b92f106ed3d704200d76ca32144eadab4c3477..e8923973aefba5504e95049dd6e969417c6ad879 100644 (file)
@@ -2,7 +2,7 @@ import type { JsonObject } from '../JsonType.js'
 
 export enum GenericStatus {
   Accepted = 'Accepted',
-  Rejected = 'Rejected'
+  Rejected = 'Rejected',
 }
 
 export interface GenericResponse extends JsonObject {
@@ -12,5 +12,5 @@ export interface GenericResponse extends JsonObject {
 export enum RegistrationStatusEnumType {
   ACCEPTED = 'Accepted',
   PENDING = 'Pending',
-  REJECTED = 'Rejected'
+  REJECTED = 'Rejected',
 }
index ac8a094508bfa15fe57eac1a2a1bdda844c1f145..75062774d57b0871d7a2d595b4e5bdd5d1590a9f 100644 (file)
@@ -39,7 +39,7 @@ export enum ConnectorPhaseRotation {
   SRT = 'SRT',
   STR = 'STR',
   TRS = 'TRS',
-  TSR = 'TSR'
+  TSR = 'TSR',
 }
 
 export type ConfigurationKeyType = string | StandardParametersKey | VendorParametersKey
index d6d8357fc71cef712facbd4b305f913aa08937ac..e8762380b5872b9cddebc3d33f0f3075170dd834 100644 (file)
@@ -19,5 +19,5 @@ export enum ErrorType {
   // Payload for Action is syntactically correct but at least one of the fields violates data type constraints (e.g. "somestring" = 12)
   TYPE_CONSTRAINT_VIOLATION = 'TypeConstraintViolation',
   // Any other error not covered by the previous ones
-  GENERIC_ERROR = 'GenericError'
+  GENERIC_ERROR = 'GenericError',
 }
index 972ed474cc15fbdabc6b9a5049f5f44a8738091e..1346ee82bc4c9f18ed93396f5b1ddfef1d8e4621 100644 (file)
@@ -1,5 +1,5 @@
 export enum MessageType {
   CALL_MESSAGE = 2, // Caller to Callee
   CALL_RESULT_MESSAGE = 3, // Callee to Caller
-  CALL_ERROR_MESSAGE = 4 // Callee to Caller
+  CALL_ERROR_MESSAGE = 4, // Callee to Caller
 }
index 3342d81d7f79419b79e3c46b0222a838412a82ed..1df59397e5155035609cd64e76b913494f3e8085 100644 (file)
@@ -1,3 +1,3 @@
 export enum OCPPProtocol {
-  JSON = 'json'
+  JSON = 'json',
 }
index 37690b5ef70d561ea59e352bfdfb97ebb40e94e7..a19fc28033e6afe9f9475cbd8d12334185ad3b04 100644 (file)
@@ -1,5 +1,5 @@
 export enum OCPPVersion {
   VERSION_16 = '1.6',
   VERSION_20 = '2.0',
-  VERSION_201 = '2.0.1'
+  VERSION_201 = '2.0.1',
 }
index c718f1e03ab5b61c6fc8b92cdf49dd1154f179fd..cc9a489e4caa6f1aa6ad7ba5051c274d1207e3d8 100644 (file)
@@ -64,7 +64,7 @@ export type CachedRequest = [
   ResponseCallback,
   ErrorCallback,
   RequestCommand | IncomingRequestCommand,
-  JsonType
+  JsonType,
 ]
 
 export const MessageTrigger = {
index 5f15838a5d303639bbc1ebff347bd500809eb67b..69050ed953eb6c42c2fab8c962b935980e6f558a 100644 (file)
@@ -9,5 +9,5 @@ export enum ReservationTerminationReason {
   TRANSACTION_STARTED = 'TransactionStarted',
   CONNECTOR_STATE_CHANGED = 'ConnectorStateChanged',
   RESERVATION_CANCELED = 'ReservationCanceled',
-  REPLACE_EXISTING = 'ReplaceExisting'
+  REPLACE_EXISTING = 'ReplaceExisting',
 }
index c6b35b84457fa9f090b002417e4cbdfeb32cfb5e..b58e3a77eb780a8e4836f7150658ad8268dd6233 100644 (file)
@@ -6,7 +6,7 @@ import { Constants } from './Constants.js'
 
 export enum AsyncLockType {
   configuration = 'configuration',
-  performance = 'performance'
+  performance = 'performance',
 }
 
 type ResolveType = (value: void | PromiseLike<void>) => void
index b25aba8c4dfb445153b4615247b70bcb508399f4..1869fdbf2cf9d9c4e86986055faa5d86b0530b87 100644 (file)
@@ -29,7 +29,7 @@ export const buildConnectorsStatus = (chargingStation: ChargingStation): Connect
 
 export const enum OutputFormat {
   configuration = 'configuration',
-  worker = 'worker'
+  worker = 'worker',
 }
 
 export const buildEvsesStatus = (
index 3a1a89c98651be7e55a993e5f3867a939cd7e350..ee72c34eebfaf59bbf2e544f264967e0e41ea658 100644 (file)
@@ -47,7 +47,7 @@ export class CircularArray<T> extends Array<T> {
 
   public splice (start: number, deleteCount?: number, ...items: T[]): CircularArray<T> {
     let itemsRemoved: T[] = []
-    if (arguments.length >= 3 && deleteCount !== undefined) {
+    if (arguments.length >= 3 && deleteCount != null) {
       itemsRemoved = super.splice(start, deleteCount, ...items)
       if (this.length > this.size) {
         const itemsOverflowing = super.splice(0, this.length - this.size)
index 925e7c131c47b471761e7f2369040271bdcc3283..fd976859aeef04ff6f76f5cccd4395b8b75d1b5c 100644 (file)
@@ -71,7 +71,7 @@ export const checkWorkerElementsPerWorker = (
   elementsPerWorker: ElementsPerWorkerType | undefined
 ): void => {
   if (
-    elementsPerWorker !== undefined &&
+    elementsPerWorker != null &&
     elementsPerWorker !== 'auto' &&
     elementsPerWorker !== 'all' &&
     !Number.isSafeInteger(elementsPerWorker)
index faf327dbede39d111c139d32b8dcd313d2981381..205cec42969796a6e70d58b1935762aec0e19d65 100644 (file)
@@ -6,7 +6,7 @@ export enum WorkerProcessType {
   workerSet = 'workerSet',
   /** @experimental */
   dynamicPool = 'dynamicPool',
-  fixedPool = 'fixedPool'
+  fixedPool = 'fixedPool',
 }
 
 export interface SetInfo {
@@ -23,7 +23,7 @@ export enum WorkerSetEvents {
   stopped = 'stopped',
   error = 'error',
   elementStarted = 'elementStarted',
-  elementError = 'elementError'
+  elementError = 'elementError',
 }
 
 export const WorkerEvents = {
@@ -57,5 +57,5 @@ export interface WorkerMessage<T extends WorkerData> {
 export enum WorkerMessageEvents {
   startWorkerElement = 'startWorkerElement',
   startWorkerElementError = 'startWorkerElementError',
-  startedWorkerElement = 'startedWorkerElement'
+  startedWorkerElement = 'startedWorkerElement',
 }
index 3855772d777698342641b2722e5d0860ab147aa3..875ab4186fb3aee92c60a881b976ce940b6284d2 100644 (file)
@@ -5,7 +5,7 @@ module.exports = defineConfig({
   root: true,
 
   env: {
-    node: true
+    node: true,
   },
 
   plugins: ['import'],
@@ -15,19 +15,19 @@ module.exports = defineConfig({
     'plugin:import/recommended',
     'plugin:vue/vue3-recommended',
     '@vue/eslint-config-prettier',
-    '@vue/eslint-config-typescript/recommended'
+    '@vue/eslint-config-typescript/recommended',
   ],
 
   settings: {
     'import/resolver': {
       typescript: {
-        project: './tsconfig.json'
-      }
-    }
+        project: './tsconfig.json',
+      },
+    },
   },
 
   parserOptions: {
-    ecmaVersion: 'latest'
+    ecmaVersion: 'latest',
   },
 
   rules: {
@@ -38,9 +38,9 @@ module.exports = defineConfig({
     'sort-imports': [
       'error',
       {
-        ignoreDeclarationSort: true
-      }
+        ignoreDeclarationSort: true,
+      },
     ],
-    'import/order': 'error'
-  }
+    'import/order': 'error',
+  },
 })
index a8ba217a05a2668399b9ff2c7782fbbd51358f59..59a73cecbc31dbda0708914953e414147fc166a3 100644 (file)
@@ -1,5 +1,5 @@
 export default {
   '*.{.css,json,md,yml,yaml,html,js,jsx,cjs,mjs,ts,tsx,cts,mts}': 'prettier --cache --write',
   '*.{vue,js,jsx,cjs,mjs,ts,tsx,cts,mts}':
-    'eslint . --cache --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore'
+    'eslint . --cache --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore',
 }
index 6632aaeb6873d9f1edf3b4ab3cbe617ab8ec283a..baeeb0d43e1a8c7b87062d2de936f0b1f9db887a 100644 (file)
@@ -3,5 +3,5 @@
   "printWidth": 100,
   "semi": false,
   "singleQuote": true,
-  "trailingComma": "none"
+  "trailingComma": "es5"
 }
index 784bf990e2cbfc0c2d14ec00ca3c4cfb24a1f676..c30f597865bf5aa0ab77fb726e8022c5ecd4400b 100644 (file)
@@ -34,7 +34,7 @@
   "dependencies": {
     "finalhandler": "^1.2.0",
     "serve-static": "^1.15.0",
-    "vue": "^3.3.13",
+    "vue": "^3.4.0",
     "vue-router": "^4.2.5"
   },
   "devDependencies": {
     "@types/node": "^20.10.5",
     "@typescript-eslint/eslint-plugin": "^6.16.0",
     "@typescript-eslint/parser": "^6.16.0",
-    "@vitejs/plugin-vue": "^5.0.0",
+    "@vitejs/plugin-vue": "^5.0.1",
     "@vitejs/plugin-vue-jsx": "^3.1.0",
     "@vitest/coverage-v8": "^1.1.0",
-    "@vue/eslint-config-prettier": "^8.0.0",
+    "@vue/eslint-config-prettier": "^9.0.0",
     "@vue/eslint-config-typescript": "^12.0.0",
     "@vue/test-utils": "^2.4.3",
     "@vue/tsconfig": "^0.5.1",
index 227c01bee3fd1691cdcda896dbd46d11fea71f5f..5e1b67df88243eb455470c69e621159cf3c905df 100644 (file)
@@ -15,11 +15,11 @@ dependencies:
     specifier: ^1.15.0
     version: 1.15.0
   vue:
-    specifier: ^3.3.13
-    version: 3.3.13(typescript@5.3.3)
+    specifier: ^3.4.0
+    version: 3.4.0(typescript@5.3.3)
   vue-router:
     specifier: ^4.2.5
-    version: 4.2.5(vue@3.3.13)
+    version: 4.2.5(vue@3.4.0)
 
 devDependencies:
   '@tsconfig/node20':
@@ -38,23 +38,23 @@ devDependencies:
     specifier: ^6.16.0
     version: 6.16.0(eslint@8.56.0)(typescript@5.3.3)
   '@vitejs/plugin-vue':
-    specifier: ^5.0.0
-    version: 5.0.0(vite@5.0.10)(vue@3.3.13)
+    specifier: ^5.0.1
+    version: 5.0.1(vite@5.0.10)(vue@3.4.0)
   '@vitejs/plugin-vue-jsx':
     specifier: ^3.1.0
-    version: 3.1.0(vite@5.0.10)(vue@3.3.13)
+    version: 3.1.0(vite@5.0.10)(vue@3.4.0)
   '@vitest/coverage-v8':
     specifier: ^1.1.0
     version: 1.1.0(vitest@1.1.0)
   '@vue/eslint-config-prettier':
-    specifier: ^8.0.0
-    version: 8.0.0(eslint@8.56.0)(prettier@3.1.1)
+    specifier: ^9.0.0
+    version: 9.0.0(eslint@8.56.0)(prettier@3.1.1)
   '@vue/eslint-config-typescript':
     specifier: ^12.0.0
     version: 12.0.0(eslint-plugin-vue@9.19.2)(eslint@8.56.0)(typescript@5.3.3)
   '@vue/test-utils':
     specifier: ^2.4.3
-    version: 2.4.3(vue@3.3.13)
+    version: 2.4.3(vue@3.4.0)
   '@vue/tsconfig':
     specifier: ^0.5.1
     version: 0.5.1
@@ -1033,7 +1033,7 @@ packages:
     resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
     dev: true
 
-  /@vitejs/plugin-vue-jsx@3.1.0(vite@5.0.10)(vue@3.3.13):
+  /@vitejs/plugin-vue-jsx@3.1.0(vite@5.0.10)(vue@3.4.0):
     resolution: {integrity: sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==}
     engines: {node: ^14.18.0 || >=16.0.0}
     peerDependencies:
@@ -1044,20 +1044,20 @@ packages:
       '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.6)
       '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.23.6)
       vite: 5.0.10(@types/node@20.10.5)
-      vue: 3.3.13(typescript@5.3.3)
+      vue: 3.4.0(typescript@5.3.3)
     transitivePeerDependencies:
       - supports-color
     dev: true
 
-  /@vitejs/plugin-vue@5.0.0(vite@5.0.10)(vue@3.3.13):
-    resolution: {integrity: sha512-7x5e8X4J1Wi4NxudGjJBd2OFerAi/0nzF80ojCzvfj347WVr0YSn82C8BSsgwSHzlk9Kw5xnZfj0/7RLnNwP5w==}
+  /@vitejs/plugin-vue@5.0.1(vite@5.0.10)(vue@3.4.0):
+    resolution: {integrity: sha512-lwvZX5tDhJpRJEKsjoUSWgaD26Lk9X4aDYGAPpr/Q6cLTT3PC8LPu2dsnYEweAZiNgHsbyKL2Svc/CDrFOsbtw==}
     engines: {node: ^18.0.0 || >=20.0.0}
     peerDependencies:
       vite: ^5.0.0
       vue: ^3.2.25
     dependencies:
       vite: 5.0.10(@types/node@20.10.5)
-      vue: 3.3.13(typescript@5.3.3)
+      vue: 3.4.0(typescript@5.3.3)
     dev: true
 
   /@vitest/coverage-v8@1.1.0(vitest@1.1.0):
@@ -1144,53 +1144,53 @@ packages:
       - supports-color
     dev: true
 
-  /@vue/compiler-core@3.3.13:
-    resolution: {integrity: sha512-bwi9HShGu7uaZLOErZgsH2+ojsEdsjerbf2cMXPwmvcgZfVPZ2BVZzCVnwZBxTAYd6Mzbmf6izcUNDkWnBBQ6A==}
+  /@vue/compiler-core@3.4.0:
+    resolution: {integrity: sha512-cw4S15PkNGTKkP9OFFl4wnQoJJk+HqaYBafgrpDnSukiQGpcYJeRpzmqnCVCIkl6V6Eqsv58E0OAdl6b592vuA==}
     dependencies:
       '@babel/parser': 7.23.6
-      '@vue/shared': 3.3.13
+      '@vue/shared': 3.4.0
+      entities: 4.5.0
       estree-walker: 2.0.2
       source-map-js: 1.0.2
 
-  /@vue/compiler-dom@3.3.13:
-    resolution: {integrity: sha512-EYRDpbLadGtNL0Gph+HoKiYqXLqZ0xSSpR5Dvnu/Ep7ggaCbjRDIus1MMxTS2Qm0koXED4xSlvTZaTnI8cYAsw==}
+  /@vue/compiler-dom@3.4.0:
+    resolution: {integrity: sha512-E957uOhpoE48YjZGWeAoLmNYd3UeU4oIP8kJi8Rcsb9l2tV8Z48Jn07Zgq1aW0v3vuhlmydEKkKKbhLpADHXEA==}
     dependencies:
-      '@vue/compiler-core': 3.3.13
-      '@vue/shared': 3.3.13
+      '@vue/compiler-core': 3.4.0
+      '@vue/shared': 3.4.0
 
-  /@vue/compiler-sfc@3.3.13:
-    resolution: {integrity: sha512-DQVmHEy/EKIgggvnGRLx21hSqnr1smUS9Aq8tfxiiot8UR0/pXKHN9k78/qQ7etyQTFj5em5nruODON7dBeumw==}
+  /@vue/compiler-sfc@3.4.0:
+    resolution: {integrity: sha512-PWE0mE2yW7bJS7PmaCrVDEG6KPaDJo0pb4AKnCxJ5lRRDO4IwL/fswBGhCpov+v/c+N/e+hQHpXNwvqU9BtUXg==}
     dependencies:
       '@babel/parser': 7.23.6
-      '@vue/compiler-core': 3.3.13
-      '@vue/compiler-dom': 3.3.13
-      '@vue/compiler-ssr': 3.3.13
-      '@vue/reactivity-transform': 3.3.13
-      '@vue/shared': 3.3.13
+      '@vue/compiler-core': 3.4.0
+      '@vue/compiler-dom': 3.4.0
+      '@vue/compiler-ssr': 3.4.0
+      '@vue/shared': 3.4.0
       estree-walker: 2.0.2
       magic-string: 0.30.5
       postcss: 8.4.32
       source-map-js: 1.0.2
 
-  /@vue/compiler-ssr@3.3.13:
-    resolution: {integrity: sha512-d/P3bCeUGmkJNS1QUZSAvoCIW4fkOKK3l2deE7zrp0ypJEy+En2AcypIkqvcFQOcw3F0zt2VfMvNsA9JmExTaw==}
+  /@vue/compiler-ssr@3.4.0:
+    resolution: {integrity: sha512-+oXKy105g9DIYQKDi3Gwung0xqQX5gJHr0GR+Vf7yK/WkNDM6q61ummcKmKAB85EIst8y3vj2PA9z9YU5Oc4DQ==}
     dependencies:
-      '@vue/compiler-dom': 3.3.13
-      '@vue/shared': 3.3.13
+      '@vue/compiler-dom': 3.4.0
+      '@vue/shared': 3.4.0
 
   /@vue/devtools-api@6.5.1:
     resolution: {integrity: sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==}
     dev: false
 
-  /@vue/eslint-config-prettier@8.0.0(eslint@8.56.0)(prettier@3.1.1):
-    resolution: {integrity: sha512-55dPqtC4PM/yBjhAr+yEw6+7KzzdkBuLmnhBrDfp4I48+wy+Giqqj9yUr5T2uD/BkBROjjmqnLZmXRdOx/VtQg==}
+  /@vue/eslint-config-prettier@9.0.0(eslint@8.56.0)(prettier@3.1.1):
+    resolution: {integrity: sha512-z1ZIAAUS9pKzo/ANEfd2sO+v2IUalz7cM/cTLOZ7vRFOPk5/xuRKQteOu1DErFLAh/lYGXMVZ0IfYKlyInuDVg==}
     peerDependencies:
       eslint: '>= 8.0.0'
       prettier: '>= 3.0.0'
     dependencies:
       eslint: 8.56.0
-      eslint-config-prettier: 8.10.0(eslint@8.56.0)
-      eslint-plugin-prettier: 5.1.2(eslint-config-prettier@8.10.0)(eslint@8.56.0)(prettier@3.1.1)
+      eslint-config-prettier: 9.1.0(eslint@8.56.0)
+      eslint-plugin-prettier: 5.1.2(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.1.1)
       prettier: 3.1.1
     transitivePeerDependencies:
       - '@types/eslint'
@@ -1217,46 +1217,37 @@ packages:
       - supports-color
     dev: true
 
-  /@vue/reactivity-transform@3.3.13:
-    resolution: {integrity: sha512-oWnydGH0bBauhXvh5KXUy61xr9gKaMbtsMHk40IK9M4gMuKPJ342tKFarY0eQ6jef8906m35q37wwA8DMZOm5Q==}
+  /@vue/reactivity@3.4.0:
+    resolution: {integrity: sha512-X6BvQjNcgKKHWPQzlRJjZvIu72Kkn8xJSv6VNptqWh8dToMknD0Hch1l4N7llKgVt6Diq4lMeUnErbZFvuGlAA==}
     dependencies:
-      '@babel/parser': 7.23.6
-      '@vue/compiler-core': 3.3.13
-      '@vue/shared': 3.3.13
-      estree-walker: 2.0.2
-      magic-string: 0.30.5
+      '@vue/shared': 3.4.0
 
-  /@vue/reactivity@3.3.13:
-    resolution: {integrity: sha512-fjzCxceMahHhi4AxUBzQqqVhuA21RJ0COaWTbIBl1PruGW1CeY97louZzLi4smpYx+CHfFPPU/CS8NybbGvPKQ==}
+  /@vue/runtime-core@3.4.0:
+    resolution: {integrity: sha512-NYrj/JgMMqnSWcIud8lLzDQrBLu+EVEeQ56QE9DYJeKG2eFrnQy8o/h57R9nCprafHs0uImKL3xsdXjHseYVxw==}
     dependencies:
-      '@vue/shared': 3.3.13
+      '@vue/reactivity': 3.4.0
+      '@vue/shared': 3.4.0
 
-  /@vue/runtime-core@3.3.13:
-    resolution: {integrity: sha512-1TzA5TvGuh2zUwMJgdfvrBABWZ7y8kBwBhm7BXk8rvdx2SsgcGfz2ruv2GzuGZNvL1aKnK8CQMV/jFOrxNQUMA==}
+  /@vue/runtime-dom@3.4.0:
+    resolution: {integrity: sha512-1ZoHEsA5l77qbx2F+SWo/hQdBksPuOmww1t/jznidDG+xMB/iidafEFvo2ZTtZii0JfTIrlDhjshfYUvQC17wQ==}
     dependencies:
-      '@vue/reactivity': 3.3.13
-      '@vue/shared': 3.3.13
-
-  /@vue/runtime-dom@3.3.13:
-    resolution: {integrity: sha512-JJkpE8R/hJKXqVTgUoODwS5wqKtOsmJPEqmp90PDVGygtJ4C0PtOkcEYXwhiVEmef6xeXcIlrT3Yo5aQ4qkHhQ==}
-    dependencies:
-      '@vue/runtime-core': 3.3.13
-      '@vue/shared': 3.3.13
+      '@vue/runtime-core': 3.4.0
+      '@vue/shared': 3.4.0
       csstype: 3.1.3
 
-  /@vue/server-renderer@3.3.13(vue@3.3.13):
-    resolution: {integrity: sha512-vSnN+nuf6iSqTL3Qgx/9A+BT+0Zf/VJOgF5uMZrKjYPs38GMYyAU1coDyBNHauehXDaP+zl73VhwWv0vBRBHcg==}
+  /@vue/server-renderer@3.4.0(vue@3.4.0):
+    resolution: {integrity: sha512-GuOVCyLDlWPu8nKo5AUxb8B+iB/Ik4I1WwqAlBqf5+y48z6D6rvKshp7KR3cJea+pte1tdTsb0+Ja82KizMZOw==}
     peerDependencies:
-      vue: 3.3.13
+      vue: 3.4.0
     dependencies:
-      '@vue/compiler-ssr': 3.3.13
-      '@vue/shared': 3.3.13
-      vue: 3.3.13(typescript@5.3.3)
+      '@vue/compiler-ssr': 3.4.0
+      '@vue/shared': 3.4.0
+      vue: 3.4.0(typescript@5.3.3)
 
-  /@vue/shared@3.3.13:
-    resolution: {integrity: sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==}
+  /@vue/shared@3.4.0:
+    resolution: {integrity: sha512-Nhh3ed3G1R6HDAWiG6YYFt0Zmq/To6u5vjzwa9TIquGheCXPY6nEdIAO8ZdlwXsWqC2yNLj700FOvShpYt5CEA==}
 
-  /@vue/test-utils@2.4.3(vue@3.3.13):
+  /@vue/test-utils@2.4.3(vue@3.4.0):
     resolution: {integrity: sha512-F4K7mF+ad++VlTrxMJVRnenKSJmO6fkQt2wpRDiKDesQMkfpniGWsqEi/JevxGBo2qEkwwjvTUAoiGJLNx++CA==}
     peerDependencies:
       '@vue/server-renderer': ^3.0.1
@@ -1266,7 +1257,7 @@ packages:
         optional: true
     dependencies:
       js-beautify: 1.14.11
-      vue: 3.3.13(typescript@5.3.3)
+      vue: 3.4.0(typescript@5.3.3)
       vue-component-type-helpers: 1.8.27
     dev: true
 
@@ -1279,12 +1270,12 @@ packages:
     engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
     dev: true
 
-  /acorn-jsx@5.3.2(acorn@8.11.2):
+  /acorn-jsx@5.3.2(acorn@8.11.3):
     resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
     peerDependencies:
       acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
     dependencies:
-      acorn: 8.11.2
+      acorn: 8.11.3
     dev: true
 
   /acorn-walk@8.3.1:
@@ -1292,8 +1283,8 @@ packages:
     engines: {node: '>=0.4.0'}
     dev: true
 
-  /acorn@8.11.2:
-    resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==}
+  /acorn@8.11.3:
+    resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
     engines: {node: '>=0.4.0'}
     hasBin: true
     dev: true
@@ -1780,7 +1771,6 @@ packages:
   /entities@4.5.0:
     resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
     engines: {node: '>=0.12'}
-    dev: true
 
   /es-abstract@1.22.3:
     resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==}
@@ -1901,8 +1891,8 @@ packages:
     engines: {node: '>=10'}
     dev: true
 
-  /eslint-config-prettier@8.10.0(eslint@8.56.0):
-    resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==}
+  /eslint-config-prettier@9.1.0(eslint@8.56.0):
+    resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
     hasBin: true
     peerDependencies:
       eslint: '>=7.0.0'
@@ -2013,7 +2003,7 @@ packages:
       - supports-color
     dev: true
 
-  /eslint-plugin-prettier@5.1.2(eslint-config-prettier@8.10.0)(eslint@8.56.0)(prettier@3.1.1):
+  /eslint-plugin-prettier@5.1.2(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.1.1):
     resolution: {integrity: sha512-dhlpWc9vOwohcWmClFcA+HjlvUpuyynYs0Rf+L/P6/0iQE6vlHW9l5bkfzN62/Stm9fbq8ku46qzde76T1xlSg==}
     engines: {node: ^14.18.0 || >=16.0.0}
     peerDependencies:
@@ -2028,7 +2018,7 @@ packages:
         optional: true
     dependencies:
       eslint: 8.56.0
-      eslint-config-prettier: 8.10.0(eslint@8.56.0)
+      eslint-config-prettier: 9.1.0(eslint@8.56.0)
       prettier: 3.1.1
       prettier-linter-helpers: 1.0.0
       synckit: 0.8.8
@@ -2044,7 +2034,7 @@ packages:
       eslint: 8.56.0
       natural-compare: 1.4.0
       nth-check: 2.1.1
-      postcss-selector-parser: 6.0.14
+      postcss-selector-parser: 6.0.15
       semver: 7.5.4
       vue-eslint-parser: 9.3.2(eslint@8.56.0)
       xml-name-validator: 4.0.0
@@ -2116,8 +2106,8 @@ packages:
     resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     dependencies:
-      acorn: 8.11.2
-      acorn-jsx: 5.3.2(acorn@8.11.2)
+      acorn: 8.11.3
+      acorn-jsx: 5.3.2(acorn@8.11.3)
       eslint-visitor-keys: 3.4.3
     dev: true
 
@@ -2998,7 +2988,7 @@ packages:
   /mlly@1.4.2:
     resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==}
     dependencies:
-      acorn: 8.11.2
+      acorn: 8.11.3
       pathe: 1.1.1
       pkg-types: 1.0.3
       ufo: 1.3.2
@@ -3231,8 +3221,8 @@ packages:
       pathe: 1.1.1
     dev: true
 
-  /postcss-selector-parser@6.0.14:
-    resolution: {integrity: sha512-65xXYsT40i9GyWzlHQ5ShZoK7JZdySeOozi/tz2EezDo6c04q6+ckYMeoY7idaie1qp2dT5KoYQ2yky6JuoHnA==}
+  /postcss-selector-parser@6.0.15:
+    resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==}
     engines: {node: '>=4'}
     dependencies:
       cssesc: 3.0.0
@@ -3610,7 +3600,7 @@ packages:
   /strip-literal@1.3.0:
     resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==}
     dependencies:
-      acorn: 8.11.2
+      acorn: 8.11.3
     dev: true
 
   /supports-color@5.5.0:
@@ -3996,28 +3986,28 @@ packages:
       - supports-color
     dev: true
 
-  /vue-router@4.2.5(vue@3.3.13):
+  /vue-router@4.2.5(vue@3.4.0):
     resolution: {integrity: sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==}
     peerDependencies:
       vue: ^3.2.0
     dependencies:
       '@vue/devtools-api': 6.5.1
-      vue: 3.3.13(typescript@5.3.3)
+      vue: 3.4.0(typescript@5.3.3)
     dev: false
 
-  /vue@3.3.13(typescript@5.3.3):
-    resolution: {integrity: sha512-LDnUpQvDgsfc0u/YgtAgTMXJlJQqjkxW1PVcOnJA5cshPleULDjHi7U45pl2VJYazSSvLH8UKcid/kzH8I0a0Q==}
+  /vue@3.4.0(typescript@5.3.3):
+    resolution: {integrity: sha512-iTE9Ve/7DO/H39+gXHrNkRdnh1jDwPe/fap4brbPKkp1APMkS03OiZ+UY0dwpqtRX0iPWQTkh8Fu3hKgLtaxfA==}
     peerDependencies:
       typescript: '*'
     peerDependenciesMeta:
       typescript:
         optional: true
     dependencies:
-      '@vue/compiler-dom': 3.3.13
-      '@vue/compiler-sfc': 3.3.13
-      '@vue/runtime-dom': 3.3.13
-      '@vue/server-renderer': 3.3.13(vue@3.3.13)
-      '@vue/shared': 3.3.13
+      '@vue/compiler-dom': 3.4.0
+      '@vue/compiler-sfc': 3.4.0
+      '@vue/runtime-dom': 3.4.0
+      '@vue/server-renderer': 3.4.0(vue@3.4.0)
+      '@vue/shared': 3.4.0
       typescript: 5.3.3
 
   /w3c-xmlserializer@5.0.0:
index cf6f3eb2d23a41435484386d0ef4a9d850d6bda4..c9068f9b66a087c5010e5fcab6e39b6580eef4b4 100644 (file)
@@ -4,8 +4,8 @@ const config: BaseConfig = {
   uiServer: {
     host: 'localhost',
     port: 8080,
-    protocol: 'ui0.0.1'
-  }
+    protocol: 'ui0.0.1',
+  },
 }
 
 export default config
index de796ba9e7eb314ec135506c33053654f8b5136d..10f2d3dea0b42ad2fe08fe549b7f1fb475802d41 100644 (file)
@@ -3,7 +3,7 @@ import {
   type ProtocolResponse,
   type RequestPayload,
   type ResponsePayload,
-  ResponseStatus
+  ResponseStatus,
 } from '@/types'
 import config from '@/assets/config'
 
@@ -57,13 +57,13 @@ export class UIClient {
 
   public async openConnection(hashId: string): Promise<ResponsePayload> {
     return this.sendRequest(ProcedureName.OPEN_CONNECTION, {
-      hashIds: [hashId]
+      hashIds: [hashId],
     })
   }
 
   public async closeConnection(hashId: string): Promise<ResponsePayload> {
     return this.sendRequest(ProcedureName.CLOSE_CONNECTION, {
-      hashIds: [hashId]
+      hashIds: [hashId],
     })
   }
 
@@ -75,7 +75,7 @@ export class UIClient {
     return this.sendRequest(ProcedureName.START_TRANSACTION, {
       hashIds: [hashId],
       connectorId,
-      idTag
+      idTag,
     })
   }
 
@@ -85,7 +85,7 @@ export class UIClient {
   ): Promise<ResponsePayload> {
     return this.sendRequest(ProcedureName.STOP_TRANSACTION, {
       hashIds: [hashId],
-      transactionId
+      transactionId,
     })
   }
 
@@ -95,7 +95,7 @@ export class UIClient {
   ): Promise<ResponsePayload> {
     return this.sendRequest(ProcedureName.START_AUTOMATIC_TRANSACTION_GENERATOR, {
       hashIds: [hashId],
-      connectorIds: [connectorId]
+      connectorIds: [connectorId],
     })
   }
 
@@ -105,7 +105,7 @@ export class UIClient {
   ): Promise<ResponsePayload> {
     return this.sendRequest(ProcedureName.STOP_AUTOMATIC_TRANSACTION_GENERATOR, {
       hashIds: [hashId],
-      connectorIds: [connectorId]
+      connectorIds: [connectorId],
     })
   }
 
index 4ff26db62f0580a28025f56c2007e83f828ac6b2..ea51bc23121a2b47d4813a5098843564cae31c91 100644 (file)
@@ -8,7 +8,7 @@ export const ifUndefined = <T>(value: T | undefined, isValue: T): T => {
 }
 
 // const isIterable = <T>(obj: T): boolean => {
-//   if (obj === null || obj === undefined) {
+//   if (obj == null) {
 //     return false
 //   }
 //   return typeof (obj as unknown as Iterable<T>)[Symbol.iterator] === 'function'
index 1015d92361787bd1405a90a1f38408cfad7acb43..b58a4d2a506d7e5f9c9f94a153bd1d7a7d0061ee 100644 (file)
@@ -5,13 +5,13 @@ const routes: RouteRecordRaw[] = [
   {
     path: '/',
     name: 'charging-stations',
-    component: ChargingStationsView
-  }
+    component: ChargingStationsView,
+  },
 ]
 
 const router = createRouter({
   history: createWebHistory(),
-  routes
+  routes,
 })
 
 export default router
index 2e79fbc8b44204fe57ea395b3aa934555ae650da..1479e1d7a622f4e2dafdb082f2b78e3ab6eedfec 100644 (file)
@@ -21,11 +21,11 @@ export enum OCPP16FirmwareStatus {
   Idle = 'Idle',
   InstallationFailed = 'InstallationFailed',
   Installing = 'Installing',
-  Installed = 'Installed'
+  Installed = 'Installed',
 }
 
 export const FirmwareStatus = {
-  ...OCPP16FirmwareStatus
+  ...OCPP16FirmwareStatus,
 } as const
 export type FirmwareStatus = OCPP16FirmwareStatus
 
@@ -99,11 +99,11 @@ export enum OCPP16IncomingRequestCommand {
   REMOTE_START_TRANSACTION = 'RemoteStartTransaction',
   REMOTE_STOP_TRANSACTION = 'RemoteStopTransaction',
   GET_DIAGNOSTICS = 'GetDiagnostics',
-  TRIGGER_MESSAGE = 'TriggerMessage'
+  TRIGGER_MESSAGE = 'TriggerMessage',
 }
 
 export const IncomingRequestCommand = {
-  ...OCPP16IncomingRequestCommand
+  ...OCPP16IncomingRequestCommand,
 } as const
 export type IncomingRequestCommand = OCPP16IncomingRequestCommand
 
@@ -115,11 +115,11 @@ export enum OCPP16RequestCommand {
   START_TRANSACTION = 'StartTransaction',
   STOP_TRANSACTION = 'StopTransaction',
   METER_VALUES = 'MeterValues',
-  DIAGNOSTICS_STATUS_NOTIFICATION = 'DiagnosticsStatusNotification'
+  DIAGNOSTICS_STATUS_NOTIFICATION = 'DiagnosticsStatusNotification',
 }
 
 export const RequestCommand = {
-  ...OCPP16RequestCommand
+  ...OCPP16RequestCommand,
 } as const
 export type RequestCommand = OCPP16RequestCommand
 
@@ -128,7 +128,7 @@ export type BootNotificationResponse = OCPP16BootNotificationResponse
 export enum OCPP16RegistrationStatus {
   ACCEPTED = 'Accepted',
   PENDING = 'Pending',
-  REJECTED = 'Rejected'
+  REJECTED = 'Rejected',
 }
 
 export interface OCPP16BootNotificationResponse extends JsonObject {
@@ -143,11 +143,11 @@ export enum OCPP16MessageTrigger {
   FirmwareStatusNotification = 'FirmwareStatusNotification',
   Heartbeat = 'Heartbeat',
   MeterValues = 'MeterValues',
-  StatusNotification = 'StatusNotification'
+  StatusNotification = 'StatusNotification',
 }
 
 export const MessageTrigger = {
-  ...OCPP16MessageTrigger
+  ...OCPP16MessageTrigger,
 } as const
 export type MessageTrigger = OCPP16MessageTrigger
 
@@ -158,30 +158,30 @@ type CommandsSupport = {
 
 export enum OCPPVersion {
   VERSION_16 = '1.6',
-  VERSION_20 = '2.0'
+  VERSION_20 = '2.0',
 }
 
 export enum OCPPProtocol {
-  JSON = 'json'
+  JSON = 'json',
 }
 
 export enum CurrentType {
   AC = 'AC',
-  DC = 'DC'
+  DC = 'DC',
 }
 
 export enum Voltage {
   VOLTAGE_110 = 110,
   VOLTAGE_230 = 230,
   VOLTAGE_400 = 400,
-  VOLTAGE_800 = 800
+  VOLTAGE_800 = 800,
 }
 
 export enum AmpereUnits {
   MILLI_AMPERE = 'mA',
   CENTI_AMPERE = 'cA',
   DECI_AMPERE = 'dA',
-  AMPERE = 'A'
+  AMPERE = 'A',
 }
 
 export type ConnectorStatus = {
@@ -207,7 +207,7 @@ export type EvseStatus = {
 
 export enum OCPP16AvailabilityType {
   INOPERATIVE = 'Inoperative',
-  OPERATIVE = 'Operative'
+  OPERATIVE = 'Operative',
 }
 export type AvailabilityType = OCPP16AvailabilityType
 
@@ -221,7 +221,7 @@ export enum OCPP16ChargePointStatus {
   FINISHING = 'Finishing',
   RESERVED = 'Reserved',
   UNAVAILABLE = 'Unavailable',
-  FAULTED = 'Faulted'
+  FAULTED = 'Faulted',
 }
 export type ChargePointStatus = OCPP16ChargePointStatus
 
index 07eb52125599520cf59e8e81b4675d39bca85383..48b0f1a86355092b66a5e95cc9b1aeff4e661324 100644 (file)
@@ -1,16 +1,16 @@
 import type { JsonObject } from './JsonType'
 
 export enum Protocol {
-  UI = 'ui'
+  UI = 'ui',
 }
 
 export enum ApplicationProtocol {
   HTTP = 'http',
-  WS = 'ws'
+  WS = 'ws',
 }
 
 export enum ProtocolVersion {
-  '0.0.1' = '0.0.1'
+  '0.0.1' = '0.0.1',
 }
 
 export type ProtocolRequest = [string, ProcedureName, RequestPayload]
@@ -31,7 +31,7 @@ export enum ProcedureName {
   START_AUTOMATIC_TRANSACTION_GENERATOR = 'startAutomaticTransactionGenerator',
   STOP_AUTOMATIC_TRANSACTION_GENERATOR = 'stopAutomaticTransactionGenerator',
   START_TRANSACTION = 'startTransaction',
-  STOP_TRANSACTION = 'stopTransaction'
+  STOP_TRANSACTION = 'stopTransaction',
 }
 
 export interface RequestPayload extends JsonObject {
@@ -41,7 +41,7 @@ export interface RequestPayload extends JsonObject {
 
 export enum ResponseStatus {
   SUCCESS = 'success',
-  FAILURE = 'failure'
+  FAILURE = 'failure',
 }
 
 export interface ResponsePayload extends JsonObject {
index ec7821f32a12fa17f5cc15153240ad9d3b2b96bd..d866d361a5a27abd8dee925ab6380d546ce57ffe 100644 (file)
@@ -1,7 +1,7 @@
 export type {
   ChargingStationData,
   ChargingStationInfo,
-  ConnectorStatus
+  ConnectorStatus,
 } from './ChargingStationType'
 export type { BaseConfig } from './ConfigurationType'
 export {
@@ -9,5 +9,5 @@ export {
   type ProtocolResponse,
   type RequestPayload,
   type ResponsePayload,
-  ResponseStatus
+  ResponseStatus,
 } from './UIProtocol'
index 5e385955fb060abef6d59dfbffb1d85a94f19703..707cce54c5ab93f67b716809da432dffcd21d2db 100644 (file)
@@ -39,7 +39,7 @@ type State = {
 const state: State = reactive({
   isLoading: false,
   chargingStations: [],
-  idTag: ''
+  idTag: '',
 })
 
 async function load(): Promise<void> {
index 03141953b56553a7dff0e2d8ac89a91ebf285e99..99a794d5af59c699674895225e03bf921bfa192b 100644 (file)
@@ -5,7 +5,7 @@ import { fileURLToPath } from 'node:url'
 import finalhandler from 'finalhandler'
 import serveStatic from 'serve-static'
 
-const isCFEnvironment = env.VCAP_APPLICATION !== undefined
+const isCFEnvironment = env.VCAP_APPLICATION != null
 const PORT = isCFEnvironment ? parseInt(env.PORT) : 3030
 const uiPath = join(dirname(fileURLToPath(import.meta.url)), './dist')
 
index 39c980c5d244ef1a0f954bcf1241b8ff6129064f..a725df552f831e0b4648fd41d2df2bf368b95a13 100644 (file)
@@ -6,7 +6,7 @@ import type { ChargingStationData } from '@/types'
 test('renders CS table columns name', () => {
   const chargingStations: ChargingStationData[] = []
   const wrapper = shallowMount(CSTable, {
-    props: { chargingStations, idTag: '0' }
+    props: { chargingStations, idTag: '0' },
   })
   expect(wrapper.text()).to.include('Action')
   expect(wrapper.text()).to.include('Connector')
index a5a1d53342af3729580add99ae03ef4cf7394aa2..c258c4b197a5e63cd8888333f980105611382d87 100644 (file)
@@ -7,7 +7,7 @@ export default defineConfig({
   plugins: [vue(), vueJsx()],
   resolve: {
     alias: {
-      '@': fileURLToPath(new URL('./src', import.meta.url))
-    }
-  }
+      '@': fileURLToPath(new URL('./src', import.meta.url)),
+    },
+  },
 })
index 39905b29c5bf4f670d2ab327e584209f0a81aafb..b772de1747337f51ae39042dd521037c1af7456f 100644 (file)
@@ -12,8 +12,8 @@ export default mergeConfig(
       root: fileURLToPath(new URL('./', import.meta.url)),
       coverage: {
         provider: 'v8',
-        reporter: ['text', 'lcov']
-      }
-    }
+        reporter: ['text', 'lcov'],
+      },
+    },
   })
 )