fix: handle relative path to performance records JSON file
authorJérôme Benoit <jerome.benoit@sap.com>
Wed, 10 May 2023 19:29:52 +0000 (21:29 +0200)
committerJérôme Benoit <jerome.benoit@sap.com>
Wed, 10 May 2023 19:29:52 +0000 (21:29 +0200)
fix #524

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
package.json
pnpm-lock.yaml
src/performance/storage/JsonFileStorage.ts
src/utils/Configuration.ts
ui/web/package.json
ui/web/pnpm-lock.yaml

index 28db3fc398c9f504aaab8a64f27148467d642dd3..5ec6c765c5da376c3b94075465bb048a3e85d40a 100644 (file)
     "d3-color": "^3.1.0"
   },
   "dependencies": {
-    "@mikro-orm/core": "^5.7.4",
-    "@mikro-orm/mariadb": "^5.7.4",
-    "@mikro-orm/reflection": "^5.7.4",
-    "@mikro-orm/sqlite": "^5.7.4",
+    "@mikro-orm/core": "^5.7.5",
+    "@mikro-orm/mariadb": "^5.7.5",
+    "@mikro-orm/reflection": "^5.7.5",
+    "@mikro-orm/sqlite": "^5.7.5",
     "ajv": "^8.12.0",
     "ajv-formats": "^2.1.1",
     "basic-ftp": "^5.0.3",
   "devDependencies": {
     "@commitlint/cli": "^17.6.3",
     "@commitlint/config-conventional": "^17.6.3",
-    "@mikro-orm/cli": "^5.7.4",
+    "@mikro-orm/cli": "^5.7.5",
     "@release-it/bumper": "^4.0.2",
     "@rollup/plugin-json": "^6.0.0",
     "@rollup/plugin-terser": "^0.4.1",
     "@rollup/plugin-typescript": "^11.1.0",
     "@types/mocha": "^10.0.1",
     "@types/mochawesome": "^6.2.1",
-    "@types/node": "^20.1.1",
+    "@types/node": "^20.1.2",
     "@types/sinon": "^10.0.14",
-    "@types/tar": "^6.1.4",
+    "@types/tar": "^6.1.5",
     "@types/ws": "^8.5.4",
     "@typescript-eslint/eslint-plugin": "^5.59.5",
     "@typescript-eslint/parser": "^5.59.5",
     "eslint-config-prettier": "^8.8.0",
     "eslint-import-resolver-typescript": "^3.5.5",
     "eslint-plugin-import": "^2.27.5",
-    "eslint-plugin-jsdoc": "^44.0.1",
+    "eslint-plugin-jsdoc": "^44.2.2",
     "eslint-plugin-n": "^15.7.0",
     "eslint-plugin-prettier": "^4.2.1",
     "eslint-plugin-tsdoc": "^0.2.17",
     "release-it": "^15.10.3",
     "rimraf": "^5.0.0",
     "robohydra": "^0.6.9",
-    "rollup": "^3.21.5",
+    "rollup": "^3.21.6",
     "rollup-plugin-analyzer": "^4.0.0",
     "rollup-plugin-copy": "^3.4.0",
     "rollup-plugin-delete": "^2.0.0",
index 20fb1fdb858436b3a4d971df9a435dc2de8b706b..d78ad816280baa2492ee73ded0b804d407192be7 100644 (file)
@@ -2,17 +2,17 @@ lockfileVersion: '6.0'
 
 dependencies:
   '@mikro-orm/core':
-    specifier: ^5.7.4
-    version: 5.7.4(@mikro-orm/mariadb@5.7.4)(@mikro-orm/sqlite@5.7.4)
+    specifier: ^5.7.5
+    version: 5.7.5(@mikro-orm/mariadb@5.7.5)(@mikro-orm/sqlite@5.7.5)
   '@mikro-orm/mariadb':
-    specifier: ^5.7.4
-    version: 5.7.4(@mikro-orm/core@5.7.4)
+    specifier: ^5.7.5
+    version: 5.7.5(@mikro-orm/core@5.7.5)
   '@mikro-orm/reflection':
-    specifier: ^5.7.4
-    version: 5.7.4(@mikro-orm/core@5.7.4)
+    specifier: ^5.7.5
+    version: 5.7.5(@mikro-orm/core@5.7.5)
   '@mikro-orm/sqlite':
-    specifier: ^5.7.4
-    version: 5.7.4(@mikro-orm/core@5.7.4)
+    specifier: ^5.7.5
+    version: 5.7.5(@mikro-orm/core@5.7.5)
   ajv:
     specifier: ^8.12.0
     version: 8.12.0
@@ -84,20 +84,20 @@ devDependencies:
     specifier: ^17.6.3
     version: 17.6.3
   '@mikro-orm/cli':
-    specifier: ^5.7.4
-    version: 5.7.4(@mikro-orm/mariadb@5.7.4)(@mikro-orm/sqlite@5.7.4)
+    specifier: ^5.7.5
+    version: 5.7.5(@mikro-orm/mariadb@5.7.5)(@mikro-orm/sqlite@5.7.5)
   '@release-it/bumper':
     specifier: ^4.0.2
     version: 4.0.2(release-it@15.10.3)
   '@rollup/plugin-json':
     specifier: ^6.0.0
-    version: 6.0.0(rollup@3.21.5)
+    version: 6.0.0(rollup@3.21.6)
   '@rollup/plugin-terser':
     specifier: ^0.4.1
-    version: 0.4.1(rollup@3.21.5)
+    version: 0.4.1(rollup@3.21.6)
   '@rollup/plugin-typescript':
     specifier: ^11.1.0
-    version: 11.1.0(rollup@3.21.5)(tslib@2.5.0)(typescript@5.0.4)
+    version: 11.1.0(rollup@3.21.6)(tslib@2.5.0)(typescript@5.0.4)
   '@types/mocha':
     specifier: ^10.0.1
     version: 10.0.1
@@ -105,14 +105,14 @@ devDependencies:
     specifier: ^6.2.1
     version: 6.2.1
   '@types/node':
-    specifier: ^20.1.1
-    version: 20.1.1
+    specifier: ^20.1.2
+    version: 20.1.2
   '@types/sinon':
     specifier: ^10.0.14
     version: 10.0.14
   '@types/tar':
-    specifier: ^6.1.4
-    version: 6.1.4
+    specifier: ^6.1.5
+    version: 6.1.5
   '@types/ws':
     specifier: ^8.5.4
     version: 8.5.4
@@ -147,8 +147,8 @@ devDependencies:
     specifier: ^2.27.5
     version: 2.27.5(@typescript-eslint/parser@5.59.5)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0)
   eslint-plugin-jsdoc:
-    specifier: ^44.0.1
-    version: 44.0.1(eslint@8.40.0)
+    specifier: ^44.2.2
+    version: 44.2.2(eslint@8.40.0)
   eslint-plugin-n:
     specifier: ^15.7.0
     version: 15.7.0(eslint@8.40.0)
@@ -186,8 +186,8 @@ devDependencies:
     specifier: ^0.6.9
     version: 0.6.9(bufferutil@4.0.7)(utf-8-validate@6.0.3)
   rollup:
-    specifier: ^3.21.5
-    version: 3.21.5
+    specifier: ^3.21.6
+    version: 3.21.6
   rollup-plugin-analyzer:
     specifier: ^4.0.0
     version: 4.0.0
@@ -205,7 +205,7 @@ devDependencies:
     version: 15.0.4
   ts-node:
     specifier: ^10.9.1
-    version: 10.9.1(@types/node@20.1.1)(typescript@5.0.4)
+    version: 10.9.1(@types/node@20.1.2)(typescript@5.0.4)
   typescript:
     specifier: ^5.0.4
     version: 5.0.4
@@ -501,15 +501,15 @@ packages:
       '@commitlint/execute-rule': 17.4.0
       '@commitlint/resolve-extends': 17.4.4
       '@commitlint/types': 17.4.4
-      '@types/node': 20.1.1
+      '@types/node': 20.1.2
       chalk: 4.1.2
       cosmiconfig: 8.1.3
-      cosmiconfig-typescript-loader: 4.3.0(@types/node@20.1.1)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.0.4)
+      cosmiconfig-typescript-loader: 4.3.0(@types/node@20.1.2)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.0.4)
       lodash.isplainobject: 4.0.6
       lodash.merge: 4.6.2
       lodash.uniq: 4.5.0
       resolve-from: 5.0.0
