From 9dd55543e9fbcd7c7fddfc85c519ba27daff218e Mon Sep 17 00:00:00 2001 From: Juergen Kunz Date: Tue, 29 Jul 2025 12:33:51 +0000 Subject: [PATCH] update --- package.json | 15 +- pnpm-lock.yaml | 798 +++++++++++++++++++---------- test/test.statements.ts | 245 +++++++++ ts/bunq.classes.export.ts | 24 +- ts/bunq.classes.monetaryaccount.ts | 57 +++ 5 files changed, 860 insertions(+), 279 deletions(-) create mode 100644 test/test.statements.ts diff --git a/package.json b/package.json index e3b7af2..01d54b0 100644 --- a/package.json +++ b/package.json @@ -10,28 +10,21 @@ "author": "Lossless GmbH", "license": "MIT", "scripts": { - "test": "(tstest test/ --verbose --logfile)", - "test:basic": "(tstest test/test.ts --verbose)", - "test:payments": "(tstest test/test.payments.simple.ts --verbose)", - "test:webhooks": "(tstest test/test.webhooks.ts --verbose)", - "test:session": "(tstest test/test.session.ts --verbose)", - "test:errors": "(tstest test/test.errors.ts --verbose)", - "test:advanced": "(tstest test/test.advanced.ts --verbose)", - "test:oauth": "(tstest test/test.oauth.ts --verbose)", + "test": "(tstest test/ --verbose --logfile --timeout 60)", "build": "(tsbuild --web)" }, "devDependencies": { "@git.zone/tsbuild": "^2.6.4", "@git.zone/tsrun": "^1.3.3", - "@git.zone/tstest": "^2.3.1", + "@git.zone/tstest": "^2.3.2", "@push.rocks/qenv": "^6.1.0", "@push.rocks/tapbundle": "^6.0.3", - "@types/node": "^24.0.14" + "@types/node": "^22" }, "dependencies": { "@push.rocks/smartcrypto": "^2.0.4", "@push.rocks/smartfile": "^11.2.5", - "@push.rocks/smartpath": "^5.0.18", + "@push.rocks/smartpath": "^6.0.0", "@push.rocks/smartpromise": "^4.2.3", "@push.rocks/smarttime": "^4.0.54" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 011620c..f19a7ea 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,8 +15,8 @@ importers: specifier: ^11.2.5 version: 11.2.5 '@push.rocks/smartpath': - specifier: ^5.0.18 - version: 5.0.18 + specifier: ^6.0.0 + version: 6.0.0 '@push.rocks/smartpromise': specifier: ^4.2.3 version: 4.2.3 @@ -31,8 +31,8 @@ importers: specifier: ^1.3.3 version: 1.3.3 '@git.zone/tstest': - specifier: ^2.3.1 - version: 2.3.1(@aws-sdk/credential-providers@3.848.0)(socks@2.8.6)(typescript@5.8.3) + specifier: ^2.3.2 + version: 2.3.2(@aws-sdk/credential-providers@3.848.0)(socks@2.8.6)(typescript@5.8.3) '@push.rocks/qenv': specifier: ^6.1.0 version: 6.1.0 @@ -40,8 +40,8 @@ importers: specifier: ^6.0.3 version: 6.0.3(@aws-sdk/credential-providers@3.848.0)(socks@2.8.6) '@types/node': - specifier: ^24.0.14 - version: 24.0.14 + specifier: ^22 + version: 22.16.5 packages: @@ -235,8 +235,8 @@ packages: resolution: {integrity: sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==} engines: {node: '>=6.9.0'} - '@cloudflare/workers-types@4.20250718.0': - resolution: {integrity: sha512-RpYLgb81veUGtlLQINwGldsXQDcaK2/Z6QGeSq88yyd9o4tZYw7dzMu34sHgoCeb0QiPQWtetXiPf99PrIj+YQ==} + '@cloudflare/workers-types@4.20250726.0': + resolution: {integrity: sha512-NtM1yVBKJFX4LgSoZkVU0EDhWWvSb1vt6REO+uMYZRgx1HAfQz9GDN6bBB0B+fm2ZIxzt6FzlDbmrXpGJ2M/4Q==} '@colors/colors@1.6.0': resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} @@ -272,156 +272,312 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.25.8': + resolution: {integrity: sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.25.6': resolution: {integrity: sha512-hd5zdUarsK6strW+3Wxi5qWws+rJhCCbMiC9QZyzoxfk5uHRIE8T287giQxzVpEvCwuJ9Qjg6bEjcRJcgfLqoA==} engines: {node: '>=18'} cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.25.8': + resolution: {integrity: sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.25.6': resolution: {integrity: sha512-S8ToEOVfg++AU/bHwdksHNnyLyVM+eMVAOf6yRKFitnwnbwwPNqKr3srzFRe7nzV69RQKb5DgchIX5pt3L53xg==} engines: {node: '>=18'} cpu: [arm] os: [android] + '@esbuild/android-arm@0.25.8': + resolution: {integrity: sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.25.6': resolution: {integrity: sha512-0Z7KpHSr3VBIO9A/1wcT3NTy7EB4oNC4upJ5ye3R7taCc2GUdeynSLArnon5G8scPwaU866d3H4BCrE5xLW25A==} engines: {node: '>=18'} cpu: [x64] os: [android] + '@esbuild/android-x64@0.25.8': + resolution: {integrity: sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.25.6': resolution: {integrity: sha512-FFCssz3XBavjxcFxKsGy2DYK5VSvJqa6y5HXljKzhRZ87LvEi13brPrf/wdyl/BbpbMKJNOr1Sd0jtW4Ge1pAA==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.25.8': + resolution: {integrity: sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.25.6': resolution: {integrity: sha512-GfXs5kry/TkGM2vKqK2oyiLFygJRqKVhawu3+DOCk7OxLy/6jYkWXhlHwOoTb0WqGnWGAS7sooxbZowy+pK9Yg==} engines: {node: '>=18'} cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.25.8': + resolution: {integrity: sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.25.6': resolution: {integrity: sha512-aoLF2c3OvDn2XDTRvn8hN6DRzVVpDlj2B/F66clWd/FHLiHaG3aVZjxQX2DYphA5y/evbdGvC6Us13tvyt4pWg==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.25.8': + resolution: {integrity: sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.25.6': resolution: {integrity: sha512-2SkqTjTSo2dYi/jzFbU9Plt1vk0+nNg8YC8rOXXea+iA3hfNJWebKYPs3xnOUf9+ZWhKAaxnQNUf2X9LOpeiMQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.25.8': + resolution: {integrity: sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.25.6': resolution: {integrity: sha512-b967hU0gqKd9Drsh/UuAm21Khpoh6mPBSgz8mKRq4P5mVK8bpA+hQzmm/ZwGVULSNBzKdZPQBRT3+WuVavcWsQ==} engines: {node: '>=18'} cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.25.8': + resolution: {integrity: sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.25.6': resolution: {integrity: sha512-SZHQlzvqv4Du5PrKE2faN0qlbsaW/3QQfUUc6yO2EjFcA83xnwm91UbEEVx4ApZ9Z5oG8Bxz4qPE+HFwtVcfyw==} engines: {node: '>=18'} cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.25.8': + resolution: {integrity: sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.25.6': resolution: {integrity: sha512-aHWdQ2AAltRkLPOsKdi3xv0mZ8fUGPdlKEjIEhxCPm5yKEThcUjHpWB1idN74lfXGnZ5SULQSgtr5Qos5B0bPw==} engines: {node: '>=18'} cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.25.8': + resolution: {integrity: sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.25.6': resolution: {integrity: sha512-VgKCsHdXRSQ7E1+QXGdRPlQ/e08bN6WMQb27/TMfV+vPjjTImuT9PmLXupRlC90S1JeNNW5lzkAEO/McKeJ2yg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.25.8': + resolution: {integrity: sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.25.6': resolution: {integrity: sha512-WViNlpivRKT9/py3kCmkHnn44GkGXVdXfdc4drNmRl15zVQ2+D2uFwdlGh6IuK5AAnGTo2qPB1Djppj+t78rzw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.25.8': + resolution: {integrity: sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.25.6': resolution: {integrity: sha512-wyYKZ9NTdmAMb5730I38lBqVu6cKl4ZfYXIs31Baf8aoOtB4xSGi3THmDYt4BTFHk7/EcVixkOV2uZfwU3Q2Jw==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.25.8': + resolution: {integrity: sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.25.6': resolution: {integrity: sha512-KZh7bAGGcrinEj4qzilJ4hqTY3Dg2U82c8bv+e1xqNqZCrCyc+TL9AUEn5WGKDzm3CfC5RODE/qc96OcbIe33w==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.25.8': + resolution: {integrity: sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.25.6': resolution: {integrity: sha512-9N1LsTwAuE9oj6lHMyyAM+ucxGiVnEqUdp4v7IaMmrwb06ZTEVCIs3oPPplVsnjPfyjmxwHxHMF8b6vzUVAUGw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.25.8': + resolution: {integrity: sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.25.6': resolution: {integrity: sha512-A6bJB41b4lKFWRKNrWoP2LHsjVzNiaurf7wyj/XtFNTsnPuxwEBWHLty+ZE0dWBKuSK1fvKgrKaNjBS7qbFKig==} engines: {node: '>=18'} cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.25.8': + resolution: {integrity: sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-arm64@0.25.6': resolution: {integrity: sha512-IjA+DcwoVpjEvyxZddDqBY+uJ2Snc6duLpjmkXm/v4xuS3H+3FkLZlDm9ZsAbF9rsfP3zeA0/ArNDORZgrxR/Q==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] + '@esbuild/netbsd-arm64@0.25.8': + resolution: {integrity: sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-x64@0.25.6': resolution: {integrity: sha512-dUXuZr5WenIDlMHdMkvDc1FAu4xdWixTCRgP7RQLBOkkGgwuuzaGSYcOpW4jFxzpzL1ejb8yF620UxAqnBrR9g==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.25.8': + resolution: {integrity: sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + '@esbuild/openbsd-arm64@0.25.6': resolution: {integrity: sha512-l8ZCvXP0tbTJ3iaqdNf3pjaOSd5ex/e6/omLIQCVBLmHTlfXW3zAxQ4fnDmPLOB1x9xrcSi/xtCWFwCZRIaEwg==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-arm64@0.25.8': + resolution: {integrity: sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.25.6': resolution: {integrity: sha512-hKrmDa0aOFOr71KQ/19JC7az1P0GWtCN1t2ahYAf4O007DHZt/dW8ym5+CUdJhQ/qkZmI1HAF8KkJbEFtCL7gw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.25.8': + resolution: {integrity: sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/openharmony-arm64@0.25.6': resolution: {integrity: sha512-+SqBcAWoB1fYKmpWoQP4pGtx+pUUC//RNYhFdbcSA16617cchuryuhOCRpPsjCblKukAckWsV+aQ3UKT/RMPcA==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] + '@esbuild/openharmony-arm64@0.25.8': + resolution: {integrity: sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + '@esbuild/sunos-x64@0.25.6': resolution: {integrity: sha512-dyCGxv1/Br7MiSC42qinGL8KkG4kX0pEsdb0+TKhmJZgCUDBGmyo1/ArCjNGiOLiIAgdbWgmWgib4HoCi5t7kA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.25.8': + resolution: {integrity: sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.25.6': resolution: {integrity: sha512-42QOgcZeZOvXfsCBJF5Afw73t4veOId//XD3i+/9gSkhSV6Gk3VPlWncctI+JcOyERv85FUo7RxuxGy+z8A43Q==} engines: {node: '>=18'} cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.25.8': + resolution: {integrity: sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.25.6': resolution: {integrity: sha512-4AWhgXmDuYN7rJI6ORB+uU9DHLq/erBbuMoAuB4VWJTu5KtCgcKYPynF0YI1VkBNuEfjNlLrFr9KZPJzrtLkrQ==} engines: {node: '>=18'} cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.25.8': + resolution: {integrity: sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.25.6': resolution: {integrity: sha512-NgJPHHbEpLQgDH2MjQu90pzW/5vvXIZ7KOnPyNBm92A6WgZ/7b6fJyUBjoumLqeOQQGqY2QjQxRo97ah4Sj0cA==} engines: {node: '>=18'} cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.25.8': + resolution: {integrity: sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@esm-bundle/chai@4.3.4-fix.0': resolution: {integrity: sha512-26SKdM4uvDWlY8/OOOxSB1AqQWeBosCX3wRYUZO7enTAj03CtVxIiCimYVG2WpULcyV51qapK4qTovwkUr5Mlw==} @@ -441,8 +597,8 @@ packages: resolution: {integrity: sha512-DDzWunkxXLtXJTxBf4EioXLwhuqdA2VzdTmOzWrw4Z4Qnms/YM67q36yajwNohAajPYyRz5DayU0ikrceFXyVw==} hasBin: true - '@git.zone/tstest@2.3.1': - resolution: {integrity: sha512-VrgVhh3xJFIuBd0nRyujrXvCMaPZokGzbGesOCLDs4Qs4cGvUkf6WVMwKT5A73fn6YPZK79iTp9OqBHdV67OPw==} + '@git.zone/tstest@2.3.2': + resolution: {integrity: sha512-FwWU2yt8UBfua7JZD0Q7mUtzioOE8PQTeA6U6qhhuwjgaQq8bYm8RcwbDZD5wLQAXaniJ5SVfJcDJsyCNDjmUg==} hasBin: true '@hapi/bourne@3.0.0': @@ -492,32 +648,29 @@ packages: '@mixmark-io/domino@2.2.0': resolution: {integrity: sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw==} - '@module-federation/error-codes@0.16.0': - resolution: {integrity: sha512-TfmA45b8vvISniGudMg8jjIy1q3tLPon0QN/JdFp5f8AJ8/peICN5b+dkEQnWsAVg2fEusYhk9dO7z3nUeJM8A==} + '@module-federation/error-codes@0.17.0': + resolution: {integrity: sha512-+pZ12frhaDqh4Xs/MQj4Vu4CAjnJTiEb8Z6fqPfn/TLHh4YLWMOzpzxGuMFDHqXwMb3o8FRAUhNB0eX2ZmhwTA==} - '@module-federation/runtime-core@0.16.0': - resolution: {integrity: sha512-5SECQowG4hlUVBRk/y6bnYLfxbsl5NcMmqn043WPe7NDOhGQWbTuYibJ3Bk+ZBv5U4uYLEmXipBGDc1FKsHklQ==} + '@module-federation/runtime-core@0.17.0': + resolution: {integrity: sha512-MYwDDevYnBB9gXFfNOmJVIX5XZcbCHd0dral7gT7yVmlwOhbuGOLlm2dh2icwwdCYHA9AFDCfU9l1nJR4ex/ng==} - '@module-federation/runtime-tools@0.16.0': - resolution: {integrity: sha512-OzmXNluXBQ2E6znzX4m9CJt1MFHVGmbN8c8MSKcYIDcLzLSKBQAiaz9ZUMhkyWx2YrPgD134glyPEqJrc+fY8A==} + '@module-federation/runtime-tools@0.17.0': + resolution: {integrity: sha512-t4QcKfhmwOHedwByDKUlTQVw4+gPotySYPyNa8GFrBSr1F6wcGdGyOhzP+PdgpiJLIM03cB6V+IKGGHE28SfDQ==} - '@module-federation/runtime@0.16.0': - resolution: {integrity: sha512-6o84WI8Qhc9O3HwPLx89kTvOSkyUOHQr73R/zr0I04sYhlMJgw5xTwXeGE7bQAmNgbJclzW9Kh7JTP7+3o3CHg==} + '@module-federation/runtime@0.17.0': + resolution: {integrity: sha512-eMtrtCSSV6neJpMmQ8WdFpYv93raSgsG5RiAPsKUuSCXfZ5D+yzvleZ+gPcEpFT9HokmloxAn0jep50/1upTQw==} - '@module-federation/sdk@0.16.0': - resolution: {integrity: sha512-UXJW1WWuDoDmScX0tpISjl4xIRPzAiN62vg9etuBdAEUM+ja9rz/zwNZaByiUPFS2aqlj2RHenCRvIapE8mYEg==} + '@module-federation/sdk@0.17.0': + resolution: {integrity: sha512-tjrNaYdDocHZsWu5iXlm83lwEK8A64r4PQB3/kY1cW1iOvggR2RESLAWPxRJXC2cLF8fg8LDKOBdgERZW1HPFA==} - '@module-federation/webpack-bundler-runtime@0.16.0': - resolution: {integrity: sha512-yqIDQTelJZP0Rxml0OXv4Er8Kbdxy7NFh6PCzPwDFWI1SkiokJ3uXQJBvtlxZ3lOnCDYOzdHstqa8sJG4JP02Q==} + '@module-federation/webpack-bundler-runtime@0.17.0': + resolution: {integrity: sha512-o8XtXwqTDlqLgcALOfObcCbqXvUcSDHIEXrkcb4W+I8GJY7IqV0+x6rX4mJ3f59tca9qOF8zsZsOA6BU93Pvgw==} '@mongodb-js/saslprep@1.3.0': resolution: {integrity: sha512-zlayKCsIjYb7/IdfqxorK5+xUMyi4vOKcFy10wKJYc63NSdKI8mNME+uJqfatkPmOSMMUiojrL58IePKBm3gvQ==} - '@napi-rs/wasm-runtime@0.2.12': - resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} - - '@napi-rs/wasm-runtime@1.0.0': - resolution: {integrity: sha512-OInwPIZhcQ+aWOBFMUXzv95RLDTBRPaNPm5kSFJaL3gVAMVxrzc0YXNsVeLPHf+4sTviOy2e5wZdvKILb7dC/w==} + '@napi-rs/wasm-runtime@1.0.1': + resolution: {integrity: sha512-KVlQ/jgywZpixGCKMNwxStmmbYEMyokZpCf2YuIChhfJA2uqfAKNEM8INz7zzTo55iEXfBhIIs3VqYyqzDLj8g==} '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -562,12 +715,12 @@ packages: '@open-wc/testing@4.0.0': resolution: {integrity: sha512-KI70O0CJEpBWs3jrTju4BFCy7V/d4tFfYWkg8pMzncsDhD7TYNHLw5cy+s1FHXIgVFetnMDhPpwlKIPvtTQW7w==} - '@oxc-project/runtime@0.77.2': - resolution: {integrity: sha512-oqzN82vVbqK6BnUuYDlBMlMr8mEeysMn/P8HbiB3j5rD04JvIfONCfh6SbtJTxhp1C4cjLi1evrtVTIptrln7Q==} + '@oxc-project/runtime@0.77.3': + resolution: {integrity: sha512-vsC/ewcGJ7xXnnwZkku7rpPH5Lxb5g4J+V6lD9eBTnRLmXVXM7Qu50y+ozD+UD5IXaSoVOvVMGTT4YSNCz2MQQ==} engines: {node: '>=6.9.0'} - '@oxc-project/types@0.77.2': - resolution: {integrity: sha512-+ZFWJF8ZBTOIO5PiNohNIw7JBzJCybScfrhLh65tcHCAtqaQkVDonjRD1HmMV/RF3rtt3r88hzSyTqvXs4j7vw==} + '@oxc-project/types@0.77.3': + resolution: {integrity: sha512-5Vh+neJhhxuF0lYCjZXbxjqm2EO6YJ1jG+KuHntrd6VY67OMpYhWq2cZhUhy+xL9qLJVJRaeII7Xj9fciA6v7A==} '@pdf-lib/standard-fonts@1.0.0': resolution: {integrity: sha512-hU30BK9IUN/su0Mn9VdlVKsWBS6GyhVfqjwl1FjZN4TxP6cCw0jP2w7V3Hf5uX7M0AZJ16vey9yE0ny7Sa59ZA==} @@ -656,6 +809,9 @@ packages: '@push.rocks/smartenv@5.0.12': resolution: {integrity: sha512-tDEFwywzq0FNzRYc9qY2dRl2pgQuZG0G2/yml2RLWZWSW+Fn1EHshnKOGHz8o77W7zvu4hTgQQX42r/JY5XHTg==} + '@push.rocks/smartenv@5.0.13': + resolution: {integrity: sha512-ACXmUcHZHl2CF2jnVuRw9saRRrZvJblCRs2d+K5aLR1DfkYFX3eA21kcMlKeLisI3aGNbIj9vz/rowN5qkRkfA==} + '@push.rocks/smartexit@1.0.23': resolution: {integrity: sha512-WmwKYcwbHBByoABhHHB+PAjr5475AtD/xBh1mDcqPrFsOOUOZq3BBUdpq25wI3ccu/SZB5IwaimiVzadls6HkA==} @@ -728,8 +884,11 @@ packages: '@push.rocks/smartopen@2.0.0': resolution: {integrity: sha512-eVT0GhtQ2drb95j/kktYst/Toh1zCwCqjTJFYtaYFUnnBnBUajPtBZDFnPQo01DN8JxoeCTo8jggq+PCvzcfww==} - '@push.rocks/smartpath@5.0.18': - resolution: {integrity: sha512-kIyRTlOoeEth5b4Qp8KPUxNOGNdvhb2aD0hbHfF3oGTQ0xnDdgB1l03/4bIoapHG48OrTgh4uQ5tUorykgdOzw==} + '@push.rocks/smartpath@5.1.0': + resolution: {integrity: sha512-pJ4UGATHV/C6Dw5DU0D3MJaPMASlKAgeS+Hl9dkhD2ceYArn86Ky3Z/g7LNj40Oz6cUe77/AP1chztmJZISrpw==} + + '@push.rocks/smartpath@6.0.0': + resolution: {integrity: sha512-r94u1MbBaIOSy+517PZp2P7SuZPSe9LkwJ8l3dXQKHeIOri/zDxk/RQPiFM+j4N9301ztkRyhvRj7xgUDroOsg==} '@push.rocks/smartpdf@3.2.2': resolution: {integrity: sha512-SKGNHz7HsgU6uVSVrRCL13kIeAFMvd4oQBLI3VmPcMkxXfWNPJkb6jKknqP8bhobWA/ryJS+3Dj///UELUvVKQ==} @@ -743,8 +902,8 @@ packages: '@push.rocks/smartrequest@2.1.0': resolution: {integrity: sha512-3eHLTRInHA+u+W98TqJwgTES7rRimBAsJC4JxVNQC3UUezmblAhM5/TIQsEBQTsbjAY8SeQKy6NHzW6iTiaD8w==} - '@push.rocks/smartrouter@1.3.2': - resolution: {integrity: sha512-JtkxClN4CaHXMSeLDNvfWPwiVEPdEoQVSX2ee3gLgbXNO9dt9hvXdIhFrnFeLwyeA6M8nJdb9SqjrjZroYJsxw==} + '@push.rocks/smartrouter@1.3.3': + resolution: {integrity: sha512-1+xZEnWlhzqLWAaJ1zFNhQ0zgbfCWQl1DBT72LygLxTs+P0K8AwJKgqo/IX6CT55kGCFnPAZIYSbVJlGsgrB0w==} '@push.rocks/smartrx@3.0.10': resolution: {integrity: sha512-USjIYcsSfzn14cwOsxgq/bBmWDTTzy3ouWAnW5NdMyRRzEbmeNrvmy6TRqNeDlJ2PsYNTt1rr/zGUqvIy72ITg==} @@ -764,8 +923,8 @@ packages: '@push.rocks/smartspawn@3.0.3': resolution: {integrity: sha512-DyrGPV69wwOiJgKkyruk5hS3UEGZ99xFAqBE9O2nM8VXCRLbbty3xt1Ug5Z092ZZmJYaaGMSnMw3ijyZJFCT0Q==} - '@push.rocks/smartstate@2.0.21': - resolution: {integrity: sha512-J24rxs+1uM4lpPoz2UxzYEyt+sveaxZU7G9DSD6vAFcibLY9xJ0RtHkQBL/1iLzpC2bZY4JdaQ3uNuyzVfbOFA==} + '@push.rocks/smartstate@2.0.23': + resolution: {integrity: sha512-ctEfk/F+3A48IPAVreaErrKxiwiFyAQiSBguYy1njjeEJnzARYvsOZUGHbTLc12KhyB8VzKC3+4Qn6MdTZCZOg==} '@push.rocks/smartstream@2.0.8': resolution: {integrity: sha512-GlF/9cCkvBHwKa3DK4DO5wjfSgqkj6gAS4TrY9uD5NMHu9RQv4WiNrElTYj7iCEpnZgUnLO3tzw1JA3NRIMnnA==} @@ -924,133 +1083,133 @@ packages: resolution: {integrity: sha512-6KGnf2vHR7hW4mQpAD7gkDVL3QVML3jb/No/Uw+qCqvs0TaQr60Yjm+CXoLxJNCKwmrL+I1yx8mhAHBHfYJiJA==} deprecated: This package has been deprecated in favour of the new package at @push.rocks/smarturl - '@rolldown/binding-android-arm64@1.0.0-beta.28': - resolution: {integrity: sha512-hLb7k11KBXtO8xc7DO1OWriXWM/2FKv/R510NChqpzoI6au2aJbGUQTKJw4D8Mj7oHfY2Nwzy+sJBgWx/P8IKw==} + '@rolldown/binding-android-arm64@1.0.0-beta.29': + resolution: {integrity: sha512-pDv7gg59Gdy80eFmMkEqXEaoJi3Y9W/a9T3z9M4t8Ma8aVXNldvSy9UgtlX7AK7DPqF8tULnmIZ2Z3rvGMz/NQ==} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.0.0-beta.28': - resolution: {integrity: sha512-yRhjS3dcjfAasnJ2pTyCVm5rtfOmkGIglrFh+n9J7Zi4owJFsVVpbY7dOE3T1Op3mQ94apGN+Twtv6CIk6GFIQ==} + '@rolldown/binding-darwin-arm64@1.0.0-beta.29': + resolution: {integrity: sha512-fPqR6TfTqbzgKKCQYtcCS+Dms91YcptTbdlwJ13DxOUgMe8LgDIVsLLlEykfm7ijJd5mM4zNw0Hr2CJb6kvQZw==} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-beta.28': - resolution: {integrity: sha512-eOX0pjz++yVdqcDqnoZeVXUHxak2AcEgQBlEKJYaeJj+O5V3r3wSnlDVSkgD6YEAHo2IlIa89+qFHv529esY6w==} + '@rolldown/binding-darwin-x64@1.0.0-beta.29': + resolution: {integrity: sha512-7Z4qosL0xN8i6++txHOEPCVP3/lcGLOvftUJOWATZ5aDkDskwcZDa66BGiJt/K1/DgW4kpRVmnGWUWAORHBbFA==} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-beta.28': - resolution: {integrity: sha512-WV1QYVMkkp/568iaEBoZhD1axFLhSO+ybCJlbmHkTFMub4wb5bmKtfuaBgjUVDDSB6JfZ6UL3Z0Q9VVHENOgsg==} + '@rolldown/binding-freebsd-x64@1.0.0-beta.29': + resolution: {integrity: sha512-0HLTfPW5Glh608s76qgayN/nPsXPchNUumavf7W5nh1eMG6qBsOO7Q1QaK0v4un7qtsn3IA/1Tgq0ZgNc0dbeg==} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.28': - resolution: {integrity: sha512-ug/Wh9Tz4XB/CsYvaI2r5uC3vE3zrP5iDIsD+uEgFPV71BOQOfXFgZbC1zv+J1adkzWACr578aGQqW9jRj0gVA==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.29': + resolution: {integrity: sha512-QNboxdVTJOZS4zP8kA2+XUwAegejd5QNSH5zVR4neqG2AfbxRcMFzSVRkJHN6yDaaKweD/4sUvXfmef6p/7zsw==} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.28': - resolution: {integrity: sha512-h3hzQuP+5l47wxn9+A39n1Q3i4mAvbNFJCZ8EZLrkqfsecfeZ5btIbDJTVAIQTy+uPr7uluAHIf11Jw+YkWjOQ==} + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.29': + resolution: {integrity: sha512-hzBmOtYdC4369XxN2SNJ3oBlXKWNif3ieWBT+oh/qvAeox4fQR0ngqyh+kIGOufBnP5Zc2rqJf9LzIbJw3Tx/Q==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.28': - resolution: {integrity: sha512-oW5LydGtfdT8TI5HTybxi1DdMCXCmVE1ak4VrSmVKsbBZyE0bDgL1UvTS1OOvuq4PM24zQHIuSNOpgLXgVj4vQ==} + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.29': + resolution: {integrity: sha512-6B35GmFJJ4RX88OgubrnUmuJBUgRh6/OTXIpy8m/VUnoc683lufIPo26HW/0LxLgxp2GM7KHr3LOULcVxbqq4Q==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-arm64-ohos@1.0.0-beta.28': - resolution: {integrity: sha512-yeAAPMgssEkTCouUSYLrSWm+EXYBFI+ZTe8BVQkY5le51OCbqFNibtYkKZNHZBdhNRjWcSKSIuXN4MAXBz1j+g==} + '@rolldown/binding-linux-arm64-ohos@1.0.0-beta.29': + resolution: {integrity: sha512-z3ru8fUCunQM8q9I7RbDVMT5cxzxVVVBNNKM5/qAQQrdObd1u8g0LR5z0yLtaFWzybwLVdPtJDRcXtLm5tOBFA==} cpu: [arm64] os: [openharmony] - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.28': - resolution: {integrity: sha512-xWsylmva9L4ZFc28A9VGlF9fnrFpVxVC+kKqrBoqz2l/p5b4zRoFNtnSecivnxuPeR5Ga6W6lnpwGeWDvqBZ1Q==} + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.29': + resolution: {integrity: sha512-n6fs4L7j99MIiI6vKhQDdyScv4/uMAPtIMkB0zGbUX8MKWT1osym1hvWVdlENjnS/Phf0zzhjyOgoFDzdhI1cQ==} cpu: [x64] os: [linux] - '@rolldown/binding-linux-x64-musl@1.0.0-beta.28': - resolution: {integrity: sha512-IdtRNm70EH7/1mjqXJc4pa2MoAxo/xl9hN8VySG9BQuYfhQz+JDC+FZBc+krlVUO3cTJz/o4xI/x4kA+rLKTwA==} + '@rolldown/binding-linux-x64-musl@1.0.0-beta.29': + resolution: {integrity: sha512-C5hcJgtDN4rp6/WsPTQSDVUWrdnIC//ynMGcUIh1O0anm9KnSy47zKQ5D9EqtlEKvO+2PPqmyUVJ2DTq18nlVA==} cpu: [x64] os: [linux] - '@rolldown/binding-wasm32-wasi@1.0.0-beta.28': - resolution: {integrity: sha512-jS2G0+GtUCVcglCefScxgXeLJal0UAvVwvpy3reoC07K16k8WM/lXoYsZdpw34d5ONg0XcZpcokzA9R5K2o0lQ==} + '@rolldown/binding-wasm32-wasi@1.0.0-beta.29': + resolution: {integrity: sha512-lMN1IBItdZFO182Sdus9oVuNDqyIymn/bsR5KwgeGaiqLsrmpQHBSLwkS/nKJO1nzYlpGDRugFSpnrSJ5ZmihQ==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.28': - resolution: {integrity: sha512-K6SO4e48aqpE/E6iEaXYG1kVX3owLierZUngP44f7s6WcnNUXsX8aborZZkKDKjgfk654M/EjSI7riPQXfynIA==} + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.29': + resolution: {integrity: sha512-0UrXCUAOrbWdyVJskzjtne/4d3YMMhhhpBnob3SeF4jAvbKYqPhCZJ71pP7yUpvbowGXXTnHWpKfitg4Sovmtw==} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.28': - resolution: {integrity: sha512-IIAecHvlUY/oxADfA6sZFfmRx0ajY+U1rAPFT77COp11kf7irUJeD9GskFzCm+7Wm+q8Vogyh0KWqqd6f5Azgg==} + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.29': + resolution: {integrity: sha512-YX0OYL1dcB7rPnsndpEa68fytYyZZj1iaWzH7momFB2oBS2lXAe1UrrDWcdLoUXdzPIyzpvtBCiS2XcDgYG7ag==} cpu: [ia32] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.28': - resolution: {integrity: sha512-eMGdPBhNkylib+7eaeC69axEjg5Y1Vie5LoKDBVaZ71jYTmtrUdna9PTUblkCIChNTQKlgxpi/eCaYmhId0aYA==} + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.29': + resolution: {integrity: sha512-azrPWbV+NZiCFNs59AgH9Y6vFKHoAI6T/XtKKsoLxkPyP1LpbdgL5eqRfeWz+GCAUY9qhDOC4hH1GjFG8PrZIg==} cpu: [x64] os: [win32] - '@rolldown/pluginutils@1.0.0-beta.28': - resolution: {integrity: sha512-fe3/1HZ3qJmXvkGv1kacKq2b+x9gbcyF1hnmLBVrRFEQWoOcRapQjXf8+hgyxI0EJAbnKEtrp5yhohQCFCjycw==} + '@rolldown/pluginutils@1.0.0-beta.29': + resolution: {integrity: sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==} - '@rspack/binding-darwin-arm64@1.4.8': - resolution: {integrity: sha512-PQRNjC3Fc0avpx8Gk+sT5P+HAXxTSzmBA8lU7QLlmbW5GGXO2taVhNstbZ4oxyIX5uDVZpQ2yQ2E0zXirK6/UQ==} + '@rspack/binding-darwin-arm64@1.4.10': + resolution: {integrity: sha512-PraYGuVSzvEwdoYC8T70qI/8j1QeUe2sysiWmjSdxUpxJsDfw35hK9TfxULeAJULlAUAiiXs03hdZk29DBc3ow==} cpu: [arm64] os: [darwin] - '@rspack/binding-darwin-x64@1.4.8': - resolution: {integrity: sha512-ZnPZbo1dhhbfevxSS99y8w02xuEbxyiV1HaUie/S8jzy9DPmk+4Br+DddufnibPNU85e3BZKjp+HDFMYkdn6cg==} + '@rspack/binding-darwin-x64@1.4.10': + resolution: {integrity: sha512-rWTSJ08TE0uqUjqAHkTmWqJu+FLSJ70A199Fk9k/FLZTS8UtHjuzZW7rv4qIN2nwJJLherxFUnP6y69cHuaGNw==} cpu: [x64] os: [darwin] - '@rspack/binding-linux-arm64-gnu@1.4.8': - resolution: {integrity: sha512-mJK9diM4Gd8RIGO90AZnl27WwUuAOoRplPQv9G+Vxu2baCt1xE1ccf8PntIJ70/rMgsUdnmkR5qQBaGxhAMJvA==} + '@rspack/binding-linux-arm64-gnu@1.4.10': + resolution: {integrity: sha512-cs6yu250FzRU1hl+02VLoJRdzbAveTOqvREeHgqL5AiTc6q1dQo1IZ16/Qt4+g0DMjnvM66pELRIO2nphXL8aA==} cpu: [arm64] os: [linux] - '@rspack/binding-linux-arm64-musl@1.4.8': - resolution: {integrity: sha512-+n9QxeDDZKwVB4D6cwpNRJzsCeuwNqd/fwwbMQVTctJ+GhIHlUPsE8y5tXN7euU7kDci81wMBBFlt6LtXNcssA==} + '@rspack/binding-linux-arm64-musl@1.4.10': + resolution: {integrity: sha512-NnOAoWkpZvOa+xM7NAJg25O+tSKt6xCXoga+gOw5XPni1NxHDc3PNh5bU6fAmc2Z29YLLdxeVqPmIDfdk1EkDg==} cpu: [arm64] os: [linux] - '@rspack/binding-linux-x64-gnu@1.4.8': - resolution: {integrity: sha512-rEypDlbIfv9B/DcZ2vYVWs56wo5VWE5oj/TvM9JT+xuqwvVWsN/A2TPMiU6QBgOKGXat3EM/MEgx8NhNZUpkXg==} + '@rspack/binding-linux-x64-gnu@1.4.10': + resolution: {integrity: sha512-FcaBqMclADWiqX+Mez15kggwaVYZkoEqDiQwYRpYDbBMsiJEtfp41GnNRstTWxYxFbcmuWoZl2cYy+LepR21ag==} cpu: [x64] os: [linux] - '@rspack/binding-linux-x64-musl@1.4.8': - resolution: {integrity: sha512-o9OsvJ7olH0JPU9exyIaYTNQ+aaR5CNAiinkxr+LkV2i3DMIi/+pDVveDiodYjVhzZjWfsP/z8QPO4c6Z06bEw==} + '@rspack/binding-linux-x64-musl@1.4.10': + resolution: {integrity: sha512-vgRQhCw+C/Nxv6MZVNUkPzSXs6kIWHIrGKUvOM1ceeAkT+jNFEQdukkQ5LsYgEqEwP9ezWubxN3IGrMxyimlPw==} cpu: [x64] os: [linux] - '@rspack/binding-wasm32-wasi@1.4.8': - resolution: {integrity: sha512-hF5gqT0aQ66VUclM2A9MSB6zVdEJqzp++TAXaShBK/eVBI0R4vWrMfJ2TOdzEsSbg4gXgeG4swURpHva3PKbcA==} + '@rspack/binding-wasm32-wasi@1.4.10': + resolution: {integrity: sha512-lk647+Ob3yvVS2FgW0vCfo/gz9h0Q7v9HGBFcsD1uW0/tSqXMa2s9ZvIn+B7S9tRgIoosXEAuq8NeCXKGWVj5Q==} cpu: [wasm32] - '@rspack/binding-win32-arm64-msvc@1.4.8': - resolution: {integrity: sha512-umD0XzesJq4nnStv9/2/VOmzNUWHfLMIjeHmiHYHpc7iVC0SkXgIdc6Ac7c+g2q7/V3/MFxL66Y60oy7lQE3fg==} + '@rspack/binding-win32-arm64-msvc@1.4.10': + resolution: {integrity: sha512-9mB3kh4pKaY4wFosZwuxb5EUtt7vv/uKW3OF4TJDC35bH7r54s+YYpHyXROT304r6URl4b6HNHlysL2m7BLihg==} cpu: [arm64] os: [win32] - '@rspack/binding-win32-ia32-msvc@1.4.8': - resolution: {integrity: sha512-Uu+F/sxz7GgIMbuCCZVOD1HPjoHQdyrFHi/TE2EmuZzs9Ji9a9mtNJNrKc8+h9YFpaLeade7cbMDjRu4MHxiVA==} + '@rspack/binding-win32-ia32-msvc@1.4.10': + resolution: {integrity: sha512-DPlyLZDUWkNcFI7zp1BQVVnihd4j/hCIbxqvIKvUt7whIVYMP52i8lCsa52uNGBSj7BcbcKAFElXC9dHVvoQGA==} cpu: [ia32] os: [win32] - '@rspack/binding-win32-x64-msvc@1.4.8': - resolution: {integrity: sha512-BVkOfJDZnexHNpGgc/sWENyGrsle1jUQTeUEdSyNYsu4Elsgk/T9gnGK8xyLRd2c6k20M5FN38t0TumCp4DscQ==} + '@rspack/binding-win32-x64-msvc@1.4.10': + resolution: {integrity: sha512-FEE6OM0Wh7nj90+1ARXojT0Dnqox9UlIUIj7MQmX09yeMtckR+HITeq75F8y0l7HUvKOl2zQovmenk1KgyJV8Q==} cpu: [x64] os: [win32] - '@rspack/binding@1.4.8': - resolution: {integrity: sha512-VKE+2InUdudBUOn3xMZfK9a6KlOwmSifA0Nupjsh7N9/brcBfJtJGSDCnfrIKCq54FF+QAUCgcNAS0DB4/tZmw==} + '@rspack/binding@1.4.10': + resolution: {integrity: sha512-awiXN7qTTTLWFThbJFL+M4k1if4sb17xKA5TaHbbxs0qKSlpe3adwNrNHaNU2WOQz+PbuF++OMyd+4gUusKuVg==} - '@rspack/core@1.4.8': - resolution: {integrity: sha512-ARHuZ+gx3P//RIUKSjk/riQUn/D5tCwCWbfgeM5pk/Ti2JsgVnqiP9Sksge8JovVPf7b6Zgw73Cq5FpX4aOXeQ==} + '@rspack/core@1.4.10': + resolution: {integrity: sha512-eK3H328pihiM1323OlaClKJ9WlqgGBZpcR5AqFoWsG0KD01tKCJOeZEgtCY6paRLrsQrEJwBrLntkG0fE7WNGg==} engines: {node: '>=16.0.0'} peerDependencies: '@swc/helpers': '>=0.5.1' @@ -1464,8 +1623,8 @@ packages: '@types/node-forge@1.3.13': resolution: {integrity: sha512-zePQJSW5QkwSHKRApqWCVKeKoSOt4xvEnLENZPjyvm9Ezdf/EyDeJM7jqLzOwjVICQQzvLZ63T55MKdJB5H6ww==} - '@types/node@24.0.14': - resolution: {integrity: sha512-4zXMWD91vBLGRtHK3YbIoFMia+1nqEz72coM42C5ETjnNCa/heoj7NT1G67iAfOqMmcfhuCZ4uNpyz8EjlAejw==} + '@types/node@22.16.5': + resolution: {integrity: sha512-bJFoMATwIGaxxx8VJPeM8TonI8t579oRvgAuT8zFugJsJZgzqv0Fu8Mhp68iecjzG7cnN3mO2dJQ5uUM2EFrgQ==} '@types/parse5@6.0.3': resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} @@ -1842,8 +2001,8 @@ packages: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} - chromium-bidi@7.1.1: - resolution: {integrity: sha512-L2BKQ0rSLADgbPMIdDh3wnYHs3EiUiMay2Sq0CTolheaADmWIf6Pe+T9LJRcnh5rcMz0U7MVk0cQVvKsGRMa1g==} + chromium-bidi@7.2.0: + resolution: {integrity: sha512-gREyhyBstermK+0RbcJLbFhcQctg92AGgDe/h/taMJEOLRdtSswBAO9KmvltFSQWgM2LrwWu5SIuEUbdm3JsyQ==} peerDependencies: devtools-protocol: '*' @@ -2212,6 +2371,11 @@ packages: engines: {node: '>=18'} hasBin: true + esbuild@0.25.8: + resolution: {integrity: sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -2858,8 +3022,8 @@ packages: kuler@2.0.0: resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} - lenis@1.3.7: - resolution: {integrity: sha512-fKwUtSmdGMVrF7DFbSYmbhHb4+FAilk0Y8TxeK6rKhfZteRVCLLxgeW1RjGhwmHQBUny/K4B1szcswWx+nvuOg==} + lenis@1.3.8: + resolution: {integrity: sha512-LVeoMs6jZE1eu3gPsexndm+vk01pLFeq7P00vjIpI17saD52IYu8nPA4gX43elz8tp/TTCXcX6Em1MEjDl9NTw==} peerDependencies: '@nuxt/kit': '>=3.0.0' react: '>=17.0.0' @@ -3569,12 +3733,12 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - puppeteer-core@24.14.0: - resolution: {integrity: sha512-NO9XpCl+i8oB0zJp81iPhzMo2QK8/JTj4ramSvTpGCo9CPCNo4AZ8qVOGpSgXzlcOfOT3VHOkzTfPo08GOE5jA==} + puppeteer-core@24.15.0: + resolution: {integrity: sha512-2iy0iBeWbNyhgiCGd/wvGrDSo73emNFjSxYOcyAqYiagkYt5q4cPfVXaVDKBsukgc2fIIfLAalBZlaxldxdDYg==} engines: {node: '>=18'} - puppeteer@24.14.0: - resolution: {integrity: sha512-GB7suRDkp9pUnxpNGAORICQCtw11KFbg6U2iJXVTflzJLK5D1qzq8xOOmLgN/QnDBpDMdpn96ri52XkuN83Giw==} + puppeteer@24.15.0: + resolution: {integrity: sha512-HPSOTw+DFsU/5s2TUUWEum9WjFbyjmvFDuGHtj2X4YUz2AzOzvKMkT3+A3FR+E+ZefiX/h3kyLyXzWJWx/eMLQ==} engines: {node: '>=18'} hasBin: true @@ -3691,8 +3855,8 @@ packages: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} hasBin: true - rolldown@1.0.0-beta.28: - resolution: {integrity: sha512-QOANlVluwwrLP5snQqKfC2lv/KJphMkjh4V0gpw0K40GdKmhd8eShIGOJNAC51idk5cn3xI08SZTRWj0R2XlDw==} + rolldown@1.0.0-beta.29: + resolution: {integrity: sha512-EsoOi8moHN6CAYyTZipxDDVTJn0j2nBCWor4wRU45RQ8ER2qREDykXLr3Ulz6hBh6oBKCFTQIjo21i0FXNo/IA==} hasBin: true rss-parser@3.13.0: @@ -4061,8 +4225,8 @@ packages: resolution: {integrity: sha512-ZPtzy0hu4cZjv3z5NW9gfKnNLjoz4y6uv4HlelAjDK7sY/xOkKZv9xK/WQpcsBB3jEybChz9DPC2U/+cusjJVQ==} engines: {node: '>=18'} - undici-types@7.8.0: - resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==} + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} @@ -4119,8 +4283,8 @@ packages: resolution: {integrity: sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=} engines: {node: '>= 0.8'} - vfile-message@4.0.2: - resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + vfile-message@4.0.3: + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} @@ -4289,12 +4453,12 @@ snapshots: '@api.global/typedrequest': 3.1.10 '@api.global/typedrequest-interfaces': 3.0.19 '@api.global/typedsocket': 3.0.1 - '@cloudflare/workers-types': 4.20250718.0 + '@cloudflare/workers-types': 4.20250726.0 '@design.estate/dees-comms': 1.0.27 '@push.rocks/lik': 6.2.2 '@push.rocks/smartchok': 1.1.1 '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartenv': 5.0.12 + '@push.rocks/smartenv': 5.0.13 '@push.rocks/smartfeed': 1.0.11 '@push.rocks/smartfile': 11.2.5 '@push.rocks/smartjson': 5.0.20 @@ -4306,7 +4470,7 @@ snapshots: '@push.rocks/smartmime': 2.0.4 '@push.rocks/smartntml': 2.0.8 '@push.rocks/smartopen': 2.0.0 - '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpath': 5.1.0 '@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartrequest': 2.1.0 '@push.rocks/smartrx': 3.0.10 @@ -4908,7 +5072,7 @@ snapshots: dependencies: regenerator-runtime: 0.14.1 - '@cloudflare/workers-types@4.20250718.0': {} + '@cloudflare/workers-types@4.20250726.0': {} '@colors/colors@1.6.0': {} @@ -4938,15 +5102,15 @@ snapshots: '@push.rocks/smartjson': 5.0.20 '@push.rocks/smartmarkdown': 3.0.3 '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/smartrouter': 1.3.2 + '@push.rocks/smartrouter': 1.3.3 '@push.rocks/smartrx': 3.0.10 - '@push.rocks/smartstate': 2.0.21 + '@push.rocks/smartstate': 2.0.23 '@push.rocks/smartstring': 4.0.15 '@push.rocks/smarturl': 3.1.0 '@push.rocks/webrequest': 3.0.37 '@push.rocks/websetup': 3.0.19 '@push.rocks/webstore': 2.0.20 - lenis: 1.3.7 + lenis: 1.3.8 lit: 3.3.1 sweet-scroll: 4.0.0 transitivePeerDependencies: @@ -4986,81 +5150,159 @@ snapshots: '@esbuild/aix-ppc64@0.25.6': optional: true + '@esbuild/aix-ppc64@0.25.8': + optional: true + '@esbuild/android-arm64@0.25.6': optional: true + '@esbuild/android-arm64@0.25.8': + optional: true + '@esbuild/android-arm@0.25.6': optional: true + '@esbuild/android-arm@0.25.8': + optional: true + '@esbuild/android-x64@0.25.6': optional: true + '@esbuild/android-x64@0.25.8': + optional: true + '@esbuild/darwin-arm64@0.25.6': optional: true + '@esbuild/darwin-arm64@0.25.8': + optional: true + '@esbuild/darwin-x64@0.25.6': optional: true + '@esbuild/darwin-x64@0.25.8': + optional: true + '@esbuild/freebsd-arm64@0.25.6': optional: true + '@esbuild/freebsd-arm64@0.25.8': + optional: true + '@esbuild/freebsd-x64@0.25.6': optional: true + '@esbuild/freebsd-x64@0.25.8': + optional: true + '@esbuild/linux-arm64@0.25.6': optional: true + '@esbuild/linux-arm64@0.25.8': + optional: true + '@esbuild/linux-arm@0.25.6': optional: true + '@esbuild/linux-arm@0.25.8': + optional: true + '@esbuild/linux-ia32@0.25.6': optional: true + '@esbuild/linux-ia32@0.25.8': + optional: true + '@esbuild/linux-loong64@0.25.6': optional: true + '@esbuild/linux-loong64@0.25.8': + optional: true + '@esbuild/linux-mips64el@0.25.6': optional: true + '@esbuild/linux-mips64el@0.25.8': + optional: true + '@esbuild/linux-ppc64@0.25.6': optional: true + '@esbuild/linux-ppc64@0.25.8': + optional: true + '@esbuild/linux-riscv64@0.25.6': optional: true + '@esbuild/linux-riscv64@0.25.8': + optional: true + '@esbuild/linux-s390x@0.25.6': optional: true + '@esbuild/linux-s390x@0.25.8': + optional: true + '@esbuild/linux-x64@0.25.6': optional: true + '@esbuild/linux-x64@0.25.8': + optional: true + '@esbuild/netbsd-arm64@0.25.6': optional: true + '@esbuild/netbsd-arm64@0.25.8': + optional: true + '@esbuild/netbsd-x64@0.25.6': optional: true + '@esbuild/netbsd-x64@0.25.8': + optional: true + '@esbuild/openbsd-arm64@0.25.6': optional: true + '@esbuild/openbsd-arm64@0.25.8': + optional: true + '@esbuild/openbsd-x64@0.25.6': optional: true + '@esbuild/openbsd-x64@0.25.8': + optional: true + '@esbuild/openharmony-arm64@0.25.6': optional: true + '@esbuild/openharmony-arm64@0.25.8': + optional: true + '@esbuild/sunos-x64@0.25.6': optional: true + '@esbuild/sunos-x64@0.25.8': + optional: true + '@esbuild/win32-arm64@0.25.6': optional: true + '@esbuild/win32-arm64@0.25.8': + optional: true + '@esbuild/win32-ia32@0.25.6': optional: true + '@esbuild/win32-ia32@0.25.8': + optional: true + '@esbuild/win32-x64@0.25.6': optional: true + '@esbuild/win32-x64@0.25.8': + optional: true + '@esm-bundle/chai@4.3.4-fix.0': dependencies: '@types/chai': 4.3.20 @@ -5073,7 +5315,7 @@ snapshots: '@push.rocks/smartdelay': 3.0.5 '@push.rocks/smartfile': 11.2.5 '@push.rocks/smartlog': 3.1.8 - '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpath': 5.1.0 '@push.rocks/smartpromise': 4.2.3 typescript: 5.8.3 transitivePeerDependencies: @@ -5087,14 +5329,14 @@ snapshots: '@push.rocks/smartfile': 11.2.5 '@push.rocks/smartlog': 3.1.8 '@push.rocks/smartlog-destination-local': 9.0.2 - '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpath': 5.1.0 '@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartspawn': 3.0.3 - '@rspack/core': 1.4.8 + '@rspack/core': 1.4.10 '@types/html-minifier': 4.0.5 - esbuild: 0.25.6 + esbuild: 0.25.8 html-minifier: 4.0.0 - rolldown: 1.0.0-beta.28 + rolldown: 1.0.0-beta.29 typescript: 5.8.3 transitivePeerDependencies: - '@swc/helpers' @@ -5107,7 +5349,7 @@ snapshots: '@push.rocks/smartfile': 11.2.5 '@push.rocks/smartlog': 3.1.8 '@push.rocks/smartnpm': 2.0.4 - '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpath': 5.1.0 '@push.rocks/smartrequest': 2.1.0 '@push.rocks/smartshell': 3.2.3 transitivePeerDependencies: @@ -5119,7 +5361,7 @@ snapshots: '@push.rocks/smartshell': 3.2.3 tsx: 4.20.3 - '@git.zone/tstest@2.3.1(@aws-sdk/credential-providers@3.848.0)(socks@2.8.6)(typescript@5.8.3)': + '@git.zone/tstest@2.3.2(@aws-sdk/credential-providers@3.848.0)(socks@2.8.6)(typescript@5.8.3)': dependencies: '@api.global/typedserver': 3.0.74 '@git.zone/tsbundle': 2.5.1 @@ -5130,13 +5372,13 @@ snapshots: '@push.rocks/smartchok': 1.1.1 '@push.rocks/smartcrypto': 2.0.4 '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartenv': 5.0.12 + '@push.rocks/smartenv': 5.0.13 '@push.rocks/smartexpect': 2.5.0 '@push.rocks/smartfile': 11.2.5 '@push.rocks/smartjson': 5.0.20 '@push.rocks/smartlog': 3.1.8 '@push.rocks/smartmongo': 2.0.12(@aws-sdk/credential-providers@3.848.0)(socks@2.8.6) - '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpath': 5.1.0 '@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartrequest': 2.1.0 '@push.rocks/smarts3': 2.2.5 @@ -5198,7 +5440,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 24.0.14 + '@types/node': 22.16.5 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -5222,43 +5464,36 @@ snapshots: '@mixmark-io/domino@2.2.0': {} - '@module-federation/error-codes@0.16.0': {} + '@module-federation/error-codes@0.17.0': {} - '@module-federation/runtime-core@0.16.0': + '@module-federation/runtime-core@0.17.0': dependencies: - '@module-federation/error-codes': 0.16.0 - '@module-federation/sdk': 0.16.0 + '@module-federation/error-codes': 0.17.0 + '@module-federation/sdk': 0.17.0 - '@module-federation/runtime-tools@0.16.0': + '@module-federation/runtime-tools@0.17.0': dependencies: - '@module-federation/runtime': 0.16.0 - '@module-federation/webpack-bundler-runtime': 0.16.0 + '@module-federation/runtime': 0.17.0 + '@module-federation/webpack-bundler-runtime': 0.17.0 - '@module-federation/runtime@0.16.0': + '@module-federation/runtime@0.17.0': dependencies: - '@module-federation/error-codes': 0.16.0 - '@module-federation/runtime-core': 0.16.0 - '@module-federation/sdk': 0.16.0 + '@module-federation/error-codes': 0.17.0 + '@module-federation/runtime-core': 0.17.0 + '@module-federation/sdk': 0.17.0 - '@module-federation/sdk@0.16.0': {} + '@module-federation/sdk@0.17.0': {} - '@module-federation/webpack-bundler-runtime@0.16.0': + '@module-federation/webpack-bundler-runtime@0.17.0': dependencies: - '@module-federation/runtime': 0.16.0 - '@module-federation/sdk': 0.16.0 + '@module-federation/runtime': 0.17.0 + '@module-federation/sdk': 0.17.0 '@mongodb-js/saslprep@1.3.0': dependencies: sparse-bitfield: 3.0.3 - '@napi-rs/wasm-runtime@0.2.12': - dependencies: - '@emnapi/core': 1.4.5 - '@emnapi/runtime': 1.4.5 - '@tybys/wasm-util': 0.10.0 - optional: true - - '@napi-rs/wasm-runtime@1.0.0': + '@napi-rs/wasm-runtime@1.0.1': dependencies: '@emnapi/core': 1.4.5 '@emnapi/runtime': 1.4.5 @@ -5329,9 +5564,9 @@ snapshots: - supports-color - utf-8-validate - '@oxc-project/runtime@0.77.2': {} + '@oxc-project/runtime@0.77.3': {} - '@oxc-project/types@0.77.2': {} + '@oxc-project/types@0.77.3': {} '@pdf-lib/standard-fonts@1.0.0': dependencies: @@ -5394,7 +5629,7 @@ snapshots: '@push.rocks/smartexit': 1.0.23 '@push.rocks/smartfile': 11.2.5 '@push.rocks/smartjson': 5.0.20 - '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpath': 5.1.0 '@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartstring': 4.0.15 '@push.rocks/smartunique': 3.0.9 @@ -5432,12 +5667,12 @@ snapshots: '@configvault.io/interfaces': 1.0.17 '@push.rocks/smartfile': 11.2.5 '@push.rocks/smartlog': 3.1.8 - '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpath': 5.1.0 '@push.rocks/smartarchive@3.0.8': dependencies: '@push.rocks/smartfile': 10.0.41 - '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpath': 5.1.0 '@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartrequest': 2.1.0 '@push.rocks/smartrx': 3.0.10 @@ -5466,7 +5701,7 @@ snapshots: dependencies: '@aws-sdk/client-s3': 3.848.0 '@push.rocks/smartmime': 2.0.4 - '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpath': 5.1.0 '@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartrx': 3.0.10 '@push.rocks/smartstream': 3.2.5 @@ -5553,6 +5788,10 @@ snapshots: dependencies: '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartenv@5.0.13': + dependencies: + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartexit@1.0.23': dependencies: '@push.rocks/lik': 6.2.2 @@ -5582,7 +5821,7 @@ snapshots: '@push.rocks/smarthash': 3.2.0 '@push.rocks/smartjson': 5.0.20 '@push.rocks/smartmime': 1.0.6 - '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpath': 5.1.0 '@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartrequest': 2.1.0 '@push.rocks/smartstream': 2.0.8 @@ -5601,7 +5840,7 @@ snapshots: '@push.rocks/smarthash': 3.2.0 '@push.rocks/smartjson': 5.0.20 '@push.rocks/smartmime': 2.0.4 - '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpath': 5.1.0 '@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartrequest': 2.1.0 '@push.rocks/smartstream': 3.2.5 @@ -5696,7 +5935,7 @@ snapshots: dependencies: '@push.rocks/mongodump': 1.0.8 '@push.rocks/smartdata': 5.15.1(@aws-sdk/credential-providers@3.848.0)(socks@2.8.6) - '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpath': 5.1.0 '@push.rocks/smartpromise': 4.2.3 mongodb-memory-server: 10.1.4(@aws-sdk/credential-providers@3.848.0)(socks@2.8.6) transitivePeerDependencies: @@ -5726,7 +5965,7 @@ snapshots: '@push.rocks/levelcache': 3.1.1 '@push.rocks/smartarchive': 3.0.8 '@push.rocks/smartfile': 10.0.41 - '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpath': 5.1.0 '@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartrequest': 2.1.0 '@push.rocks/smarttime': 4.1.1 @@ -5756,7 +5995,9 @@ snapshots: dependencies: open: 8.4.2 - '@push.rocks/smartpath@5.0.18': {} + '@push.rocks/smartpath@5.1.0': {} + + '@push.rocks/smartpath@6.0.0': {} '@push.rocks/smartpdf@3.2.2(typescript@5.8.3)': dependencies: @@ -5764,7 +6005,7 @@ snapshots: '@push.rocks/smartdelay': 3.0.5 '@push.rocks/smartfile': 11.2.5 '@push.rocks/smartnetwork': 3.0.2 - '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpath': 5.1.0 '@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartpuppeteer': 2.0.5(typescript@5.8.3) '@push.rocks/smartunique': 3.0.9 @@ -5786,7 +6027,7 @@ snapshots: dependencies: '@push.rocks/smartdelay': 3.0.5 '@push.rocks/smartshell': 3.2.3 - puppeteer: 24.14.0(typescript@5.8.3) + puppeteer: 24.15.0(typescript@5.8.3) tree-kill: 1.2.2 transitivePeerDependencies: - bare-buffer @@ -5802,7 +6043,7 @@ snapshots: agentkeepalive: 4.6.0 form-data: 4.0.4 - '@push.rocks/smartrouter@1.3.2': + '@push.rocks/smartrouter@1.3.3': dependencies: '@push.rocks/lik': 6.2.2 '@push.rocks/smartrx': 3.0.10 @@ -5817,7 +6058,7 @@ snapshots: dependencies: '@push.rocks/smartbucket': 3.3.7 '@push.rocks/smartfile': 11.2.5 - '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpath': 5.1.0 '@tsclass/tsclass': 4.4.4 '@types/s3rver': 3.7.4 s3rver: 3.7.1 @@ -5851,7 +6092,7 @@ snapshots: '@push.rocks/isounique': 1.0.5 '@push.rocks/lik': 6.2.2 '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartenv': 5.0.12 + '@push.rocks/smartenv': 5.0.13 '@push.rocks/smartjson': 5.0.20 '@push.rocks/smartlog': 3.1.8 '@push.rocks/smartpromise': 4.2.3 @@ -5877,7 +6118,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@push.rocks/smartstate@2.0.21': + '@push.rocks/smartstate@2.0.23': dependencies: '@push.rocks/lik': 6.2.2 '@push.rocks/smarthash': 3.2.0 @@ -5959,7 +6200,7 @@ snapshots: '@push.rocks/smartfile': 11.2.5 '@push.rocks/smartjson': 5.0.20 '@push.rocks/smartmongo': 2.0.12(@aws-sdk/credential-providers@3.848.0)(socks@2.8.6) - '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpath': 5.1.0 '@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartrequest': 2.1.0 '@push.rocks/smarts3': 2.2.5 @@ -6186,101 +6427,101 @@ snapshots: '@pushrocks/smarturl@2.0.1': {} - '@rolldown/binding-android-arm64@1.0.0-beta.28': + '@rolldown/binding-android-arm64@1.0.0-beta.29': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-beta.28': + '@rolldown/binding-darwin-arm64@1.0.0-beta.29': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.28': + '@rolldown/binding-darwin-x64@1.0.0-beta.29': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.28': + '@rolldown/binding-freebsd-x64@1.0.0-beta.29': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.28': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.29': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.28': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.29': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.28': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.29': optional: true - '@rolldown/binding-linux-arm64-ohos@1.0.0-beta.28': + '@rolldown/binding-linux-arm64-ohos@1.0.0-beta.29': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.28': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.29': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.28': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.29': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.28': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.29': dependencies: - '@napi-rs/wasm-runtime': 1.0.0 + '@napi-rs/wasm-runtime': 1.0.1 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.28': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.29': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.28': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.29': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.28': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.29': optional: true - '@rolldown/pluginutils@1.0.0-beta.28': {} + '@rolldown/pluginutils@1.0.0-beta.29': {} - '@rspack/binding-darwin-arm64@1.4.8': + '@rspack/binding-darwin-arm64@1.4.10': optional: true - '@rspack/binding-darwin-x64@1.4.8': + '@rspack/binding-darwin-x64@1.4.10': optional: true - '@rspack/binding-linux-arm64-gnu@1.4.8': + '@rspack/binding-linux-arm64-gnu@1.4.10': optional: true - '@rspack/binding-linux-arm64-musl@1.4.8': + '@rspack/binding-linux-arm64-musl@1.4.10': optional: true - '@rspack/binding-linux-x64-gnu@1.4.8': + '@rspack/binding-linux-x64-gnu@1.4.10': optional: true - '@rspack/binding-linux-x64-musl@1.4.8': + '@rspack/binding-linux-x64-musl@1.4.10': optional: true - '@rspack/binding-wasm32-wasi@1.4.8': + '@rspack/binding-wasm32-wasi@1.4.10': dependencies: - '@napi-rs/wasm-runtime': 0.2.12 + '@napi-rs/wasm-runtime': 1.0.1 optional: true - '@rspack/binding-win32-arm64-msvc@1.4.8': + '@rspack/binding-win32-arm64-msvc@1.4.10': optional: true - '@rspack/binding-win32-ia32-msvc@1.4.8': + '@rspack/binding-win32-ia32-msvc@1.4.10': optional: true - '@rspack/binding-win32-x64-msvc@1.4.8': + '@rspack/binding-win32-x64-msvc@1.4.10': optional: true - '@rspack/binding@1.4.8': + '@rspack/binding@1.4.10': optionalDependencies: - '@rspack/binding-darwin-arm64': 1.4.8 - '@rspack/binding-darwin-x64': 1.4.8 - '@rspack/binding-linux-arm64-gnu': 1.4.8 - '@rspack/binding-linux-arm64-musl': 1.4.8 - '@rspack/binding-linux-x64-gnu': 1.4.8 - '@rspack/binding-linux-x64-musl': 1.4.8 - '@rspack/binding-wasm32-wasi': 1.4.8 - '@rspack/binding-win32-arm64-msvc': 1.4.8 - '@rspack/binding-win32-ia32-msvc': 1.4.8 - '@rspack/binding-win32-x64-msvc': 1.4.8 + '@rspack/binding-darwin-arm64': 1.4.10 + '@rspack/binding-darwin-x64': 1.4.10 + '@rspack/binding-linux-arm64-gnu': 1.4.10 + '@rspack/binding-linux-arm64-musl': 1.4.10 + '@rspack/binding-linux-x64-gnu': 1.4.10 + '@rspack/binding-linux-x64-musl': 1.4.10 + '@rspack/binding-wasm32-wasi': 1.4.10 + '@rspack/binding-win32-arm64-msvc': 1.4.10 + '@rspack/binding-win32-ia32-msvc': 1.4.10 + '@rspack/binding-win32-x64-msvc': 1.4.10 - '@rspack/core@1.4.8': + '@rspack/core@1.4.10': dependencies: - '@module-federation/runtime-tools': 0.16.0 - '@rspack/binding': 1.4.8 + '@module-federation/runtime-tools': 0.17.0 + '@rspack/binding': 1.4.10 '@rspack/lite-tapable': 1.0.1 '@rspack/lite-tapable@1.0.1': {} @@ -6659,14 +6900,14 @@ snapshots: '@types/accepts@1.3.7': dependencies: - '@types/node': 24.0.14 + '@types/node': 22.16.5 '@types/babel__code-frame@7.0.6': {} '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 24.0.14 + '@types/node': 22.16.5 '@types/buffer-json@2.0.3': {} @@ -6682,17 +6923,17 @@ snapshots: '@types/clean-css@4.2.11': dependencies: - '@types/node': 24.0.14 + '@types/node': 22.16.5 source-map: 0.6.1 '@types/co-body@6.1.3': dependencies: - '@types/node': 24.0.14 + '@types/node': 22.16.5 '@types/qs': 6.14.0 '@types/connect@3.4.38': dependencies: - '@types/node': 24.0.14 + '@types/node': 22.16.5 '@types/content-disposition@0.5.9': {} @@ -6703,11 +6944,11 @@ snapshots: '@types/connect': 3.4.38 '@types/express': 5.0.3 '@types/keygrip': 1.0.6 - '@types/node': 24.0.14 + '@types/node': 22.16.5 '@types/cors@2.8.19': dependencies: - '@types/node': 24.0.14 + '@types/node': 22.16.5 '@types/debounce@1.2.4': {} @@ -6721,7 +6962,7 @@ snapshots: '@types/express-serve-static-core@5.0.7': dependencies: - '@types/node': 24.0.14 + '@types/node': 22.16.5 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 0.17.5 @@ -6738,30 +6979,30 @@ snapshots: '@types/from2@2.3.5': dependencies: - '@types/node': 24.0.14 + '@types/node': 22.16.5 '@types/fs-extra@11.0.4': dependencies: '@types/jsonfile': 6.1.4 - '@types/node': 24.0.14 + '@types/node': 22.16.5 '@types/fs-extra@9.0.13': dependencies: - '@types/node': 24.0.14 + '@types/node': 22.16.5 '@types/glob@7.2.0': dependencies: '@types/minimatch': 6.0.0 - '@types/node': 24.0.14 + '@types/node': 22.16.5 '@types/glob@8.1.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 24.0.14 + '@types/node': 22.16.5 '@types/gunzip-maybe@1.4.2': dependencies: - '@types/node': 24.0.14 + '@types/node': 22.16.5 '@types/hast@3.0.4': dependencies: @@ -6795,7 +7036,7 @@ snapshots: '@types/jsonfile@6.1.4': dependencies: - '@types/node': 24.0.14 + '@types/node': 22.16.5 '@types/keygrip@1.0.6': {} @@ -6812,7 +7053,7 @@ snapshots: '@types/http-errors': 2.0.5 '@types/keygrip': 1.0.6 '@types/koa-compose': 3.2.8 - '@types/node': 24.0.14 + '@types/node': 22.16.5 '@types/mdast@4.0.4': dependencies: @@ -6834,11 +7075,11 @@ snapshots: '@types/node-forge@1.3.13': dependencies: - '@types/node': 24.0.14 + '@types/node': 22.16.5 - '@types/node@24.0.14': + '@types/node@22.16.5': dependencies: - undici-types: 7.8.0 + undici-types: 6.21.0 '@types/parse5@6.0.3': {} @@ -6854,19 +7095,19 @@ snapshots: '@types/s3rver@3.7.4': dependencies: - '@types/node': 24.0.14 + '@types/node': 22.16.5 '@types/semver@7.7.0': {} '@types/send@0.17.5': dependencies: '@types/mime': 1.3.5 - '@types/node': 24.0.14 + '@types/node': 22.16.5 '@types/serve-static@1.15.8': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 24.0.14 + '@types/node': 22.16.5 '@types/send': 0.17.5 '@types/sinon-chai@3.2.12': @@ -6886,11 +7127,11 @@ snapshots: '@types/tar-stream@2.2.3': dependencies: - '@types/node': 24.0.14 + '@types/node': 22.16.5 '@types/through2@2.0.41': dependencies: - '@types/node': 24.0.14 + '@types/node': 22.16.5 '@types/triple-beam@1.3.5': {} @@ -6914,18 +7155,18 @@ snapshots: '@types/whatwg-url@8.2.2': dependencies: - '@types/node': 24.0.14 + '@types/node': 22.16.5 '@types/webidl-conversions': 7.0.3 '@types/which@3.0.4': {} '@types/ws@7.4.7': dependencies: - '@types/node': 24.0.14 + '@types/node': 22.16.5 '@types/ws@8.18.1': dependencies: - '@types/node': 24.0.14 + '@types/node': 22.16.5 '@types/yargs-parser@21.0.3': {} @@ -6935,7 +7176,7 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 24.0.14 + '@types/node': 22.16.5 optional: true '@ungap/structured-clone@1.3.0': {} @@ -7262,7 +7503,7 @@ snapshots: chownr@2.0.0: {} - chromium-bidi@7.1.1(devtools-protocol@0.0.1464554): + chromium-bidi@7.2.0(devtools-protocol@0.0.1464554): dependencies: devtools-protocol: 0.0.1464554 mitt: 3.0.1 @@ -7547,7 +7788,7 @@ snapshots: engine.io@6.6.4: dependencies: '@types/cors': 2.8.19 - '@types/node': 24.0.14 + '@types/node': 22.16.5 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 @@ -7618,6 +7859,35 @@ snapshots: '@esbuild/win32-ia32': 0.25.6 '@esbuild/win32-x64': 0.25.6 + esbuild@0.25.8: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.8 + '@esbuild/android-arm': 0.25.8 + '@esbuild/android-arm64': 0.25.8 + '@esbuild/android-x64': 0.25.8 + '@esbuild/darwin-arm64': 0.25.8 + '@esbuild/darwin-x64': 0.25.8 + '@esbuild/freebsd-arm64': 0.25.8 + '@esbuild/freebsd-x64': 0.25.8 + '@esbuild/linux-arm': 0.25.8 + '@esbuild/linux-arm64': 0.25.8 + '@esbuild/linux-ia32': 0.25.8 + '@esbuild/linux-loong64': 0.25.8 + '@esbuild/linux-mips64el': 0.25.8 + '@esbuild/linux-ppc64': 0.25.8 + '@esbuild/linux-riscv64': 0.25.8 + '@esbuild/linux-s390x': 0.25.8 + '@esbuild/linux-x64': 0.25.8 + '@esbuild/netbsd-arm64': 0.25.8 + '@esbuild/netbsd-x64': 0.25.8 + '@esbuild/openbsd-arm64': 0.25.8 + '@esbuild/openbsd-x64': 0.25.8 + '@esbuild/openharmony-arm64': 0.25.8 + '@esbuild/sunos-x64': 0.25.8 + '@esbuild/win32-arm64': 0.25.8 + '@esbuild/win32-ia32': 0.25.8 + '@esbuild/win32-x64': 0.25.8 + escalade@3.2.0: {} escape-html@1.0.3: {} @@ -8282,7 +8552,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 24.0.14 + '@types/node': 22.16.5 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -8390,7 +8660,7 @@ snapshots: kuler@2.0.0: {} - lenis@1.3.7: {} + lenis@1.3.8: {} lines-and-columns@1.2.4: {} @@ -9253,10 +9523,10 @@ snapshots: punycode@2.3.1: {} - puppeteer-core@24.14.0: + puppeteer-core@24.15.0: dependencies: '@puppeteer/browsers': 2.10.6 - chromium-bidi: 7.1.1(devtools-protocol@0.0.1464554) + chromium-bidi: 7.2.0(devtools-protocol@0.0.1464554) debug: 4.4.1 devtools-protocol: 0.0.1464554 typed-query-selector: 2.12.0 @@ -9267,13 +9537,13 @@ snapshots: - supports-color - utf-8-validate - puppeteer@24.14.0(typescript@5.8.3): + puppeteer@24.15.0(typescript@5.8.3): dependencies: '@puppeteer/browsers': 2.10.6 - chromium-bidi: 7.1.1(devtools-protocol@0.0.1464554) + chromium-bidi: 7.2.0(devtools-protocol@0.0.1464554) cosmiconfig: 9.0.0(typescript@5.8.3) devtools-protocol: 0.0.1464554 - puppeteer-core: 24.14.0 + puppeteer-core: 24.15.0 typed-query-selector: 2.12.0 transitivePeerDependencies: - bare-buffer @@ -9421,27 +9691,27 @@ snapshots: dependencies: glob: 7.2.3 - rolldown@1.0.0-beta.28: + rolldown@1.0.0-beta.29: dependencies: - '@oxc-project/runtime': 0.77.2 - '@oxc-project/types': 0.77.2 - '@rolldown/pluginutils': 1.0.0-beta.28 + '@oxc-project/runtime': 0.77.3 + '@oxc-project/types': 0.77.3 + '@rolldown/pluginutils': 1.0.0-beta.29 ansis: 4.1.0 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-beta.28 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.28 - '@rolldown/binding-darwin-x64': 1.0.0-beta.28 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.28 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.28 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.28 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.28 - '@rolldown/binding-linux-arm64-ohos': 1.0.0-beta.28 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.28 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.28 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.28 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.28 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.28 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.28 + '@rolldown/binding-android-arm64': 1.0.0-beta.29 + '@rolldown/binding-darwin-arm64': 1.0.0-beta.29 + '@rolldown/binding-darwin-x64': 1.0.0-beta.29 + '@rolldown/binding-freebsd-x64': 1.0.0-beta.29 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.29 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.29 + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.29 + '@rolldown/binding-linux-arm64-ohos': 1.0.0-beta.29 + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.29 + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.29 + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.29 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.29 + '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.29 + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.29 rss-parser@3.13.0: dependencies: @@ -9868,7 +10138,7 @@ snapshots: uint8array-extras@1.4.0: {} - undici-types@7.8.0: {} + undici-types@6.21.0: {} unified@11.0.5: dependencies: @@ -9926,7 +10196,7 @@ snapshots: vary@1.1.2: {} - vfile-message@4.0.2: + vfile-message@4.0.3: dependencies: '@types/unist': 3.0.3 unist-util-stringify-position: 4.0.0 @@ -9934,7 +10204,7 @@ snapshots: vfile@6.0.3: dependencies: '@types/unist': 3.0.3 - vfile-message: 4.0.2 + vfile-message: 4.0.3 webidl-conversions@7.0.0: {} diff --git a/test/test.statements.ts b/test/test.statements.ts new file mode 100644 index 0000000..77862ef --- /dev/null +++ b/test/test.statements.ts @@ -0,0 +1,245 @@ +import { expect, tap } from '@git.zone/tstest/tapbundle'; +import * as plugins from '../ts/bunq.plugins.js'; +import * as bunq from '../ts/index.js'; + +let testBunqAccount: bunq.BunqAccount; +let sandboxApiKey: string; +let primaryAccount: bunq.BunqMonetaryAccount; + +tap.test('should setup statement test environment', async () => { + // Create sandbox user + const tempAccount = new bunq.BunqAccount({ + apiKey: '', + deviceName: 'bunq-statement-test', + environment: 'SANDBOX', + }); + + sandboxApiKey = await tempAccount.createSandboxUser(); + + // Initialize bunq account + testBunqAccount = new bunq.BunqAccount({ + apiKey: sandboxApiKey, + deviceName: 'bunq-statement-test', + environment: 'SANDBOX', + }); + + await testBunqAccount.init(); + + // Get primary account + const { accounts } = await testBunqAccount.getAccounts(); + primaryAccount = accounts[0]; + + console.log('Statement test environment setup complete'); + console.log(`Using account: ${primaryAccount.description}`); +}); + +tap.test('should create export builder with specific date range', async () => { + const fromDate = new Date('2024-01-01'); + const toDate = new Date('2024-01-31'); + + const exportBuilder = primaryAccount.getAccountStatement({ + from: fromDate, + to: toDate, + includeTransactionAttachments: true + }); + + expect(exportBuilder).toBeInstanceOf(bunq.ExportBuilder); + + // The export builder should be properly configured + const privateOptions = (exportBuilder as any).options; + expect(privateOptions.dateStart).toEqual('01-01-2024'); + expect(privateOptions.dateEnd).toEqual('31-01-2024'); + expect(privateOptions.includeAttachment).toBeTrue(); +}); + +tap.test('should create export builder with monthly index from 0', async () => { + // Test with 0-indexed month (0 = current month, 1 = last month, etc.) + const exportBuilder = primaryAccount.getAccountStatement({ + monthlyIndexedFrom0: 2, // Two months ago + includeTransactionAttachments: false + }); + + expect(exportBuilder).toBeInstanceOf(bunq.ExportBuilder); + + // The export builder should have dates for two months ago + const privateOptions = (exportBuilder as any).options; + const now = new Date(); + const twoMonthsAgo = new Date(now.getFullYear(), now.getMonth() - 2, 1); + const expectedStart = `01-${String(twoMonthsAgo.getMonth() + 1).padStart(2, '0')}-${twoMonthsAgo.getFullYear()}`; + + expect(privateOptions.dateStart).toEqual(expectedStart); + expect(privateOptions.includeAttachment).toBeFalse(); +}); + +tap.test('should create export builder with monthly index from 1', async () => { + // Test with 1-indexed month (1 = last month, 2 = two months ago, etc.) + const exportBuilder = primaryAccount.getAccountStatement({ + monthlyIndexedFrom1: 1, // Last month + includeTransactionAttachments: true + }); + + expect(exportBuilder).toBeInstanceOf(bunq.ExportBuilder); + + // The export builder should have dates for last month + const privateOptions = (exportBuilder as any).options; + const now = new Date(); + const lastMonth = new Date(now.getFullYear(), now.getMonth() - 1, 1); + const expectedStart = `01-${String(lastMonth.getMonth() + 1).padStart(2, '0')}-${lastMonth.getFullYear()}`; + + expect(privateOptions.dateStart).toEqual(expectedStart); + expect(privateOptions.includeAttachment).toBeTrue(); +}); + +tap.test('should default to last month when no date options provided', async () => { + const exportBuilder = primaryAccount.getAccountStatement({ + includeTransactionAttachments: false + }); + + expect(exportBuilder).toBeInstanceOf(bunq.ExportBuilder); + + // Should default to last month + const privateOptions = (exportBuilder as any).options; + const now = new Date(); + const lastMonth = new Date(now.getFullYear(), now.getMonth() - 1, 1); + const expectedStart = `01-${String(lastMonth.getMonth() + 1).padStart(2, '0')}-${lastMonth.getFullYear()}`; + + expect(privateOptions.dateStart).toEqual(expectedStart); +}); + +tap.test('should create and download PDF statement', async () => { + try { + const exportBuilder = primaryAccount.getAccountStatement({ + monthlyIndexedFrom1: 1, + includeTransactionAttachments: false + }); + + // Configure as PDF + exportBuilder.asPdf(); + + // Create the export + const bunqExport = await exportBuilder.create(); + expect(bunqExport).toBeInstanceOf(bunq.BunqExport); + expect(bunqExport.id).toBeTypeofNumber(); + + // Wait for completion with longer timeout for PDF + await bunqExport.waitForCompletion(120000); + + // Download to test directory + const testFilePath = '.nogit/teststatements/test-statement.pdf'; + await bunqExport.saveToFile(testFilePath); + + // Verify file exists + const fileExists = await plugins.smartfile.fs.fileExists(testFilePath); + expect(fileExists).toBeTrue(); + + console.log(`Statement downloaded to: ${testFilePath}`); + } catch (error) { + if (error.message && error.message.includes('timed out')) { + console.log('PDF export timed out - sandbox may not support PDF exports'); + // Try CSV instead + const exportBuilder = primaryAccount.getAccountStatement({ + monthlyIndexedFrom1: 1, + includeTransactionAttachments: false + }); + const csvExport = await exportBuilder.asCsv().create(); + console.log('Created CSV export instead with ID:', csvExport.id); + } else { + throw error; + } + } +}); + +tap.test('should create CSV statement with custom date range', async () => { + // Use last month's date range to ensure it's in the past + const now = new Date(); + const startOfMonth = new Date(now.getFullYear(), now.getMonth() - 1, 1); + const endOfMonth = new Date(now.getFullYear(), now.getMonth(), 0); + + const exportBuilder = primaryAccount.getAccountStatement({ + from: startOfMonth, + to: endOfMonth, + includeTransactionAttachments: false + }); + + // Configure as CSV + const csvExport = await exportBuilder.asCsv().create(); + await csvExport.waitForCompletion(30000); + + const testFilePath = '.nogit/teststatements/test-statement.csv'; + await csvExport.saveToFile(testFilePath); + + // Verify file exists + const fileExists = await plugins.smartfile.fs.fileExists(testFilePath); + expect(fileExists).toBeTrue(); + + console.log(`CSV statement downloaded to: ${testFilePath}`); +}); + +tap.test('should create MT940 statement', async () => { + const exportBuilder = primaryAccount.getAccountStatement({ + monthlyIndexedFrom0: 1, // Last month + includeTransactionAttachments: false + }); + + // Configure as MT940 + const mt940Export = await exportBuilder.asMt940().create(); + await mt940Export.waitForCompletion(30000); + + const testFilePath = '.nogit/teststatements/test-statement.txt'; + await mt940Export.saveToFile(testFilePath); + + // Verify file exists + const fileExists = await plugins.smartfile.fs.fileExists(testFilePath); + expect(fileExists).toBeTrue(); + + console.log(`MT940 statement downloaded to: ${testFilePath}`); +}); + +tap.test('should handle edge cases for date calculations', async () => { + // Mock the getAccountStatement method to test with a specific date + const originalMethod = primaryAccount.getAccountStatement; + + // Override the method temporarily for this test + primaryAccount.getAccountStatement = function(optionsArg) { + const exportBuilder = new bunq.ExportBuilder(this.bunqAccountRef, this); + + // Simulate January 2024 as "now" + const mockNow = new Date(2024, 0, 15); // January 15, 2024 + const targetDate = new Date(mockNow.getFullYear(), mockNow.getMonth() - 1, 1); + const startDate = new Date(targetDate.getFullYear(), targetDate.getMonth(), 1); + const endDate = new Date(targetDate.getFullYear(), targetDate.getMonth() + 1, 0); + + const formatDate = (date: Date): string => { + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, '0'); + const day = String(date.getDate()).padStart(2, '0'); + return `${day}-${month}-${year}`; + }; + + exportBuilder.dateRange(formatDate(startDate), formatDate(endDate)); + exportBuilder.includeAttachments(optionsArg.includeTransactionAttachments); + + return exportBuilder; + }; + + try { + const exportBuilder = primaryAccount.getAccountStatement({ + monthlyIndexedFrom1: 1, // Last month (December 2023) + includeTransactionAttachments: false + }); + + const privateOptions = (exportBuilder as any).options; + expect(privateOptions.dateStart).toEqual('01-12-2023'); + expect(privateOptions.dateEnd).toEqual('31-12-2023'); + } finally { + // Restore original method + primaryAccount.getAccountStatement = originalMethod; + } +}); + +tap.test('should cleanup test environment', async () => { + await testBunqAccount.stop(); + console.log('Test environment cleaned up'); +}); + +export default tap.start(); diff --git a/ts/bunq.classes.export.ts b/ts/bunq.classes.export.ts index 89a83ec..1f14bf9 100644 --- a/ts/bunq.classes.export.ts +++ b/ts/bunq.classes.export.ts @@ -251,8 +251,16 @@ export class ExportBuilder { const startDate = new Date(); startDate.setDate(startDate.getDate() - days); - this.options.dateStart = startDate.toISOString().split('T')[0]; - this.options.dateEnd = endDate.toISOString().split('T')[0]; + // Format as DD-MM-YYYY for bunq API + const formatDate = (date: Date): string => { + const day = String(date.getDate()).padStart(2, '0'); + const month = String(date.getMonth() + 1).padStart(2, '0'); + const year = date.getFullYear(); + return `${day}-${month}-${year}`; + }; + + this.options.dateStart = formatDate(startDate); + this.options.dateEnd = formatDate(endDate); return this; } @@ -264,8 +272,16 @@ export class ExportBuilder { const startDate = new Date(now.getFullYear(), now.getMonth() - 1, 1); const endDate = new Date(now.getFullYear(), now.getMonth(), 0); - this.options.dateStart = startDate.toISOString().split('T')[0]; - this.options.dateEnd = endDate.toISOString().split('T')[0]; + // Format as DD-MM-YYYY for bunq API + const formatDate = (date: Date): string => { + const day = String(date.getDate()).padStart(2, '0'); + const month = String(date.getMonth() + 1).padStart(2, '0'); + const year = date.getFullYear(); + return `${day}-${month}-${year}`; + }; + + this.options.dateStart = formatDate(startDate); + this.options.dateEnd = formatDate(endDate); return this; } diff --git a/ts/bunq.classes.monetaryaccount.ts b/ts/bunq.classes.monetaryaccount.ts index 952818b..470c629 100644 --- a/ts/bunq.classes.monetaryaccount.ts +++ b/ts/bunq.classes.monetaryaccount.ts @@ -2,6 +2,7 @@ import * as plugins from './bunq.plugins.js'; import { BunqAccount } from './bunq.classes.account.js'; import { BunqTransaction } from './bunq.classes.transaction.js'; import { BunqPayment } from './bunq.classes.payment.js'; +import { ExportBuilder } from './bunq.classes.export.js'; import type { IBunqPaginationOptions, IBunqMonetaryAccountBank } from './bunq.interfaces.js'; export type TAccountType = 'bank' | 'joint' | 'savings' | 'external' | 'light' | 'card' | 'external_savings' | 'savings_external'; @@ -251,4 +252,60 @@ export class BunqMonetaryAccount { reason_description: reason }); } + + /** + * Get account statement with flexible date options + * @param optionsArg - Options for statement generation + * @returns ExportBuilder instance for creating the statement + */ + public getAccountStatement(optionsArg: { + from?: Date; + to?: Date; + monthlyIndexedFrom0?: number; + monthlyIndexedFrom1?: number; + includeTransactionAttachments: boolean; + }): ExportBuilder { + const exportBuilder = new ExportBuilder(this.bunqAccountRef, this); + + // Determine date range based on provided options + let startDate: Date; + let endDate: Date; + + if (optionsArg.from && optionsArg.to) { + // Use provided date range + startDate = optionsArg.from; + endDate = optionsArg.to; + } else if (optionsArg.monthlyIndexedFrom0 !== undefined) { + // Calculate date range for 0-indexed month + const now = new Date(); + const targetDate = new Date(now.getFullYear(), now.getMonth() - optionsArg.monthlyIndexedFrom0, 1); + startDate = new Date(targetDate.getFullYear(), targetDate.getMonth(), 1); + endDate = new Date(targetDate.getFullYear(), targetDate.getMonth() + 1, 0); + } else if (optionsArg.monthlyIndexedFrom1 !== undefined) { + // Calculate date range for 1-indexed month (1 = last month, 2 = two months ago, etc.) + const now = new Date(); + const targetDate = new Date(now.getFullYear(), now.getMonth() - optionsArg.monthlyIndexedFrom1, 1); + startDate = new Date(targetDate.getFullYear(), targetDate.getMonth(), 1); + endDate = new Date(targetDate.getFullYear(), targetDate.getMonth() + 1, 0); + } else { + // Default to last month if no date options provided + const now = new Date(); + startDate = new Date(now.getFullYear(), now.getMonth() - 1, 1); + endDate = new Date(now.getFullYear(), now.getMonth(), 0); + } + + // Format dates as DD-MM-YYYY (bunq API format) + const formatDate = (date: Date): string => { + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, '0'); + const day = String(date.getDate()).padStart(2, '0'); + return `${day}-${month}-${year}`; + }; + + // Configure the export builder + exportBuilder.dateRange(formatDate(startDate), formatDate(endDate)); + exportBuilder.includeAttachments(optionsArg.includeTransactionAttachments); + + return exportBuilder; + } }