From f0ab180902987f1fa0e5086a2daea3694c489256 Mon Sep 17 00:00:00 2001 From: Philipp Kunz Date: Tue, 4 Mar 2025 12:20:06 +0000 Subject: [PATCH] feat(assertion): Enhanced the assertion error messaging and added new test cases. --- changelog.md | 7 + pnpm-lock.yaml | 2163 ++++++++++++--------------- readme.md | 210 ++- test/test.both.ts | 204 +++ test/test.ts | 52 - ts/00_commitinfo_data.ts | 2 +- ts/smartexpect.classes.assertion.ts | 512 ++++--- tsconfig.json | 1 + 8 files changed, 1627 insertions(+), 1524 deletions(-) create mode 100644 test/test.both.ts delete mode 100644 test/test.ts diff --git a/changelog.md b/changelog.md index b8054a3..15e881e 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,12 @@ # Changelog +## 2025-03-04 - 1.6.0 - feat(assertion) +Enhanced the assertion error messaging and added new test cases. + +- Improved error messages by incorporating path and value/placeholders in assertions. +- Added detailed testing of new assertion functionalities. +- Additional test cases for comprehensive coverage of new features. + ## 2025-03-04 - 1.5.0 - feat(Assertion) Add toBeTypeOf assertion method diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9dcca80..9705480 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,7 +29,7 @@ importers: version: 1.2.44(@types/node@22.13.9) '@gitzone/tstest': specifier: ^1.0.77 - version: 1.0.77(@aws-sdk/credential-providers@3.758.0)(@types/node@22.13.9)(socks@2.8.4) + version: 1.0.77(@aws-sdk/credential-providers@3.758.0)(@types/node@22.13.9)(socks@2.8.4)(typescript@5.8.2) '@push.rocks/tapbundle': specifier: ^5.5.6 version: 5.5.6(@aws-sdk/credential-providers@3.758.0)(socks@2.8.4) @@ -39,8 +39,8 @@ importers: packages: - '@adobe/fetch@4.0.13': - resolution: {integrity: sha512-faw1PUmBKczEMTMYehSvu7+lEFz7zu7lxWWzYRi8kR/ILcOxU3bZXKUl/TpcnXePkcHWEDvseiCejJC9UJazog==} + '@adobe/fetch@4.2.0': + resolution: {integrity: sha512-Fl0EyHA9aPjWfGEjcRTMc6RFUvnRrQ7suHkkatwrTFqv8iehKZc43VvcPrLk3hVMkfd4LtoY66IvHTNduTG3Tw==} engines: {node: '>=14.16'} '@api.global/typedrequest-interfaces@2.0.2': @@ -422,12 +422,12 @@ packages: resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jridgewell/resolve-uri@3.1.1': - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} @@ -436,11 +436,8 @@ packages: resolution: {integrity: sha512-dOOXgzqaDoHu5qqMEPLKEgLz5CeIA7q8+1W62mCvFVCOqeC71UoTGJ4u1xUSOpIl2J1x2pqrNULkFteUeZW3/A==} engines: {node: '>= 8.0.0'} - '@leichtgewicht/ip-codec@2.0.4': - resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} - - '@lit-labs/ssr-dom-shim@1.1.1': - resolution: {integrity: sha512-kXOeFbfCm4fFf2A3WwVEeQj55tMZa8c8/f9AKHMobQMkzNUfUj+antR3fRPaZJawsa1aZiP/Da3ndpZrwEe4rQ==} + '@leichtgewicht/ip-codec@2.0.5': + resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} '@lit-labs/ssr-dom-shim@1.3.0': resolution: {integrity: sha512-nQIWonJ6eFAvUUrSlwyHDm/aE8PBDu5kRpL0vHMg6K8fK3Diq1xdPjTnsJSwxABhaZ+5eBi1btQB5ShUTKo4nQ==} @@ -481,12 +478,20 @@ packages: '@open-wc/testing@4.0.0': resolution: {integrity: sha512-KI70O0CJEpBWs3jrTju4BFCy7V/d4tFfYWkg8pMzncsDhD7TYNHLw5cy+s1FHXIgVFetnMDhPpwlKIPvtTQW7w==} + '@pdf-lib/standard-fonts@1.0.0': + resolution: {integrity: sha512-hU30BK9IUN/su0Mn9VdlVKsWBS6GyhVfqjwl1FjZN4TxP6cCw0jP2w7V3Hf5uX7M0AZJ16vey9yE0ny7Sa59ZA==} + + '@pdf-lib/upng@1.0.1': + resolution: {integrity: sha512-dQK2FUMQtowVP00mtIksrlZhdFXQZPC+taih1q4CvPZ5vqdxR/LKBaFg0oAfzd1GlHZXXSPdQfzQnt+ViGvEIQ==} + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@push.rocks/consolecolor@2.0.1': - resolution: {integrity: sha512-iQx+sjxmvhRXjnv8aMiaZu125ZWfyZKSylCvKUNjVrdhkmP2uPy2VWsvyRBS4UiieYHTY/i+HpQiFv4QZV2/Fg==} + '@puppeteer/browsers@2.7.1': + resolution: {integrity: sha512-MK7rtm8JjaxPN7Mf1JdZIZKPD2Z+W7osvrC1vjpvfOX1K0awDIHYbNi89f7eotp7eMUn2shWnt03HwVbriXtKQ==} + engines: {node: '>=18'} + hasBin: true '@push.rocks/consolecolor@2.0.2': resolution: {integrity: sha512-IBwxCLX+YF3f5wB2N4LfuvFqm9WPlBMiEeSAfjN8YQCyYec6u1hlrR3EIj8vT300pppjeGrybJHK+GyjdGXZJw==} @@ -494,9 +499,6 @@ packages: '@push.rocks/isounique@1.0.5': resolution: {integrity: sha512-Z0BVqZZOCif1THTbIKWMgg0wxCzt9CyBtBBqQJiZ+jJ0KlQFrQHNHrPt81/LXe/L4x0cxWsn0bpL6W5DNSvNLw==} - '@push.rocks/lik@6.0.3': - resolution: {integrity: sha512-YPA2PfubtD6YSWo5AXx8J10ZbEMkGezrBw93+2jq7ASSNnmGnXYMNuCOnfj+ZLqT7mT0cQOaUxmfyBKF1gG+ng==} - '@push.rocks/lik@6.1.0': resolution: {integrity: sha512-BoSAIRFNryQ8Sd5EP+35ZBj6vAQ1C60/XjZIO2O65XDyLG8xz7xJ+u5Wm8/fjIJ0WX3h8GkkaCz2tJM34nFT3A==} @@ -506,8 +508,8 @@ packages: '@push.rocks/qenv@6.1.0': resolution: {integrity: sha512-1FUFMlSVwFSFg8LbqfkzJ2LLP4lMGApUtgOpsvrde6+AxBmB4gjoNgCUH7z3xXfDAtYqcrtSELXBNE0xVL1MqQ==} - '@push.rocks/smartbrowser@2.0.5': - resolution: {integrity: sha512-Jdhe4ZnuQfrd+DcdLD0M3TMTzeTCq86sXTkRtiLwjpNLZSO3E7CL5V+5IBxr1VIwOgAF8wz8LYjezkaeuOW2lg==} + '@push.rocks/smartbrowser@2.0.8': + resolution: {integrity: sha512-0KWRZj3TuKo/sNwgPbiSE6WL+TMeR19t1JmXBZWh9n8iA2mpc4HhMrQAndEUdRCkx5ofSaHWojIRVFzGChj0Dg==} '@push.rocks/smartbucket@3.3.7': resolution: {integrity: sha512-RiOuEtwHJ+HFbV1nlZgh5VuMvP6PXElX6rVe7OSQsyNCBybRQa/d1qDic92+2Ejx852DGeHlyREELQCxd/a/7w==} @@ -530,14 +532,14 @@ packages: '@push.rocks/smartexit@1.0.23': resolution: {integrity: sha512-WmwKYcwbHBByoABhHHB+PAjr5475AtD/xBh1mDcqPrFsOOUOZq3BBUdpq25wI3ccu/SZB5IwaimiVzadls6HkA==} - '@push.rocks/smartexpect@1.4.0': - resolution: {integrity: sha512-1DwLgNXz5mp8etpyBXftvQXsRYNke5eMZxi855NwStjvx/LcAMwA+95GqbobjGb3DS/4xwxcuM15Gy0+UBwF6Q==} + '@push.rocks/smartexpect@1.5.0': + resolution: {integrity: sha512-8ZzFuemlfbIqRMRzblJghvTrWkCeW+F/Bku82rr/8xrn4VhrkmuSNfLhCx56w/UkiWSlHuPbGLXi5GniYapd6w==} '@push.rocks/smartfile-interfaces@1.0.7': resolution: {integrity: sha512-MeOl/200UOvSO4Pgq/DVFiBVZpL9gjOBQM+4XYNjSxda8c6VBvchHAntaFLQUlO8U1ckNaP9i+nMO4O4/0ymyw==} - '@push.rocks/smartfile@10.0.28': - resolution: {integrity: sha512-Bza5xwJuXGeIokr9xeLx1LSGuXvIYLtJimz0X6lB2Sv2kurlIjpb+/ix4KqsG9eBhvzo6ncqqjgnLAUyUQQjfw==} + '@push.rocks/smartfile@10.0.41': + resolution: {integrity: sha512-xOOy0duI34M2qrJZggpk51EHGXmg9+mBL1Q55tNiQKXzfx89P3coY1EAZG8tvmep3qB712QEKe7T+u04t42Kjg==} '@push.rocks/smartfile@11.2.0': resolution: {integrity: sha512-0Gw6DvCQ2D/BXNN6airSC7hoSBut0p/uNWf2+rqO+D6VLhIJ/QUBvF6xm/LnpPI/zcF8YlDn/GEriInB5DUtEw==} @@ -545,27 +547,15 @@ packages: '@push.rocks/smartguard@3.1.0': resolution: {integrity: sha512-J23q84f1O+TwFGmd4lrO9XLHUh2DaLXo9PN/9VmTWYzTkQDv5JehmifXVI0esophXcCIfbdIu6hbt7/aHlDF4A==} - '@push.rocks/smarthash@3.0.2': - resolution: {integrity: sha512-EB4lwQtBUmFaNrOXhQeFvItsuGq7NGbo3LLiPGHwEgSyf6NPSkxwleC+KDV68ggvBTGuhC4Lk6Z2qF11s8Dd0g==} - '@push.rocks/smarthash@3.0.4': resolution: {integrity: sha512-HJ/fSx41jm0CvSaqMLa6b2nuNK5rHAqAeAq3dAB7Sq9BCPm2M0J5ZVDTzEAH8pS91XYniUiwuE0jwPERNn9hmw==} '@push.rocks/smartjson@5.0.20': resolution: {integrity: sha512-ogGBLyOTluphZVwBYNyjhm5sziPGuiAwWihW07OSRxD4HQUyqj9Ek6r1pqH07JUG5EbtRYivM1Yt1cCwnu3JVQ==} - '@push.rocks/smartjson@5.0.6': - resolution: {integrity: sha512-TIf9eIAdy22Ul3+pExF/IG4NqIj82bf28JgnJr2olgyFL5DWKudPUjMAly1cvnUtxo2V91N4J/9Uec7XLocywA==} - - '@push.rocks/smartlog-interfaces@3.0.0': - resolution: {integrity: sha512-dfRqiSolGQwaF9gWmkixWOoXZxcWBjK3u6A1CpcfhCbVr2VSUMIrZ5t74/DgdfedsTrhDqoD0NGezsMXF2pFHQ==} - '@push.rocks/smartlog-interfaces@3.0.2': resolution: {integrity: sha512-8hGRTJehbsFSJxLhCQkA018mZtXVPxPTblbg9VaE/EqISRzUw+eosJ2EJV7M4Qu0eiTJZjnWnNLn8CkD77ziWw==} - '@push.rocks/smartlog@3.0.3': - resolution: {integrity: sha512-E4UUSdbrf0TdSqI7LrUa3jgYQGKT6+ybSHuRcopFDt0W2/tBpY+/vPyAApJIa8iGFKJoi3oSTgYJbK90SwQwKg==} - '@push.rocks/smartlog@3.0.7': resolution: {integrity: sha512-WHOw0iHHjCEbYY4KGX40iFtLI11QJvvWIbC9yFn3Mt+nrdupMnry7Ztc5v/PqO8lu33Q6xDBMXiNQ9yNY0HVGw==} @@ -581,38 +571,35 @@ packages: '@push.rocks/smartmongo@2.0.10': resolution: {integrity: sha512-K6jereWHHuEoTIlDDC3zum8DZYHzB74LCXx85+RSeKa8aeP9XYvGEbuIAr/e1MuX4WGZeHt6w2458dgyDW4w1w==} - '@push.rocks/smartpath@5.0.11': - resolution: {integrity: sha512-dqdd7KTby0AdaWYC9gVoHDTUIixFhEvo+mmdaTdNshZsfHNkm/EDV25dA+9gJ8/yoyuCYmrwmByNYy9a+xFUeQ==} + '@push.rocks/smartnetwork@3.0.2': + resolution: {integrity: sha512-s6CNGzQ1n/d/6cOKXbxeW6/tO//dr1woLqI01g7XhqTriw0nsm2G2kWaZh2J0VOguGNWBgQVCIpR0LjdRNWb3g==} '@push.rocks/smartpath@5.0.18': resolution: {integrity: sha512-kIyRTlOoeEth5b4Qp8KPUxNOGNdvhb2aD0hbHfF3oGTQ0xnDdgB1l03/4bIoapHG48OrTgh4uQ5tUorykgdOzw==} + '@push.rocks/smartpdf@3.2.2': + resolution: {integrity: sha512-SKGNHz7HsgU6uVSVrRCL13kIeAFMvd4oQBLI3VmPcMkxXfWNPJkb6jKknqP8bhobWA/ryJS+3Dj///UELUvVKQ==} + '@push.rocks/smartpromise@4.2.3': resolution: {integrity: sha512-Ycg/TJR+tMt+S3wSFurOpEoW6nXv12QBtKXgBcjMZ4RsdO28geN46U09osPn9N9WuwQy1PkmTV5J/V4F9U8qEw==} - '@push.rocks/smartrequest@2.0.18': - resolution: {integrity: sha512-MsTou9rRHhlhBC83dUGoi6quYKrWD9urI23Bcgk2GjvkiOpaddpSib6x1cQfidoOVpwP7LaVDMD+tFnW4CpWRA==} + '@push.rocks/smartpuppeteer@2.0.5': + resolution: {integrity: sha512-yK/qSeWVHIGWRp3c8S5tfdGP6WCKllZC4DR8d8CQlEjszOSBmHtlTdyyqOMBZ/BA4kd+eU5f3A1r4K2tGYty1g==} '@push.rocks/smartrequest@2.0.23': resolution: {integrity: sha512-y+gtOwXFpmPL+mIQblYPdFuHufxHi5lMV0LKm5bPYgGdMq3/+QlnEqNEAumeMHjvXgxur7x30QiHSwpJGK5g9w==} - '@push.rocks/smartrx@3.0.6': - resolution: {integrity: sha512-l+GOdML8yOdPvBXnJUdyfHyb6Ox2ipPTD8ZzzHTfQt20D7/IYUQKnG5JExT1B6Jo0DqszgDFhOoYEqLKnDC28g==} - '@push.rocks/smartrx@3.0.7': resolution: {integrity: sha512-qCWy0s3RLAgGSnaw/Gu0BNaJ59CsI6RK5OJDCCqxc7P2X/S755vuLtnAR5/0dEjdhCHXHX9ytPZx+o9g/CNiyA==} '@push.rocks/smarts3@2.2.5': resolution: {integrity: sha512-OZjD0jBCUTJCLnwraxBcyZ3he5buXf2OEM1zipiTBChA2EcKUZWKk/a6KR5WT+NlFCIIuB23UG+U+cxsIWM91Q==} - '@push.rocks/smartshell@3.0.3': - resolution: {integrity: sha512-S4RXI76ltPetdJ8Gv4HlnlhR/hXDV8QmSU7TdhLEe171ZzfouAyt9XZ4MFDCtjk3VQ4Mw+zz4mSDaACXP/QdlQ==} - '@push.rocks/smartshell@3.2.3': resolution: {integrity: sha512-BWA/DH1H9lG7Er23d4uYgirfYaya5dX4g/WpWm2la7mOzuL9o2FnPIhel52DQUKIh7ty3Ql305ApV8YaAb4+/w==} - '@push.rocks/smartstream@2.0.4': - resolution: {integrity: sha512-rbQf4+sLle9ga6RidRv0WXb/TuLFcMordRQBbqPq01n/mpBHoEiqIThWzVuImPVRVuSK/LKbM/QX4Ey26FFerg==} + '@push.rocks/smartstream@2.0.8': + resolution: {integrity: sha512-GlF/9cCkvBHwKa3DK4DO5wjfSgqkj6gAS4TrY9uD5NMHu9RQv4WiNrElTYj7iCEpnZgUnLO3tzw1JA3NRIMnnA==} '@push.rocks/smartstream@3.2.5': resolution: {integrity: sha512-PLGGIFDy8JLNVUnnntMSIYN4W081YSbNC7Y/sWpvUT8PAXtbEXXUiDFgK5o3gcI0ptpKQxHAwxhzNlPj0sbFVg==} @@ -620,18 +607,12 @@ packages: '@push.rocks/smartstring@4.0.15': resolution: {integrity: sha512-NTNeOjWyg+aHtBTiQEyXamr7oTvYZ3wS1fudHo9ua7CLrykpK+i+RxFyJaLg1zB5x9xQF3NLEQecB14HPFX8Cg==} - '@push.rocks/smarttime@4.0.4': - resolution: {integrity: sha512-PTYxvl6Rr5eSOKPbB0S5+ym6z6zfI/e1wqmVxX8QjnZ5ZIvhGfAoCZ7sie+Zd4OJ4nCG8UClgk5LrFaN3zUnZA==} - '@push.rocks/smarttime@4.1.1': resolution: {integrity: sha512-Ha/3J/G+zfTl4ahpZgF6oUOZnUjpLhrBja0OQ2cloFxF9sKT8I1COaSqIfBGDtoK2Nly4UD4aTJ3JcJNOg/kgA==} '@push.rocks/smartunique@3.0.9': resolution: {integrity: sha512-q6DYQgT7/dqdWi9HusvtWCjdsFzLFXY9LTtaZV6IYNJt6teZOonoygxTdNt9XLn6niBSbLYrHSKvJNTRH/uK+g==} - '@push.rocks/smarturl@3.0.7': - resolution: {integrity: sha512-nx4EWjQD9JeO7QVbOsxd1PFeDQYoSQOOOYCZ+r7QWXHLJG52iYzgvJDCQyX6p705HDkYMJWozW2ZzhR22qLKbw==} - '@push.rocks/smarturl@3.1.0': resolution: {integrity: sha512-ij73Q4GERojdPSHxAvYKvspimcpAJC6GGQCWsC4b+1sAiOSByjfmkUHK8yiEEOPRU9AeGuyaIVqK6ZzKLEZ3vA==} @@ -652,9 +633,11 @@ packages: '@pushrocks/consolecolor@2.0.1': resolution: {integrity: sha512-iOFCHVeFZ2OywbdwSxVI4/wokkcLrXVdHLgvMmkNhJ220eeLgjNZWx3EJo3vNW3zq5ybCSCUIq0878djBxrWpw==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/consolecolor '@pushrocks/early@4.0.3': resolution: {integrity: sha512-Xov1TsboU2d399MqByKIDoYWTWCNvBHNwC9u99HuVFx/lN38qdm5bkrLx73msiZ+uKxgpUe6zRR+jTVuoGxjlQ==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/early '@pushrocks/isohash@2.0.1': resolution: {integrity: sha512-qCvC/NNcDDFQAH1uUKkJM779jY5qWijbOGGVf/9enfSItlkKe/rheUsYHgXg+cP7lwWFIxDbKYplq8QaOP6bkw==} @@ -662,21 +645,19 @@ packages: '@pushrocks/isounique@1.0.5': resolution: {integrity: sha512-XYeoKGkmIdsWX64NlPA1fuA41n/1bQ7LdYXytlU/QqYeW7ojgA0ARRhBSh/2phL6o0Jpw6K/7gJ8jc7ab/Tc+w==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/isounique '@pushrocks/lik@3.0.19': resolution: {integrity: sha512-N9uTtQmTJ/iZ/V7LMCKbVx/ZAmP+b8uId0pxV9Au9T0Ulu9wcg3vNpyTQARgdWfG+tI9Qc0NHgOEa9H5mbDcDA==} deprecated: This package has been deprecated in favour of the new package at @push.rocks/lik - '@pushrocks/lik@4.0.22': - resolution: {integrity: sha512-dg6Du7nr/SLU80yJw7a0zk2xX9Vc8SCLZaQMmSRBlsnL1/Z7qpWDOtpRC9VlL9vTLenbvwGTvPWMpOKyyNbiiA==} - deprecated: This package has been deprecated in favour of the new package at @push.rocks/lik - '@pushrocks/lik@5.0.7': resolution: {integrity: sha512-fIxcrafl127+yErfedIurafCbiY2VwuuMlbNLjKrMKnFswol4y/anjXVRZ4euWUBck0KOfnBB0VuutcmlfYUqA==} deprecated: This package has been deprecated in favour of the new package at @push.rocks/lik '@pushrocks/lik@6.0.2': resolution: {integrity: sha512-jO85PCb4gULfZbLoVpXb9HIR9Wgoigq6Zjcp1JqHOgM4KB38IZrU+HPWPWWMErAOOQmmYvVCdl4gkrkO/Rzn4w==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/lik '@pushrocks/smartcache@1.0.16': resolution: {integrity: sha512-bKtueWrRHs4Rlink81MpNUDpnXqoPy+7sdw/WQWKzlWfDWLzF/cO24efriNP+3O2W84MvfSzxliRcbxxPvefLA==} @@ -688,24 +669,24 @@ packages: '@pushrocks/smartcli@4.0.6': resolution: {integrity: sha512-nv2Ldy+jTRsVpGpOz+9o0F8FMELoWYk/sy5ecyh9AsP97Kdj3CtqwRwHhcl7mLepdrcRw1qHK3DAloln1XP4Vg==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartcli '@pushrocks/smartdelay@2.0.13': resolution: {integrity: sha512-s6Wh0BHWMfZ5VYONQwpxOYX1JeC9RKA0O9TxEzfZ6FCw2oNQb2QUPCixT9rsceKwva4+atKRw/RfU+Z7aJDmsA==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartdelay '@pushrocks/smartdelay@3.0.1': resolution: {integrity: sha512-I+i/QhC6kLsXsWyW19UgD1vH2r1YWVxK19VMxt2CEuvxMyC6tuCd0vqud9vv5JxaxsJwxWlOsrURkgL4tXeILQ==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartdelay '@pushrocks/smartenv@5.0.5': resolution: {integrity: sha512-VWON1OJ4qV2/9hzJbgRquRekaO9am3b8W82tgCwgO6LBg23ea2tanfd+gESVMbRFduxHVoFLvlhSBcDGM5zsLA==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartenv '@pushrocks/smarterror@2.0.1': resolution: {integrity: sha512-3OrF5me+/sy5VgwR/tfCqs7qhb0Ywzgn8tTThRUZnCGas0aindISzMiW7cIro3RlFykmtPmdTztC9Ostu2ioeA==} deprecated: This package has been deprecated in favour of the new package at @push.rocks/smarterror - '@pushrocks/smartexit@1.0.20': - resolution: {integrity: sha512-u/KgA7s2zAtZ7gZvL13HZbO3mZATvjfCLU8Ez6h8VweG8UsIBVaPfYziMDCmJOWIPYLGzEW8eG/u4mCHuyLBow==} - deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartexit - '@pushrocks/smartexpress@4.0.35': resolution: {integrity: sha512-/xuUshI4VtfM2Q8RJxsTjD/7sI2HZ4p4+CmKOZYK66nxgeyO+IkKM/qcxHdZLbuB2q/ekYNAfvce8VL0RxtTVQ==} deprecated: This package has been replaced by @apiglobal/typedserver @@ -716,14 +697,12 @@ packages: '@pushrocks/smartfile-interfaces@1.0.7': resolution: {integrity: sha512-C/v9Scbx1J+ByMk3YBZrlLRYXdObty/Uz/h6kSZqsO8ghYuT9l7OVpEcyduiSVPakaMi6YnzfME3Nfs3oLj//Q==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartfile-interfaces '@pushrocks/smartfile@10.0.26': resolution: {integrity: sha512-JAbsVHXCkBoqI+GHN/gnbXji8hztCVlPrri63HQAdx4lS9OyDCdXN2CSbEIBXQIsXFx9ITzx5LZiPq0owbcDpQ==} deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartfile - '@pushrocks/smartfile@10.0.7': - resolution: {integrity: sha512-ZjMkHLjiKaHFy5bz2k+0bLNr3S0Ef6EU65vuZuq8MbhJQW/xhBUWZWT/sKNSkPiXVCWI+vpHOA6j1G3qCnLspg==} - '@pushrocks/smartfile@9.0.6': resolution: {integrity: sha512-mXFrnHpM3Eq0MLokGP6DDRTk+v/HDlQwnNq4HFuCqs8YW6uTU/FoRJDnrCAf+spSzkDm0m1ajz/4rke8Dk9l6A==} deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartfile @@ -734,6 +713,7 @@ packages: '@pushrocks/smarthash@3.0.2': resolution: {integrity: sha512-jXW4f8k6iqOQRvkCmXMID1C+qXyNvUMKm7apPETxnO+L172VlzxP1dml0Ey1+vjfpU2luKCteJWX7W95sOdLDg==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smarthash '@pushrocks/smartjson@4.0.6': resolution: {integrity: sha512-lykr068RSDHs0+EXCvIDVxjKnDtRQ2M7EXOo5jVrUU6/OEdfRl9ErM1K/oPafiEi47/PtTrwLlp1KdSgqkRjmg==} @@ -741,13 +721,15 @@ packages: '@pushrocks/smartjson@5.0.6': resolution: {integrity: sha512-9OJbnRgLTaCRQz+pqu5tB3ZCqRs5Zh0hnBe7t7URE+TgwIZ8aiELUIbWRkgn4mSGVzHyL6pqTyIowP6AjUCG3w==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartjson '@pushrocks/smartlog-destination-devtools@1.0.10': resolution: {integrity: sha512-Kkss3lAogY+n/Xx3N9eOjWz0L4XUWlCYZLOqWnDOIMzX5mJtwesYXHIT8SHvADv13qT4d7T9k+VUQNsDEoT71g==} deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartlog-destination-devtools - '@pushrocks/smartlog-destination-local@9.0.0': - resolution: {integrity: sha512-Cu4+SRKM7Ir2x7udM+FuAfILZDluEb/p2z+QOSQXfElgl9h/a2nIbp4Jv4HF0S80IB2e3zPjBq+8N8k3nsBowg==} + '@pushrocks/smartlog-destination-local@9.0.1': + resolution: {integrity: sha512-+Q9kr2TbcKF4rcAftudqC8+5LLqnXAjghGaeDsxD38/qd9pqj8yTXBoF+qW3xUHbinRtpG26uSfBdRSWzDXPbA==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartlog-destination-local '@pushrocks/smartlog-interfaces@2.0.23': resolution: {integrity: sha512-tXqwfrekGxGZJB72BFQppywk7413hXVDgcJNeU+kY6xvmzVjf2HxOMbFYhewh1+p4uai1u9n0xcMb0qbbPy4/Q==} @@ -755,9 +737,11 @@ packages: '@pushrocks/smartlog-interfaces@3.0.0': resolution: {integrity: sha512-yjppiLLJHBcrXTJJusDbFTvHq0RTMl3LnhvWAhyyy8U0O4VkJxIls1t5mS6jsEwxogP88+0flQIWknNJeB913A==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartlog-interfaces '@pushrocks/smartlog@3.0.2': resolution: {integrity: sha512-1WPA0LX9HfE54ESKtk32uvsXiYIMu2QX7NUlQ3uHSMmFULnJYo2m/LeKEf6qHH7DJtxZbkWzkrMOkZVPL1MeNg==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartlog '@pushrocks/smartmanifest@1.0.8': resolution: {integrity: sha512-inHmTp58Z8xl+c6mdOrfxc9IjUKuqho1i+WUI74G7rn6HwEn3cMd/06R1v80Xlx+95EYWzBwnYtuo7j7DafrdQ==} @@ -773,13 +757,11 @@ packages: '@pushrocks/smartmatch@2.0.0': resolution: {integrity: sha512-PLvBNVeuY9BERNLq3PFDkhnHHc0RpilEGHd4aUI5XRFlZF++LETdLxPbxw+DHbvHlkUf/nep09f7rrL9Tqub1Q==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartmatch '@pushrocks/smartmime@1.0.5': resolution: {integrity: sha512-FCRg5p5NFTyZnPsvy2sbheVGz67Zeno7VoZARrcP0O+hFtVPnQKnJ73ze11G+MKZ3dVCmYCh1Li+73R6Lx8XJA==} - - '@pushrocks/smartnetwork@3.0.2': - resolution: {integrity: sha512-XKVeTzf22IRgAvY9m8naFlsjh5yYVCU4/Dqi7XnxQUVfrnrcNIJVo+9JIYjQetLbHiUOHAnthlZVP5yXppOxyw==} - deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartnetwork + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartmime '@pushrocks/smartopen@2.0.0': resolution: {integrity: sha512-pqglAbp/OiJ8nUlCLKq8A2n1tKi7WH9lJgV93fs5s4gZCTVijGRg1SMZNAa/OI2O5hRfBeXacu/Na6bQSJ3hyw==} @@ -794,10 +776,7 @@ packages: '@pushrocks/smartpath@5.0.5': resolution: {integrity: sha512-t2lXXGMpKnPlwubIcYGD6cGi2CUJxJ3t2yftVt8tHfjX68jELA5sJhFMtyD3AeFZVxePFZOCiHwWEbWkSDNnmw==} - - '@pushrocks/smartpdf@3.0.15': - resolution: {integrity: sha512-z1XAxHW3C0gkzk30yZJpc74S6MJyMBAtlG9FiGhIhs9jGw6z/dkgpVr8beJMOCOX1KIzlA5HJoJOWtex/fd90g==} - deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartpdf + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartpath '@pushrocks/smartping@1.0.8': resolution: {integrity: sha512-VM2gfS1sTuycj/jHyDa0lDntkPe7/JT0b2kGsy265RkichAJZkoEp3fboRJH/WAdzM8T4Du64JYgZkc8v2HHQg==} @@ -805,13 +784,11 @@ packages: '@pushrocks/smartpromise@3.1.10': resolution: {integrity: sha512-VeTurbZ1+ZMxBDJk1Y1LV8SN9xLI+oDXKVeCFw41FAGEKOUEqordqFpi6t+7Vhe/TXUZzCVpZ5bXxAxrGf8yTQ==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartpromise '@pushrocks/smartpromise@4.0.2': resolution: {integrity: sha512-bqorOaGXPOuiOSV81luTKrTghg4O4NBRD0zyv7TIqmrMGf4a0uoozaUMp1X8vQdZW+y0gTzUJP9wkzAE6Cci0g==} - - '@pushrocks/smartpuppeteer@2.0.2': - resolution: {integrity: sha512-l3tqnD6Evseofq1avHsMy2FXXEmCd4Z+nm3xmMWS7nWvP9qTbJIn0XguOBaUIAhR8zE53UKPXs5/qBqXVNZDDQ==} - deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartpuppeteer + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartpromise '@pushrocks/smartrequest@1.1.56': resolution: {integrity: sha512-iF6bApmTgd3ZvRK8OHa77UFg8nVZxS1Y6iL8VfHpWOXdSlQZcXo/WbvwxYtu0+wkERAfFtCTGrrLAPGsFm9lhw==} @@ -819,16 +796,15 @@ packages: '@pushrocks/smartrequest@2.0.15': resolution: {integrity: sha512-QDXXKhOwAIp+TNFrDglApBpbCTClHrf8pUM3w81q5+VtrMbqUrLINHhInXt3ZUSgTS7RD9HtJSIVSqAukcJo5A==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartrequest '@pushrocks/smartrx@2.0.27': resolution: {integrity: sha512-aFRpGxDZgHH1mpmkRBTFwuIVqFiDxk22n2vX2gW4hntV0nJGlt9M9dixMFFXGUjabwX9hHW7y60QPJm2rKaypA==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartrx '@pushrocks/smartrx@3.0.2': resolution: {integrity: sha512-uh2ByyE86Q4f1/rpktR29vAMzHgAvAhFZqbvP6Sme9FK57OZG0mqZxDvJMVNP5O+QOn0Chrbl3BZCuRsFF3NUA==} - - '@pushrocks/smartshell@2.0.30': - resolution: {integrity: sha512-HPgdTFzfzhk2TQau/jVdYNSANlxyBZdqq2vyZ+bZahegVHfH/27Zur5Fk+2vE16VJjJMqP7zcvDITUe2+ipgJg==} - deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartshell + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartrx '@pushrocks/smartsitemap@2.0.1': resolution: {integrity: sha512-eB4ybrhUtJaoqDY3P76NIp6gbIOGzLJPwqkMGo2d8dcJftqlySZxalsZTLOIHqLzQXYwSxuKo2JYGrjokx83Vw==} @@ -840,12 +816,11 @@ packages: '@pushrocks/smartspawn@3.0.2': resolution: {integrity: sha512-Sol00AgZs+D4TRKbf3YzSihSE0BqzPQYHj0D5+C7qGyMLvRQboT7p899rVQsJB2f1F9gjwJsaoymjPrrNUcxaw==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartspawn '@pushrocks/smartstream@2.0.3': resolution: {integrity: sha512-Zz1amk2FgqWyZFQE8WonKhNMreETm50pqDanp2g9uJBCNwFHIppJD4Qbpy/FFEFfp4Rs326hoBCWbZwU/FEymw==} - - '@pushrocks/smartstring@4.0.5': - resolution: {integrity: sha512-g9a/Mfj+eJAUrTDQoH3oaYegjI98WlVoSLAI8lpExQ/STlEJGO5ZdWDqgZ0HvHe+5UeWvxzCFpHifqRhMUJ+dQ==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartstream '@pushrocks/smartstring@4.0.7': resolution: {integrity: sha512-TxHSar7Cj29E+GOcIj4DeZKWCNVzHKdqnrBRqcBqLqmeYZvzFosLXpFKoaCJDq7MSxuPoCvu5woSdp9YmPXyog==} @@ -857,6 +832,7 @@ packages: '@pushrocks/smarttime@4.0.1': resolution: {integrity: sha512-5SpUqD3X/2IZCTezCpk48Ss7cDc9QOuQAkeAYnJrRjDL4UCLakA3lBeHXRD/rsIB7S1smtXlayQ/vizfYzdbfw==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smarttime '@pushrocks/smartunique@3.0.3': resolution: {integrity: sha512-f+c3s2WzzjASoRHyYTLU0kHDVWREg4sZVdi5L42bTA3CTUWNrcGUC62h4wP4U4BiPl3bopTr3LPhClZHJ738oA==} @@ -868,6 +844,7 @@ packages: '@pushrocks/smarturl@3.0.6': resolution: {integrity: sha512-YHWnYE1mm8WIJk1usSXg+kNM7s7ByM+PKApO9cgl0T/oGybjzAJiO3clGNDro4ysP0TD+WuvJuiVue02bErEBQ==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smarturl '@pushrocks/smartxml@1.0.6': resolution: {integrity: sha512-Cy//pxzdpplqE64h9/sAwvAkUBv9t3Nw9v6k2c+erXH779iOtuyGiiyWqgbRTX1wo2CRhMJqWGJx6xd2Ljq5kw==} @@ -888,9 +865,6 @@ packages: resolution: {integrity: sha512-gvZ5QnZu14bPIWaFDOCyH6pfPgN/nQ0hF3EFhE74Ypfm5dCzq6OZEC9jeUTXDypfsvbSs3xAgj4XG83sVSUDAg==} deprecated: This package has been deprecated in favour of the new package at @push.rocks/webstore - '@rkusa/linebreak@1.0.0': - resolution: {integrity: sha512-yCSm87XA1aYMgfcABSxcIkk3JtCw3AihNceHY+DnZGLvVP/g2z3UWZbi0xIoYpZWAJEVPr5Zt3QE37Q80wF1pA==} - '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} @@ -1113,8 +1087,8 @@ packages: resolution: {integrity: sha512-piUTHyp2Axx3p/kc2CIJkYSv0BAaheBQmbACZgQSSfWUumWNW+R1lL+H9PDBxKJkvOeEX+hKYEFiwO8xagL8AQ==} engines: {node: '>=18.0.0'} - '@socket.io/component-emitter@3.1.0': - resolution: {integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==} + '@socket.io/component-emitter@3.1.2': + resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} '@szmarczak/http-timer@5.0.1': resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} @@ -1126,17 +1100,17 @@ packages: '@tokenizer/token@0.3.0': resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} + '@tootallnate/quickjs-emscripten@0.23.0': + resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} + '@tsclass/tsclass@3.0.48': resolution: {integrity: sha512-hC65UvDlp9qvsl6OcIZXz0JNiWZ0gyzsTzbXpg215sGxopgbkOLCr6E0s4qCTnweYm95gt2AdY95uP7M7kExaQ==} - '@tsclass/tsclass@4.0.42': - resolution: {integrity: sha512-mWZ8k3G7VL/dSNaJCv7mjbad6movf2rTE+1MdsXMoCxblZpJ3YzqlRsKm/JUQkxqF1H28q6m/L5BV42LfNZsiA==} - '@tsclass/tsclass@4.4.0': resolution: {integrity: sha512-/T3qmxj28yRMM+0x9UtyBmrsJ66flviQEDg3M4kwmWuZQgbrDACa6JXdA0ieqfmuPOXDJRRDKcyKaKvKi2EdwA==} - '@tsconfig/node10@1.0.9': - resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} + '@tsconfig/node10@1.0.11': + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} '@tsconfig/node12@1.0.11': resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} @@ -1153,15 +1127,9 @@ packages: '@types/babel__code-frame@7.0.6': resolution: {integrity: sha512-Anitqkl3+KrzcW2k77lRlg/GfLZLWXBuNgbEcIOU6M92yw42vsd3xV/Z/yAHEj8m+KUjL6bWOVOFqX8PFPJ4LA==} - '@types/body-parser@1.19.2': - resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} - '@types/body-parser@1.19.5': resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} - '@types/buffer-json@2.0.1': - resolution: {integrity: sha512-y2q2QGDqpS8NBtgKg8si+vKfanyd8smKzTglDCm7dXrco1VclSR8G1/uezK+sWbEUxsVPTomv5RxsTl3JAzxLA==} - '@types/buffer-json@2.0.3': resolution: {integrity: sha512-ItD4UfF3Q5jA+PEV6ZUWEHvlWaXJbd0rpuBKOIrEebM053FHaJddKsgUf0vy7nLSTs44nqFj3Mh8J3TiT0xv4g==} @@ -1174,21 +1142,18 @@ packages: '@types/chai@5.0.1': resolution: {integrity: sha512-5T8ajsg3M/FOncpLYW7sdOcD6yf4+722sze/tc4KQV0P8Z2rAr3SAuHCIkYmYpt8VbcQlnz8SxlOlPQYefe4cA==} - '@types/chokidar@2.1.3': - resolution: {integrity: sha512-6qK3xoLLAhQVTucQGHTySwOVA1crHRXnJeLwqK6KIFkkKa2aoMFXh+WEi8PotxDtvN6MQJLyYN9ag9P6NLV81w==} + '@types/chokidar@2.1.7': + resolution: {integrity: sha512-A7/MFHf6KF7peCzjEC1BBTF8jpmZTokb3vr/A0NxRGfwRLK3Ws+Hq6ugVn6cJIMfM6wkCak/aplWrxbTcu8oig==} deprecated: This is a stub types definition. chokidar provides its own type definitions, so you do not need this installed. - '@types/clean-css@4.2.6': - resolution: {integrity: sha512-Ze1tf+LnGPmG6hBFMi0B4TEB0mhF7EiMM5oyjLDNPE9hxrPU0W+5+bHvO+eFPA+bt0iC1zkQMoU/iGdRVjcRbw==} + '@types/clean-css@4.2.11': + resolution: {integrity: sha512-Y8n81lQVTAfP2TOdtJJEsCoYl1AnOkqDqMvXb9/7pfgZZ7r8YrEyurrAvAoAjHOGXKRybay+5CsExqIH6liccw==} '@types/co-body@6.1.3': resolution: {integrity: sha512-UhuhrQ5hclX6UJctv5m4Rfp52AfG9o9+d9/HwjxhVB5NjXxr5t9oKgJxN8xRHgr35oo8meUEHUPFWiKg6y71aA==} - '@types/compression@1.7.2': - resolution: {integrity: sha512-lwEL4M/uAGWngWFLSG87ZDr2kLrbuR8p7X+QZB1OQlT+qkHsCPDVFnHPyXf4Vyl4yDDorNY+mAhosxkCvppatg==} - - '@types/connect@3.4.35': - resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} + '@types/compression@1.7.5': + resolution: {integrity: sha512-AAQvK5pxMpaT+nDvhHrsBhLSYG5yQdtkaJE1WYieSNY2mVFKAgmU4ks65rkZD5oqnGCFLyQpUr1CqI4DmUMyDg==} '@types/connect@3.4.38': resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} @@ -1205,8 +1170,8 @@ packages: '@types/cookies@0.9.0': resolution: {integrity: sha512-40Zk8qR147RABiQ7NQnBzWzDcjKzNrntB5BAmeGCb2p/MIyOE+4BVvc17wumsUqUw00bJYqoXFHYygQnEFh4/Q==} - '@types/cors@2.8.13': - resolution: {integrity: sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==} + '@types/cors@2.8.17': + resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} '@types/debounce@1.2.4': resolution: {integrity: sha512-jBqiORIzKDOToaF63Fm//haOCHuwQuLa2202RK4MozpA6lh93eCBc+/8+wZn5OzjJt3ySdc+74SXWXB55Ewtyw==} @@ -1217,14 +1182,14 @@ packages: '@types/default-gateway@3.0.1': resolution: {integrity: sha512-tpu0hp+AOIzwdAHyZPzLE5pCf9uT0pb+xZ76T4S7MrY2YTVq918Q7Q2VQ3KCVQqYxM7nxuCK/SL3X97jBEIeKQ==} - '@types/express-serve-static-core@4.17.35': - resolution: {integrity: sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==} + '@types/express-serve-static-core@4.19.6': + resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} '@types/express-serve-static-core@5.0.6': resolution: {integrity: sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==} - '@types/express@4.17.17': - resolution: {integrity: sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==} + '@types/express@4.17.21': + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} '@types/express@5.0.0': resolution: {integrity: sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==} @@ -1233,14 +1198,11 @@ packages: resolution: {integrity: sha512-vsxcbfLDdjytnCnHXtinE40Xl46Wr7l/VGRGt7ewJwCPMKEHOdEsTxXX8xwgoR7cbc+6dE8SB4jlMrOV2zAg7g==} deprecated: This is a stub types definition. fast-json-stable-stringify provides its own type definitions, so you do not need this installed. - '@types/finalhandler@1.2.0': - resolution: {integrity: sha512-NgEZKOhxUSXkwNnWNaMXZaopQ5aFGPAYiEpEWIkQ6Dzc4iS0M1oQsvWne2t+ex9QZUAdTz/ZT4tOXJhWtP6mCw==} + '@types/finalhandler@1.2.3': + resolution: {integrity: sha512-I+Ba0JZEiuSr8LLjVmBhvLBEN8KG9GSITNXWwPCLeAvZj/k5pXEdOBEvnEEIgA038eeaauJ3BPxbuxeFBsqqUw==} - '@types/from2@2.3.2': - resolution: {integrity: sha512-s1pdctxW2+CA4FOxxTBRxC3RKQL9Br1a2s2LngP4jh1BI84JBL3mDXj87EwcckN9z/IXp8o3ySmvZveGEAAwqw==} - - '@types/fs-extra@11.0.1': - resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==} + '@types/from2@2.3.5': + resolution: {integrity: sha512-giavnjf3kNlJnE+HpZA1CQ3UKHxgehzsTuIMGda8pGMbOiLYGVNADEskey44OZcADHm/HOoBany8IV+0x28XFw==} '@types/fs-extra@11.0.4': resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} @@ -1254,17 +1216,14 @@ packages: '@types/glob@8.1.0': resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} - '@types/html-minifier@4.0.2': - resolution: {integrity: sha512-4IkmkXJP/25R2fZsCHDX2abztXuQRzUAZq39PfCMz2loLFj8vS9y7aF6vDl58koXSTpsF+eL4Lc5Y4Aww/GCTQ==} + '@types/html-minifier@4.0.5': + resolution: {integrity: sha512-LfE7f7MFd+YUfZnlBz8W43P4NgSObWiqyKapANsWCj63Aqeqli8/9gVsGP4CwC8jPpTTYlTopKCk9rJSuht/ew==} '@types/http-assert@1.5.6': resolution: {integrity: sha512-TTEwmtjgVbYAzZYWyeHPrrtWnfVkm8tQkP8P21uQifPgMRgjrow3XDEYqucuC8SKZJT7pUnhU/JymvjggxO9vw==} - '@types/http-cache-semantics@4.0.1': - resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==} - - '@types/http-errors@2.0.1': - resolution: {integrity: sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==} + '@types/http-cache-semantics@4.0.4': + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} '@types/http-errors@2.0.4': resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} @@ -1278,18 +1237,12 @@ packages: '@types/istanbul-reports@3.0.4': resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - '@types/js-yaml@3.12.7': - resolution: {integrity: sha512-S6+8JAYTE1qdsc9HMVsfY7+SgSuUU/Tp6TYTmITW0PZxiyIMvol3Gy//y69Wkhs0ti4py5qgR3uZH6uz/DNzJQ==} - - '@types/js-yaml@4.0.5': - resolution: {integrity: sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==} + '@types/js-yaml@3.12.10': + resolution: {integrity: sha512-/Mtaq/wf+HxXpvhzFYzrzCqNRcA958sW++7JOFC8nPrZcvfi/TrzOaaGbvt27ltJB2NQbHVAg5a1wUCsyMH7NA==} '@types/js-yaml@4.0.9': resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} - '@types/jsonfile@6.1.1': - resolution: {integrity: sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==} - '@types/jsonfile@6.1.4': resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} @@ -1302,21 +1255,12 @@ packages: '@types/koa@2.15.0': resolution: {integrity: sha512-7QFsywoE5URbuVnG3loe03QXuGajrnotr3gQkXcEBShORai23MePfFYdhz90FEtBBpkyIYQbVD+evKtloCgX3g==} - '@types/mime-types@2.1.1': - resolution: {integrity: sha512-vXOTGVSLR2jMw440moWTC7H19iUyLtP3Z1YTj7cSsubOICinjMxFeb/V57v9QdyyPGbbWolUFSSmSiRSn94tFw==} - '@types/mime-types@2.1.4': resolution: {integrity: sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w==} - '@types/mime@1.3.2': - resolution: {integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==} - '@types/mime@1.3.5': resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - '@types/mime@3.0.1': - resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==} - '@types/minimatch@3.0.5': resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} @@ -1332,42 +1276,27 @@ packages: '@types/parse5@6.0.3': resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} - '@types/ping@0.4.1': - resolution: {integrity: sha512-q/D+xQvoqrHvntvz2A0Pb0ImYwnN3zakluUp8O2qoogGoVMVbdY2K/ulxHcCh9TzYzVoojayHBa9gYQDIZ4v0A==} + '@types/ping@0.4.4': + resolution: {integrity: sha512-ifvo6w2f5eJYlXm+HiVx67iJe8WZp87sfa683nlqED5Vnt9Z93onkokNoWqOG21EaE8fMxyKPobE+mkPEyxsdw==} '@types/qs@6.9.18': resolution: {integrity: sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==} - '@types/qs@6.9.7': - resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==} - - '@types/randomatic@3.1.3': - resolution: {integrity: sha512-UlYMg/XxN+YMh6vAiB879yh2bhaTOU0DB1g4NGIhzlaiSf22rAVKIGTvH8HjCXu+wfFvjAWHuPG5waN4btEubw==} - '@types/randomatic@3.1.5': resolution: {integrity: sha512-VCwCTw6qh1pRRw+5rNTAwqPmf6A+hdrkdM7dBpZVmhl7g+em3ONXlYK/bWPVKqVGMWgP0d1bog8Vc/X6zRwRRQ==} - '@types/range-parser@1.2.4': - resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} - '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/relateurl@0.2.29': - resolution: {integrity: sha512-QSvevZ+IRww2ldtfv1QskYsqVVVwCKQf1XbwtcyyoRvLIQzfyPhj/C+3+PKzSDRdiyejaiLgnq//XTkleorpLg==} + '@types/relateurl@0.2.33': + resolution: {integrity: sha512-bTQCKsVbIdzLqZhLkF5fcJQreE4y1ro4DIyVrlDNSCJRRwHhB8Z+4zXXa8jN6eDvc2HbRsEYgbvrnGvi54EpSw==} '@types/s3rver@3.7.4': resolution: {integrity: sha512-CMCmdNszxS2FsIznWvBMVCl6fpvr5ueaFCaY0iSoH7Ud5maGcLghukpDvsXBnIcp92cv2HeVnVqI1p8yPcab9Q==} - '@types/send@0.17.1': - resolution: {integrity: sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==} - '@types/send@0.17.4': resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} - '@types/serve-static@1.15.2': - resolution: {integrity: sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw==} - '@types/serve-static@1.15.7': resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} @@ -1386,32 +1315,23 @@ packages: '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - '@types/symbol-tree@3.2.2': - resolution: {integrity: sha512-+NcSHyA9K2EDHv3ny4wpbRSA+f+Tj0O7hIj7+w4tVw9yxqMavXwtFwuZEo3vyigTgOhGkrAUl3gj4oxAcyLfRQ==} - '@types/symbol-tree@3.2.5': resolution: {integrity: sha512-zXnnyENt1TYQcS21MkPaJCVjfcPq7p7yc5mo5JACuumXp6sly5jnlS0IokHd+xmmuCbx6V7JqkMBpswR+nZAcw==} - '@types/through2@2.0.38': - resolution: {integrity: sha512-YFu+nHmjxMurkH1BSzA0Z1WrKDAY8jUKPZctNQn7mc+/KKtp2XxnclHFXxdB1m7Iqnzb5aywgP8TMK283LezGQ==} - '@types/through2@2.0.41': resolution: {integrity: sha512-ryQ0tidWkb1O1JuYvWKyMLYEtOWDqF5mHerJzKz/gQpoAaJq2l/dsMPBF0B5BNVT34rbARYJ5/tsZwLfUi2kwQ==} '@types/triple-beam@1.3.5': resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} - '@types/trusted-types@2.0.3': - resolution: {integrity: sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==} - '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} - '@types/uglify-js@3.17.1': - resolution: {integrity: sha512-GkewRA4i5oXacU/n4MA9+bLgt5/L3F1mKrYvFGm7r2ouLXhRKjuWwo9XHNnbx6WF3vlGW21S3fCvgqxvxXXc5g==} + '@types/uglify-js@3.17.5': + resolution: {integrity: sha512-TU+fZFBTBcXj/GpDpDaBmgWk/gn96kMZ+uocaFUlV2f8a6WdMzzI44QBCmGcCiYR0Y6ZlNRiyUyKKt5nl/lbzQ==} - '@types/uuid@7.0.5': - resolution: {integrity: sha512-hKB88y3YHL8oPOs/CNlaXtjWn93+Bs48sDQR37ZUqG2tLeCS7EA1cmnkKsuQsub9OKEB/y/Rw9zqJqqNSbqVlQ==} + '@types/uuid@7.0.8': + resolution: {integrity: sha512-95N4tyM4B5u1sj2m8Tht09qWHju2ht413GBFz8CHtxp8aIiJUF6t51MsR7jC9OF4rRVf93AxE++WJe7+Puc1UA==} '@types/uuid@9.0.8': resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} @@ -1425,12 +1345,6 @@ packages: '@types/whatwg-url@8.2.2': resolution: {integrity: sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==} - '@types/which@2.0.2': - resolution: {integrity: sha512-113D3mDkZDjo+EeUEHCFy0qniNc1ZpecGiAU7WSo7YDoSzolZIQKpYFHrPpjkB2nuyahcKfrmLXeQlh7gqJYdw==} - - '@types/which@3.0.0': - resolution: {integrity: sha512-ASCxdbsrwNfSMXALlC3Decif9rwDMu+80KGp5zI2RLRotfMsTv7fHL8W8VDp24wymzDyIFudhUeSCugrgRFfHQ==} - '@types/which@3.0.4': resolution: {integrity: sha512-liyfuo/106JdlgSchJzXEQCVArk0CvevqPote8F8HgWgJ3dRCcTHgJIsLDuee0kxk/mhbInzIZk3QWSZJ8R+2w==} @@ -1443,8 +1357,8 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - '@types/yauzl@2.10.0': - resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==} + '@types/yauzl@2.10.3': + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} '@web/browser-logs@0.4.1': resolution: {integrity: sha512-ypmMG+72ERm+LvP+loj9A64MTXvWMXHUOu773cPO4L1SV/VWg6xA9Pv7vkvkXQX+ItJtCJt+KQ+U6ui2HhSFUw==} @@ -1470,12 +1384,12 @@ packages: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} - acorn-walk@8.2.0: - resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} - acorn@8.10.0: - resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} hasBin: true @@ -1483,13 +1397,9 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} - agentkeepalive@4.3.0: - resolution: {integrity: sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==} - engines: {node: '>= 8.0.0'} - - agentkeepalive@4.5.0: - resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} - engines: {node: '>= 8.0.0'} + agent-base@7.1.3: + resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} + engines: {node: '>= 14'} agentkeepalive@4.6.0: resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} @@ -1511,8 +1421,8 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} ansi-styles@3.2.1: @@ -1551,6 +1461,10 @@ packages: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} + ast-types@0.13.4: + resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} + engines: {node: '>=4'} + astral-regex@2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} @@ -1568,9 +1482,37 @@ packages: resolution: {integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==} engines: {node: '>=4'} + b4a@1.6.7: + resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + bare-events@2.5.4: + resolution: {integrity: sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==} + + bare-fs@4.0.1: + resolution: {integrity: sha512-ilQs4fm/l9eMfWY2dY0WCIUplSUp7U0CT1vrqMg1MUdeZl4fypu5UP0XcDBK5WBQPJAKP1b7XEodISmekH/CEg==} + engines: {bare: '>=1.7.0'} + + bare-os@3.5.1: + resolution: {integrity: sha512-LvfVNDcWLw2AnIw5f2mWUgumW3I3N/WYGiWeimhQC1Ybt71n2FjlS9GJKeCnFeg1MKZHxzIFmpFnBXDI+sBeFg==} + engines: {bare: '>=1.14.0'} + + bare-path@3.0.0: + resolution: {integrity: sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==} + + bare-stream@2.6.5: + resolution: {integrity: sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA==} + peerDependencies: + bare-buffer: '*' + bare-events: '*' + peerDependenciesMeta: + bare-buffer: + optional: true + bare-events: + optional: true + base64-arraybuffer-es6@0.7.0: resolution: {integrity: sha512-ESyU/U1CFZDJUdr+neHRhNozeCv72Y7Vm0m1DCbjX3KBjT6eYocvAJlSk6+8+HkVwXlT1FNxhGW6q3UKAlCvvw==} engines: {node: '>=6.0.0'} @@ -1582,19 +1524,19 @@ packages: resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} engines: {node: ^4.5.0 || >= 5.9} - binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + basic-ftp@5.0.5: + resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} + engines: {node: '>=10.0.0'} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - body-parser@1.20.1: - resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} + body-parser@1.20.3: + resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} bowser@2.11.0: @@ -1606,10 +1548,6 @@ packages: brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -1650,16 +1588,17 @@ packages: resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} engines: {node: '>=14.16'} - cacheable-request@10.2.13: - resolution: {integrity: sha512-3SD4rrMu1msNGEtNSt8Od6enwdo//U9s4ykmXfA2TD58kcLkCobtCDiby7kNyj7a/Q7lz/mAesAFI54rTdnvBA==} + cacheable-request@10.2.14: + resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} engines: {node: '>=14.16'} call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} - call-bind@1.0.2: - resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + call-bind@1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} call-bound@1.0.4: resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} @@ -1687,16 +1626,18 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} chokidar@4.0.3: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} - chownr@1.1.4: - resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + chromium-bidi@2.1.2: + resolution: {integrity: sha512-vtRWBK2uImo5/W2oG6/cDkkHSm+2t6VHgnj+Rcwhb0pP74OoUb4GipyRX/T/y39gYQPhioP0DPShn+A7P6CHNw==} + peerDependencies: + devtools-protocol: '*' ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} @@ -1718,6 +1659,10 @@ packages: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + clone@2.1.2: resolution: {integrity: sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=} engines: {node: '>=0.8'} @@ -1787,8 +1732,8 @@ packages: resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} engines: {node: '>= 0.6'} - cookie@0.5.0: - resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} + cookie@0.7.1: + resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} engines: {node: '>= 0.6'} cookies@0.9.1: @@ -1802,6 +1747,15 @@ packages: resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} engines: {node: '>= 0.10'} + cosmiconfig@9.0.0: + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} @@ -1816,37 +1770,24 @@ packages: resolution: {integrity: sha512-onMB0OkDjkXunhdW9htFjEhqrD54+M94i6ackoUkjHKbRnXdyEyKRelp4nJ1kAz32+s27jP1FsebpJCVl0BsvA==} engines: {node: '>=18.0'} - cross-fetch@3.1.5: - resolution: {integrity: sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==} - - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} - crypto-random-string@4.0.0: - resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} - engines: {node: '>=12'} - crypto-random-string@5.0.0: resolution: {integrity: sha512-KWjTXWwxFd6a94m5CdRGW/t82Tr8DoBc9dNnPCAbFI1EBweN6v1tv8y4Y1m7ndkp/nkIBRxUxAzpaBnR2k3bcQ==} engines: {node: '>=14.16'} + data-uri-to-buffer@6.0.2: + resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} + engines: {node: '>= 14'} + date-fns@4.1.0: resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} dayjs@1.11.13: resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} - dayjs@1.11.8: - resolution: {integrity: sha512-LcgxzFoWMEPO7ggRv1Y2N31hUf2R0Vj7fuy/m+Bg1K8rr+KAs1AEy4y9jd5DXe8pbHgX+srkHNS7TH6Q6ZhYeQ==} - - dayjs@1.11.9: - resolution: {integrity: sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==} - debounce@1.2.1: resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} @@ -1866,8 +1807,8 @@ packages: supports-color: optional: true - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -1899,14 +1840,22 @@ packages: resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} engines: {node: '>=10'} + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} - define-properties@1.2.0: - resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} + degenerator@5.0.1: + resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} + engines: {node: '>= 14'} + delayed-stream@1.0.0: resolution: {integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk=} engines: {node: '>=0.4.0'} @@ -1930,8 +1879,8 @@ packages: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - devtools-protocol@0.0.1019158: - resolution: {integrity: sha512-wvq+KscQ7/6spEV7czhnZc9RM/woz1AY+/Vpd8/h2HFMwJSdTliu7f/yr1A6vDdJfKICZsShqsYpEQbdhg8AFQ==} + devtools-protocol@0.0.1402036: + resolution: {integrity: sha512-JwAYQgEvm3yD45CHB+RmF5kMbWtXBaOGwuxa87sZogHcLCv8c/IqnThaoQ1y60d7pXWjSKWQphPEc+1rAScVdg==} dicer@0.3.0: resolution: {integrity: sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==} @@ -1949,8 +1898,8 @@ packages: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} - dns-packet@5.6.0: - resolution: {integrity: sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==} + dns-packet@5.6.1: + resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} engines: {node: '>=6'} dns-socket@4.2.2: @@ -1983,6 +1932,10 @@ packages: resolution: {integrity: sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=} engines: {node: '>= 0.8'} + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} @@ -2004,6 +1957,13 @@ packages: entities@2.2.0: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + errorstacks@2.4.1: resolution: {integrity: sha512-jE4i0SMYevwu/xxAuzhly/KTwtj0xDhbzB6m1xPImxTkw8wcCbgarOQPfCVMi5JKVyW7in29pNJCCJrry3Ynnw==} @@ -2031,6 +1991,10 @@ packages: engines: {node: '>=12'} hasBin: true + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + escape-html@1.0.3: resolution: {integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=} @@ -2050,6 +2014,11 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} + escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true + esm@3.2.25: resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==} engines: {node: '>=6'} @@ -2059,6 +2028,14 @@ packages: engines: {node: '>=4'} hasBin: true + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + etag@1.8.1: resolution: {integrity: sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=} engines: {node: '>= 0.6'} @@ -2075,8 +2052,8 @@ packages: resolution: {integrity: sha1-AbK0mK5v0uQRUrIrV6Phc3c69n4=} engines: {node: '>=0.2.2'} - express@4.18.2: - resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} + express@4.21.2: + resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} engines: {node: '>= 0.10.0'} extract-zip@2.0.1: @@ -2094,6 +2071,9 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + fast-glob@3.3.3: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} @@ -2130,16 +2110,12 @@ packages: resolution: {integrity: sha512-VZR5I7k5wkD0HgFnMsq5hOsSc710MJMu5Nc5QYsbe38NN5iPV/XTObYLc/cpttRTf6lX538+5uO1ZQRhYibiZQ==} engines: {node: '>=18'} - fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + finalhandler@1.3.1: + resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} engines: {node: '>= 0.8'} find-cache-dir@3.3.2: @@ -2166,10 +2142,6 @@ packages: resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} engines: {node: '>=8.0.0'} - foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} - engines: {node: '>=14'} - foreground-child@3.3.1: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} @@ -2178,10 +2150,6 @@ packages: resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} engines: {node: '>= 14.17'} - form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} - form-data@4.0.2: resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} engines: {node: '>= 6'} @@ -2204,10 +2172,6 @@ packages: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} - fs-extra@11.1.1: - resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} - engines: {node: '>=14.14'} - fs-extra@11.3.0: resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} engines: {node: '>=14.14'} @@ -2219,19 +2183,17 @@ packages: fs.realpath@1.0.0: resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} - fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] - function-bind@1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - get-intrinsic@1.2.1: - resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} get-intrinsic@1.3.0: resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} @@ -2257,13 +2219,16 @@ packages: resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} engines: {node: '>=18'} + get-uri@6.0.4: + resolution: {integrity: sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==} + engines: {node: '>= 14'} + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} - glob@10.3.3: - resolution: {integrity: sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==} - engines: {node: '>=16 || 14 >=14.17'} + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true glob@11.0.1: @@ -2274,10 +2239,6 @@ packages: glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -2301,16 +2262,8 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - has-property-descriptors@1.0.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} - - has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} - engines: {node: '>= 0.4'} - - has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} has-symbols@1.1.0: resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} @@ -2320,10 +2273,6 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} - has@1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} - hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} @@ -2359,14 +2308,22 @@ packages: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} - http2-wrapper@2.2.0: - resolution: {integrity: sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==} + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} + + http2-wrapper@2.2.1: + resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} engines: {node: '>=10.19.0'} https-proxy-agent@5.0.1: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} + human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -2391,6 +2348,10 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + indent-string@5.0.0: resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} engines: {node: '>=12'} @@ -2428,6 +2389,9 @@ packages: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} + is-arrayish@0.2.1: + resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} + is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} @@ -2536,9 +2500,8 @@ packages: resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} engines: {node: '>=8'} - jackspeak@2.2.3: - resolution: {integrity: sha512-pF0kfjmg8DJLxDrizHoCZGUFz4P4czQ3HyfW4BU0ffebYkzAVlBywp5zaxW/TM+r0sGbmrQdi8EQQVTJFxnGsQ==} - engines: {node: '>=14'} + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} jackspeak@4.1.0: resolution: {integrity: sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==} @@ -2564,9 +2527,6 @@ packages: resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - js-base64@3.7.5: - resolution: {integrity: sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==} - js-base64@3.7.7: resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==} @@ -2587,6 +2547,9 @@ packages: json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + jsonfile@4.0.0: resolution: {integrity: sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=} @@ -2597,8 +2560,8 @@ packages: resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} engines: {node: '>= 0.6'} - keyv@4.5.3: - resolution: {integrity: sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==} + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} @@ -2633,6 +2596,9 @@ packages: kuler@2.0.0: resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + lit-element@3.3.3: resolution: {integrity: sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==} @@ -2709,22 +2675,21 @@ packages: resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - lru-cache@10.0.1: - resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} - engines: {node: 14 || >=16.14} + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} lru-cache@11.0.2: resolution: {integrity: sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==} engines: {node: 20 || >=22} + lru-cache@7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} + engines: {node: '>=12'} + lru-cache@8.0.5: resolution: {integrity: sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==} engines: {node: '>=16.14'} - lru-cache@9.1.1: - resolution: {integrity: sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==} - engines: {node: 14 || >=16.14} - make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} @@ -2766,8 +2731,8 @@ packages: memory-pager@1.5.0: resolution: {integrity: sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==} - merge-descriptors@1.0.1: - resolution: {integrity: sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=} + merge-descriptors@1.0.3: + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -2825,24 +2790,16 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} - - minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} - - minipass@7.0.2: - resolution: {integrity: sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==} + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - mkdirp-classic@0.5.3: - resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} mkdirp@1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} @@ -2897,18 +2854,12 @@ packages: ms@2.0.0: resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=} - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} nanocolors@0.2.13: resolution: {integrity: sha512-0n3mSAQLPpGLV9ORXT5+C/D4mwew7Ebws69Hx4E2sgz2ZA5+32Q80B9tL8PbL7XHnRDiAxH/pnrUJ9a4fkTNTA==} - nanoid@2.1.11: - resolution: {integrity: sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==} - nanoid@3.3.8: resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -2923,6 +2874,10 @@ packages: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} + netmask@2.0.2: + resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} + engines: {node: '>= 0.4.0'} + new-find-package-json@2.0.0: resolution: {integrity: sha512-lDcBsjBSMlj3LXH2v/FW3txlh2pYTjmbOXPYJD93HI5EwuLzI11tdHSIpUMmfq/IOsldj4Ps8M8flhm+pCK4Ew==} engines: {node: '>=12.22.0'} @@ -2930,15 +2885,6 @@ packages: no-case@2.3.2: resolution: {integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==} - node-fetch@2.6.7: - resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - node-forge@1.3.1: resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} engines: {node: '>= 6.13.0'} @@ -2951,8 +2897,8 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - normalize-url@8.0.0: - resolution: {integrity: sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==} + normalize-url@8.0.1: + resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} engines: {node: '>=14.16'} npm-run-path@4.0.1: @@ -2963,9 +2909,6 @@ packages: resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=} engines: {node: '>=0.10.0'} - object-inspect@1.12.3: - resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} - object-inspect@1.13.4: resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} engines: {node: '>= 0.4'} @@ -2998,11 +2941,6 @@ packages: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} - opentype.js@1.3.4: - resolution: {integrity: sha512-d2JE9RP/6uagpQAVtJoF0pJJA/fgai89Cc50Yp0EJHk+eLp6QQ7gBoblsnubRULNY132I0J1QKMJ+JTbMqz4sw==} - engines: {node: '>= 8.0.0'} - hasBin: true - p-cancelable@3.0.0: resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} engines: {node: '>=12.20'} @@ -3031,18 +2969,31 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + pac-proxy-agent@7.2.0: + resolution: {integrity: sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==} + engines: {node: '>= 14'} + + pac-resolver@7.0.1: + resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==} + engines: {node: '>= 14'} + package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - pako@0.2.9: - resolution: {integrity: sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=} - - pako@2.1.0: - resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==} + pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} param-case@2.1.1: resolution: {integrity: sha1-35T9jPZTHs915r75oIWPvHK+Ikc=} + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + parse-ms@2.1.0: resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} engines: {node: '>=6'} @@ -3077,16 +3028,16 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} - engines: {node: '>=16 || 14 >=14.17'} + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} path-scurry@2.0.0: resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} engines: {node: 20 || >=22} - path-to-regexp@0.1.7: - resolution: {integrity: sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=} + path-to-regexp@0.1.12: + resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} path-to-regexp@6.3.0: resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} @@ -3095,20 +3046,16 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} - pdf-merger-js@3.4.0: - resolution: {integrity: sha512-2LkaPYf49cp/QAhjE+n9LEZXVVOzCjZPGlB6fE3a0neW+fers6vz+0A9drQCYNesMbzZ6JttCUF8jJvgwNPHAA==} + pdf-lib@1.17.1: + resolution: {integrity: sha512-V/mpyJAoTsN4cnP31vc0wfNA1+p20evqqnap0KLoRUN0Yk/p3wN52DOEsL4oBFcLdb76hlpKPtzJIgo67j/XLw==} - pdf2json@2.1.0: - resolution: {integrity: sha512-mXF9AIgnvq1DP/ZM2R28tAfxP2wKZHYa2DjV0R1KCwcqSzm5Iqh1XQq9rdfAt6dp2DuPP0VHZIaCALc2v1cL5A==} - engines: {node: '>=14.18.0', npm: '>=6.14.15'} + pdf2json@3.1.5: + resolution: {integrity: sha512-djZPInDLNuJU+o6GaJNvcoUh6MtUAx3IYTQCTxywHzeg1jC5YWgz/XzlgmduxxBblpMTqY2fjcWwvyRdGPTyrQ==} + engines: {node: '>=20.18.0', npm: '>=10.8.2'} hasBin: true bundledDependencies: - '@xmldom/xmldom' - pdfjs@2.5.2: - resolution: {integrity: sha512-jfjtP5bclEs58udYKPkVNjRi11OadBmMxuVaN4DQh5l8tMCm7MXSFFzDvcZAsf1ravqtt07q5sVPHaLugB2BAQ==} - engines: {node: '>=7'} - peek-readable@5.4.2: resolution: {integrity: sha512-peBp3qZyuS6cNIJ2akRNG1uo1WJ1d0wTxg/fxMdZ0BqCVhx242bSFHM9eNqflfJVS9SsgkzgT/1UgnsurBOTMg==} engines: {node: '>=14.16'} @@ -3158,37 +3105,38 @@ packages: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} + proxy-agent@6.5.0: + resolution: {integrity: sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==} + engines: {node: '>= 14'} + proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - public-ip@6.0.1: - resolution: {integrity: sha512-1/Mxa1MKrAQ4jF5IalECSBtB0W1FAtnG+9c5X16jjvV/Gx9fiRy7xXIrHlBGYjnTlai0zdZkM3LrpmASavmAEg==} + public-ip@6.0.2: + resolution: {integrity: sha512-+6bkjnf0yQ4+tZV0zJv1017DiIF7y6R4yg17Mrhhkc25L7dtQtXWHgSCrz9BbLL4OeTFbPK4EALXqJUrwCIWXw==} engines: {node: '>=14.16'} - pump@3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} punycode@1.4.1: resolution: {integrity: sha1-wNWmOycYgArY4esPpSachN1BhF4=} - punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} - engines: {node: '>=6'} - punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - puppeteer@15.5.0: - resolution: {integrity: sha512-+vZPU8iBSdCx1Kn5hHas80fyo0TiVyMeqLGv/1dygX2HKhAZjO9YThadbRTCoTYq0yWw+w/CysldPsEekDtjDQ==} - engines: {node: '>=14.1.0'} + puppeteer-core@24.3.1: + resolution: {integrity: sha512-585ccfcTav4KmlSmYbwwOSeC8VdutQHn2Fuk0id/y/9OoeO7Gg5PK1aUGdZjEmos0TAq+pCpChqFurFbpNd3wA==} + engines: {node: '>=18'} - qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} + puppeteer@24.3.1: + resolution: {integrity: sha512-k0OJ7itRwkr06owp0CP3f/PsRD7Pdw4DjoCUZvjGr+aNgS1z6n/61VajIp0uBjl+V5XAQO1v/3k9bzeZLWs9OQ==} + engines: {node: '>=18'} + hasBin: true - qs@6.11.2: - resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} + qs@6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} qs@6.14.0: @@ -3210,10 +3158,6 @@ packages: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} - raw-body@2.5.1: - resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} - engines: {node: '>= 0.8'} - raw-body@2.5.2: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} @@ -3247,9 +3191,17 @@ packages: resolution: {integrity: sha512-ly3OKwKu+3T55DjP5PjIMzxgz9lFx6dQnBmAIxryZyRKl8f22juy12ShOyuq8WrQE5UlFOseZgQZDua0iF9DHw==} engines: {node: '>=4'} + require-directory@2.1.1: + resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} + engines: {node: '>=0.10.0'} + resolve-alpn@1.2.1: resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + resolve-path@1.4.0: resolution: {integrity: sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==} engines: {node: '>= 0.8'} @@ -3276,9 +3228,6 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - rxjs@7.8.2: resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} @@ -3304,11 +3253,11 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sax@1.2.4: - resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} + sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} - semver@6.3.0: - resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true semver@7.7.1: @@ -3316,14 +3265,18 @@ packages: engines: {node: '>=10'} hasBin: true - send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + send@0.19.0: + resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} - serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + serve-static@1.16.2: + resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} engines: {node: '>= 0.8.0'} + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + setprototypeof@1.1.0: resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} @@ -3338,8 +3291,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shortid@2.2.16: - resolution: {integrity: sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g==} + shortid@2.2.17: + resolution: {integrity: sha512-GpbM3gLF1UUXZvQw6MCyulHkWbRseNO4cyBEZresZRorwl1+SLu1ZdqgVtuwqz8mB6RpwPkm541mYSqrKyJSaA==} side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} @@ -3353,9 +3306,6 @@ packages: resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} engines: {node: '>= 0.4'} - side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} - side-channel@1.1.0: resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} @@ -3397,6 +3347,10 @@ packages: resolution: {integrity: sha512-m3GC94iK9MfIEeIBfbhJs5BqFibMtkRk8ZpKwG2QwxV0m/eEhPIV4ara6XCF1LWNAus7z58RodiZlAH71U3EhQ==} engines: {node: '>=10.0.0'} + socks-proxy-agent@8.0.5: + resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} + engines: {node: '>= 14'} + socks@2.8.4: resolution: {integrity: sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} @@ -3441,6 +3395,9 @@ packages: resolution: {integrity: sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=} engines: {node: '>=0.8.0'} + streamx@2.22.0: + resolution: {integrity: sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==} + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -3449,9 +3406,6 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} - string.prototype.codepointat@0.2.1: - resolution: {integrity: sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==} - string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} @@ -3474,9 +3428,6 @@ packages: resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} engines: {node: '>=12'} - strnum@1.0.5: - resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} - strnum@1.1.2: resolution: {integrity: sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==} @@ -3495,19 +3446,25 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - systeminformation@5.18.15: - resolution: {integrity: sha512-IS7UFVYDC7kILt/C1I5qYwxddC849uJidzR+56bv/RdpU6deOwXvXa5EgFaRP18TCPBULQj/zrri5++fXC9EGg==} + systeminformation@5.25.11: + resolution: {integrity: sha512-jI01fn/t47rrLTQB0FTlMCC+5dYx8o0RRF+R4BPiUNsvg5OdY0s9DKMFmJGrx5SwMZQ4cag0Gl6v8oycso9b/g==} engines: {node: '>=8.0.0'} os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android] hasBin: true - tar-fs@2.1.1: - resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + tar-fs@3.0.8: + resolution: {integrity: sha512-ZoROL70jptorGAlgAYiLoBLItEKw/fUxg9BSYK/dF/GAGYFJOJJJMvjPAKDJraCXFwadD456FCuvLWgfhMsPwg==} tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} + tar-stream@3.1.7: + resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} + + text-decoder@1.2.3: + resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} + text-hex@1.0.0: resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} @@ -3517,12 +3474,6 @@ packages: through2@4.0.2: resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} - through@2.3.8: - resolution: {integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=} - - tiny-inflate@1.0.3: - resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} - tiny-worker@2.3.0: resolution: {integrity: sha512-pJ70wq5EAqTAEl9IkGzA+fN0836rycEuz2Cn6yeZ6FRzlVS5IDOkFHpIoEsksPRQV34GDqXm65+OlnZqUSyK2g==} @@ -3538,9 +3489,6 @@ packages: resolution: {integrity: sha512-lbDrTLVsHhOMljPscd0yitpozq7Ga2M5Cvez5AjGg8GASBjtt6iERCAJ93yommPmz62fb45oFIXHEZ3u9bfJEA==} engines: {node: '>=14.16'} - tr46@0.0.3: - resolution: {integrity: sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=} - tr46@2.1.0: resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==} engines: {node: '>=8'} @@ -3561,8 +3509,8 @@ packages: resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} engines: {node: '>= 14.0.0'} - ts-node@10.9.1: - resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + ts-node@10.9.2: + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: '@swc/core': '>=1.2.50' @@ -3575,8 +3523,8 @@ packages: '@swc/wasm': optional: true - tslib@2.5.3: - resolution: {integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==} + tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} @@ -3589,18 +3537,10 @@ packages: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} - type-fest@1.4.0: - resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} - engines: {node: '>=10'} - type-fest@2.19.0: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} - type-fest@3.13.1: - resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} - engines: {node: '>=14.16'} - type-fest@4.37.0: resolution: {integrity: sha512-S/5/0kFftkq27FPNye0XM1e2NsnoD/3FS+pBmbjmmtLT6I+i344KoOf7pvXreaFsDamWeaJX55nczA1m5PsBDg==} engines: {node: '>=16'} @@ -3609,13 +3549,11 @@ packages: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} - typescript@5.1.3: - resolution: {integrity: sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==} - engines: {node: '>=14.17'} - hasBin: true + typed-query-selector@2.12.0: + resolution: {integrity: sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==} - typescript@5.1.6: - resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} + typescript@5.8.2: + resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} engines: {node: '>=14.17'} hasBin: true @@ -3627,8 +3565,8 @@ packages: resolution: {integrity: sha512-6FTtyGr8ldU0pfbvW/eOZrEtEkczHRUtduBnA90Jh9kMPCiFNnXIon3vF41N0S4tV1HHQt4Hk1j4srpESziCaA==} engines: {node: '>=0.1.14'} - uglify-js@3.17.4: - resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} + uglify-js@3.19.3: + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} engines: {node: '>=0.8.0'} hasBin: true @@ -3636,31 +3574,17 @@ packages: resolution: {integrity: sha512-ZPtzy0hu4cZjv3z5NW9gfKnNLjoz4y6uv4HlelAjDK7sY/xOkKZv9xK/WQpcsBB3jEybChz9DPC2U/+cusjJVQ==} engines: {node: '>=18'} - unbzip2-stream@1.4.3: - resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} - undici-types@6.20.0: resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} - unicode-trie@0.3.1: - resolution: {integrity: sha1-1nHd3YkQGgi6w3tqUWEBBgIFIIU=} - universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} - universalify@2.0.0: - resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} - engines: {node: '>= 10.0.0'} - universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - unorm@1.6.0: - resolution: {integrity: sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==} - engines: {node: '>= 0.4.0'} - unpipe@1.0.0: resolution: {integrity: sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=} engines: {node: '>= 0.8'} @@ -3668,9 +3592,6 @@ packages: upper-case@1.1.3: resolution: {integrity: sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=} - url@0.11.1: - resolution: {integrity: sha512-rWS3H04/+mzzJkv0eZ7vEDGiQbgquI1fGfOad6zKvgYQi1SzMmhl7c/DdRGxhaWrVH6z0qWITo8rpnxK/RfEhA==} - url@0.11.4: resolution: {integrity: sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==} engines: {node: '>= 0.4'} @@ -3686,10 +3607,6 @@ packages: resolution: {integrity: sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==} hasBin: true - uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true - uuid@9.0.1: resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true @@ -3701,9 +3618,6 @@ packages: resolution: {integrity: sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=} engines: {node: '>= 0.8'} - webidl-conversions@3.0.1: - resolution: {integrity: sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=} - webidl-conversions@4.0.2: resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} @@ -3723,9 +3637,6 @@ packages: resolution: {integrity: sha512-mDGf9diDad/giZ/Sm9Xi2YcyzaFpbdLpJPr+E9fSkyQ7KpQD4SdFcugkRQYzhmfI4KeV4Qpnn2sKPdo+kmsgRQ==} engines: {node: '>=18'} - whatwg-url@5.0.0: - resolution: {integrity: sha1-lmRU6HZUYuN2RNNib2dCzotwll0=} - whatwg-url@8.7.0: resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==} engines: {node: '>=10'} @@ -3735,11 +3646,6 @@ packages: engines: {node: '>= 8'} hasBin: true - which@3.0.1: - resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true - which@5.0.0: resolution: {integrity: sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==} engines: {node: ^18.17.0 || >=20.5.0} @@ -3792,20 +3698,20 @@ packages: utf-8-validate: optional: true - ws@8.2.3: - resolution: {integrity: sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==} + ws@8.18.1: + resolution: {integrity: sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 + utf-8-validate: '>=5.0.2' peerDependenciesMeta: bufferutil: optional: true utf-8-validate: optional: true - ws@8.8.0: - resolution: {integrity: sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==} + ws@8.2.3: + resolution: {integrity: sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -3832,10 +3738,22 @@ packages: resolution: {integrity: sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==} engines: {node: '>=0.4.0'} + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + yargs-parser@21.0.1: resolution: {integrity: sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==} engines: {node: '>=12'} + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + yauzl@2.10.0: resolution: {integrity: sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=} @@ -3847,13 +3765,16 @@ packages: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} + zod@3.24.2: + resolution: {integrity: sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==} + snapshots: - '@adobe/fetch@4.0.13': + '@adobe/fetch@4.2.0': dependencies: - debug: 4.3.4 + debug: 4.4.0 http-cache-semantics: 4.1.1 - lru-cache: 9.1.1 + lru-cache: 7.18.3 transitivePeerDependencies: - supports-color @@ -3913,11 +3834,11 @@ snapshots: '@pushrocks/smartsitemap': 2.0.1 '@pushrocks/smarttime': 4.0.1 '@pushrocks/webstore': 2.0.8 - '@tsclass/tsclass': 4.0.42 - '@types/express': 4.17.17 - body-parser: 1.20.2 + '@tsclass/tsclass': 4.4.0 + '@types/express': 4.17.21 + body-parser: 1.20.3 cors: 2.8.5 - express: 4.18.2 + express: 4.21.2 express-force-ssl: 0.3.2 lit: 2.8.0 transitivePeerDependencies: @@ -4575,54 +4496,52 @@ snapshots: '@pushrocks/early': 4.0.3 '@pushrocks/smartcli': 4.0.6 '@pushrocks/smartdelay': 3.0.1 - '@pushrocks/smartfile': 10.0.7 + '@pushrocks/smartfile': 10.0.26 '@pushrocks/smartlog': 3.0.2 '@pushrocks/smartpath': 5.0.5 '@pushrocks/smartpromise': 4.0.2 - typescript: 5.1.3 - transitivePeerDependencies: - - supports-color + typescript: 5.8.2 '@gitzone/tsbundle@2.0.8': dependencies: '@pushrocks/early': 4.0.3 '@pushrocks/smartcli': 4.0.6 - '@pushrocks/smartfile': 10.0.7 + '@pushrocks/smartfile': 10.0.26 '@pushrocks/smartlog': 3.0.2 - '@pushrocks/smartlog-destination-local': 9.0.0 + '@pushrocks/smartlog-destination-local': 9.0.1 '@pushrocks/smartpath': 5.0.5 '@pushrocks/smartpromise': 4.0.2 '@pushrocks/smartspawn': 3.0.2 - '@types/html-minifier': 4.0.2 + '@types/html-minifier': 4.0.5 esbuild: 0.17.19 html-minifier: 4.0.0 - typescript: 5.1.3 + typescript: 5.8.2 transitivePeerDependencies: - supports-color '@gitzone/tsrun@1.2.44(@types/node@22.13.9)': dependencies: - '@push.rocks/smartfile': 10.0.28 - '@push.rocks/smartshell': 3.0.3 - ts-node: 10.9.1(@types/node@22.13.9)(typescript@5.1.6) - typescript: 5.1.6 + '@push.rocks/smartfile': 10.0.41 + '@push.rocks/smartshell': 3.2.3 + ts-node: 10.9.2(@types/node@22.13.9)(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' - '@types/node' - '@gitzone/tstest@1.0.77(@aws-sdk/credential-providers@3.758.0)(@types/node@22.13.9)(socks@2.8.4)': + '@gitzone/tstest@1.0.77(@aws-sdk/credential-providers@3.758.0)(@types/node@22.13.9)(socks@2.8.4)(typescript@5.8.2)': dependencies: '@apiglobal/typedserver': 2.0.65 '@gitzone/tsbundle': 2.0.8 '@gitzone/tsrun': 1.2.44(@types/node@22.13.9) - '@push.rocks/consolecolor': 2.0.1 - '@push.rocks/smartbrowser': 2.0.5 + '@push.rocks/consolecolor': 2.0.2 + '@push.rocks/smartbrowser': 2.0.8(typescript@5.8.2) '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartfile': 10.0.28 - '@push.rocks/smartlog': 3.0.3 + '@push.rocks/smartfile': 10.0.41 + '@push.rocks/smartlog': 3.0.7 '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/smartshell': 3.0.3 + '@push.rocks/smartshell': 3.2.3 '@push.rocks/tapbundle': 5.5.6(@aws-sdk/credential-providers@3.758.0)(socks@2.8.4) figures: 5.0.0 transitivePeerDependencies: @@ -4632,14 +4551,15 @@ snapshots: - '@swc/wasm' - '@types/node' - aws-crt + - bare-buffer - bufferutil - - encoding - gcp-metadata - kerberos - mongodb-client-encryption - snappy - socks - supports-color + - typescript - utf-8-validate '@hapi/bourne@3.0.0': {} @@ -4670,14 +4590,14 @@ snapshots: '@types/yargs': 17.0.33 chalk: 4.1.2 - '@jridgewell/resolve-uri@3.1.1': {} + '@jridgewell/resolve-uri@3.1.2': {} - '@jridgewell/sourcemap-codec@1.4.15': {} + '@jridgewell/sourcemap-codec@1.5.0': {} '@jridgewell/trace-mapping@0.3.9': dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 '@koa/router@9.4.0': dependencies: @@ -4689,15 +4609,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@leichtgewicht/ip-codec@2.0.4': {} - - '@lit-labs/ssr-dom-shim@1.1.1': {} + '@leichtgewicht/ip-codec@2.0.5': {} '@lit-labs/ssr-dom-shim@1.3.0': {} '@lit/reactive-element@1.6.3': dependencies: - '@lit-labs/ssr-dom-shim': 1.1.1 + '@lit-labs/ssr-dom-shim': 1.3.0 '@lit/reactive-element@2.0.4': dependencies: @@ -4754,12 +4672,29 @@ snapshots: - supports-color - utf-8-validate + '@pdf-lib/standard-fonts@1.0.0': + dependencies: + pako: 1.0.11 + + '@pdf-lib/upng@1.0.1': + dependencies: + pako: 1.0.11 + '@pkgjs/parseargs@0.11.0': optional: true - '@push.rocks/consolecolor@2.0.1': + '@puppeteer/browsers@2.7.1': dependencies: - ansi-256-colors: 1.1.0 + debug: 4.4.0 + extract-zip: 2.0.1 + progress: 2.0.3 + proxy-agent: 6.5.0 + semver: 7.7.1 + tar-fs: 3.0.8 + yargs: 17.7.2 + transitivePeerDependencies: + - bare-buffer + - supports-color '@push.rocks/consolecolor@2.0.2': dependencies: @@ -4767,17 +4702,6 @@ snapshots: '@push.rocks/isounique@1.0.5': {} - '@push.rocks/lik@6.0.3': - dependencies: - '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartmatch': 2.0.0 - '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/smartrx': 3.0.6 - '@push.rocks/smarttime': 4.0.4 - '@types/minimatch': 5.1.2 - '@types/symbol-tree': 3.2.2 - symbol-tree: 3.2.4 - '@push.rocks/lik@6.1.0': dependencies: '@push.rocks/smartdelay': 3.0.5 @@ -4809,16 +4733,17 @@ snapshots: '@push.rocks/smartlog': 3.0.7 '@push.rocks/smartpath': 5.0.18 - '@push.rocks/smartbrowser@2.0.5': + '@push.rocks/smartbrowser@2.0.8(typescript@5.8.2)': dependencies: - '@pushrocks/smartdelay': 2.0.13 - '@pushrocks/smartpdf': 3.0.15 - '@pushrocks/smartpuppeteer': 2.0.2 - '@pushrocks/smartunique': 3.0.3 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartpdf': 3.2.2(typescript@5.8.2) + '@push.rocks/smartpuppeteer': 2.0.5(typescript@5.8.2) + '@push.rocks/smartunique': 3.0.9 transitivePeerDependencies: + - bare-buffer - bufferutil - - encoding - supports-color + - typescript - utf-8-validate '@push.rocks/smartbucket@3.3.7': @@ -4885,7 +4810,7 @@ snapshots: '@push.rocks/smartpromise': 4.2.3 tree-kill: 1.2.2 - '@push.rocks/smartexpect@1.4.0': + '@push.rocks/smartexpect@1.5.0': dependencies: '@push.rocks/smartdelay': 3.0.5 '@push.rocks/smartpromise': 4.2.3 @@ -4893,23 +4818,23 @@ snapshots: '@push.rocks/smartfile-interfaces@1.0.7': {} - '@push.rocks/smartfile@10.0.28': + '@push.rocks/smartfile@10.0.41': dependencies: - '@push.rocks/lik': 6.0.3 + '@push.rocks/lik': 6.1.0 '@push.rocks/smartdelay': 3.0.5 '@push.rocks/smartfile-interfaces': 1.0.7 - '@push.rocks/smarthash': 3.0.2 - '@push.rocks/smartjson': 5.0.6 + '@push.rocks/smarthash': 3.0.4 + '@push.rocks/smartjson': 5.0.20 '@push.rocks/smartmime': 1.0.6 - '@push.rocks/smartpath': 5.0.11 + '@push.rocks/smartpath': 5.0.18 '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/smartrequest': 2.0.18 - '@push.rocks/smartstream': 2.0.4 - '@types/fs-extra': 11.0.1 + '@push.rocks/smartrequest': 2.0.23 + '@push.rocks/smartstream': 2.0.8 + '@types/fs-extra': 11.0.4 '@types/glob': 8.1.0 - '@types/js-yaml': 4.0.5 - fs-extra: 11.1.1 - glob: 10.3.3 + '@types/js-yaml': 4.0.9 + fs-extra: 11.3.0 + glob: 10.4.5 js-yaml: 4.1.0 '@push.rocks/smartfile@11.2.0': @@ -4936,13 +4861,6 @@ snapshots: '@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartrequest': 2.0.23 - '@push.rocks/smarthash@3.0.2': - dependencies: - '@pushrocks/smartjson': 5.0.6 - '@pushrocks/smartpromise': 3.1.10 - '@types/through2': 2.0.38 - through2: 4.0.2 - '@push.rocks/smarthash@3.0.4': dependencies: '@push.rocks/smartjson': 5.0.20 @@ -4957,28 +4875,11 @@ snapshots: fast-json-stable-stringify: 2.1.0 lodash.clonedeep: 4.5.0 - '@push.rocks/smartjson@5.0.6': - dependencies: - '@pushrocks/smartstring': 4.0.7 - '@types/buffer-json': 2.0.1 - buffer-json: 2.0.0 - fast-json-stable-stringify: 2.1.0 - lodash.clonedeep: 4.5.0 - - '@push.rocks/smartlog-interfaces@3.0.0': - dependencies: - '@apiglobal/typedrequest-interfaces': 2.0.1 - '@push.rocks/smartlog-interfaces@3.0.2': dependencies: '@api.global/typedrequest-interfaces': 2.0.2 '@tsclass/tsclass': 4.4.0 - '@push.rocks/smartlog@3.0.3': - dependencies: - '@push.rocks/isounique': 1.0.5 - '@push.rocks/smartlog-interfaces': 3.0.0 - '@push.rocks/smartlog@3.0.7': dependencies: '@push.rocks/isounique': 1.0.5 @@ -4990,7 +4891,7 @@ snapshots: '@push.rocks/smartmime@1.0.6': dependencies: - '@types/mime-types': 2.1.1 + '@types/mime-types': 2.1.4 mime-types: 2.1.35 '@push.rocks/smartmime@2.0.4': @@ -5017,18 +4918,54 @@ snapshots: - socks - supports-color - '@push.rocks/smartpath@5.0.11': {} + '@push.rocks/smartnetwork@3.0.2': + dependencies: + '@pushrocks/smartping': 1.0.8 + '@pushrocks/smartpromise': 3.1.10 + '@pushrocks/smartstring': 4.0.7 + '@types/default-gateway': 3.0.1 + isopen: 1.3.0 + public-ip: 6.0.2 + systeminformation: 5.25.11 '@push.rocks/smartpath@5.0.18': {} + '@push.rocks/smartpdf@3.2.2(typescript@5.8.2)': + dependencies: + '@push.rocks/smartbuffer': 3.0.4 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartfile': 11.2.0 + '@push.rocks/smartnetwork': 3.0.2 + '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartpuppeteer': 2.0.5(typescript@5.8.2) + '@push.rocks/smartunique': 3.0.9 + '@tsclass/tsclass': 4.4.0 + '@types/express': 5.0.0 + express: 4.21.2 + pdf-lib: 1.17.1 + pdf2json: 3.1.5 + transitivePeerDependencies: + - bare-buffer + - bufferutil + - supports-color + - typescript + - utf-8-validate + '@push.rocks/smartpromise@4.2.3': {} - '@push.rocks/smartrequest@2.0.18': + '@push.rocks/smartpuppeteer@2.0.5(typescript@5.8.2)': dependencies: - '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/smarturl': 3.0.7 - agentkeepalive: 4.5.0 - form-data: 4.0.0 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartshell': 3.2.3 + puppeteer: 24.3.1(typescript@5.8.2) + tree-kill: 1.2.2 + transitivePeerDependencies: + - bare-buffer + - bufferutil + - supports-color + - typescript + - utf-8-validate '@push.rocks/smartrequest@2.0.23': dependencies: @@ -5037,11 +4974,6 @@ snapshots: agentkeepalive: 4.6.0 form-data: 4.0.2 - '@push.rocks/smartrx@3.0.6': - dependencies: - '@push.rocks/smartpromise': 4.2.3 - rxjs: 7.8.1 - '@push.rocks/smartrx@3.0.7': dependencies: '@push.rocks/smartpromise': 4.2.3 @@ -5059,15 +4991,6 @@ snapshots: - aws-crt - supports-color - '@push.rocks/smartshell@3.0.3': - dependencies: - '@pushrocks/smartdelay': 3.0.1 - '@pushrocks/smartexit': 1.0.20 - '@pushrocks/smartpromise': 4.0.2 - '@types/which': 3.0.0 - tree-kill: 1.2.2 - which: 3.0.1 - '@push.rocks/smartshell@3.2.3': dependencies: '@push.rocks/smartdelay': 3.0.5 @@ -5077,12 +5000,12 @@ snapshots: tree-kill: 1.2.2 which: 5.0.0 - '@push.rocks/smartstream@2.0.4': + '@push.rocks/smartstream@2.0.8': dependencies: '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/smartrx': 3.0.6 - '@types/from2': 2.3.2 - '@types/through2': 2.0.38 + '@push.rocks/smartrx': 3.0.7 + '@types/from2': 2.3.5 + '@types/through2': 2.0.41 from2: 2.3.0 through2: 4.0.2 @@ -5104,16 +5027,6 @@ snapshots: strip-indent: 4.0.0 url: 0.11.4 - '@push.rocks/smarttime@4.0.4': - dependencies: - '@push.rocks/lik': 6.0.3 - '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartpromise': 4.2.3 - croner: 5.7.0 - dayjs: 1.11.9 - is-nan: 1.3.2 - pretty-ms: 8.0.0 - '@push.rocks/smarttime@4.1.1': dependencies: '@push.rocks/lik': 6.1.0 @@ -5131,8 +5044,6 @@ snapshots: nanoid: 4.0.2 uuid: 9.0.1 - '@push.rocks/smarturl@3.0.7': {} - '@push.rocks/smarturl@3.1.0': {} '@push.rocks/tapbundle@5.5.6(@aws-sdk/credential-providers@3.758.0)(socks@2.8.4)': @@ -5143,7 +5054,7 @@ snapshots: '@push.rocks/smartcrypto': 2.0.4 '@push.rocks/smartdelay': 3.0.5 '@push.rocks/smartenv': 5.0.12 - '@push.rocks/smartexpect': 1.4.0 + '@push.rocks/smartexpect': 1.5.0 '@push.rocks/smartfile': 11.2.0 '@push.rocks/smartjson': 5.0.20 '@push.rocks/smartmongo': 2.0.10(@aws-sdk/credential-providers@3.758.0)(socks@2.8.4) @@ -5227,16 +5138,6 @@ snapshots: minimatch: 3.1.2 symbol-tree: 3.2.4 - '@pushrocks/lik@4.0.22': - dependencies: - '@pushrocks/smartdelay': 2.0.13 - '@pushrocks/smartmatch': 1.0.7 - '@pushrocks/smartpromise': 3.1.10 - '@pushrocks/smartrx': 2.0.27 - '@pushrocks/smarttime': 3.0.50 - '@types/minimatch': 3.0.5 - symbol-tree: 3.2.4 - '@pushrocks/lik@5.0.7': dependencies: '@pushrocks/smartdelay': 2.0.13 @@ -5255,7 +5156,7 @@ snapshots: '@pushrocks/smartrx': 3.0.2 '@pushrocks/smarttime': 4.0.1 '@types/minimatch': 5.1.2 - '@types/symbol-tree': 3.2.2 + '@types/symbol-tree': 3.2.5 symbol-tree: 3.2.4 '@pushrocks/smartcache@1.0.16': @@ -5271,8 +5172,8 @@ snapshots: '@pushrocks/lik': 3.0.19 '@pushrocks/smartpromise': 3.1.10 '@pushrocks/smartrx': 2.0.27 - '@types/chokidar': 2.1.3 - chokidar: 3.5.3 + '@types/chokidar': 2.1.7 + chokidar: 3.6.0 '@pushrocks/smartcli@4.0.6': dependencies: @@ -5300,11 +5201,6 @@ snapshots: clean-stack: 1.3.0 make-error-cause: 2.3.0 - '@pushrocks/smartexit@1.0.20': - dependencies: - '@pushrocks/lik': 4.0.22 - '@pushrocks/smartdelay': 2.0.13 - '@pushrocks/smartexpress@4.0.35': dependencies: '@apiglobal/typedrequest': 2.0.12 @@ -5321,14 +5217,14 @@ snapshots: '@pushrocks/smartrequest': 2.0.15 '@pushrocks/smartsitemap': 2.0.1 '@pushrocks/smarttime': 4.0.1 - '@tsclass/tsclass': 4.0.42 - '@types/compression': 1.7.2 - '@types/cors': 2.8.13 - '@types/express': 4.17.17 - '@types/finalhandler': 1.2.0 - body-parser: 1.20.2 + '@tsclass/tsclass': 4.4.0 + '@types/compression': 1.7.5 + '@types/cors': 2.8.17 + '@types/express': 4.17.21 + '@types/finalhandler': 1.2.3 + body-parser: 1.20.3 cors: 2.8.5 - express: 4.18.2 + express: 4.21.2 express-force-ssl: 0.3.2 transitivePeerDependencies: - supports-color @@ -5354,36 +5250,12 @@ snapshots: '@pushrocks/smartrequest': 2.0.15 '@pushrocks/smartstream': 2.0.3 '@pushrocks/streamfunction': 4.0.4 - '@types/fs-extra': 11.0.1 + '@types/fs-extra': 11.0.4 '@types/glob': 8.1.0 - '@types/js-yaml': 4.0.5 - fs-extra: 11.1.1 - glob: 10.3.3 + '@types/js-yaml': 4.0.9 + fs-extra: 11.3.0 + glob: 10.4.5 js-yaml: 4.1.0 - transitivePeerDependencies: - - supports-color - - '@pushrocks/smartfile@10.0.7': - dependencies: - '@pushrocks/lik': 6.0.2 - '@pushrocks/smartdelay': 2.0.13 - '@pushrocks/smartfile-interfaces': 1.0.7 - '@pushrocks/smarthash': 3.0.2 - '@pushrocks/smartjson': 5.0.6 - '@pushrocks/smartmime': 1.0.5 - '@pushrocks/smartpath': 5.0.5 - '@pushrocks/smartpromise': 3.1.10 - '@pushrocks/smartrequest': 2.0.15 - '@pushrocks/smartstream': 2.0.3 - '@pushrocks/streamfunction': 4.0.4 - '@types/fs-extra': 11.0.1 - '@types/glob': 8.1.0 - '@types/js-yaml': 4.0.5 - fs-extra: 11.1.1 - glob: 8.1.0 - js-yaml: 4.1.0 - transitivePeerDependencies: - - supports-color '@pushrocks/smartfile@9.0.6': dependencies: @@ -5414,7 +5286,7 @@ snapshots: dependencies: '@pushrocks/smartjson': 5.0.6 '@pushrocks/smartpromise': 3.1.10 - '@types/through2': 2.0.38 + '@types/through2': 2.0.41 through2: 4.0.2 '@pushrocks/smartjson@4.0.6': @@ -5427,8 +5299,8 @@ snapshots: '@pushrocks/smartjson@5.0.6': dependencies: - '@pushrocks/smartstring': 4.0.5 - '@types/buffer-json': 2.0.1 + '@pushrocks/smartstring': 4.0.7 + '@types/buffer-json': 2.0.3 buffer-json: 2.0.0 fast-json-stable-stringify: 2.1.0 lodash.clonedeep: 4.5.0 @@ -5437,11 +5309,11 @@ snapshots: dependencies: '@pushrocks/smartlog-interfaces': 2.0.23 - '@pushrocks/smartlog-destination-local@9.0.0': + '@pushrocks/smartlog-destination-local@9.0.1': dependencies: '@pushrocks/consolecolor': 2.0.1 '@pushrocks/smartlog-interfaces': 3.0.0 - '@pushrocks/smartpromise': 3.1.10 + '@pushrocks/smartpromise': 4.0.2 '@pushrocks/smartlog-interfaces@2.0.23': dependencies: @@ -5470,19 +5342,9 @@ snapshots: '@pushrocks/smartmime@1.0.5': dependencies: - '@types/mime-types': 2.1.1 + '@types/mime-types': 2.1.4 mime-types: 2.1.35 - '@pushrocks/smartnetwork@3.0.2': - dependencies: - '@pushrocks/smartping': 1.0.8 - '@pushrocks/smartpromise': 3.1.10 - '@pushrocks/smartstring': 4.0.7 - '@types/default-gateway': 3.0.1 - isopen: 1.3.0 - public-ip: 6.0.1 - systeminformation: 5.18.15 - '@pushrocks/smartopen@2.0.0': dependencies: open: 8.4.2 @@ -5497,47 +5359,15 @@ snapshots: '@pushrocks/smartpath@5.0.5': {} - '@pushrocks/smartpdf@3.0.15': - dependencies: - '@pushrocks/smartdelay': 2.0.13 - '@pushrocks/smartfile': 10.0.26 - '@pushrocks/smartnetwork': 3.0.2 - '@pushrocks/smartpath': 5.0.5 - '@pushrocks/smartpromise': 3.1.10 - '@pushrocks/smartpuppeteer': 2.0.2 - '@pushrocks/smartunique': 3.0.3 - '@tsclass/tsclass': 4.0.42 - '@types/express': 4.17.17 - express: 4.18.2 - pdf-merger-js: 3.4.0 - pdf2json: 2.1.0 - transitivePeerDependencies: - - bufferutil - - encoding - - supports-color - - utf-8-validate - '@pushrocks/smartping@1.0.8': dependencies: - '@types/ping': 0.4.1 + '@types/ping': 0.4.4 ping: 0.4.4 '@pushrocks/smartpromise@3.1.10': {} '@pushrocks/smartpromise@4.0.2': {} - '@pushrocks/smartpuppeteer@2.0.2': - dependencies: - '@pushrocks/smartdelay': 2.0.13 - '@pushrocks/smartshell': 2.0.30 - puppeteer: 15.5.0 - tree-kill: 1.2.2 - transitivePeerDependencies: - - bufferutil - - encoding - - supports-color - - utf-8-validate - '@pushrocks/smartrequest@1.1.56': dependencies: '@pushrocks/smartpromise': 3.1.10 @@ -5549,29 +5379,18 @@ snapshots: dependencies: '@pushrocks/smartpromise': 4.0.2 '@pushrocks/smarturl': 3.0.6 - agentkeepalive: 4.3.0 - form-data: 4.0.0 - transitivePeerDependencies: - - supports-color + agentkeepalive: 4.6.0 + form-data: 4.0.2 '@pushrocks/smartrx@2.0.27': dependencies: '@pushrocks/smartpromise': 3.1.10 - rxjs: 7.8.1 + rxjs: 7.8.2 '@pushrocks/smartrx@3.0.2': dependencies: '@pushrocks/smartpromise': 4.0.2 - rxjs: 7.8.1 - - '@pushrocks/smartshell@2.0.30': - dependencies: - '@pushrocks/smartdelay': 2.0.13 - '@pushrocks/smartexit': 1.0.20 - '@pushrocks/smartpromise': 3.1.10 - '@types/which': 2.0.2 - tree-kill: 1.2.2 - which: 2.0.2 + rxjs: 7.8.2 '@pushrocks/smartsitemap@2.0.1': dependencies: @@ -5619,36 +5438,23 @@ snapshots: dependencies: '@pushrocks/smartpromise': 3.1.10 '@pushrocks/smartrx': 2.0.27 - '@types/from2': 2.3.2 - '@types/through2': 2.0.38 + '@types/from2': 2.3.5 + '@types/through2': 2.0.41 from2: 2.3.0 through2: 4.0.2 - '@pushrocks/smartstring@4.0.5': - dependencies: - '@pushrocks/isounique': 1.0.5 - '@pushrocks/smartenv': 5.0.5 - '@types/randomatic': 3.1.3 - buffer: 6.0.3 - crypto-random-string: 4.0.0 - js-base64: 3.7.5 - normalize-newline: 4.1.0 - randomatic: 3.1.1 - strip-indent: 4.0.0 - url: 0.11.1 - '@pushrocks/smartstring@4.0.7': dependencies: '@pushrocks/isounique': 1.0.5 '@pushrocks/smartenv': 5.0.5 - '@types/randomatic': 3.1.3 + '@types/randomatic': 3.1.5 buffer: 6.0.3 crypto-random-string: 5.0.0 - js-base64: 3.7.5 + js-base64: 3.7.7 normalize-newline: 4.1.0 randomatic: 3.1.1 strip-indent: 4.0.0 - url: 0.11.1 + url: 0.11.4 '@pushrocks/smarttime@3.0.50': dependencies: @@ -5656,7 +5462,7 @@ snapshots: '@pushrocks/smartdelay': 2.0.13 '@pushrocks/smartpromise': 3.1.10 croner: 4.4.1 - dayjs: 1.11.9 + dayjs: 1.11.13 is-nan: 1.3.2 pretty-ms: 7.0.1 @@ -5666,15 +5472,15 @@ snapshots: '@pushrocks/smartdelay': 2.0.13 '@pushrocks/smartpromise': 3.1.10 croner: 5.7.0 - dayjs: 1.11.8 + dayjs: 1.11.13 is-nan: 1.3.2 pretty-ms: 8.0.0 '@pushrocks/smartunique@3.0.3': dependencies: '@types/shortid': 0.0.29 - '@types/uuid': 7.0.5 - shortid: 2.2.16 + '@types/uuid': 7.0.8 + shortid: 2.2.17 uuid: 7.0.3 '@pushrocks/smarturl@2.0.1': {} @@ -5687,21 +5493,21 @@ snapshots: '@pushrocks/smartyaml@2.0.5': dependencies: - '@types/js-yaml': 3.12.7 + '@types/js-yaml': 3.12.10 js-yaml: 3.14.1 '@pushrocks/streamfunction@4.0.4': dependencies: '@pushrocks/smartpromise': 3.1.10 '@pushrocks/smartrx': 2.0.27 - '@types/from2': 2.3.2 - '@types/through2': 2.0.38 + '@types/from2': 2.3.5 + '@types/through2': 2.0.41 from2: 2.3.0 through2: 4.0.2 '@pushrocks/webrequest@3.0.28': dependencies: - '@adobe/fetch': 4.0.13 + '@adobe/fetch': 4.2.0 '@apiglobal/typedserver': 2.0.65 '@pushrocks/smartdelay': 3.0.1 '@pushrocks/smartenv': 5.0.5 @@ -5724,10 +5530,6 @@ snapshots: fake-indexeddb: 4.0.2 idb: 7.1.1 - '@rkusa/linebreak@1.0.0': - dependencies: - unicode-trie: 0.3.1 - '@sec-ant/readable-stream@0.4.1': {} '@sinclair/typebox@0.27.8': {} @@ -6065,7 +5867,7 @@ snapshots: '@smithy/types': 4.1.0 tslib: 2.8.1 - '@socket.io/component-emitter@3.1.0': {} + '@socket.io/component-emitter@3.1.2': {} '@szmarczak/http-timer@5.0.1': dependencies: @@ -6075,19 +5877,17 @@ snapshots: '@tokenizer/token@0.3.0': {} + '@tootallnate/quickjs-emscripten@0.23.0': {} + '@tsclass/tsclass@3.0.48': dependencies: type-fest: 2.19.0 - '@tsclass/tsclass@4.0.42': - dependencies: - type-fest: 3.13.1 - '@tsclass/tsclass@4.4.0': dependencies: type-fest: 4.37.0 - '@tsconfig/node10@1.0.9': {} + '@tsconfig/node10@1.0.11': {} '@tsconfig/node12@1.0.11': {} @@ -6101,18 +5901,11 @@ snapshots: '@types/babel__code-frame@7.0.6': {} - '@types/body-parser@1.19.2': - dependencies: - '@types/connect': 3.4.35 - '@types/node': 22.13.9 - '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 '@types/node': 22.13.9 - '@types/buffer-json@2.0.1': {} - '@types/buffer-json@2.0.3': {} '@types/chai-dom@1.11.3': @@ -6125,11 +5918,11 @@ snapshots: dependencies: '@types/deep-eql': 4.0.2 - '@types/chokidar@2.1.3': + '@types/chokidar@2.1.7': dependencies: - chokidar: 3.5.3 + chokidar: 3.6.0 - '@types/clean-css@4.2.6': + '@types/clean-css@4.2.11': dependencies: '@types/node': 22.13.9 source-map: 0.6.1 @@ -6139,13 +5932,9 @@ snapshots: '@types/node': 22.13.9 '@types/qs': 6.9.18 - '@types/compression@1.7.2': + '@types/compression@1.7.5': dependencies: - '@types/express': 4.17.17 - - '@types/connect@3.4.35': - dependencies: - '@types/node': 22.13.9 + '@types/express': 4.17.21 '@types/connect@3.4.38': dependencies: @@ -6164,7 +5953,7 @@ snapshots: '@types/keygrip': 1.0.6 '@types/node': 22.13.9 - '@types/cors@2.8.13': + '@types/cors@2.8.17': dependencies: '@types/node': 22.13.9 @@ -6174,12 +5963,12 @@ snapshots: '@types/default-gateway@3.0.1': {} - '@types/express-serve-static-core@4.17.35': + '@types/express-serve-static-core@4.19.6': dependencies: '@types/node': 22.13.9 - '@types/qs': 6.9.7 - '@types/range-parser': 1.2.4 - '@types/send': 0.17.1 + '@types/qs': 6.9.18 + '@types/range-parser': 1.2.7 + '@types/send': 0.17.4 '@types/express-serve-static-core@5.0.6': dependencies: @@ -6188,12 +5977,12 @@ snapshots: '@types/range-parser': 1.2.7 '@types/send': 0.17.4 - '@types/express@4.17.17': + '@types/express@4.17.21': dependencies: - '@types/body-parser': 1.19.2 - '@types/express-serve-static-core': 4.17.35 - '@types/qs': 6.9.7 - '@types/serve-static': 1.15.2 + '@types/body-parser': 1.19.5 + '@types/express-serve-static-core': 4.19.6 + '@types/qs': 6.9.18 + '@types/serve-static': 1.15.7 '@types/express@5.0.0': dependencies: @@ -6206,19 +5995,14 @@ snapshots: dependencies: fast-json-stable-stringify: 2.1.0 - '@types/finalhandler@1.2.0': + '@types/finalhandler@1.2.3': dependencies: '@types/node': 22.13.9 - '@types/from2@2.3.2': + '@types/from2@2.3.5': dependencies: '@types/node': 22.13.9 - '@types/fs-extra@11.0.1': - dependencies: - '@types/jsonfile': 6.1.1 - '@types/node': 22.13.9 - '@types/fs-extra@11.0.4': dependencies: '@types/jsonfile': 6.1.4 @@ -6238,17 +6022,15 @@ snapshots: '@types/minimatch': 5.1.2 '@types/node': 22.13.9 - '@types/html-minifier@4.0.2': + '@types/html-minifier@4.0.5': dependencies: - '@types/clean-css': 4.2.6 - '@types/relateurl': 0.2.29 - '@types/uglify-js': 3.17.1 + '@types/clean-css': 4.2.11 + '@types/relateurl': 0.2.33 + '@types/uglify-js': 3.17.5 '@types/http-assert@1.5.6': {} - '@types/http-cache-semantics@4.0.1': {} - - '@types/http-errors@2.0.1': {} + '@types/http-cache-semantics@4.0.4': {} '@types/http-errors@2.0.4': {} @@ -6262,16 +6044,10 @@ snapshots: dependencies: '@types/istanbul-lib-report': 3.0.3 - '@types/js-yaml@3.12.7': {} - - '@types/js-yaml@4.0.5': {} + '@types/js-yaml@3.12.10': {} '@types/js-yaml@4.0.9': {} - '@types/jsonfile@6.1.1': - dependencies: - '@types/node': 22.13.9 - '@types/jsonfile@6.1.4': dependencies: '@types/node': 22.13.9 @@ -6293,16 +6069,10 @@ snapshots: '@types/koa-compose': 3.2.8 '@types/node': 22.13.9 - '@types/mime-types@2.1.1': {} - '@types/mime-types@2.1.4': {} - '@types/mime@1.3.2': {} - '@types/mime@1.3.5': {} - '@types/mime@3.0.1': {} - '@types/minimatch@3.0.5': {} '@types/minimatch@5.1.2': {} @@ -6317,42 +6087,25 @@ snapshots: '@types/parse5@6.0.3': {} - '@types/ping@0.4.1': {} + '@types/ping@0.4.4': {} '@types/qs@6.9.18': {} - '@types/qs@6.9.7': {} - - '@types/randomatic@3.1.3': {} - '@types/randomatic@3.1.5': {} - '@types/range-parser@1.2.4': {} - '@types/range-parser@1.2.7': {} - '@types/relateurl@0.2.29': {} + '@types/relateurl@0.2.33': {} '@types/s3rver@3.7.4': dependencies: '@types/node': 22.13.9 - '@types/send@0.17.1': - dependencies: - '@types/mime': 1.3.2 - '@types/node': 22.13.9 - '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 '@types/node': 22.13.9 - '@types/serve-static@1.15.2': - dependencies: - '@types/http-errors': 2.0.1 - '@types/mime': 3.0.1 - '@types/node': 22.13.9 - '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 @@ -6374,29 +6127,21 @@ snapshots: '@types/stack-utils@2.0.3': {} - '@types/symbol-tree@3.2.2': {} - '@types/symbol-tree@3.2.5': {} - '@types/through2@2.0.38': - dependencies: - '@types/node': 22.13.9 - '@types/through2@2.0.41': dependencies: '@types/node': 22.13.9 '@types/triple-beam@1.3.5': {} - '@types/trusted-types@2.0.3': {} - '@types/trusted-types@2.0.7': {} - '@types/uglify-js@3.17.1': + '@types/uglify-js@3.17.5': dependencies: source-map: 0.6.1 - '@types/uuid@7.0.5': {} + '@types/uuid@7.0.8': {} '@types/uuid@9.0.8': {} @@ -6411,10 +6156,6 @@ snapshots: '@types/node': 22.13.9 '@types/webidl-conversions': 7.0.3 - '@types/which@2.0.2': {} - - '@types/which@3.0.0': {} - '@types/which@3.0.4': {} '@types/ws@7.4.7': @@ -6427,7 +6168,7 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@types/yauzl@2.10.0': + '@types/yauzl@2.10.3': dependencies: '@types/node': 22.13.9 optional: true @@ -6513,27 +6254,19 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-walk@8.2.0: {} + acorn-walk@8.3.4: + dependencies: + acorn: 8.14.0 - acorn@8.10.0: {} + acorn@8.14.0: {} agent-base@6.0.2: dependencies: - debug: 4.3.4 + debug: 4.4.0 transitivePeerDependencies: - supports-color - agentkeepalive@4.3.0: - dependencies: - debug: 4.3.4 - depd: 2.0.0 - humanize-ms: 1.2.1 - transitivePeerDependencies: - - supports-color - - agentkeepalive@4.5.0: - dependencies: - humanize-ms: 1.2.1 + agent-base@7.1.3: {} agentkeepalive@4.6.0: dependencies: @@ -6552,7 +6285,7 @@ snapshots: ansi-regex@5.0.1: {} - ansi-regex@6.0.1: {} + ansi-regex@6.1.0: {} ansi-styles@3.2.1: dependencies: @@ -6583,6 +6316,10 @@ snapshots: array-union@2.1.0: {} + ast-types@0.13.4: + dependencies: + tslib: 2.8.1 + astral-regex@2.0.0: {} async-mutex@0.3.2: @@ -6595,15 +6332,46 @@ snapshots: axe-core@4.10.2: {} + b4a@1.6.7: {} + balanced-match@1.0.2: {} + bare-events@2.5.4: + optional: true + + bare-fs@4.0.1: + dependencies: + bare-events: 2.5.4 + bare-path: 3.0.0 + bare-stream: 2.6.5(bare-events@2.5.4) + transitivePeerDependencies: + - bare-buffer + optional: true + + bare-os@3.5.1: + optional: true + + bare-path@3.0.0: + dependencies: + bare-os: 3.5.1 + optional: true + + bare-stream@2.6.5(bare-events@2.5.4): + dependencies: + streamx: 2.22.0 + optionalDependencies: + bare-events: 2.5.4 + optional: true + base64-arraybuffer-es6@0.7.0: {} base64-js@1.5.1: {} base64id@2.0.0: {} - binary-extensions@2.2.0: {} + basic-ftp@5.0.5: {} + + binary-extensions@2.3.0: {} bl@4.1.0: dependencies: @@ -6611,7 +6379,7 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 - body-parser@1.20.1: + body-parser@1.20.3: dependencies: bytes: 3.1.2 content-type: 1.0.5 @@ -6621,24 +6389,7 @@ snapshots: http-errors: 2.0.0 iconv-lite: 0.4.24 on-finished: 2.4.1 - qs: 6.11.0 - raw-body: 2.5.1 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - - body-parser@1.20.2: - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.11.0 + qs: 6.13.0 raw-body: 2.5.2 type-is: 1.6.18 unpipe: 1.0.0 @@ -6656,10 +6407,6 @@ snapshots: dependencies: balanced-match: 1.0.2 - braces@3.0.2: - dependencies: - fill-range: 7.0.1 - braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -6697,14 +6444,14 @@ snapshots: cacheable-lookup@7.0.0: {} - cacheable-request@10.2.13: + cacheable-request@10.2.14: dependencies: - '@types/http-cache-semantics': 4.0.1 + '@types/http-cache-semantics': 4.0.4 get-stream: 6.0.1 http-cache-semantics: 4.1.1 - keyv: 4.5.3 + keyv: 4.5.4 mimic-response: 4.0.0 - normalize-url: 8.0.0 + normalize-url: 8.0.1 responselike: 3.0.0 call-bind-apply-helpers@1.0.2: @@ -6712,10 +6459,12 @@ snapshots: es-errors: 1.3.0 function-bind: 1.1.2 - call-bind@1.0.2: + call-bind@1.0.8: dependencies: - function-bind: 1.1.1 - get-intrinsic: 1.2.1 + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.3.0 + set-function-length: 1.2.2 call-bound@1.0.4: dependencies: @@ -6746,23 +6495,27 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - chokidar@3.5.3: + chokidar@3.6.0: dependencies: anymatch: 3.1.3 - braces: 3.0.2 + braces: 3.0.3 glob-parent: 5.1.2 is-binary-path: 2.1.0 is-glob: 4.0.3 normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 chokidar@4.0.3: dependencies: readdirp: 4.1.2 - chownr@1.1.4: {} + chromium-bidi@2.1.2(devtools-protocol@0.0.1402036): + dependencies: + devtools-protocol: 0.0.1402036 + mitt: 3.0.1 + zod: 3.24.2 ci-info@3.9.0: {} @@ -6780,6 +6533,12 @@ snapshots: dependencies: restore-cursor: 3.1.0 + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + clone@2.1.2: {} co-body@6.2.0: @@ -6843,7 +6602,7 @@ snapshots: cookie@0.4.2: {} - cookie@0.5.0: {} + cookie@0.7.1: {} cookies@0.9.1: dependencies: @@ -6857,6 +6616,15 @@ snapshots: object-assign: 4.1.1 vary: 1.1.2 + cosmiconfig@9.0.0(typescript@5.8.2): + dependencies: + env-paths: 2.2.1 + import-fresh: 3.3.1 + js-yaml: 4.1.0 + parse-json: 5.2.0 + optionalDependencies: + typescript: 5.8.2 + create-require@1.1.1: {} croner@4.4.1: {} @@ -6865,40 +6633,22 @@ snapshots: croner@9.0.0: {} - cross-fetch@3.1.5: - dependencies: - node-fetch: 2.6.7 - transitivePeerDependencies: - - encoding - - cross-spawn@7.0.3: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - cross-spawn@7.0.6: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - crypto-random-string@4.0.0: - dependencies: - type-fest: 1.4.0 - crypto-random-string@5.0.0: dependencies: type-fest: 2.19.0 + data-uri-to-buffer@6.0.2: {} + date-fns@4.1.0: {} dayjs@1.11.13: {} - dayjs@1.11.8: {} - - dayjs@1.11.9: {} - debounce@1.2.1: {} debug@2.6.9: @@ -6909,9 +6659,9 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.3.4: + debug@4.3.7: dependencies: - ms: 2.1.2 + ms: 2.1.3 debug@4.4.0: dependencies: @@ -6929,13 +6679,26 @@ snapshots: defer-to-connect@2.0.1: {} + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + define-lazy-prop@2.0.0: {} - define-properties@1.2.0: + define-properties@1.2.1: dependencies: - has-property-descriptors: 1.0.0 + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 object-keys: 1.1.1 + degenerator@5.0.1: + dependencies: + ast-types: 0.13.4 + escodegen: 2.1.0 + esprima: 4.0.1 + delayed-stream@1.0.0: {} delegates@1.0.0: {} @@ -6948,7 +6711,7 @@ snapshots: destroy@1.2.0: {} - devtools-protocol@0.0.1019158: {} + devtools-protocol@0.0.1402036: {} dicer@0.3.0: dependencies: @@ -6962,13 +6725,13 @@ snapshots: dependencies: path-type: 4.0.0 - dns-packet@5.6.0: + dns-packet@5.6.1: dependencies: - '@leichtgewicht/ip-codec': 2.0.4 + '@leichtgewicht/ip-codec': 2.0.5 dns-socket@4.2.2: dependencies: - dns-packet: 5.6.0 + dns-packet: 5.6.1 domexception@1.0.1: dependencies: @@ -6992,14 +6755,16 @@ snapshots: encodeurl@1.0.2: {} + encodeurl@2.0.0: {} + end-of-stream@1.4.4: dependencies: once: 1.4.0 engine.io-client@6.2.3: dependencies: - '@socket.io/component-emitter': 3.1.0 - debug: 4.3.4 + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.7 engine.io-parser: 5.0.7 ws: 8.2.3 xmlhttprequest-ssl: 2.0.0 @@ -7013,13 +6778,13 @@ snapshots: engine.io@6.2.1: dependencies: '@types/cookie': 0.4.1 - '@types/cors': 2.8.13 + '@types/cors': 2.8.17 '@types/node': 22.13.9 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.4.2 cors: 2.8.5 - debug: 4.3.4 + debug: 4.3.7 engine.io-parser: 5.0.7 ws: 8.2.3 transitivePeerDependencies: @@ -7030,13 +6795,13 @@ snapshots: engine.io@6.3.1: dependencies: '@types/cookie': 0.4.1 - '@types/cors': 2.8.13 + '@types/cors': 2.8.17 '@types/node': 22.13.9 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.4.2 cors: 2.8.5 - debug: 4.3.4 + debug: 4.3.7 engine.io-parser: 5.0.7 ws: 8.11.0 transitivePeerDependencies: @@ -7046,6 +6811,12 @@ snapshots: entities@2.2.0: {} + env-paths@2.2.1: {} + + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 + errorstacks@2.4.1: {} es-define-property@1.0.1: {} @@ -7090,6 +6861,8 @@ snapshots: '@esbuild/win32-ia32': 0.17.19 '@esbuild/win32-x64': 0.17.19 + escalade@3.2.0: {} + escape-html@1.0.3: {} escape-string-regexp@1.0.5: {} @@ -7100,10 +6873,22 @@ snapshots: escape-string-regexp@5.0.0: {} + escodegen@2.1.0: + dependencies: + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionalDependencies: + source-map: 0.6.1 + esm@3.2.25: {} esprima@4.0.1: {} + estraverse@5.3.0: {} + + esutils@2.0.3: {} + etag@1.8.1: {} execa@5.1.1: @@ -7130,34 +6915,34 @@ snapshots: dependencies: lodash.assign: 3.2.0 - express@4.18.2: + express@4.21.2: dependencies: accepts: 1.3.8 array-flatten: 1.1.1 - body-parser: 1.20.1 + body-parser: 1.20.3 content-disposition: 0.5.4 content-type: 1.0.5 - cookie: 0.5.0 + cookie: 0.7.1 cookie-signature: 1.0.6 debug: 2.6.9 depd: 2.0.0 - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 - finalhandler: 1.2.0 + finalhandler: 1.3.1 fresh: 0.5.2 http-errors: 2.0.0 - merge-descriptors: 1.0.1 + merge-descriptors: 1.0.3 methods: 1.1.2 on-finished: 2.4.1 parseurl: 1.3.3 - path-to-regexp: 0.1.7 + path-to-regexp: 0.1.12 proxy-addr: 2.0.7 - qs: 6.11.0 + qs: 6.13.0 range-parser: 1.2.1 safe-buffer: 5.2.1 - send: 0.18.0 - serve-static: 1.15.0 + send: 0.19.0 + serve-static: 1.16.2 setprototypeof: 1.2.0 statuses: 2.0.1 type-is: 1.6.18 @@ -7168,11 +6953,11 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.3.4 + debug: 4.4.0 get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: - '@types/yauzl': 2.10.0 + '@types/yauzl': 2.10.3 transitivePeerDependencies: - supports-color @@ -7184,6 +6969,8 @@ snapshots: fast-deep-equal@3.1.3: {} + fast-fifo@1.3.2: {} + fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -7196,7 +6983,7 @@ snapshots: fast-xml-parser@3.21.1: dependencies: - strnum: 1.0.5 + strnum: 1.1.2 fast-xml-parser@4.4.1: dependencies: @@ -7228,18 +7015,14 @@ snapshots: token-types: 6.0.0 uint8array-extras: 1.4.0 - fill-range@7.0.1: - dependencies: - to-regex-range: 5.0.1 - fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 - finalhandler@1.2.0: + finalhandler@1.3.1: dependencies: debug: 2.6.9 - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 parseurl: 1.3.3 @@ -7267,14 +7050,9 @@ snapshots: foreground-child@2.0.0: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 signal-exit: 3.0.7 - foreground-child@3.1.1: - dependencies: - cross-spawn: 7.0.3 - signal-exit: 4.1.0 - foreground-child@3.3.1: dependencies: cross-spawn: 7.0.6 @@ -7282,12 +7060,6 @@ snapshots: form-data-encoder@2.1.4: {} - form-data@4.0.0: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - form-data@4.0.2: dependencies: asynckit: 0.4.0 @@ -7312,12 +7084,6 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.1 - fs-extra@11.1.1: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.0 - fs-extra@11.3.0: dependencies: graceful-fs: 4.2.11 @@ -7332,19 +7098,12 @@ snapshots: fs.realpath@1.0.0: {} - fsevents@2.3.2: + fsevents@2.3.3: optional: true - function-bind@1.1.1: {} - function-bind@1.1.2: {} - get-intrinsic@1.2.1: - dependencies: - function-bind: 1.1.1 - has: 1.0.3 - has-proto: 1.0.1 - has-symbols: 1.0.3 + get-caller-file@2.0.5: {} get-intrinsic@1.3.0: dependencies: @@ -7368,7 +7127,7 @@ snapshots: get-stream@5.2.0: dependencies: - pump: 3.0.0 + pump: 3.0.2 get-stream@6.0.1: {} @@ -7377,17 +7136,26 @@ snapshots: '@sec-ant/readable-stream': 0.4.1 is-stream: 4.0.1 + get-uri@6.0.4: + dependencies: + basic-ftp: 5.0.5 + data-uri-to-buffer: 6.0.2 + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 - glob@10.3.3: + glob@10.4.5: dependencies: - foreground-child: 3.1.1 - jackspeak: 2.2.3 - minimatch: 9.0.3 - minipass: 7.0.2 - path-scurry: 1.10.1 + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 glob@11.0.1: dependencies: @@ -7407,14 +7175,6 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - glob@8.1.0: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.6 - once: 1.4.0 - globby@11.1.0: dependencies: array-union: 2.1.0 @@ -7431,11 +7191,11 @@ snapshots: '@sindresorhus/is': 5.6.0 '@szmarczak/http-timer': 5.0.1 cacheable-lookup: 7.0.0 - cacheable-request: 10.2.13 + cacheable-request: 10.2.14 decompress-response: 6.0.0 form-data-encoder: 2.1.4 get-stream: 6.0.1 - http2-wrapper: 2.2.0 + http2-wrapper: 2.2.1 lowercase-keys: 3.0.0 p-cancelable: 3.0.0 responselike: 3.0.0 @@ -7446,13 +7206,9 @@ snapshots: has-flag@4.0.0: {} - has-property-descriptors@1.0.0: + has-property-descriptors@1.0.2: dependencies: - get-intrinsic: 1.2.1 - - has-proto@1.0.1: {} - - has-symbols@1.0.3: {} + es-define-property: 1.0.1 has-symbols@1.1.0: {} @@ -7460,10 +7216,6 @@ snapshots: dependencies: has-symbols: 1.1.0 - has@1.0.3: - dependencies: - function-bind: 1.1.1 - hasown@2.0.2: dependencies: function-bind: 1.1.2 @@ -7480,7 +7232,7 @@ snapshots: he: 1.2.0 param-case: 2.1.1 relateurl: 0.2.7 - uglify-js: 3.17.4 + uglify-js: 3.19.3 http-assert@1.5.0: dependencies: @@ -7512,7 +7264,14 @@ snapshots: statuses: 2.0.1 toidentifier: 1.0.1 - http2-wrapper@2.2.0: + http-proxy-agent@7.0.2: + dependencies: + agent-base: 7.1.3 + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + + http2-wrapper@2.2.1: dependencies: quick-lru: 5.1.1 resolve-alpn: 1.2.1 @@ -7520,7 +7279,14 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.4 + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + + https-proxy-agent@7.0.6: + dependencies: + agent-base: 7.1.3 + debug: 4.4.0 transitivePeerDependencies: - supports-color @@ -7542,6 +7308,11 @@ snapshots: ignore@5.3.2: {} + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + indent-string@5.0.0: {} inflation@2.1.0: {} @@ -7573,11 +7344,13 @@ snapshots: ipaddr.js@1.9.1: {} + is-arrayish@0.2.1: {} + is-arrayish@0.3.2: {} is-binary-path@2.1.0: dependencies: - binary-extensions: 2.2.0 + binary-extensions: 2.3.0 is-docker@2.2.1: {} @@ -7606,8 +7379,8 @@ snapshots: is-nan@1.3.2: dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 + call-bind: 1.0.8 + define-properties: 1.2.1 is-number@4.0.0: {} @@ -7659,7 +7432,7 @@ snapshots: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 - jackspeak@2.2.3: + jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: @@ -7706,8 +7479,6 @@ snapshots: graceful-fs: 4.2.11 picomatch: 2.3.1 - js-base64@3.7.5: {} - js-base64@3.7.7: {} js-tokens@4.0.0: {} @@ -7725,13 +7496,15 @@ snapshots: json-buffer@3.0.1: {} + json-parse-even-better-errors@2.3.1: {} + jsonfile@4.0.0: optionalDependencies: graceful-fs: 4.2.11 jsonfile@6.1.0: dependencies: - universalify: 2.0.0 + universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 @@ -7739,7 +7512,7 @@ snapshots: dependencies: tsscmp: 1.0.6 - keyv@4.5.3: + keyv@4.5.4: dependencies: json-buffer: 3.0.1 @@ -7808,9 +7581,11 @@ snapshots: kuler@2.0.0: {} + lines-and-columns@1.2.4: {} + lit-element@3.3.3: dependencies: - '@lit-labs/ssr-dom-shim': 1.1.1 + '@lit-labs/ssr-dom-shim': 1.3.0 '@lit/reactive-element': 1.6.3 lit-html: 2.8.0 @@ -7822,7 +7597,7 @@ snapshots: lit-html@2.8.0: dependencies: - '@types/trusted-types': 2.0.3 + '@types/trusted-types': 2.0.7 lit-html@3.2.1: dependencies: @@ -7905,17 +7680,17 @@ snapshots: lowercase-keys@3.0.0: {} - lru-cache@10.0.1: {} + lru-cache@10.4.3: {} lru-cache@11.0.2: {} - lru-cache@8.0.5: {} + lru-cache@7.18.3: {} - lru-cache@9.1.1: {} + lru-cache@8.0.5: {} make-dir@3.1.0: dependencies: - semver: 6.3.0 + semver: 6.3.1 make-dir@4.0.0: dependencies: @@ -7945,7 +7720,7 @@ snapshots: memory-pager@1.5.0: {} - merge-descriptors@1.0.1: {} + merge-descriptors@1.0.3: {} merge-stream@2.0.0: {} @@ -7984,19 +7759,13 @@ snapshots: dependencies: brace-expansion: 1.1.11 - minimatch@5.1.6: + minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 - minimatch@9.0.3: - dependencies: - brace-expansion: 2.0.1 - - minipass@7.0.2: {} - minipass@7.1.2: {} - mkdirp-classic@0.5.3: {} + mitt@3.0.1: {} mkdirp@1.0.4: {} @@ -8061,20 +7830,18 @@ snapshots: ms@2.0.0: {} - ms@2.1.2: {} - ms@2.1.3: {} nanocolors@0.2.13: {} - nanoid@2.1.11: {} - nanoid@3.3.8: {} nanoid@4.0.2: {} negotiator@0.6.3: {} + netmask@2.0.2: {} + new-find-package-json@2.0.0: dependencies: debug: 4.4.0 @@ -8085,10 +7852,6 @@ snapshots: dependencies: lower-case: 1.1.4 - node-fetch@2.6.7: - dependencies: - whatwg-url: 5.0.0 - node-forge@1.3.1: {} normalize-newline@4.1.0: @@ -8097,7 +7860,7 @@ snapshots: normalize-path@3.0.0: {} - normalize-url@8.0.0: {} + normalize-url@8.0.1: {} npm-run-path@4.0.1: dependencies: @@ -8105,8 +7868,6 @@ snapshots: object-assign@4.1.1: {} - object-inspect@1.12.3: {} - object-inspect@1.13.4: {} object-keys@1.1.1: {} @@ -8137,11 +7898,6 @@ snapshots: is-docker: 2.2.1 is-wsl: 2.2.0 - opentype.js@1.3.4: - dependencies: - string.prototype.codepointat: 0.2.1 - tiny-inflate: 1.0.3 - p-cancelable@3.0.0: {} p-event@4.2.0: @@ -8164,16 +7920,43 @@ snapshots: p-try@2.2.0: {} + pac-proxy-agent@7.2.0: + dependencies: + '@tootallnate/quickjs-emscripten': 0.23.0 + agent-base: 7.1.3 + debug: 4.4.0 + get-uri: 6.0.4 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + pac-resolver: 7.0.1 + socks-proxy-agent: 8.0.5 + transitivePeerDependencies: + - supports-color + + pac-resolver@7.0.1: + dependencies: + degenerator: 5.0.1 + netmask: 2.0.2 + package-json-from-dist@1.0.1: {} - pako@0.2.9: {} - - pako@2.1.0: {} + pako@1.0.11: {} param-case@2.1.1: dependencies: no-case: 2.3.2 + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.26.2 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + parse-ms@2.1.0: {} parse-ms@3.0.0: {} @@ -8192,36 +7975,30 @@ snapshots: path-key@3.1.1: {} - path-scurry@1.10.1: + path-scurry@1.11.1: dependencies: - lru-cache: 10.0.1 - minipass: 7.0.2 + lru-cache: 10.4.3 + minipass: 7.1.2 path-scurry@2.0.0: dependencies: lru-cache: 11.0.2 minipass: 7.1.2 - path-to-regexp@0.1.7: {} + path-to-regexp@0.1.12: {} path-to-regexp@6.3.0: {} path-type@4.0.0: {} - pdf-merger-js@3.4.0: + pdf-lib@1.17.1: dependencies: - pdfjs: 2.5.2 + '@pdf-lib/standard-fonts': 1.0.0 + '@pdf-lib/upng': 1.0.1 + pako: 1.0.11 + tslib: 1.14.1 - pdf2json@2.1.0: {} - - pdfjs@2.5.2: - dependencies: - '@rkusa/linebreak': 1.0.0 - opentype.js: 1.3.4 - pako: 2.1.0 - readable-stream: 3.6.2 - unorm: 1.6.0 - uuid: 8.3.2 + pdf2json@3.1.5: {} peek-readable@5.4.2: {} @@ -8264,53 +8041,69 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 + proxy-agent@6.5.0: + dependencies: + agent-base: 7.1.3 + debug: 4.4.0 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + lru-cache: 7.18.3 + pac-proxy-agent: 7.2.0 + proxy-from-env: 1.1.0 + socks-proxy-agent: 8.0.5 + transitivePeerDependencies: + - supports-color + proxy-from-env@1.1.0: {} - public-ip@6.0.1: + public-ip@6.0.2: dependencies: aggregate-error: 4.0.1 dns-socket: 4.2.2 got: 12.6.1 is-ip: 4.0.0 - pump@3.0.0: + pump@3.0.2: dependencies: end-of-stream: 1.4.4 once: 1.4.0 punycode@1.4.1: {} - punycode@2.3.0: {} - punycode@2.3.1: {} - puppeteer@15.5.0: + puppeteer-core@24.3.1: dependencies: - cross-fetch: 3.1.5 - debug: 4.3.4 - devtools-protocol: 0.0.1019158 - extract-zip: 2.0.1 - https-proxy-agent: 5.0.1 - pkg-dir: 4.2.0 - progress: 2.0.3 - proxy-from-env: 1.1.0 - rimraf: 3.0.2 - tar-fs: 2.1.1 - unbzip2-stream: 1.4.3 - ws: 8.8.0 + '@puppeteer/browsers': 2.7.1 + chromium-bidi: 2.1.2(devtools-protocol@0.0.1402036) + debug: 4.4.0 + devtools-protocol: 0.0.1402036 + typed-query-selector: 2.12.0 + ws: 8.18.1 transitivePeerDependencies: + - bare-buffer - bufferutil - - encoding - supports-color - utf-8-validate - qs@6.11.0: + puppeteer@24.3.1(typescript@5.8.2): dependencies: - side-channel: 1.0.4 + '@puppeteer/browsers': 2.7.1 + chromium-bidi: 2.1.2(devtools-protocol@0.0.1402036) + cosmiconfig: 9.0.0(typescript@5.8.2) + devtools-protocol: 0.0.1402036 + puppeteer-core: 24.3.1 + typed-query-selector: 2.12.0 + transitivePeerDependencies: + - bare-buffer + - bufferutil + - supports-color + - typescript + - utf-8-validate - qs@6.11.2: + qs@6.13.0: dependencies: - side-channel: 1.0.4 + side-channel: 1.1.0 qs@6.14.0: dependencies: @@ -8328,13 +8121,6 @@ snapshots: range-parser@1.2.1: {} - raw-body@2.5.1: - dependencies: - bytes: 3.1.2 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - raw-body@2.5.2: dependencies: bytes: 3.1.2 @@ -8376,8 +8162,12 @@ snapshots: replace-buffer@1.2.1: {} + require-directory@2.1.1: {} + resolve-alpn@1.2.1: {} + resolve-from@4.0.0: {} + resolve-path@1.4.0: dependencies: http-errors: 1.6.3 @@ -8407,10 +8197,6 @@ snapshots: dependencies: queue-microtask: 1.2.3 - rxjs@7.8.1: - dependencies: - tslib: 2.5.3 - rxjs@7.8.2: dependencies: tslib: 2.8.1 @@ -8445,13 +8231,13 @@ snapshots: safer-buffer@2.1.2: {} - sax@1.2.4: {} + sax@1.4.1: {} - semver@6.3.0: {} + semver@6.3.1: {} semver@7.7.1: {} - send@0.18.0: + send@0.19.0: dependencies: debug: 2.6.9 depd: 2.0.0 @@ -8469,15 +8255,24 @@ snapshots: transitivePeerDependencies: - supports-color - serve-static@1.15.0: + serve-static@1.16.2: dependencies: - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 parseurl: 1.3.3 - send: 0.18.0 + send: 0.19.0 transitivePeerDependencies: - supports-color + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + setprototypeof@1.1.0: {} setprototypeof@1.2.0: {} @@ -8488,9 +8283,9 @@ snapshots: shebang-regex@3.0.0: {} - shortid@2.2.16: + shortid@2.2.17: dependencies: - nanoid: 2.1.11 + nanoid: 3.3.8 side-channel-list@1.0.0: dependencies: @@ -8512,12 +8307,6 @@ snapshots: object-inspect: 1.13.4 side-channel-map: 1.0.1 - side-channel@1.0.4: - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - object-inspect: 1.12.3 - side-channel@1.1.0: dependencies: es-errors: 1.3.0 @@ -8548,8 +8337,8 @@ snapshots: socket.io-client@4.5.4: dependencies: - '@socket.io/component-emitter': 3.1.0 - debug: 4.3.4 + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.7 engine.io-client: 6.2.3 socket.io-parser: 4.2.4 transitivePeerDependencies: @@ -8559,8 +8348,8 @@ snapshots: socket.io-parser@4.2.4: dependencies: - '@socket.io/component-emitter': 3.1.0 - debug: 4.3.4 + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -8568,7 +8357,7 @@ snapshots: dependencies: accepts: 1.3.8 base64id: 2.0.0 - debug: 4.3.4 + debug: 4.3.7 engine.io: 6.2.1 socket.io-adapter: 2.4.0 socket.io-parser: 4.2.4 @@ -8577,6 +8366,14 @@ snapshots: - supports-color - utf-8-validate + socks-proxy-agent@8.0.5: + dependencies: + agent-base: 7.1.3 + debug: 4.4.0 + socks: 2.8.4 + transitivePeerDependencies: + - supports-color + socks@2.8.4: dependencies: ip-address: 9.0.5 @@ -8615,6 +8412,13 @@ snapshots: streamsearch@0.1.2: {} + streamx@2.22.0: + dependencies: + fast-fifo: 1.3.2 + text-decoder: 1.2.3 + optionalDependencies: + bare-events: 2.5.4 + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -8627,8 +8431,6 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.1.0 - string.prototype.codepointat@0.2.1: {} - string_decoder@1.1.1: dependencies: safe-buffer: 5.1.2 @@ -8643,7 +8445,7 @@ snapshots: strip-ansi@7.1.0: dependencies: - ansi-regex: 6.0.1 + ansi-regex: 6.1.0 strip-final-newline@2.0.0: {} @@ -8651,8 +8453,6 @@ snapshots: dependencies: min-indent: 1.0.1 - strnum@1.0.5: {} - strnum@1.1.2: {} strtok3@9.1.1: @@ -8670,14 +8470,17 @@ snapshots: symbol-tree@3.2.4: {} - systeminformation@5.18.15: {} + systeminformation@5.25.11: {} - tar-fs@2.1.1: + tar-fs@3.0.8: dependencies: - chownr: 1.1.4 - mkdirp-classic: 0.5.3 - pump: 3.0.0 - tar-stream: 2.2.0 + pump: 3.0.2 + tar-stream: 3.1.7 + optionalDependencies: + bare-fs: 4.0.1 + bare-path: 3.0.0 + transitivePeerDependencies: + - bare-buffer tar-stream@2.2.0: dependencies: @@ -8687,12 +8490,22 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 + tar-stream@3.1.7: + dependencies: + b4a: 1.6.7 + fast-fifo: 1.3.2 + streamx: 2.22.0 + + text-decoder@1.2.3: + dependencies: + b4a: 1.6.7 + text-hex@1.0.0: {} threads@1.7.0: dependencies: callsites: 3.1.0 - debug: 4.3.4 + debug: 4.4.0 is-observable: 2.1.0 observable-fns: 0.6.1 optionalDependencies: @@ -8704,10 +8517,6 @@ snapshots: dependencies: readable-stream: 3.6.2 - through@2.3.8: {} - - tiny-inflate@1.0.3: {} - tiny-worker@2.3.0: dependencies: esm: 3.2.25 @@ -8723,11 +8532,9 @@ snapshots: '@tokenizer/token': 0.3.0 ieee754: 1.2.1 - tr46@0.0.3: {} - tr46@2.1.0: dependencies: - punycode: 2.3.0 + punycode: 2.3.1 tr46@3.0.0: dependencies: @@ -8741,25 +8548,25 @@ snapshots: triple-beam@1.4.1: {} - ts-node@10.9.1(@types/node@22.13.9)(typescript@5.1.6): + ts-node@10.9.2(@types/node@22.13.9)(typescript@5.8.2): dependencies: '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.9 + '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 '@types/node': 22.13.9 - acorn: 8.10.0 - acorn-walk: 8.2.0 + acorn: 8.14.0 + acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.1.6 + typescript: 5.8.2 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - tslib@2.5.3: {} + tslib@1.14.1: {} tslib@2.8.1: {} @@ -8767,12 +8574,8 @@ snapshots: type-fest@0.21.3: {} - type-fest@1.4.0: {} - type-fest@2.19.0: {} - type-fest@3.13.1: {} - type-fest@4.37.0: {} type-is@1.6.18: @@ -8780,9 +8583,9 @@ snapshots: media-typer: 0.3.0 mime-types: 2.1.35 - typescript@5.1.3: {} + typed-query-selector@2.12.0: {} - typescript@5.1.6: {} + typescript@5.8.2: {} typeson-registry@1.0.0-alpha.39: dependencies: @@ -8792,39 +8595,20 @@ snapshots: typeson@6.1.0: {} - uglify-js@3.17.4: {} + uglify-js@3.19.3: {} uint8array-extras@1.4.0: {} - unbzip2-stream@1.4.3: - dependencies: - buffer: 5.7.1 - through: 2.3.8 - undici-types@6.20.0: {} - unicode-trie@0.3.1: - dependencies: - pako: 0.2.9 - tiny-inflate: 1.0.3 - universalify@0.1.2: {} - universalify@2.0.0: {} - universalify@2.0.1: {} - unorm@1.6.0: {} - unpipe@1.0.0: {} upper-case@1.1.3: {} - url@0.11.1: - dependencies: - punycode: 1.4.1 - qs: 6.11.2 - url@0.11.4: dependencies: punycode: 1.4.1 @@ -8836,16 +8620,12 @@ snapshots: uuid@7.0.3: {} - uuid@8.3.2: {} - uuid@9.0.1: {} v8-compile-cache-lib@3.0.1: {} vary@1.1.2: {} - webidl-conversions@3.0.1: {} - webidl-conversions@4.0.2: {} webidl-conversions@6.1.0: {} @@ -8862,11 +8642,6 @@ snapshots: tr46: 5.0.0 webidl-conversions: 7.0.0 - whatwg-url@5.0.0: - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - whatwg-url@8.7.0: dependencies: lodash: 4.17.21 @@ -8877,10 +8652,6 @@ snapshots: dependencies: isexe: 2.0.0 - which@3.0.1: - dependencies: - isexe: 2.0.0 - which@5.0.0: dependencies: isexe: 3.1.1 @@ -8929,25 +8700,39 @@ snapshots: ws@8.11.0: {} - ws@8.2.3: {} + ws@8.18.1: {} - ws@8.8.0: {} + ws@8.2.3: {} xml-js@1.6.11: dependencies: - sax: 1.2.4 + sax: 1.4.1 xml2js@0.5.0: dependencies: - sax: 1.2.4 + sax: 1.4.1 xmlbuilder: 11.0.1 xmlbuilder@11.0.1: {} xmlhttprequest-ssl@2.0.0: {} + y18n@5.0.8: {} + yargs-parser@21.0.1: {} + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + yauzl@2.10.0: dependencies: buffer-crc32: 0.2.13 @@ -8956,3 +8741,5 @@ snapshots: ylru@1.4.0: {} yn@3.1.1: {} + + zod@3.24.2: {} diff --git a/readme.md b/readme.md index 900f450..2b37655 100644 --- a/readme.md +++ b/readme.md @@ -1,5 +1,5 @@ # @push.rocks/smartexpect -manage expectations in code +Manage expectations in code with precise, readable assertions ## Install @@ -30,14 +30,16 @@ You can employ `expect` to create synchronous assertions: ```typescript import { expect } from '@push.rocks/smartexpect'; -// String type assertion +// Type assertions expect('hello').toBeTypeofString(); - -// Negated String type assertion -expect(1).not.toBeTypeofString(); - -// Boolean type assertion +expect(42).toBeTypeofNumber(); expect(true).toBeTypeofBoolean(); +expect(() => {}).toBeTypeOf('function'); +expect({}).toBeTypeOf('object'); + +// Negated assertions +expect(1).not.toBeTypeofString(); +expect('string').not.toBeTypeofNumber(); // Equality assertion expect('hithere').toEqual('hithere'); @@ -61,68 +63,184 @@ const asyncStringFetcher = async (): Promise => { }; const asyncTest = async () => { - await expectAsync(asyncStringFetcher()).toBeTypeofString(); + // Add a timeout to prevent hanging tests + await expectAsync(asyncStringFetcher()).timeout(5000).toBeTypeofString(); await expectAsync(asyncStringFetcher()).toEqual('async string'); }; asyncTest(); ``` -### Advanced Usage +### Navigating Complex Objects -- **Properties and Deep Properties:** Assert the existence of properties and their values. - - ```typescript - const testObject = { level1: { level2: 'value' } }; +You can navigate complex objects using the `property()` and `arrayItem()` methods: - // Property existence - expect(testObject).toHaveProperty('level1'); - - // Deep Property existence - expect(testObject).toHaveDeepProperty(['level1', 'level2']); - ``` +```typescript +const complexObject = { + users: [ + { id: 1, name: 'Alice', permissions: { admin: true } }, + { id: 2, name: 'Bob', permissions: { admin: false } } + ] +}; -- **Conditions and Comparisons:** Allow more intricate assertions like greater than, less than, or matching specific conditions. +// Navigate to a nested property +expect(complexObject) + .property('users') + .arrayItem(0) + .property('name') + .toEqual('Alice'); - ```typescript - // Greater Than - expect(5).toBeGreaterThan(3); +// Check nested permission +expect(complexObject) + .property('users') + .arrayItem(0) + .property('permissions') + .property('admin') + .toBeTrue(); +``` - // Less Than - expect(3).toBeLessThan(5); +### Advanced Assertions - // Custom conditions - expect(7).customAssertion(value => value > 5, 'Value is not greater than 5'); - ``` +#### Properties and Deep Properties -- **Arrays and Objects:** Work seamlessly with arrays and objects, checking for containment, length, or specific values. +Assert the existence of properties and their values: - ```typescript - const testArray = [1, 2, 3]; +```typescript +const testObject = { level1: { level2: 'value' } }; - // Containment - expect(testArray).toContain(2); +// Property existence +expect(testObject).toHaveProperty('level1'); - // Array length - expect(testArray).toHaveLength(3); +// Property with specific value +expect(testObject).toHaveProperty('level1.level2', 'value'); - // Object matching - expect({ name: 'Test', value: 123 }).toMatchObject({ name: 'Test' }); - ``` +// Deep Property existence +expect(testObject).toHaveDeepProperty(['level1', 'level2']); +``` -### Handling Promises and Async Operations +#### Conditions and Comparisons -`@push.rocks/smartexpect` gracefully integrates with asynchronous operations, providing a `expectAsync` function that handles promise-based assertions. This keeps your tests clean and readable, irrespective of the nature of the code being tested. +Perform more intricate assertions: -### Best Practices +```typescript +// Numeric comparisons +expect(5).toBeGreaterThan(3); +expect(3).toBeLessThan(5); +expect(5).toBeGreaterThanOrEqual(5); +expect(5).toBeLessThanOrEqual(5); +expect(0.1 + 0.2).toBeCloseTo(0.3, 10); // Floating point comparison with precision -- **Readability:** Favor clarity and readability by explicitly stating your expectations. `@push.rocks/smartexpect`'s API is designed to be fluent and expressive, making your tests easy to write and, more importantly, easy to read. +// Truthiness checks +expect(true).toBeTrue(); +expect(false).toBeFalse(); +expect('non-empty').toBeTruthy(); +expect(0).toBeFalsy(); -- **Comprehensive Coverage:** Utilize the full spectrum of assertions provided to cover a broad set of use cases, ensuring your code behaves as expected not just in ideal conditions but across various edge cases. +// Null/Undefined checks +expect(null).toBeNull(); +expect(undefined).toBeUndefined(); +expect(null).toBeNullOrUndefined(); -- **Maintainability:** Group related assertions together to improve test maintainability. This makes it easier to update tests as your codebase evolves. +// Custom conditions +expect(7).customAssertion(value => value % 2 === 1, 'Value is not odd'); +``` -Through judicious use of `@push.rocks/smartexpect`, you can enhance the reliability and maintainability of your test suite, making your codebase more robust and your development workflow more efficient. +#### Arrays and Collections + +Work seamlessly with arrays and collections: + +```typescript +const testArray = [1, 2, 3]; + +// Array checks +expect(testArray).toBeArray(); +expect(testArray).toHaveLength(3); +expect(testArray).toContain(2); +expect(testArray).toContainAll([1, 3]); +expect(testArray).toExclude(4); +expect([]).toBeEmptyArray(); +expect(testArray).toHaveLengthGreaterThan(2); +expect(testArray).toHaveLengthLessThan(4); + +// Deep equality in arrays +expect([{ id: 1 }, { id: 2 }]).toContainEqual({ id: 1 }); +``` + +#### Strings + +String-specific checks: + +```typescript +expect('hello world').toStartWith('hello'); +expect('hello world').toEndWith('world'); +expect('hello world').toInclude('lo wo'); +expect('options').toBeOneOf(['choices', 'options', 'alternatives']); +``` + +#### Functions and Exceptions + +Test function behavior and exceptions: + +```typescript +const throwingFn = () => { throw new Error('test error'); }; +expect(throwingFn).toThrow(); +expect(throwingFn).toThrow(Error); + +const safeFn = () => 'result'; +expect(safeFn).not.toThrow(); +``` + +#### Date Assertions + +Work with dates: + +```typescript +const now = new Date(); +const past = new Date(Date.now() - 10000); +const future = new Date(Date.now() + 10000); + +expect(now).toBeDate(); +expect(now).toBeAfterDate(past); +expect(now).toBeBeforeDate(future); +``` + +### Debugging Assertions + +The `log()` method is useful for debugging complex assertions: + +```typescript +expect(complexObject) + .property('users') + .log() // Logs the current value in the assertion chain + .arrayItem(0) + .log() // Logs the first user + .property('permissions') + .log() // Logs the permissions object + .property('admin') + .toBeTrue(); +``` + +### Customizing Error Messages + +You can provide custom error messages for more meaningful test failures: + +```typescript +expect(user.age) + .setFailMessage('User age must be at least 18 for adult content') + .toBeGreaterThanOrEqual(18); +``` + +## Best Practices + +- **Human-readable assertions**: The fluent API is designed to create tests that read like natural language sentences. + +- **Precise error messages**: When tests fail, the error messages provide detailed information about what went wrong, including expected vs. actual values. + +- **Property path navigation**: Use the property path methods to navigate complex objects without creating temporary variables. + +- **Comprehensive testing**: Take advantage of the wide range of assertion methods to test various aspects of your code. + +- **Debugging with log()**: Use the `log()` method to see intermediate values in the assertion chain during test development. ## License and Legal Information @@ -141,4 +259,4 @@ Registered at District court Bremen HRB 35230 HB, Germany For any legal inquiries or if you require further information, please contact us via email at hello@task.vc. -By using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works. +By using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works. \ No newline at end of file diff --git a/test/test.both.ts b/test/test.both.ts new file mode 100644 index 0000000..fa196d5 --- /dev/null +++ b/test/test.both.ts @@ -0,0 +1,204 @@ +import { tap } from '@push.rocks/tapbundle'; +import * as smartexpect from '../ts/index.js'; + +tap.test('basic type assertions', async () => { + // String type checks + smartexpect.expect('hello').toBeTypeofString(); + smartexpect.expect(1).not.toBeTypeofString(); + + // Boolean type checks + smartexpect.expect(true).toBeTypeofBoolean(); + smartexpect.expect(false).toBeTypeofBoolean(); + smartexpect.expect(1).not.toBeTypeofBoolean(); + + // Number type checks + smartexpect.expect(42).toBeTypeofNumber(); + smartexpect.expect(true).not.toBeTypeofNumber(); + + // Generic type checks with new method + smartexpect.expect(() => {}).toBeTypeOf('function'); + smartexpect.expect(class Test {}).toBeTypeOf('function'); + smartexpect.expect({}).toBeTypeOf('object'); + smartexpect.expect(Symbol('test')).toBeTypeOf('symbol'); +}); + +tap.test('async tests', async (toolsArg) => { + const deferred = toolsArg.defer(); + toolsArg.delayFor(1000).then(() => { + deferred.resolve('hello'); + }); + await smartexpect.expectAsync(deferred.promise).timeout(2000).toBeTypeofString(); + await smartexpect.expectAsync(deferred.promise).not.toBeTypeofBoolean(); + + // Test async timeout handling + const longOperation = toolsArg.defer(); + toolsArg.delayFor(3000).then(() => { + longOperation.resolve('completed'); + }); + try { + await smartexpect.expectAsync(longOperation.promise).timeout(1000).toBeDefined(); + throw new Error('Should have timed out'); + } catch (err) { + // Expected timeout error + console.log('Successfully caught timeout:', err.message); + } +}); + +tap.test('equality and matching assertions', async () => { + // Basic equality + smartexpect.expect('hithere').toEqual('hithere'); + smartexpect.expect('hithere').not.toEqual('hithere2'); + + // Object equality + const obj1 = { a: 1, b: { c: true } }; + const obj2 = { a: 1, b: { c: true } }; + const obj3 = { a: 1, b: { c: false } }; + smartexpect.expect(obj1).toEqual(obj2); + smartexpect.expect(obj1).not.toEqual(obj3); + + // RegExp matching + smartexpect.expect('hithere').toMatch(/hi/); + smartexpect.expect('hithere').toMatch(/^hithere$/); + smartexpect.expect('hithere').not.toMatch(/ho/); + + // String inclusion + smartexpect.expect('hithere').toInclude('hit'); + smartexpect.expect('hithere').not.toInclude('missing'); + + // String start/end + smartexpect.expect('hithere').toStartWith('hi'); + smartexpect.expect('hithere').toEndWith('ere'); +}); + +tap.test('object property assertions', async () => { + const testObject = { + topLevel: 'hello', + nested: { + prop: 42, + deeplyNested: { + array: [1, 2, 3] + } + } + }; + + // Basic property checks + smartexpect.expect(testObject).toHaveProperty('topLevel'); + smartexpect.expect(testObject).toHaveProperty('topLevel', 'hello'); + smartexpect.expect(testObject).not.toHaveProperty('missing'); + + // Drill-down property navigation + smartexpect.expect(testObject).property('nested').toHaveProperty('prop', 42); + smartexpect.expect(testObject).property('nested').property('deeplyNested').property('array').toBeArray(); + + // Deep property checks + smartexpect.expect(testObject).toHaveDeepProperty(['nested', 'deeplyNested', 'array']); + + // Array item navigation + smartexpect.expect(testObject).property('nested').property('deeplyNested').property('array').arrayItem(0).toEqual(1); +}); + +tap.test('numeric comparison assertions', async () => { + // Greater/less than + smartexpect.expect(4).toBeGreaterThan(3); + smartexpect.expect(4).toBeLessThan(5); + smartexpect.expect(4).toBeGreaterThanOrEqual(4); + smartexpect.expect(4).toBeLessThanOrEqual(4); + + // Approximate equality + smartexpect.expect(0.1 + 0.2).toBeCloseTo(0.3, 10); +}); + +tap.test('array assertions', async () => { + const obj1 = { id: 1 }; + const obj2 = { id: 2 }; + const testArray = [1, 'two', obj1, true]; + + // Basic array checks + smartexpect.expect(testArray).toBeArray(); + smartexpect.expect(testArray).toHaveLength(4); + + // Content checks + smartexpect.expect(testArray).toContain('two'); + smartexpect.expect(testArray).toContain(obj1); + smartexpect.expect(testArray).not.toContain(obj2); + + // Array with equal items (not same reference) + smartexpect.expect([{ a: 1 }, { b: 2 }]).toContainEqual({ a: 1 }); + + // Multiple values + smartexpect.expect(testArray).toContainAll([1, 'two']); + smartexpect.expect(testArray).toExclude('missing'); + + // Empty array + smartexpect.expect([]).toBeEmptyArray(); + + // Length comparisons + smartexpect.expect(testArray).toHaveLengthGreaterThan(3); + smartexpect.expect(testArray).toHaveLengthLessThan(5); +}); + +tap.test('boolean assertions', async () => { + // True/False + smartexpect.expect(true).toBeTrue(); + smartexpect.expect(false).toBeFalse(); + + // Truthy/Falsy + smartexpect.expect('something').toBeTruthy(); + smartexpect.expect(0).toBeFalsy(); + + // Null/Undefined + smartexpect.expect(null).toBeNull(); + smartexpect.expect(undefined).toBeUndefined(); + smartexpect.expect(null).toBeNullOrUndefined(); + smartexpect.expect(undefined).toBeNullOrUndefined(); +}); + +tap.test('function assertions', async () => { + // Function that throws + const throwingFn = () => { throw new Error('test error'); }; + smartexpect.expect(throwingFn).toThrow(); + smartexpect.expect(throwingFn).toThrow(Error); + + // Function that doesn't throw + const nonThrowingFn = () => 'safe'; + smartexpect.expect(nonThrowingFn).not.toThrow(); +}); + +tap.test('date assertions', async () => { + const now = new Date(); + const past = new Date(Date.now() - 10000); + const future = new Date(Date.now() + 10000); + + smartexpect.expect(now).toBeDate(); + smartexpect.expect(now).toBeAfterDate(past); + smartexpect.expect(now).toBeBeforeDate(future); +}); + +tap.test('custom assertions', async () => { + // Custom validation logic + smartexpect.expect(42).customAssertion( + value => value % 2 === 0, + 'Expected number to be even' + ); + + // With fail message + smartexpect.expect('test') + .setFailMessage('Custom fail message for assertion') + .toHaveLength(4); +}); + +tap.test('logging and debugging', async () => { + // Using log() for debugging + const complexObject = { + level1: { + level2: { + value: 'nested value' + } + } + }; + + // This logs the current value in the chain for debugging + smartexpect.expect(complexObject).property('level1').property('level2').log().property('value').toEqual('nested value'); +}); + +export default tap.start(); \ No newline at end of file diff --git a/test/test.ts b/test/test.ts deleted file mode 100644 index 49a7702..0000000 --- a/test/test.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { tap } from '@push.rocks/tapbundle'; -import * as smartexpect from '../ts/index.js'; - -tap.test('sync tests', async () => { - smartexpect.expect('hello').toBeTypeofString(); - smartexpect.expect(1).not.toBeTypeofString(); - smartexpect.expect(true).toBeTypeofBoolean(); - smartexpect.expect(true).not.toBeTypeofNumber(); -}); - -tap.test('async tests', async (toolsArg) => { - const deferred = toolsArg.defer(); - toolsArg.delayFor(4000).then(() => { - deferred.resolve('hello'); - }); - await smartexpect.expectAsync(deferred.promise).timeout(5000).toBeTypeofString(); - await smartexpect.expectAsync(deferred.promise).not.toBeTypeofBoolean(); -}); - -tap.test('should check equality', async () => { - smartexpect.expect('hithere').toEqual('hithere'); - smartexpect.expect('hithere').not.toEqual('hithere2'); -}); - -tap.test('should check for regexp matching', async () => { - smartexpect.expect('hithere').toMatch(/hi/); - smartexpect.expect('hithere').not.toMatch(/ho/); -}); - -tap.test('should correctly state property presence', async () => { - const testObject = { - aprop: 'hello', - }; - - smartexpect.expect(testObject).toHaveProperty('aprop'); - smartexpect.expect(testObject).not.toHaveProperty('aprop2'); -}); - -tap.test('should be greater than', async () => { - smartexpect.expect(4).toBeGreaterThan(3); - smartexpect.expect(4).toBeLessThan(5); -}); - -tap.test('should correctly determine toContain', async () => { - const hello = { - socool: 'yes', - }; - const testArray = [hello]; - smartexpect.expect(testArray).toContain(hello); -}); - -tap.start(); diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index 103a905..839df32 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@push.rocks/smartexpect', - version: '1.5.0', + version: '1.6.0', description: 'A testing library to manage expectations in code, offering both synchronous and asynchronous assertion methods.' } diff --git a/ts/smartexpect.classes.assertion.ts b/ts/smartexpect.classes.assertion.ts index 72c0969..163410c 100644 --- a/ts/smartexpect.classes.assertion.ts +++ b/ts/smartexpect.classes.assertion.ts @@ -33,6 +33,57 @@ export class Assertion { return returnObjectToTestReference; } + private formatDrillDown(): string { + if (!this.propertyDrillDown || this.propertyDrillDown.length === 0) { + return ''; + } + + const path = this.propertyDrillDown.map(prop => { + if (typeof prop === 'number') { + return `[${prop}]`; + } else { + return `.${prop}`; + } + }).join(''); + + return path; + } + + private formatValue(value: any): string { + if (value === null) { + return 'null'; + } else if (value === undefined) { + return 'undefined'; + } else if (typeof value === 'object') { + try { + return JSON.stringify(value); + } catch (e) { + return `[Object ${value.constructor.name}]`; + } + } else if (typeof value === 'function') { + return `[Function${value.name ? ': ' + value.name : ''}]`; + } else if (typeof value === 'string') { + return `"${value}"`; + } else { + return String(value); + } + } + + private createErrorMessage(message: string): string { + if (this.failMessage) { + return this.failMessage; + } + + const testValue = this.getObjectToTestReference(); + const formattedValue = this.formatValue(testValue); + const drillDown = this.formatDrillDown(); + + // Replace placeholders in the message + return message + .replace('{value}', formattedValue) + .replace('{path}', drillDown || ''); + } + public get not() { this.notSetting = true; return this; @@ -65,7 +116,7 @@ export class Assertion { isOk = true; } if (!isOk) { - throw new Error(this.failMessage || 'Negated assertion is not ok!'); + throw new Error(this.failMessage || 'Negated assertion failed'); } } }; @@ -73,12 +124,12 @@ export class Assertion { if (this.executionMode === 'async') { const done = plugins.smartpromise.defer(); if (!(this.baseReference instanceof Promise)) { - done.reject(new Error(`${this.baseReference} is not of type promise.`)); + done.reject(new Error(`Expected a Promise but received: ${this.formatValue(this.baseReference)}`)); } else { if (this.timeoutSetting) { plugins.smartdelay.delayFor(this.timeoutSetting).then(() => { if (done.status === 'pending') { - done.reject(new Error(`${this.baseReference} timed out at ${this.timeoutSetting}!`)); + done.reject(new Error(`Promise timed out after ${this.timeoutSetting}ms`)); } }); } @@ -97,8 +148,7 @@ export class Assertion { return this.runCheck(() => { if (this.getObjectToTestReference() === undefined) { throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${this.propertyDrillDown} is not defined` + this.createErrorMessage('Expected value{path} to be defined, but got undefined') ); } }); @@ -106,12 +156,10 @@ export class Assertion { public toBeTypeofString() { return this.runCheck(() => { - if (typeof this.getObjectToTestReference() !== 'string') { + const value = this.getObjectToTestReference(); + if (typeof value !== 'string') { throw new Error( - this.failMessage || - `Assertion failed: ${this.baseReference} with drill down ${ - this.propertyDrillDown - } is not of type string, but typeof ${typeof this.baseReference}` + this.createErrorMessage(`Expected value{path} to be of type string, but got ${typeof value}`) ); } }); @@ -119,12 +167,10 @@ export class Assertion { public toBeTypeofNumber() { return this.runCheck(() => { - if (typeof this.getObjectToTestReference() !== 'number') { + const value = this.getObjectToTestReference(); + if (typeof value !== 'number') { throw new Error( - this.failMessage || - `Assertion failed: ${this.baseReference} with drill down ${ - this.propertyDrillDown - } is not of type string, but typeof ${typeof this.baseReference}` + this.createErrorMessage(`Expected value{path} to be of type number, but got ${typeof value}`) ); } }); @@ -132,78 +178,10 @@ export class Assertion { public toBeTypeofBoolean() { return this.runCheck(() => { - if (typeof this.getObjectToTestReference() !== 'boolean') { + const value = this.getObjectToTestReference(); + if (typeof value !== 'boolean') { throw new Error( - this.failMessage || - `Assertion failed: ${this.baseReference} with drill down ${ - this.propertyDrillDown - } is not of type string, but typeof ${typeof this.baseReference}` - ); - } - }); - } - - public toEqual(comparisonObject: any) { - return this.runCheck(() => { - const result = plugins.fastDeepEqual(this.getObjectToTestReference(), comparisonObject); - if (!result) { - throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${this.propertyDrillDown} does not equal ${comparisonObject}` - ); - } - }); - } - - public toMatch(comparisonObject: RegExp) { - return this.runCheck(() => { - const result = comparisonObject.test(this.getObjectToTestReference()); - if (!result) { - throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${ - this.propertyDrillDown - } does not match regex ${comparisonObject}` - ); - } - }); - } - - public toBeTrue() { - return this.runCheck(() => { - const result = - typeof this.getObjectToTestReference() === 'boolean' && - this.getObjectToTestReference() === true; - if (!result) { - throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${this.propertyDrillDown} is not true or not of type boolean` - ); - } - }); - } - - public toBeFalse() { - return this.runCheck(() => { - const result = - typeof this.getObjectToTestReference() === 'boolean' && - this.getObjectToTestReference() === false; - if (!result) { - throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${this.propertyDrillDown} is not false or not of type boolean` - ); - } - }); - } - - public toBeInstanceOf(classArg: any) { - return this.runCheck(() => { - const result = this.getObjectToTestReference() instanceof classArg; - if (!result) { - throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${this.propertyDrillDown} is not an instance of ${classArg}` + this.createErrorMessage(`Expected value{path} to be of type boolean, but got ${typeof value}`) ); } }); @@ -211,13 +189,71 @@ export class Assertion { public toBeTypeOf(expectedType: string) { return this.runCheck(() => { - const actualType = typeof this.getObjectToTestReference(); + const value = this.getObjectToTestReference(); + const actualType = typeof value; if (actualType !== expectedType) { throw new Error( - this.failMessage || - `Assertion failed: ${this.baseReference} with drill down ${ - this.propertyDrillDown - } is not of type ${expectedType}, but typeof ${actualType}` + this.createErrorMessage(`Expected value{path} to be of type ${expectedType}, but got ${actualType}`) + ); + } + }); + } + + public toEqual(comparisonObject: any) { + return this.runCheck(() => { + const value = this.getObjectToTestReference(); + const result = plugins.fastDeepEqual(value, comparisonObject); + if (!result) { + throw new Error( + this.createErrorMessage(`Expected value{path} to equal ${this.formatValue(comparisonObject)}`) + ); + } + }); + } + + public toMatch(comparisonObject: RegExp) { + return this.runCheck(() => { + const value = this.getObjectToTestReference(); + const result = comparisonObject.test(value); + if (!result) { + throw new Error( + this.createErrorMessage(`Expected value{path} to match regex ${comparisonObject}`) + ); + } + }); + } + + public toBeTrue() { + return this.runCheck(() => { + const value = this.getObjectToTestReference(); + const result = typeof value === 'boolean' && value === true; + if (!result) { + throw new Error( + this.createErrorMessage(`Expected value{path} to be true, but got ${this.formatValue(value)}`) + ); + } + }); + } + + public toBeFalse() { + return this.runCheck(() => { + const value = this.getObjectToTestReference(); + const result = typeof value === 'boolean' && value === false; + if (!result) { + throw new Error( + this.createErrorMessage(`Expected value{path} to be false, but got ${this.formatValue(value)}`) + ); + } + }); + } + + public toBeInstanceOf(classArg: any) { + return this.runCheck(() => { + const value = this.getObjectToTestReference(); + const result = value instanceof classArg; + if (!result) { + throw new Error( + this.createErrorMessage(`Expected value{path} to be an instance of ${classArg.name || 'provided class'}`) ); } }); @@ -228,19 +264,15 @@ export class Assertion { const obj = this.getObjectToTestReference(); if (!obj || !(propertyArg in obj)) { throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${ - this.propertyDrillDown - } does not have property ${propertyArg}` + this.createErrorMessage(`Expected value{path} to have property '${propertyArg}'`) ); } if (equalsArg !== undefined) { if (obj[propertyArg] !== equalsArg) { throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${ - this.propertyDrillDown - } does have property ${propertyArg}, but it does not equal ${equalsArg}` + this.createErrorMessage( + `Expected property '${propertyArg}' of value{path} to equal ${this.formatValue(equalsArg)}, but got ${this.formatValue(obj[propertyArg])}` + ) ); } } @@ -261,8 +293,7 @@ export class Assertion { if (!obj || !(property in obj)) { throw new Error( - this.failMessage || - `Missing property at path "${currentPath}" in ${this.baseReference}` + this.createErrorMessage(`Expected value{path} to have property at path '${currentPath}'`) ); } obj = obj[property]; @@ -272,11 +303,11 @@ export class Assertion { public toBeGreaterThan(numberArg: number) { return this.runCheck(() => { - const result = this.getObjectToTestReference() > numberArg; + const value = this.getObjectToTestReference(); + const result = value > numberArg; if (!result) { throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${this.propertyDrillDown} is not greater than ${numberArg}` + this.createErrorMessage(`Expected value{path} to be greater than ${numberArg}, but got ${this.formatValue(value)}`) ); } }); @@ -284,11 +315,11 @@ export class Assertion { public toBeLessThan(numberArg: number) { return this.runCheck(() => { - const result = this.getObjectToTestReference() < numberArg; + const value = this.getObjectToTestReference(); + const result = value < numberArg; if (!result) { throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${this.propertyDrillDown} is not less than ${numberArg}` + this.createErrorMessage(`Expected value{path} to be less than ${numberArg}, but got ${this.formatValue(value)}`) ); } }); @@ -296,11 +327,11 @@ export class Assertion { public toBeNull() { return this.runCheck(() => { - const result = this.getObjectToTestReference() === null; + const value = this.getObjectToTestReference(); + const result = value === null; if (!result) { throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${this.propertyDrillDown} is not null` + this.createErrorMessage(`Expected value{path} to be null, but got ${this.formatValue(value)}`) ); } }); @@ -308,11 +339,11 @@ export class Assertion { public toBeUndefined() { return this.runCheck(() => { - const result = this.getObjectToTestReference() === undefined; + const value = this.getObjectToTestReference(); + const result = value === undefined; if (!result) { throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${this.propertyDrillDown} is not undefined` + this.createErrorMessage(`Expected value{path} to be undefined, but got ${this.formatValue(value)}`) ); } }); @@ -320,12 +351,11 @@ export class Assertion { public toBeNullOrUndefined() { return this.runCheck(() => { - const testRef = this.getObjectToTestReference(); - const result = testRef === null || testRef === undefined; + const value = this.getObjectToTestReference(); + const result = value === null || value === undefined; if (!result) { throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${this.propertyDrillDown} is not null or undefined` + this.createErrorMessage(`Expected value{path} to be null or undefined, but got ${this.formatValue(value)}`) ); } }); @@ -335,12 +365,11 @@ export class Assertion { public toContain(itemArg: any) { return this.runCheck(() => { - const testRef = this.getObjectToTestReference(); - const result = Array.isArray(testRef) && testRef.includes(itemArg); + const value = this.getObjectToTestReference(); + const result = Array.isArray(value) && value.includes(itemArg); if (!result) { throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${this.propertyDrillDown} does not contain ${itemArg}` + this.createErrorMessage(`Expected array{path} to contain ${this.formatValue(itemArg)}`) ); } }); @@ -348,11 +377,15 @@ export class Assertion { public toBeEmptyArray() { return this.runCheck(() => { - const arrayRef = this.getObjectToTestReference(); - if (!Array.isArray(arrayRef) || arrayRef.length !== 0) { + const value = this.getObjectToTestReference(); + if (!Array.isArray(value)) { throw new Error( - this.failMessage || - `Expected ${this.baseReference} to be an empty array, but it was not.` + this.createErrorMessage(`Expected value{path} to be an array, but got ${typeof value}`) + ); + } + if (value.length !== 0) { + throw new Error( + this.createErrorMessage(`Expected array{path} to be empty, but it has ${value.length} elements`) ); } }); @@ -360,41 +393,33 @@ export class Assertion { public toContainAll(values: any[]) { return this.runCheck(() => { - const arrayRef = this.getObjectToTestReference(); - if (!Array.isArray(arrayRef)) { + const arr = this.getObjectToTestReference(); + if (!Array.isArray(arr)) { throw new Error( - this.failMessage || - `Expected ${this.baseReference} with drill down ${ - this.propertyDrillDown - } to be an array.` + this.createErrorMessage(`Expected value{path} to be an array, but got ${typeof arr}`) ); } - for (const value of values) { - if (!arrayRef.includes(value)) { - throw new Error( - this.failMessage || - `Expected ${this.baseReference} to include value "${value}", but it did not.` - ); - } + + const missing = values.filter(v => !arr.includes(v)); + if (missing.length > 0) { + throw new Error( + this.createErrorMessage(`Expected array{path} to contain all values ${this.formatValue(values)}, but missing: ${this.formatValue(missing)}`) + ); } }); } public toExclude(value: any) { return this.runCheck(() => { - const arrayRef = this.getObjectToTestReference(); - if (!Array.isArray(arrayRef)) { + const arr = this.getObjectToTestReference(); + if (!Array.isArray(arr)) { throw new Error( - this.failMessage || - `Expected ${this.baseReference} with drill down ${ - this.propertyDrillDown - } to be an array.` + this.createErrorMessage(`Expected value{path} to be an array, but got ${typeof arr}`) ); } - if (arrayRef.includes(value)) { + if (arr.includes(value)) { throw new Error( - this.failMessage || - `Expected ${this.baseReference} to exclude value "${value}", but it included it.` + this.createErrorMessage(`Expected array{path} to exclude ${this.formatValue(value)}, but it was found`) ); } }); @@ -402,14 +427,11 @@ export class Assertion { public toStartWith(itemArg: any) { return this.runCheck(() => { - const testObject = this.getObjectToTestReference(); - const result = typeof testObject === 'string' && testObject.startsWith(itemArg); + const value = this.getObjectToTestReference(); + const result = typeof value === 'string' && value.startsWith(itemArg); if (!result) { throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${ - this.propertyDrillDown - } does not start with ${itemArg}` + this.createErrorMessage(`Expected string{path} to start with "${itemArg}", but got "${value}"`) ); } }); @@ -417,14 +439,11 @@ export class Assertion { public toEndWith(itemArg: any) { return this.runCheck(() => { - const testObject = this.getObjectToTestReference(); - const result = typeof testObject === 'string' && testObject.endsWith(itemArg); + const value = this.getObjectToTestReference(); + const result = typeof value === 'string' && value.endsWith(itemArg); if (!result) { throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${ - this.propertyDrillDown - } does not end with ${itemArg}` + this.createErrorMessage(`Expected string{path} to end with "${itemArg}", but got "${value}"`) ); } }); @@ -432,11 +451,11 @@ export class Assertion { public toBeOneOf(values: any[]) { return this.runCheck(() => { - const result = values.includes(this.getObjectToTestReference()); + const value = this.getObjectToTestReference(); + const result = values.includes(value); if (!result) { throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${this.propertyDrillDown} is not one of ${values}` + this.createErrorMessage(`Expected value{path} to be one of ${this.formatValue(values)}, but got ${this.formatValue(value)}`) ); } }); @@ -445,12 +464,14 @@ export class Assertion { public toHaveLength(length: number) { return this.runCheck(() => { const obj = this.getObjectToTestReference(); - if (typeof obj.length !== 'number' || obj.length !== length) { + if (typeof obj.length !== 'number') { throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${ - this.propertyDrillDown - } does not have a length of ${length}` + this.createErrorMessage(`Expected value{path} to have a length property, but it doesn't`) + ); + } + if (obj.length !== length) { + throw new Error( + this.createErrorMessage(`Expected value{path} to have length ${length}, but got length ${obj.length}`) ); } }); @@ -458,13 +479,12 @@ export class Assertion { public toBeCloseTo(value: number, precision = 2) { return this.runCheck(() => { - const difference = Math.abs(this.getObjectToTestReference() - value); - if (difference > Math.pow(10, -precision) / 2) { + const actual = this.getObjectToTestReference(); + const difference = Math.abs(actual - value); + const epsilon = Math.pow(10, -precision) / 2; + if (difference > epsilon) { throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${ - this.propertyDrillDown - } is not close to ${value} up to ${precision} decimal places` + this.createErrorMessage(`Expected value{path} to be close to ${value} (within ${epsilon}), but the difference was ${difference}`) ); } }); @@ -472,30 +492,42 @@ export class Assertion { public toThrow(expectedError?: any) { return this.runCheck(() => { + const fn = this.getObjectToTestReference(); + if (typeof fn !== 'function') { + throw new Error( + this.createErrorMessage(`Expected value{path} to be a function, but got ${typeof fn}`) + ); + } + let thrown = false; + let error: any; + try { - this.getObjectToTestReference()(); + fn(); } catch (e) { thrown = true; + error = e; if (expectedError && !(e instanceof expectedError)) { throw new Error( - this.failMessage || - `Expected function to throw ${expectedError.name}, but it threw ${e.name}` + this.createErrorMessage(`Expected function{path} to throw ${expectedError.name}, but it threw ${e.constructor.name}`) ); } } + if (!thrown) { - throw new Error(`Expected function to throw, but it didn't.`); + throw new Error( + this.createErrorMessage(`Expected function{path} to throw, but it didn't throw any error`) + ); } }); } public toBeTruthy() { return this.runCheck(() => { - if (!this.getObjectToTestReference()) { + const value = this.getObjectToTestReference(); + if (!value) { throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${this.propertyDrillDown} is not truthy` + this.createErrorMessage(`Expected value{path} to be truthy, but got ${this.formatValue(value)}`) ); } }); @@ -503,10 +535,10 @@ export class Assertion { public toBeFalsy() { return this.runCheck(() => { - if (this.getObjectToTestReference()) { + const value = this.getObjectToTestReference(); + if (value) { throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${this.propertyDrillDown} is not falsy` + this.createErrorMessage(`Expected value{path} to be falsy, but got ${this.formatValue(value)}`) ); } }); @@ -514,12 +546,10 @@ export class Assertion { public toBeGreaterThanOrEqual(numberArg: number) { return this.runCheck(() => { - if (this.getObjectToTestReference() < numberArg) { + const value = this.getObjectToTestReference(); + if (value < numberArg) { throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${ - this.propertyDrillDown - } is not greater than or equal to ${numberArg}` + this.createErrorMessage(`Expected value{path} to be greater than or equal to ${numberArg}, but got ${value}`) ); } }); @@ -527,12 +557,10 @@ export class Assertion { public toBeLessThanOrEqual(numberArg: number) { return this.runCheck(() => { - if (this.getObjectToTestReference() > numberArg) { + const value = this.getObjectToTestReference(); + if (value > numberArg) { throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${ - this.propertyDrillDown - } is not less than or equal to ${numberArg}` + this.createErrorMessage(`Expected value{path} to be less than or equal to ${numberArg}, but got ${value}`) ); } }); @@ -540,14 +568,11 @@ export class Assertion { public toMatchObject(objectArg: object) { return this.runCheck(() => { - // Implement a partial object match if needed. - const matchResult = plugins.fastDeepEqual(this.getObjectToTestReference(), objectArg); + const value = this.getObjectToTestReference(); + const matchResult = plugins.fastDeepEqual(value, objectArg); if (!matchResult) { throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${ - this.propertyDrillDown - } does not match the object ${JSON.stringify(objectArg)}` + this.createErrorMessage(`Expected value{path} to match ${this.formatValue(objectArg)}`) ); } }); @@ -558,16 +583,14 @@ export class Assertion { const arr = this.getObjectToTestReference(); if (!Array.isArray(arr)) { throw new Error( - this.failMessage || `Expected ${this.baseReference} to be an array but it is not.` + this.createErrorMessage(`Expected value{path} to be an array, but got ${typeof arr}`) ); } + const found = arr.some((item: any) => plugins.fastDeepEqual(item, value)); if (!found) { throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${ - this.propertyDrillDown - } does not contain the value ${JSON.stringify(value)}` + this.createErrorMessage(`Expected array{path} to contain an item equal to ${this.formatValue(value)}`) ); } }); @@ -575,10 +598,10 @@ export class Assertion { public toBeArray() { return this.runCheck(() => { - if (!Array.isArray(this.getObjectToTestReference())) { + const value = this.getObjectToTestReference(); + if (!Array.isArray(value)) { throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${this.propertyDrillDown} is not an array` + this.createErrorMessage(`Expected value{path} to be an array, but got ${typeof value}`) ); } }); @@ -586,13 +609,15 @@ export class Assertion { public toInclude(substring: string) { return this.runCheck(() => { - const testRef = this.getObjectToTestReference(); - if (typeof testRef !== 'string' || !testRef.includes(substring)) { + const value = this.getObjectToTestReference(); + if (typeof value !== 'string') { throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${ - this.propertyDrillDown - } does not include the substring ${substring}` + this.createErrorMessage(`Expected value{path} to be a string, but got ${typeof value}`) + ); + } + if (!value.includes(substring)) { + throw new Error( + this.createErrorMessage(`Expected string{path} to include "${substring}", but it doesn't`) ); } }); @@ -601,12 +626,14 @@ export class Assertion { public toHaveLengthGreaterThan(length: number) { return this.runCheck(() => { const obj = this.getObjectToTestReference(); - if (typeof obj.length !== 'number' || obj.length <= length) { + if (typeof obj.length !== 'number') { throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${ - this.propertyDrillDown - } does not have a length greater than ${length}` + this.createErrorMessage(`Expected value{path} to have a length property, but it doesn't`) + ); + } + if (obj.length <= length) { + throw new Error( + this.createErrorMessage(`Expected value{path} to have length greater than ${length}, but got length ${obj.length}`) ); } }); @@ -615,12 +642,14 @@ export class Assertion { public toHaveLengthLessThan(length: number) { return this.runCheck(() => { const obj = this.getObjectToTestReference(); - if (typeof obj.length !== 'number' || obj.length >= length) { + if (typeof obj.length !== 'number') { throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${ - this.propertyDrillDown - } does not have a length less than ${length}` + this.createErrorMessage(`Expected value{path} to have a length property, but it doesn't`) + ); + } + if (obj.length >= length) { + throw new Error( + this.createErrorMessage(`Expected value{path} to have length less than ${length}, but got length ${obj.length}`) ); } }); @@ -628,11 +657,10 @@ export class Assertion { public toBeDate() { return this.runCheck(() => { - const testRef = this.getObjectToTestReference(); - if (!(testRef instanceof Date)) { + const value = this.getObjectToTestReference(); + if (!(value instanceof Date)) { throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${this.propertyDrillDown} is not a date` + this.createErrorMessage(`Expected value{path} to be a Date, but got ${value.constructor ? value.constructor.name : typeof value}`) ); } }); @@ -640,11 +668,15 @@ export class Assertion { public toBeBeforeDate(date: Date) { return this.runCheck(() => { - const testRef = this.getObjectToTestReference(); - if (!(testRef instanceof Date) || testRef >= date) { + const value = this.getObjectToTestReference(); + if (!(value instanceof Date)) { throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${this.propertyDrillDown} is not before ${date}` + this.createErrorMessage(`Expected value{path} to be a Date, but got ${value.constructor ? value.constructor.name : typeof value}`) + ); + } + if (value >= date) { + throw new Error( + this.createErrorMessage(`Expected date{path} to be before ${date.toISOString()}, but got ${value.toISOString()}`) ); } }); @@ -652,11 +684,15 @@ export class Assertion { public toBeAfterDate(date: Date) { return this.runCheck(() => { - const testRef = this.getObjectToTestReference(); - if (!(testRef instanceof Date) || testRef <= date) { + const value = this.getObjectToTestReference(); + if (!(value instanceof Date)) { throw new Error( - this.failMessage || - `${this.baseReference} with drill down ${this.propertyDrillDown} is not after ${date}` + this.createErrorMessage(`Expected value{path} to be a Date, but got ${value.constructor ? value.constructor.name : typeof value}`) + ); + } + if (value <= date) { + throw new Error( + this.createErrorMessage(`Expected date{path} to be after ${date.toISOString()}, but got ${value.toISOString()}`) ); } }); @@ -667,7 +703,8 @@ export class Assertion { errorMessage: string ) { return this.runCheck(() => { - if (!assertionFunction(this.getObjectToTestReference())) { + const value = this.getObjectToTestReference(); + if (!assertionFunction(value)) { throw new Error(this.failMessage || errorMessage); } }); @@ -691,8 +728,9 @@ export class Assertion { } public log() { - console.log(`this is the object to test:`); + console.log(`Current value:`); console.log(JSON.stringify(this.getObjectToTestReference(), null, 2)); + console.log(`Path: ${this.formatDrillDown() || '(root)'}`); return this; } } \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index dfe5a55..d76da25 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,7 @@ { "compilerOptions": { "experimentalDecorators": true, + "emitDecoratorMetadata": true, "useDefineForClassFields": false, "target": "ES2022", "module": "NodeNext",