-      ts-node: 10.9.1(@types/node@20.1.1)(typescript@5.0.4)
+      ts-node: 10.9.1(@types/node@20.1.2)(typescript@5.0.4)
       typescript: 5.0.4
     transitivePeerDependencies:
       - '@swc/core'
@@ -718,7 +718,7 @@ packages:
       '@jest/schemas': 29.4.3
       '@types/istanbul-lib-coverage': 2.0.4
       '@types/istanbul-reports': 3.0.1
-      '@types/node': 20.1.1
+      '@types/node': 20.1.2
       '@types/yargs': 17.0.24
       chalk: 4.1.2
     dev: true
@@ -806,8 +806,8 @@ packages:
     resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==}
     dev: true
 
-  /@mikro-orm/cli@5.7.4(@mikro-orm/mariadb@5.7.4)(@mikro-orm/sqlite@5.7.4):
-    resolution: {integrity: sha512-9idUYQyC7HMQg7zf5X2M3XQLHBOTBD2QagOXB4D3ujjiDqxtCPIYWVnIvgX3psPiKniX360QkFOaLCWrXFfwzg==}
+  /@mikro-orm/cli@5.7.5(@mikro-orm/mariadb@5.7.5)(@mikro-orm/sqlite@5.7.5):
+    resolution: {integrity: sha512-SZ1Xrw8Q79nq2uvSHEzC5cYkpjxIzVfTwbTh/P8tBBD5e38jkWezpN9r2Ap6kqUS7KQGmK9T9H86FLLk9pa4Ag==}
     engines: {node: '>= 14.0.0'}
     hasBin: true
     peerDependencies:
@@ -844,10 +844,10 @@ packages:
         optional: true
     dependencies:
       '@jercle/yargonaut': 1.1.5
-      '@mikro-orm/core': 5.7.4(@mikro-orm/mariadb@5.7.4)(@mikro-orm/sqlite@5.7.4)
-      '@mikro-orm/knex': 5.7.4(@mikro-orm/core@5.7.4)(sqlite3@5.1.6)
-      '@mikro-orm/mariadb': 5.7.4(@mikro-orm/core@5.7.4)
-      '@mikro-orm/sqlite': 5.7.4(@mikro-orm/core@5.7.4)
+      '@mikro-orm/core': 5.7.5(@mikro-orm/mariadb@5.7.5)(@mikro-orm/sqlite@5.7.5)
+      '@mikro-orm/knex': 5.7.5(@mikro-orm/core@5.7.5)(sqlite3@5.1.6)
+      '@mikro-orm/mariadb': 5.7.5(@mikro-orm/core@5.7.5)
+      '@mikro-orm/sqlite': 5.7.5(@mikro-orm/core@5.7.5)
       fs-extra: 11.1.1
       tsconfig-paths: 4.2.0
       yargs: 17.7.2
@@ -863,8 +863,8 @@ packages:
       - tedious
     dev: true
 
-  /@mikro-orm/core@5.7.4(@mikro-orm/mariadb@5.7.4)(@mikro-orm/sqlite@5.7.4):
-    resolution: {integrity: sha512-UA53JbdTkcyYCrzUPcMlAdWEvYfoLcZ/d90AWbS0fSIEKAAU0p57aL2J2+XqywNQfuEvnMVZsNvK5AWFaFRNsQ==}
+  /@mikro-orm/core@5.7.5(@mikro-orm/mariadb@5.7.5)(@mikro-orm/sqlite@5.7.5):
+    resolution: {integrity: sha512-Jakjz7qScsoHBHkFG7/A73M0TVTsNylPD/eDNQ+yoq73GwQ1NcJmhzQhMQQuF+5YpKdvnL2gUbNSzQ1MJ3OEcQ==}
     engines: {node: '>= 14.0.0'}
     peerDependencies:
       '@mikro-orm/better-sqlite': ^5.0.0
@@ -899,18 +899,18 @@ packages:
       '@mikro-orm/sqlite':
         optional: true
     dependencies:
