"lint": "cross-env TIMING=1 eslint --cache src tests scripts ./*.js ./*.ts",
"lint:fix": "cross-env TIMING=1 eslint --cache --fix src tests scripts ./*.js ./*.ts",
"format": "prettier --cache --write .; eslint --cache --fix src tests scripts ./*.js ./*.ts",
- "test": "c8 node --import tsx --test tests/**/*.test.ts",
+ "test": "node --import tsx --test --experimental-test-coverage tests/**/*.test.ts",
"test:debug": "node --import tsx --test --inspect tests/**/*.test.ts",
- "coverage": "c8 report --reporter=lcov",
- "coverage:html": "c8 report --reporter=html",
+ "test:coverage": "node --import tsx --test --experimental-test-coverage --test-reporter=lcov --test-reporter-destination=coverage/lcov.info tests/**/*.test.ts",
"clinic:clean": "clinic clean",
"sea": "pnpm exec rimraf ./dist/evse-simulator ./dist/evse-simulator.blob && node --experimental-sea-config sea-config.json && pnpm dlx ncp $(volta which node || n which lts || nvm which node || command -v node) ./dist/evse-simulator && pnpm dlx postject ./dist/evse-simulator NODE_SEA_BLOB ./dist/evse-simulator.blob --sentinel-fuse NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2 && pnpm exec rimraf ./dist/evse-simulator.blob"
},
"@types/node": "^24.10.13",
"@types/semver": "^7.7.1",
"@types/ws": "^8.18.1",
- "c8": "^10.1.3",
"clinic": "^13.0.0",
"cross-env": "^10.1.0",
"esbuild": "^0.27.3",
'@types/ws':
specifier: ^8.18.1
version: 8.18.1
- c8:
- specifier: ^10.1.3
- version: 10.1.3
clinic:
specifier: ^13.0.0
version: 13.0.0(encoding@0.1.13)
resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==}
engines: {node: '>=18.0.0'}
- '@istanbuljs/schema@0.1.3':
- resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
- engines: {node: '>=8'}
-
'@jercle/yargonaut@1.1.5':
resolution: {integrity: sha512-zBp2myVvBHp1UaJsNTyS6q4UDKT7eRiqTS4oNTS6VQMd6mpxYOdbeK4pY279cDCdakGy6hG0J3ejoXZVsPwHqw==}
'@types/http-cache-semantics@4.2.0':
resolution: {integrity: sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q==}
- '@types/istanbul-lib-coverage@2.0.6':
- resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
-
'@types/jsdom@28.0.0':
resolution: {integrity: sha512-A8TBQQC/xAOojy9kM8E46cqT00sF0h7dWjV8t8BJhUi2rG6JRh7XXQo/oLoENuZIQEpXsxLccLCnknyQd7qssQ==}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@vue/compiler-core@3.5.28':
- resolution: {integrity: sha512-kviccYxTgoE8n6OCw96BNdYlBg2GOWfBuOW4Vqwrt7mSKWKwFVvI8egdTltqRgITGPsTFYtKYfxIG8ptX2PJHQ==}
-
'@vue/compiler-core@3.5.29':
resolution: {integrity: sha512-cuzPhD8fwRHk8IGfmYaR4eEe4cAyJEL66Ove/WZL7yWNL134nqLddSLwNRIsFlnnW1kK+p8Ck3viFnC0chXCXw==}
- '@vue/compiler-dom@3.5.28':
- resolution: {integrity: sha512-/1ZepxAb159jKR1btkefDP+J2xuWL5V3WtleRmxaT+K2Aqiek/Ab/+Ebrw2pPj0sdHO8ViAyyJWfhXXOP/+LQA==}
-
'@vue/compiler-dom@3.5.29':
resolution: {integrity: sha512-n0G5o7R3uBVmVxjTIYcz7ovr8sy7QObFG8OQJ3xGCDNhbG60biP/P5KnyY8NLd81OuT1WJflG7N4KWYHaeeaIg==}
- '@vue/compiler-sfc@3.5.28':
- resolution: {integrity: sha512-6TnKMiNkd6u6VeVDhZn/07KhEZuBSn43Wd2No5zaP5s3xm8IqFTHBj84HJah4UepSUJTro5SoqqlOY22FKY96g==}
-
'@vue/compiler-sfc@3.5.29':
resolution: {integrity: sha512-oJZhN5XJs35Gzr50E82jg2cYdZQ78wEwvRO6Y63TvLVTc+6xICzJHP1UIecdSPPYIbkautNBanDiWYa64QSFIA==}
- '@vue/compiler-ssr@3.5.28':
- resolution: {integrity: sha512-JCq//9w1qmC6UGLWJX7RXzrGpKkroubey/ZFqTpvEIDJEKGgntuDMqkuWiZvzTzTA5h2qZvFBFHY7fAAa9475g==}
-
'@vue/compiler-ssr@3.5.29':
resolution: {integrity: sha512-Y/ARJZE6fpjzL5GH/phJmsFwx3g6t2KmHKHx5q+MLl2kencADKIrhH5MLF6HHpRMmlRAYBRSvv347Mepf1zVNw==}
peerDependencies:
vue: 3.5.29
- '@vue/shared@3.5.28':
- resolution: {integrity: sha512-cfWa1fCGBxrvaHRhvV3Is0MgmrbSCxYTXCSCau2I0a1Xw1N1pHAvkWCiXPRAqjvToILvguNyEwjevUqAuBQWvQ==}
-
'@vue/shared@3.5.29':
resolution: {integrity: sha512-w7SR0A5zyRByL9XUkCfdLs7t9XOHUyJ67qPGQjOou3p6GvBeBW+AVjUUmlxtZ4PIYaRvE+1LmK44O4uajlZwcg==}
resolution: {integrity: sha512-jheRLVMeUKrDBjVw2O5+k4EvR4t9wtxHL+bo/LxfkxsVeuGMy3a5SEGgXdAFA4FSzTrU8rQXQIrsZ3oBq5a0pQ==}
engines: {node: '>=20'}
- c8@10.1.3:
- resolution: {integrity: sha512-LvcyrOAaOnrrlMpW22n690PUvxiq4Uf9WMhQwNJ9vgagkL/ph1+D4uvjvDA5XCbykrc0sx+ay6pVi9YZ1GnhyA==}
- engines: {node: '>=18'}
- hasBin: true
- peerDependencies:
- monocart-coverage-reports: ^2
- peerDependenciesMeta:
- monocart-coverage-reports:
- optional: true
-
cacache@15.3.0:
resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==}
engines: {node: '>= 10'}
engines: {node: '>=6.0.0'}
hasBin: true
- test-exclude@7.0.2:
- resolution: {integrity: sha512-u9E6A+ZDYdp7a4WnarkXPZOx8Ilz46+kby6p1yZ8zsGTz9gYa6FIS7lj2oezzNKmtdyyJNNmmXDppga5GB7kSw==}
- engines: {node: '>=18'}
-
text-hex@1.0.0:
resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==}
v8-compile-cache-lib@3.0.1:
resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
- v8-to-istanbul@9.3.0:
- resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==}
- engines: {node: '>=10.12.0'}
-
varint@5.0.0:
resolution: {integrity: sha512-gC13b/bWrqQoKY2EmROCZ+AR0jitc6DnDGaQ6Ls9QpKmuSgJB1eQ7H3KETtQm7qSdMWMKCmsshyCmUwMLh3OAA==}
dependencies:
minipass: 7.1.3
- '@istanbuljs/schema@0.1.3': {}
-
'@jercle/yargonaut@1.1.5':
dependencies:
chalk: 4.1.2
'@types/http-cache-semantics@4.2.0': {}
- '@types/istanbul-lib-coverage@2.0.6': {}
-
'@types/jsdom@28.0.0':
dependencies:
'@types/node': 24.10.13
'@vue-macros/common@3.1.2(vue@3.5.29(typescript@5.9.3))':
dependencies:
- '@vue/compiler-sfc': 3.5.28
+ '@vue/compiler-sfc': 3.5.29
ast-kit: 2.2.0
local-pkg: 1.1.2
magic-string-ast: 1.0.3
'@babel/types': 7.29.0
'@vue/babel-helper-vue-transform-on': 2.0.1
'@vue/babel-plugin-resolve-type': 2.0.1(@babel/core@7.29.0)
- '@vue/shared': 3.5.28
+ '@vue/shared': 3.5.29
optionalDependencies:
'@babel/core': 7.29.0
transitivePeerDependencies:
'@babel/helper-module-imports': 7.28.6
'@babel/helper-plugin-utils': 7.28.6
'@babel/parser': 7.29.0
- '@vue/compiler-sfc': 3.5.28
+ '@vue/compiler-sfc': 3.5.29
transitivePeerDependencies:
- supports-color
- '@vue/compiler-core@3.5.28':
- dependencies:
- '@babel/parser': 7.29.0
- '@vue/shared': 3.5.28
- entities: 7.0.1
- estree-walker: 2.0.2
- source-map-js: 1.2.1
-
'@vue/compiler-core@3.5.29':
dependencies:
'@babel/parser': 7.29.0
estree-walker: 2.0.2
source-map-js: 1.2.1
- '@vue/compiler-dom@3.5.28':
- dependencies:
- '@vue/compiler-core': 3.5.28
- '@vue/shared': 3.5.28
-
'@vue/compiler-dom@3.5.29':
dependencies:
'@vue/compiler-core': 3.5.29
'@vue/shared': 3.5.29
- '@vue/compiler-sfc@3.5.28':
- dependencies:
- '@babel/parser': 7.29.0
- '@vue/compiler-core': 3.5.28
- '@vue/compiler-dom': 3.5.28
- '@vue/compiler-ssr': 3.5.28
- '@vue/shared': 3.5.28
- estree-walker: 2.0.2
- magic-string: 0.30.21
- postcss: 8.5.6
- source-map-js: 1.2.1
-
'@vue/compiler-sfc@3.5.29':
dependencies:
'@babel/parser': 7.29.0
postcss: 8.5.6
source-map-js: 1.2.1
- '@vue/compiler-ssr@3.5.28':
- dependencies:
- '@vue/compiler-dom': 3.5.28
- '@vue/shared': 3.5.28
-
'@vue/compiler-ssr@3.5.29':
dependencies:
'@vue/compiler-dom': 3.5.29
'@vue/shared': 3.5.29
vue: 3.5.29(typescript@5.9.3)
- '@vue/shared@3.5.28': {}
-
'@vue/shared@3.5.29': {}
'@vue/test-utils@2.4.6':
byte-counter@0.1.0: {}
- c8@10.1.3:
- dependencies:
- '@bcoe/v8-coverage': 1.0.2
- '@istanbuljs/schema': 0.1.3
- find-up: 5.0.0
- foreground-child: 3.3.1
- istanbul-lib-coverage: 3.2.2
- istanbul-lib-report: 3.0.1
- istanbul-reports: 3.2.0
- test-exclude: 7.0.2
- v8-to-istanbul: 9.3.0
- yargs: 17.7.2
- yargs-parser: 21.1.1
-
cacache@15.3.0:
dependencies:
'@npmcli/fs': 1.1.1
md5.js@1.3.5:
dependencies:
- hash-base: 3.0.5
+ hash-base: 3.1.2
inherits: 2.0.4
safe-buffer: 5.2.1
source-map: 0.6.1
source-map-support: 0.5.21
- test-exclude@7.0.2:
- dependencies:
- '@istanbuljs/schema': 0.1.3
- glob: 10.5.0
- minimatch: 10.2.2
-
text-hex@1.0.0: {}
through2@2.0.5:
v8-compile-cache-lib@3.0.1: {}
- v8-to-istanbul@9.3.0:
- dependencies:
- '@jridgewell/trace-mapping': 0.3.31
- '@types/istanbul-lib-coverage': 2.0.6
- convert-source-map: 2.0.0
-
varint@5.0.0: {}
varint@5.0.2: {}