From 8baf3f8f3e3330c90cbd3474b6f5c7d589be17ff Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Thu, 1 Jun 2023 21:06:51 +0200 Subject: [PATCH] feat: restart worker on uncaught exception MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- package.json | 16 +-- pnpm-lock.yaml | 192 ++++++++++++++++---------------- src/worker/WorkerAbstract.ts | 11 ++ src/worker/WorkerDynamicPool.ts | 19 +--- src/worker/WorkerSet.ts | 50 +++------ src/worker/WorkerStaticPool.ts | 19 +--- ui/web/package.json | 6 +- ui/web/pnpm-lock.yaml | 142 +++++++++++------------ 8 files changed, 213 insertions(+), 242 deletions(-) diff --git a/package.json b/package.json index 0e8f5b39..049eee85 100644 --- a/package.json +++ b/package.json @@ -87,10 +87,10 @@ } }, "dependencies": { - "@mikro-orm/core": "^5.7.10", - "@mikro-orm/mariadb": "^5.7.10", - "@mikro-orm/reflection": "^5.7.10", - "@mikro-orm/sqlite": "^5.7.10", + "@mikro-orm/core": "^5.7.11", + "@mikro-orm/mariadb": "^5.7.11", + "@mikro-orm/reflection": "^5.7.11", + "@mikro-orm/sqlite": "^5.7.11", "ajv": "^8.12.0", "ajv-formats": "^2.1.1", "basic-ftp": "^5.0.3", @@ -101,8 +101,8 @@ "logform": "^2.5.1", "mnemonist": "^0.39.5", "moment": "^2.29.4", - "mongodb": "^5.5.0", - "poolifier": "^2.5.0", + "mongodb": "^5.6.0", + "poolifier": "^2.5.1", "source-map-support": "^0.5.21", "tar": "^6.1.15", "tslib": "^2.5.2", @@ -117,7 +117,7 @@ "devDependencies": { "@commitlint/cli": "^17.6.5", "@commitlint/config-conventional": "^17.6.5", - "@mikro-orm/cli": "^5.7.10", + "@mikro-orm/cli": "^5.7.11", "@release-it/bumper": "^4.0.2", "@rollup/plugin-json": "^6.0.0", "@rollup/plugin-terser": "^0.4.3", @@ -158,6 +158,6 @@ "semver": "^7.5.1", "sinon": "^15.1.0", "ts-node": "^10.9.1", - "typescript": "^5.0.4" + "typescript": "^5.1.3" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 95dbb931..a95307c0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,17 +12,17 @@ overrides: dependencies: '@mikro-orm/core': - specifier: ^5.7.10 - version: 5.7.10(@mikro-orm/mariadb@5.7.10)(@mikro-orm/sqlite@5.7.10) + specifier: ^5.7.11 + version: 5.7.11(@mikro-orm/mariadb@5.7.11)(@mikro-orm/sqlite@5.7.11) '@mikro-orm/mariadb': - specifier: ^5.7.10 - version: 5.7.10(@mikro-orm/core@5.7.10) + specifier: ^5.7.11 + version: 5.7.11(@mikro-orm/core@5.7.11) '@mikro-orm/reflection': - specifier: ^5.7.10 - version: 5.7.10(@mikro-orm/core@5.7.10) + specifier: ^5.7.11 + version: 5.7.11(@mikro-orm/core@5.7.11) '@mikro-orm/sqlite': - specifier: ^5.7.10 - version: 5.7.10(@mikro-orm/core@5.7.10) + specifier: ^5.7.11 + version: 5.7.11(@mikro-orm/core@5.7.11) ajv: specifier: ^8.12.0 version: 8.12.0 @@ -54,11 +54,11 @@ dependencies: specifier: ^2.29.4 version: 2.29.4 mongodb: - specifier: ^5.5.0 - version: 5.5.0 + specifier: ^5.6.0 + version: 5.6.0 poolifier: - specifier: ^2.5.0 - version: 2.5.0 + specifier: ^2.5.1 + version: 2.5.1 source-map-support: specifier: ^0.5.21 version: 0.5.21 @@ -94,8 +94,8 @@ devDependencies: specifier: ^17.6.5 version: 17.6.5 '@mikro-orm/cli': - specifier: ^5.7.10 - version: 5.7.10(@mikro-orm/mariadb@5.7.10)(@mikro-orm/sqlite@5.7.10) + specifier: ^5.7.11 + version: 5.7.11(@mikro-orm/mariadb@5.7.11)(@mikro-orm/sqlite@5.7.11) '@release-it/bumper': specifier: ^4.0.2 version: 4.0.2(release-it@15.10.3) @@ -107,7 +107,7 @@ devDependencies: version: 0.4.3(rollup@3.23.0) '@rollup/plugin-typescript': specifier: ^11.1.1 - version: 11.1.1(rollup@3.23.0)(tslib@2.5.2)(typescript@5.0.4) + version: 11.1.1(rollup@3.23.0)(tslib@2.5.2)(typescript@5.1.3) '@types/mocha': specifier: ^10.0.1 version: 10.0.1 @@ -128,10 +128,10 @@ devDependencies: version: 8.5.4 '@typescript-eslint/eslint-plugin': specifier: ^5.59.8 - version: 5.59.8(@typescript-eslint/parser@5.59.8)(eslint@8.41.0)(typescript@5.0.4) + version: 5.59.8(@typescript-eslint/parser@5.59.8)(eslint@8.41.0)(typescript@5.1.3) '@typescript-eslint/parser': specifier: ^5.59.8 - version: 5.59.8(eslint@8.41.0)(typescript@5.0.4) + version: 5.59.8(eslint@8.41.0)(typescript@5.1.3) '@web/rollup-plugin-copy': specifier: ^0.4.0 version: 0.4.0 @@ -215,10 +215,10 @@ devDependencies: version: 15.1.0 ts-node: specifier: ^10.9.1 - version: 10.9.1(@types/node@20.2.5)(typescript@5.0.4) + version: 10.9.1(@types/node@20.2.5)(typescript@5.1.3) typescript: - specifier: ^5.0.4 - version: 5.0.4 + specifier: ^5.1.3 + version: 5.1.3 packages: @@ -514,13 +514,13 @@ packages: '@types/node': 20.2.5 chalk: 4.1.2 cosmiconfig: 8.1.3 - cosmiconfig-typescript-loader: 4.3.0(@types/node@20.2.5)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.0.4) + cosmiconfig-typescript-loader: 4.3.0(@types/node@20.2.5)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.1.3) 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.2.5)(typescript@5.0.4) - typescript: 5.0.4 + ts-node: 10.9.1(@types/node@20.2.5)(typescript@5.1.3) + typescript: 5.1.3 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -816,8 +816,8 @@ packages: resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} dev: true - /@mikro-orm/cli@5.7.10(@mikro-orm/mariadb@5.7.10)(@mikro-orm/sqlite@5.7.10): - resolution: {integrity: sha512-XqqHqBYsCd6+9IMIkF2lczI2rAdb9IkKW3vdLclSbB9OB+UeB5hGIckM3WFIEfMDAdZvzK4lpmVzzYA3K59OjA==} + /@mikro-orm/cli@5.7.11(@mikro-orm/mariadb@5.7.11)(@mikro-orm/sqlite@5.7.11): + resolution: {integrity: sha512-Xq380ItSARi8jG2Y6gQrd3msmioEfG3I5bHxF4aZR2LATO0r2zV6Am13CaGFnpS3EWeEUxGb7XUCjS7yoL9RzQ==} engines: {node: '>= 14.0.0'} hasBin: true peerDependencies: @@ -854,10 +854,10 @@ packages: optional: true dependencies: '@jercle/yargonaut': 1.1.5 - '@mikro-orm/core': 5.7.10(@mikro-orm/mariadb@5.7.10)(@mikro-orm/sqlite@5.7.10) - '@mikro-orm/knex': 5.7.10(@mikro-orm/core@5.7.10)(sqlite3@5.1.6) - '@mikro-orm/mariadb': 5.7.10(@mikro-orm/core@5.7.10) - '@mikro-orm/sqlite': 5.7.10(@mikro-orm/core@5.7.10) + '@mikro-orm/core': 5.7.11(@mikro-orm/mariadb@5.7.11)(@mikro-orm/sqlite@5.7.11) + '@mikro-orm/knex': 5.7.11(@mikro-orm/core@5.7.11)(sqlite3@5.1.6) + '@mikro-orm/mariadb': 5.7.11(@mikro-orm/core@5.7.11) + '@mikro-orm/sqlite': 5.7.11(@mikro-orm/core@5.7.11) fs-extra: 11.1.1 tsconfig-paths: 4.2.0 yargs: 17.7.2 @@ -873,8 +873,8 @@ packages: - tedious dev: true - /@mikro-orm/core@5.7.10(@mikro-orm/mariadb@5.7.10)(@mikro-orm/sqlite@5.7.10): - resolution: {integrity: sha512-DK+UgZvDxLfFAkkICaF4tZqbwbkZ5L5OpzMrpjZqCS9BlAUhi9bktUBkqIOlr9QlX45Dk/FrsPrIuOcPjt4EQg==} + /@mikro-orm/core@5.7.11(@mikro-orm/mariadb@5.7.11)(@mikro-orm/sqlite@5.7.11): + resolution: {integrity: sha512-4ZpqR+jEKFCOC5tX2zIYNvdQfhtdINzl3p3o2AJFeY1IcG/8PGw/6yFLg1hkGwgW7LPSa6djqBGEdm0GnmSsHw==} engines: {node: '>= 14.0.0'} peerDependencies: '@mikro-orm/better-sqlite': ^5.0.0 @@ -909,18 +909,18 @@ packages: '@mikro-orm/sqlite': optional: true dependencies: - '@mikro-orm/mariadb': 5.7.10(@mikro-orm/core@5.7.10) - '@mikro-orm/sqlite': 5.7.10(@mikro-orm/core@5.7.10) + '@mikro-orm/mariadb': 5.7.11(@mikro-orm/core@5.7.11) + '@mikro-orm/sqlite': 5.7.11(@mikro-orm/core@5.7.11) acorn-loose: 8.3.0 acorn-walk: 8.2.0 - dotenv: 16.0.3 + dotenv: 16.1.3 fs-extra: 11.1.1 globby: 11.1.0 - mikro-orm: 5.7.10 + mikro-orm: 5.7.11 reflect-metadata: 0.1.13 - /@mikro-orm/knex@5.7.10(@mikro-orm/core@5.7.10)(sqlite3@5.1.6): - resolution: {integrity: sha512-cpR1zSJwAbWKBmpJqv9wEURnrBLn7w+1V7BPIHZMswaH1ahV05E07JJKnL3W2j6pktOzMjsB6HUbX6MZtQj0QA==} + /@mikro-orm/knex@5.7.11(@mikro-orm/core@5.7.11)(sqlite3@5.1.6): + resolution: {integrity: sha512-t2H3Dtrv0RaOn9vQGz7IPXN2L34H/RpTCN697lZXRVG2AgIJ4ImL52Ntqf+3L5dV4INSYvoKYm7ywBcfI990dQ==} engines: {node: '>= 14.0.0'} peerDependencies: '@mikro-orm/core': ^5.0.0 @@ -950,7 +950,7 @@ packages: sqlite3: optional: true dependencies: - '@mikro-orm/core': 5.7.10(@mikro-orm/mariadb@5.7.10)(@mikro-orm/sqlite@5.7.10) + '@mikro-orm/core': 5.7.11(@mikro-orm/mariadb@5.7.11)(@mikro-orm/sqlite@5.7.11) fs-extra: 11.1.1 knex: 2.4.2(sqlite3@5.1.6) sqlite3: 5.1.6 @@ -960,8 +960,8 @@ packages: - supports-color - tedious - /@mikro-orm/mariadb@5.7.10(@mikro-orm/core@5.7.10): - resolution: {integrity: sha512-IcUPtAQarYeJJVPP1QlfDS+zX16HQEiOxTVeETo0glsO8VnSoSQ/oWS2f83IolwWlYHcN9lIeyhIoZTnMhmKdw==} + /@mikro-orm/mariadb@5.7.11(@mikro-orm/core@5.7.11): + resolution: {integrity: sha512-swPBAbcgosrePKDXZ24He4vLeFzhtfpH1WpjQScN5ni8m4xflJenJGLd5ru/aEYZIcIjECJSawuH5ORtYcYJEA==} engines: {node: '>= 14.0.0'} peerDependencies: '@mikro-orm/core': ^5.0.0 @@ -976,8 +976,8 @@ packages: '@mikro-orm/seeder': optional: true dependencies: - '@mikro-orm/core': 5.7.10(@mikro-orm/mariadb@5.7.10)(@mikro-orm/sqlite@5.7.10) - '@mikro-orm/knex': 5.7.10(@mikro-orm/core@5.7.10)(sqlite3@5.1.6) + '@mikro-orm/core': 5.7.11(@mikro-orm/mariadb@5.7.11)(@mikro-orm/sqlite@5.7.11) + '@mikro-orm/knex': 5.7.11(@mikro-orm/core@5.7.11)(sqlite3@5.1.6) mariadb: 2.5.6 transitivePeerDependencies: - better-sqlite3 @@ -990,19 +990,19 @@ packages: - supports-color - tedious - /@mikro-orm/reflection@5.7.10(@mikro-orm/core@5.7.10): - resolution: {integrity: sha512-/g2uODbZROW0bQAVhhC3H5PlRVHlY8q20KWj5uGcXlS5UWTNQoMTpqUjlDvDckXgP/asAGWhxxpcIf/VP2xiCQ==} + /@mikro-orm/reflection@5.7.11(@mikro-orm/core@5.7.11): + resolution: {integrity: sha512-dhPHxGj65L8/3XBOrN15TCwqcEZX9igoyGjWtmow3xHKaq4xZAw2q4gePMDYTfma2VI2I5Cs+hQGx68rZdCryA==} engines: {node: '>= 14.0.0'} peerDependencies: '@mikro-orm/core': ^5.0.0 dependencies: - '@mikro-orm/core': 5.7.10(@mikro-orm/mariadb@5.7.10)(@mikro-orm/sqlite@5.7.10) + '@mikro-orm/core': 5.7.11(@mikro-orm/mariadb@5.7.11)(@mikro-orm/sqlite@5.7.11) globby: 11.1.0 ts-morph: 18.0.0 dev: false - /@mikro-orm/sqlite@5.7.10(@mikro-orm/core@5.7.10): - resolution: {integrity: sha512-zRI8zYgHn8aJfmh/WOOQcPkDrNCf1WInymt0kAzMmxnZjZb+fzaDrmziIJBWewt/GpXyGMJ8zQ/Tuv9uYyuMaA==} + /@mikro-orm/sqlite@5.7.11(@mikro-orm/core@5.7.11): + resolution: {integrity: sha512-r/z0/J5xt2KHT4QQTzB65rr/J/BExJM0z0Qj4z4wgGk46A49khKyNf0KQ8uezfh0d6gow77eoaradkgH1Ekx3A==} engines: {node: '>= 14.0.0'} peerDependencies: '@mikro-orm/core': ^5.0.0 @@ -1017,8 +1017,8 @@ packages: '@mikro-orm/seeder': optional: true dependencies: - '@mikro-orm/core': 5.7.10(@mikro-orm/mariadb@5.7.10)(@mikro-orm/sqlite@5.7.10) - '@mikro-orm/knex': 5.7.10(@mikro-orm/core@5.7.10)(sqlite3@5.1.6) + '@mikro-orm/core': 5.7.11(@mikro-orm/mariadb@5.7.11)(@mikro-orm/sqlite@5.7.11) + '@mikro-orm/knex': 5.7.11(@mikro-orm/core@5.7.11)(sqlite3@5.1.6) fs-extra: 11.1.1 sqlite3: 5.1.6 sqlstring-sqlite: 0.1.1 @@ -1280,10 +1280,10 @@ packages: rollup: 3.23.0 serialize-javascript: 6.0.1 smob: 1.4.0 - terser: 5.17.6 + terser: 5.17.7 dev: true - /@rollup/plugin-typescript@11.1.1(rollup@3.23.0)(tslib@2.5.2)(typescript@5.0.4): + /@rollup/plugin-typescript@11.1.1(rollup@3.23.0)(tslib@2.5.2)(typescript@5.1.3): resolution: {integrity: sha512-Ioir+x5Bejv72Lx2Zbz3/qGg7tvGbxQZALCLoJaGrkNXak/19+vKgKYJYM3i/fJxvsb23I9FuFQ8CUBEfsmBRg==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1300,7 +1300,7 @@ packages: resolve: 1.22.2 rollup: 3.23.0 tslib: 2.5.2 - typescript: 5.0.4 + typescript: 5.1.3 dev: true /@rollup/pluginutils@5.0.2(rollup@3.23.0): @@ -1562,7 +1562,7 @@ packages: '@types/yargs-parser': 21.0.0 dev: true - /@typescript-eslint/eslint-plugin@5.59.8(@typescript-eslint/parser@5.59.8)(eslint@8.41.0)(typescript@5.0.4): + /@typescript-eslint/eslint-plugin@5.59.8(@typescript-eslint/parser@5.59.8)(eslint@8.41.0)(typescript@5.1.3): resolution: {integrity: sha512-JDMOmhXteJ4WVKOiHXGCoB96ADWg9q7efPWHRViT/f09bA8XOMLAVHHju3l0MkZnG1izaWXYmgvQcUjTRcpShQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1574,23 +1574,23 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.5.1 - '@typescript-eslint/parser': 5.59.8(eslint@8.41.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.8(eslint@8.41.0)(typescript@5.1.3) '@typescript-eslint/scope-manager': 5.59.8 - '@typescript-eslint/type-utils': 5.59.8(eslint@8.41.0)(typescript@5.0.4) - '@typescript-eslint/utils': 5.59.8(eslint@8.41.0)(typescript@5.0.4) + '@typescript-eslint/type-utils': 5.59.8(eslint@8.41.0)(typescript@5.1.3) + '@typescript-eslint/utils': 5.59.8(eslint@8.41.0)(typescript@5.1.3) debug: 4.3.4(supports-color@8.1.1) eslint: 8.41.0 grapheme-splitter: 1.0.4 ignore: 5.2.4 natural-compare-lite: 1.4.0 semver: 7.5.1 - tsutils: 3.21.0(typescript@5.0.4) - typescript: 5.0.4 + tsutils: 3.21.0(typescript@5.1.3) + typescript: 5.1.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@5.59.8(eslint@8.41.0)(typescript@5.0.4): + /@typescript-eslint/parser@5.59.8(eslint@8.41.0)(typescript@5.1.3): resolution: {integrity: sha512-AnR19RjJcpjoeGojmwZtCwBX/RidqDZtzcbG3xHrmz0aHHoOcbWnpDllenRDmDvsV0RQ6+tbb09/kyc+UT9Orw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1602,10 +1602,10 @@ packages: dependencies: '@typescript-eslint/scope-manager': 5.59.8 '@typescript-eslint/types': 5.59.8 - '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.0.4) + '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.1.3) debug: 4.3.4(supports-color@8.1.1) eslint: 8.41.0 - typescript: 5.0.4 + typescript: 5.1.3 transitivePeerDependencies: - supports-color dev: true @@ -1618,7 +1618,7 @@ packages: '@typescript-eslint/visitor-keys': 5.59.8 dev: true - /@typescript-eslint/type-utils@5.59.8(eslint@8.41.0)(typescript@5.0.4): + /@typescript-eslint/type-utils@5.59.8(eslint@8.41.0)(typescript@5.1.3): resolution: {integrity: sha512-+5M518uEIHFBy3FnyqZUF3BMP+AXnYn4oyH8RF012+e7/msMY98FhGL5SrN29NQ9xDgvqCgYnsOiKp1VjZ/fpA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1628,12 +1628,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.0.4) - '@typescript-eslint/utils': 5.59.8(eslint@8.41.0)(typescript@5.0.4) + '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.1.3) + '@typescript-eslint/utils': 5.59.8(eslint@8.41.0)(typescript@5.1.3) debug: 4.3.4(supports-color@8.1.1) eslint: 8.41.0 - tsutils: 3.21.0(typescript@5.0.4) - typescript: 5.0.4 + tsutils: 3.21.0(typescript@5.1.3) + typescript: 5.1.3 transitivePeerDependencies: - supports-color dev: true @@ -1643,7 +1643,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree@5.59.8(typescript@5.0.4): + /@typescript-eslint/typescript-estree@5.59.8(typescript@5.1.3): resolution: {integrity: sha512-Jy/lPSDJGNow14vYu6IrW790p7HIf/SOV1Bb6lZ7NUkLc2iB2Z9elESmsaUtLw8kVqogSbtLH9tut5GCX1RLDg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1658,13 +1658,13 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.1 - tsutils: 3.21.0(typescript@5.0.4) - typescript: 5.0.4 + tsutils: 3.21.0(typescript@5.1.3) + typescript: 5.1.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.59.8(eslint@8.41.0)(typescript@5.0.4): + /@typescript-eslint/utils@5.59.8(eslint@8.41.0)(typescript@5.1.3): resolution: {integrity: sha512-Tr65630KysnNn9f9G7ROF3w1b5/7f6QVCJ+WK9nhIocWmx9F+TmCAcglF26Vm7z8KCTwoKcNEBZrhlklla3CKg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1675,7 +1675,7 @@ packages: '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 5.59.8 '@typescript-eslint/types': 5.59.8 - '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.0.4) + '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.1.3) eslint: 8.41.0 eslint-scope: 5.1.1 semver: 7.5.1 @@ -3043,7 +3043,7 @@ packages: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: true - /cosmiconfig-typescript-loader@4.3.0(@types/node@20.2.5)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.0.4): + /cosmiconfig-typescript-loader@4.3.0(@types/node@20.2.5)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.1.3): resolution: {integrity: sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==} engines: {node: '>=12', npm: '>=6'} peerDependencies: @@ -3054,8 +3054,8 @@ packages: dependencies: '@types/node': 20.2.5 cosmiconfig: 8.1.3 - ts-node: 10.9.1(@types/node@20.2.5)(typescript@5.0.4) - typescript: 5.0.4 + ts-node: 10.9.1(@types/node@20.2.5)(typescript@5.1.3) + typescript: 5.1.3 dev: true /cosmiconfig@8.1.3: @@ -3590,8 +3590,8 @@ packages: is-obj: 2.0.0 dev: true - /dotenv@16.0.3: - resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} + /dotenv@16.1.3: + resolution: {integrity: sha512-FYssxsmCTtKL72fGBSvb1K9dRz0/VZeWqFme/vSb7r7323x4CRaHu4LvQ5JG3+s6yt2YPbBrkpiEODktfyjI9A==} engines: {node: '>=12'} /dup@1.0.0: @@ -3949,7 +3949,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.59.8(eslint@8.41.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.8(eslint@8.41.0)(typescript@5.1.3) debug: 3.2.7 eslint: 8.41.0 eslint-import-resolver-node: 0.3.7 @@ -3979,7 +3979,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.59.8(eslint@8.41.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.8(eslint@8.41.0)(typescript@5.1.3) array-includes: 3.1.6 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 @@ -6293,8 +6293,8 @@ packages: dependencies: yallist: 4.0.0 - /lru-cache@9.1.1: - resolution: {integrity: sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==} + /lru-cache@9.1.2: + resolution: {integrity: sha512-ERJq3FOzJTxBbFjZ7iDs+NiK4VI9Wz+RdrrAB8dio1oV+YvdPzUEE4QNiT2VD51DkIbCYRUUzCRkssXCHqSnKQ==} engines: {node: 14 || >=16.14} dev: true @@ -6437,8 +6437,8 @@ packages: braces: 3.0.2 picomatch: 2.3.1 - /mikro-orm@5.7.10: - resolution: {integrity: sha512-lI1/eaceU68vo2rwmiQEuxTRjoudeUqFY2X231CnbGaOF7HJ3HZKbHRebbHdn0BeU4PwvxcRUjPWIPDclVyMHA==} + /mikro-orm@5.7.11: + resolution: {integrity: sha512-Cbg8cBqTgr+qPzeENPVHQ2L/SfDrkXjNa10ghQYp1W7Bt6jWYF4oukLAuo6GnPx/utPCbKRwTTB+cxHPppXh6Q==} engines: {node: '>= 14.0.0'} /miller-rabin@4.0.1: @@ -6812,8 +6812,8 @@ packages: whatwg-url: 11.0.0 dev: false - /mongodb@5.5.0: - resolution: {integrity: sha512-XgrkUgAAdfnZKQfk5AsYL8j7O99WHd4YXPxYxnh8dZxD+ekYWFRA3JktUsBnfg+455Smf75/+asoU/YLwNGoQQ==} + /mongodb@5.6.0: + resolution: {integrity: sha512-z8qVs9NfobHJm6uzK56XBZF8XwM9H294iRnB7wNjF0SnY93si5HPziIJn+qqvUR5QOff/4L0gCD6SShdR/GtVQ==} engines: {node: '>=14.20.1'} peerDependencies: '@aws-sdk/credential-providers': ^3.201.0 @@ -7546,7 +7546,7 @@ packages: resolution: {integrity: sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==} engines: {node: '>=16 || 14 >=14.17'} dependencies: - lru-cache: 9.1.1 + lru-cache: 9.1.2 minipass: 6.0.2 dev: true @@ -7609,8 +7609,8 @@ packages: dependencies: semver-compare: 1.0.0 - /poolifier@2.5.0: - resolution: {integrity: sha512-50HvnfJuLcCHU83I2F9f/cSlmLd/Iw7gmqnacKsuRZJndJaQ12csiCVSsORXY56T1JLXcB0O4fu183oQ6PBhAA==} + /poolifier@2.5.1: + resolution: {integrity: sha512-Vob7j9bZVUvadjX9B5oJdVrlAwm/Yn7KJMYdBdphYtZLvZSfFAymypkJa6zPnZPlKMXOcPgMJEr6lkafn1iTtg==} engines: {node: '>=16.14.0', pnpm: '>=8.6.0'} requiresBuild: true dev: false @@ -9097,8 +9097,8 @@ packages: source-map-support: 0.5.21 dev: true - /terser@5.17.6: - resolution: {integrity: sha512-V8QHcs8YuyLkLHsJO5ucyff1ykrLVsR4dNnS//L5Y3NiSXpbK1J+WMVUs67eI0KTxs9JtHhgEQpXQVHlHI92DQ==} + /terser@5.17.7: + resolution: {integrity: sha512-/bi0Zm2C6VAexlGgLlVxA0P2lru/sdLyfCVaRMfKVo9nWxbmz7f/sD8VPybPeSUJaJcwmCJis9pBIhcVcG1QcQ==} engines: {node: '>=10'} hasBin: true dependencies: @@ -9253,7 +9253,7 @@ packages: code-block-writer: 12.0.0 dev: false - /ts-node@10.9.1(@types/node@20.2.5)(typescript@5.0.4): + /ts-node@10.9.1(@types/node@20.2.5)(typescript@5.1.3): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -9279,7 +9279,7 @@ packages: create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.0.4 + typescript: 5.1.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true @@ -9309,14 +9309,14 @@ packages: /tslib@2.5.2: resolution: {integrity: sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==} - /tsutils@3.21.0(typescript@5.0.4): + /tsutils@3.21.0(typescript@5.1.3): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 5.0.4 + typescript: 5.1.3 dev: true /ttest@3.0.0: @@ -9442,9 +9442,9 @@ packages: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} dev: true - /typescript@5.0.4: - resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} - engines: {node: '>=12.20'} + /typescript@5.1.3: + resolution: {integrity: sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==} + engines: {node: '>=14.17'} hasBin: true dev: true diff --git a/src/worker/WorkerAbstract.ts b/src/worker/WorkerAbstract.ts index 16d566bd..7753e64d 100644 --- a/src/worker/WorkerAbstract.ts +++ b/src/worker/WorkerAbstract.ts @@ -40,7 +40,18 @@ export abstract class WorkerAbstract { this.workerOptions = workerOptions; } + /** + * Start the worker pool/set. + */ public abstract start(): Promise; + /** + * Stop the worker pool/set. + */ public abstract stop(): Promise; + /** + * Add a task element to the worker pool/set. + * + * @param elementData - + */ public abstract addElement(elementData: T): Promise; } diff --git a/src/worker/WorkerDynamicPool.ts b/src/worker/WorkerDynamicPool.ts index c8a87ceb..af8b7e2a 100644 --- a/src/worker/WorkerDynamicPool.ts +++ b/src/worker/WorkerDynamicPool.ts @@ -40,30 +40,17 @@ export class WorkerDynamicPool extends WorkerAbstract { return undefined; } - /** - * - * @returns - * @public - */ + /** @inheritDoc */ public async start(): Promise { // This is intentional } - /** - * - * @returns - * @public - */ + /** @inheritDoc */ public async stop(): Promise { return this.pool.destroy(); } - /** - * - * @param elementData - - * @returns - * @public - */ + /** @inheritDoc */ public async addElement(elementData: WorkerData): Promise { await this.pool.execute(elementData); // Start element sequentially to optimize memory at startup diff --git a/src/worker/WorkerSet.ts b/src/worker/WorkerSet.ts index e1fce2e6..da1e5dd5 100644 --- a/src/worker/WorkerSet.ts +++ b/src/worker/WorkerSet.ts @@ -35,47 +35,40 @@ export class WorkerSet extends WorkerAbstract { return this.workerOptions.elementsPerWorker; } - /** - * - * @param elementData - - * @returns - * @public - */ + /** @inheritDoc */ public async addElement(elementData: WorkerData): Promise { if (!this.workerSet) { throw new Error("Cannot add a WorkerSet element: workers' set does not exist"); } + let lastWorkerSetElement = this.getLastWorkerSetElement(); if ( this.workerSet.size === 0 || - this.getLastWorkerSetElement().numberOfWorkerElements >= this.workerOptions.elementsPerWorker + lastWorkerSetElement.numberOfWorkerElements >= this.workerOptions.elementsPerWorker ) { - await this.startWorker(); + this.startWorker(); + // Start worker sequentially to optimize memory at startup + this.workerOptions.workerStartDelay > 0 && (await sleep(this.workerOptions.workerStartDelay)); + lastWorkerSetElement = this.getLastWorkerSetElement(); } - this.getLastWorker().postMessage({ + lastWorkerSetElement.worker.postMessage({ id: WorkerMessageEvents.startWorkerElement, data: elementData, }); - ++this.getLastWorkerSetElement().numberOfWorkerElements; + ++lastWorkerSetElement.numberOfWorkerElements; // Start element sequentially to optimize memory at startup if (this.workerOptions.elementStartDelay > 0) { await sleep(this.workerOptions.elementStartDelay); } } - /** - * - * @returns - * @public - */ + /** @inheritDoc */ public async start(): Promise { - await this.startWorker(); + this.startWorker(); + // Start worker sequentially to optimize memory at startup + this.workerOptions.workerStartDelay > 0 && (await sleep(this.workerOptions.workerStartDelay)); } - /** - * - * @returns - * @public - */ + /** @inheritDoc */ public async stop(): Promise { for (const workerSetElement of this.workerSet) { await workerSetElement.worker.terminate(); @@ -86,7 +79,7 @@ export class WorkerSet extends WorkerAbstract { /** * Start a new `Worker`. */ - private async startWorker(): Promise { + private startWorker(): void { const worker = new Worker(this.workerScript); worker.on( 'message', @@ -95,13 +88,10 @@ export class WorkerSet extends WorkerAbstract { ) as MessageHandler ); worker.on('error', defaultErrorHandler.bind(this) as (err: Error) => void); - worker.on('exit', (code) => { - defaultExitHandler(code); - this.workerSet.delete(this.getWorkerSetElementByWorker(worker)); - }); + worker.on('error', () => this.startWorker()); + worker.on('exit', defaultExitHandler.bind(this) as (exitCode: number) => void); + worker.on('exit', () => this.workerSet.delete(this.getWorkerSetElementByWorker(worker))); this.workerSet.add({ worker, numberOfWorkerElements: 0 }); - // Start worker sequentially to optimize memory at startup - this.workerOptions.workerStartDelay > 0 && (await sleep(this.workerOptions.workerStartDelay)); } private getLastWorkerSetElement(): WorkerSetElement { @@ -112,10 +102,6 @@ export class WorkerSet extends WorkerAbstract { return workerSetElement; } - private getLastWorker(): Worker { - return this.getLastWorkerSetElement().worker; - } - private getWorkerSetElementByWorker(worker: Worker): WorkerSetElement { let workerSetElt: WorkerSetElement; for (const workerSetElement of this.workerSet) { diff --git a/src/worker/WorkerStaticPool.ts b/src/worker/WorkerStaticPool.ts index 3786992a..6034c6e0 100644 --- a/src/worker/WorkerStaticPool.ts +++ b/src/worker/WorkerStaticPool.ts @@ -39,30 +39,17 @@ export class WorkerStaticPool extends WorkerAbstract { return undefined; } - /** - * - * @returns - * @public - */ + /** @inheritDoc */ public async start(): Promise { // This is intentional } - /** - * - * @returns - * @public - */ + /** @inheritDoc */ public async stop(): Promise { return this.pool.destroy(); } - /** - * - * @param elementData - - * @returns - * @public - */ + /** @inheritDoc */ public async addElement(elementData: WorkerData): Promise { await this.pool.execute(elementData); // Start element sequentially to optimize memory at startup diff --git a/ui/web/package.json b/ui/web/package.json index 68542be5..c0671c7a 100644 --- a/ui/web/package.json +++ b/ui/web/package.json @@ -38,7 +38,7 @@ "@typescript-eslint/parser": "^5.59.8", "@vitejs/plugin-vue": "^4.2.3", "@vitejs/plugin-vue-jsx": "^3.0.1", - "@vitest/coverage-c8": "^0.31.3", + "@vitest/coverage-c8": "^0.31.4", "@vue/eslint-config-prettier": "^7.1.0", "@vue/eslint-config-typescript": "^11.0.3", "@vue/test-utils": "^2.3.2", @@ -52,9 +52,9 @@ "jsdom": "^22.1.0", "prettier": "^2.8.8", "rimraf": "^5.0.1", - "typescript": "~5.0.4", + "typescript": "~5.1.3", "vite": "^4.3.9", - "vitest": "^0.31.3" + "vitest": "^0.31.4" }, "_id": "webui@0.1.1" } diff --git a/ui/web/pnpm-lock.yaml b/ui/web/pnpm-lock.yaml index 0e02b9fc..a7345479 100644 --- a/ui/web/pnpm-lock.yaml +++ b/ui/web/pnpm-lock.yaml @@ -30,10 +30,10 @@ devDependencies: version: 20.2.5 '@typescript-eslint/eslint-plugin': specifier: ^5.59.8 - version: 5.59.8(@typescript-eslint/parser@5.59.8)(eslint@8.41.0)(typescript@5.0.4) + version: 5.59.8(@typescript-eslint/parser@5.59.8)(eslint@8.41.0)(typescript@5.1.3) '@typescript-eslint/parser': specifier: ^5.59.8 - version: 5.59.8(eslint@8.41.0)(typescript@5.0.4) + version: 5.59.8(eslint@8.41.0)(typescript@5.1.3) '@vitejs/plugin-vue': specifier: ^4.2.3 version: 4.2.3(vite@4.3.9)(vue@3.3.4) @@ -41,14 +41,14 @@ devDependencies: specifier: ^3.0.1 version: 3.0.1(vite@4.3.9)(vue@3.3.4) '@vitest/coverage-c8': - specifier: ^0.31.3 - version: 0.31.3(vitest@0.31.3) + specifier: ^0.31.4 + version: 0.31.4(vitest@0.31.4) '@vue/eslint-config-prettier': specifier: ^7.1.0 version: 7.1.0(eslint@8.41.0)(prettier@2.8.8) '@vue/eslint-config-typescript': specifier: ^11.0.3 - version: 11.0.3(eslint-plugin-vue@9.14.1)(eslint@8.41.0)(typescript@5.0.4) + version: 11.0.3(eslint-plugin-vue@9.14.1)(eslint@8.41.0)(typescript@5.1.3) '@vue/test-utils': specifier: ^2.3.2 version: 2.3.2(vue@3.3.4) @@ -83,14 +83,14 @@ devDependencies: specifier: ^5.0.1 version: 5.0.1 typescript: - specifier: ~5.0.4 - version: 5.0.4 + specifier: ~5.1.3 + version: 5.1.3 vite: specifier: ^4.3.9 version: 4.3.9(@types/node@20.2.5) vitest: - specifier: ^0.31.3 - version: 0.31.3(jsdom@22.1.0) + specifier: ^0.31.4 + version: 0.31.4(jsdom@22.1.0) packages: @@ -795,7 +795,7 @@ packages: resolution: {integrity: sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==} dev: true - /@typescript-eslint/eslint-plugin@5.59.8(@typescript-eslint/parser@5.59.8)(eslint@8.41.0)(typescript@5.0.4): + /@typescript-eslint/eslint-plugin@5.59.8(@typescript-eslint/parser@5.59.8)(eslint@8.41.0)(typescript@5.1.3): resolution: {integrity: sha512-JDMOmhXteJ4WVKOiHXGCoB96ADWg9q7efPWHRViT/f09bA8XOMLAVHHju3l0MkZnG1izaWXYmgvQcUjTRcpShQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -807,23 +807,23 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.5.1 - '@typescript-eslint/parser': 5.59.8(eslint@8.41.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.8(eslint@8.41.0)(typescript@5.1.3) '@typescript-eslint/scope-manager': 5.59.8 - '@typescript-eslint/type-utils': 5.59.8(eslint@8.41.0)(typescript@5.0.4) - '@typescript-eslint/utils': 5.59.8(eslint@8.41.0)(typescript@5.0.4) + '@typescript-eslint/type-utils': 5.59.8(eslint@8.41.0)(typescript@5.1.3) + '@typescript-eslint/utils': 5.59.8(eslint@8.41.0)(typescript@5.1.3) debug: 4.3.4 eslint: 8.41.0 grapheme-splitter: 1.0.4 ignore: 5.2.4 natural-compare-lite: 1.4.0 semver: 7.5.1 - tsutils: 3.21.0(typescript@5.0.4) - typescript: 5.0.4 + tsutils: 3.21.0(typescript@5.1.3) + typescript: 5.1.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@5.59.8(eslint@8.41.0)(typescript@5.0.4): + /@typescript-eslint/parser@5.59.8(eslint@8.41.0)(typescript@5.1.3): resolution: {integrity: sha512-AnR19RjJcpjoeGojmwZtCwBX/RidqDZtzcbG3xHrmz0aHHoOcbWnpDllenRDmDvsV0RQ6+tbb09/kyc+UT9Orw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -835,10 +835,10 @@ packages: dependencies: '@typescript-eslint/scope-manager': 5.59.8 '@typescript-eslint/types': 5.59.8 - '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.0.4) + '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.1.3) debug: 4.3.4 eslint: 8.41.0 - typescript: 5.0.4 + typescript: 5.1.3 transitivePeerDependencies: - supports-color dev: true @@ -851,7 +851,7 @@ packages: '@typescript-eslint/visitor-keys': 5.59.8 dev: true - /@typescript-eslint/type-utils@5.59.8(eslint@8.41.0)(typescript@5.0.4): + /@typescript-eslint/type-utils@5.59.8(eslint@8.41.0)(typescript@5.1.3): resolution: {integrity: sha512-+5M518uEIHFBy3FnyqZUF3BMP+AXnYn4oyH8RF012+e7/msMY98FhGL5SrN29NQ9xDgvqCgYnsOiKp1VjZ/fpA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -861,12 +861,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.0.4) - '@typescript-eslint/utils': 5.59.8(eslint@8.41.0)(typescript@5.0.4) + '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.1.3) + '@typescript-eslint/utils': 5.59.8(eslint@8.41.0)(typescript@5.1.3) debug: 4.3.4 eslint: 8.41.0 - tsutils: 3.21.0(typescript@5.0.4) - typescript: 5.0.4 + tsutils: 3.21.0(typescript@5.1.3) + typescript: 5.1.3 transitivePeerDependencies: - supports-color dev: true @@ -876,7 +876,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree@5.59.8(typescript@5.0.4): + /@typescript-eslint/typescript-estree@5.59.8(typescript@5.1.3): resolution: {integrity: sha512-Jy/lPSDJGNow14vYu6IrW790p7HIf/SOV1Bb6lZ7NUkLc2iB2Z9elESmsaUtLw8kVqogSbtLH9tut5GCX1RLDg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -891,13 +891,13 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.1 - tsutils: 3.21.0(typescript@5.0.4) - typescript: 5.0.4 + tsutils: 3.21.0(typescript@5.1.3) + typescript: 5.1.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.59.8(eslint@8.41.0)(typescript@5.0.4): + /@typescript-eslint/utils@5.59.8(eslint@8.41.0)(typescript@5.1.3): resolution: {integrity: sha512-Tr65630KysnNn9f9G7ROF3w1b5/7f6QVCJ+WK9nhIocWmx9F+TmCAcglF26Vm7z8KCTwoKcNEBZrhlklla3CKg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -908,7 +908,7 @@ packages: '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 5.59.8 '@typescript-eslint/types': 5.59.8 - '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.0.4) + '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.1.3) eslint: 8.41.0 eslint-scope: 5.1.1 semver: 7.5.1 @@ -952,8 +952,8 @@ packages: vue: 3.3.4 dev: true - /@vitest/coverage-c8@0.31.3(vitest@0.31.3): - resolution: {integrity: sha512-i6z+aFyrv4HLwPw35SGQ4OcSlqfUcxIsarrp3JghrosSE/1prQcE0iOqO9EXEjNz+AVfR4Cvta/6m/Rrof46bQ==} + /@vitest/coverage-c8@0.31.4(vitest@0.31.4): + resolution: {integrity: sha512-VPx368m4DTcpA/P0v3YdVxl4QOSh1DbUcXURLRvDShrIB5KxOgfzw4Bn2R8AhAe/GyiWW/FIsJ/OJdYXCCiC1w==} peerDependencies: vitest: '>=0.30.0 <1' dependencies: @@ -962,42 +962,42 @@ packages: magic-string: 0.30.0 picocolors: 1.0.0 std-env: 3.3.3 - vitest: 0.31.3(jsdom@22.1.0) + vitest: 0.31.4(jsdom@22.1.0) dev: true - /@vitest/expect@0.31.3: - resolution: {integrity: sha512-J+npV64YwKRJN7hA8KVnuyGi5k5mIaq4XmqIxKbRUX0BRBkU1xZ7gZeTwQ4S4dBTcvSvcoxceBNfMTnOdTlg3g==} + /@vitest/expect@0.31.4: + resolution: {integrity: sha512-tibyx8o7GUyGHZGyPgzwiaPaLDQ9MMuCOrc03BYT0nryUuhLbL7NV2r/q98iv5STlwMgaKuFJkgBW/8iPKwlSg==} dependencies: - '@vitest/spy': 0.31.3 - '@vitest/utils': 0.31.3 + '@vitest/spy': 0.31.4 + '@vitest/utils': 0.31.4 chai: 4.3.7 dev: true - /@vitest/runner@0.31.3: - resolution: {integrity: sha512-89Fic1IRu4yNqnks/KJEncqZsmQpxq9RSnMVwV0RZeI9RWv/FYh9Nuoz8ld73YKOh6NiF4f9EE3COfNwX8aRpw==} + /@vitest/runner@0.31.4: + resolution: {integrity: sha512-Wgm6UER+gwq6zkyrm5/wbpXGF+g+UBB78asJlFkIOwyse0pz8lZoiC6SW5i4gPnls/zUcPLWS7Zog0LVepXnpg==} dependencies: - '@vitest/utils': 0.31.3 + '@vitest/utils': 0.31.4 concordance: 5.0.4 p-limit: 4.0.0 pathe: 1.1.0 dev: true - /@vitest/snapshot@0.31.3: - resolution: {integrity: sha512-CgcmlZyP083oPUgd83rwLZ+qoT4KdvLNsyWRiJNgHoJjR0r7StVY+LlLAfdC9qA70G8O+hJeug+Yn1u4H51OzA==} + /@vitest/snapshot@0.31.4: + resolution: {integrity: sha512-LemvNumL3NdWSmfVAMpXILGyaXPkZbG5tyl6+RQSdcHnTj6hvA49UAI8jzez9oQyE/FWLKRSNqTGzsHuk89LRA==} dependencies: magic-string: 0.30.0 pathe: 1.1.0 pretty-format: 27.5.1 dev: true - /@vitest/spy@0.31.3: - resolution: {integrity: sha512-tXGIYPdqjBXLhOWSUhWV/eBWBllfD8f6ppQXR0YMBt95bZrCNV7pM29pkam2M/3GAlg7hS+I8wnKZVkIxgXz9A==} + /@vitest/spy@0.31.4: + resolution: {integrity: sha512-3ei5ZH1s3aqbEyftPAzSuunGICRuhE+IXOmpURFdkm5ybUADk+viyQfejNk6q8M5QGX8/EVKw+QWMEP3DTJDag==} dependencies: tinyspy: 2.1.1 dev: true - /@vitest/utils@0.31.3: - resolution: {integrity: sha512-aLxfilR38ARSw6U/E9hl5bkn2TNeWLK7rZaIWZQUpT6BBilbehwJbSVGENubW5Pb9cawqchZZ7IQMW99t0Ww3A==} + /@vitest/utils@0.31.4: + resolution: {integrity: sha512-DobZbHacWznoGUfYU8XDPY78UubJxXfMNY1+SUdOp1NsI34eopSA6aZMeaGu10waSOeYwE8lxrd/pLfT0RMxjQ==} dependencies: concordance: 5.0.4 loupe: 2.3.6 @@ -1075,7 +1075,7 @@ packages: prettier: 2.8.8 dev: true - /@vue/eslint-config-typescript@11.0.3(eslint-plugin-vue@9.14.1)(eslint@8.41.0)(typescript@5.0.4): + /@vue/eslint-config-typescript@11.0.3(eslint-plugin-vue@9.14.1)(eslint@8.41.0)(typescript@5.1.3): resolution: {integrity: sha512-dkt6W0PX6H/4Xuxg/BlFj5xHvksjpSlVjtkQCpaYJBIEuKj2hOVU7r+TIe+ysCwRYFz/lGqvklntRkCAibsbPw==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: @@ -1086,11 +1086,11 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.59.8(@typescript-eslint/parser@5.59.8)(eslint@8.41.0)(typescript@5.0.4) - '@typescript-eslint/parser': 5.59.8(eslint@8.41.0)(typescript@5.0.4) + '@typescript-eslint/eslint-plugin': 5.59.8(@typescript-eslint/parser@5.59.8)(eslint@8.41.0)(typescript@5.1.3) + '@typescript-eslint/parser': 5.59.8(eslint@8.41.0)(typescript@5.1.3) eslint: 8.41.0 eslint-plugin-vue: 9.14.1(eslint@8.41.0) - typescript: 5.0.4 + typescript: 5.1.3 vue-eslint-parser: 9.3.0(eslint@8.41.0) transitivePeerDependencies: - supports-color @@ -1340,7 +1340,7 @@ packages: hasBin: true dependencies: caniuse-lite: 1.0.30001492 - electron-to-chromium: 1.4.414 + electron-to-chromium: 1.4.417 node-releases: 2.0.12 update-browserslist-db: 1.0.11(browserslist@4.21.7) dev: true @@ -1690,8 +1690,8 @@ packages: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} dev: false - /electron-to-chromium@1.4.414: - resolution: {integrity: sha512-RRuCvP6ekngVh2SAJaOKT/hxqc9JAsK+Pe0hP5tGQIfonU2Zy9gMGdJ+mBdyl/vNucMG6gkXYtuM4H/1giws5w==} + /electron-to-chromium@1.4.417: + resolution: {integrity: sha512-8rY8HdCxuSVY8wku3i/eDac4g1b4cSbruzocenrqBlzqruAZYHjQCHIjC66dLR9DXhEHTojsC4EjhZ8KmzwXqA==} dev: true /emoji-regex@8.0.0: @@ -1902,7 +1902,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.59.8(eslint@8.41.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.8(eslint@8.41.0)(typescript@5.1.3) debug: 3.2.7 eslint: 8.41.0 eslint-import-resolver-node: 0.3.7 @@ -1921,7 +1921,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.59.8(eslint@8.41.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.8(eslint@8.41.0)(typescript@5.1.3) array-includes: 3.1.6 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 @@ -2922,8 +2922,8 @@ packages: yallist: 4.0.0 dev: true - /lru-cache@9.1.1: - resolution: {integrity: sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==} + /lru-cache@9.1.2: + resolution: {integrity: sha512-ERJq3FOzJTxBbFjZ7iDs+NiK4VI9Wz+RdrrAB8dio1oV+YvdPzUEE4QNiT2VD51DkIbCYRUUzCRkssXCHqSnKQ==} engines: {node: 14 || >=16.14} dev: true @@ -3234,7 +3234,7 @@ packages: resolution: {integrity: sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==} engines: {node: '>=16 || 14 >=14.17'} dependencies: - lru-cache: 9.1.1 + lru-cache: 9.1.2 minipass: 6.0.2 dev: true @@ -3773,14 +3773,14 @@ packages: resolution: {integrity: sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==} dev: true - /tsutils@3.21.0(typescript@5.0.4): + /tsutils@3.21.0(typescript@5.1.3): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 5.0.4 + typescript: 5.1.3 dev: true /type-check@0.4.0: @@ -3808,9 +3808,9 @@ packages: is-typed-array: 1.1.10 dev: true - /typescript@5.0.4: - resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} - engines: {node: '>=12.20'} + /typescript@5.1.3: + resolution: {integrity: sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==} + engines: {node: '>=14.17'} hasBin: true dev: true @@ -3879,8 +3879,8 @@ packages: convert-source-map: 1.9.0 dev: true - /vite-node@0.31.3(@types/node@20.2.5): - resolution: {integrity: sha512-KGdemamy6imPlmTycADRs5yMX/CoxPq9vJwTAOgSfabzneJmyexmRBBVEX8Mesb3mleIXTBIVR6z0fmtoRTcww==} + /vite-node@0.31.4(@types/node@20.2.5): + resolution: {integrity: sha512-uzL377GjJtTbuc5KQxVbDu2xfU/x0wVjUtXQR2ihS21q/NK6ROr4oG0rsSkBBddZUVCwzfx22in76/0ZZHXgkQ==} engines: {node: '>=v14.18.0'} hasBin: true dependencies: @@ -3933,8 +3933,8 @@ packages: fsevents: 2.3.2 dev: true - /vitest@0.31.3(jsdom@22.1.0): - resolution: {integrity: sha512-LMXIKXfI7tDClf6HIR5GjCSHZQdlmfCWWPaJwWcLF+M11V766Tzefb8LD9mLcHmX/zR0xtlfcokpg3JxEDLfeA==} + /vitest@0.31.4(jsdom@22.1.0): + resolution: {integrity: sha512-GoV0VQPmWrUFOZSg3RpQAPN+LPmHg2/gxlMNJlyxJihkz6qReHDV6b0pPDcqFLNEPya4tWJ1pgwUNP9MLmUfvQ==} engines: {node: '>=v14.18.0'} hasBin: true peerDependencies: @@ -3967,11 +3967,11 @@ packages: '@types/chai': 4.3.5 '@types/chai-subset': 1.3.3 '@types/node': 20.2.5 - '@vitest/expect': 0.31.3 - '@vitest/runner': 0.31.3 - '@vitest/snapshot': 0.31.3 - '@vitest/spy': 0.31.3 - '@vitest/utils': 0.31.3 + '@vitest/expect': 0.31.4 + '@vitest/runner': 0.31.4 + '@vitest/snapshot': 0.31.4 + '@vitest/spy': 0.31.4 + '@vitest/utils': 0.31.4 acorn: 8.8.2 acorn-walk: 8.2.0 cac: 6.7.14 @@ -3988,7 +3988,7 @@ packages: tinybench: 2.5.0 tinypool: 0.5.0 vite: 4.3.9(@types/node@20.2.5) - vite-node: 0.31.3(@types/node@20.2.5) + vite-node: 0.31.4(@types/node@20.2.5) why-is-node-running: 2.2.2 transitivePeerDependencies: - less -- 2.34.1