-      '@mikro-orm/mariadb': 5.7.4(@mikro-orm/core@5.7.4)
-      '@mikro-orm/sqlite': 5.7.4(@mikro-orm/core@5.7.4)
+      '@mikro-orm/mariadb': 5.7.5(@mikro-orm/core@5.7.5)
+      '@mikro-orm/sqlite': 5.7.5(@mikro-orm/core@5.7.5)
       acorn-loose: 8.3.0
       acorn-walk: 8.2.0
       dotenv: 16.0.3
       fs-extra: 11.1.1
       globby: 11.1.0
-      mikro-orm: 5.7.4
+      mikro-orm: 5.7.5
       reflect-metadata: 0.1.13
 
-  /@mikro-orm/knex@5.7.4(@mikro-orm/core@5.7.4)(sqlite3@5.1.6):
-    resolution: {integrity: sha512-DP7h2Ib5QBDWgCQj3AGv/4KIL78vAuNwVQAC0CV6yk+q/6yIiBHNnjgw1b4aFcRcBemKaFx+jjEhA03flxaebQ==}
+  /@mikro-orm/knex@5.7.5(@mikro-orm/core@5.7.5)(sqlite3@5.1.6):
+    resolution: {integrity: sha512-Y9/sCi7ffojgt/gq0oeANqehqPmsEzpttbJVTmp73T6WUbWYmKVxnu9nSEjSrHkKaCwKw7N0olhf2Y8Mn7+Ykg==}
     engines: {node: '>= 14.0.0'}
     peerDependencies:
       '@mikro-orm/core': ^5.0.0
@@ -940,7 +940,7 @@ packages:
       sqlite3:
         optional: true
     dependencies:
-      '@mikro-orm/core': 5.7.4(@mikro-orm/mariadb@5.7.4)(@mikro-orm/sqlite@5.7.4)
+      '@mikro-orm/core': 5.7.5(@mikro-orm/mariadb@5.7.5)(@mikro-orm/sqlite@5.7.5)
       fs-extra: 11.1.1
       knex: 2.4.2(sqlite3@5.1.6)
       sqlite3: 5.1.6
@@ -950,8 +950,8 @@ packages:
       - supports-color
       - tedious
 
-  /@mikro-orm/mariadb@5.7.4(@mikro-orm/core@5.7.4):
-    resolution: {integrity: sha512-R9eyf5nuxn/cpyTq3nfJ28J5ksY/FJCSeQurwp4um+RuwsG4dGwzIb3120v7C54J8FNZg6GKyu/u4OxBEivXLg==}
+  /@mikro-orm/mariadb@5.7.5(@mikro-orm/core@5.7.5):
+    resolution: {integrity: sha512-zASFifObYIMTE14E/UQkiug9cRGYQ+/MY8Y3S81vAtaiZQXtFjFGtyksGEJ5PzjT1TQ684j7O9SLKNtjTnNpYQ==}
     engines: {node: '>= 14.0.0'}
     peerDependencies:
       '@mikro-orm/core': ^5.0.0
@@ -966,8 +966,8 @@ packages:
       '@mikro-orm/seeder':
         optional: true
     dependencies:
-      '@mikro-orm/core': 5.7.4(@mikro-orm/mariadb@5.7.4)(@mikro-orm/sqlite@5.7.4)
-      '@mikro-orm/knex': 5.7.4(@mikro-orm/core@5.7.4)(sqlite3@5.1.6)
+      '@mikro-orm/core': 5.7.5(@mikro-orm/mariadb@5.7.5)(@mikro-orm/sqlite@5.7.5)
+      '@mikro-orm/knex': 5.7.5(@mikro-orm/core@5.7.5)(sqlite3@5.1.6)
       mariadb: 2.5.6
     transitivePeerDependencies:
       - better-sqlite3
@@ -980,19 +980,19 @@ packages:
       - supports-color
       - tedious
 
-  /@mikro-orm/reflection@5.7.4(@mikro-orm/core@5.7.4):
-    resolution: {integrity: sha512-fayCiBFNxpzB624LrvhkBh6DMQq/bEfLB/o59xctmaGvIgG+VBE03qrdIspsl58bLcifO0t21XGwFs4LdZwtzw==}
+  /@mikro-orm/reflection@5.7.5(@mikro-orm/core@5.7.5):
+    resolution: {integrity: sha512-C1bwiAkNgQptnQzwAeygRkPeg1UDNDeVey9JFJ77ZWnYrxG3jt7aDJ2w8wuqOScS95VzGUGlls+vRaEecIAkwQ==}
     engines: {node: '>= 14.0.0'}
     peerDependencies:
       '@mikro-orm/core': ^5.0.0
     dependencies:
-      '@mikro-orm/core': 5.7.4(@mikro-orm/mariadb@5.7.4)(@mikro-orm/sqlite@5.7.4)
+      '@mikro-orm/core': 5.7.5(@mikro-orm/mariadb@5.7.5)(@mikro-orm/sqlite@5.7.5)
       globby: 11.1.0
       ts-morph: 18.0.0
     dev: false
 
-  /@mikro-orm/sqlite@5.7.4(@mikro-orm/core@5.7.4):
-    resolution: {integrity: sha512-brlmk2acONqBFHUoxQ5WWcWCPYOu1MXJtKICROjSaJIDOOkZJD7W4R1xxSrrdVGkQlDvKWPFUhL6EGsIZ4z1zA==}
+  /@mikro-orm/sqlite@5.7.5(@mikro-orm/core@5.7.5):
+    resolution: {integrity: sha512-FNCD9doPkdaeIAqI06yFkoO8E2/liw+YeBOXQ7j0zn141JlIR7s1rnbkFxYCPg5LFuU+P84VLzbxohwMZsuBFA==}
     engines: {node: '>= 14.0.0'}
     peerDependencies:
       '@mikro-orm/core': ^5.0.0
@@ -1007,8 +1007,8 @@ packages:
       '@mikro-orm/seeder':
         optional: true
     dependencies:
