diff --git a/.github/workflows/preview_deploy.yml b/.github/workflows/preview_deploy.yml index fa908e2..8e506d6 100644 --- a/.github/workflows/preview_deploy.yml +++ b/.github/workflows/preview_deploy.yml @@ -465,12 +465,11 @@ jobs: for attempt in 1 2 3 4 5 6; do RESPONSE=$(curl -fsS -X POST https://slack.com/api/apps.icon.set \ -H "Authorization: Bearer ${SLACK_CONFIG_ACCESS_TOKEN}" \ - -H "Content-Type: application/x-www-form-urlencoded" \ - --data-urlencode "app_id=${APP_ID}" \ - --data-urlencode "url=https://${PREVIEW_HOST}/tipbot-preview.png") + -F "app_id=${APP_ID}" \ + -F "file=@public/tipbot-preview.png") OK=$(echo "$RESPONSE" | jq -r '.ok') ERROR=$(echo "$RESPONSE" | jq -r '.error // empty') - if [ "$OK" = "true" ] || { [ "$ERROR" != "internal_error" ] && [ "$ERROR" != "icon_not_accessible" ]; } || [ "$attempt" = "6" ]; then break; fi + if [ "$OK" = "true" ] || [ "$ERROR" != "internal_error" ] || [ "$attempt" = "6" ]; then break; fi sleep 5 # 5 seconds done OK=$(echo "$RESPONSE" | jq -r '.ok') diff --git a/.github/workflows/production.yml b/.github/workflows/production.yml index 3acb2ff..1de6f7f 100644 --- a/.github/workflows/production.yml +++ b/.github/workflows/production.yml @@ -54,6 +54,7 @@ jobs: secrets: | FEE_PAYER_PRIVATE_KEY_MAINNET FEE_PAYER_PRIVATE_KEY_TESTNET + RPC_CREDENTIALS SECRET_KEY SLACK_CLIENT_ID SLACK_CLIENT_SECRET @@ -69,6 +70,7 @@ jobs: env: FEE_PAYER_PRIVATE_KEY_MAINNET: ${{ secrets.FEE_PAYER_PRIVATE_KEY_MAINNET }} FEE_PAYER_PRIVATE_KEY_TESTNET: ${{ secrets.FEE_PAYER_PRIVATE_KEY_TESTNET }} + RPC_CREDENTIALS: ${{ secrets.RPC_CREDENTIALS }} SECRET_KEY: ${{ secrets.SECRET_KEY }} SLACK_APP_ID: ${{ vars.SLACK_APP_ID }} SLACK_CLIENT_ID: ${{ secrets.SLACK_CLIENT_ID }} diff --git a/package.json b/package.json index 779ea02..0f613df 100644 --- a/package.json +++ b/package.json @@ -37,9 +37,9 @@ "@tanstack/router-plugin": "1.167.35", "accounts": "^0.14.1", "chat": "4.27.0", - "hono": "4.12.27", + "hono": "4.12.34", "kysely": "0.28.17", - "nanoid": "^5.1.11", + "nanoid": "^5.1.16", "ox": "0.14.20", "react": "19.2.5", "react-dom": "19.2.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 47d2176..998cdba 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,26 +9,30 @@ overrides: '@grpc/grpc-js': 1.14.4 axios: 1.18.0 '@hono/node-server@<2.0.5': 2.0.10 - brace-expansion: 5.0.8 + brace-expansion: 5.0.9 esbuild: 0.28.1 form-data: 4.0.6 - fast-uri: 3.1.4 - hono: 4.12.27 - js-yaml: 4.3.0 + fast-uri: 3.1.5 + hono: 4.12.34 + ip-address: 10.3.1 + js-yaml: 4.3.1 launch-editor: 2.14.1 + nanoid@<3.3.17: 3.3.17 + nanoid@>=4.0.0 <5.1.16: 5.1.16 + postcss: 8.5.23 protobufjs: 7.6.5 shell-quote: 1.10.0 sharp: 0.35.0 tar: 7.5.21 tmp: 0.2.7 - undici: 7.28.0 + undici: 7.29.0 uuid: 11.1.1 vite: npm:@voidzero-dev/vite-plus-core@0.1.24 vite-plus: 0.1.24 vitest: npm:@voidzero-dev/vite-plus-test@0.1.24 ws: 8.21.0 -packageExtensionsChecksum: sha256-RnUgCQD0oz6qNsh491Hbuqb914i/BBDwOLSEsxnZrxc= +packageExtensionsChecksum: sha256-8TJB31u8lhWBI/Fy+6uFcQ5eha+S3Oqe2ZhRXiqOCe0= patchedDependencies: '@chat-adapter/slack@4.27.0': f129c43965d79b15a626b2f5e493aee5ae9b5638ff12257bd4cf6cecb048d1dd @@ -52,7 +56,7 @@ importers: version: 1.2.1 '@hono/zod-validator': specifier: ^0.8.0 - version: 0.8.0(hono@4.12.27)(zod@4.4.3) + version: 0.8.0(hono@4.12.34)(zod@4.4.3) '@tanstack/react-query': specifier: ^5.100.10 version: 5.100.10(react@19.2.5) @@ -72,14 +76,14 @@ importers: specifier: 4.27.0 version: 4.27.0 hono: - specifier: 4.12.27 - version: 4.12.27 + specifier: 4.12.34 + version: 4.12.34 kysely: specifier: 0.28.17 version: 0.28.17 nanoid: - specifier: ^5.1.11 - version: 5.1.11 + specifier: ^5.1.16 + version: 5.1.16 ox: specifier: 0.14.20 version: 0.14.20(typescript@6.0.3)(zod@4.4.3) @@ -152,7 +156,7 @@ importers: version: 12.9.0 emulate: specifier: 0.5.0 - version: 0.5.0(patch_hash=b2fb51af97ea1d50b418f6a8216cf9423b584f2f690e7d2beec2f6e10e5ca234)(hono@4.12.27) + version: 0.5.0(patch_hash=b2fb51af97ea1d50b418f6a8216cf9423b584f2f690e7d2beec2f6e10e5ca234)(hono@4.12.34) msw: specifier: 2.13.6 version: 2.13.6(@types/node@22.19.17)(typescript@6.0.3) @@ -709,18 +713,18 @@ packages: resolution: {integrity: sha512-ZcnNVhKTmyDJeg0UlnZjvM73JBsTAuhrH/J4fjwGOw59PwOW51r4J+p6CsKZWXdKSme4MFqU62CZMOsdDrU4CA==} engines: {node: '>=20'} peerDependencies: - hono: 4.12.27 + hono: 4.12.34 '@hono/standard-validator@0.2.3': resolution: {integrity: sha512-bp9vHu6Va6SfMHC3D4ZLBbT/woi+AZ9CRdTXQu3kLJuLh2W/Gb9UO4hijS+BQAGFXi4EGpXdetxpzwTAawSVeg==} peerDependencies: '@standard-schema/spec': ^1.0.0 - hono: 4.12.27 + hono: 4.12.34 '@hono/zod-validator@0.8.0': resolution: {integrity: sha512-5uS4S1/LKtZQYvD4BtpPUFkOv8d1wNxHHrChm26buMiEYc1FrHWvDUaKVBwkiVtvSExHSpLGDvcnpI2Copyj9w==} peerDependencies: - hono: 4.12.27 + hono: 4.12.34 zod: ^3.25.0 || ^4.0.0 '@iconify-json/lucide@1.2.117': @@ -3155,8 +3159,8 @@ packages: boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - brace-expansion@5.0.8: - resolution: {integrity: sha512-JZyDyq3D4AUifKTPOB7DELf6XsB3WdPuNxCtob1vFXPsSXhdAiHBWJ/tJ8HAc9aH84BK+5JFZLNkJKx3G9kzQg==} + brace-expansion@5.0.9: + resolution: {integrity: sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==} engines: {node: 20 || >=22} braces@3.0.3: @@ -3701,8 +3705,8 @@ packages: fast-string-width@3.0.2: resolution: {integrity: sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==} - fast-uri@3.1.4: - resolution: {integrity: sha512-8JnbkQ4juDyvYs4mgFGQqg4yCYtFDtUtmp2QIQq11ZZe5CFQ5wcqm1rqDgAh/QdMySuBnPzMUiJUNZG5N/AiQw==} + fast-uri@3.1.5: + resolution: {integrity: sha512-gHwA1O9LDIcKunMKhObS/HimwtehO1nPUECKAu5TpKgaO19fcWEl4bliWe1jWxVFvIXztJjjQ4L8XQ1EU9f7Jw==} fast-wrap-ansi@0.2.0: resolution: {integrity: sha512-rLV8JHxTyhVmFYhBJuMujcrHqOT2cnO5Zxj37qROj23CP39GXubJRBUFF0z8KFK77Uc0SukZUf7JZhsVEQ6n8w==} @@ -3953,7 +3957,7 @@ packages: '@standard-community/standard-json': ^0.3.5 '@standard-community/standard-openapi': ^0.2.9 '@types/json-schema': ^7.0.15 - hono: 4.12.27 + hono: 4.12.34 openapi-types: ^12.1.3 peerDependenciesMeta: '@hono/standard-validator': @@ -3961,8 +3965,8 @@ packages: hono: optional: true - hono@4.12.27: - resolution: {integrity: sha512-1yrb/+w6HWQJrUCLkJ2IF5jNIPvvFkblV5RNOYl6bV+OA6p9GLcMpHFFGTosSvHvcAUibuUukRqhlYI4z32C7Q==} + hono@4.12.34: + resolution: {integrity: sha512-GqXJqY/xJkJmuloTrnV1ZEXG3fqte+VjkUqoRNZXcrUidiUOP4fMSIHHY4tsqZBK++kVyWmt/AAfSUuy57/eSA==} engines: {node: '>=16.9.0'} hookable@6.1.1: @@ -4043,8 +4047,8 @@ packages: resolution: {integrity: sha512-fn4bQ0Xq8FTej09YC/jqKZwtijpvARlRp6wxL5WTA6yPe2YWSJ5RJh7Nm79rK2qB0wr6iDQzH60XGq5V/7u8YQ==} deprecated: The Intersection Observer polyfill is no longer needed and can safely be removed. Intersection Observer has been Baseline since 2019. - ip-address@10.2.0: - resolution: {integrity: sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==} + ip-address@10.3.1: + resolution: {integrity: sha512-1e9d3kb97NHJTIJDZW9rKqW2h6+dFa50Dy0fpPSMQp2ADje5gvKsXmdiK6dwY5t76TaTt5+P5N1Y/LoToIxP6g==} engines: {node: '>= 12'} ipaddr.js@1.9.1: @@ -4161,8 +4165,8 @@ packages: js-tokens@9.0.1: resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} - js-yaml@4.3.0: - resolution: {integrity: sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==} + js-yaml@4.3.1: + resolution: {integrity: sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==} hasBin: true jsesc@3.1.0: @@ -4595,7 +4599,7 @@ packages: '@modelcontextprotocol/sdk': '>=1.25.0' elysia: '>=1' express: '>=5' - hono: 4.12.27 + hono: 4.12.34 viem: '>=2.50.4' peerDependenciesMeta: '@modelcontextprotocol/sdk': @@ -4614,7 +4618,7 @@ packages: '@modelcontextprotocol/sdk': '>=1.25.0' elysia: '>=1' express: '>=5' - hono: 4.12.27 + hono: 4.12.34 viem: '>=2.54.0' peerDependenciesMeta: '@modelcontextprotocol/sdk': @@ -4653,13 +4657,13 @@ packages: nan@2.26.2: resolution: {integrity: sha512-0tTvBTYkt3tdGw22nrAy50x7gpbGCCFH3AFcyS5WiUu7Eu4vWlri1woE6qHBSfy11vksDqkiwjOnlR7WV8G1Hw==} - nanoid@3.3.16: - resolution: {integrity: sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==} + nanoid@3.3.17: + resolution: {integrity: sha512-xQLf0A3HOMlgHq0n247/LRuAOYmB7dXJ/DvAxGvsSBij45XtBSmQycu+F8ODbHwns/XyFZagyL1+J0Offw1E0g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@5.1.11: - resolution: {integrity: sha512-v+KEsUv2ps74PaSKv0gHTxTCgMXOIfBEbaqa6w6ISIGC7ZsvHN4N9oJ8d4cmf0n5oTzQz2SLmThbQWhjd/8eKg==} + nanoid@5.1.16: + resolution: {integrity: sha512-kVrnsrJqMR8+oLJnGEmSWw9BivK5mt7H3FZatVRjrc5wGqFYuBxX1yG7+A7Gi5AefkX6t/oCkizcQgpu0cY1dQ==} engines: {node: ^18 || >=20} hasBin: true @@ -5097,8 +5101,8 @@ packages: os: [darwin, linux, win32] hasBin: true - postcss@8.5.19: - resolution: {integrity: sha512-Mz8SaolMd8nB+G13WkORcxQKHZ/NE4xXevtkJHVuG+guo9/wYKlIMTKAqGdEmYOXR2ijPjTYNHssizdaVSUNdQ==} + postcss@8.5.23: + resolution: {integrity: sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==} engines: {node: ^10 || ^12 || >=14} postgres-array@2.0.0: @@ -5786,8 +5790,8 @@ packages: undici-types@7.18.2: resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} - undici@7.28.0: - resolution: {integrity: sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==} + undici@7.29.0: + resolution: {integrity: sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==} engines: {node: '>=20.18.1'} unenv@2.0.0-rc.24: @@ -6490,7 +6494,7 @@ snapshots: cjs-module-lexer: 1.4.3 esbuild: 0.28.1 miniflare: 4.20260507.1 - undici: 7.28.0 + undici: 7.29.0 vitest: '@voidzero-dev/vite-plus-test@0.1.24(@types/node@22.19.17)(@voidzero-dev/vite-plus-core@0.1.24)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.8.4)' wrangler: 4.90.0 zod: 3.25.76 @@ -6815,18 +6819,18 @@ snapshots: '@tanstack/vue-virtual': 3.13.32(vue@3.5.40(typescript@6.0.3)) vue: 3.5.40(typescript@6.0.3) - '@hono/node-server@2.0.10(hono@4.12.27)': + '@hono/node-server@2.0.10(hono@4.12.34)': dependencies: - hono: 4.12.27 + hono: 4.12.34 - '@hono/standard-validator@0.2.3(@standard-schema/spec@1.1.0)(hono@4.12.27)': + '@hono/standard-validator@0.2.3(@standard-schema/spec@1.1.0)(hono@4.12.34)': dependencies: '@standard-schema/spec': 1.1.0 - hono: 4.12.27 + hono: 4.12.34 - '@hono/zod-validator@0.8.0(hono@4.12.27)(zod@4.4.3)': + '@hono/zod-validator@0.8.0(hono@4.12.34)(zod@4.4.3)': dependencies: - hono: 4.12.27 + hono: 4.12.34 zod: 4.4.3 '@iconify-json/lucide@1.2.117': @@ -7136,7 +7140,7 @@ snapshots: '@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3)': dependencies: - '@hono/node-server': 2.0.10(hono@4.12.27) + '@hono/node-server': 2.0.10(hono@4.12.34) ajv: 8.20.0 ajv-formats: 3.0.1(ajv@8.20.0) content-type: 1.0.5 @@ -7146,7 +7150,7 @@ snapshots: eventsource-parser: 3.1.0 express: 5.2.1 express-rate-limit: 8.5.2(express@5.2.1) - hono: 4.12.27 + hono: 4.12.34 jose: 6.2.3 json-schema-typed: 8.0.2 pkce-challenge: 5.0.1 @@ -7530,7 +7534,7 @@ snapshots: fuse.js: 7.5.0 js-base64: 3.9.1 jsonc-parser: 3.3.1 - nanoid: 5.1.11 + nanoid: 5.1.16 pretty-ms: 9.3.0 radix-vue: 1.9.17(vue@3.5.40(typescript@6.0.3)) set-cookie-parser: 3.1.0 @@ -7722,21 +7726,21 @@ snapshots: '@scalar/themes@0.17.0': dependencies: - nanoid: 5.1.11 + nanoid: 5.1.16 '@scalar/typebox@0.1.3': {} '@scalar/types@0.15.0': dependencies: '@scalar/helpers': 0.8.2 - nanoid: 5.1.11 + nanoid: 5.1.16 type-fest: 5.6.0 zod: 4.4.3 '@scalar/types@0.16.3': dependencies: '@scalar/helpers': 0.9.1 - nanoid: 5.1.11 + nanoid: 5.1.16 type-fest: 5.6.0 zod: 4.4.3 @@ -8658,7 +8662,7 @@ snapshots: '@oxc-project/runtime': 0.133.0 '@oxc-project/types': 0.133.0 lightningcss: 1.32.0 - postcss: 8.5.19 + postcss: 8.5.23 vite-plus: 0.1.24(@types/node@22.19.17)(@voidzero-dev/vite-plus-core@0.1.24)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.8.4) optionalDependencies: '@types/node': 22.19.17 @@ -8767,7 +8771,7 @@ snapshots: '@vue/shared': 3.5.40 estree-walker: 2.0.2 magic-string: 0.30.21 - postcss: 8.5.19 + postcss: 8.5.23 source-map-js: 1.2.1 '@vue/compiler-ssr@3.5.40': @@ -8890,10 +8894,10 @@ snapshots: accounts@0.14.1(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@types/react@19.2.14)(@wagmi/core@3.4.11)(express@5.2.1)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@19.2.5))(viem@2.55.10(typescript@6.0.3)(zod@4.4.3))(wagmi@3.6.14): dependencies: - hono: 4.12.27 + hono: 4.12.34 idb-keyval: 6.2.2 mipd: 0.0.7(typescript@6.0.3) - mppx: 0.6.27(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(express@5.2.1)(hono@4.12.27)(typescript@6.0.3)(viem@2.55.10(typescript@6.0.3)(zod@4.4.3)) + mppx: 0.6.27(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(express@5.2.1)(hono@4.12.34)(typescript@6.0.3)(viem@2.55.10(typescript@6.0.3)(zod@4.4.3)) ox: 0.14.20(typescript@6.0.3)(zod@4.4.3) webauthx: 0.1.2(typescript@6.0.3)(zod@4.4.3) zod: 4.4.3 @@ -8914,11 +8918,11 @@ snapshots: accounts@0.15.2(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@types/react@19.2.14)(@wagmi/core@3.4.11)(express@5.2.1)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@19.2.5))(viem@2.54.6(typescript@6.0.3)(zod@4.4.3))(wagmi@3.6.14): dependencies: - hono: 4.12.27 + hono: 4.12.34 idb-keyval: 6.2.2 jose: 6.2.3 mipd: 0.0.7(typescript@6.0.3) - mppx: 0.8.9(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(express@5.2.1)(hono@4.12.27)(typescript@6.0.3)(viem@2.54.6(typescript@6.0.3)(zod@4.4.3)) + mppx: 0.8.9(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(express@5.2.1)(hono@4.12.34)(typescript@6.0.3)(viem@2.54.6(typescript@6.0.3)(zod@4.4.3)) ox: 0.14.30(typescript@6.0.3)(zod@4.4.3) wata: 0.4.0(react@19.2.5)(typescript@6.0.3) webauthx: 0.1.2(typescript@6.0.3)(zod@4.4.3) @@ -8962,7 +8966,7 @@ snapshots: ajv@8.20.0: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.1.4 + fast-uri: 3.1.5 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -9131,7 +9135,7 @@ snapshots: boolbase@1.0.0: {} - brace-expansion@5.0.8: + brace-expansion@5.0.9: dependencies: balanced-match: 4.0.4 @@ -9230,7 +9234,7 @@ snapshots: parse5: 7.3.0 parse5-htmlparser2-tree-adapter: 7.1.0 parse5-parser-stream: 7.1.2 - undici: 7.28.0 + undici: 7.29.0 whatwg-mimetype: 4.0.0 chokidar@3.6.0: @@ -9325,7 +9329,7 @@ snapshots: cosmiconfig@8.3.6(typescript@6.0.3): dependencies: import-fresh: 3.3.1 - js-yaml: 4.3.0 + js-yaml: 4.3.1 parse-json: 5.2.0 path-type: 4.0.0 optionalDependencies: @@ -9471,9 +9475,9 @@ snapshots: emoji-regex@9.2.2: {} - emulate@0.5.0(patch_hash=b2fb51af97ea1d50b418f6a8216cf9423b584f2f690e7d2beec2f6e10e5ca234)(hono@4.12.27): + emulate@0.5.0(patch_hash=b2fb51af97ea1d50b418f6a8216cf9423b584f2f690e7d2beec2f6e10e5ca234)(hono@4.12.34): dependencies: - '@hono/node-server': 2.0.10(hono@4.12.27) + '@hono/node-server': 2.0.10(hono@4.12.34) commander: 14.0.3 picocolors: 1.1.1 yaml: 2.8.4 @@ -9694,7 +9698,7 @@ snapshots: express-rate-limit@8.5.2(express@5.2.1): dependencies: express: 5.2.1 - ip-address: 10.2.0 + ip-address: 10.3.1 express@5.2.1: dependencies: @@ -9747,7 +9751,7 @@ snapshots: dependencies: fast-string-truncated-width: 3.0.3 - fast-uri@3.1.4: {} + fast-uri@3.1.5: {} fast-wrap-ansi@0.2.0: dependencies: @@ -10086,17 +10090,17 @@ snapshots: highlight.js@11.11.1: {} - hono-openapi@1.3.1(@hono/standard-validator@0.2.3(@standard-schema/spec@1.1.0)(hono@4.12.27))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod-to-json-schema@3.25.2(zod@4.4.3))(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod-to-json-schema@3.25.2(zod@4.4.3))(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.12.27)(openapi-types@12.1.3): + hono-openapi@1.3.1(@hono/standard-validator@0.2.3(@standard-schema/spec@1.1.0)(hono@4.12.34))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod-to-json-schema@3.25.2(zod@4.4.3))(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod-to-json-schema@3.25.2(zod@4.4.3))(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.12.34)(openapi-types@12.1.3): dependencies: '@standard-community/standard-json': 0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod-to-json-schema@3.25.2(zod@4.4.3))(zod@4.4.3) '@standard-community/standard-openapi': 0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod-to-json-schema@3.25.2(zod@4.4.3))(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3) '@types/json-schema': 7.0.15 openapi-types: 12.1.3 optionalDependencies: - '@hono/standard-validator': 0.2.3(@standard-schema/spec@1.1.0)(hono@4.12.27) - hono: 4.12.27 + '@hono/standard-validator': 0.2.3(@standard-schema/spec@1.1.0)(hono@4.12.34) + hono: 4.12.34 - hono@4.12.27: {} + hono@4.12.34: {} hookable@6.1.1: {} @@ -10186,7 +10190,7 @@ snapshots: intersection-observer@0.10.0: {} - ip-address@10.2.0: {} + ip-address@10.3.1: {} ipaddr.js@1.9.1: {} @@ -10268,7 +10272,7 @@ snapshots: js-tokens@9.0.1: {} - js-yaml@4.3.0: + js-yaml@4.3.1: dependencies: argparse: 2.0.1 @@ -10897,7 +10901,7 @@ snapshots: dependencies: '@cspotcode/source-map-support': 0.8.1 sharp: 0.35.0 - undici: 7.28.0 + undici: 7.29.0 workerd: 1.20260507.1 ws: 8.21.0 youch: 4.1.0-beta.10 @@ -10909,7 +10913,7 @@ snapshots: dependencies: '@cspotcode/source-map-support': 0.8.1 sharp: 0.35.0 - undici: 7.28.0 + undici: 7.29.0 workerd: 1.20260511.1 ws: 8.21.0 youch: 4.1.0-beta.10 @@ -10919,11 +10923,11 @@ snapshots: minimatch@5.1.9: dependencies: - brace-expansion: 5.0.8 + brace-expansion: 5.0.9 minimatch@9.0.9: dependencies: - brace-expansion: 5.0.8 + brace-expansion: 5.0.9 minimist@1.2.8: {} @@ -10952,7 +10956,7 @@ snapshots: pkg-types: 1.3.1 ufo: 1.6.4 - mppx@0.6.27(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(express@5.2.1)(hono@4.12.27)(typescript@6.0.3)(viem@2.55.10(typescript@6.0.3)(zod@4.4.3)): + mppx@0.6.27(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(express@5.2.1)(hono@4.12.34)(typescript@6.0.3)(viem@2.55.10(typescript@6.0.3)(zod@4.4.3)): dependencies: incur: 0.4.5 ox: 0.14.22(typescript@6.0.3)(zod@4.4.3) @@ -10961,11 +10965,11 @@ snapshots: optionalDependencies: '@modelcontextprotocol/sdk': 1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3) express: 5.2.1 - hono: 4.12.27 + hono: 4.12.34 transitivePeerDependencies: - typescript - mppx@0.8.9(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(express@5.2.1)(hono@4.12.27)(typescript@6.0.3)(viem@2.54.6(typescript@6.0.3)(zod@4.4.3)): + mppx@0.8.9(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(express@5.2.1)(hono@4.12.34)(typescript@6.0.3)(viem@2.54.6(typescript@6.0.3)(zod@4.4.3)): dependencies: '@stripe/stripe-js': 9.9.0 eventsource-parser: 3.1.0 @@ -10976,7 +10980,7 @@ snapshots: optionalDependencies: '@modelcontextprotocol/sdk': 1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3) express: 5.2.1 - hono: 4.12.27 + hono: 4.12.34 transitivePeerDependencies: - typescript @@ -11020,9 +11024,9 @@ snapshots: nan@2.26.2: optional: true - nanoid@3.3.16: {} + nanoid@3.3.17: {} - nanoid@5.1.11: {} + nanoid@5.1.16: {} napi-build-utils@2.0.0: {} @@ -11361,9 +11365,9 @@ snapshots: portless@0.13.0: {} - postcss@8.5.19: + postcss@8.5.23: dependencies: - nanoid: 3.3.16 + nanoid: 3.3.17 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -11475,7 +11479,7 @@ snapshots: aria-hidden: 1.2.6 defu: 6.1.7 fast-deep-equal: 3.1.3 - nanoid: 5.1.11 + nanoid: 5.1.16 vue: 3.5.40(typescript@6.0.3) transitivePeerDependencies: - '@vue/composition-api' @@ -12083,16 +12087,16 @@ snapshots: tapimo@0.5.2(0a9fca14114bb98809b2b223454df2b6): dependencies: - '@hono/node-server': 2.0.10(hono@4.12.27) - '@hono/standard-validator': 0.2.3(@standard-schema/spec@1.1.0)(hono@4.12.27) + '@hono/node-server': 2.0.10(hono@4.12.34) + '@hono/standard-validator': 0.2.3(@standard-schema/spec@1.1.0)(hono@4.12.34) accounts: 0.15.2(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@types/react@19.2.14)(@wagmi/core@3.4.11)(express@5.2.1)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@19.2.5))(viem@2.54.6(typescript@6.0.3)(zod@4.4.3))(wagmi@3.6.14) - hono: 4.12.27 - hono-openapi: 1.3.1(@hono/standard-validator@0.2.3(@standard-schema/spec@1.1.0)(hono@4.12.27))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod-to-json-schema@3.25.2(zod@4.4.3))(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod-to-json-schema@3.25.2(zod@4.4.3))(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.12.27)(openapi-types@12.1.3) + hono: 4.12.34 + hono-openapi: 1.3.1(@hono/standard-validator@0.2.3(@standard-schema/spec@1.1.0)(hono@4.12.34))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod-to-json-schema@3.25.2(zod@4.4.3))(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod-to-json-schema@3.25.2(zod@4.4.3))(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.12.34)(openapi-types@12.1.3) incur: 0.4.19 jose: 6.2.3 kysely: 0.29.3 - mppx: 0.8.9(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(express@5.2.1)(hono@4.12.27)(typescript@6.0.3)(viem@2.54.6(typescript@6.0.3)(zod@4.4.3)) - nanoid: 5.1.11 + mppx: 0.8.9(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(express@5.2.1)(hono@4.12.34)(typescript@6.0.3)(viem@2.54.6(typescript@6.0.3)(zod@4.4.3)) + nanoid: 5.1.16 ox: 0.14.30(typescript@6.0.3)(zod@4.4.3) pg: 8.22.0 stripe: 19.3.0(@types/node@22.19.17) @@ -12238,7 +12242,7 @@ snapshots: ssh-remote-port-forward: 1.0.4 tar-fs: 3.1.2 tmp: 0.2.7 - undici: 7.28.0 + undici: 7.29.0 transitivePeerDependencies: - bare-abort-controller - bare-buffer @@ -12368,7 +12372,7 @@ snapshots: undici-types@7.18.2: {} - undici@7.28.0: {} + undici@7.29.0: {} unenv@2.0.0-rc.24: dependencies: @@ -12673,7 +12677,7 @@ snapshots: dependencies: '@base-ui/react': 1.4.1(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@codesandbox/sandpack-react': 2.20.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@hono/node-server': 2.0.10(hono@4.12.27) + '@hono/node-server': 2.0.10(hono@4.12.34) '@iconify-json/lucide': 1.2.117 '@iconify-json/simple-icons': 1.2.90 '@iconify-json/vscode-icons': 1.2.67 @@ -12708,7 +12712,7 @@ snapshots: estree-util-visit: 2.0.0 extend: 3.0.2 github-slugger: 2.0.0 - hono: 4.12.27 + hono: 4.12.34 image-size: 2.0.2 lz-string: 1.5.0 magic-string: 0.30.21 @@ -12838,10 +12842,10 @@ snapshots: wata@0.4.0(react@19.2.5)(typescript@6.0.3): dependencies: - '@hono/node-server': 2.0.10(hono@4.12.27) + '@hono/node-server': 2.0.10(hono@4.12.34) '@noble/ciphers': 2.2.0 '@noble/hashes': 2.2.0 - hono: 4.12.27 + hono: 4.12.34 ox: 0.14.30(typescript@6.0.3)(zod@4.4.3) zod: 4.4.3 optionalDependencies: @@ -12941,7 +12945,7 @@ snapshots: '@oozcitak/dom': 2.0.2 '@oozcitak/infra': 2.0.2 '@oozcitak/util': 10.0.0 - js-yaml: 4.3.0 + js-yaml: 4.3.1 xtend@4.0.2: {} @@ -13029,7 +13033,6 @@ time: chat@4.27.0: '2026-04-30T20:46:13.887Z' emulate@0.5.0: '2026-04-29T05:49:35.977Z' kysely@0.28.17: '2026-05-03T01:05:34.179Z' - nanoid@5.1.11: '2026-04-30T22:06:42.984Z' ox@0.14.20: '2026-04-21T20:34:36.837Z' react-dom@19.2.5: '2026-04-08T18:39:31.423Z' react@19.2.5: '2026-04-08T18:39:24.455Z' diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index abfb18b..d788bc2 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -21,6 +21,9 @@ auditConfig: # versions vulnerable with no patched release, so ignore until a fix exists. ignoreGhsas: - GHSA-rmmr-r34h-pfm5 + # No patched image-size release is published yet. + - GHSA-5p2g-fcmc-qvqq + - GHSA-w3rx-r6r6-pgpr blockExoticSubdeps: true catalog: # Vite+ dependency aliases. @@ -46,13 +49,17 @@ minimumReleaseAgeExclude: - form-data@4.0.6 - vite-plus@0.1.24 - launch-editor@2.14.1 - - hono@4.12.27 - - fast-uri@3.1.4 + - hono@4.12.34 + - fast-uri@3.1.5 + - ip-address@10.3.1 + - nanoid@3.3.17 + - nanoid@5.1.16 + - postcss@8.5.23 - sharp@0.35.0 - - brace-expansion@5.0.8 + - brace-expansion@5.0.9 - tar@7.5.21 - - undici@7.28.0 - - js-yaml@4.3.0 + - undici@7.29.0 + - js-yaml@4.3.1 - ws@8.21.0 minimumReleaseAgeStrict: true overrides: @@ -60,19 +67,23 @@ overrides: '@grpc/grpc-js': 1.14.4 axios: 1.18.0 '@hono/node-server@<2.0.5': 2.0.10 - brace-expansion: 5.0.8 + brace-expansion: 5.0.9 esbuild: 0.28.1 form-data: 4.0.6 - fast-uri: 3.1.4 - hono: 4.12.27 - js-yaml: 4.3.0 + fast-uri: 3.1.5 + hono: 4.12.34 + ip-address: 10.3.1 + js-yaml: 4.3.1 launch-editor: 2.14.1 + nanoid@<3.3.17: 3.3.17 + 'nanoid@>=4.0.0 <5.1.16': 5.1.16 + postcss: 8.5.23 protobufjs: 7.6.5 shell-quote: 1.10.0 sharp: 0.35.0 tar: 7.5.21 tmp: 0.2.7 - undici: 7.28.0 + undici: 7.29.0 uuid: 11.1.1 vite: 'catalog:' vite-plus: 0.1.24 @@ -81,7 +92,7 @@ overrides: packageExtensions: '@cloudflare/vitest-pool-workers@*': dependencies: - undici: 7.28.0 + undici: 7.29.0 '@svgr/core@*': dependencies: '@svgr/plugin-jsx': 8.1.0 diff --git a/src/chat.workers.test.ts b/src/chat.workers.test.ts index 2b98f85..60431a4 100644 --- a/src/chat.workers.test.ts +++ b/src/chat.workers.test.ts @@ -6207,6 +6207,10 @@ test('reaction tipping aggregates sent and queued messages together', async () = reaction: 'money_with_wings', userId: Constants.slack.adminUserId, }) + + expect(sent.status).toBe(200) + await expectSlackThreadMessage(parentTs, 'tipped $0.001', { channelId, wait: true }) + const queued = await postSlackReaction({ channelId, eventTs: `${reply.ts}-reaction`, @@ -6216,7 +6220,6 @@ test('reaction tipping aggregates sent and queued messages together', async () = userId: Constants.slack.adminUserId, }) - expect(sent.status).toBe(200) expect(queued.status).toBe(200) await expect .poll(