From cc0cd2bf96598727da2b12fe12afd1b25a9d2b12 Mon Sep 17 00:00:00 2001 From: Reza Rahemtola Date: Fri, 19 Jul 2024 16:31:58 +0200 Subject: [PATCH 01/18] fix(chat): Assistant name displayed instead of role --- package-lock.json | 1588 ++++++++++++++++++++++--------------------- package.json | 31 +- src/pages/Chat.vue | 46 +- src/stores/chats.ts | 2 + 4 files changed, 833 insertions(+), 834 deletions(-) diff --git a/package-lock.json b/package-lock.json index 39cbf13..5161fb9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,43 +12,42 @@ "@aleph-sdk/client": "^1.0.6", "@aleph-sdk/ethereum": "^1.0.3", "@aleph-sdk/message": "^1.0.7", - "@libertai/libertai-js": "0.0.8", - "@quasar/extras": "^1.16.11", - "@tanstack/vue-query": "^5.50.1", - "@wagmi/vue": "^0.0.25", + "@libertai/libertai-js": "file:../libertai-js/libertai-libertai-js-0.0.8.tgz", + "@quasar/extras": "^1.16.12", + "@tanstack/vue-query": "^5.51.9", + "@wagmi/vue": "^0.0.30", "axios": "^1.7.2", "dompurify": "^3.1.6", - "highlight.js": "^11.9.0", + "highlight.js": "^11.10.0", "localforage": "^1.10.0", "marked": "^12.0.2", "marked-highlight": "^2.1.3", - "openai": "^4.52.3", + "openai": "^4.52.7", "pinia": "^2.1.7", "pinia-plugin-persistedstate": "^3.2.1", - "quasar": "^2.16.5", + "quasar": "^2.16.6", "stream": "^0.0.3", "uuid": "^10.0.0", - "viem": "^2.17.0", - "vue": "^3.4.31", + "viem": "^2.17.5", + "vue": "^3.4.33", "vue-router": "^4.4.0", - "web3": "^4.10.0", + "web3": "^4.11.0", "zod": "^3.23.8" }, "devDependencies": { - "@esbuild/linux-x64": "^0.23.0", "@quasar/app-vite": "^1.9.3", "@types/dompurify": "^3.0.5", - "@types/node": "^20.14.10", - "@typescript-eslint/eslint-plugin": "^7.15.0", - "@typescript-eslint/parser": "^7.15.0", + "@types/node": "^20.14.11", + "@typescript-eslint/eslint-plugin": "^7.16.1", + "@typescript-eslint/parser": "^7.16.1", "@vue/eslint-config-typescript": "^13.0.0", "autoprefixer": "^10.4.19", "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-vue": "^9.27.0", "postcss": "^8.4.39", - "prettier": "^3.3.2", - "tailwindcss": "^3.4.4", + "prettier": "^3.3.3", + "tailwindcss": "^3.4.6", "typescript": "^5.5.3", "vite-plugin-node-polyfills": "^0.22.0", "vue-eslint-parser": "^9.4.3" @@ -199,9 +198,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", - "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.9.tgz", + "integrity": "sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng==", "license": "MIT", "peer": true, "engines": { @@ -209,22 +208,22 @@ } }, "node_modules/@babel/core": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", - "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.9.tgz", + "integrity": "sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==", "license": "MIT", "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helpers": "^7.24.7", - "@babel/parser": "^7.24.7", + "@babel/generator": "^7.24.9", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-module-transforms": "^7.24.9", + "@babel/helpers": "^7.24.8", + "@babel/parser": "^7.24.8", "@babel/template": "^7.24.7", - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7", + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.9", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -250,13 +249,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", - "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "version": "7.24.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.10.tgz", + "integrity": "sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==", "license": "MIT", "peer": true, "dependencies": { - "@babel/types": "^7.24.7", + "@babel/types": "^7.24.9", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -293,15 +292,15 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", - "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.8.tgz", + "integrity": "sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==", "license": "MIT", "peer": true, "dependencies": { - "@babel/compat-data": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -330,16 +329,16 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz", - "integrity": "sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.8.tgz", + "integrity": "sha512-4f6Oqnmyp2PP3olgUMmOwC3akxSm5aBYraQ6YDdKy7NcAMkDECHWG0DEnV6M2UAkERgIBhYt8S27rURPg7SxWA==", "license": "MIT", "peer": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", "@babel/helper-environment-visitor": "^7.24.7", "@babel/helper-function-name": "^7.24.7", - "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.8", "@babel/helper-optimise-call-expression": "^7.24.7", "@babel/helper-replace-supers": "^7.24.7", "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", @@ -449,14 +448,14 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.7.tgz", - "integrity": "sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", + "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", "license": "MIT", "peer": true, "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -477,9 +476,9 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", - "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.9.tgz", + "integrity": "sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==", "license": "MIT", "peer": true, "dependencies": { @@ -510,9 +509,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", - "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", "license": "MIT", "peer": true, "engines": { @@ -597,9 +596,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", - "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", "license": "MIT", "peer": true, "engines": { @@ -617,9 +616,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", - "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", "license": "MIT", "peer": true, "engines": { @@ -643,14 +642,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", - "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.8.tgz", + "integrity": "sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==", "license": "MIT", "peer": true, "dependencies": { "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/types": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -751,9 +750,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", - "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.8.tgz", + "integrity": "sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==", "license": "MIT", "bin": { "parser": "bin/babel-parser.js" @@ -1448,17 +1447,17 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.7.tgz", - "integrity": "sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.8.tgz", + "integrity": "sha512-VXy91c47uujj758ud9wx+OMgheXm4qJfyhj1P18YvlrQkNOSrwsteHk+EFS3OMGfhMhpZa0A+81eE7G4QC+3CA==", "license": "MIT", "peer": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.8", "@babel/helper-environment-visitor": "^7.24.7", "@babel/helper-function-name": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.8", "@babel/helper-replace-supers": "^7.24.7", "@babel/helper-split-export-declaration": "^7.24.7", "globals": "^11.1.0" @@ -1498,13 +1497,13 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.7.tgz", - "integrity": "sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", + "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", "license": "MIT", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1733,14 +1732,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz", - "integrity": "sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", + "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", "license": "MIT", "peer": true, "dependencies": { - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", "@babel/helper-simple-access": "^7.24.7" }, "engines": { @@ -1907,13 +1906,13 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.7.tgz", - "integrity": "sha512-tK+0N9yd4j+x/4hxF3F0e0fu/VdcxU18y5SevtyM/PCFlQvXbR0Zmlo2eBrKtVipGNFzpq56o8WsIIKcJFUCRQ==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", + "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", "license": "MIT", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.8", "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, @@ -2190,13 +2189,13 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.7.tgz", - "integrity": "sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz", + "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==", "license": "MIT", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -2206,15 +2205,15 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.7.tgz", - "integrity": "sha512-iLD3UNkgx2n/HrjBesVbYX6j0yqn/sJktvbtKKgcaLIQ4bTTQ8obAypc1VpyHPD2y4Phh9zHOaAt8e/L14wCpw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.8.tgz", + "integrity": "sha512-CgFgtN61BbdOGCP4fLaAMOPkzWUh6yQZNMr5YSt8uz2cZSSiQONCQFWqsE4NeVfOIhqDOlS9CR3WD91FzMeB2Q==", "license": "MIT", "peer": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-create-class-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", "@babel/plugin-syntax-typescript": "^7.24.7" }, "engines": { @@ -2292,16 +2291,16 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.7.tgz", - "integrity": "sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.8.tgz", + "integrity": "sha512-vObvMZB6hNWuDxhSaEPTKCwcqkAIuDtE+bQGn4XMXne1DSLzFVY8Vmj1bm+mUQXYNN8NmaQEO+r8MMbzPr1jBQ==", "license": "MIT", "peer": true, "dependencies": { - "@babel/compat-data": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", + "@babel/compat-data": "^7.24.8", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.7", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.7", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", @@ -2332,9 +2331,9 @@ "@babel/plugin-transform-block-scoping": "^7.24.7", "@babel/plugin-transform-class-properties": "^7.24.7", "@babel/plugin-transform-class-static-block": "^7.24.7", - "@babel/plugin-transform-classes": "^7.24.7", + "@babel/plugin-transform-classes": "^7.24.8", "@babel/plugin-transform-computed-properties": "^7.24.7", - "@babel/plugin-transform-destructuring": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", "@babel/plugin-transform-dotall-regex": "^7.24.7", "@babel/plugin-transform-duplicate-keys": "^7.24.7", "@babel/plugin-transform-dynamic-import": "^7.24.7", @@ -2347,7 +2346,7 @@ "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", "@babel/plugin-transform-member-expression-literals": "^7.24.7", "@babel/plugin-transform-modules-amd": "^7.24.7", - "@babel/plugin-transform-modules-commonjs": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", "@babel/plugin-transform-modules-systemjs": "^7.24.7", "@babel/plugin-transform-modules-umd": "^7.24.7", "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", @@ -2357,7 +2356,7 @@ "@babel/plugin-transform-object-rest-spread": "^7.24.7", "@babel/plugin-transform-object-super": "^7.24.7", "@babel/plugin-transform-optional-catch-binding": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", "@babel/plugin-transform-parameters": "^7.24.7", "@babel/plugin-transform-private-methods": "^7.24.7", "@babel/plugin-transform-private-property-in-object": "^7.24.7", @@ -2368,7 +2367,7 @@ "@babel/plugin-transform-spread": "^7.24.7", "@babel/plugin-transform-sticky-regex": "^7.24.7", "@babel/plugin-transform-template-literals": "^7.24.7", - "@babel/plugin-transform-typeof-symbol": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.8", "@babel/plugin-transform-unicode-escapes": "^7.24.7", "@babel/plugin-transform-unicode-property-regex": "^7.24.7", "@babel/plugin-transform-unicode-regex": "^7.24.7", @@ -2377,7 +2376,7 @@ "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.10.4", "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.31.0", + "core-js-compat": "^3.37.1", "semver": "^6.3.1" }, "engines": { @@ -2478,9 +2477,9 @@ "peer": true }, "node_modules/@babel/runtime": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", - "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.8.tgz", + "integrity": "sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==", "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" @@ -2505,20 +2504,20 @@ } }, "node_modules/@babel/traverse": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", - "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.8.tgz", + "integrity": "sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==", "license": "MIT", "peer": true, "dependencies": { "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", + "@babel/generator": "^7.24.8", "@babel/helper-environment-visitor": "^7.24.7", "@babel/helper-function-name": "^7.24.7", "@babel/helper-hoist-variables": "^7.24.7", "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", + "@babel/parser": "^7.24.8", + "@babel/types": "^7.24.8", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2537,13 +2536,13 @@ } }, "node_modules/@babel/types": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", - "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.9.tgz", + "integrity": "sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==", "license": "MIT", "peer": true, "dependencies": { - "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-string-parser": "^7.24.8", "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" }, @@ -2811,21 +2810,6 @@ "node": ">=12" } }, - "node_modules/@esbuild/linux-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz", - "integrity": "sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==", - "cpu": [ - "x64" - ], - "dev": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, "node_modules/@esbuild/netbsd-x64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", @@ -4546,8 +4530,9 @@ }, "node_modules/@libertai/libertai-js": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@libertai/libertai-js/-/libertai-js-0.0.8.tgz", - "integrity": "sha512-SDSf/tXfFI2V6LEDTNwGKuxUGBWPfDSz34+6CMSqGp6VVojV6iqLAWm8eNIcYdRu2oPpx9s8q1D41Cvv9tPVow==", + "resolved": "file:../libertai-js/libertai-libertai-js-0.0.8.tgz", + "integrity": "sha512-EavtUHxyyJDXcBk9VkHC3GthkHb1ya+P+mw//JqV3dW544x4/oEZiHEfjRUf8piZiJE9sG04RG1ZjtL2/9geDg==", + "license": "MIT", "dependencies": { "axios": "^1.7.2", "langchain": "^0.1.37", @@ -4600,6 +4585,40 @@ "node": ">=14.0.0" } }, + "node_modules/@metamask/eth-json-rpc-provider/node_modules/@metamask/json-rpc-engine": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@metamask/json-rpc-engine/-/json-rpc-engine-7.3.3.tgz", + "integrity": "sha512-dwZPq8wx9yV3IX2caLi9q9xZBw2XeIoYqdyihDDDpuHVCEiqadJLwqM3zy+uwf6F1QYQ65A8aOMQg1Uw7LMLNg==", + "license": "ISC", + "dependencies": { + "@metamask/rpc-errors": "^6.2.1", + "@metamask/safe-event-emitter": "^3.0.0", + "@metamask/utils": "^8.3.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@metamask/eth-json-rpc-provider/node_modules/@metamask/json-rpc-engine/node_modules/@metamask/utils": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-8.5.0.tgz", + "integrity": "sha512-I6bkduevXb72TIM9q2LRO63JSsF9EXduh3sBr9oybNX2hNNpr/j1tEjXrsG0Uabm4MJ1xkGAQEMwifvKZIkyxQ==", + "license": "ISC", + "dependencies": { + "@ethereumjs/tx": "^4.2.0", + "@metamask/superstruct": "^3.0.0", + "@noble/hashes": "^1.3.1", + "@scure/base": "^1.1.3", + "@types/debug": "^4.1.7", + "debug": "^4.3.4", + "pony-cause": "^2.1.10", + "semver": "^7.5.4", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/@metamask/eth-json-rpc-provider/node_modules/@metamask/utils": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-5.0.2.tgz", @@ -4616,6 +4635,19 @@ "node": ">=14.0.0" } }, + "node_modules/@metamask/eth-json-rpc-provider/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/@metamask/eth-sig-util": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-7.0.2.tgz", @@ -4634,9 +4666,9 @@ } }, "node_modules/@metamask/json-rpc-engine": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@metamask/json-rpc-engine/-/json-rpc-engine-7.3.3.tgz", - "integrity": "sha512-dwZPq8wx9yV3IX2caLi9q9xZBw2XeIoYqdyihDDDpuHVCEiqadJLwqM3zy+uwf6F1QYQ65A8aOMQg1Uw7LMLNg==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@metamask/json-rpc-engine/-/json-rpc-engine-8.0.2.tgz", + "integrity": "sha512-IoQPmql8q7ABLruW7i4EYVHWUbF74yrp63bRuXV5Zf9BQwcn5H9Ww1eLtROYvI1bUXwOiHZ6qT5CWTrDc/t/AA==", "license": "ISC", "dependencies": { "@metamask/rpc-errors": "^6.2.1", @@ -4648,12 +4680,12 @@ } }, "node_modules/@metamask/json-rpc-middleware-stream": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@metamask/json-rpc-middleware-stream/-/json-rpc-middleware-stream-6.0.2.tgz", - "integrity": "sha512-jtyx3PRfc1kqoLpYveIVQNwsxYKefc64/LCl9h9Da1m3nUKEvypbYuXSIwi237qvOjKmNHQKsDOZg6f4uBf62Q==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@metamask/json-rpc-middleware-stream/-/json-rpc-middleware-stream-7.0.2.tgz", + "integrity": "sha512-yUdzsJK04Ev98Ck4D7lmRNQ8FPioXYhEUZOMS01LXW8qTvPGiRVXmVltj2p4wrLkh0vW7u6nv0mNl5xzC5Qmfg==", "license": "ISC", "dependencies": { - "@metamask/json-rpc-engine": "^7.3.2", + "@metamask/json-rpc-engine": "^8.0.2", "@metamask/safe-event-emitter": "^3.0.0", "@metamask/utils": "^8.3.0", "readable-stream": "^3.6.2" @@ -4685,16 +4717,16 @@ } }, "node_modules/@metamask/providers": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@metamask/providers/-/providers-15.0.0.tgz", - "integrity": "sha512-FXvL1NQNl6I7fMOJTfQYcBlBZ33vSlm6w80cMpmn8sJh0Lb7wcBpe02UwBsNlARnI+Qsr26XeDs6WHUHQh8CuA==", + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/@metamask/providers/-/providers-16.1.0.tgz", + "integrity": "sha512-znVCvux30+3SaUwcUGaSf+pUckzT5ukPRpcBmy+muBLC0yaWnBcvDqGfcsw6CBIenUdFrVoAFa8B6jsuCY/a+g==", "license": "MIT", "dependencies": { - "@metamask/json-rpc-engine": "^7.3.2", - "@metamask/json-rpc-middleware-stream": "^6.0.2", + "@metamask/json-rpc-engine": "^8.0.1", + "@metamask/json-rpc-middleware-stream": "^7.0.1", "@metamask/object-multiplex": "^2.0.0", "@metamask/rpc-errors": "^6.2.1", - "@metamask/safe-event-emitter": "^3.0.0", + "@metamask/safe-event-emitter": "^3.1.1", "@metamask/utils": "^8.3.0", "detect-browser": "^5.2.0", "extension-port-stream": "^3.0.0", @@ -4708,18 +4740,51 @@ } }, "node_modules/@metamask/rpc-errors": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@metamask/rpc-errors/-/rpc-errors-6.3.0.tgz", - "integrity": "sha512-B1UIG/0xWkaDs/d6xrxsRf7kmFLdk8YE0HUToaFumjwQM36AjBsqEzVyemPTQv0SIrAPFnSmkLt053JOWcu5iw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@metamask/rpc-errors/-/rpc-errors-6.3.1.tgz", + "integrity": "sha512-ugDY7cKjF4/yH5LtBaOIKHw/AiGGSAmzptAUEiAEGr/78LwuzcXAxmzEQfSfMIfI+f9Djr8cttq1pRJJKfTuCg==", "license": "MIT", "dependencies": { - "@metamask/utils": "^8.3.0", + "@metamask/utils": "^9.0.0", "fast-safe-stringify": "^2.0.6" }, "engines": { "node": ">=16.0.0" } }, + "node_modules/@metamask/rpc-errors/node_modules/@metamask/utils": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-9.1.0.tgz", + "integrity": "sha512-g2REf+xSt0OZfMoNNdC4+/Yy8eP3KUqvIArel54XRFKPoXbHI6+YjFfrLtfykWBjffOp7DTfIc3Kvk5TLfuiyg==", + "license": "ISC", + "dependencies": { + "@ethereumjs/tx": "^4.2.0", + "@metamask/superstruct": "^3.1.0", + "@noble/hashes": "^1.3.1", + "@scure/base": "^1.1.3", + "@types/debug": "^4.1.7", + "debug": "^4.3.4", + "pony-cause": "^2.1.10", + "semver": "^7.5.4", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@metamask/rpc-errors/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/@metamask/safe-event-emitter": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-3.1.1.tgz", @@ -4730,14 +4795,14 @@ } }, "node_modules/@metamask/sdk": { - "version": "0.26.4", - "resolved": "https://registry.npmjs.org/@metamask/sdk/-/sdk-0.26.4.tgz", - "integrity": "sha512-9Yh41KJkD9RhW0lRijnQzPV0ptblLorLdTsf5GnAl3yE72QIfaPBtsDxzLtX+0QLppiFfj7o8vRBYvBApG9k+Q==", + "version": "0.26.5", + "resolved": "https://registry.npmjs.org/@metamask/sdk/-/sdk-0.26.5.tgz", + "integrity": "sha512-HS/MPQCCYRS+m3dDdGLcAagwYHiPv9iUshDMBjINUywCtfUN4P2BH8xdvPOgtnzRIuRSMXqMWBbZnTvEvBeQvA==", "dependencies": { "@metamask/onboarding": "^1.0.1", - "@metamask/providers": "^15.0.0", + "@metamask/providers": "16.1.0", "@metamask/sdk-communication-layer": "0.26.4", - "@metamask/sdk-install-modal-web": "0.26.4", + "@metamask/sdk-install-modal-web": "0.26.5", "@types/dom-screen-wake-lock": "^1.0.0", "bowser": "^2.9.0", "cross-fetch": "^4.0.0", @@ -4771,14 +4836,14 @@ } }, "node_modules/@metamask/sdk-install-modal-web": { - "version": "0.26.4", - "resolved": "https://registry.npmjs.org/@metamask/sdk-install-modal-web/-/sdk-install-modal-web-0.26.4.tgz", - "integrity": "sha512-7Cx7ZsaExbMwghlRrUWWI0Ksg0m7K60LtMjfuDpjvjWqoZa9MoPxitGDEXNbLaqvKn39ebPvNcPzQ6czA4ilTw==", + "version": "0.26.5", + "resolved": "https://registry.npmjs.org/@metamask/sdk-install-modal-web/-/sdk-install-modal-web-0.26.5.tgz", + "integrity": "sha512-qVA9Nk+NorGx5hXyODy5wskptE8R7RNYTYt49VbQpJogqbbVe1dnJ98+KaA43PBN4XYMCXmcIhULNiEHGsLynA==", "dependencies": { "qr-code-styling": "^1.6.0-rc.1" }, "peerDependencies": { - "i18next": "23.2.3", + "i18next": "23.11.5", "react": "^18.2.0", "react-dom": "^18.2.0", "react-native": "*" @@ -4825,29 +4890,6 @@ "secp256k1": "^5.0.0" } }, - "node_modules/@metamask/sdk/node_modules/i18next": { - "version": "23.11.5", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.11.5.tgz", - "integrity": "sha512-41pvpVbW9rhZPk5xjCX2TPJi2861LEig/YRhUkY+1FQ2IQPS0bKUDYnEqY8XPPbB48h1uIwLnP9iiEfuSl20CA==", - "funding": [ - { - "type": "individual", - "url": "https://locize.com" - }, - { - "type": "individual", - "url": "https://locize.com/i18next.html" - }, - { - "type": "individual", - "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" - } - ], - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.2" - } - }, "node_modules/@metamask/sdk/node_modules/node-addon-api": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", @@ -4878,6 +4920,15 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/@metamask/superstruct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@metamask/superstruct/-/superstruct-3.1.0.tgz", + "integrity": "sha512-N08M56HdOgBfRKkrgCMZvQppkZGcArEop3kixNEtVbJKm6P9Cfg0YkI6X0s1g78sNrj2fWUwvJADdZuzJgFttA==", + "license": "MIT", + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/@metamask/utils": { "version": "8.4.0", "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-8.4.0.tgz", @@ -5090,6 +5141,26 @@ "@parcel/watcher-win32-x64": "2.4.1" } }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz", + "integrity": "sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/@parcel/watcher-darwin-arm64": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz", @@ -5110,6 +5181,146 @@ "url": "https://opencollective.com/parcel" } }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz", + "integrity": "sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz", + "integrity": "sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz", + "integrity": "sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz", + "integrity": "sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz", + "integrity": "sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz", + "integrity": "sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz", + "integrity": "sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/@parcel/watcher-wasm": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/@parcel/watcher-wasm/-/watcher-wasm-2.4.1.tgz", @@ -5136,15 +5347,72 @@ "inBundle": true, "license": "MIT" }, - "node_modules/@parcel/watcher/node_modules/node-addon-api": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", - "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz", + "integrity": "sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz", + "integrity": "sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz", + "integrity": "sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==", + "cpu": [ + "x64" + ], "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": "^16 || ^18 || >= 20" + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, + "node_modules/@parcel/watcher/node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "license": "MIT" + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -5245,9 +5513,10 @@ } }, "node_modules/@quasar/extras": { - "version": "1.16.11", - "resolved": "https://registry.npmjs.org/@quasar/extras/-/extras-1.16.11.tgz", - "integrity": "sha512-sbTBHOA+Hi7ah0P6qSm+xfRXqwJ94ct3NKA3Lkq3iNPYuHD7VXbSWtP2eA7Cu9Fd0WjVoPbngf6yFGg46U3IfQ==", + "version": "1.16.12", + "resolved": "https://registry.npmjs.org/@quasar/extras/-/extras-1.16.12.tgz", + "integrity": "sha512-hLlb3Buxo38Xg/2w0BTkz98RBh/VH8apZ2r6Fl8YpPgrVQ0diHyN/BVTvIOk5Kch2y38L2kvwOIddsB2UcCuIg==", + "license": "MIT", "funding": { "type": "github", "url": "https://donate.quasar.dev" @@ -6018,9 +6287,9 @@ } }, "node_modules/@rnx-kit/chromium-edge-launcher/node_modules/@types/node": { - "version": "18.19.39", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.39.tgz", - "integrity": "sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==", + "version": "18.19.41", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.41.tgz", + "integrity": "sha512-LX84pRJ+evD2e2nrgYCHObGWkiQJ1mL+meAgbvnwk/US6vmMY7S2ygBTGV2Jw91s9vUsLSXeDEkUHZIJGLrhsg==", "license": "MIT", "peer": true, "dependencies": { @@ -6036,232 +6305,91 @@ "bin": { "mkdirp": "bin/cmd.js" }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@rollup/plugin-inject": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-5.0.5.tgz", - "integrity": "sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==", - "dev": true, - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.3" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-inject/node_modules/@rollup/pluginutils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", - "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", - "dev": true, - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/pluginutils": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", - "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", - "dev": true, - "dependencies": { - "estree-walker": "^2.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/@safe-global/safe-apps-provider": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/@safe-global/safe-apps-provider/-/safe-apps-provider-0.18.1.tgz", - "integrity": "sha512-V4a05A3EgJcriqtDoJklDz1BOinWhC6P0hjUSxshA4KOZM7rGPCTto/usXs09zr1vvL28evl/NldSTv97j2bmg==", - "license": "MIT", - "dependencies": { - "@safe-global/safe-apps-sdk": "^8.1.0", - "events": "^3.3.0" - } - }, - "node_modules/@safe-global/safe-apps-sdk": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@safe-global/safe-apps-sdk/-/safe-apps-sdk-8.1.0.tgz", - "integrity": "sha512-XJbEPuaVc7b9n23MqlF6c+ToYIS3f7P2Sel8f3cSBQ9WORE4xrSuvhMpK9fDSFqJ7by/brc+rmJR/5HViRr0/w==", - "license": "MIT", - "dependencies": { - "@safe-global/safe-gateway-typescript-sdk": "^3.5.3", - "viem": "^1.0.0" - } - }, - "node_modules/@safe-global/safe-apps-sdk/node_modules/@noble/curves": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", - "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", - "license": "MIT", - "dependencies": { - "@noble/hashes": "1.3.2" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@safe-global/safe-apps-sdk/node_modules/@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", - "license": "MIT", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@safe-global/safe-apps-sdk/node_modules/@scure/bip32": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.2.tgz", - "integrity": "sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA==", - "license": "MIT", - "dependencies": { - "@noble/curves": "~1.2.0", - "@noble/hashes": "~1.3.2", - "@scure/base": "~1.1.2" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@safe-global/safe-apps-sdk/node_modules/@scure/bip39": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.1.tgz", - "integrity": "sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==", - "license": "MIT", - "dependencies": { - "@noble/hashes": "~1.3.0", - "@scure/base": "~1.1.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@safe-global/safe-apps-sdk/node_modules/abitype": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/abitype/-/abitype-0.9.8.tgz", - "integrity": "sha512-puLifILdm+8sjyss4S+fsUN09obiT1g2YW6CtcQF+QDzxR0euzgEB29MZujC6zMk2a6SVmtttq1fc6+YFA7WYQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wagmi-dev" - } - ], - "license": "MIT", - "peerDependencies": { - "typescript": ">=5.0.4", - "zod": "^3 >=3.19.1" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - }, - "zod": { - "optional": true - } - } - }, - "node_modules/@safe-global/safe-apps-sdk/node_modules/isows": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.3.tgz", - "integrity": "sha512-2cKei4vlmg2cxEjm3wVSqn8pcoRF/LX/wpifuuNquFO4SQmPwarClT+SUCA2lt+l581tTeZIPIZuIDo2jWN1fg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wagmi-dev" - } - ], - "license": "MIT", - "peerDependencies": { - "ws": "*" + "engines": { + "node": ">=10" } }, - "node_modules/@safe-global/safe-apps-sdk/node_modules/viem": { - "version": "1.21.4", - "resolved": "https://registry.npmjs.org/viem/-/viem-1.21.4.tgz", - "integrity": "sha512-BNVYdSaUjeS2zKQgPs+49e5JKocfo60Ib2yiXOWBT6LuVxY1I/6fFX3waEtpXvL1Xn4qu+BVitVtMh9lyThyhQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], - "license": "MIT", + "node_modules/@rollup/plugin-inject": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-5.0.5.tgz", + "integrity": "sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==", + "dev": true, "dependencies": { - "@adraffy/ens-normalize": "1.10.0", - "@noble/curves": "1.2.0", - "@noble/hashes": "1.3.2", - "@scure/bip32": "1.3.2", - "@scure/bip39": "1.2.1", - "abitype": "0.9.8", - "isows": "1.0.3", - "ws": "8.13.0" + "@rollup/pluginutils": "^5.0.1", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=14.0.0" }, "peerDependencies": { - "typescript": ">=5.0.4" + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { - "typescript": { + "rollup": { "optional": true } } }, - "node_modules/@safe-global/safe-apps-sdk/node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "license": "MIT", + "node_modules/@rollup/plugin-inject/node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, "engines": { - "node": ">=10.0.0" + "node": ">=14.0.0" }, "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { + "rollup": { "optional": true } } }, + "node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/@safe-global/safe-apps-provider": { + "version": "0.18.3", + "resolved": "https://registry.npmjs.org/@safe-global/safe-apps-provider/-/safe-apps-provider-0.18.3.tgz", + "integrity": "sha512-f/0cNv3S4v7p8rowAjj0hDCg8Q8P/wBjp5twkNWeBdvd0RDr7BuRBPPk74LCqmjQ82P+1ltLlkmVFSmxTIT7XQ==", + "license": "MIT", + "dependencies": { + "@safe-global/safe-apps-sdk": "^9.1.0", + "events": "^3.3.0" + } + }, + "node_modules/@safe-global/safe-apps-sdk": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@safe-global/safe-apps-sdk/-/safe-apps-sdk-9.1.0.tgz", + "integrity": "sha512-N5p/ulfnnA2Pi2M3YeWjULeWbjo7ei22JwU/IXnhoHzKq3pYCN6ynL9mJBOlvDVv892EgLPCWCOwQk/uBT2v0Q==", + "license": "MIT", + "dependencies": { + "@safe-global/safe-gateway-typescript-sdk": "^3.5.3", + "viem": "^2.1.1" + } + }, "node_modules/@safe-global/safe-gateway-typescript-sdk": { - "version": "3.21.8", - "resolved": "https://registry.npmjs.org/@safe-global/safe-gateway-typescript-sdk/-/safe-gateway-typescript-sdk-3.21.8.tgz", - "integrity": "sha512-n/fYgiqbuzAQuK0bgny6GBYvb585ETxKURa5Kb9hBV3fa47SvJo/dpGq275fJUn0e3Hh1YqETiLGj4HVJjHiTA==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@safe-global/safe-gateway-typescript-sdk/-/safe-gateway-typescript-sdk-3.22.0.tgz", + "integrity": "sha512-QKgucFMloZ7S23X70U6OmFaRxfX2O52xBAZFIDeW9n+uiANG+JYUiJv6UC0/eVNto+CU/dOVnpqRDhr6/ElKDg==", "license": "MIT", "engines": { "node": ">=16" @@ -6571,9 +6699,9 @@ } }, "node_modules/@tanstack/query-core": { - "version": "5.50.1", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.50.1.tgz", - "integrity": "sha512-lpfhKPrJlyV2DSVcQb/HuozH3Av3kws4ge22agx+lNGpFkS4vLZ7St0l3GLwlAD+bqB+qXGex3JdRKUNtMviEQ==", + "version": "5.51.9", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.51.9.tgz", + "integrity": "sha512-HsAwaY5J19MD18ykZDS3aVVh+bAt0i7m6uQlFC2b77DLV9djo+xEN7MWQAQQTR8IM+7r/zbozTQ7P0xr0bHuew==", "license": "MIT", "funding": { "type": "github", @@ -6581,13 +6709,13 @@ } }, "node_modules/@tanstack/vue-query": { - "version": "5.50.1", - "resolved": "https://registry.npmjs.org/@tanstack/vue-query/-/vue-query-5.50.1.tgz", - "integrity": "sha512-hGlIDdu1K4kmELhkkBh0oAgm5cBEHeEMrnIVOengl3/YOoO+LHbLmWdXi6GOmHTva4oFhk/jgkL1NbACzkFGOQ==", + "version": "5.51.9", + "resolved": "https://registry.npmjs.org/@tanstack/vue-query/-/vue-query-5.51.9.tgz", + "integrity": "sha512-MomUvdND+h2MeBhNfSyaKw0o3lHl2+UjtsxN29X55/0+AmH4GVJRHlCGIzxKhZrFLf2cIw5Rzc9YWYtlA4WmgA==", "license": "MIT", "dependencies": { "@tanstack/match-sorter-utils": "^8.15.1", - "@tanstack/query-core": "5.50.1", + "@tanstack/query-core": "5.51.9", "@vue/devtools-api": "^6.5.1", "vue-demi": "^0.14.7" }, @@ -6803,9 +6931,9 @@ "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" }, "node_modules/@types/node": { - "version": "20.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.10.tgz", - "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==", + "version": "20.14.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.11.tgz", + "integrity": "sha512-kprQpL8MMeszbz6ojB5/tU8PLN4kesnN8Gjzw349rDlNgsSzg90lAVj3llK99Dh7JON+t9AuscPPFW6mPbTnSA==", "license": "MIT", "dependencies": { "undici-types": "~5.26.4" @@ -6928,17 +7056,17 @@ "peer": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.15.0.tgz", - "integrity": "sha512-uiNHpyjZtFrLwLDpHnzaDlP3Tt6sGMqTCiqmxaN4n4RP0EfYZDODJyddiFDF44Hjwxr5xAcaYxVKm9QKQFJFLA==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.16.1.tgz", + "integrity": "sha512-SxdPak/5bO0EnGktV05+Hq8oatjAYVY3Zh2bye9pGZy6+jwyR3LG3YKkV4YatlsgqXP28BTeVm9pqwJM96vf2A==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.15.0", - "@typescript-eslint/type-utils": "7.15.0", - "@typescript-eslint/utils": "7.15.0", - "@typescript-eslint/visitor-keys": "7.15.0", + "@typescript-eslint/scope-manager": "7.16.1", + "@typescript-eslint/type-utils": "7.16.1", + "@typescript-eslint/utils": "7.16.1", + "@typescript-eslint/visitor-keys": "7.16.1", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -6962,16 +7090,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.15.0.tgz", - "integrity": "sha512-k9fYuQNnypLFcqORNClRykkGOMOj+pV6V91R4GO/l1FDGwpqmSwoOQrOHo3cGaH63e+D3ZiCAOsuS/D2c99j/A==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.16.1.tgz", + "integrity": "sha512-u+1Qx86jfGQ5i4JjK33/FnawZRpsLxRnKzGE6EABZ40KxVT/vWsiZFEBBHjFOljmmV3MBYOHEKi0Jm9hbAOClA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "7.15.0", - "@typescript-eslint/types": "7.15.0", - "@typescript-eslint/typescript-estree": "7.15.0", - "@typescript-eslint/visitor-keys": "7.15.0", + "@typescript-eslint/scope-manager": "7.16.1", + "@typescript-eslint/types": "7.16.1", + "@typescript-eslint/typescript-estree": "7.16.1", + "@typescript-eslint/visitor-keys": "7.16.1", "debug": "^4.3.4" }, "engines": { @@ -6991,14 +7119,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.15.0.tgz", - "integrity": "sha512-Q/1yrF/XbxOTvttNVPihxh1b9fxamjEoz2Os/Pe38OHwxC24CyCqXxGTOdpb4lt6HYtqw9HetA/Rf6gDGaMPlw==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.16.1.tgz", + "integrity": "sha512-nYpyv6ALte18gbMz323RM+vpFpTjfNdyakbf3nsLvF43uF9KeNC289SUEW3QLZ1xPtyINJ1dIsZOuWuSRIWygw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.15.0", - "@typescript-eslint/visitor-keys": "7.15.0" + "@typescript-eslint/types": "7.16.1", + "@typescript-eslint/visitor-keys": "7.16.1" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -7009,14 +7137,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.15.0.tgz", - "integrity": "sha512-SkgriaeV6PDvpA6253PDVep0qCqgbO1IOBiycjnXsszNTVQe5flN5wR5jiczoEoDEnAqYFSFFc9al9BSGVltkg==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.16.1.tgz", + "integrity": "sha512-rbu/H2MWXN4SkjIIyWcmYBjlp55VT+1G3duFOIukTNFxr9PI35pLc2ydwAfejCEitCv4uztA07q0QWanOHC7dA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "7.15.0", - "@typescript-eslint/utils": "7.15.0", + "@typescript-eslint/typescript-estree": "7.16.1", + "@typescript-eslint/utils": "7.16.1", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -7037,9 +7165,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.15.0.tgz", - "integrity": "sha512-aV1+B1+ySXbQH0pLK0rx66I3IkiZNidYobyfn0WFsdGhSXw+P3YOqeTq5GED458SfB24tg+ux3S+9g118hjlTw==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.16.1.tgz", + "integrity": "sha512-AQn9XqCzUXd4bAVEsAXM/Izk11Wx2u4H3BAfQVhSfzfDOm/wAON9nP7J5rpkCxts7E5TELmN845xTUCQrD1xIQ==", "dev": true, "license": "MIT", "engines": { @@ -7051,14 +7179,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.15.0.tgz", - "integrity": "sha512-gjyB/rHAopL/XxfmYThQbXbzRMGhZzGw6KpcMbfe8Q3nNQKStpxnUKeXb0KiN/fFDR42Z43szs6rY7eHk0zdGQ==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.16.1.tgz", + "integrity": "sha512-0vFPk8tMjj6apaAZ1HlwM8w7jbghC8jc1aRNJG5vN8Ym5miyhTQGMqU++kuBFDNKe9NcPeZ6x0zfSzV8xC1UlQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "7.15.0", - "@typescript-eslint/visitor-keys": "7.15.0", + "@typescript-eslint/types": "7.16.1", + "@typescript-eslint/visitor-keys": "7.16.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -7106,16 +7234,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.15.0.tgz", - "integrity": "sha512-hfDMDqaqOqsUVGiEPSMLR/AjTSCsmJwjpKkYQRo1FNbmW4tBwBspYDwO9eh7sKSTwMQgBw9/T4DHudPaqshRWA==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.16.1.tgz", + "integrity": "sha512-WrFM8nzCowV0he0RlkotGDujx78xudsxnGMBHI88l5J8wEhED6yBwaSLP99ygfrzAjsQvcYQ94quDwI0d7E1fA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.15.0", - "@typescript-eslint/types": "7.15.0", - "@typescript-eslint/typescript-estree": "7.15.0" + "@typescript-eslint/scope-manager": "7.16.1", + "@typescript-eslint/types": "7.16.1", + "@typescript-eslint/typescript-estree": "7.16.1" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -7129,13 +7257,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.15.0.tgz", - "integrity": "sha512-Hqgy/ETgpt2L5xueA/zHHIl4fJI2O4XUE9l4+OIfbJIRSnTJb/QscncdqqZzofQegIJugRIF57OJea1khw2SDw==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.16.1.tgz", + "integrity": "sha512-Qlzzx4sE4u3FsHTPQAAQFJFNOuqtuY0LFrZHwQ8IHK705XxBiWOFkfKRWu6niB7hwfgnwIpO4jTC75ozW1PHWg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/types": "7.16.1", "eslint-visitor-keys": "^3.4.3" }, "engines": { @@ -7166,53 +7294,53 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.4.31", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.31.tgz", - "integrity": "sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==", + "version": "3.4.33", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.33.tgz", + "integrity": "sha512-MoIREbkdPQlnGfSKDMgzTqzqx5nmEjIc0ydLVYlTACGBsfvOJ4tHSbZXKVF536n6fB+0eZaGEOqsGThPpdvF5A==", "license": "MIT", "dependencies": { "@babel/parser": "^7.24.7", - "@vue/shared": "3.4.31", + "@vue/shared": "3.4.33", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-dom": { - "version": "3.4.31", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.31.tgz", - "integrity": "sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ==", + "version": "3.4.33", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.33.tgz", + "integrity": "sha512-GzB8fxEHKw0gGet5BKlpfXEqoBnzSVWwMnT+dc25wE7pFEfrU/QsvjZMP9rD4iVXHBBoemTct8mN0GJEI6ZX5A==", "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.4.31", - "@vue/shared": "3.4.31" + "@vue/compiler-core": "3.4.33", + "@vue/shared": "3.4.33" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.4.31", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.31.tgz", - "integrity": "sha512-einJxqEw8IIJxzmnxmJBuK2usI+lJonl53foq+9etB2HAzlPjAS/wa7r0uUpXw5ByX3/0uswVSrjNb17vJm1kQ==", + "version": "3.4.33", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.33.tgz", + "integrity": "sha512-7rk7Vbkn21xMwIUpHQR4hCVejwE6nvhBOiDgoBcR03qvGqRKA7dCBSsHZhwhYUsmjlbJ7OtD5UFIyhP6BY+c8A==", "license": "MIT", "dependencies": { "@babel/parser": "^7.24.7", - "@vue/compiler-core": "3.4.31", - "@vue/compiler-dom": "3.4.31", - "@vue/compiler-ssr": "3.4.31", - "@vue/shared": "3.4.31", + "@vue/compiler-core": "3.4.33", + "@vue/compiler-dom": "3.4.33", + "@vue/compiler-ssr": "3.4.33", + "@vue/shared": "3.4.33", "estree-walker": "^2.0.2", "magic-string": "^0.30.10", - "postcss": "^8.4.38", + "postcss": "^8.4.39", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.4.31", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.31.tgz", - "integrity": "sha512-RtefmITAje3fJ8FSg1gwgDhdKhZVntIVbwupdyZDSifZTRMiWxWehAOTCc8/KZDnBOcYQ4/9VWxsTbd3wT0hAA==", + "version": "3.4.33", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.33.tgz", + "integrity": "sha512-0WveC9Ai+eT/1b6LCV5IfsufBZ0HP7pSSTdDjcuW302tTEgoBw8rHVHKPbGUtzGReUFCRXbv6zQDDgucnV2WzQ==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.4.31", - "@vue/shared": "3.4.31" + "@vue/compiler-dom": "3.4.33", + "@vue/shared": "3.4.33" } }, "node_modules/@vue/devtools-api": { @@ -7246,65 +7374,65 @@ } }, "node_modules/@vue/reactivity": { - "version": "3.4.31", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.31.tgz", - "integrity": "sha512-VGkTani8SOoVkZNds1PfJ/T1SlAIOf8E58PGAhIOUDYPC4GAmFA2u/E14TDAFcf3vVDKunc4QqCe/SHr8xC65Q==", + "version": "3.4.33", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.33.tgz", + "integrity": "sha512-B24QIelahDbyHipBgbUItQblbd4w5HpG3KccL+YkGyo3maXyS253FzcTR3pSz739OTphmzlxP7JxEMWBpewilA==", "license": "MIT", "dependencies": { - "@vue/shared": "3.4.31" + "@vue/shared": "3.4.33" } }, "node_modules/@vue/runtime-core": { - "version": "3.4.31", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.31.tgz", - "integrity": "sha512-LDkztxeUPazxG/p8c5JDDKPfkCDBkkiNLVNf7XZIUnJ+66GVGkP+TIh34+8LtPisZ+HMWl2zqhIw0xN5MwU1cw==", + "version": "3.4.33", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.33.tgz", + "integrity": "sha512-6wavthExzT4iAxpe8q37/rDmf44nyOJGISJPxCi9YsQO+8w9v0gLCFLfH5TzD1V1AYrTAdiF4Y1cgUmP68jP6w==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.4.31", - "@vue/shared": "3.4.31" + "@vue/reactivity": "3.4.33", + "@vue/shared": "3.4.33" } }, "node_modules/@vue/runtime-dom": { - "version": "3.4.31", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.31.tgz", - "integrity": "sha512-2Auws3mB7+lHhTFCg8E9ZWopA6Q6L455EcU7bzcQ4x6Dn4cCPuqj6S2oBZgN2a8vJRS/LSYYxwFFq2Hlx3Fsaw==", + "version": "3.4.33", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.33.tgz", + "integrity": "sha512-iHsMCUSFJ+4z432Bn9kZzHX+zOXa6+iw36DaVRmKYZpPt9jW9riF32SxNwB124i61kp9+AZtheQ/mKoJLerAaQ==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.4.31", - "@vue/runtime-core": "3.4.31", - "@vue/shared": "3.4.31", + "@vue/reactivity": "3.4.33", + "@vue/runtime-core": "3.4.33", + "@vue/shared": "3.4.33", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.4.31", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.31.tgz", - "integrity": "sha512-D5BLbdvrlR9PE3by9GaUp1gQXlCNadIZytMIb8H2h3FMWJd4oUfkUTEH2wAr3qxoRz25uxbTcbqd3WKlm9EHQA==", + "version": "3.4.33", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.33.tgz", + "integrity": "sha512-jTH0d6gQcaYideFP/k0WdEu8PpRS9MF8d0b6SfZzNi+ap972pZ0TNIeTaESwdOtdY0XPVj54XEJ6K0wXxir4fw==", "license": "MIT", "dependencies": { - "@vue/compiler-ssr": "3.4.31", - "@vue/shared": "3.4.31" + "@vue/compiler-ssr": "3.4.33", + "@vue/shared": "3.4.33" }, "peerDependencies": { - "vue": "3.4.31" + "vue": "3.4.33" } }, "node_modules/@vue/shared": { - "version": "3.4.31", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.31.tgz", - "integrity": "sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA==", + "version": "3.4.33", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.33.tgz", + "integrity": "sha512-aoRY0jQk3A/cuvdkodTrM4NMfxco8n55eG4H7ML/CRy7OryHfiqvug4xrCBBMbbN+dvXAetDDwZW9DXWWjBntA==", "license": "MIT" }, "node_modules/@wagmi/connectors": { - "version": "5.0.21", - "resolved": "https://registry.npmjs.org/@wagmi/connectors/-/connectors-5.0.21.tgz", - "integrity": "sha512-lbjXEv6HhOa9nXZ5r6NGFJdaadCt2Yj9hSWHjKuiTobrE6dEGQqG16mCQS17yXcvXpI62Q/sW6SL347JrBju/Q==", + "version": "5.0.26", + "resolved": "https://registry.npmjs.org/@wagmi/connectors/-/connectors-5.0.26.tgz", + "integrity": "sha512-aGc3oDQPQwVqJr7S/7IU7rF0bA61OYXGPLzj30Y3MSmmEWXtAEgKpqkhIwiEdYQAMnlR3ukbqROq8qmUm/iYQg==", "license": "MIT", "dependencies": { "@coinbase/wallet-sdk": "4.0.4", - "@metamask/sdk": "0.26.4", - "@safe-global/safe-apps-provider": "0.18.1", - "@safe-global/safe-apps-sdk": "8.1.0", + "@metamask/sdk": "0.26.5", + "@safe-global/safe-apps-provider": "0.18.3", + "@safe-global/safe-apps-sdk": "9.1.0", "@walletconnect/ethereum-provider": "2.13.0", "@walletconnect/modal": "2.6.2", "cbw-sdk": "npm:@coinbase/wallet-sdk@3.9.3" @@ -7313,7 +7441,7 @@ "url": "https://github.com/sponsors/wevm" }, "peerDependencies": { - "@wagmi/core": "2.11.6", + "@wagmi/core": "2.12.2", "typescript": ">=5.0.4", "viem": "2.x" }, @@ -7324,13 +7452,13 @@ } }, "node_modules/@wagmi/core": { - "version": "2.11.6", - "resolved": "https://registry.npmjs.org/@wagmi/core/-/core-2.11.6.tgz", - "integrity": "sha512-Ohk7Bh+Q8kjzxEHImIq98CnPduz8n1a5bdwJi6F7zU3h62crhlVq7fZBYoBhoDgmX0ROVOMr8WW3XU3XhRwUOw==", + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/@wagmi/core/-/core-2.12.2.tgz", + "integrity": "sha512-V/KmuTOBHVdg5NG5EIzLyWuXJ3f8a8YwpXM7ywjuEnGkljxh+WROKKd+I/Qc5RHK59nEhFOYWQKXuyz1szmO9A==", "license": "MIT", "dependencies": { "eventemitter3": "5.0.1", - "mipd": "0.0.5", + "mipd": "0.0.7", "zustand": "4.4.1" }, "funding": { @@ -7357,13 +7485,13 @@ "license": "MIT" }, "node_modules/@wagmi/vue": { - "version": "0.0.25", - "resolved": "https://registry.npmjs.org/@wagmi/vue/-/vue-0.0.25.tgz", - "integrity": "sha512-B5BdKjoMPsm6ptUTaVSEFSJMuLz0GfWSn20YYpqhSBSeFRqSVjh4eW4fEJmQhn5mZK8tVOdy6wxM8qkKfPOH2g==", + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@wagmi/vue/-/vue-0.0.30.tgz", + "integrity": "sha512-cB2kimEGk2M2hhcc9FD8VB/4iCeacAqbsT4v4QnxX9q8efkKBA0lPUB/6smkPO2vqR1uEhg8NskG+KAwv8X4Nw==", "license": "MIT", "dependencies": { - "@wagmi/connectors": "5.0.21", - "@wagmi/core": "2.11.6" + "@wagmi/connectors": "5.0.26", + "@wagmi/core": "2.12.2" }, "funding": { "url": "https://github.com/sponsors/wevm" @@ -8745,9 +8873,9 @@ } }, "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.2.tgz", + "integrity": "sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==", "funding": [ { "type": "opencollective", @@ -8762,11 +8890,12 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", + "caniuse-lite": "^1.0.30001640", + "electron-to-chromium": "^1.4.820", "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "update-browserslist-db": "^1.1.0" }, "bin": { "browserslist": "cli.js" @@ -8969,9 +9098,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001627", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001627.tgz", - "integrity": "sha512-4zgNiB8nTyV/tHhwZrFs88ryjls/lHiqFhrxCW4qSTeuRByBVnPYpDInchOIySWknznucaf31Z4KYqjfbrecVw==", + "version": "1.0.30001642", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001642.tgz", + "integrity": "sha512-3XQ0DoRgLijXJErLSl+bLnJ+Et4KqV1PY6JJBGAFlsNsz31zeAIncyeZfLCabHK/jtSh+671RM9YMldxjUPZtA==", "funding": [ { "type": "opencollective", @@ -8985,7 +9114,8 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/cbw-sdk": { "name": "@coinbase/wallet-sdk", @@ -9671,9 +9801,9 @@ } }, "node_modules/cookie-es": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.1.0.tgz", - "integrity": "sha512-L2rLOcK0wzWSfSDA33YR+PUHDG10a8px7rUHKWbGLP4YfbsMed2KFUw5fczvDPbT98DDe3LEzviswl810apTEw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.1.tgz", + "integrity": "sha512-ilTPDuxhZX44BSzzRB58gvSY2UevZKQM9fjisn7Z+NJ92CtSU6kO1+22ZN/agbEJANFjK85EiJJbi/gQv18OXA==", "license": "MIT" }, "node_modules/cookie-signature": { @@ -9936,9 +10066,9 @@ } }, "node_modules/dayjs": { - "version": "1.11.11", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.11.tgz", - "integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==", + "version": "1.11.12", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.12.tgz", + "integrity": "sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg==", "license": "MIT", "peer": true }, @@ -10264,9 +10394,10 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.789", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.789.tgz", - "integrity": "sha512-0VbyiaXoT++Fi2vHGo2ThOeS6X3vgRCWrjPeO2FeIAWL6ItiSJ9BqlH8LfCXe3X1IdcG+S0iLoNaxQWhfZoGzQ==" + "version": "1.4.830", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.830.tgz", + "integrity": "sha512-TrPKKH20HeN0J1LHzsYLs2qwXrp8TF4nHdu4sq61ozGbzMpWhI7iIOPYPPkxeq1azMT9PZ8enPFcftbs/Npcjg==", + "license": "ISC" }, "node_modules/elementtree": { "version": "0.1.7", @@ -10340,9 +10471,9 @@ } }, "node_modules/engine.io-parser": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz", - "integrity": "sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", + "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", "license": "MIT", "engines": { "node": ">=10.0.0" @@ -11422,9 +11553,9 @@ "peer": true }, "node_modules/flow-parser": { - "version": "0.238.3", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.238.3.tgz", - "integrity": "sha512-hNUhucq8V6KWSX1skXUS3vnDmrRNuKWzDvEVK5b+n97uMF32zj2y8pmcLDQEqlY5u926B0GYGWT/3XhwDJfLOQ==", + "version": "0.241.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.241.0.tgz", + "integrity": "sha512-82yKXpz7iWknWFsognZUf5a6mBQLnVrYoYSU9Nbu7FTOpKlu3v9ehpiI9mYXuaIO3J0ojX1b83M/InXvld9HUw==", "license": "MIT", "peer": true, "engines": { @@ -11925,9 +12056,10 @@ "license": "MIT" }, "node_modules/highlight.js": { - "version": "11.9.0", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.9.0.tgz", - "integrity": "sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==", + "version": "11.10.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.10.0.tgz", + "integrity": "sha512-SYVnVFswQER+zu1laSya563s+F8VDGt7o35d4utbamowvUNLLMovFqwCLSocpZTz3MgaSRA1IbqRWZv97dtErQ==", + "license": "BSD-3-Clause", "engines": { "node": ">=12.0.0" } @@ -12013,9 +12145,9 @@ } }, "node_modules/i18next": { - "version": "23.2.3", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.2.3.tgz", - "integrity": "sha512-5spO7L0rNmW0jFuNhz+gfirlFt1anle4mTy4+gFkgsH0+T3R5++4oncBrzeKa7v8pweRyGBoGmOpboqlxovg6A==", + "version": "23.11.5", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.11.5.tgz", + "integrity": "sha512-41pvpVbW9rhZPk5xjCX2TPJi2861LEig/YRhUkY+1FQ2IQPS0bKUDYnEqY8XPPbB48h1uIwLnP9iiEfuSl20CA==", "funding": [ { "type": "individual", @@ -12031,9 +12163,8 @@ } ], "license": "MIT", - "peer": true, "dependencies": { - "@babel/runtime": "^7.22.5" + "@babel/runtime": "^7.23.2" } }, "node_modules/i18next-browser-languagedetector": { @@ -14441,107 +14572,9 @@ } }, "node_modules/mipd": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/mipd/-/mipd-0.0.5.tgz", - "integrity": "sha512-gbKA784D2WKb5H/GtqEv+Ofd1S9Zj+Z/PGDIl1u1QAbswkxD28BQ5bSXQxkeBzPBABg1iDSbiwGG1XqlOxRspA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wagmi-dev" - } - ], - "license": "MIT", - "dependencies": { - "viem": "^1.1.4" - }, - "peerDependencies": { - "typescript": ">=5.0.4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/mipd/node_modules/@noble/curves": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", - "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", - "license": "MIT", - "dependencies": { - "@noble/hashes": "1.3.2" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/mipd/node_modules/@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", - "license": "MIT", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/mipd/node_modules/@scure/bip32": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.2.tgz", - "integrity": "sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA==", - "license": "MIT", - "dependencies": { - "@noble/curves": "~1.2.0", - "@noble/hashes": "~1.3.2", - "@scure/base": "~1.1.2" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/mipd/node_modules/@scure/bip39": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.1.tgz", - "integrity": "sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==", - "license": "MIT", - "dependencies": { - "@noble/hashes": "~1.3.0", - "@scure/base": "~1.1.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/mipd/node_modules/abitype": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/abitype/-/abitype-0.9.8.tgz", - "integrity": "sha512-puLifILdm+8sjyss4S+fsUN09obiT1g2YW6CtcQF+QDzxR0euzgEB29MZujC6zMk2a6SVmtttq1fc6+YFA7WYQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wagmi-dev" - } - ], - "license": "MIT", - "peerDependencies": { - "typescript": ">=5.0.4", - "zod": "^3 >=3.19.1" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - }, - "zod": { - "optional": true - } - } - }, - "node_modules/mipd/node_modules/isows": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.3.tgz", - "integrity": "sha512-2cKei4vlmg2cxEjm3wVSqn8pcoRF/LX/wpifuuNquFO4SQmPwarClT+SUCA2lt+l581tTeZIPIZuIDo2jWN1fg==", + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mipd/-/mipd-0.0.7.tgz", + "integrity": "sha512-aAPZPNDQ3uMTdKbuO2YmAw2TxLHO0moa4YKAyETM/DTj5FloZo+a+8tU+iv4GmW+sOxKLSRwcSFuczk+Cpt6fg==", "funding": [ { "type": "github", @@ -14549,31 +14582,6 @@ } ], "license": "MIT", - "peerDependencies": { - "ws": "*" - } - }, - "node_modules/mipd/node_modules/viem": { - "version": "1.21.4", - "resolved": "https://registry.npmjs.org/viem/-/viem-1.21.4.tgz", - "integrity": "sha512-BNVYdSaUjeS2zKQgPs+49e5JKocfo60Ib2yiXOWBT6LuVxY1I/6fFX3waEtpXvL1Xn4qu+BVitVtMh9lyThyhQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], - "license": "MIT", - "dependencies": { - "@adraffy/ens-normalize": "1.10.0", - "@noble/curves": "1.2.0", - "@noble/hashes": "1.3.2", - "@scure/bip32": "1.3.2", - "@scure/bip39": "1.2.1", - "abitype": "0.9.8", - "isows": "1.0.3", - "ws": "8.13.0" - }, "peerDependencies": { "typescript": ">=5.0.4" }, @@ -14583,27 +14591,6 @@ } } }, - "node_modules/mipd/node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -15222,9 +15209,9 @@ } }, "node_modules/openai": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/openai/-/openai-4.52.3.tgz", - "integrity": "sha512-IyQLYKGYoEEkUCEm2frPzwHDJ3Ym663KtivnY6pWCzuoi6/HgSIMMxpcuTRS81GH6tiULPYGmTxIvzXdmPIWOw==", + "version": "4.52.7", + "resolved": "https://registry.npmjs.org/openai/-/openai-4.52.7.tgz", + "integrity": "sha512-dgxA6UZHary6NXUHEDj5TWt8ogv0+ibH+b4pT5RrWMjiRZVylNwLcw/2ubDrX5n0oUmHX/ZgudMJeemxzOvz7A==", "license": "Apache-2.0", "dependencies": { "@types/node": "^18.11.18", @@ -15730,9 +15717,9 @@ } }, "node_modules/pkg-types": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.2.tgz", - "integrity": "sha512-VEGf1he2DR5yowYRl0XJhWJq5ktm9gYIsH+y8sNJpHlxch7JPDaufgrsl4vYjd9hMUY8QVjoNncKbow9I7exyA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.3.tgz", + "integrity": "sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==", "license": "MIT", "dependencies": { "confbox": "^0.1.7", @@ -15934,9 +15921,9 @@ } }, "node_modules/prettier": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", - "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", "dev": true, "license": "MIT", "bin": { @@ -16269,9 +16256,9 @@ } }, "node_modules/quasar": { - "version": "2.16.5", - "resolved": "https://registry.npmjs.org/quasar/-/quasar-2.16.5.tgz", - "integrity": "sha512-9pjKOg/ZpbbBaKDLIkIKgd2JLaX+R3H2jKDPrlkHD56rp7L8WdxFZhxnG5JVfvW94pCNGtlepjgnli8wRhVFCQ==", + "version": "2.16.6", + "resolved": "https://registry.npmjs.org/quasar/-/quasar-2.16.6.tgz", + "integrity": "sha512-nFFS/WniZy052wUNr0UHxc46KVB0hVg7IlBpVScxQAANQxL5uJVqaiw0z2CEM8IM+MCObXANqxHX/m7woG7zIw==", "license": "MIT", "engines": { "node": ">= 10.18.1", @@ -16426,9 +16413,9 @@ } }, "node_modules/react-devtools-core": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-5.3.0.tgz", - "integrity": "sha512-IG3T+azv48Oc5VLdHR4XdBNKNZIUOKRtx0sJMRvb++Zom/uqtx73j6u37JCsIBNIaq6vA7RPH5Bbcf/Wj53KXA==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-5.3.1.tgz", + "integrity": "sha512-7FSb9meX0btdBQLwdFOwt6bGqvRPabmVMMslv8fgoSPqXyuGpgQe36kx8gR86XPw7aV1yVouTp6fyZ0EH+NfUw==", "license": "MIT", "peer": true, "dependencies": { @@ -17779,10 +17766,11 @@ "dev": true }, "node_modules/tailwindcss": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.4.tgz", - "integrity": "sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==", + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.6.tgz", + "integrity": "sha512-1uRHzPB+Vzu57ocybfZ4jh5Q3SdlH7XW23J5sQoM9LhE9eIOlzxer/3XPSsycvih3rboRsvt0QCmzSrqyOYUIA==", "dev": true, + "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", @@ -18178,9 +18166,9 @@ } }, "node_modules/ufo": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz", - "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", "license": "MIT" }, "node_modules/uint8arrays": { @@ -18204,16 +18192,16 @@ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" }, "node_modules/unenv": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/unenv/-/unenv-1.9.0.tgz", - "integrity": "sha512-QKnFNznRxmbOF1hDgzpqrlIf6NC5sbZ2OJ+5Wl3OX8uM+LUJXbj4TXvLJCtwbPTmbMHCLIz6JLKNinNsMShK9g==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/unenv/-/unenv-1.10.0.tgz", + "integrity": "sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==", "license": "MIT", "dependencies": { "consola": "^3.2.3", - "defu": "^6.1.3", + "defu": "^6.1.4", "mime": "^3.0.0", - "node-fetch-native": "^1.6.1", - "pathe": "^1.1.1" + "node-fetch-native": "^1.6.4", + "pathe": "^1.1.2" } }, "node_modules/unenv/node_modules/mime": { @@ -18384,9 +18372,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", - "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", "funding": [ { "type": "opencollective", @@ -18401,6 +18389,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "escalade": "^3.1.2", "picocolors": "^1.0.1" @@ -18552,9 +18541,9 @@ } }, "node_modules/viem": { - "version": "2.17.2", - "resolved": "https://registry.npmjs.org/viem/-/viem-2.17.2.tgz", - "integrity": "sha512-76BMUK5nenFX8klvQrS4srHN1aa+j1/Z8PajQFCOZHy1UjfCtsFs7W1VSw58uB530COxswbtnEv2NvNVVxKrag==", + "version": "2.17.5", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.17.5.tgz", + "integrity": "sha512-m0QIKQF1uqTFWAYNeAdhNUBFMaIs0Mwhu2VmZuXmBMkzJ0IL0ViblLH13JRwbDnOaY82KYzNhCARmfnLBWVdkA==", "funding": [ { "type": "github", @@ -18767,16 +18756,16 @@ "dev": true }, "node_modules/vue": { - "version": "3.4.31", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.31.tgz", - "integrity": "sha512-njqRrOy7W3YLAlVqSKpBebtZpDVg21FPoaq1I7f/+qqBThK9ChAIjkRWgeP6Eat+8C+iia4P3OYqpATP21BCoQ==", + "version": "3.4.33", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.33.tgz", + "integrity": "sha512-VdMCWQOummbhctl4QFMcW6eNtXHsFyDlX60O/tsSQuCcuDOnJ1qPOhhVla65Niece7xq/P2zyZReIO5mP+LGTQ==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.4.31", - "@vue/compiler-sfc": "3.4.31", - "@vue/runtime-dom": "3.4.31", - "@vue/server-renderer": "3.4.31", - "@vue/shared": "3.4.31" + "@vue/compiler-dom": "3.4.33", + "@vue/compiler-sfc": "3.4.33", + "@vue/runtime-dom": "3.4.33", + "@vue/server-renderer": "3.4.33", + "@vue/shared": "3.4.33" }, "peerDependencies": { "typescript": "*" @@ -18854,27 +18843,27 @@ } }, "node_modules/web3": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/web3/-/web3-4.10.0.tgz", - "integrity": "sha512-0A0SEZG4QL5DRtZQtF1pL+LldHn0kAAb4/vUdQua1k4CrZ+hRoDAc3dfFZw94EOV69oXuAFo8fqhITxyWfCHaw==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/web3/-/web3-4.11.0.tgz", + "integrity": "sha512-VBk09UsKyDn8e+NA7UyuF4iOnf8n7GQ45aM+414J8/R1wa2IA3kLUvN3yf9v56EDOV8IGknVPAVaTu/J4W+ShQ==", "license": "LGPL-3.0", "dependencies": { "web3-core": "^4.5.0", "web3-errors": "^1.2.0", - "web3-eth": "^4.8.0", - "web3-eth-abi": "^4.2.2", - "web3-eth-accounts": "^4.1.2", - "web3-eth-contract": "^4.5.0", + "web3-eth": "^4.8.1", + "web3-eth-abi": "^4.2.3", + "web3-eth-accounts": "^4.1.3", + "web3-eth-contract": "^4.6.0", "web3-eth-ens": "^4.4.0", "web3-eth-iban": "^4.0.7", "web3-eth-personal": "^4.0.8", "web3-net": "^4.1.0", "web3-providers-http": "^4.1.0", - "web3-providers-ws": "^4.0.7", + "web3-providers-ws": "^4.0.8", "web3-rpc-methods": "^1.3.0", - "web3-rpc-providers": "^1.0.0-rc.0", + "web3-rpc-providers": "^1.0.0-rc.1", "web3-types": "^1.7.0", - "web3-utils": "^4.3.0", + "web3-utils": "^4.3.1", "web3-validator": "^2.0.6" }, "engines": { @@ -18918,21 +18907,21 @@ } }, "node_modules/web3-eth": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-4.8.0.tgz", - "integrity": "sha512-fobkdpwN9SH785/0LSLfxOMH4rZNAD/EvTKIHdpl4ZVz5XdKehX+xPMpSGDGwMlAQ7yXByjZDX3opzoqEQLWxg==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-4.8.1.tgz", + "integrity": "sha512-pQI46LIaqB1Nz2DcslxgbN+E5Coc/BCO2MEwcFJgjc8yrGHoY5rjYlucNozftuluVCcK8Jen7c2uNOIiIdewmQ==", "license": "LGPL-3.0", "dependencies": { "setimmediate": "^1.0.5", "web3-core": "^4.5.0", "web3-errors": "^1.2.0", - "web3-eth-abi": "^4.2.2", - "web3-eth-accounts": "^4.1.2", + "web3-eth-abi": "^4.2.3", + "web3-eth-accounts": "^4.1.3", "web3-net": "^4.1.0", - "web3-providers-ws": "^4.0.7", + "web3-providers-ws": "^4.0.8", "web3-rpc-methods": "^1.3.0", "web3-types": "^1.7.0", - "web3-utils": "^4.3.0", + "web3-utils": "^4.3.1", "web3-validator": "^2.0.6" }, "engines": { @@ -18941,14 +18930,15 @@ } }, "node_modules/web3-eth-abi": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-4.2.2.tgz", - "integrity": "sha512-akbGi642UtKG3k3JuLbhl9KuG7LM/cXo/by2WfdwfOptGZrzRsWJNWje1d2xfw1n9kkVG9SAMvPJl1uSyR3dfw==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-4.2.3.tgz", + "integrity": "sha512-rPVwTn0O1CzbtfXwEfIjUP0W5Y7u1OFjugwKpSqJzPQE6+REBg6OELjomTGZBu+GThxHnv0rp15SOxvqp+tyXA==", + "license": "LGPL-3.0", "dependencies": { "abitype": "0.7.1", "web3-errors": "^1.2.0", - "web3-types": "^1.6.0", - "web3-utils": "^4.3.0", + "web3-types": "^1.7.0", + "web3-utils": "^4.3.1", "web3-validator": "^2.0.6" }, "engines": { @@ -18957,17 +18947,18 @@ } }, "node_modules/web3-eth-accounts": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-4.1.2.tgz", - "integrity": "sha512-y0JynDeTDnclyuE9mShXLeEj+BCrPHxPHOyPCgTchUBQsALF9+0OhP7WiS3IqUuu0Hle5bjG2f5ddeiPtNEuLg==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-4.1.3.tgz", + "integrity": "sha512-61Nb7xCXy6Vw/6xUZMM5ITtXetXmaP0F8oKRxika4GO4fRfKZLAwBZtshMyrdAORPZYq77ENiqXJVU+hTmtUaQ==", + "license": "LGPL-3.0", "dependencies": { "@ethereumjs/rlp": "^4.0.1", "crc-32": "^1.2.2", "ethereum-cryptography": "^2.0.0", - "web3-errors": "^1.1.4", - "web3-types": "^1.6.0", - "web3-utils": "^4.2.3", - "web3-validator": "^2.0.5" + "web3-errors": "^1.2.0", + "web3-types": "^1.7.0", + "web3-utils": "^4.3.1", + "web3-validator": "^2.0.6" }, "engines": { "node": ">=14", @@ -18975,17 +18966,18 @@ } }, "node_modules/web3-eth-contract": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-4.5.0.tgz", - "integrity": "sha512-AX6OiDrIryz/T28k9Xz0gXpUrlOUjcooEgGluu2s5dFDWCPM/zlN5RsUZlXZiXpQyj52VCUy5+bkvu3yDPA4fg==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-4.6.0.tgz", + "integrity": "sha512-mgQ/WUUlgW9BVKKVGU/Q7KrQEbEGI98h8ppox7fT964wY9ITFMDuRCvYk50WTWnFMdjFtOBqt1xRJ0+B1ekCHg==", "license": "LGPL-3.0", "dependencies": { - "web3-core": "^4.4.0", + "@ethereumjs/rlp": "^5.0.2", + "web3-core": "^4.5.0", "web3-errors": "^1.2.0", - "web3-eth": "^4.7.0", - "web3-eth-abi": "^4.2.2", - "web3-types": "^1.6.0", - "web3-utils": "^4.3.0", + "web3-eth": "^4.8.1", + "web3-eth-abi": "^4.2.3", + "web3-types": "^1.7.0", + "web3-utils": "^4.3.1", "web3-validator": "^2.0.6" }, "engines": { @@ -18993,6 +18985,18 @@ "npm": ">=6.12.0" } }, + "node_modules/web3-eth-contract/node_modules/@ethereumjs/rlp": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-5.0.2.tgz", + "integrity": "sha512-DziebCdg4JpGlEqEdGgXmjqcFoJi+JGulUXwEjsZGAscAQ7MyD/7LE/GVCP29vEQxKc7AAwjT3A2ywHp2xfoCA==", + "license": "MPL-2.0", + "bin": { + "rlp": "bin/rlp.cjs" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/web3-eth-ens": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-4.4.0.tgz", @@ -19092,16 +19096,17 @@ } }, "node_modules/web3-providers-ws": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-4.0.7.tgz", - "integrity": "sha512-n4Dal9/rQWjS7d6LjyEPM2R458V8blRm0eLJupDEJOOIBhGYlxw5/4FthZZ/cqB7y/sLVi7K09DdYx2MeRtU5w==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-4.0.8.tgz", + "integrity": "sha512-goJdgata7v4pyzHRsg9fSegUG4gVnHZSHODhNnn6J93ykHkBI1nz4fjlGpcQLUMi4jAMz6SHl9Ibzs2jj9xqPw==", + "license": "LGPL-3.0", "dependencies": { "@types/ws": "8.5.3", "isomorphic-ws": "^5.0.0", - "web3-errors": "^1.1.3", - "web3-types": "^1.3.0", - "web3-utils": "^4.0.7", - "ws": "^8.8.1" + "web3-errors": "^1.2.0", + "web3-types": "^1.7.0", + "web3-utils": "^4.3.1", + "ws": "^8.17.1" }, "engines": { "node": ">=14", @@ -19123,15 +19128,17 @@ } }, "node_modules/web3-rpc-providers": { - "version": "1.0.0-rc.0", - "resolved": "https://registry.npmjs.org/web3-rpc-providers/-/web3-rpc-providers-1.0.0-rc.0.tgz", - "integrity": "sha512-lmBOZ4PE+wf5JyptPZJ+GHeGPyTBfnCRbrfOxWLU+Q7g+D6NukgS3fk2xcunEvUsR/b5fp+uXk0TkmhX9/GCKg==", + "version": "1.0.0-rc.1", + "resolved": "https://registry.npmjs.org/web3-rpc-providers/-/web3-rpc-providers-1.0.0-rc.1.tgz", + "integrity": "sha512-N7AgGB+ilKPFQohnlI1vNHWmQ5Wh5vlGdYKWCWJc9kisKxxGtOsqN3W8tOj6/898sHZIXU9i/IAOyreGDIybmw==", "license": "LGPL-3.0", "dependencies": { + "web3-errors": "^1.2.0", "web3-providers-http": "^4.1.0", - "web3-providers-ws": "^4.0.7", + "web3-providers-ws": "^4.0.8", "web3-types": "^1.7.0", - "web3-utils": "^4.3.0" + "web3-utils": "^4.3.1", + "web3-validator": "^2.0.6" }, "engines": { "node": ">=14", @@ -19149,14 +19156,15 @@ } }, "node_modules/web3-utils": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-4.3.0.tgz", - "integrity": "sha512-fGG2IZr0XB1vEoWZiyJzoy28HpsIfZgz4mgPeQA9aj5rIx8z0o80qUPtIyrCYX/Bo2gYALlV5SWIJWxJNUQn9Q==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-4.3.1.tgz", + "integrity": "sha512-kGwOk8FxOLJ9DQC68yqNQc7AzN+k9YDLaW+ZjlAXs3qORhf8zXk5SxWAAGLbLykMs3vTeB0FTb1Exut4JEYfFA==", + "license": "LGPL-3.0", "dependencies": { "ethereum-cryptography": "^2.0.0", "eventemitter3": "^5.0.1", "web3-errors": "^1.2.0", - "web3-types": "^1.6.0", + "web3-types": "^1.7.0", "web3-validator": "^2.0.6" }, "engines": { diff --git a/package.json b/package.json index dc1b220..c33a72c 100644 --- a/package.json +++ b/package.json @@ -23,43 +23,42 @@ "@aleph-sdk/client": "^1.0.6", "@aleph-sdk/ethereum": "^1.0.3", "@aleph-sdk/message": "^1.0.7", - "@libertai/libertai-js": "0.0.8", - "@quasar/extras": "^1.16.11", - "@tanstack/vue-query": "^5.50.1", - "@wagmi/vue": "^0.0.25", + "@libertai/libertai-js": "file:../libertai-js/libertai-libertai-js-0.0.8.tgz", + "@quasar/extras": "^1.16.12", + "@tanstack/vue-query": "^5.51.9", + "@wagmi/vue": "^0.0.30", "axios": "^1.7.2", "dompurify": "^3.1.6", - "highlight.js": "^11.9.0", + "highlight.js": "^11.10.0", "localforage": "^1.10.0", "marked": "^12.0.2", "marked-highlight": "^2.1.3", - "openai": "^4.52.3", + "openai": "^4.52.7", "pinia": "^2.1.7", "pinia-plugin-persistedstate": "^3.2.1", - "quasar": "^2.16.5", + "quasar": "^2.16.6", "stream": "^0.0.3", "uuid": "^10.0.0", - "viem": "^2.17.0", - "vue": "^3.4.31", + "viem": "^2.17.5", + "vue": "^3.4.33", "vue-router": "^4.4.0", - "web3": "^4.10.0", + "web3": "^4.11.0", "zod": "^3.23.8" }, "devDependencies": { "@quasar/app-vite": "^1.9.3", "@types/dompurify": "^3.0.5", - "@types/node": "^20.14.10", - "@typescript-eslint/eslint-plugin": "^7.15.0", - "@typescript-eslint/parser": "^7.15.0", + "@types/node": "^20.14.11", + "@typescript-eslint/eslint-plugin": "^7.16.1", + "@typescript-eslint/parser": "^7.16.1", "@vue/eslint-config-typescript": "^13.0.0", "autoprefixer": "^10.4.19", "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-vue": "^9.27.0", - "@esbuild/linux-x64": "^0.23.0", "postcss": "^8.4.39", - "prettier": "^3.3.2", - "tailwindcss": "^3.4.4", + "prettier": "^3.3.3", + "tailwindcss": "^3.4.6", "typescript": "^5.5.3", "vite-plugin-node-polyfills": "^0.22.0", "vue-eslint-parser": "^9.4.3" diff --git a/src/pages/Chat.vue b/src/pages/Chat.vue index 4f38337..7d3d3af 100644 --- a/src/pages/Chat.vue +++ b/src/pages/Chat.vue @@ -7,15 +7,15 @@ - + user - AI + AI @@ -30,9 +30,11 @@ {{ message.role }} - + - {{ message.role }} + {{ chatRef?.username }} + {{ chatRef?.persona.name }} + {{ formatDate(message.timestamp) }} @@ -48,7 +50,7 @@ @@ -89,7 +91,7 @@ dense flat size="sm" - @click="editMessage($refs['message-' + message_index][0] as any)" + @click="editMessage($refs['message-' + message_index] as any[0])" > Edit @@ -200,8 +202,6 @@ const enableEditRef = ref(false); // Chat specific state const chatRef = ref(); -const personaRef = ref(); -const usernameRef = ref(); const messagesRef = ref([]); // Instance of an inference engine @@ -300,13 +300,14 @@ async function generatePersonaMessage() { let chatId = chatRef.value.id; let chatTags = chatRef.value.tags; + const username = chatRef.value.username; let messages = JSON.parse(JSON.stringify(messagesRef.value)); - let persona = personaRef.value; - let username = usernameRef.value; + const persona = chatRef.value.persona; let model = chatRef.value.model; // Create a new message to encapsulate our response let response: UIMessage = { + author: 'ai', role: persona.name, content: '', stopped: false, @@ -329,6 +330,7 @@ async function generatePersonaMessage() { let searchResults = await knowledgeStore.searchDocuments(lastMessage.content, chatTags); searchResults.forEach((result) => { searchResultMessages.push({ + author: 'ai', // TODO: maybe another author here role: 'search-result', content: result.content, }); @@ -421,7 +423,7 @@ async function regenerateMessage() { // we discard the last message if it's from the AI, and regenerate const lastMessage = messagesRef.value[messagesRef.value.length - 1]; - if (lastMessage.role !== usernameRef.value) { + if (lastMessage.author !== 'user') { let chatId = chatRef.value.id; // Update the local state messagesRef.value.pop(); @@ -479,14 +481,9 @@ async function setChat(chatId: string) { } personasStore.persona = chatRef.value.persona; - let persona = chatRef.value.persona; - watch(personasStore.persona, async (persona) => { - personaRef.value = persona; - }); // Extract the chat properties - let title = chatRef.value.title; - let username = chatRef.value.username; + const title = chatRef.value.title; // Load messages, mapping over with additional properties we need in the UI let messages = chatRef.value.messages.map((message) => { // Set stopped to true @@ -496,7 +493,6 @@ async function setChat(chatId: string) { return message; }); - console.log(messages); // Set the selected model for the chat by its URL let modelApiUrl = chatRef.value.model.apiUrl; modelsStore.setModelByURL(modelApiUrl); @@ -504,12 +500,6 @@ async function setChat(chatId: string) { // Set the local messages state messagesRef.value = messages; - // Set the local persona state - personaRef.value = persona; - - // Set the local username state - usernameRef.value = username; - // Set the chat title if it's not set if (title === defaultChatTopic || title === '') { // Set the chat name based on the first message @@ -525,7 +515,7 @@ async function setChat(chatId: string) { } async function updateChatMessageContent(messageIndex: number, content: string, initialContent: string) { - let chatId = chatRef.value!.id; + const chatId = chatRef.value!.id; try { await chatsStore.updateChatMessageContent(chatId, messageIndex, content); } catch (error) { @@ -623,7 +613,7 @@ code { .chat-item { .chat-toolbar { - right: 0px; + right: 0; bottom: 10px; } @@ -636,7 +626,7 @@ code { @media (min-width: 600px) { .chat-item { .chat-toolbar { - right: 0px; + right: 0; top: 10px; bottom: auto; opacity: 0; diff --git a/src/stores/chats.ts b/src/stores/chats.ts index 7e3d2dc..61d26c9 100644 --- a/src/stores/chats.ts +++ b/src/stores/chats.ts @@ -232,6 +232,7 @@ class ChatsStore { async appendUserMessage(chatId: string, messageContent: string, attachments?: any[]) { const chat = await this.readChat(chatId); const message: UIMessage = { + author: 'user', role: chat.username, content: messageContent, timestamp: new Date(), @@ -245,6 +246,7 @@ class ChatsStore { async appendModelResponse(chatId: string, responseContent: string, searchResults: any) { const chat = await this.readChat(chatId); const message: UIMessage = { + author: 'ai', role: chat.persona.role, content: responseContent, timestamp: new Date(), From a192a07c707a7aa275584af04a44a34aa720f141 Mon Sep 17 00:00:00 2001 From: Reza Rahemtola Date: Fri, 19 Jul 2024 16:49:18 +0200 Subject: [PATCH 02/18] fix(chat): Remove messagesRef --- src/pages/Chat.vue | 59 +++++++++++++++++++--------------------------- 1 file changed, 24 insertions(+), 35 deletions(-) diff --git a/src/pages/Chat.vue b/src/pages/Chat.vue index 7d3d3af..ba51ee0 100644 --- a/src/pages/Chat.vue +++ b/src/pages/Chat.vue @@ -6,7 +6,7 @@ @@ -67,7 +67,7 @@
(); -const messagesRef = ref([]); // Instance of an inference engine const inferenceEngine = new LlamaCppApiEngine(); @@ -301,7 +300,7 @@ async function generatePersonaMessage() { let chatId = chatRef.value.id; let chatTags = chatRef.value.tags; const username = chatRef.value.username; - let messages = JSON.parse(JSON.stringify(messagesRef.value)); + const messages = JSON.parse(JSON.stringify(chatRef.value.messages)); const persona = chatRef.value.persona; let model = chatRef.value.model; @@ -314,9 +313,7 @@ async function generatePersonaMessage() { error: null, }; - // And push it to the local state so that it renders - messagesRef.value = [...messagesRef.value, response]; - chatRef.value.messages = messagesRef.value; + chatRef.value.messages = [...chatRef.value.messages, response]; try { // Set loading state @@ -397,7 +394,7 @@ async function generatePersonaMessage() { response.content = content; response.stopped = stopped; - messagesRef.value = [...messagesRef.value]; + chatRef.value.messages = [...chatRef.value.messages]; // Scroll to the bottom of the chat nextTick(scrollBottom); } @@ -410,7 +407,7 @@ async function generatePersonaMessage() { // Done! update the local state to reflect the end of the process isLoadingRef.value = false; hasResetRef.value = false; - messagesRef.value = [...messagesRef.value]; + chatRef.value.messages = [...chatRef.value.messages]; } } @@ -422,13 +419,12 @@ async function regenerateMessage() { } // we discard the last message if it's from the AI, and regenerate - const lastMessage = messagesRef.value[messagesRef.value.length - 1]; + const messages = chatRef.value.messages; + const lastMessage = messages.at(-1)!; if (lastMessage.author !== 'user') { let chatId = chatRef.value.id; // Update the local state - messagesRef.value.pop(); - messagesRef.value = [...messagesRef.value]; - chatRef.value.messages = messagesRef.value; + chatRef.value.messages.pop(); // Update the chat state await chatsStore.popChatMessages(chatId); } @@ -440,8 +436,8 @@ async function sendMessage(content: string) { return; } - let chatId = chatRef.value.id; - let inputText = inputTextRef.value; + const chatId = chatRef.value.id; + const inputText = inputTextRef.value; // const attachments = JSON.parse(JSON.stringify(attachmentsRef.value)); // Wipe the input text @@ -457,8 +453,7 @@ async function sendMessage(content: string) { // Append the new message to the chat history and push to local state let newMessage = await chatsStore.appendUserMessage(chatId, inputText); - messagesRef.value.push({ ...newMessage, stopped: true, error: null }); - chatRef.value.messages = messagesRef.value; + chatRef.value.messages.push({ ...newMessage, stopped: true, error: null }); // Scroll to the bottom of the chat nextTick(scrollBottom); @@ -473,42 +468,36 @@ async function setChat(chatId: string) { //enableKnowledgeRef.value = account.isConnected.value; // Load the chat from the store and set it - chatRef.value = await chatsStore.readChat(chatId); - if (!chatRef.value) { + const loadedChat = await chatsStore.readChat(chatId); + if (!loadedChat) { console.error('pages::Chat.vue::setChat - chat not found'); await router.push({ name: 'new-chat' }); return; } - personasStore.persona = chatRef.value.persona; + personasStore.persona = loadedChat.persona; // Extract the chat properties - const title = chatRef.value.title; + const title = loadedChat.title; // Load messages, mapping over with additional properties we need in the UI - let messages = chatRef.value.messages.map((message) => { - // Set stopped to true - message.stopped = true; - // Set error to null - message.error = null; - return message; - }); + // TODO: these should already be there ? + loadedChat.messages = loadedChat.messages.map((message) => ({ ...message, stopped: true, error: null })); // Set the selected model for the chat by its URL - let modelApiUrl = chatRef.value.model.apiUrl; + const modelApiUrl = loadedChat.model.apiUrl; modelsStore.setModelByURL(modelApiUrl); - // Set the local messages state - messagesRef.value = messages; - // Set the chat title if it's not set if (title === defaultChatTopic || title === '') { // Set the chat name based on the first message - await setChatName(messages[0].content); + await setChatName(loadedChat.messages[0].content); } + chatRef.value = loadedChat; + // Determine if there are messages we need to respond to // NOTE: this is assuming all chats should be initiated by the user - if (messages.length % 2 === 1) { + if (loadedChat.messages.length % 2 === 1) { await generatePersonaMessage(); } nextTick(scrollBottom); @@ -521,7 +510,7 @@ async function updateChatMessageContent(messageIndex: number, content: string, i } catch (error) { console.error('pages::Chat.vue::updateChatMessageContent - error', error); // Reset the content to the initial content - messagesRef.value[messageIndex].content = initialContent; + chatRef.value!.messages[messageIndex].content = initialContent; $q.notify('Failed to update message content'); } } From 5aa12cede50956eec358703f25d89a3eb9b4aa78 Mon Sep 17 00:00:00 2001 From: Reza Rahemtola Date: Sat, 20 Jul 2024 01:18:35 +0200 Subject: [PATCH 03/18] feat(chats): Migration setup --- package-lock.json | 14 +++---- package.json | 4 +- src/pages/Chat.vue | 10 ++--- src/pages/NewChat.vue | 10 ++--- src/pages/PersonaManagement.vue | 6 +-- src/stores/chats.ts | 55 ++++++++++++++++++---------- src/types/chats.ts | 27 ++++++++++++++ src/types/personas.ts | 12 ++++++ src/utils/chat.ts | 6 +-- src/utils/migrations/chats/chat_0.ts | 12 ++++++ src/utils/migrations/chats/index.ts | 4 ++ src/utils/personas.ts | 15 +------- 12 files changed, 118 insertions(+), 57 deletions(-) create mode 100644 src/types/chats.ts create mode 100644 src/types/personas.ts create mode 100644 src/utils/migrations/chats/chat_0.ts create mode 100644 src/utils/migrations/chats/index.ts diff --git a/package-lock.json b/package-lock.json index 5161fb9..5381b0c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,10 +12,10 @@ "@aleph-sdk/client": "^1.0.6", "@aleph-sdk/ethereum": "^1.0.3", "@aleph-sdk/message": "^1.0.7", - "@libertai/libertai-js": "file:../libertai-js/libertai-libertai-js-0.0.8.tgz", + "@libertai/libertai-js": "0.0.8", "@quasar/extras": "^1.16.12", "@tanstack/vue-query": "^5.51.9", - "@wagmi/vue": "^0.0.30", + "@wagmi/vue": "^0.0.31", "axios": "^1.7.2", "dompurify": "^3.1.6", "highlight.js": "^11.10.0", @@ -4530,8 +4530,8 @@ }, "node_modules/@libertai/libertai-js": { "version": "0.0.8", - "resolved": "file:../libertai-js/libertai-libertai-js-0.0.8.tgz", - "integrity": "sha512-EavtUHxyyJDXcBk9VkHC3GthkHb1ya+P+mw//JqV3dW544x4/oEZiHEfjRUf8piZiJE9sG04RG1ZjtL2/9geDg==", + "resolved": "https://registry.npmjs.org/@libertai/libertai-js/-/libertai-js-0.0.8.tgz", + "integrity": "sha512-SDSf/tXfFI2V6LEDTNwGKuxUGBWPfDSz34+6CMSqGp6VVojV6iqLAWm8eNIcYdRu2oPpx9s8q1D41Cvv9tPVow==", "license": "MIT", "dependencies": { "axios": "^1.7.2", @@ -7485,9 +7485,9 @@ "license": "MIT" }, "node_modules/@wagmi/vue": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@wagmi/vue/-/vue-0.0.30.tgz", - "integrity": "sha512-cB2kimEGk2M2hhcc9FD8VB/4iCeacAqbsT4v4QnxX9q8efkKBA0lPUB/6smkPO2vqR1uEhg8NskG+KAwv8X4Nw==", + "version": "0.0.31", + "resolved": "https://registry.npmjs.org/@wagmi/vue/-/vue-0.0.31.tgz", + "integrity": "sha512-impBymtzeeyJXveg8cM1YJ4R1QVPjtLnpQrm32VaTBGSPf6gCfTH5sB9GVQK5eqcEPOuZczJcXfdKKJGdrAwWw==", "license": "MIT", "dependencies": { "@wagmi/connectors": "5.0.26", diff --git a/package.json b/package.json index c33a72c..0d6e8c0 100644 --- a/package.json +++ b/package.json @@ -23,10 +23,10 @@ "@aleph-sdk/client": "^1.0.6", "@aleph-sdk/ethereum": "^1.0.3", "@aleph-sdk/message": "^1.0.7", - "@libertai/libertai-js": "file:../libertai-js/libertai-libertai-js-0.0.8.tgz", + "@libertai/libertai-js": "0.0.8", "@quasar/extras": "^1.16.12", "@tanstack/vue-query": "^5.51.9", - "@wagmi/vue": "^0.0.30", + "@wagmi/vue": "^0.0.31", "axios": "^1.7.2", "dompurify": "^3.1.6", "highlight.js": "^11.10.0", diff --git a/src/pages/Chat.vue b/src/pages/Chat.vue index ba51ee0..22b86f3 100644 --- a/src/pages/Chat.vue +++ b/src/pages/Chat.vue @@ -1,5 +1,5 @@ - - diff --git a/src/components/PersonaDialog.vue b/src/components/PersonaDialog.vue index 2e92749..cd62265 100644 --- a/src/components/PersonaDialog.vue +++ b/src/components/PersonaDialog.vue @@ -23,10 +23,10 @@ - - - - + + Persona role + + Persona Description @@ -57,9 +57,7 @@ diff --git a/src/pages/Chat.vue b/src/pages/Chat.vue index cc7b3d5..5199c79 100644 --- a/src/pages/Chat.vue +++ b/src/pages/Chat.vue @@ -292,17 +292,17 @@ async function generatePersonaMessage() { return; } - let chatId = chatRef.value.id; - let chatTags = chatRef.value.tags; + const chatId = chatRef.value.id; + const chatTags = chatRef.value.tags; const username = chatRef.value.username; const messages = JSON.parse(JSON.stringify(chatRef.value.messages)); const persona = chatRef.value.persona; - let model = chatRef.value.model; + const model = chatRef.value.model; // Create a new message to encapsulate our response - let response: UIMessage = { + const response: UIMessage = { author: 'ai', - role: persona.name, + role: persona.role, content: '', stopped: false, error: null, @@ -316,9 +316,9 @@ async function generatePersonaMessage() { // NOTE: assuming last message is guaranteed to be non-empty and the user's last message // Get the last message from the user - let lastMessage = messages[messages.length - 1]; - let searchResultMessages: Message[] = []; - let searchResults = await knowledgeStore.searchDocuments(lastMessage.content, chatTags); + const lastMessage = messages[messages.length - 1]; + const searchResultMessages: Message[] = []; + const searchResults = await knowledgeStore.searchDocuments(lastMessage.content, chatTags); searchResults.forEach((result) => { searchResultMessages.push({ role: 'search-result', @@ -371,14 +371,8 @@ async function generatePersonaMessage() { const allMessages: Message[] = [...expandedMessages, ...searchResultMessages]; // Generate a stream of responses from the AI - for await (const output of inferenceEngine.generateAnswer( - allMessages, - model, - { ...persona, role: persona.role ?? persona.name }, // For backward-compatibility - username, - false, - )) { - let stopped = output.stopped; + for await (const output of inferenceEngine.generateAnswer(allMessages, model, persona, username, false)) { + const stopped = output.stopped; let content = output.content; if (!stopped) { content += ' *[writing ...]*'; diff --git a/src/pages/PersonaManagement.vue b/src/pages/PersonaManagement.vue index 139362d..a86b049 100644 --- a/src/pages/PersonaManagement.vue +++ b/src/pages/PersonaManagement.vue @@ -16,7 +16,7 @@ :base-persona="basePersonaCreate" title="Create persona" @save-persona=" - (persona: UIPersona) => { + (persona: BasePersonaEdition) => { personasStore.personas.push({ ...persona, allowEdit: true, hidden: false, id: uuidv4() }); } " @@ -25,12 +25,13 @@ v-model="editPersona" :base-persona="personasStore.persona" @save-persona=" - (persona: UIPersona) => { - personasStore.persona = persona; + (persona: BasePersonaEdition) => { + const fullPersona: UIPersona = { ...personasStore.persona, ...persona }; + personasStore.persona = fullPersona; personasStore.personas = personasStore.personas.map((userPersona) => { - if (userPersona.id === persona.id) { - return persona; + if (userPersona.id === fullPersona.id) { + return fullPersona; } return userPersona; }); @@ -48,7 +49,7 @@ unelevated @click="($refs['importPersonaUpload'] as any).click()" > - {{ `(${tokenGatingMessage})` }} + {{ tokenGatingMessage }}
@@ -127,8 +128,7 @@ import { useAccountStore } from 'stores/account'; import { exportFile } from 'quasar'; import { getTokenGatingMessage } from 'src/utils/messages'; import { z } from 'zod'; -import { BasePersonaDialogProp } from 'components/PersonaDialog.vue'; -import { UIPersona } from 'src/types/personas'; +import { BasePersonaEdition, UIPersona } from 'src/types/personas'; const personasStore = usePersonasStore(); const accountStore = useAccountStore(); @@ -136,7 +136,7 @@ const router = useRouter(); const createPersona = ref(false); const editPersona = ref(false); -const basePersonaCreate = ref(undefined); +const basePersonaCreate = ref(undefined); const tokenGatingMessage = computed(() => getTokenGatingMessage(accountStore.ltaiBalance, 100)); @@ -175,13 +175,11 @@ const personaExportImportSchema = z.object({ data: z.object({ description: z.string(), name: z.string(), - avatar: z.union([ - z.object({ - item_hash: z.string(), - ipfs_hash: z.string(), - }), - z.string().url(), - ]), + role: z.string(), + avatar: z.object({ + item_hash: z.string(), + ipfs_hash: z.string(), + }), }), }); type PersonaExportImportSchema = z.infer; @@ -192,6 +190,7 @@ const exportPersona = (persona: UIPersona) => { data: { description: persona.description, name: persona.name, + role: persona.role, avatar: persona.avatar, }, }; @@ -218,9 +217,7 @@ const importPersona = (event: Event) => { return; } - const avatar = typeof parsedFile.data.data.avatar === 'string' ? undefined : parsedFile.data.data.avatar; - - basePersonaCreate.value = { ...parsedFile.data.data, avatar }; + basePersonaCreate.value = parsedFile.data.data; createPersona.value = true; }; reader.readAsText(file); diff --git a/src/types/personas.ts b/src/types/personas.ts index 8ad39e4..8b80dcc 100644 --- a/src/types/personas.ts +++ b/src/types/personas.ts @@ -10,3 +10,15 @@ export type UIPersona = Persona & { allowEdit: boolean; hidden: boolean; }; + +export type BasePersonaEdition = Pick; + +export const defaultBasePersona: BasePersonaEdition = { + name: '', + role: '', + description: '', + avatar: { + item_hash: '90db3237796d27118e0b9e21dae10a4b1179878f869cb6c0058d0d7c00b0440d', + ipfs_hash: 'QmQMBfgnmuxcQ4kptR1oPE9guYxG13GpASjYVeFQSxNxjE', + }, +}; diff --git a/src/utils/migrations/chats/chat_0.ts b/src/utils/migrations/chats/chat_1_add_message_author.ts similarity index 100% rename from src/utils/migrations/chats/chat_0.ts rename to src/utils/migrations/chats/chat_1_add_message_author.ts diff --git a/src/utils/migrations/chats/chat_2_add_persona_role_and_ipfs_avatar.ts b/src/utils/migrations/chats/chat_2_add_persona_role_and_ipfs_avatar.ts new file mode 100644 index 0000000..2bc640b --- /dev/null +++ b/src/utils/migrations/chats/chat_2_add_persona_role_and_ipfs_avatar.ts @@ -0,0 +1,22 @@ +import { Chat, ChatMigration } from 'src/types/chats'; + +export const chat_2_add_persona_role_and_ipfs_avatar: ChatMigration = (currentChat: Chat) => { + const newChat = { ...currentChat }; + + if (currentChat.persona.role === undefined) { + // Set by default role as persona name + newChat.persona.role = currentChat.persona.name; + } + if (currentChat.persona.avatar === undefined) { + // Add default IPFS LibertAI avatar + newChat.persona.avatar = { + item_hash: '90db3237796d27118e0b9e21dae10a4b1179878f869cb6c0058d0d7c00b0440d', + ipfs_hash: 'QmQMBfgnmuxcQ4kptR1oPE9guYxG13GpASjYVeFQSxNxjE', + }; + } + // Remove old URL avatar + // @ts-expect-error + delete newChat.persona.avatarUrl; + + return newChat; +}; diff --git a/src/utils/migrations/chats/index.ts b/src/utils/migrations/chats/index.ts index b6fab71..c7be6ee 100644 --- a/src/utils/migrations/chats/index.ts +++ b/src/utils/migrations/chats/index.ts @@ -1,4 +1,5 @@ import { ChatMigration } from 'src/types/chats'; -import { chat_1_add_message_author } from 'src/utils/migrations/chats/chat_0'; +import { chat_1_add_message_author } from 'src/utils/migrations/chats/chat_1_add_message_author'; +import { chat_2_add_persona_role_and_ipfs_avatar } from 'src/utils/migrations/chats/chat_2_add_persona_role_and_ipfs_avatar'; -export const chatsMigrations: ChatMigration[] = [chat_1_add_message_author]; +export const chatsMigrations: ChatMigration[] = [chat_1_add_message_author, chat_2_add_persona_role_and_ipfs_avatar]; diff --git a/src/utils/personas.ts b/src/utils/personas.ts index 8800df2..109f305 100644 --- a/src/utils/personas.ts +++ b/src/utils/personas.ts @@ -26,7 +26,7 @@ export const defaultPersonas: UIPersona[] = [ ipfs_hash: 'QmaKj7nrqUiYkRp2jWRqSuYkHxhPoTstSS4eyttUeEGxF8', }, name: 'Donald Tromp', - role: 'Donald Tromp', + role: 'Donald Trump', description: 'You are an AI chatbot modeled after Donald Trump. You will try to mimic his personality and speech.', allowEdit: false, hidden: false, @@ -50,7 +50,7 @@ export const defaultPersonas: UIPersona[] = [ ipfs_hash: 'QmakkAkoBrKG85ZGtZeusAdU5uSTk8YfUFxq95XsoSXLqc', }, name: 'Anna the Therapist', - role: 'Anna the Therapist', + role: 'Anna', description: '{{char}} is a licensed psychotherapist that can help with all sorts of problems and issues. ' + '{{char}} understands she is not role-playing and is actually giving out a therapy session over chat. ' + From 289858e09078a1743a8f1399fed45a0e5ed9b618 Mon Sep 17 00:00:00 2001 From: Reza Rahemtola Date: Tue, 23 Jul 2024 20:32:55 +0200 Subject: [PATCH 15/18] feat: Migrate models out of chat --- src/components/MessageInput.vue | 2 +- src/pages/Chat.vue | 45 ++++---------- src/pages/NewChat.vue | 41 ++++++------- src/stores/chats.ts | 55 ++--------------- src/types/chats.ts | 4 +- .../migrations/chats/chat_3_add_model_id.ts | 61 +++++++++++++++++++ src/utils/migrations/chats/index.ts | 7 ++- src/utils/models.ts | 9 ++- 8 files changed, 113 insertions(+), 111 deletions(-) create mode 100644 src/utils/migrations/chats/chat_3_add_model_id.ts diff --git a/src/components/MessageInput.vue b/src/components/MessageInput.vue index 48a5b59..25b87f0 100644 --- a/src/components/MessageInput.vue +++ b/src/components/MessageInput.vue @@ -3,7 +3,7 @@ ref="input" v-model="model" :bottom-slots="props.hint !== ''" - :class="` ${$q.screen.gt.sm ? 'q-pa-lg' : 'q-pa-sm'}`" + :class="`${$q.screen.gt.sm ? 'q-pa-lg' : 'q-pa-sm'}`" :loading="isLoading" autofocus autogrow diff --git a/src/pages/Chat.vue b/src/pages/Chat.vue index 5199c79..9dcdecc 100644 --- a/src/pages/Chat.vue +++ b/src/pages/Chat.vue @@ -92,7 +92,7 @@ dense flat size="sm" - @click="editMessage($refs['message-' + message_index] as any[0])" + @click="editMessage(($refs['message-' + message_index] as any)[0])" > Edit @@ -228,28 +228,6 @@ watch( // }, // ); -// Update the chat model when the selected model changes -watch( - () => modelsStore.selectedModel, - async (newModel) => { - // Ser / DeSer to ensure we have a fresh copy - newModel = JSON.parse(JSON.stringify(newModel)); - - if (!chatRef.value) { - return; - } - let chatModelApiUrl = chatRef.value.model.apiUrl; - if (chatModelApiUrl !== newModel.apiUrl) { - // We have a new model, so update local and stored state - chatRef.value.model = newModel; - await chatsStore.updateChatModel(chatRef.value.id, newModel); - - // Send a notification - $q.notify(`Changing current chat model to ${newModel.name}`); - } - }, -); - /* Helper functions */ // function addAttachment(attachmentEvent: AttachmentAddedEvent) { @@ -297,7 +275,14 @@ async function generatePersonaMessage() { const username = chatRef.value.username; const messages = JSON.parse(JSON.stringify(chatRef.value.messages)); const persona = chatRef.value.persona; - const model = chatRef.value.model; + + const modelId = chatRef.value.modelId; + const model = modelsStore.models.find((model) => model.id === modelId); + + if (model === undefined) { + console.error('Model not available'); + return; + } // Create a new message to encapsulate our response const response: UIMessage = { @@ -448,13 +433,13 @@ async function sendMessage(content: string) { // Set a chat by its ID async function setChat(chatId: string) { - // This is annoying but we need to set whether the user is connected + // This is annoying, but we need to set whether the user is connected //enableKnowledgeRef.value = account.isConnected.value; // Load the chat from the store and set it const loadedChat = await chatsStore.readChat(chatId); if (!loadedChat) { - console.error('pages::Chat.vue::setChat - chat not found'); + console.error('Chat not found'); await router.push({ name: 'new-chat' }); return; } @@ -463,16 +448,12 @@ async function setChat(chatId: string) { // Extract the chat properties const title = loadedChat.title; - // Load messages, mapping over with additional properties we need in the UI - // TODO: these should already be there ? + + // Load messages and remove potential previous errors loadedChat.messages = loadedChat.messages.map((message) => ({ ...message, stopped: true, error: null })); chatRef.value = loadedChat; - // Set the selected model for the chat by its URL - const modelApiUrl = loadedChat.model.apiUrl; - modelsStore.setModelByURL(modelApiUrl); - // Set the chat title if it's not set if (title === defaultChatTopic || title === '') { // Set the chat name based on the first message diff --git a/src/pages/NewChat.vue b/src/pages/NewChat.vue index f548888..36d1b49 100644 --- a/src/pages/NewChat.vue +++ b/src/pages/NewChat.vue @@ -1,25 +1,21 @@