-      '@mikro-orm/core': 5.7.4(@mikro-orm/mariadb@5.7.4)(@mikro-orm/sqlite@5.7.4)
-      '@mikro-orm/knex': 5.7.4(@mikro-orm/core@5.7.4)(sqlite3@5.1.6)
+      '@mikro-orm/core': 5.7.5(@mikro-orm/mariadb@5.7.5)(@mikro-orm/sqlite@5.7.5)
+      '@mikro-orm/knex': 5.7.5(@mikro-orm/core@5.7.5)(sqlite3@5.1.6)
       fs-extra: 11.1.1
       sqlite3: 5.1.6
       sqlstring-sqlite: 0.1.1
@@ -1240,7 +1240,7 @@ packages:
       semver: 7.5.0
     dev: true
 
-  /@rollup/plugin-json@6.0.0(rollup@3.21.5):
+  /@rollup/plugin-json@6.0.0(rollup@3.21.6):
     resolution: {integrity: sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==}
     engines: {node: '>=14.0.0'}
     peerDependencies:
@@ -1249,11 +1249,11 @@ packages:
       rollup:
         optional: true
     dependencies:
-      '@rollup/pluginutils': 5.0.2(rollup@3.21.5)
-      rollup: 3.21.5
+      '@rollup/pluginutils': 5.0.2(rollup@3.21.6)
+      rollup: 3.21.6
     dev: true
 
-  /@rollup/plugin-terser@0.4.1(rollup@3.21.5):
+  /@rollup/plugin-terser@0.4.1(rollup@3.21.6):
     resolution: {integrity: sha512-aKS32sw5a7hy+fEXVy+5T95aDIwjpGHCTv833HXVtyKMDoVS7pBr5K3L9hEQoNqbJFjfANPrNpIXlTQ7is00eA==}
     engines: {node: '>=14.0.0'}
     peerDependencies:
@@ -1262,13 +1262,13 @@ packages:
       rollup:
         optional: true
     dependencies:
-      rollup: 3.21.5
+      rollup: 3.21.6
       serialize-javascript: 6.0.1
       smob: 0.0.6
-      terser: 5.17.2
+      terser: 5.17.3
     dev: true
 
-  /@rollup/plugin-typescript@11.1.0(rollup@3.21.5)(tslib@2.5.0)(typescript@5.0.4):
+  /@rollup/plugin-typescript@11.1.0(rollup@3.21.6)(tslib@2.5.0)(typescript@5.0.4):
     resolution: {integrity: sha512-86flrfE+bSHB69znnTV6kVjkncs2LBMhcTCyxWgRxLyfXfQrxg4UwlAqENnjrrxnSNS/XKCDJCl8EkdFJVHOxw==}
     engines: {node: '>=14.0.0'}
     peerDependencies:
@@ -1281,14 +1281,14 @@ packages:
       tslib:
         optional: true
     dependencies:
-      '@rollup/pluginutils': 5.0.2(rollup@3.21.5)
+      '@rollup/pluginutils': 5.0.2(rollup@3.21.6)
       resolve: 1.22.2
-      rollup: 3.21.5
+      rollup: 3.21.6
       tslib: 2.5.0
       typescript: 5.0.4
     dev: true
 
-  /@rollup/pluginutils@5.0.2(rollup@3.21.5):
+  /@rollup/pluginutils@5.0.2(rollup@3.21.6):
     resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==}
     engines: {node: '>=14.0.0'}
     peerDependencies:
@@ -1300,7 +1300,7 @@ packages:
       '@types/estree': 1.0.1
       estree-walker: 2.0.2
       picomatch: 2.3.1
-      rollup: 3.21.5
+      rollup: 3.21.6
     dev: true
 
   /@sinclair/typebox@0.25.24:
@@ -1424,7 +1424,7 @@ packages:
   /@types/fs-extra@8.1.2:
     resolution: {integrity: sha512-SvSrYXfWSc7R4eqnOzbQF4TZmfpNSM9FrSWLU3EUnWBuyZqNBOrv1B1JA3byUDPUl9z4Ab3jeZG2eDdySlgNMg==}
     dependencies:
-      '@types/node': 20.1.1
+      '@types/node': 20.1.2
     dev: true
 
   /@types/geojson@7946.0.10:
@@ -1434,7 +1434,7 @@ packages:
     resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==}
     dependencies:
       '@types/minimatch': 5.1.2
-      '@types/node': 20.1.1
+      '@types/node': 20.1.2
     dev: true
 
   /@types/http-cache-semantics@4.0.1:
@@ -1468,7 +1468,7 @@ packages:
   /@types/keyv@3.1.4:
     resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
     dependencies:
-      '@types/node': 20.1.1
+      '@types/node': 20.1.2
     dev: true
 
   /@types/long@4.0.2:
@@ -1496,8 +1496,8 @@ packages:
   /@types/node@17.0.45:
     resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
 
-  /@types/node@20.1.1:
-    resolution: {integrity: sha512-uKBEevTNb+l6/aCQaKVnUModfEMjAl98lw2Si9P5y4hLu9tm6AlX2ZIoXZX6Wh9lJueYPrGPKk5WMCNHg/u6/A==}
+  /@types/node@20.1.2:
+    resolution: {integrity: sha512-CTO/wa8x+rZU626cL2BlbCDzydgnFNgc19h4YvizpTO88MFQxab8wqisxaofQJ/9bLGugRdWIuX/TbIs6VVF6g==}
 
   /@types/normalize-package-data@2.4.1:
     resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==}
@@ -1510,7 +1510,7 @@ packages:
   /@types/responselike@1.0.0:
     resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==}
     dependencies:
-      '@types/node': 20.1.1
+      '@types/node': 20.1.2
     dev: true
 
   /@types/seedrandom@2.4.30:
@@ -1535,10 +1535,10 @@ packages:
     resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==}
     dev: true
 
-  /@types/tar@6.1.4:
-    resolution: {integrity: sha512-Cp4oxpfIzWt7mr2pbhHT2OTXGMAL0szYCzuf8lRWyIMCgsx6/Hfc3ubztuhvzXHXgraTQxyOCmmg7TDGIMIJJQ==}
+  /@types/tar@6.1.5:
+    resolution: {integrity: sha512-qm2I/RlZij5RofuY7vohTpYNaYcrSQlN2MyjucQc7ZweDwaEWkdN/EeNh6e9zjK6uEm6PwjdMXkcj05BxZdX1Q==}
     dependencies:
-      '@types/node': 20.1.1
+      '@types/node': 20.1.2
       minipass: 4.2.8
     dev: true
 
