From 19735ced282ea7a4399a3706eb5fa51287f24051 Mon Sep 17 00:00:00 2001 From: Victorien Gauch <85494462+VGau@users.noreply.github.com> Date: Mon, 2 Jun 2025 14:43:53 +0200 Subject: [PATCH] fix: update blob compressor lib + update dependencies + use tsup (#976) * fix: update blob compressor lib + update dependencies + use tsup * fix: update dict path * fix: lockfile issue * fix: bump package json version --- .../workflows/postman-build-and-publish.yml | 4 +- .github/workflows/postman-testing.yml | 2 +- docker/compose-spec-l2-services.yml | 1 - pnpm-lock.yaml | 891 +++++++++++++++--- postman/README.md | 2 +- .../L2ClaimTransactionSizeCalculator.test.ts | 2 +- ts-libs/linea-native-libs/README.md | 2 +- ts-libs/linea-native-libs/package.json | 48 +- .../src/compressor/GoNativeCompressor.ts | 2 +- .../__tests__/GoNativeCompressor.test.ts | 32 +- .../helpers.test.ts} | 2 +- .../{helpers/index.ts => helpers.ts} | 2 +- .../src/compressor/lib/25-04-21.bin | Bin 0 -> 65536 bytes .../src/compressor/lib/compressor_dict.bin | Bin 65536 -> 0 bytes .../linea-native-libs/src/scripts/build.sh | 4 +- ts-libs/linea-native-libs/tsconfig.build.json | 3 +- ts-libs/linea-native-libs/tsup.config.ts | 13 + 17 files changed, 821 insertions(+), 189 deletions(-) rename ts-libs/linea-native-libs/src/compressor/{helpers/__tests__/index.test.ts => __tests__/helpers.test.ts} (97%) rename ts-libs/linea-native-libs/src/compressor/{helpers/index.ts => helpers.ts} (95%) create mode 100644 ts-libs/linea-native-libs/src/compressor/lib/25-04-21.bin delete mode 100644 ts-libs/linea-native-libs/src/compressor/lib/compressor_dict.bin create mode 100644 ts-libs/linea-native-libs/tsup.config.ts diff --git a/.github/workflows/postman-build-and-publish.yml b/.github/workflows/postman-build-and-publish.yml index 7f232cd9..ee4561e4 100644 --- a/.github/workflows/postman-build-and-publish.yml +++ b/.github/workflows/postman-build-and-publish.yml @@ -98,7 +98,7 @@ jobs: push: false tags: ${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }} build-args: | - NATIVE_LIBS_RELEASE_TAG=blob-libs-v1.0.1 + NATIVE_LIBS_RELEASE_TAG=blob-libs-v1.2.0 - name: Save Docker image as artifact if: ${{ env.PUSH_IMAGE == 'false' }} run: | @@ -126,4 +126,4 @@ jobs: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache-amd64,mode=max,platform=linux/amd64 type=registry,ref=${{ env.IMAGE_NAME }}:buildcache-arm64,mode=max,platform=linux/arm64 build-args: | - NATIVE_LIBS_RELEASE_TAG=blob-libs-v1.0.1 + NATIVE_LIBS_RELEASE_TAG=blob-libs-v1.2.0 diff --git a/.github/workflows/postman-testing.yml b/.github/workflows/postman-testing.yml index a5cc453d..32669c82 100644 --- a/.github/workflows/postman-testing.yml +++ b/.github/workflows/postman-testing.yml @@ -20,7 +20,7 @@ jobs: - name: Run tests and generate coverage report env: - NATIVE_LIBS_RELEASE_TAG: blob-libs-v1.0.1 + NATIVE_LIBS_RELEASE_TAG: blob-libs-v1.2.0 run: | pnpm run -F ./ts-libs/linea-native-libs build; pnpm run -F ./sdk build; diff --git a/docker/compose-spec-l2-services.yml b/docker/compose-spec-l2-services.yml index 49b6cd23..8c98a5df 100644 --- a/docker/compose-spec-l2-services.yml +++ b/docker/compose-spec-l2-services.yml @@ -183,7 +183,6 @@ services: hostname: postman image: consensys/linea-postman:${POSTMAN_TAG:-8a0bcc8} profiles: [ "l2", "debug" ] - platform: linux/amd64 restart: on-failure ports: - "9090:3000" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 38dde9e4..736a87bf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -291,10 +291,10 @@ importers: version: 6.13.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) jest: specifier: 29.7.0 - version: 29.7.0(@types/node@20.12.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) + version: 29.7.0(@types/node@22.7.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.4.5)) ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.7.0(@types/node@20.12.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(typescript@5.4.5) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.7.0(@types/node@22.7.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.4.5)))(typescript@5.4.5) typechain: specifier: 8.3.2 version: 8.3.2(typescript@5.4.5) @@ -376,10 +376,10 @@ importers: version: 15.1.3 typeorm: specifier: 0.3.20 - version: 0.3.20(better-sqlite3@11.6.0)(pg@8.13.1)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.4.5)) + version: 0.3.20(better-sqlite3@11.6.0)(pg@8.13.1)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) typeorm-naming-strategies: specifier: 4.1.0 - version: 4.1.0(typeorm@0.3.20(better-sqlite3@11.6.0)(pg@8.13.1)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.4.5))) + version: 4.1.0(typeorm@0.3.20(better-sqlite3@11.6.0)(pg@8.13.1)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))) winston: specifier: 3.17.0 version: 3.17.0 @@ -398,13 +398,13 @@ importers: version: 17.0.33 jest: specifier: 29.7.0 - version: 29.7.0(@types/node@22.7.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.4.5)) + version: 29.7.0(@types/node@20.12.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) jest-mock-extended: specifier: 3.0.5 - version: 3.0.5(jest@29.7.0(@types/node@22.7.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.4.5)))(typescript@5.4.5) + version: 3.0.5(jest@29.7.0(@types/node@20.12.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(typescript@5.4.5) ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.7.0(@types/node@22.7.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.4.5)))(typescript@5.4.5) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.7.0(@types/node@20.12.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(typescript@5.4.5) yargs: specifier: 17.7.2 version: 17.7.2 @@ -443,48 +443,39 @@ importers: ts-libs/linea-native-libs: dependencies: koffi: - specifier: ^2.9.0 - version: 2.9.1 + specifier: 2.11.0 + version: 2.11.0 devDependencies: '@jest/globals': - specifier: ^29.7.0 + specifier: 29.7.0 version: 29.7.0 - '@ts-bridge/cli': - specifier: ^0.1.4 - version: 0.1.4(@ts-bridge/shims@0.1.1)(typescript@5.4.5) - '@ts-bridge/shims': - specifier: ^0.1.1 - version: 0.1.1 - '@types/ffi-napi': - specifier: ^4.0.10 - version: 4.0.10 '@types/jest': - specifier: ^29.5.12 - version: 29.5.13 - '@types/ref-napi': - specifier: ^3.0.12 - version: 3.0.12 + specifier: 29.5.14 + version: 29.5.14 '@types/unzipper': - specifier: ^0.10.9 - version: 0.10.10 + specifier: 0.10.11 + version: 0.10.11 dotenv: - specifier: ^16.4.5 - version: 16.4.5 - ethers: - specifier: ^6.13.1 - version: 6.13.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + specifier: 16.5.0 + version: 16.5.0 jest: - specifier: ^29.7.0 + specifier: 29.7.0 version: 29.7.0(@types/node@22.7.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.4.5)) jest-it-up: - specifier: ^3.1.0 - version: 3.2.0 + specifier: 4.0.1 + version: 4.0.1 ts-jest: - specifier: ^29.1.5 - version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.7.0(@types/node@22.7.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.4.5)))(typescript@5.4.5) + specifier: 29.3.2 + version: 29.3.2(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.25.4)(jest@29.7.0(@types/node@22.7.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.4.5)))(typescript@5.4.5) + tsup: + specifier: 8.4.0 + version: 8.4.0(jiti@2.3.3)(postcss@8.5.3)(typescript@5.4.5)(yaml@2.5.1) unzipper: - specifier: ^0.12.1 + specifier: 0.12.3 version: 0.12.3 + viem: + specifier: 2.29.1 + version: 2.29.1(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.24.2) packages: @@ -1504,6 +1495,12 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.25.4': + resolution: {integrity: sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.19.12': resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} engines: {node: '>=12'} @@ -1516,6 +1513,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.25.4': + resolution: {integrity: sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.19.12': resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} engines: {node: '>=12'} @@ -1528,6 +1531,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.25.4': + resolution: {integrity: sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.19.12': resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} engines: {node: '>=12'} @@ -1540,6 +1549,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.25.4': + resolution: {integrity: sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.19.12': resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} engines: {node: '>=12'} @@ -1552,6 +1567,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.25.4': + resolution: {integrity: sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.19.12': resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} engines: {node: '>=12'} @@ -1564,6 +1585,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.25.4': + resolution: {integrity: sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.19.12': resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} engines: {node: '>=12'} @@ -1576,6 +1603,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.25.4': + resolution: {integrity: sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.19.12': resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} engines: {node: '>=12'} @@ -1588,6 +1621,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.25.4': + resolution: {integrity: sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.19.12': resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} engines: {node: '>=12'} @@ -1600,6 +1639,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.25.4': + resolution: {integrity: sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.19.12': resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} engines: {node: '>=12'} @@ -1612,6 +1657,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.25.4': + resolution: {integrity: sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.19.12': resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} engines: {node: '>=12'} @@ -1624,6 +1675,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.25.4': + resolution: {integrity: sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.19.12': resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} engines: {node: '>=12'} @@ -1636,6 +1693,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.25.4': + resolution: {integrity: sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.19.12': resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} engines: {node: '>=12'} @@ -1648,6 +1711,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.25.4': + resolution: {integrity: sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.19.12': resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} engines: {node: '>=12'} @@ -1660,6 +1729,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.25.4': + resolution: {integrity: sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.19.12': resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} engines: {node: '>=12'} @@ -1672,6 +1747,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.25.4': + resolution: {integrity: sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.19.12': resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} engines: {node: '>=12'} @@ -1684,6 +1765,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.25.4': + resolution: {integrity: sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.19.12': resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} engines: {node: '>=12'} @@ -1696,6 +1783,18 @@ packages: cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.25.4': + resolution: {integrity: sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.25.4': + resolution: {integrity: sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-x64@0.19.12': resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} engines: {node: '>=12'} @@ -1708,6 +1807,18 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.25.4': + resolution: {integrity: sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.25.4': + resolution: {integrity: sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.19.12': resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} engines: {node: '>=12'} @@ -1720,6 +1831,12 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.25.4': + resolution: {integrity: sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/sunos-x64@0.19.12': resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} engines: {node: '>=12'} @@ -1732,6 +1849,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.25.4': + resolution: {integrity: sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.19.12': resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} engines: {node: '>=12'} @@ -1744,6 +1867,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.25.4': + resolution: {integrity: sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.19.12': resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} engines: {node: '>=12'} @@ -1756,6 +1885,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.25.4': + resolution: {integrity: sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.19.12': resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} engines: {node: '>=12'} @@ -1768,6 +1903,12 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.25.4': + resolution: {integrity: sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2534,6 +2675,10 @@ packages: resolution: {integrity: sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==} engines: {node: ^14.21.3 || >=16} + '@noble/curves@1.8.2': + resolution: {integrity: sha512-vnI7V6lFNe0tLAuJMu+2sX+FcL14TaCWy1qiczg1VwRmPrpQCdq5ESXQMqUc2tluRNf6irBXrWbl1mGN8uaU/g==} + engines: {node: ^14.21.3 || >=16} + '@noble/hashes@1.2.0': resolution: {integrity: sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==} @@ -2565,6 +2710,10 @@ packages: resolution: {integrity: sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==} engines: {node: ^14.21.3 || >=16} + '@noble/hashes@1.7.2': + resolution: {integrity: sha512-biZ0NUSxyjLLqo6KxEJ1b+C2NAx0wtDoFvCaXHGgUkeHzf3Xc1xKumFKREuT7f7DARNZ/slvYUwFG6B0f2b6hQ==} + engines: {node: ^14.21.3 || >=16} + '@noble/secp256k1@1.7.1': resolution: {integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==} @@ -3503,81 +3652,181 @@ packages: cpu: [arm] os: [android] + '@rollup/rollup-android-arm-eabi@4.40.2': + resolution: {integrity: sha512-JkdNEq+DFxZfUwxvB58tHMHBHVgX23ew41g1OQinthJ+ryhdRk67O31S7sYw8u2lTjHUPFxwar07BBt1KHp/hg==} + cpu: [arm] + os: [android] + '@rollup/rollup-android-arm64@4.24.0': resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==} cpu: [arm64] os: [android] + '@rollup/rollup-android-arm64@4.40.2': + resolution: {integrity: sha512-13unNoZ8NzUmnndhPTkWPWbX3vtHodYmy+I9kuLxN+F+l+x3LdVF7UCu8TWVMt1POHLh6oDHhnOA04n8oJZhBw==} + cpu: [arm64] + os: [android] + '@rollup/rollup-darwin-arm64@4.24.0': resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==} cpu: [arm64] os: [darwin] + '@rollup/rollup-darwin-arm64@4.40.2': + resolution: {integrity: sha512-Gzf1Hn2Aoe8VZzevHostPX23U7N5+4D36WJNHK88NZHCJr7aVMG4fadqkIf72eqVPGjGc0HJHNuUaUcxiR+N/w==} + cpu: [arm64] + os: [darwin] + '@rollup/rollup-darwin-x64@4.24.0': resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==} cpu: [x64] os: [darwin] + '@rollup/rollup-darwin-x64@4.40.2': + resolution: {integrity: sha512-47N4hxa01a4x6XnJoskMKTS8XZ0CZMd8YTbINbi+w03A2w4j1RTlnGHOz/P0+Bg1LaVL6ufZyNprSg+fW5nYQQ==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.40.2': + resolution: {integrity: sha512-8t6aL4MD+rXSHHZUR1z19+9OFJ2rl1wGKvckN47XFRVO+QL/dUSpKA2SLRo4vMg7ELA8pzGpC+W9OEd1Z/ZqoQ==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.40.2': + resolution: {integrity: sha512-C+AyHBzfpsOEYRFjztcYUFsH4S7UsE9cDtHCtma5BK8+ydOZYgMmWg1d/4KBytQspJCld8ZIujFMAdKG1xyr4Q==} + cpu: [x64] + os: [freebsd] + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==} cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-gnueabihf@4.40.2': + resolution: {integrity: sha512-de6TFZYIvJwRNjmW3+gaXiZ2DaWL5D5yGmSYzkdzjBDS3W+B9JQ48oZEsmMvemqjtAFzE16DIBLqd6IQQRuG9Q==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.24.0': resolution: {integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==} cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.40.2': + resolution: {integrity: sha512-urjaEZubdIkacKc930hUDOfQPysezKla/O9qV+O89enqsqUmQm8Xj8O/vh0gHg4LYfv7Y7UsE3QjzLQzDYN1qg==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.24.0': resolution: {integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==} cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.40.2': + resolution: {integrity: sha512-KlE8IC0HFOC33taNt1zR8qNlBYHj31qGT1UqWqtvR/+NuCVhfufAq9fxO8BMFC22Wu0rxOwGVWxtCMvZVLmhQg==} + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-arm64-musl@4.24.0': resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==} cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-musl@4.40.2': + resolution: {integrity: sha512-j8CgxvfM0kbnhu4XgjnCWJQyyBOeBI1Zq91Z850aUddUmPeQvuAy6OiMdPS46gNFgy8gN1xkYyLgwLYZG3rBOg==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loongarch64-gnu@4.40.2': + resolution: {integrity: sha512-Ybc/1qUampKuRF4tQXc7G7QY9YRyeVSykfK36Y5Qc5dmrIxwFhrOzqaVTNoZygqZ1ZieSWTibfFhQ5qK8jpWxw==} + cpu: [loong64] + os: [linux] + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': resolution: {integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==} cpu: [ppc64] os: [linux] + '@rollup/rollup-linux-powerpc64le-gnu@4.40.2': + resolution: {integrity: sha512-3FCIrnrt03CCsZqSYAOW/k9n625pjpuMzVfeI+ZBUSDT3MVIFDSPfSUgIl9FqUftxcUXInvFah79hE1c9abD+Q==} + cpu: [ppc64] + os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.24.0': resolution: {integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==} cpu: [riscv64] os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.40.2': + resolution: {integrity: sha512-QNU7BFHEvHMp2ESSY3SozIkBPaPBDTsfVNGx3Xhv+TdvWXFGOSH2NJvhD1zKAT6AyuuErJgbdvaJhYVhVqrWTg==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-riscv64-musl@4.40.2': + resolution: {integrity: sha512-5W6vNYkhgfh7URiXTO1E9a0cy4fSgfE4+Hl5agb/U1sa0kjOLMLC1wObxwKxecE17j0URxuTrYZZME4/VH57Hg==} + cpu: [riscv64] + os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.24.0': resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==} cpu: [s390x] os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.40.2': + resolution: {integrity: sha512-B7LKIz+0+p348JoAL4X/YxGx9zOx3sR+o6Hj15Y3aaApNfAshK8+mWZEf759DXfRLeL2vg5LYJBB7DdcleYCoQ==} + cpu: [s390x] + os: [linux] + '@rollup/rollup-linux-x64-gnu@4.24.0': resolution: {integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==} cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-gnu@4.40.2': + resolution: {integrity: sha512-lG7Xa+BmBNwpjmVUbmyKxdQJ3Q6whHjMjzQplOs5Z+Gj7mxPtWakGHqzMqNER68G67kmCX9qX57aRsW5V0VOng==} + cpu: [x64] + os: [linux] + '@rollup/rollup-linux-x64-musl@4.24.0': resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==} cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-musl@4.40.2': + resolution: {integrity: sha512-tD46wKHd+KJvsmije4bUskNuvWKFcTOIM9tZ/RrmIvcXnbi0YK/cKS9FzFtAm7Oxi2EhV5N2OpfFB348vSQRXA==} + cpu: [x64] + os: [linux] + '@rollup/rollup-win32-arm64-msvc@4.24.0': resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==} cpu: [arm64] os: [win32] + '@rollup/rollup-win32-arm64-msvc@4.40.2': + resolution: {integrity: sha512-Bjv/HG8RRWLNkXwQQemdsWw4Mg+IJ29LK+bJPW2SCzPKOUaMmPEppQlu/Fqk1d7+DX3V7JbFdbkh/NMmurT6Pg==} + cpu: [arm64] + os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.24.0': resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==} cpu: [ia32] os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.40.2': + resolution: {integrity: sha512-dt1llVSGEsGKvzeIO76HToiYPNPYPkmjhMHhP00T9S4rDern8P2ZWvWAQUEJ+R1UdMWJ/42i/QqJ2WV765GZcA==} + cpu: [ia32] + os: [win32] + '@rollup/rollup-win32-x64-msvc@4.24.0': resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==} cpu: [x64] os: [win32] + '@rollup/rollup-win32-x64-msvc@4.40.2': + resolution: {integrity: sha512-bwspbWB04XJpeElvsp+DCylKfF4trJDa2Y9Go8O6A7YLX2LIKGcNK/CYImJN6ZP4DcuOHB4Utl3iCbnR62DudA==} + cpu: [x64] + os: [win32] + '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} @@ -4033,22 +4282,6 @@ packages: resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} engines: {node: '>=10.13.0'} - '@ts-bridge/cli@0.1.4': - resolution: {integrity: sha512-X8sgizUyAJGxwXKpCA3ovXW7ukKsaplL6CV0Q4O4TH4mS9sok0tpN7UsRsXm6CDXpe5DYZ4FWTimmlQB6QZTPw==} - engines: {node: ^18.18 || >=20} - hasBin: true - peerDependencies: - '@ts-bridge/shims': ^0.1.1 - typescript: '>=4.8.0' - peerDependenciesMeta: - '@ts-bridge/shims': - optional: true - - '@ts-bridge/shims@0.1.1': - resolution: {integrity: sha512-LikFSbBv6hheWhgqnMyzrjUxE7FWj+4vC8b4mk2a0bcBHlyDfrY8J+Jvm9TbH6HHK8zoklq54WSxyIF+e2N0Wg==} - engines: {node: ^18.18 || >=20} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - '@tsconfig/node10@1.0.11': resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} @@ -4160,15 +4393,15 @@ packages: '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + '@types/estree@1.0.7': + resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} + '@types/express-serve-static-core@5.0.6': resolution: {integrity: sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==} '@types/express@5.0.1': resolution: {integrity: sha512-UZUw8vjpWFXuDnjFTh7/5c2TWDlQqeXHi6hcN7F2XSVT5P+WmUnnbFS3KA6Jnc6IsEqI2qCVu2bK0R0J4A8ZQQ==} - '@types/ffi-napi@4.0.10': - resolution: {integrity: sha512-Q6TimLDxdg+Obp4W9tgzIhSA25THD6AmR8eM+ZB7bbU96xnkpd7PRXwG4az2rKpreuF90IPr/LlQtetmIfQL2g==} - '@types/form-data@0.0.33': resolution: {integrity: sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==} @@ -4285,12 +4518,6 @@ packages: '@types/react@18.3.11': resolution: {integrity: sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==} - '@types/ref-napi@3.0.12': - resolution: {integrity: sha512-UZPKghRaLlWx2lPAphpdtYe62TbGBaPeqUM6gF1vI6FPRIu/Tff/WMAzpJRFU3jJIiD8HiXpVt2RjcFHtA6YRg==} - - '@types/ref-struct-di@1.1.12': - resolution: {integrity: sha512-R2RNkGIROGoJTbXYTXrsXybnsQD4iAy26ih/G6HCeCB9luWFQKkr537XGz0uGJ1kH8y8RMkdbQmD/wBulrOPHw==} - '@types/responselike@1.0.3': resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} @@ -4318,8 +4545,8 @@ packages: '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} - '@types/unzipper@0.10.10': - resolution: {integrity: sha512-jKJdNxhmCHTZsaKW5x0qjn6rB+gHk0w5VFbEKsw84i+RJqXZyfTmGnpjDcKqzMpjz7VVLsUBMtO5T3mVidpt0g==} + '@types/unzipper@0.10.11': + resolution: {integrity: sha512-D25im2zjyMCcgL9ag6N46+wbtJBnXIr7SI4zHf9eJD2Dw2tEB5e+p5MYkrxKIVRscs5QV0EhtU9rgXSPx90oJg==} '@types/uuid@8.3.4': resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} @@ -5181,6 +5408,12 @@ packages: peerDependencies: esbuild: '>=0.17' + bundle-require@5.1.0: + resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.18' + busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} @@ -5326,6 +5559,10 @@ packages: resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} engines: {node: '>= 14.16.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==} @@ -5504,10 +5741,6 @@ packages: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} - commander@11.1.0: - resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} - engines: {node: '>=16'} - commander@12.0.0: resolution: {integrity: sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==} engines: {node: '>=18'} @@ -5570,6 +5803,10 @@ packages: resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} engines: {node: ^14.18.0 || >=16.10.0} + consola@3.4.2: + resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} + engines: {node: ^14.18.0 || >=16.10.0} + console-table-printer@2.12.1: resolution: {integrity: sha512-wKGOQRRvdnd89pCeH96e2Fn4wkbenSP6LMHfjfyNLMbGuHEFbMqQNuxXqd0oXG9caIOQ1FTvc5Uijp9/4jujnQ==} @@ -5969,6 +6206,10 @@ packages: resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} engines: {node: '>=12'} + dotenv@16.5.0: + resolution: {integrity: sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==} + engines: {node: '>=12'} + dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -6147,6 +6388,11 @@ packages: engines: {node: '>=12'} hasBin: true + esbuild@0.25.4: + resolution: {integrity: sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -6526,6 +6772,14 @@ packages: picomatch: optional: true + fdir@6.4.4: + resolution: {integrity: sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fecha@4.2.3: resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} @@ -7605,9 +7859,9 @@ packages: resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-it-up@3.2.0: - resolution: {integrity: sha512-0GnucbhPNozF0khnYf21yhhglnN/oP/KtCIVhqPEshe7KDP6B3fXek+nxSqArsibQmiK6CfPz+Nov0EHMs8xSw==} - engines: {node: '>=16'} + jest-it-up@4.0.1: + resolution: {integrity: sha512-dzRPpoL33mg561gdSkdJ8xbPBIzGBzXcQF0zZsFMrCVDy1BZIPbirhfLhs7+zoGNHT7CWllbk6W1DB+3q9N2zw==} + engines: {node: '>=20'} hasBin: true jest-leak-detector@29.7.0: @@ -7841,8 +8095,8 @@ packages: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} - koffi@2.9.1: - resolution: {integrity: sha512-LXYOzaiUB8XK7EwbG0tgzhajEr3FLS2RB9oHYbTOiWRQQO+Rgft3xSvd5TFlM3wQ6DMMQG41lvUR5gLgdyWIsA==} + koffi@2.11.0: + resolution: {integrity: sha512-AJ6MHz9Z8OIftKu322jrKJFvy/rZTdCD4b7F457WrK71rxYV7O5PSdWsJDN0p3rY1BZaPeLHVwyt4i2Xyk8wJg==} kuler@2.0.0: resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} @@ -9065,6 +9319,24 @@ packages: ts-node: optional: true + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.0.9' + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true + postcss-nested@6.2.0: resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} engines: {node: '>=12.0'} @@ -9724,6 +9996,11 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + rollup@4.40.2: + resolution: {integrity: sha512-tfUOg6DTP4rhQ3VjOO6B4wyrJnGOX85requAXvqYTHsOgb2TFJdZ3aWpT8W2kPoypSGP7dZUyzxJ9ee4buM5Fg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + router@2.2.0: resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} engines: {node: '>= 18'} @@ -9797,6 +10074,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.7.1: + resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} + engines: {node: '>=10'} + hasBin: true + send@0.19.0: resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} @@ -10363,10 +10645,17 @@ packages: tinycolor2@1.6.0: resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + tinyglobby@0.2.10: resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} engines: {node: '>=12.0.0'} + tinyglobby@0.2.13: + resolution: {integrity: sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==} + engines: {node: '>=12.0.0'} + tinygradient@1.1.5: resolution: {integrity: sha512-8nIfc2vgQ4TeLnk2lFj4tRLvvJwEfQuabdsmvDdQPT0xlk9TaNtpGd6nNRxXoK6vQhN6RSzj+Cnp5tTQmpxmbw==} @@ -10462,6 +10751,30 @@ packages: esbuild: optional: true + ts-jest@29.3.2: + resolution: {integrity: sha512-bJJkrWc6PjFVz5g2DGCNUo8z7oFEYaz1xP1NpeDU7KNLMWPpEyV8Chbpkn8xjzgRDpQhnGMyvyldoL7h8JXyug==} + engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@jest/transform': ^29.0.0 + '@jest/types': ^29.0.0 + babel-jest: ^29.0.0 + esbuild: '*' + jest: ^29.0.0 + typescript: '>=4.3 <6' + peerDependenciesMeta: + '@babel/core': + optional: true + '@jest/transform': + optional: true + '@jest/types': + optional: true + babel-jest: + optional: true + esbuild: + optional: true + ts-node@10.9.2: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true @@ -10513,6 +10826,25 @@ packages: typescript: optional: true + tsup@8.4.0: + resolution: {integrity: sha512-b+eZbPCjz10fRryaAA7C8xlIHnf8VnsaRqydheLIqwG/Mcpfk8Z5zp3HayX7GaTygkigHl5cBUs+IhcySiIexQ==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@microsoft/api-extractor': ^7.36.0 + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.5.0' + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} @@ -10553,6 +10885,10 @@ packages: resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} engines: {node: '>=8'} + type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} + engines: {node: '>=16'} + type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} @@ -10963,6 +11299,14 @@ packages: typescript: optional: true + viem@2.29.1: + resolution: {integrity: sha512-mhLn0vDdsxZ4taB7XYgnIVNvXASm60KyPAkvw4k8uNCQ+HLH+5jUgKvLg4AP3y6VJxsgiVPwqUt0dJANDF5DZA==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true + viem@2.9.9: resolution: {integrity: sha512-SUIHBL6M5IIlqDCMEQwAAvHzeglaM4FEqM6bCI+srLXtFYmrpV4tWhnpobQRNwh4f7HIksmKLLZ+cytv8FfnJQ==} peerDependencies: @@ -12516,7 +12860,7 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) use-sync-external-store: 1.5.0(react@18.3.1) - viem: 2.25.0(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.24.2) + viem: 2.29.1(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.24.2) wagmi: 2.14.16(@react-native-async-storage/async-storage@1.24.0(react-native@0.74.0(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.71.5)(@tanstack/react-query@5.71.5(react@18.3.1))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.25.0(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.24.2))(zod@3.24.2) transitivePeerDependencies: - '@tanstack/query-core' @@ -13128,138 +13472,213 @@ snapshots: '@esbuild/aix-ppc64@0.20.0': optional: true + '@esbuild/aix-ppc64@0.25.4': + optional: true + '@esbuild/android-arm64@0.19.12': optional: true '@esbuild/android-arm64@0.20.0': optional: true + '@esbuild/android-arm64@0.25.4': + optional: true + '@esbuild/android-arm@0.19.12': optional: true '@esbuild/android-arm@0.20.0': optional: true + '@esbuild/android-arm@0.25.4': + optional: true + '@esbuild/android-x64@0.19.12': optional: true '@esbuild/android-x64@0.20.0': optional: true + '@esbuild/android-x64@0.25.4': + optional: true + '@esbuild/darwin-arm64@0.19.12': optional: true '@esbuild/darwin-arm64@0.20.0': optional: true + '@esbuild/darwin-arm64@0.25.4': + optional: true + '@esbuild/darwin-x64@0.19.12': optional: true '@esbuild/darwin-x64@0.20.0': optional: true + '@esbuild/darwin-x64@0.25.4': + optional: true + '@esbuild/freebsd-arm64@0.19.12': optional: true '@esbuild/freebsd-arm64@0.20.0': optional: true + '@esbuild/freebsd-arm64@0.25.4': + optional: true + '@esbuild/freebsd-x64@0.19.12': optional: true '@esbuild/freebsd-x64@0.20.0': optional: true + '@esbuild/freebsd-x64@0.25.4': + optional: true + '@esbuild/linux-arm64@0.19.12': optional: true '@esbuild/linux-arm64@0.20.0': optional: true + '@esbuild/linux-arm64@0.25.4': + optional: true + '@esbuild/linux-arm@0.19.12': optional: true '@esbuild/linux-arm@0.20.0': optional: true + '@esbuild/linux-arm@0.25.4': + optional: true + '@esbuild/linux-ia32@0.19.12': optional: true '@esbuild/linux-ia32@0.20.0': optional: true + '@esbuild/linux-ia32@0.25.4': + optional: true + '@esbuild/linux-loong64@0.19.12': optional: true '@esbuild/linux-loong64@0.20.0': optional: true + '@esbuild/linux-loong64@0.25.4': + optional: true + '@esbuild/linux-mips64el@0.19.12': optional: true '@esbuild/linux-mips64el@0.20.0': optional: true + '@esbuild/linux-mips64el@0.25.4': + optional: true + '@esbuild/linux-ppc64@0.19.12': optional: true '@esbuild/linux-ppc64@0.20.0': optional: true + '@esbuild/linux-ppc64@0.25.4': + optional: true + '@esbuild/linux-riscv64@0.19.12': optional: true '@esbuild/linux-riscv64@0.20.0': optional: true + '@esbuild/linux-riscv64@0.25.4': + optional: true + '@esbuild/linux-s390x@0.19.12': optional: true '@esbuild/linux-s390x@0.20.0': optional: true + '@esbuild/linux-s390x@0.25.4': + optional: true + '@esbuild/linux-x64@0.19.12': optional: true '@esbuild/linux-x64@0.20.0': optional: true + '@esbuild/linux-x64@0.25.4': + optional: true + + '@esbuild/netbsd-arm64@0.25.4': + optional: true + '@esbuild/netbsd-x64@0.19.12': optional: true '@esbuild/netbsd-x64@0.20.0': optional: true + '@esbuild/netbsd-x64@0.25.4': + optional: true + + '@esbuild/openbsd-arm64@0.25.4': + optional: true + '@esbuild/openbsd-x64@0.19.12': optional: true '@esbuild/openbsd-x64@0.20.0': optional: true + '@esbuild/openbsd-x64@0.25.4': + optional: true + '@esbuild/sunos-x64@0.19.12': optional: true '@esbuild/sunos-x64@0.20.0': optional: true + '@esbuild/sunos-x64@0.25.4': + optional: true + '@esbuild/win32-arm64@0.19.12': optional: true '@esbuild/win32-arm64@0.20.0': optional: true + '@esbuild/win32-arm64@0.25.4': + optional: true + '@esbuild/win32-ia32@0.19.12': optional: true '@esbuild/win32-ia32@0.20.0': optional: true + '@esbuild/win32-ia32@0.25.4': + optional: true + '@esbuild/win32-x64@0.19.12': optional: true '@esbuild/win32-x64@0.20.0': optional: true + '@esbuild/win32-x64@0.25.4': + optional: true + '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': dependencies: eslint: 8.57.0 @@ -14301,7 +14720,7 @@ snapshots: '@ethereumjs/tx': 4.2.0 '@types/debug': 4.1.12 debug: 4.4.0(supports-color@8.1.1) - semver: 7.6.3 + semver: 7.7.1 superstruct: 1.0.4 transitivePeerDependencies: - supports-color @@ -14315,7 +14734,7 @@ snapshots: '@types/debug': 4.1.12 debug: 4.4.0(supports-color@8.1.1) pony-cause: 2.1.11 - semver: 7.6.3 + semver: 7.7.1 uuid: 9.0.1 transitivePeerDependencies: - supports-color @@ -14329,7 +14748,7 @@ snapshots: '@types/debug': 4.1.12 debug: 4.4.0(supports-color@8.1.1) pony-cause: 2.1.11 - semver: 7.6.3 + semver: 7.7.1 uuid: 9.0.1 transitivePeerDependencies: - supports-color @@ -14534,6 +14953,10 @@ snapshots: dependencies: '@noble/hashes': 1.7.1 + '@noble/curves@1.8.2': + dependencies: + '@noble/hashes': 1.7.2 + '@noble/hashes@1.2.0': {} '@noble/hashes@1.3.2': {} @@ -14550,6 +14973,8 @@ snapshots: '@noble/hashes@1.7.1': {} + '@noble/hashes@1.7.2': {} + '@noble/secp256k1@1.7.1': {} '@nodelib/fs.scandir@2.1.5': @@ -14702,7 +15127,7 @@ snapshots: '@npmcli/fs@3.1.1': dependencies: - semver: 7.6.3 + semver: 7.7.1 '@oclif/core@4.0.23': dependencies: @@ -15514,7 +15939,7 @@ snapshots: hermes-profile-transformer: 0.0.6 node-stream-zip: 1.15.0 ora: 5.4.1 - semver: 7.6.3 + semver: 7.7.1 strip-ansi: 5.2.0 wcwidth: 1.0.1 yaml: 2.5.1 @@ -15585,7 +16010,7 @@ snapshots: node-fetch: 2.7.0(encoding@0.1.13) open: 6.4.0 ora: 5.4.1 - semver: 7.6.3 + semver: 7.7.1 shell-quote: 1.8.1 sudo-prompt: 9.2.1 transitivePeerDependencies: @@ -15613,7 +16038,7 @@ snapshots: fs-extra: 8.1.0 graceful-fs: 4.2.11 prompts: 2.4.2 - semver: 7.6.3 + semver: 7.7.1 transitivePeerDependencies: - bufferutil - encoding @@ -15786,51 +16211,111 @@ snapshots: '@rollup/rollup-android-arm-eabi@4.24.0': optional: true + '@rollup/rollup-android-arm-eabi@4.40.2': + optional: true + '@rollup/rollup-android-arm64@4.24.0': optional: true + '@rollup/rollup-android-arm64@4.40.2': + optional: true + '@rollup/rollup-darwin-arm64@4.24.0': optional: true + '@rollup/rollup-darwin-arm64@4.40.2': + optional: true + '@rollup/rollup-darwin-x64@4.24.0': optional: true + '@rollup/rollup-darwin-x64@4.40.2': + optional: true + + '@rollup/rollup-freebsd-arm64@4.40.2': + optional: true + + '@rollup/rollup-freebsd-x64@4.40.2': + optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.40.2': + optional: true + '@rollup/rollup-linux-arm-musleabihf@4.24.0': optional: true + '@rollup/rollup-linux-arm-musleabihf@4.40.2': + optional: true + '@rollup/rollup-linux-arm64-gnu@4.24.0': optional: true + '@rollup/rollup-linux-arm64-gnu@4.40.2': + optional: true + '@rollup/rollup-linux-arm64-musl@4.24.0': optional: true + '@rollup/rollup-linux-arm64-musl@4.40.2': + optional: true + + '@rollup/rollup-linux-loongarch64-gnu@4.40.2': + optional: true + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': optional: true + '@rollup/rollup-linux-powerpc64le-gnu@4.40.2': + optional: true + '@rollup/rollup-linux-riscv64-gnu@4.24.0': optional: true + '@rollup/rollup-linux-riscv64-gnu@4.40.2': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.40.2': + optional: true + '@rollup/rollup-linux-s390x-gnu@4.24.0': optional: true + '@rollup/rollup-linux-s390x-gnu@4.40.2': + optional: true + '@rollup/rollup-linux-x64-gnu@4.24.0': optional: true + '@rollup/rollup-linux-x64-gnu@4.40.2': + optional: true + '@rollup/rollup-linux-x64-musl@4.24.0': optional: true + '@rollup/rollup-linux-x64-musl@4.40.2': + optional: true + '@rollup/rollup-win32-arm64-msvc@4.24.0': optional: true + '@rollup/rollup-win32-arm64-msvc@4.40.2': + optional: true + '@rollup/rollup-win32-ia32-msvc@4.24.0': optional: true + '@rollup/rollup-win32-ia32-msvc@4.40.2': + optional: true + '@rollup/rollup-win32-x64-msvc@4.24.0': optional: true + '@rollup/rollup-win32-x64-msvc@4.40.2': + optional: true + '@rtsao/scc@1.1.0': {} '@rushstack/eslint-patch@1.10.4': {} @@ -15919,8 +16404,8 @@ snapshots: '@scure/bip32@1.6.2': dependencies: - '@noble/curves': 1.8.1 - '@noble/hashes': 1.7.1 + '@noble/curves': 1.8.2 + '@noble/hashes': 1.7.2 '@scure/base': 1.2.4 '@scure/bip39@1.1.1': @@ -15945,7 +16430,7 @@ snapshots: '@scure/bip39@1.5.4': dependencies: - '@noble/hashes': 1.7.1 + '@noble/hashes': 1.7.2 '@scure/base': 1.2.4 '@sentry/core@5.30.0': @@ -16560,17 +17045,6 @@ snapshots: '@trysound/sax@0.2.0': {} - '@ts-bridge/cli@0.1.4(@ts-bridge/shims@0.1.1)(typescript@5.4.5)': - dependencies: - chalk: 5.3.0 - resolve.exports: 2.0.2 - typescript: 5.4.5 - yargs: 17.7.2 - optionalDependencies: - '@ts-bridge/shims': 0.1.1 - - '@ts-bridge/shims@0.1.1': {} - '@tsconfig/node10@1.0.11': {} '@tsconfig/node12@1.0.11': {} @@ -16783,6 +17257,8 @@ snapshots: '@types/estree@1.0.6': {} + '@types/estree@1.0.7': {} + '@types/express-serve-static-core@5.0.6': dependencies: '@types/node': 20.12.7 @@ -16796,12 +17272,6 @@ snapshots: '@types/express-serve-static-core': 5.0.6 '@types/serve-static': 1.15.7 - '@types/ffi-napi@4.0.10': - dependencies: - '@types/node': 20.12.7 - '@types/ref-napi': 3.0.12 - '@types/ref-struct-di': 1.1.12 - '@types/form-data@0.0.33': dependencies: '@types/node': 20.12.7 @@ -16917,14 +17387,6 @@ snapshots: '@types/prop-types': 15.7.13 csstype: 3.1.3 - '@types/ref-napi@3.0.12': - dependencies: - '@types/node': 20.12.7 - - '@types/ref-struct-di@1.1.12': - dependencies: - '@types/ref-napi': 3.0.12 - '@types/responselike@1.0.3': dependencies: '@types/node': 20.12.7 @@ -16954,7 +17416,7 @@ snapshots: '@types/trusted-types@2.0.7': {} - '@types/unzipper@0.10.10': + '@types/unzipper@0.10.11': dependencies: '@types/node': 20.12.7 @@ -17044,7 +17506,7 @@ snapshots: globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.6.3 + semver: 7.7.1 ts-api-utils: 1.3.0(typescript@5.4.5) optionalDependencies: typescript: 5.4.5 @@ -17060,7 +17522,7 @@ snapshots: '@typescript-eslint/types': 7.6.0 '@typescript-eslint/typescript-estree': 7.6.0(typescript@5.4.5) eslint: 8.57.0 - semver: 7.6.3 + semver: 7.7.1 transitivePeerDependencies: - supports-color - typescript @@ -18445,6 +18907,11 @@ snapshots: esbuild: 0.19.12 load-tsconfig: 0.2.5 + bundle-require@5.1.0(esbuild@0.25.4): + dependencies: + esbuild: 0.25.4 + load-tsconfig: 0.2.5 + busboy@1.6.0: dependencies: streamsearch: 1.1.0 @@ -18608,6 +19075,10 @@ snapshots: dependencies: readdirp: 4.0.2 + chokidar@4.0.3: + dependencies: + readdirp: 4.0.2 + chownr@1.1.4: {} chownr@2.0.0: {} @@ -18806,8 +19277,6 @@ snapshots: commander@10.0.1: {} - commander@11.1.0: {} - commander@12.0.0: {} commander@12.1.0: {} @@ -18869,6 +19338,8 @@ snapshots: consola@3.2.3: {} + consola@3.4.2: {} + console-table-printer@2.12.1: dependencies: simple-wcswidth: 1.0.1 @@ -19271,6 +19742,8 @@ snapshots: dotenv@16.4.7: {} + dotenv@16.5.0: {} + dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -19588,6 +20061,34 @@ snapshots: '@esbuild/win32-ia32': 0.20.0 '@esbuild/win32-x64': 0.20.0 + esbuild@0.25.4: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.4 + '@esbuild/android-arm': 0.25.4 + '@esbuild/android-arm64': 0.25.4 + '@esbuild/android-x64': 0.25.4 + '@esbuild/darwin-arm64': 0.25.4 + '@esbuild/darwin-x64': 0.25.4 + '@esbuild/freebsd-arm64': 0.25.4 + '@esbuild/freebsd-x64': 0.25.4 + '@esbuild/linux-arm': 0.25.4 + '@esbuild/linux-arm64': 0.25.4 + '@esbuild/linux-ia32': 0.25.4 + '@esbuild/linux-loong64': 0.25.4 + '@esbuild/linux-mips64el': 0.25.4 + '@esbuild/linux-ppc64': 0.25.4 + '@esbuild/linux-riscv64': 0.25.4 + '@esbuild/linux-s390x': 0.25.4 + '@esbuild/linux-x64': 0.25.4 + '@esbuild/netbsd-arm64': 0.25.4 + '@esbuild/netbsd-x64': 0.25.4 + '@esbuild/openbsd-arm64': 0.25.4 + '@esbuild/openbsd-x64': 0.25.4 + '@esbuild/sunos-x64': 0.25.4 + '@esbuild/win32-arm64': 0.25.4 + '@esbuild/win32-ia32': 0.25.4 + '@esbuild/win32-x64': 0.25.4 + escalade@3.2.0: {} escape-html@1.0.3: {} @@ -20245,6 +20746,10 @@ snapshots: optionalDependencies: picomatch: 4.0.2 + fdir@6.4.4(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + fecha@4.2.3: {} file-entry-cache@6.0.1: @@ -21178,7 +21683,7 @@ snapshots: is-bun-module@1.2.1: dependencies: - semver: 7.6.3 + semver: 7.7.1 is-callable@1.2.7: {} @@ -21365,7 +21870,7 @@ snapshots: '@babel/parser': 7.25.7 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 - semver: 7.6.3 + semver: 7.7.1 transitivePeerDependencies: - supports-color @@ -21644,10 +22149,10 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - jest-it-up@3.2.0: + jest-it-up@4.0.1: dependencies: ansi-colors: 4.1.3 - commander: 11.1.0 + commander: 12.1.0 prompts: 2.4.2 jest-leak-detector@29.7.0: @@ -21674,6 +22179,12 @@ snapshots: slash: 3.0.0 stack-utils: 2.0.6 + jest-mock-extended@3.0.5(jest@29.7.0(@types/node@20.12.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(typescript@5.4.5): + dependencies: + jest: 29.7.0(@types/node@20.12.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) + ts-essentials: 7.0.3(typescript@5.4.5) + typescript: 5.4.5 + jest-mock-extended@3.0.5(jest@29.7.0(@types/node@22.7.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.4.5)))(typescript@5.4.5): dependencies: jest: 29.7.0(@types/node@22.7.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.4.5)) @@ -21785,7 +22296,7 @@ snapshots: jest-util: 29.7.0 natural-compare: 1.4.0 pretty-format: 29.7.0 - semver: 7.6.3 + semver: 7.7.1 transitivePeerDependencies: - supports-color @@ -22001,7 +22512,7 @@ snapshots: kleur@3.0.3: {} - koffi@2.9.1: {} + koffi@2.11.0: {} kuler@2.0.0: {} @@ -22179,7 +22690,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.6.3 + semver: 7.7.1 make-error@1.3.6: {} @@ -22728,7 +23239,7 @@ snapshots: node-abi@3.68.0: dependencies: - semver: 7.6.3 + semver: 7.7.1 node-abort-controller@3.1.1: {} @@ -22803,7 +23314,7 @@ snapshots: dependencies: hosted-git-info: 7.0.2 proc-log: 4.2.0 - semver: 7.6.3 + semver: 7.7.1 validate-npm-package-name: 5.0.1 npm-run-path@4.0.1: @@ -23006,8 +23517,8 @@ snapshots: ox@0.6.9(typescript@5.4.5)(zod@3.24.2): dependencies: '@adraffy/ens-normalize': 1.11.0 - '@noble/curves': 1.8.1 - '@noble/hashes': 1.7.1 + '@noble/curves': 1.8.2 + '@noble/hashes': 1.7.2 '@scure/bip32': 1.6.2 '@scure/bip39': 1.5.4 abitype: 1.0.8(typescript@5.4.5)(zod@3.24.2) @@ -23054,7 +23565,7 @@ snapshots: got: 12.6.1 registry-auth-token: 5.0.2 registry-url: 6.0.1 - semver: 7.6.3 + semver: 7.7.1 pako@1.0.11: {} @@ -23269,6 +23780,14 @@ snapshots: postcss: 8.5.3 ts-node: 10.9.2(@types/node@20.12.7)(typescript@5.4.5) + postcss-load-config@6.0.1(jiti@2.3.3)(postcss@8.5.3)(yaml@2.5.1): + dependencies: + lilconfig: 3.1.3 + optionalDependencies: + jiti: 2.3.3 + postcss: 8.5.3 + yaml: 2.5.1 + postcss-nested@6.2.0(postcss@8.5.3): dependencies: postcss: 8.5.3 @@ -24000,6 +24519,32 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.24.0 fsevents: 2.3.3 + rollup@4.40.2: + dependencies: + '@types/estree': 1.0.7 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.40.2 + '@rollup/rollup-android-arm64': 4.40.2 + '@rollup/rollup-darwin-arm64': 4.40.2 + '@rollup/rollup-darwin-x64': 4.40.2 + '@rollup/rollup-freebsd-arm64': 4.40.2 + '@rollup/rollup-freebsd-x64': 4.40.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.40.2 + '@rollup/rollup-linux-arm-musleabihf': 4.40.2 + '@rollup/rollup-linux-arm64-gnu': 4.40.2 + '@rollup/rollup-linux-arm64-musl': 4.40.2 + '@rollup/rollup-linux-loongarch64-gnu': 4.40.2 + '@rollup/rollup-linux-powerpc64le-gnu': 4.40.2 + '@rollup/rollup-linux-riscv64-gnu': 4.40.2 + '@rollup/rollup-linux-riscv64-musl': 4.40.2 + '@rollup/rollup-linux-s390x-gnu': 4.40.2 + '@rollup/rollup-linux-x64-gnu': 4.40.2 + '@rollup/rollup-linux-x64-musl': 4.40.2 + '@rollup/rollup-win32-arm64-msvc': 4.40.2 + '@rollup/rollup-win32-ia32-msvc': 4.40.2 + '@rollup/rollup-win32-x64-msvc': 4.40.2 + fsevents: 2.3.3 + router@2.2.0: dependencies: debug: 4.4.0(supports-color@8.1.1) @@ -24102,6 +24647,8 @@ snapshots: semver@7.6.3: {} + semver@7.7.1: {} + send@0.19.0: dependencies: debug: 2.6.9 @@ -24422,7 +24969,7 @@ snapshots: pify: 4.0.1 recursive-readdir: 2.2.3 sc-istanbul: 0.4.6 - semver: 7.6.3 + semver: 7.7.1 shelljs: 0.8.5 web3-utils: 1.10.4 @@ -24879,11 +25426,18 @@ snapshots: tinycolor2@1.6.0: {} + tinyexec@0.3.2: {} + tinyglobby@0.2.10: dependencies: fdir: 6.4.2(picomatch@4.0.2) picomatch: 4.0.2 + tinyglobby@0.2.13: + dependencies: + fdir: 6.4.4(picomatch@4.0.2) + picomatch: 4.0.2 + tinygradient@1.1.5: dependencies: '@types/tinycolor2': 1.4.6 @@ -24955,7 +25509,7 @@ snapshots: json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 - semver: 7.6.3 + semver: 7.7.1 typescript: 5.4.5 yargs-parser: 21.1.1 optionalDependencies: @@ -24974,7 +25528,7 @@ snapshots: json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 - semver: 7.6.3 + semver: 7.7.1 typescript: 5.4.5 yargs-parser: 21.1.1 optionalDependencies: @@ -24983,6 +25537,27 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.25.7) + ts-jest@29.3.2(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.25.4)(jest@29.7.0(@types/node@22.7.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.4.5)))(typescript@5.4.5): + dependencies: + bs-logger: 0.2.6 + ejs: 3.1.10 + fast-json-stable-stringify: 2.1.0 + jest: 29.7.0(@types/node@22.7.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.4.5)) + jest-util: 29.7.0 + json5: 2.2.3 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.7.1 + type-fest: 4.41.0 + typescript: 5.4.5 + yargs-parser: 21.1.1 + optionalDependencies: + '@babel/core': 7.25.7 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.25.7) + esbuild: 0.25.4 + ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -25059,6 +25634,33 @@ snapshots: - supports-color - ts-node + tsup@8.4.0(jiti@2.3.3)(postcss@8.5.3)(typescript@5.4.5)(yaml@2.5.1): + dependencies: + bundle-require: 5.1.0(esbuild@0.25.4) + cac: 6.7.14 + chokidar: 4.0.3 + consola: 3.4.2 + debug: 4.4.0(supports-color@8.1.1) + esbuild: 0.25.4 + joycon: 3.1.1 + picocolors: 1.1.1 + postcss-load-config: 6.0.1(jiti@2.3.3)(postcss@8.5.3)(yaml@2.5.1) + resolve-from: 5.0.0 + rollup: 4.40.2 + source-map: 0.8.0-beta.0 + sucrase: 3.35.0 + tinyexec: 0.3.2 + tinyglobby: 0.2.13 + tree-kill: 1.2.2 + optionalDependencies: + postcss: 8.5.3 + typescript: 5.4.5 + transitivePeerDependencies: + - jiti + - supports-color + - tsx + - yaml + tunnel-agent@0.6.0: dependencies: safe-buffer: 5.2.1 @@ -25087,6 +25689,8 @@ snapshots: type-fest@0.7.1: {} + type-fest@4.41.0: {} + type-is@1.6.18: dependencies: media-typer: 0.3.0 @@ -25154,15 +25758,15 @@ snapshots: typedarray@0.0.6: {} - typeorm-naming-strategies@4.1.0(typeorm@0.3.20(better-sqlite3@11.6.0)(pg@8.13.1)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.4.5))): + typeorm-naming-strategies@4.1.0(typeorm@0.3.20(better-sqlite3@11.6.0)(pg@8.13.1)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))): dependencies: - typeorm: 0.3.20(better-sqlite3@11.6.0)(pg@8.13.1)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.4.5)) + typeorm: 0.3.20(better-sqlite3@11.6.0)(pg@8.13.1)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) typeorm-naming-strategies@4.1.0(typeorm@0.3.20(better-sqlite3@9.6.0)(pg@8.13.1)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))): dependencies: typeorm: 0.3.20(better-sqlite3@9.6.0)(pg@8.13.1)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) - typeorm@0.3.20(better-sqlite3@11.6.0)(pg@8.13.1)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.4.5)): + typeorm@0.3.20(better-sqlite3@11.6.0)(pg@8.13.1)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)): dependencies: '@sqltools/formatter': 1.2.5 app-root-path: 3.1.0 @@ -25171,7 +25775,7 @@ snapshots: cli-highlight: 2.1.11 dayjs: 1.11.13 debug: 4.3.7(supports-color@8.1.1) - dotenv: 16.4.5 + dotenv: 16.4.7 glob: 10.4.5 mkdirp: 2.1.6 reflect-metadata: 0.2.2 @@ -25182,7 +25786,7 @@ snapshots: optionalDependencies: better-sqlite3: 11.6.0 pg: 8.13.1 - ts-node: 10.9.2(@types/node@22.7.5)(typescript@5.4.5) + ts-node: 10.9.2(@types/node@20.12.7)(typescript@5.4.5) transitivePeerDependencies: - supports-color @@ -25195,7 +25799,7 @@ snapshots: cli-highlight: 2.1.11 dayjs: 1.11.13 debug: 4.3.7(supports-color@8.1.1) - dotenv: 16.4.5 + dotenv: 16.4.7 glob: 10.4.5 mkdirp: 2.1.6 reflect-metadata: 0.2.2 @@ -25494,6 +26098,23 @@ snapshots: - utf-8-validate - zod + viem@2.29.1(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.24.2): + dependencies: + '@noble/curves': 1.8.2 + '@noble/hashes': 1.7.2 + '@scure/bip32': 1.6.2 + '@scure/bip39': 1.5.4 + abitype: 1.0.8(typescript@5.4.5)(zod@3.24.2) + isows: 1.0.6(ws@8.18.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + ox: 0.6.9(typescript@5.4.5)(zod@3.24.2) + ws: 8.18.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + optionalDependencies: + typescript: 5.4.5 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + - zod + viem@2.9.9(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.24.2): dependencies: '@adraffy/ens-normalize': 1.10.0 diff --git a/postman/README.md b/postman/README.md index 1ed33274..3c4496ad 100644 --- a/postman/README.md +++ b/postman/README.md @@ -112,7 +112,7 @@ Stop the postman docker container manually. Before the postman can be run and tested locally, we must build the monorepo projects linea-sdk and linea-native-libs ```bash -NATIVE_LIBS_RELEASE_TAG=blob-libs-v1.0.1 pnpm run -F linea-native-libs build && pnpm run -F linea-sdk build +NATIVE_LIBS_RELEASE_TAG=blob-libs-v1.2.0 pnpm run -F linea-native-libs build && pnpm run -F linea-sdk build ``` From the postman folder run the following commands: diff --git a/postman/src/services/processors/__tests__/L2ClaimTransactionSizeCalculator.test.ts b/postman/src/services/processors/__tests__/L2ClaimTransactionSizeCalculator.test.ts index da6dd945..6c8afb31 100644 --- a/postman/src/services/processors/__tests__/L2ClaimTransactionSizeCalculator.test.ts +++ b/postman/src/services/processors/__tests__/L2ClaimTransactionSizeCalculator.test.ts @@ -79,7 +79,7 @@ describe("L2ClaimTransactionSizeCalculator", () => { maxFeePerGas: DEFAULT_MAX_FEE_PER_GAS, }); - expect(transactionSize).toStrictEqual(77); + expect(transactionSize).toStrictEqual(81); }); }); }); diff --git a/ts-libs/linea-native-libs/README.md b/ts-libs/linea-native-libs/README.md index 00b67f63..782e0992 100644 --- a/ts-libs/linea-native-libs/README.md +++ b/ts-libs/linea-native-libs/README.md @@ -1,6 +1,6 @@ # @consensys/linea-native-libs -`@consensys/linea-native-libs` is a Node.js library that provides an interface to native Go libraries using the `ffi-napi` and `ref-napi` packages. +`@consensys/linea-native-libs` is a Node.js library that provides an interface to native Go libraries using the `koffi` package. It provides the following Go libraries wrapper: - `GoNativeCompressor`: This class allows you to initialize the transaction compressor, check for errors, and get the worst compressed transaction size for a given RLP-encoded transaction. diff --git a/ts-libs/linea-native-libs/package.json b/ts-libs/linea-native-libs/package.json index 2835332d..c495c200 100644 --- a/ts-libs/linea-native-libs/package.json +++ b/ts-libs/linea-native-libs/package.json @@ -1,29 +1,22 @@ { "name": "@consensys/linea-native-libs", - "version": "0.1.0", + "version": "1.2.0", "description": "Linea native libs", + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } - }, - "./package.json": "./package.json" + "import": "./dist/index.mjs", + "require": "./dist/index.js" + } }, - "main": "./dist/index.cjs", - "module": "./dist/index.mjs", - "types": "./dist/index.d.cts", "files": [ "dist" ], "scripts": { "postbuild": "bash ./src/scripts/build.sh", - "build": "ts-bridge --project tsconfig.build.json --clean", + "build": "tsup --tsconfig tsconfig.build.json", "clean": "rimraf dist build coverage node_modules", "test": "jest --bail --detectOpenHandles --forceExit && jest-it-up", "lint:ts": "npx eslint '**/*.ts'", @@ -35,21 +28,18 @@ "author": "", "license": "MIT", "devDependencies": { - "@jest/globals": "^29.7.0", - "@ts-bridge/cli": "^0.1.4", - "@ts-bridge/shims": "^0.1.1", - "@types/ffi-napi": "^4.0.10", - "@types/jest": "^29.5.12", - "@types/ref-napi": "^3.0.12", - "@types/unzipper": "^0.10.9", - "dotenv": "^16.4.5", - "ethers": "^6.13.1", - "jest": "^29.7.0", - "jest-it-up": "^3.1.0", - "ts-jest": "^29.1.5", - "unzipper": "^0.12.1" + "@jest/globals": "29.7.0", + "@types/jest": "29.5.14", + "@types/unzipper": "0.10.11", + "dotenv": "16.5.0", + "jest": "29.7.0", + "jest-it-up": "4.0.1", + "ts-jest": "29.3.2", + "tsup": "8.4.0", + "unzipper": "0.12.3", + "viem": "2.29.1" }, "dependencies": { - "koffi": "^2.9.0" + "koffi": "2.11.0" } } diff --git a/ts-libs/linea-native-libs/src/compressor/GoNativeCompressor.ts b/ts-libs/linea-native-libs/src/compressor/GoNativeCompressor.ts index 31fa0672..3d48d95e 100644 --- a/ts-libs/linea-native-libs/src/compressor/GoNativeCompressor.ts +++ b/ts-libs/linea-native-libs/src/compressor/GoNativeCompressor.ts @@ -2,7 +2,7 @@ import { KoffiFunction, load } from "koffi"; import path from "path"; import { getCompressorLibPath } from "./helpers"; -const COMPRESSOR_DICT_PATH = path.join(__dirname, "./lib/compressor_dict.bin"); +const COMPRESSOR_DICT_PATH = path.join(__dirname, "./lib/25-04-21.bin"); /** * Class representing a Go Native Compressor. diff --git a/ts-libs/linea-native-libs/src/compressor/__tests__/GoNativeCompressor.test.ts b/ts-libs/linea-native-libs/src/compressor/__tests__/GoNativeCompressor.test.ts index 238676dd..1aa7c59d 100644 --- a/ts-libs/linea-native-libs/src/compressor/__tests__/GoNativeCompressor.test.ts +++ b/ts-libs/linea-native-libs/src/compressor/__tests__/GoNativeCompressor.test.ts @@ -1,5 +1,6 @@ import { describe, it, beforeEach, expect } from "@jest/globals"; -import { Transaction, Wallet, ethers } from "ethers"; +import { parseEther, serializeTransaction, toBytes, toRlp } from "viem"; +import { privateKeyToAccount } from "viem/accounts"; import { GoNativeCompressor } from "../GoNativeCompressor"; const TEST_ADDRESS = "0x0000000000000000000000000000000000000001"; @@ -15,12 +16,16 @@ describe("GoNativeCompressor", () => { describe("getCompressedTxSize", () => { it("Should throw an error if an error occured during tx compression", () => { - const transaction = Transaction.from({ + const transaction = serializeTransaction({ to: TEST_ADDRESS, - value: ethers.parseEther("2"), + value: parseEther("2"), + maxFeePerGas: parseEther("0.5"), + maxPriorityFeePerGas: parseEther("0.45"), + nonce: 1, + chainId: 1, }); - const rlpEncodedTransaction = ethers.encodeRlp(transaction.unsignedSerialized); - const input = ethers.getBytes(rlpEncodedTransaction); + const rlpEncodedTransaction = toRlp(transaction); + const input = toBytes(rlpEncodedTransaction); expect(() => compressor.getCompressedTxSize(input)).toThrow( "Error while compressing the transaction: rlp: too few elements for types.DynamicFeeTx", @@ -28,19 +33,22 @@ describe("GoNativeCompressor", () => { }); it("Should return compressed tx size", async () => { - const transaction = Transaction.from({ + const signer = privateKeyToAccount(TEST_PRIVATE_KEY); + const encodedSignedTx = await signer.signTransaction({ to: TEST_ADDRESS, - value: ethers.parseEther("2"), + value: parseEther("2"), + maxFeePerGas: parseEther("0.5"), + maxPriorityFeePerGas: parseEther("0.45"), + nonce: 1, + chainId: 1, }); - const signer = new Wallet(TEST_PRIVATE_KEY); - const encodedSignedTx = await signer.signTransaction(transaction); - const rlpEncodedTransaction = ethers.encodeRlp(encodedSignedTx); - const input = ethers.getBytes(rlpEncodedTransaction); + const rlpEncodedTransaction = toRlp(encodedSignedTx); + const input = toBytes(rlpEncodedTransaction); const compressedTxSize = compressor.getCompressedTxSize(input); - expect(compressedTxSize).toStrictEqual(43); + expect(compressedTxSize).toStrictEqual(63); }); }); }); diff --git a/ts-libs/linea-native-libs/src/compressor/helpers/__tests__/index.test.ts b/ts-libs/linea-native-libs/src/compressor/__tests__/helpers.test.ts similarity index 97% rename from ts-libs/linea-native-libs/src/compressor/helpers/__tests__/index.test.ts rename to ts-libs/linea-native-libs/src/compressor/__tests__/helpers.test.ts index 7724240e..0b4713c9 100644 --- a/ts-libs/linea-native-libs/src/compressor/helpers/__tests__/index.test.ts +++ b/ts-libs/linea-native-libs/src/compressor/__tests__/helpers.test.ts @@ -2,7 +2,7 @@ import { describe, it, expect } from "@jest/globals"; import os from "os"; import fs, { Dirent } from "fs"; import path from "path"; -import { getCompressorLibPath } from ".."; +import { getCompressorLibPath } from "../helpers"; describe("Helpers", () => { afterEach(() => { diff --git a/ts-libs/linea-native-libs/src/compressor/helpers/index.ts b/ts-libs/linea-native-libs/src/compressor/helpers.ts similarity index 95% rename from ts-libs/linea-native-libs/src/compressor/helpers/index.ts rename to ts-libs/linea-native-libs/src/compressor/helpers.ts index 1cb38368..93b15ddb 100644 --- a/ts-libs/linea-native-libs/src/compressor/helpers/index.ts +++ b/ts-libs/linea-native-libs/src/compressor/helpers.ts @@ -30,7 +30,7 @@ export function getCompressorLibPath(): string { throw new Error(`Unsupported platform: ${platform}`); } - const dirPath = path.join(__dirname, "..", "lib", directory); + const dirPath = path.join(__dirname, "lib", directory); if (!existsSync(dirPath)) { throw new Error(`Directory does not exist: ${dirPath}`); diff --git a/ts-libs/linea-native-libs/src/compressor/lib/25-04-21.bin b/ts-libs/linea-native-libs/src/compressor/lib/25-04-21.bin new file mode 100644 index 0000000000000000000000000000000000000000..9234a8cc5919f806c4ff6b185cd963efa8b8992d GIT binary patch literal 65536 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 literal 0 HcmV?d00001 diff --git a/ts-libs/linea-native-libs/src/compressor/lib/compressor_dict.bin b/ts-libs/linea-native-libs/src/compressor/lib/compressor_dict.bin deleted file mode 100644 index 62296498ce9e39367e8e93bd86060d353de11896..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65536 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 Moq~VgzJu0k0L?P7MF0Q* diff --git a/ts-libs/linea-native-libs/src/scripts/build.sh b/ts-libs/linea-native-libs/src/scripts/build.sh index 9c8e1908..d6c4bd78 100755 --- a/ts-libs/linea-native-libs/src/scripts/build.sh +++ b/ts-libs/linea-native-libs/src/scripts/build.sh @@ -8,8 +8,8 @@ error_handler() { trap 'error_handler $LINENO' ERR -node ./dist/scripts/build.mjs -cp -R src/compressor/lib/ dist/compressor/lib +npx ts-node ./src/scripts/build.ts +cp -R src/compressor/lib/ dist/lib rm -rf ./dist/scripts echo "Build script executed successfully." \ No newline at end of file diff --git a/ts-libs/linea-native-libs/tsconfig.build.json b/ts-libs/linea-native-libs/tsconfig.build.json index dc531e0c..e285815f 100644 --- a/ts-libs/linea-native-libs/tsconfig.build.json +++ b/ts-libs/linea-native-libs/tsconfig.build.json @@ -8,7 +8,8 @@ "noEmit": false, "outDir": "dist", "rootDir": "src", - "sourceMap": true + "sourceMap": true, + "composite": false, }, "include": ["./src/**/*.ts"], "exclude": [ diff --git a/ts-libs/linea-native-libs/tsup.config.ts b/ts-libs/linea-native-libs/tsup.config.ts new file mode 100644 index 00000000..71687d0f --- /dev/null +++ b/ts-libs/linea-native-libs/tsup.config.ts @@ -0,0 +1,13 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: ["src/index.ts"], + tsconfig: "tsconfig.build.json", + format: ["esm", "cjs"], + target: "esnext", + dts: true, + clean: true, + sourcemap: true, + minify: true, + outDir: "dist", +});