diff --git a/frontend/marketplace/package-lock.json b/frontend/marketplace/package-lock.json index 7ceff858..f745aeca 100644 --- a/frontend/marketplace/package-lock.json +++ b/frontend/marketplace/package-lock.json @@ -11,18 +11,19 @@ "@apollo/client": "^3.8.7", "@empower-plastic/empowerjs": "0.0.18", "@keplr-wallet/types": "^0.12.44", - "@logto/vue": "^2.1.0", + "@logto/vue": "^2.1.1", + "@rollup/rollup-linux-x64-gnu": "*", "@vue/apollo-composable": "^4.0.0-beta.5", "@vue/apollo-option": "^4.0.0-beta.9", "@vuepic/vue-datepicker": "^7.2.2", - "daisyui": "^4.4.4", + "daisyui": "^4.4.20", "graphql": "^16.8.1", "graphql-tag": "^2.12.6", "jspdf": "^2.5.1", "jspdf-autotable": "^3.7.1", "qrcode": "^1.5.3", "rollbar": "^2.26.2", - "vue": "^3.3.2", + "vue": "^3.3.12", "vue-awesome-paginate": "^1.1.46", "vue-multiselect": "^3.0.0-beta.2", "vue-router": "^4.2.5", @@ -50,14 +51,17 @@ "postcss": "^8.4.31", "prettier": "^3.1.0", "tailwindcss": "^3.3.5", - "typescript": "~5.3.2", - "vite": "^5.0.5", + "typescript": "~5.3.3", + "vite": "^5.0.10", "vitest": "^0.34.6", - "vue-tsc": "^1.8.22" + "vue-tsc": "^1.8.25" }, "engines": { "node": ">=20.10.0", "npm": ">=10.2.3" + }, + "optionalDependencies": { + "@rollup/rollup-linux-x64-gnu": "^4.9.1" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -313,54 +317,6 @@ "protobufjs": "^6.11.2" } }, - "node_modules/@esbuild/android-arm": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.8.tgz", - "integrity": "sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.8.tgz", - "integrity": "sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.8.tgz", - "integrity": "sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, "node_modules/@esbuild/darwin-arm64": { "version": "0.19.8", "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.8.tgz", @@ -377,294 +333,6 @@ "node": ">=12" } }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.8.tgz", - "integrity": "sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.8.tgz", - "integrity": "sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.8.tgz", - "integrity": "sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.8.tgz", - "integrity": "sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.8.tgz", - "integrity": "sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.8.tgz", - "integrity": "sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.8.tgz", - "integrity": "sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.8.tgz", - "integrity": "sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.8.tgz", - "integrity": "sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.8.tgz", - "integrity": "sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.8.tgz", - "integrity": "sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.8.tgz", - "integrity": "sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.8.tgz", - "integrity": "sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.8.tgz", - "integrity": "sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.8.tgz", - "integrity": "sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.8.tgz", - "integrity": "sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.8.tgz", - "integrity": "sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.8.tgz", - "integrity": "sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -891,19 +559,19 @@ } }, "node_modules/@logto/browser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@logto/browser/-/browser-2.2.0.tgz", - "integrity": "sha512-8kKh1EcAm19smnEMvw0M51d2EQXEEH77G1JEKh1iLifUScmxD+c7HcN/5mLekaBz36MUVNiA2gE7s9L2GOpWrg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@logto/browser/-/browser-2.2.1.tgz", + "integrity": "sha512-SooFjYxWUALzHflqVMM11OfNKOA/6NUAj35Me/galRCFKHYA6xotjI92UrGr3mUjZg5SIh/Sm3TEDHH8HrzHVw==", "dependencies": { - "@logto/client": "^2.3.0", + "@logto/client": "^2.3.1", "@silverhand/essentials": "^2.6.2", "js-base64": "^3.7.4" } }, "node_modules/@logto/client": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@logto/client/-/client-2.3.0.tgz", - "integrity": "sha512-VrzsF+QtnrVXnDFbsdYTeGatjThlTFwtjTT/jJMaFdyRg0lno8vHxsjuyG8ba4wVSu22tSmJAr7okpAwRyhtcg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@logto/client/-/client-2.3.1.tgz", + "integrity": "sha512-LNNnMYLy9372T6EqWlEHqUSl16r4si897fZkehCv8zEY4DPD3fpZAp348/hC8ifNTL3NEZUuOQsjP/fF6fImbA==", "dependencies": { "@logto/js": "^3.0.0", "@silverhand/essentials": "^2.6.2", @@ -922,11 +590,11 @@ } }, "node_modules/@logto/vue": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@logto/vue/-/vue-2.1.0.tgz", - "integrity": "sha512-4TlTcaA3VpfTmaMjC9w1eop0Ecjw3eQN4YmjFg7kbn142ORspaaHn4/a9nT/VsX8SE70FvZpQeZH/DxwQw5cVg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@logto/vue/-/vue-2.1.1.tgz", + "integrity": "sha512-IYN8qf5DRbXAtXiUygdMUgCZwh0jiBwD+8eXBZ6Y6fyfzmiOMGpUCxtB1K12NWT9TWcA4PCejNpxBfVbF9fe7Q==", "dependencies": { - "@logto/browser": "^2.2.0" + "@logto/browser": "^2.2.1" }, "peerDependencies": { "vue": ">=3.0.0" @@ -1178,13 +846,12 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.6.0.tgz", - "integrity": "sha512-rouezFHpwCqdEXsqAfNsTgSWO0FoZ5hKv5p+TGO5KFhyN/dvYXNMqMolOb8BkyKcPqjYRBeT+Z6V3aM26rPaYg==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.1.tgz", + "integrity": "sha512-kr8rEPQ6ns/Lmr/hiw8sEVj9aa07gh1/tQF2Y5HrNCCEPiCBGnBUt9tVusrcBBiJfIt1yNaXN6r1CCmpbFEDpg==", "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -1249,9 +916,9 @@ "dev": true }, "node_modules/@silverhand/essentials": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/@silverhand/essentials/-/essentials-2.8.5.tgz", - "integrity": "sha512-ChOGm1NeETWkEZXkIDD123cf8gxphqeSbtnvgsiqKMmWH2oSMvqORAyVFdngl0MuL9Ef5EdLFII+JrJkdytHrQ==", + "version": "2.8.6", + "resolved": "https://registry.npmjs.org/@silverhand/essentials/-/essentials-2.8.6.tgz", + "integrity": "sha512-qNyc6CvZRngP66hTA8sbpXGsiu9j6Hu62jCy7LV3tJiytg/hmxJB5oM9k5tpaUa9kHwYJ2X9CManX7SYYNrzHg==", "engines": { "node": "^16.13.0 || ^18.12.0 || ^19.2.0", "pnpm": "^8.0.0" @@ -1740,49 +1407,49 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.9.tgz", - "integrity": "sha512-+/Lf68Vr/nFBA6ol4xOtJrW+BQWv3QWKfRwGSm70jtXwfhZNF4R/eRgyVJYoxFRhdCTk/F6g99BP0ffPgZihfQ==", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.12.tgz", + "integrity": "sha512-qAtjyG3GBLG0chzp5xGCyRLLe6wFCHmjI82aGzwuGKyznNP+GJJMxjc0wOYWDB2YKfho7niJFdoFpo0CZZQg9w==", "dependencies": { - "@babel/parser": "^7.23.3", - "@vue/shared": "3.3.9", + "@babel/parser": "^7.23.5", + "@vue/shared": "3.3.12", "estree-walker": "^2.0.2", "source-map-js": "^1.0.2" } }, "node_modules/@vue/compiler-dom": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.9.tgz", - "integrity": "sha512-nfWubTtLXuT4iBeDSZ5J3m218MjOy42Vp2pmKVuBKo2/BLcrFUX8nCSr/bKRFiJ32R8qbdnnnBgRn9AdU5v0Sg==", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.12.tgz", + "integrity": "sha512-RdJU9oEYaoPKUdGXCy0l+i4clesdDeLmbvRlszoc9iagsnBnMmQtYfCPVQ5BHB6o7K4SCucDdJM2Dh3oXB0D6g==", "dependencies": { - "@vue/compiler-core": "3.3.9", - "@vue/shared": "3.3.9" + "@vue/compiler-core": "3.3.12", + "@vue/shared": "3.3.12" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.9.tgz", - "integrity": "sha512-wy0CNc8z4ihoDzjASCOCsQuzW0A/HP27+0MDSSICMjVIFzk/rFViezkR3dzH+miS2NDEz8ywMdbjO5ylhOLI2A==", - "dependencies": { - "@babel/parser": "^7.23.3", - "@vue/compiler-core": "3.3.9", - "@vue/compiler-dom": "3.3.9", - "@vue/compiler-ssr": "3.3.9", - "@vue/reactivity-transform": "3.3.9", - "@vue/shared": "3.3.9", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.12.tgz", + "integrity": "sha512-yy5b9e7b79dsGbMmglCe/YnhCQgBkHO7Uf6JfjWPSf2/5XH+MKn18LhzhHyxbHdJgnA4lZCqtXzLaJz8Pd8lMw==", + "dependencies": { + "@babel/parser": "^7.23.5", + "@vue/compiler-core": "3.3.12", + "@vue/compiler-dom": "3.3.12", + "@vue/compiler-ssr": "3.3.12", + "@vue/reactivity-transform": "3.3.12", + "@vue/shared": "3.3.12", "estree-walker": "^2.0.2", "magic-string": "^0.30.5", - "postcss": "^8.4.31", + "postcss": "^8.4.32", "source-map-js": "^1.0.2" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.9.tgz", - "integrity": "sha512-NO5oobAw78R0G4SODY5A502MGnDNiDjf6qvhn7zD7TJGc8XDeIEw4fg6JU705jZ/YhuokBKz0A5a/FL/XZU73g==", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.12.tgz", + "integrity": "sha512-adCiMJPznfWcQyk/9HSuXGja859IaMV+b8UNSVzDatqv7h0PvT9BEeS22+gjkWofDiSg5d78/ZLls3sLA+cn3A==", "dependencies": { - "@vue/compiler-dom": "3.3.9", - "@vue/shared": "3.3.9" + "@vue/compiler-dom": "3.3.12", + "@vue/shared": "3.3.12" } }, "node_modules/@vue/devtools-api": { @@ -1829,9 +1496,9 @@ } }, "node_modules/@vue/language-core": { - "version": "1.8.24", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.24.tgz", - "integrity": "sha512-2ClHvij0WlsDWryPzXJCSpPc6rusZFNoVtRZGgGGkKCmKuIREDDKmH8j+1tYyxPYyH0qL6pZ6+IHD8KIm5nWAw==", + "version": "1.8.25", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.25.tgz", + "integrity": "sha512-NJk/5DnAZlpvXX8BdWmHI45bWGLViUaS3R/RMrmFSvFMSbJKuEODpM4kR0F0Ofv5SFzCWuNiMhxameWpVdQsnA==", "dev": true, "dependencies": { "@volar/language-core": "~1.11.1", @@ -1878,60 +1545,60 @@ } }, "node_modules/@vue/reactivity": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.9.tgz", - "integrity": "sha512-VmpIqlNp+aYDg2X0xQhJqHx9YguOmz2UxuUJDckBdQCNkipJvfk9yA75woLWElCa0Jtyec3lAAt49GO0izsphw==", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.12.tgz", + "integrity": "sha512-vOJORzO8DlIx88cgTnMLIf2GlLYpoXAKsuoQsK6SGdaqODjxO129pVPTd2s/N/Mb6KKZEFIHIEwWGmtN4YPs+g==", "dependencies": { - "@vue/shared": "3.3.9" + "@vue/shared": "3.3.12" } }, "node_modules/@vue/reactivity-transform": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.9.tgz", - "integrity": "sha512-HnUFm7Ry6dFa4Lp63DAxTixUp8opMtQr6RxQCpDI1vlh12rkGIeYqMvJtK+IKyEfEOa2I9oCkD1mmsPdaGpdVg==", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.12.tgz", + "integrity": "sha512-g5TijmML7FyKkLt6QnpqNmA4KD7K/T5SbXa88Bhq+hydNQEkzA8veVXWAQuNqg9rjaFYD0rPf0a9NofKA0ENgg==", "dependencies": { - "@babel/parser": "^7.23.3", - "@vue/compiler-core": "3.3.9", - "@vue/shared": "3.3.9", + "@babel/parser": "^7.23.5", + "@vue/compiler-core": "3.3.12", + "@vue/shared": "3.3.12", "estree-walker": "^2.0.2", "magic-string": "^0.30.5" } }, "node_modules/@vue/runtime-core": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.9.tgz", - "integrity": "sha512-xxaG9KvPm3GTRuM4ZyU8Tc+pMVzcu6eeoSRQJ9IE7NmCcClW6z4B3Ij6L4EDl80sxe/arTtQ6YmgiO4UZqRc+w==", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.12.tgz", + "integrity": "sha512-5iL4w7MZrSGKEZU2wFAYhDZdZmgn+s//73EfgDXW1M+ZUOl36md7tlWp1QFK/ladiq4FvQ82shVjo0KiPDPr0A==", "dependencies": { - "@vue/reactivity": "3.3.9", - "@vue/shared": "3.3.9" + "@vue/reactivity": "3.3.12", + "@vue/shared": "3.3.12" } }, "node_modules/@vue/runtime-dom": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.9.tgz", - "integrity": "sha512-e7LIfcxYSWbV6BK1wQv9qJyxprC75EvSqF/kQKe6bdZEDNValzeRXEVgiX7AHI6hZ59HA4h7WT5CGvm69vzJTQ==", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.12.tgz", + "integrity": "sha512-8mMzqiIdl+IYa/OXwKwk6/4ebLq7cYV1pUcwCSwBK2KerUa6cwGosen5xrCL9f8o2DJ9TfPFwbPEvH7OXzUpoA==", "dependencies": { - "@vue/runtime-core": "3.3.9", - "@vue/shared": "3.3.9", - "csstype": "^3.1.2" + "@vue/runtime-core": "3.3.12", + "@vue/shared": "3.3.12", + "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.9.tgz", - "integrity": "sha512-w0zT/s5l3Oa3ZjtLW88eO4uV6AQFqU8X5GOgzq7SkQQu6vVr+8tfm+OI2kDBplS/W/XgCBuFXiPw6T5EdwXP0A==", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.12.tgz", + "integrity": "sha512-OZ0IEK5TU5GXb5J8/wSplyxvGGdIcwEmS8EIO302Vz8K6fGSgSJTU54X0Sb6PaefzZdiN3vHsLXO8XIeF8crQQ==", "dependencies": { - "@vue/compiler-ssr": "3.3.9", - "@vue/shared": "3.3.9" + "@vue/compiler-ssr": "3.3.12", + "@vue/shared": "3.3.12" }, "peerDependencies": { - "vue": "3.3.9" + "vue": "3.3.12" } }, "node_modules/@vue/shared": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.9.tgz", - "integrity": "sha512-ZE0VTIR0LmYgeyhurPTpy4KzKsuDyQbMSdM49eKkMnT5X4VfFBLysMzjIZhLEFQYjjOVVfbvUDHckwjDFiO2eA==" + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.12.tgz", + "integrity": "sha512-6p0Yin0pclvnER7BLNOQuod9Z+cxSYh8pSh7CzHnWNjAIP6zrTlCdHRvSCb1aYEx6i3Q3kvfuWU7nG16CgG1ag==" }, "node_modules/@vue/test-utils": { "version": "2.4.3", @@ -2806,9 +2473,9 @@ } }, "node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, "node_modules/culori": { "version": "3.3.0", @@ -2819,9 +2486,9 @@ } }, "node_modules/daisyui": { - "version": "4.4.14", - "resolved": "https://registry.npmjs.org/daisyui/-/daisyui-4.4.14.tgz", - "integrity": "sha512-1g37QzzDFM0QLQe+qRBswkGKyaGijk84t01UMg1ytkFhQxru3zeMh5nWcpC9KnqzKgnITkpSebpGqq4gP8zRrg==", + "version": "4.4.20", + "resolved": "https://registry.npmjs.org/daisyui/-/daisyui-4.4.20.tgz", + "integrity": "sha512-AR2fuFVVLHVTdbkV+XWAqjtymEoxXksrsEMkdzPQo2wANtWjSXuODUzePNade64gJ0Y2CdQtiQkaZI7fWcp13g==", "dependencies": { "css-selector-tokenizer": "^0.8", "culori": "^3", @@ -4729,9 +4396,9 @@ } }, "node_modules/jose": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/jose/-/jose-5.1.2.tgz", - "integrity": "sha512-X7TOC/d8KPvx4wPUuLHVgTSdoWw0UW5TQOUwhvCvj+ZPfsf9vUPhhksYPjNBWVGPQ/6yd/JrL1gQxBnIDwYdFg==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/jose/-/jose-5.1.3.tgz", + "integrity": "sha512-GPExOkcMsCLBTi1YetY2LmkoY559fss0+0KVa6kOfb2YFe84nAM7Nm/XzuZozah4iHgmBGrCOHL5/cy670SBRw==", "funding": { "url": "https://github.com/sponsors/panva" } @@ -6437,6 +6104,19 @@ "fsevents": "~2.3.2" } }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.6.0.tgz", + "integrity": "sha512-rouezFHpwCqdEXsqAfNsTgSWO0FoZ5hKv5p+TGO5KFhyN/dvYXNMqMolOb8BkyKcPqjYRBeT+Z6V3aM26rPaYg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/rrweb-cssom": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", @@ -7457,9 +7137,9 @@ } }, "node_modules/typescript": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.2.tgz", - "integrity": "sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", "devOptional": true, "bin": { "tsc": "bin/tsc", @@ -7588,9 +7268,9 @@ } }, "node_modules/vite": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.5.tgz", - "integrity": "sha512-OekeWqR9Ls56f3zd4CaxzbbS11gqYkEiBtnWFFgYR2WV8oPJRRKq0mpskYy/XaoCL3L7VINDhqqOMNDiYdGvGg==", + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.10.tgz", + "integrity": "sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==", "dev": true, "dependencies": { "esbuild": "^0.19.3", @@ -7743,15 +7423,15 @@ } }, "node_modules/vue": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.9.tgz", - "integrity": "sha512-sy5sLCTR8m6tvUk1/ijri3Yqzgpdsmxgj6n6yl7GXXCXqVbmW2RCXe9atE4cEI6Iv7L89v5f35fZRRr5dChP9w==", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.12.tgz", + "integrity": "sha512-jYNv2QmET2OTHsFzfWHMnqgCfqL4zfo97QwofdET+GBRCHhSCHuMTTvNIgeSn0/xF3JRT5OGah6MDwUFN7MPlg==", "dependencies": { - "@vue/compiler-dom": "3.3.9", - "@vue/compiler-sfc": "3.3.9", - "@vue/runtime-dom": "3.3.9", - "@vue/server-renderer": "3.3.9", - "@vue/shared": "3.3.9" + "@vue/compiler-dom": "3.3.12", + "@vue/compiler-sfc": "3.3.12", + "@vue/runtime-dom": "3.3.12", + "@vue/server-renderer": "3.3.12", + "@vue/shared": "3.3.12" }, "peerDependencies": { "typescript": "*" @@ -7834,13 +7514,13 @@ } }, "node_modules/vue-tsc": { - "version": "1.8.24", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.24.tgz", - "integrity": "sha512-eH1CSj231OzVEY5Hi7wS6ubzyOEwgr5jCptR0Ddf2SitGcaXIsPVDvrprm3eolCdyhDt3WS1Eb2F4fGX9BsUUw==", + "version": "1.8.25", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.25.tgz", + "integrity": "sha512-lHsRhDc/Y7LINvYhZ3pv4elflFADoEOo67vfClAfF2heVHpHmVquLSjojgCSIwzA4F0Pc4vowT/psXCYcfk+iQ==", "dev": true, "dependencies": { "@volar/typescript": "~1.11.1", - "@vue/language-core": "1.8.24", + "@vue/language-core": "1.8.25", "semver": "^7.5.4" }, "bin": { diff --git a/frontend/marketplace/package.json b/frontend/marketplace/package.json index e20e9490..3a02f0fd 100644 --- a/frontend/marketplace/package.json +++ b/frontend/marketplace/package.json @@ -18,18 +18,18 @@ "@apollo/client": "^3.8.7", "@empower-plastic/empowerjs": "0.0.18", "@keplr-wallet/types": "^0.12.44", - "@logto/vue": "^2.1.0", + "@logto/vue": "^2.1.1", "@vue/apollo-composable": "^4.0.0-beta.5", "@vue/apollo-option": "^4.0.0-beta.9", "@vuepic/vue-datepicker": "^7.2.2", - "daisyui": "^4.4.4", + "daisyui": "^4.4.20", "graphql": "^16.8.1", "graphql-tag": "^2.12.6", "jspdf": "^2.5.1", "jspdf-autotable": "^3.7.1", "qrcode": "^1.5.3", "rollbar": "^2.26.2", - "vue": "^3.3.2", + "vue": "^3.3.12", "vue-awesome-paginate": "^1.1.46", "vue-multiselect": "^3.0.0-beta.2", "vue-router": "^4.2.5", @@ -57,13 +57,16 @@ "postcss": "^8.4.31", "prettier": "^3.1.0", "tailwindcss": "^3.3.5", - "typescript": "~5.3.2", - "vite": "^5.0.5", + "typescript": "~5.3.3", + "vite": "^5.0.10", "vitest": "^0.34.6", - "vue-tsc": "^1.8.22" + "vue-tsc": "^1.8.25" }, "engines": { "npm": ">=10.2.3", "node": ">=20.10.0" + }, + "optionalDependencies": { + "@rollup/rollup-linux-x64-gnu": "^4.9.1" } } diff --git a/frontend/marketplace/src/components/BuyButton.vue b/frontend/marketplace/src/components/BuyButton.vue index e55bed0b..b190dd45 100644 --- a/frontend/marketplace/src/components/BuyButton.vue +++ b/frontend/marketplace/src/components/BuyButton.vue @@ -1,20 +1,22 @@ + + + + + Provide an individual or company name that is going to be used for the + Plastic Credit Offset Certificate. + Mind that this cannot be changed later. + + + + + Name can not be more than 30 characters. + + + + + Continue + + + diff --git a/frontend/marketplace/src/components/ui/Modal.vue b/frontend/marketplace/src/components/ui/Modal.vue new file mode 100644 index 00000000..742079e6 --- /dev/null +++ b/frontend/marketplace/src/components/ui/Modal.vue @@ -0,0 +1,41 @@ + + + + + + + + ✕ + + + {{ props.title }} + + + + + + + diff --git a/frontend/marketplace/src/components/ui/PrimaryButton.vue b/frontend/marketplace/src/components/ui/PrimaryButton.vue new file mode 100644 index 00000000..947d3ceb --- /dev/null +++ b/frontend/marketplace/src/components/ui/PrimaryButton.vue @@ -0,0 +1,16 @@ + + + + + + diff --git a/frontend/marketplace/src/utils/plastic-credits.ts b/frontend/marketplace/src/utils/plastic-credits.ts new file mode 100644 index 00000000..63f9c7a8 --- /dev/null +++ b/frontend/marketplace/src/utils/plastic-credits.ts @@ -0,0 +1,63 @@ +import { ref } from "vue"; +import { + empowerchain, + getSigningTM37EmpowerchainClient, +} from "@empower-plastic/empowerjs"; +import { getWallet } from "@/utils/wallet-utils"; +import { CHAIN_ID, RPC_ENDPOINT } from "@/config/config"; + +const { retireCredits } = + empowerchain.plasticcredit.MessageComposer.withTypeUrl; + +export const useRetireCredits = () => { + const loading = ref(false); + + const handleRetireCredits = async ( + amount: any, // Typing, Johannes?! + address: string, + denom: string, + retirererName: string, + onSuccess: () => void, + additionalInfo?: string, + ) => { + try { + loading.value = true; + const retireCreditsMsg = retireCredits({ + owner: address, + denom: denom, + amount: amount as bigint, + retiringEntityName: retirererName, + retiringEntityAdditionalData: additionalInfo ?? "", + }); + const wallet = getWallet(); + const offlineSigner = wallet.getOfflineSigner(CHAIN_ID); + const chainClient = await getSigningTM37EmpowerchainClient({ + rpcEndpoint: RPC_ENDPOINT, + signer: offlineSigner, + }); + const fee = { + amount: [{ amount: "100000", denom: "umpwr" }], + gas: "200000", + }; + const response = await chainClient.signAndBroadcast( + address, + [retireCreditsMsg], + fee, + ); + if (response && !response.code) { + loading.value = false; + onSuccess(); + } else { + throw new Error("Retire credits failed " + response.rawLog); + } + } catch (error) { + loading.value = false; + throw error; + } + }; + + return { + handleRetireCredits, + loading, + }; +};
+ Provide an individual or company name that is going to be used for the + Plastic Credit Offset Certificate. + Mind that this cannot be changed later. +