@@ -1557,14 +1557,14 @@ packages:
   /@types/whatwg-url@8.2.2:
     resolution: {integrity: sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==}
     dependencies:
-      '@types/node': 20.1.1
+      '@types/node': 20.1.2
       '@types/webidl-conversions': 7.0.0
     dev: false
 
   /@types/ws@8.5.4:
     resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==}
     dependencies:
-      '@types/node': 20.1.1
+      '@types/node': 20.1.2
     dev: true
 
   /@types/yargs-parser@21.0.0:
@@ -3076,7 +3076,7 @@ packages:
     resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
     dev: true
 
-  /cosmiconfig-typescript-loader@4.3.0(@types/node@20.1.1)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.0.4):
+  /cosmiconfig-typescript-loader@4.3.0(@types/node@20.1.2)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.0.4):
     resolution: {integrity: sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==}
     engines: {node: '>=12', npm: '>=6'}
     peerDependencies:
@@ -3085,9 +3085,9 @@ packages:
       ts-node: '>=10'
       typescript: '>=3'
     dependencies:
-      '@types/node': 20.1.1
+      '@types/node': 20.1.2
       cosmiconfig: 8.1.3
-      ts-node: 10.9.1(@types/node@20.1.1)(typescript@5.0.4)
+      ts-node: 10.9.1(@types/node@20.1.2)(typescript@5.0.4)
       typescript: 5.0.4
     dev: true
 
@@ -3725,8 +3725,8 @@ packages:
       inherits: 2.0.4
     dev: true
 
-  /enhanced-resolve@5.13.0:
-    resolution: {integrity: sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg==}
+  /enhanced-resolve@5.14.0:
+    resolution: {integrity: sha512-+DCows0XNwLDcUhbFJPdlQEVnT2zXlCv7hPxemTz86/O+B/hCQ+mb7ydkPKiflpVraqLPCAfu7lDy+hBXueojw==}
     engines: {node: '>=10.13.0'}
     dependencies:
       graceful-fs: 4.2.11
@@ -3959,7 +3959,7 @@ packages:
       eslint-plugin-import: '*'
     dependencies:
       debug: 4.3.4(supports-color@8.1.1)
-      enhanced-resolve: 5.13.0
+      enhanced-resolve: 5.14.0
       eslint: 8.40.0
       eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.5)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0)
       eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.5)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0)
@@ -4049,8 +4049,8 @@ packages:
       - supports-color
     dev: true
 
-  /eslint-plugin-jsdoc@44.0.1(eslint@8.40.0):
-    resolution: {integrity: sha512-EopZJDIDSF5hXodoWz4dR2NyZ5xU5Obw1T4D7GFzjqIhMCFMz6S/Cl5/jYBYlZkGl3h3GP5S6xAZp6C5jlUs9g==}
+  /eslint-plugin-jsdoc@44.2.2(eslint@8.40.0):
+    resolution: {integrity: sha512-LgzBwBfAbQPhC3vRcH5mkus8G7plr8kYFldgPtRMe55t7hjLM97luCBnk6VnAG/Ski4vhNPiX66zlDdgL21mog==}
     engines: {node: '>=16'}
     peerDependencies:
       eslint: ^7.0.0 || ^8.0.0
@@ -4821,8 +4821,8 @@ packages:
       is-glob: 4.0.3
     dev: true
 
-  /glob@10.2.2:
-    resolution: {integrity: sha512-Xsa0BcxIC6th9UwNjZkhrMtNo/MnyRL8jGCP+uEwhA5oFOCY1f2s1/oNKY47xQ0Bg5nkjsfAEIej1VeH62bDDQ==}
+  /glob@10.2.3:
+    resolution: {integrity: sha512-Kb4rfmBVE3eQTAimgmeqc2LwSnN0wIOkkUL6HmxEFxNJ4fHghYHVbFba/HcGcRjE6s9KoMNK3rSOwkL4PioZjg==}
     engines: {node: '>=16 || 14 >=14.17'}
     hasBin: true
     dependencies:
@@ -4830,7 +4830,7 @@ packages:
       jackspeak: 2.2.0
       minimatch: 9.0.0
       minipass: 5.0.0
-      path-scurry: 1.7.0
+      path-scurry: 1.8.0
     dev: true
 
   /glob@7.2.0:
@@ -5936,7 +5936,7 @@ packages:
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     dependencies:
       '@jest/types': 29.5.0
-      '@types/node': 20.1.1
+      '@types/node': 20.1.2
       chalk: 4.1.2
       ci-info: 3.8.0
       graceful-fs: 4.2.11
@@ -6576,8 +6576,8 @@ packages:
       braces: 3.0.2
       picomatch: 2.3.1
 
-  /mikro-orm@5.7.4:
-    resolution: {integrity: sha512-1j5k5u9Ip4w8rnvGhcGma/8fSJmSoQ3rb0sa+eehpFpFMBVYyHJ3Sqz19X8FjbRpQw0F7lhydoJUNfxQzFISWQ==}
+  /mikro-orm@5.7.5:
+    resolution: {integrity: sha512-nx+hKgjK4+VgCiESmcVDvuBfVtSIrYodEjFHlVG85whEOwjYYi3ntBE1HloRVOVj0CAp1/KUEybo28ki8v0VNA==}
     engines: {node: '>= 14.0.0'}
 
   /miller-rabin@4.0.1:
@@ -7691,8 +7691,8 @@ packages:
     engines: {node: '>= 0.8.0'}
     dev: true
 
-  /path-scurry@1.7.0:
-    resolution: {integrity: sha512-UkZUeDjczjYRE495+9thsgcVgsaCPkaw80slmfVFgllxY+IO8ubTsOpFVjDPROBqJdHfVPUFRHPBV/WciOVfWg==}
+  /path-scurry@1.8.0:
+    resolution: {integrity: sha512-IjTrKseM404/UAWA8bBbL3Qp6O2wXkanuIE3seCxBH7ctRuvH1QRawy1N3nVDHGkdeZsjOsSe/8AQBL/VQCy2g==}
     engines: {node: '>=16 || 14 >=14.17'}
     dependencies:
       lru-cache: 9.1.1
@@ -8418,7 +8418,7 @@ packages:
     engines: {node: '>=14'}
     hasBin: true
     dependencies:
