diff --git a/package.json b/package.json index 712abd5..cae1bd3 100644 --- a/package.json +++ b/package.json @@ -36,12 +36,12 @@ "@git.zone/tsbuild": "^2.1.66", "@git.zone/tsrun": "^1.2.44", "@git.zone/tstest": "^1.0.77", - "@push.rocks/tapbundle": "^5.0.8", - "@types/node": "^20.11.28" + "@push.rocks/tapbundle": "^5.0.23", + "@types/node": "^20.12.7" }, "dependencies": { "@push.rocks/smartdelay": "^3.0.1", - "@push.rocks/smartexit": "^1.0.20", + "@push.rocks/smartexit": "^1.0.23", "@push.rocks/smartpromise": "^4.0.2", "@types/which": "^3.0.3", "tree-kill": "^1.2.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dd583c5..ed2df90 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,8 +9,8 @@ dependencies: specifier: ^3.0.1 version: 3.0.5 '@push.rocks/smartexit': - specifier: ^1.0.20 - version: 1.0.21 + specifier: ^1.0.23 + version: 1.0.23 '@push.rocks/smartpromise': specifier: ^4.0.2 version: 4.0.3 @@ -30,16 +30,16 @@ devDependencies: version: 2.1.72 '@git.zone/tsrun': specifier: ^1.2.44 - version: 1.2.46(@types/node@20.11.28) + version: 1.2.46(@types/node@20.12.7) '@git.zone/tstest': specifier: ^1.0.77 - version: 1.0.88(@types/node@20.11.28) + version: 1.0.88(@types/node@20.12.7) '@push.rocks/tapbundle': - specifier: ^5.0.8 - version: 5.0.17 + specifier: ^5.0.23 + version: 5.0.23 '@types/node': - specifier: ^20.11.28 - version: 20.11.28 + specifier: ^20.12.7 + version: 20.12.7 packages: @@ -124,12 +124,12 @@ packages: resolution: {integrity: sha512-Oi7pNU4vKo5UvcCJmqkH43Us237Ws/Pp/WDYnwnonRnTmIMd+6QjNfN/gXcPnP6tbamk8r8Xzcz9mgnSDM2ysw==} dev: true - /@babel/code-frame@7.23.5: - resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} + /@babel/code-frame@7.24.2: + resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.23.4 - chalk: 2.4.2 + '@babel/highlight': 7.24.2 + picocolors: 1.0.0 dev: true /@babel/helper-validator-identifier@7.22.20: @@ -137,13 +137,14 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/highlight@7.23.4: - resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} + /@babel/highlight@7.24.2: + resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 + picocolors: 1.0.0 dev: true /@cspotcode/source-map-support@0.8.1: @@ -363,7 +364,7 @@ packages: /@esm-bundle/chai@4.3.4-fix.0: resolution: {integrity: sha512-26SKdM4uvDWlY8/OOOxSB1AqQWeBosCX3wRYUZO7enTAj03CtVxIiCimYVG2WpULcyV51qapK4qTovwkUr5Mlw==} dependencies: - '@types/chai': 4.3.12 + '@types/chai': 4.3.14 dev: true /@git.zone/tsbuild@2.1.72: @@ -401,13 +402,13 @@ packages: - supports-color dev: true - /@git.zone/tsrun@1.2.46(@types/node@20.11.28): + /@git.zone/tsrun@1.2.46(@types/node@20.12.7): resolution: {integrity: sha512-8miFVBle9Mnjx+uPGI/P+EuWcIOXWjBAkdjN5IYbdp5Ytt4xQODCLh4JSnC9h56UeU1nUxCAxZeJs2e9TXrivA==} hasBin: true dependencies: '@push.rocks/smartfile': 10.0.41 '@push.rocks/smartshell': 3.0.3 - ts-node: 10.9.2(@types/node@20.11.28)(typescript@5.1.6) + ts-node: 10.9.2(@types/node@20.12.7)(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - '@swc/core' @@ -415,13 +416,13 @@ packages: - '@types/node' dev: true - /@git.zone/tstest@1.0.88(@types/node@20.11.28): + /@git.zone/tstest@1.0.88(@types/node@20.12.7): resolution: {integrity: sha512-yTBKLI48Nz35qHOJ9ZnXY06VvBAhcC3NEZ4YyGDN4CmrZQ6MVK3fIMQUQCFVmba0GzSmvbgbJcZnd6IRezkyzQ==} hasBin: true dependencies: '@api.global/typedserver': 3.0.27 '@git.zone/tsbundle': 2.0.15 - '@git.zone/tsrun': 1.2.46(@types/node@20.11.28) + '@git.zone/tsrun': 1.2.46(@types/node@20.12.7) '@push.rocks/consolecolor': 2.0.2 '@push.rocks/smartbrowser': 2.0.6 '@push.rocks/smartdelay': 3.0.5 @@ -429,7 +430,7 @@ packages: '@push.rocks/smartlog': 3.0.3 '@push.rocks/smartpromise': 4.0.3 '@push.rocks/smartshell': 3.0.3 - '@push.rocks/tapbundle': 5.0.17 + '@push.rocks/tapbundle': 5.0.23 '@types/ws': 8.5.10 figures: 6.1.0 ws: 8.16.0 @@ -514,13 +515,13 @@ packages: resolution: {integrity: sha512-q4U+hFTQQRyorJILOpmBm6PY2hgjCnQe214nXJNjbJMQ9EvT55oyZ7C8BY5aFYJkytUyBoawlMpZt4F2xjdzHw==} dependencies: '@open-wc/dedupe-mixin': 1.4.0 - lit: 3.1.2 + lit: 3.1.3 dev: true /@open-wc/semantic-dom-diff@0.20.1: resolution: {integrity: sha512-mPF/RPT2TU7Dw41LEDdaeP6eyTOWBD4z0+AHP4/d0SbgcfJZVRymlIB6DQmtz0fd2CImIS9kszaMmwMt92HBPA==} dependencies: - '@types/chai': 4.3.12 + '@types/chai': 4.3.14 '@web/test-runner-commands': 0.9.0 transitivePeerDependencies: - bufferutil @@ -532,8 +533,8 @@ packages: resolution: {integrity: sha512-zkR39b7ljH/TqZgzBB9ekHKg1OLvR/JQYCEaW76V0RuASfV/vkgx2xfUQNe8DlEOLOetRZ3agFqssEREF45ClA==} dependencies: '@open-wc/scoped-elements': 3.0.5 - lit: 3.1.2 - lit-html: 3.1.2 + lit: 3.1.3 + lit-html: 3.1.3 dev: true /@open-wc/testing@4.0.0: @@ -653,11 +654,13 @@ packages: '@push.rocks/smartpromise': 4.0.3 dev: true - /@push.rocks/smartexit@1.0.21: - resolution: {integrity: sha512-F8J+EN6ffIK57YelPZ6W2yJQFO5RKGFT3mujg97lTS2nkeshXu2UMNQ5CVVn5QWyUQJFd02s+0Sv3kgzM4mhWA==} + /@push.rocks/smartexit@1.0.23: + resolution: {integrity: sha512-WmwKYcwbHBByoABhHHB+PAjr5475AtD/xBh1mDcqPrFsOOUOZq3BBUdpq25wI3ccu/SZB5IwaimiVzadls6HkA==} dependencies: '@push.rocks/lik': 6.0.14 '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartpromise': 4.0.3 + tree-kill: 1.2.2 dev: false /@push.rocks/smartexpect@1.0.21: @@ -741,6 +744,15 @@ packages: lodash.clonedeep: 4.5.0 dev: true + /@push.rocks/smartjson@5.0.19: + resolution: {integrity: sha512-nhVvsY43VQjflAdOILoIWuLUq3dT+FQzALy/+QY06L5haBMAwhkB5iF+sjlVdFZbys6AftmwC+5IdarrXVNDsA==} + dependencies: + '@push.rocks/smartenv': 5.0.12 + '@push.rocks/smartstring': 4.0.15 + fast-json-stable-stringify: 2.1.0 + lodash.clonedeep: 4.5.0 + dev: true + /@push.rocks/smartlog-destination-devtools@1.0.10: resolution: {integrity: sha512-E6xRx5vhR7gh9peXjUyBwNj0H0MeaBjh+PY++PbOhUF4NDMaEuswRLRs+UN9bfbLXZQl2i4hYD1MNCesHGTVgA==} dependencies: @@ -993,14 +1005,15 @@ packages: js-yaml: 3.14.1 dev: true - /@push.rocks/tapbundle@5.0.17: - resolution: {integrity: sha512-I5N2ODuRmXQGFIM5f69GOLVkq2tJxMzz3BfHISbu0m5gLJLaLu6mYtbaFqUkUsJK9DCZWSWAY2CexUr+P0JEpw==} + /@push.rocks/tapbundle@5.0.23: + resolution: {integrity: sha512-csiHxdmh5Hwf4FI94gUnPgWG+DjjEt1xffa7eLyBN3++Jvt3aSNeBsQh74YF2n6/f8q7dcb59TMYTksilU8iJg==} dependencies: '@open-wc/testing': 4.0.0 '@push.rocks/consolecolor': 2.0.2 '@push.rocks/smartdelay': 3.0.5 '@push.rocks/smartenv': 5.0.12 '@push.rocks/smartexpect': 1.0.21 + '@push.rocks/smartjson': 5.0.19 '@push.rocks/smartpromise': 4.0.3 '@push.rocks/smarttime': 4.0.6 transitivePeerDependencies: @@ -1323,7 +1336,7 @@ packages: /@types/accepts@1.3.7: resolution: {integrity: sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==} dependencies: - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /@types/babel__code-frame@7.0.6: @@ -1334,7 +1347,7 @@ packages: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /@types/buffer-json@2.0.1: @@ -1344,31 +1357,31 @@ packages: /@types/chai-dom@1.11.3: resolution: {integrity: sha512-EUEZI7uID4ewzxnU7DJXtyvykhQuwe+etJ1wwOiJyQRTH/ifMWKX+ghiXkxCUvNJ6IQDodf0JXhuP6zZcy2qXQ==} dependencies: - '@types/chai': 4.3.12 + '@types/chai': 4.3.14 dev: true - /@types/chai@4.3.12: - resolution: {integrity: sha512-zNKDHG/1yxm8Il6uCCVsm+dRdEsJlFoDu73X17y09bId6UwoYww+vFBsAcRzl8knM1sab3Dp1VRikFQwDOtDDw==} + /@types/chai@4.3.14: + resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==} dev: true /@types/clean-css@4.2.11: resolution: {integrity: sha512-Y8n81lQVTAfP2TOdtJJEsCoYl1AnOkqDqMvXb9/7pfgZZ7r8YrEyurrAvAoAjHOGXKRybay+5CsExqIH6liccw==} dependencies: - '@types/node': 20.11.28 + '@types/node': 20.12.7 source-map: 0.6.1 dev: true /@types/co-body@6.1.3: resolution: {integrity: sha512-UhuhrQ5hclX6UJctv5m4Rfp52AfG9o9+d9/HwjxhVB5NjXxr5t9oKgJxN8xRHgr35oo8meUEHUPFWiKg6y71aA==} dependencies: - '@types/node': 20.11.28 - '@types/qs': 6.9.12 + '@types/node': 20.12.7 + '@types/qs': 6.9.15 dev: true /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /@types/content-disposition@0.5.8: @@ -1389,13 +1402,13 @@ packages: '@types/connect': 3.4.38 '@types/express': 4.17.21 '@types/keygrip': 1.0.6 - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /@types/cors@2.8.17: resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} dependencies: - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /@types/debounce@1.2.4: @@ -1409,7 +1422,7 @@ packages: /@types/express-serve-static-core@4.17.43: resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} dependencies: - '@types/node': 20.11.28 + '@types/node': 20.12.7 '@types/qs': 6.9.12 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -1427,21 +1440,21 @@ packages: /@types/from2@2.3.5: resolution: {integrity: sha512-giavnjf3kNlJnE+HpZA1CQ3UKHxgehzsTuIMGda8pGMbOiLYGVNADEskey44OZcADHm/HOoBany8IV+0x28XFw==} dependencies: - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /@types/fs-extra@11.0.4: resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} dependencies: '@types/jsonfile': 6.1.4 - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /@types/glob@8.1.0: resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /@types/html-minifier@4.0.5: @@ -1491,7 +1504,7 @@ packages: /@types/jsonfile@6.1.4: resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} dependencies: - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /@types/keygrip@1.0.6: @@ -1514,7 +1527,7 @@ packages: '@types/http-errors': 2.0.4 '@types/keygrip': 1.0.6 '@types/koa-compose': 3.2.8 - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /@types/mime-types@2.1.4: @@ -1536,8 +1549,8 @@ packages: /@types/minimatch@5.1.2: resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - /@types/node@20.11.28: - resolution: {integrity: sha512-M/GPWVS2wLkSkNHVeLkrF2fD5Lx5UC4PxA0uZcKc6QqbIQUJyW1jVjueJYi1z8n0I5PxYrtpnPnWglE+y9A0KA==} + /@types/node@20.12.7: + resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} dependencies: undici-types: 5.26.5 dev: true @@ -1554,6 +1567,10 @@ packages: resolution: {integrity: sha512-bZcOkJ6uWrL0Qb2NAWKa7TBU+mJHPzhx9jjLL1KHF+XpzEcR7EXHvjbHlGtR/IsP1vyPrehuS6XqkmaePy//mg==} dev: true + /@types/qs@6.9.15: + resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} + dev: true + /@types/randomatic@3.1.5: resolution: {integrity: sha512-VCwCTw6qh1pRRw+5rNTAwqPmf6A+hdrkdM7dBpZVmhl7g+em3ONXlYK/bWPVKqVGMWgP0d1bog8Vc/X6zRwRRQ==} dev: true @@ -1570,7 +1587,7 @@ packages: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /@types/serve-static@1.15.5: @@ -1578,13 +1595,13 @@ packages: dependencies: '@types/http-errors': 2.0.4 '@types/mime': 3.0.4 - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /@types/sinon-chai@3.2.12: resolution: {integrity: sha512-9y0Gflk3b0+NhQZ/oxGtaAJDvRywCa5sIyaVnounqLvmf93yBF4EgIRspePtkMs3Tr844nCclYMlcCNmLCvjuQ==} dependencies: - '@types/chai': 4.3.12 + '@types/chai': 4.3.14 '@types/sinon': 17.0.3 dev: true @@ -1604,7 +1621,7 @@ packages: /@types/through2@2.0.41: resolution: {integrity: sha512-ryQ0tidWkb1O1JuYvWKyMLYEtOWDqF5mHerJzKz/gQpoAaJq2l/dsMPBF0B5BNVT34rbARYJ5/tsZwLfUi2kwQ==} dependencies: - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /@types/trusted-types@2.0.7: @@ -1631,20 +1648,20 @@ packages: /@types/ws@7.4.7: resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} dependencies: - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /@types/ws@8.5.10: resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} dependencies: - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /@types/yauzl@2.10.3: resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} requiresBuild: true dependencies: - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true optional: true @@ -1664,11 +1681,11 @@ packages: '@web/parse5-utils': 2.1.0 chokidar: 3.6.0 clone: 2.1.2 - es-module-lexer: 1.4.1 + es-module-lexer: 1.5.0 get-stream: 6.0.1 is-stream: 2.0.1 isbinaryfile: 5.0.2 - koa: 2.15.1 + koa: 2.15.3 koa-etag: 4.0.0 koa-send: 5.0.1 koa-static: 5.0.0 @@ -1707,7 +1724,7 @@ packages: resolution: {integrity: sha512-2hESALx/UFsAzK+ApWXAkFp2eCmwcs2yj1v4YjwV8F38sQumJ40P3px3BMjFwkOYDORtQOicW0RUeSw1g3BMLA==} engines: {node: '>=18.0.0'} dependencies: - '@babel/code-frame': 7.23.5 + '@babel/code-frame': 7.24.2 '@types/babel__code-frame': 7.0.6 '@types/co-body': 6.1.3 '@types/convert-source-map': 2.0.3 @@ -1868,8 +1885,8 @@ packages: resolution: {integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=} dev: true - /axe-core@4.8.4: - resolution: {integrity: sha512-CZLSKisu/bhJ2awW4kJndluz2HLZYIHh5Uy1+ZwDRkJi69811xgIXXfdU9HSLX0Th+ILrHj8qfL/5wzamsFtQg==} + /axe-core@4.9.0: + resolution: {integrity: sha512-H5orY+M2Fr56DWmMFpMrq5Ge93qjNdPVqzBv5gWK3aD1OvjBEJlEzxf09z93dGVQeI0LiW+aCMIx1QtShC/zUw==} engines: {node: '>=4'} dev: true @@ -1976,7 +1993,7 @@ packages: engines: {node: '>= 6.0.0'} dependencies: mime-types: 2.1.35 - ylru: 1.3.2 + ylru: 1.4.0 dev: true /cacheable-lookup@7.0.0: @@ -2022,7 +2039,7 @@ packages: /chai-a11y-axe@1.5.0: resolution: {integrity: sha512-V/Vg/zJDr9aIkaHJ2KQu7lGTQQm5ZOH4u1k5iTMvIXuSVlSuUo0jcSpSqf9wUn9zl6oQXa4e4E0cqH18KOgKlQ==} dependencies: - axe-core: 4.8.4 + axe-core: 4.9.0 dev: true /chalk@2.4.2: @@ -2088,7 +2105,7 @@ packages: resolution: {integrity: sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==} dependencies: inflation: 2.1.0 - qs: 6.12.0 + qs: 6.12.1 raw-body: 2.5.2 type-is: 1.6.18 dev: true @@ -2419,7 +2436,7 @@ packages: dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.17 - '@types/node': 20.11.28 + '@types/node': 20.12.7 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.4.2 @@ -2451,8 +2468,8 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - /es-module-lexer@1.4.1: - resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==} + /es-module-lexer@1.5.0: + resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==} dev: true /esbuild@0.19.12: @@ -3252,8 +3269,8 @@ packages: - supports-color dev: true - /koa@2.15.1: - resolution: {integrity: sha512-kpxzGxsv7tlc0WmccWd6CfdWqYXk4o/FsCTjnKaDnHLjPK/Sy1MpoBkuKO5LN7GdPHgPljrAVmMO3wbFxEJTeA==} + /koa@2.15.3: + resolution: {integrity: sha512-j/8tY9j5t+GVMLeioLaxweJiKUayFhlGqNTzf2ZGwL0ZCQijd2RLHK0SLW5Tsko8YyyqCZC2cojIb0/s62qTAg==} engines: {node: ^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4} dependencies: accepts: 1.3.8 @@ -3291,12 +3308,26 @@ packages: lit-html: 3.1.2 dev: true + /lit-element@4.0.5: + resolution: {integrity: sha512-iTWskWZEtn9SyEf4aBG6rKT8GABZMrTWop1+jopsEOgEcugcXJGKuX5bEbkq9qfzY+XB4MAgCaSPwnNpdsNQ3Q==} + dependencies: + '@lit-labs/ssr-dom-shim': 1.2.0 + '@lit/reactive-element': 2.0.4 + lit-html: 3.1.3 + dev: true + /lit-html@3.1.2: resolution: {integrity: sha512-3OBZSUrPnAHoKJ9AMjRL/m01YJxQMf+TMHanNtTHG68ubjnZxK0RFl102DPzsw4mWnHibfZIBJm3LWCZ/LmMvg==} dependencies: '@types/trusted-types': 2.0.7 dev: true + /lit-html@3.1.3: + resolution: {integrity: sha512-FwIbqDD8O/8lM4vUZ4KvQZjPPNx7V1VhT7vmRB8RBAO0AU6wuTVdoXiu2CivVjEGdugvcbPNBLtPE1y0ifplHA==} + dependencies: + '@types/trusted-types': 2.0.7 + dev: true + /lit@3.1.2: resolution: {integrity: sha512-VZx5iAyMtX7CV4K8iTLdCkMaYZ7ipjJZ0JcSdJ0zIdGxxyurjIn7yuuSxNBD7QmjvcNJwr0JS4cAdAtsy7gZ6w==} dependencies: @@ -3305,6 +3336,14 @@ packages: lit-html: 3.1.2 dev: true + /lit@3.1.3: + resolution: {integrity: sha512-l4slfspEsnCcHVRTvaP7YnkTZEZggNFywLEIhQaGhYDczG+tu/vlgm/KaWIEjIp+ZyV20r2JnZctMb8LeLCG7Q==} + dependencies: + '@lit/reactive-element': 2.0.4 + lit-element: 4.0.5 + lit-html: 3.1.3 + dev: true + /locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -3796,6 +3835,10 @@ packages: resolution: {integrity: sha1-elfrVQpng/kRUzH89GY9XI4AelA=} dev: true + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true + /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -3911,6 +3954,13 @@ packages: side-channel: 1.0.6 dev: true + /qs@6.12.1: + resolution: {integrity: sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.6 + dev: true + /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true @@ -4429,7 +4479,7 @@ packages: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true - /ts-node@10.9.2(@types/node@20.11.28)(typescript@5.1.6): + /ts-node@10.9.2(@types/node@20.12.7)(typescript@5.1.6): resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -4448,7 +4498,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.11.28 + '@types/node': 20.12.7 acorn: 8.11.3 acorn-walk: 8.3.2 arg: 4.1.3 @@ -4772,8 +4822,8 @@ packages: fd-slicer: 1.1.0 dev: true - /ylru@1.3.2: - resolution: {integrity: sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==} + /ylru@1.4.0: + resolution: {integrity: sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==} engines: {node: '>= 4.0.0'} dev: true diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index d78b8a1..92b4114 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@push.rocks/smartshell', - version: '3.0.4', - description: 'shell actions designed as promises' + version: '3.0.5', + description: 'A library for executing shell commands using promises.' } diff --git a/ts/smartshell.classes.smartshell.ts b/ts/smartshell.classes.smartshell.ts index fba9dda..55a6141 100644 --- a/ts/smartshell.classes.smartshell.ts +++ b/ts/smartshell.classes.smartshell.ts @@ -14,8 +14,10 @@ export interface IExecResult { export interface IExecResultStreaming { childProcess: cp.ChildProcess; finalPromise: Promise; - kill: () => void; - terminate: () => void; + kill: () => Promise; + terminate: () => Promise; + keyboardInterrupt: () => Promise; + customSignal: (signalArg: plugins.smartexit.TProcessSignal) => Promise; } export class Smartshell { @@ -114,13 +116,21 @@ export class Smartshell { done.resolve({ childProcess: execChildProcess, finalPromise: childProcessEnded.promise, - kill: () => { + kill: async () => { console.log(`running tree kill with SIGKILL on process ${execChildProcess.pid}`); - plugins.treeKill(execChildProcess.pid, 'SIGKILL'); + await plugins.smartexit.SmartExit.killTreeByPid(execChildProcess.pid, 'SIGKILL'); }, - terminate: () => { + terminate: async () => { console.log(`running tree kill with SIGTERM on process ${execChildProcess.pid}`); - plugins.treeKill(execChildProcess.pid, 'SIGTERM'); + await plugins.smartexit.SmartExit.killTreeByPid(execChildProcess.pid, 'SIGTERM'); + }, + keyboardInterrupt: async () => { + console.log(`running tree kill with SIGINT on process ${execChildProcess.pid}`); + await plugins.smartexit.SmartExit.killTreeByPid(execChildProcess.pid, 'SIGINT'); + }, + customSignal: async (signalArg: plugins.smartexit.TProcessSignal) => { + console.log(`running tree kill with custom signal ${signalArg} on process ${execChildProcess.pid}`); + await plugins.smartexit.SmartExit.killTreeByPid(execChildProcess.pid, signalArg); }, }); } diff --git a/ts/smartshell.plugins.ts b/ts/smartshell.plugins.ts index 9492ddd..5ed018c 100644 --- a/ts/smartshell.plugins.ts +++ b/ts/smartshell.plugins.ts @@ -4,8 +4,3 @@ import * as smartpromise from '@push.rocks/smartpromise'; import which from 'which'; export { smartdelay, smartexit, smartpromise, which }; - -// third party -import treeKill from 'tree-kill'; - -export { treeKill };