-      glob: 10.2.2
+      glob: 10.2.3
     dev: true
 
   /ripemd160@2.0.2:
@@ -8466,8 +8466,8 @@ packages:
       del: 5.1.0
     dev: true
 
-  /rollup@3.21.5:
-    resolution: {integrity: sha512-a4NTKS4u9PusbUJcfF4IMxuqjFzjm6ifj76P54a7cKnvVzJaG12BLVR+hgU2YDGHzyMMQNxLAZWuALsn8q2oQg==}
+  /rollup@3.21.6:
+    resolution: {integrity: sha512-SXIICxvxQxR3D4dp/3LDHZIJPC8a4anKMHd4E3Jiz2/JnY+2bEjqrOokAauc5ShGVNFHlEFjBXAXlaxkJqIqSg==}
     engines: {node: '>=14.18.0', npm: '>=8.0.0'}
     hasBin: true
     optionalDependencies:
@@ -9262,8 +9262,8 @@ packages:
       source-map-support: 0.5.21
     dev: true
 
-  /terser@5.17.2:
-    resolution: {integrity: sha512-1D1aGbOF1Mnayq5PvfMc0amAR1y5Z1nrZaGCvI5xsdEfZEVte8okonk02OiaK5fw5hG1GWuuVsakOnpZW8y25A==}
+  /terser@5.17.3:
+    resolution: {integrity: sha512-AudpAZKmZHkG9jueayypz4duuCFJMMNGRMwaPvQKWfxKedh8Z2x3OCoDqIIi1xx5+iwx1u6Au8XQcc9Lke65Yg==}
     engines: {node: '>=10'}
     hasBin: true
     dependencies:
@@ -9423,7 +9423,7 @@ packages:
       code-block-writer: 12.0.0
     dev: false
 
-  /ts-node@10.9.1(@types/node@20.1.1)(typescript@5.0.4):
+  /ts-node@10.9.1(@types/node@20.1.2)(typescript@5.0.4):
     resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
     hasBin: true
     peerDependencies:
@@ -9442,7 +9442,7 @@ packages:
       '@tsconfig/node12': 1.0.11
       '@tsconfig/node14': 1.0.3
       '@tsconfig/node16': 1.0.3
-      '@types/node': 20.1.1
+      '@types/node': 20.1.2
       acorn: 8.8.2
       acorn-walk: 8.2.0
       arg: 4.1.3
index fb7062674bb2ea14787a2d5eb0ff6646bab75d11..87c12537e78310bf76a6cb52a8ca8ef2b52128ec 100644 (file)
@@ -1,6 +1,7 @@
 // Copyright Jerome Benoit. 2021-2023. All Rights Reserved.
 
 import fs from 'node:fs';
+import path from 'node:path';
 
 import { FileType, type Statistics } from '../../types';
 import { AsyncLock, AsyncLockType, Constants, FileUtils, Utils } from '../../utils';
@@ -45,6 +46,9 @@ export class JsonFileStorage extends Storage {
   public open(): void {
     try {
       if (Utils.isNullOrUndefined(this?.fd)) {
+        if (!fs.existsSync(path.dirname(this.dbName))) {
+          fs.mkdirSync(path.dirname(this.dbName), { recursive: true });
+        }
         this.fd = fs.openSync(this.dbName, 'a+');
       }
     } catch (error) {
index 90e846036074be5f3b71146df687313706b9cd3f..cf4d2bca6df9c412b63999cd8e8e9cd4e2c09cdd 100644 (file)
@@ -92,6 +92,13 @@ export class Configuration {
       storageConfiguration = {
         ...storageConfiguration,
         ...Configuration.getConfig()?.performanceStorage,
+        ...(Configuration.getConfig()?.performanceStorage?.type === StorageType.JSON_FILE &&
+          Configuration.getConfig()?.performanceStorage?.uri && {
+            uri: `file://${path.join(
+              path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../../'),
+              new URL(Configuration.getConfig()?.performanceStorage?.uri).pathname
+            )}`,
+          }),
       };
     }
     return storageConfiguration;
index 1a926c98d50f851dbd4d235d131c4e48bc693a41..31a33a280f611bdbe82ebe6c5ed12c687dea3a11 100644 (file)
@@ -33,7 +33,7 @@
   "devDependencies": {
     "@tsconfig/node20": "^1.0.0",
     "@types/jsdom": "^21.1.1",
-    "@types/node": "^20.1.1",
+    "@types/node": "^20.1.2",
     "@typescript-eslint/eslint-plugin": "^5.59.5",
     "@typescript-eslint/parser": "^5.59.5",
     "@vitejs/plugin-vue": "^4.2.1",
@@ -48,7 +48,7 @@
     "eslint-define-config": "^1.20.0",
     "eslint-import-resolver-typescript": "^3.5.5",
     "eslint-plugin-import": "^2.27.5",
-    "eslint-plugin-vue": "^9.11.1",
+    "eslint-plugin-vue": "^9.12.0",
     "jsdom": "^22.0.0",
     "prettier": "^2.8.8",
     "rimraf": "^5.0.0",
index 7ef1e3225356b9983172ded4a10cda79ab851f2f..f3389c09e00bb7f4962aad2ec9c4f1dd732d309d 100644 (file)
@@ -22,8 +22,8 @@ devDependencies:
     specifier: ^21.1.1
     version: 21.1.1
   '@types/node':
-    specifier: ^20.1.1
-    version: 20.1.1
+    specifier: ^20.1.2
+    version: 20.1.2
   '@typescript-eslint/eslint-plugin':
     specifier: ^5.59.5
     version: 5.59.5(@typescript-eslint/parser@5.59.5)(eslint@8.40.0)(typescript@5.0.4)
@@ -44,7 +44,7 @@ devDependencies:
     version: 7.1.0(eslint@8.40.0)(prettier@2.8.8)
   '@vue/eslint-config-typescript':
     specifier: ^11.0.3
-    version: 11.0.3(eslint-plugin-vue@9.11.1)(eslint@8.40.0)(typescript@5.0.4)
+    version: 11.0.3(eslint-plugin-vue@9.12.0)(eslint@8.40.0)(typescript@5.0.4)
   '@vue/test-utils':
     specifier: ^2.3.2
     version: 2.3.2(vue@3.2.47)
@@ -67,8 +67,8 @@ devDependencies:
     specifier: ^2.27.5
     version: 2.27.5(@typescript-eslint/parser@5.59.5)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0)
   eslint-plugin-vue:
-    specifier: ^9.11.1
-    version: 9.11.1(eslint@8.40.0)
+    specifier: ^9.12.0
+    version: 9.12.0(eslint@8.40.0)
   jsdom:
     specifier: ^22.0.0
     version: 22.0.0
@@ -83,7 +83,7 @@ devDependencies:
     version: 5.0.4
   vite:
     specifier: ^4.3.5
-    version: 4.3.5(@types/node@20.1.1)
+    version: 4.3.5(@types/node@20.1.2)
   vitest:
     specifier: ^0.31.0
     version: 0.31.0(jsdom@22.0.0)
@@ -767,7 +767,7 @@ packages:
   /@types/jsdom@21.1.1:
     resolution: {integrity: sha512-cZFuoVLtzKP3gmq9eNosUL1R50U+USkbLtUQ1bYVgl/lKp0FZM7Cq4aIHAL8oIvQ17uSHi7jXPtfDOdjPwBE7A==}
     dependencies:
-      '@types/node': 20.1.1
+      '@types/node': 20.1.2
       '@types/tough-cookie': 4.0.2
       parse5: 7.1.2
     dev: true
@@ -780,8 +780,8 @@ packages:
     resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
     dev: true
 
-  /@types/node@20.1.1:
-    resolution: {integrity: sha512-uKBEevTNb+l6/aCQaKVnUModfEMjAl98lw2Si9P5y4hLu9tm6AlX2ZIoXZX6Wh9lJueYPrGPKk5WMCNHg/u6/A==}
+  /@types/node@20.1.2:
+    resolution: {integrity: sha512-CTO/wa8x+rZU626cL2BlbCDzydgnFNgc19h4YvizpTO88MFQxab8wqisxaofQJ/9bLGugRdWIuX/TbIs6VVF6g==}
     dev: true
 
   /@types/semver@7.5.0:
@@ -932,7 +932,7 @@ packages:
       '@babel/core': 7.21.8
       '@babel/plugin-transform-typescript': 7.21.3(@babel/core@7.21.8)
       '@vue/babel-plugin-jsx': 1.1.1(@babel/core@7.21.8)
-      vite: 4.3.5(@types/node@20.1.1)
+      vite: 4.3.5(@types/node@20.1.2)
       vue: 3.2.47
     transitivePeerDependencies:
       - supports-color
@@ -945,7 +945,7 @@ packages:
       vite: ^4.0.0
       vue: ^3.2.25
     dependencies:
-      vite: 4.3.5(@types/node@20.1.1)
+      vite: 4.3.5(@types/node@20.1.2)
       vue: 3.2.47
     dev: true
 
@@ -1072,7 +1072,7 @@ packages:
       prettier: 2.8.8
     dev: true
 
-  /@vue/eslint-config-typescript@11.0.3(eslint-plugin-vue@9.11.1)(eslint@8.40.0)(typescript@5.0.4):
+  /@vue/eslint-config-typescript@11.0.3(eslint-plugin-vue@9.12.0)(eslint@8.40.0)(typescript@5.0.4):
     resolution: {integrity: sha512-dkt6W0PX6H/4Xuxg/BlFj5xHvksjpSlVjtkQCpaYJBIEuKj2hOVU7r+TIe+ysCwRYFz/lGqvklntRkCAibsbPw==}
     engines: {node: ^14.17.0 || >=16.0.0}
     peerDependencies:
@@ -1086,7 +1086,7 @@ packages:
       '@typescript-eslint/eslint-plugin': 5.59.5(@typescript-eslint/parser@5.59.5)(eslint@8.40.0)(typescript@5.0.4)
       '@typescript-eslint/parser': 5.59.5(eslint@8.40.0)(typescript@5.0.4)
       eslint: 8.40.0
-      eslint-plugin-vue: 9.11.1(eslint@8.40.0)
+      eslint-plugin-vue: 9.12.0(eslint@8.40.0)
       typescript: 5.0.4
       vue-eslint-parser: 9.2.1(eslint@8.40.0)
     transitivePeerDependencies:
@@ -1337,7 +1337,7 @@ packages:
     hasBin: true
     dependencies:
       caniuse-lite: 1.0.30001486
-      electron-to-chromium: 1.4.387
+      electron-to-chromium: 1.4.390
       node-releases: 2.0.10
       update-browserslist-db: 1.0.11(browserslist@4.21.5)
     dev: true
@@ -1687,8 +1687,8 @@ packages:
     resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
     dev: false
 
-  /electron-to-chromium@1.4.387:
-    resolution: {integrity: sha512-tutLf+alr1/0YqJwKPdstVvDLmxmLb5xNyDLNS0RZmenHcEYk9qKfpKDCVZEKJ00JVbnayJm1MZAbYhYDFpcOw==}
+  /electron-to-chromium@1.4.390:
+    resolution: {integrity: sha512-9h6KDGTynRfpM16U40uLSCxRO3diIKcXXI0mPChKls7sfkxOlCH1sgSJ14Rb00BFomQNHY/p67gaZSu5Mu8j6w==}
     dev: true
 
   /emoji-regex@8.0.0:
@@ -1704,8 +1704,8 @@ packages:
     engines: {node: '>= 0.8'}
     dev: false
 
-  /enhanced-resolve@5.13.0:
-    resolution: {integrity: sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg==}
+  /enhanced-resolve@5.14.0:
+    resolution: {integrity: sha512-+DCows0XNwLDcUhbFJPdlQEVnT2zXlCv7hPxemTz86/O+B/hCQ+mb7ydkPKiflpVraqLPCAfu7lDy+hBXueojw==}
     engines: {node: '>=10.13.0'}
     dependencies:
       graceful-fs: 4.2.11
@@ -1862,7 +1862,7 @@ packages:
       eslint-plugin-import: '*'
     dependencies:
       debug: 4.3.4
-      enhanced-resolve: 5.13.0
+      enhanced-resolve: 5.14.0
       eslint: 8.40.0
       eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.5)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0)
       eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.5)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0)
@@ -1958,8 +1958,8 @@ packages:
       prettier-linter-helpers: 1.0.0
     dev: true
 
-  /eslint-plugin-vue@9.11.1(eslint@8.40.0):
-    resolution: {integrity: sha512-SNtBGDrRkPUFsREswPceqdvZ7YVdWY+iCYiDC+RoxwVieeQ7GJU1FLDlkcaYTOD2os/YuVgI1Fdu8YGM7fmoow==}
+  /eslint-plugin-vue@9.12.0(eslint@8.40.0):
+    resolution: {integrity: sha512-xH8PgpDW2WwmFSmRfs/3iWogef1CJzQqX264I65zz77jDuxF2yLy7+GA2diUM8ZNATuSl1+UehMQkb5YEyau5w==}
     engines: {node: ^14.17.0 || >=16.0.0}
     peerDependencies:
       eslint: ^6.2.0 || ^7.0.0 || ^8.0.0
@@ -2323,8 +2323,8 @@ packages:
       is-glob: 4.0.3
     dev: true
 
-  /glob@10.2.2:
-    resolution: {integrity: sha512-Xsa0BcxIC6th9UwNjZkhrMtNo/MnyRL8jGCP+uEwhA5oFOCY1f2s1/oNKY47xQ0Bg5nkjsfAEIej1VeH62bDDQ==}
+  /glob@10.2.3:
+    resolution: {integrity: sha512-Kb4rfmBVE3eQTAimgmeqc2LwSnN0wIOkkUL6HmxEFxNJ4fHghYHVbFba/HcGcRjE6s9KoMNK3rSOwkL4PioZjg==}
     engines: {node: '>=16 || 14 >=14.17'}
     hasBin: true
     dependencies:
@@ -2332,7 +2332,7 @@ packages:
       jackspeak: 2.2.0
       minimatch: 9.0.0
       minipass: 5.0.0
-      path-scurry: 1.7.0
+      path-scurry: 1.8.0
     dev: true
 
   /glob@7.2.3:
@@ -3231,8 +3231,8 @@ packages:
     resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
     dev: true
 
-  /path-scurry@1.7.0:
-    resolution: {integrity: sha512-UkZUeDjczjYRE495+9thsgcVgsaCPkaw80slmfVFgllxY+IO8ubTsOpFVjDPROBqJdHfVPUFRHPBV/WciOVfWg==}
+  /path-scurry@1.8.0:
+    resolution: {integrity: sha512-IjTrKseM404/UAWA8bBbL3Qp6O2wXkanuIE3seCxBH7ctRuvH1QRawy1N3nVDHGkdeZsjOsSe/8AQBL/VQCy2g==}
     engines: {node: '>=16 || 14 >=14.17'}
     dependencies:
       lru-cache: 9.1.1
@@ -3394,11 +3394,11 @@ packages:
     engines: {node: '>=14'}
     hasBin: true
     dependencies:
-      glob: 10.2.2
+      glob: 10.2.3
     dev: true
 
-  /rollup@3.21.5:
-    resolution: {integrity: sha512-a4NTKS4u9PusbUJcfF4IMxuqjFzjm6ifj76P54a7cKnvVzJaG12BLVR+hgU2YDGHzyMMQNxLAZWuALsn8q2oQg==}
+  /rollup@3.21.6:
+    resolution: {integrity: sha512-SXIICxvxQxR3D4dp/3LDHZIJPC8a4anKMHd4E3Jiz2/JnY+2bEjqrOokAauc5ShGVNFHlEFjBXAXlaxkJqIqSg==}
     engines: {node: '>=14.18.0', npm: '>=8.0.0'}
     hasBin: true
     optionalDependencies:
@@ -3884,7 +3884,7 @@ packages:
       convert-source-map: 1.9.0
     dev: true
 
-  /vite-node@0.31.0(@types/node@20.1.1):
+  /vite-node@0.31.0(@types/node@20.1.2):
     resolution: {integrity: sha512-8x1x1LNuPvE2vIvkSB7c1mApX5oqlgsxzHQesYF7l5n1gKrEmrClIiZuOFbFDQcjLsmcWSwwmrWrcGWm9Fxc/g==}
     engines: {node: '>=v14.18.0'}
     hasBin: true
@@ -3894,7 +3894,7 @@ packages:
       mlly: 1.2.0
       pathe: 1.1.0
       picocolors: 1.0.0
-      vite: 4.3.5(@types/node@20.1.1)
+      vite: 4.3.5(@types/node@20.1.2)
     transitivePeerDependencies:
       - '@types/node'
       - less
@@ -3905,7 +3905,7 @@ packages:
       - terser
     dev: true
 
-  /vite@4.3.5(@types/node@20.1.1):
+  /vite@4.3.5(@types/node@20.1.2):
     resolution: {integrity: sha512-0gEnL9wiRFxgz40o/i/eTBwm+NEbpUeTWhzKrZDSdKm6nplj+z4lKz8ANDgildxHm47Vg8EUia0aicKbawUVVA==}
     engines: {node: ^14.18.0 || >=16.0.0}
     hasBin: true
@@ -3930,10 +3930,10 @@ packages:
       terser:
         optional: true
     dependencies:
-      '@types/node': 20.1.1
+      '@types/node': 20.1.2
       esbuild: 0.17.18
       postcss: 8.4.23
-      rollup: 3.21.5
+      rollup: 3.21.6
     optionalDependencies:
       fsevents: 2.3.2
     dev: true
@@ -3971,7 +3971,7 @@ packages:
     dependencies:
       '@types/chai': 4.3.5
       '@types/chai-subset': 1.3.3
-      '@types/node': 20.1.1
+      '@types/node': 20.1.2
       '@vitest/expect': 0.31.0
       '@vitest/runner': 0.31.0
       '@vitest/snapshot': 0.31.0
@@ -3992,8 +3992,8 @@ packages:
       strip-literal: 1.0.1
       tinybench: 2.5.0
       tinypool: 0.5.0
-      vite: 4.3.5(@types/node@20.1.1)
-      vite-node: 0.31.0(@types/node@20.1.1)
+      vite: 4.3.5(@types/node@20.1.2)
+      vite-node: 0.31.0(@types/node@20.1.2)
       why-is-node-running: 2.2.2
     transitivePeerDependencies:
       - less