diff --git a/next-i18next.config.js b/next-i18next.config.js deleted file mode 100644 index 9946a972..00000000 --- a/next-i18next.config.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - i18n: { - defaultLocale: "en", - locales: ["en", "zh", "zh-TW", "ja"], - reloadOnPrerender: process.env.NODE_ENV === "development", - }, -} diff --git a/next.config.js b/next.config.js index 5c42f6aa..5a9aa8b3 100644 --- a/next.config.js +++ b/next.config.js @@ -1,11 +1,9 @@ // @ts-check const pkg = require("./package.json") -const spawn = require("cross-spawn") const withBundleAnalyzer = require("@next/bundle-analyzer")({ enabled: process.env.ANALYZE === "true", }) const execSync = require("child_process").execSync -const { i18n } = require("./next-i18next.config") const cache = require("next-pwa/cache") const withPWA = require("next-pwa")({ @@ -63,12 +61,30 @@ module.exports = withBundleAnalyzer( }, experimental: { scrollRestoration: true, + appDir: true, + serverComponentsExternalPackages: ["rehype-react"], }, output: "standalone", productionBrowserSourceMaps: true, webpack(config) { config.resolve.fallback = { fs: false } // polyfill node-id3 + + // https://github.com/WalletConnect/walletconnect-monorepo/blob/7716e164281c2f531145d682c3658f761fa0a823/providers/universal-provider/src/utils/deepLinks.ts#L39 + // @walletconnect/universal-provider imports react-native conditionally. + // Since this is a NextJS app, simply mark it as external to avoid the webpack bundling warning. + config.externals.push("react-native") + + // https://github.com/WalletConnect/walletconnect-utils/blob/b7d7dc003c25dd33ef74c2fac483140f71a51d86/jsonrpc/http-connection/src/http.ts#L2 + // `@walletconnect/jsonrpc-http-connection` imports `cross-fetch` to support fetch in Node.js. It's unnecessary for Next.JS app. + config.resolve.alias["cross-fetch"] = require.resolve( + "next/dist/build/polyfills/fetch/index.js", + ) + + // https://github.com/kkomelin/isomorphic-dompurify/issues/54 + // Fix isomorphic-dompurify in app router + config.externals = [...config.externals, "canvas", "jsdom"] + return config }, diff --git a/package.json b/package.json index df1a4a4c..e471fe70 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,8 @@ "prisma:studio": "prisma studio", "docker:db": "docker-compose -f docker-compose.db.yml up -d", "spell-check": "cspell lint . --no-progress", - "analyze": "NODE_ENV=production ANALYZE=true BUNDLE_ANALYZE=browser next build" + "analyze": "NODE_ENV=production ANALYZE=true BUNDLE_ANALYZE=browser next build", + "postinstall": "prisma generate" }, "lint-staged": { "*.{js,jsx,ts,tsx}": [ @@ -27,30 +28,30 @@ ] }, "dependencies": { - "@codemirror/commands": "6.2.3", + "@codemirror/commands": "6.2.4", "@codemirror/lang-markdown": "6.1.1", "@codemirror/language": "6.6.0", - "@codemirror/language-data": "6.3.0", + "@codemirror/language-data": "6.3.1", "@codemirror/state": "6.2.0", "@codemirror/theme-one-dark": "6.1.2", - "@codemirror/view": "6.10.0", - "@crossbell/connect-kit": "0.0.79", - "@crossbell/contract": "0.0.79", - "@crossbell/indexer": "0.0.79", - "@crossbell/notification": "0.0.79", - "@crossbell/ui": "0.0.79", - "@crossbell/util-hooks": "0.0.79", + "@codemirror/view": "6.11.0", + "@crossbell/connect-kit": "0.0.82", + "@crossbell/contract": "0.0.82", + "@crossbell/indexer": "0.0.82", + "@crossbell/notification": "0.0.82", + "@crossbell/ui": "0.0.82", + "@crossbell/util-hooks": "0.0.82", "@ddietr/codemirror-themes": "1.4.1", "@dqbd/tiktoken": "^1.0.7", "@emoji-mart/data": "1.1.2", "@emoji-mart/react": "1.1.1", - "@floating-ui/react": "^0.23.1", + "@floating-ui/react": "^0.24.0", "@headlessui/react": "1.7.14", "@heroicons/react": "2.0.17", "@iconify-json/mingcute": "^1.1.6", "@lezer/highlight": "^1.1.4", - "@mantine/core": "^6.0.9", - "@monaco-editor/react": "4.5.0", + "@mantine/core": "^6.0.10", + "@monaco-editor/react": "4.5.1", "@popperjs/core": "^2.11.7", "@prisma/client": "^4.13.0", "@tanstack/react-query": "4.29.5", @@ -58,8 +59,9 @@ "@tanstack/react-query-persist-client": "4.29.5", "@uiw/codemirror-extensions-events": "4.19.16", "@urql/core": "4.0.7", - "ahooks": "^3.7.6", + "ahooks": "^3.7.7", "aplayer-react": "^1.1.0", + "canvas": "^2.11.2", "canvas-confetti": "^1.6.0", "chroma-js": "^2.4.2", "clsx": "1.2.1", @@ -72,14 +74,15 @@ "hast-util-to-html": "^8.0.4", "hast-util-to-text": "^3.1.2", "i18next": "^22.4.15", - "idb-keyval": "6.2.0", + "i18next-resources-to-backend": "^1.1.3", + "idb-keyval": "6.2.1", "immer": "10.0.1", "ioredis": "5.3.2", - "isomorphic-dompurify": "^1.3.0", + "isomorphic-dompurify": "^1.4.0", "js-yaml": "4.1.0", - "jsonfeed-to-rss": "^3.0.6", + "jsonfeed-to-rss": "^3.0.7", "katex": "^0.16.7", - "langchain": "^0.0.66", + "langchain": "^0.0.71", "lottie-react": "^2.4.0", "mdast-util-to-hast": "^12.3.0", "mdast-util-to-string": "3.2.0", @@ -87,24 +90,22 @@ "medium-zoom": "1.0.8", "mermaid": "10.1.0", "nanoid": "4.0.2", - "next": "13.3.1", - "next-i18next": "^13.2.2", - "nextjs-progressbar": "0.0.16", + "next": "13.4.1", "node-id3": "^0.2.6", "pangu": "^4.0.7", - "pinyin": "3.0.0-alpha.5", + "pinyin-pro": "^3.14.0", "prismjs": "1.29.0", + "qier-progress": "1.0.4", "react": "18.2.0", "react-dom": "18.2.0", "react-hook-form": "7.43.9", "react-hot-toast": "2.4.1", "react-i18next": "^12.2.2", - "react-parallax-tilt": "^1.7.131", + "react-parallax-tilt": "^1.7.137", "react-popper": "^2.3.0", - "react-scroll": "1.8.9", "react-sortablejs": "6.1.4", "react-string-replace": "^1.1.0", - "react-virtuoso": "4.3.2", + "react-virtuoso": "4.3.5", "refractor": "4.8.1", "rehype-autolink-headings": "6.1.1", "rehype-infer-description-meta": "^1.1.0", @@ -138,12 +139,12 @@ "unist-util-visit": "4.1.2", "use-onclickoutside": "0.4.1", "uuid": "9.0.0", - "wagmi": "0.12.12", - "zustand": "^4.3.7" + "wagmi": "0.12.13", + "zustand": "^4.3.8" }, "devDependencies": { "@iconify/tailwind": "^0.1.2", - "@next/bundle-analyzer": "13.3.1", + "@next/bundle-analyzer": "13.4.1", "@playwright/test": "1.33.0", "@trivago/prettier-plugin-sort-imports": "4.1.1", "@types/canvas-confetti": "^1.6.0", @@ -154,13 +155,12 @@ "@types/katex": "^0.16.0", "@types/mdast": "^3.0.11", "@types/mjml": "4.7.1", - "@types/node": "18.16.2", + "@types/node": "20.1.0", "@types/pangu": "^4.0.0", "@types/prismjs": "1.26.0", - "@types/react": "18.2.0", - "@types/react-dom": "18.2.1", + "@types/react": "18.2.6", + "@types/react-dom": "18.2.4", "@types/react-infinite-scroller": "1.2.3", - "@types/react-scroll": "1.8.6", "@types/remove-markdown": "0.3.1", "@types/serialize-javascript": "^5.0.2", "@types/sortablejs": "1.15.1", @@ -168,12 +168,11 @@ "@types/uuid": "9.0.1", "autoprefixer": "10.4.14", "babel-loader": "^9.1.2", - "cross-spawn": "7.0.3", "cspell": "^6.31.1", "esbuild": "0.17.18", "esbuild-register": "3.4.2", - "eslint": "8.39.0", - "eslint-config-next": "13.3.1", + "eslint": "8.40.0", + "eslint-config-next": "13.4.1", "eslint-plugin-import": "2.27.5", "eslint-plugin-unused-imports": "2.0.0", "husky": "8.0.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3d450d0c..682b1ef3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2,8 +2,8 @@ lockfileVersion: '6.0' dependencies: '@codemirror/commands': - specifier: 6.2.3 - version: 6.2.3 + specifier: 6.2.4 + version: 6.2.4 '@codemirror/lang-markdown': specifier: 6.1.1 version: 6.1.1 @@ -11,8 +11,8 @@ dependencies: specifier: 6.6.0 version: 6.6.0 '@codemirror/language-data': - specifier: 6.3.0 - version: 6.3.0(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2) + specifier: 6.3.1 + version: 6.3.1(@codemirror/state@6.2.0)(@codemirror/view@6.11.0)(@lezer/common@1.0.2) '@codemirror/state': specifier: 6.2.0 version: 6.2.0 @@ -20,26 +20,26 @@ dependencies: specifier: 6.1.2 version: 6.1.2 '@codemirror/view': - specifier: 6.10.0 - version: 6.10.0 + specifier: 6.11.0 + version: 6.11.0 '@crossbell/connect-kit': - specifier: 0.0.79 - version: 0.0.79(@tanstack/react-query@4.29.5)(@types/react@18.2.0)(ethers@5.7.2)(react-dom@18.2.0)(typescript@5.0.4)(wagmi@0.12.12) + specifier: 0.0.82 + version: 0.0.82(@tanstack/react-query@4.29.5)(@types/react@18.2.6)(ethers@5.7.2)(react-dom@18.2.0)(typescript@5.0.4)(wagmi@0.12.13) '@crossbell/contract': - specifier: 0.0.79 - version: 0.0.79(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0) + specifier: 0.0.82 + version: 0.0.82(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0) '@crossbell/indexer': - specifier: 0.0.79 - version: 0.0.79(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0) + specifier: 0.0.82 + version: 0.0.82(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0) '@crossbell/notification': - specifier: 0.0.79 - version: 0.0.79(@tanstack/react-query@4.29.5)(@types/react@18.2.0)(ethers@5.7.2)(immer@10.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)(wagmi@0.12.12) + specifier: 0.0.82 + version: 0.0.82(@tanstack/react-query@4.29.5)(@types/react@18.2.6)(ethers@5.7.2)(immer@10.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)(wagmi@0.12.13) '@crossbell/ui': - specifier: 0.0.79 - version: 0.0.79(@types/react@18.2.0)(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4) + specifier: 0.0.82 + version: 0.0.82(@types/react@18.2.6)(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4) '@crossbell/util-hooks': - specifier: 0.0.79 - version: 0.0.79(react-dom@18.2.0)(react@18.2.0) + specifier: 0.0.82 + version: 0.0.82(react-dom@18.2.0)(react@18.2.0) '@ddietr/codemirror-themes': specifier: 1.4.1 version: 1.4.1 @@ -53,8 +53,8 @@ dependencies: specifier: 1.1.1 version: 1.1.1(emoji-mart@5.5.2)(react@18.2.0) '@floating-ui/react': - specifier: ^0.23.1 - version: 0.23.1(react-dom@18.2.0)(react@18.2.0) + specifier: ^0.24.0 + version: 0.24.0(react-dom@18.2.0)(react@18.2.0) '@headlessui/react': specifier: 1.7.14 version: 1.7.14(react-dom@18.2.0)(react@18.2.0) @@ -68,11 +68,11 @@ dependencies: specifier: ^1.1.4 version: 1.1.4 '@mantine/core': - specifier: ^6.0.9 - version: 6.0.9(@emotion/react@11.10.8)(@mantine/hooks@6.0.9)(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0) + specifier: ^6.0.10 + version: 6.0.10(@emotion/react@11.11.0)(@mantine/hooks@6.0.10)(@types/react@18.2.6)(react-dom@18.2.0)(react@18.2.0) '@monaco-editor/react': - specifier: 4.5.0 - version: 4.5.0(monaco-editor@0.37.1)(react-dom@18.2.0)(react@18.2.0) + specifier: 4.5.1 + version: 4.5.1(monaco-editor@0.38.0)(react-dom@18.2.0)(react@18.2.0) '@popperjs/core': specifier: ^2.11.7 version: 2.11.7 @@ -90,16 +90,19 @@ dependencies: version: 4.29.5(@tanstack/react-query@4.29.5) '@uiw/codemirror-extensions-events': specifier: 4.19.16 - version: 4.19.16(@codemirror/view@6.10.0) + version: 4.19.16(@codemirror/view@6.11.0) '@urql/core': specifier: 4.0.7 version: 4.0.7(graphql@16.6.0) ahooks: - specifier: ^3.7.6 - version: 3.7.6(react@18.2.0) + specifier: ^3.7.7 + version: 3.7.7(react@18.2.0) aplayer-react: specifier: ^1.1.0 version: 1.1.0(react@18.2.0) + canvas: + specifier: ^2.11.2 + version: 2.11.2 canvas-confetti: specifier: ^1.6.0 version: 1.6.0 @@ -136,9 +139,12 @@ dependencies: i18next: specifier: ^22.4.15 version: 22.4.15 + i18next-resources-to-backend: + specifier: ^1.1.3 + version: 1.1.3 idb-keyval: - specifier: 6.2.0 - version: 6.2.0 + specifier: 6.2.1 + version: 6.2.1 immer: specifier: 10.0.1 version: 10.0.1 @@ -146,20 +152,20 @@ dependencies: specifier: 5.3.2 version: 5.3.2 isomorphic-dompurify: - specifier: ^1.3.0 - version: 1.3.0 + specifier: ^1.4.0 + version: 1.4.0(canvas@2.11.2) js-yaml: specifier: 4.1.0 version: 4.1.0 jsonfeed-to-rss: - specifier: ^3.0.6 - version: 3.0.6 + specifier: ^3.0.7 + version: 3.0.7 katex: specifier: ^0.16.7 version: 0.16.7 langchain: - specifier: ^0.0.66 - version: 0.0.66 + specifier: ^0.0.71 + version: 0.0.71 lottie-react: specifier: ^2.4.0 version: 2.4.0(react-dom@18.2.0)(react@18.2.0) @@ -182,26 +188,23 @@ dependencies: specifier: 4.0.2 version: 4.0.2 next: - specifier: 13.3.1 - version: 13.3.1(@babel/core@7.21.5)(react-dom@18.2.0)(react@18.2.0) - next-i18next: - specifier: ^13.2.2 - version: 13.2.2(i18next@22.4.15)(next@13.3.1)(react-i18next@12.2.2)(react@18.2.0) - nextjs-progressbar: - specifier: 0.0.16 - version: 0.0.16(next@13.3.1)(react@18.2.0) + specifier: 13.4.1 + version: 13.4.1(@babel/core@7.21.8)(react-dom@18.2.0)(react@18.2.0) node-id3: specifier: ^0.2.6 version: 0.2.6 pangu: specifier: ^4.0.7 version: 4.0.7 - pinyin: - specifier: 3.0.0-alpha.5 - version: 3.0.0-alpha.5 + pinyin-pro: + specifier: ^3.14.0 + version: 3.14.0 prismjs: specifier: 1.29.0 version: 1.29.0 + qier-progress: + specifier: 1.0.4 + version: 1.0.4 react: specifier: 18.2.0 version: 18.2.0 @@ -218,14 +221,11 @@ dependencies: specifier: ^12.2.2 version: 12.2.2(i18next@22.4.15)(react-dom@18.2.0)(react@18.2.0) react-parallax-tilt: - specifier: ^1.7.131 - version: 1.7.131(react-dom@18.2.0)(react@18.2.0) + specifier: ^1.7.137 + version: 1.7.137(react-dom@18.2.0)(react@18.2.0) react-popper: specifier: ^2.3.0 version: 2.3.0(@popperjs/core@2.11.7)(react-dom@18.2.0)(react@18.2.0) - react-scroll: - specifier: 1.8.9 - version: 1.8.9(react-dom@18.2.0)(react@18.2.0) react-sortablejs: specifier: 6.1.4 version: 6.1.4(@types/sortablejs@1.15.1)(react-dom@18.2.0)(react@18.2.0)(sortablejs@1.15.0) @@ -233,8 +233,8 @@ dependencies: specifier: ^1.1.0 version: 1.1.0 react-virtuoso: - specifier: 4.3.2 - version: 4.3.2(react-dom@18.2.0)(react@18.2.0) + specifier: 4.3.5 + version: 4.3.5(react-dom@18.2.0)(react@18.2.0) refractor: specifier: 4.8.1 version: 4.8.1 @@ -255,7 +255,7 @@ dependencies: version: 6.1.1 rehype-react: specifier: 7.2.0 - version: 7.2.0(@types/react@18.2.0) + version: 7.2.0(@types/react@18.2.6) rehype-rewrite: specifier: ^3.0.6 version: 3.0.6 @@ -330,24 +330,24 @@ dependencies: version: 4.1.2 use-onclickoutside: specifier: 0.4.1 - version: 0.4.1(@types/react@18.2.0)(react@18.2.0) + version: 0.4.1(@types/react@18.2.6)(react@18.2.0) uuid: specifier: 9.0.0 version: 9.0.0 wagmi: - specifier: 0.12.12 - version: 0.12.12(ethers@5.7.2)(immer@10.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)(zod@3.21.4) + specifier: 0.12.13 + version: 0.12.13(ethers@5.7.2)(immer@10.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)(zod@3.21.4) zustand: - specifier: ^4.3.7 - version: 4.3.7(immer@10.0.1)(react@18.2.0) + specifier: ^4.3.8 + version: 4.3.8(immer@10.0.1)(react@18.2.0) devDependencies: '@iconify/tailwind': specifier: ^0.1.2 version: 0.1.2 '@next/bundle-analyzer': - specifier: 13.3.1 - version: 13.3.1 + specifier: 13.4.1 + version: 13.4.1 '@playwright/test': specifier: 1.33.0 version: 1.33.0 @@ -379,8 +379,8 @@ devDependencies: specifier: 4.7.1 version: 4.7.1 '@types/node': - specifier: 18.16.2 - version: 18.16.2 + specifier: 20.1.0 + version: 20.1.0 '@types/pangu': specifier: ^4.0.0 version: 4.0.0 @@ -388,17 +388,14 @@ devDependencies: specifier: 1.26.0 version: 1.26.0 '@types/react': - specifier: 18.2.0 - version: 18.2.0 + specifier: 18.2.6 + version: 18.2.6 '@types/react-dom': - specifier: 18.2.1 - version: 18.2.1 + specifier: 18.2.4 + version: 18.2.4 '@types/react-infinite-scroller': specifier: 1.2.3 version: 1.2.3 - '@types/react-scroll': - specifier: 1.8.6 - version: 1.8.6 '@types/remove-markdown': specifier: 0.3.1 version: 0.3.1 @@ -419,10 +416,7 @@ devDependencies: version: 10.4.14(postcss@8.4.23) babel-loader: specifier: ^9.1.2 - version: 9.1.2(@babel/core@7.21.5)(webpack@5.81.0) - cross-spawn: - specifier: 7.0.3 - version: 7.0.3 + version: 9.1.2(@babel/core@7.21.8)(webpack@5.82.0) cspell: specifier: ^6.31.1 version: 6.31.1 @@ -433,17 +427,17 @@ devDependencies: specifier: 3.4.2 version: 3.4.2(esbuild@0.17.18) eslint: - specifier: 8.39.0 - version: 8.39.0 + specifier: 8.40.0 + version: 8.40.0 eslint-config-next: - specifier: 13.3.1 - version: 13.3.1(eslint@8.39.0)(typescript@5.0.4) + specifier: 13.4.1 + version: 13.4.1(eslint@8.40.0)(typescript@5.0.4) eslint-plugin-import: specifier: 2.27.5 - version: 2.27.5(@typescript-eslint/parser@5.59.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.39.0) + version: 2.27.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0) eslint-plugin-unused-imports: specifier: 2.0.0 - version: 2.0.0(eslint@8.39.0) + version: 2.0.0(eslint@8.40.0) husky: specifier: 8.0.3 version: 8.0.3 @@ -452,7 +446,7 @@ devDependencies: version: 13.2.2 next-pwa: specifier: ^5.6.0 - version: 5.6.0(@babel/core@7.21.5)(esbuild@0.17.18)(next@13.3.1)(webpack@5.81.0) + version: 5.6.0(@babel/core@7.21.8)(esbuild@0.17.18)(next@13.4.1)(webpack@5.82.0) postcss-import: specifier: 15.1.0 version: 15.1.0(postcss@8.4.23) @@ -528,8 +522,8 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/compat-data@7.21.5: - resolution: {integrity: sha512-M+XAiQ7GzQ3FDPf0KOLkugzptnIypt0X0ma0wmlTKPR3IchgNFdx2JXxZdvd18JY5s7QkaFD/qyX0dsMpog/Ug==} + /@babel/compat-data@7.21.7: + resolution: {integrity: sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==} engines: {node: '>=6.9.0'} /@babel/core@7.21.4: @@ -555,17 +549,17 @@ packages: - supports-color dev: true - /@babel/core@7.21.5: - resolution: {integrity: sha512-9M398B/QH5DlfCOTKDZT1ozXr0x8uBEeFd+dJraGUZGiaNpGCDVGCc14hZexsMblw3XxltJ+6kSvogp9J+5a9g==} + /@babel/core@7.21.8: + resolution: {integrity: sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.21.4 '@babel/generator': 7.21.5 - '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.5) + '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.8) '@babel/helper-module-transforms': 7.21.5 '@babel/helpers': 7.21.5 - '@babel/parser': 7.21.5 + '@babel/parser': 7.21.8 '@babel/template': 7.20.7 '@babel/traverse': 7.21.5 '@babel/types': 7.21.5 @@ -634,14 +628,14 @@ packages: semver: 6.3.0 dev: true - /@babel/helper-compilation-targets@7.21.5(@babel/core@7.21.5): + /@babel/helper-compilation-targets@7.21.5(@babel/core@7.21.8): resolution: {integrity: sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/compat-data': 7.21.5 - '@babel/core': 7.21.5 + '@babel/compat-data': 7.21.7 + '@babel/core': 7.21.8 '@babel/helper-validator-option': 7.21.0 browserslist: 4.21.5 lru-cache: 5.1.1 @@ -893,8 +887,8 @@ packages: dependencies: '@babel/types': 7.17.0 - /@babel/parser@7.21.5: - resolution: {integrity: sha512-J+IxH2IsxV4HbnTrSWgMAQj0UEo61hDA4Ny8h8PCX0MLXiibqHbqIOVneqdocemSBc22VpBKxt4J6FQzy9HarQ==} + /@babel/parser@7.21.8: + resolution: {integrity: sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==} engines: {node: '>=6.0.0'} hasBin: true dependencies: @@ -1776,7 +1770,7 @@ packages: '@babel/helper-function-name': 7.21.0 '@babel/helper-hoist-variables': 7.18.6 '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.21.5 + '@babel/parser': 7.21.8 '@babel/types': 7.21.5 debug: 4.3.4 globals: 11.12.0 @@ -1808,7 +1802,7 @@ packages: existy: 1.0.1 dev: false - /@codemirror/autocomplete@6.5.1(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2): + /@codemirror/autocomplete@6.5.1(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.11.0)(@lezer/common@1.0.2): resolution: {integrity: sha512-/Sv9yJmqyILbZ26U4LBHnAtbikuVxWUp+rQ8BXuRGtxZfbfKOY/WPbsUtvSP2h0ZUZMlkxV/hqbKRFzowlA6xw==} peerDependencies: '@codemirror/language': ^6.0.0 @@ -1818,16 +1812,30 @@ packages: dependencies: '@codemirror/language': 6.6.0 '@codemirror/state': 6.2.0 - '@codemirror/view': 6.10.0 + '@codemirror/view': 6.11.0 '@lezer/common': 1.0.2 dev: false - /@codemirror/commands@6.2.3: - resolution: {integrity: sha512-9uf0g9m2wZyrIim1SavcxMdwsu8wc/y5uSw6JRUBYIGWrN+RY4vSru/BqB+MyNWqx4C2uRhQ/Kh7Pw8lAyT3qQ==} + /@codemirror/autocomplete@6.6.1(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.11.0)(@lezer/common@1.0.2): + resolution: {integrity: sha512-RpsvnYOopnyNbZg487qoRD5bKg63KMMUVP5d8MQ4Luc7Mb6JBWTORovLi6cTvWaKlbmLW8Zd2dAJkIdrhBsXug==} + peerDependencies: + '@codemirror/language': ^6.0.0 + '@codemirror/state': ^6.0.0 + '@codemirror/view': ^6.0.0 + '@lezer/common': ^1.0.0 dependencies: '@codemirror/language': 6.6.0 '@codemirror/state': 6.2.0 - '@codemirror/view': 6.10.0 + '@codemirror/view': 6.11.0 + '@lezer/common': 1.0.2 + dev: false + + /@codemirror/commands@6.2.4: + resolution: {integrity: sha512-42lmDqVH0ttfilLShReLXsDfASKLXzfyC36bzwcqzox9PlHulMcsUOfHXNo2X2aFMVNUoQ7j+d4q5bnfseYoOA==} + dependencies: + '@codemirror/language': 6.6.0 + '@codemirror/state': 6.2.0 + '@codemirror/view': 6.11.0 '@lezer/common': 1.0.2 dev: false @@ -1848,27 +1856,27 @@ packages: '@lezer/cpp': 1.1.0 dev: false - /@codemirror/lang-css@6.1.1(@codemirror/view@6.10.0)(@lezer/common@1.0.2): - resolution: {integrity: sha512-P6jdNEHyRcqqDgbvHYyC9Wxkek0rnG3a9aVSRi4a7WrjPbQtBTaOmvYpXmm13zZMAatO4Oqpac+0QZs7sy+LnQ==} + /@codemirror/lang-css@6.2.0(@codemirror/view@6.11.0): + resolution: {integrity: sha512-oyIdJM29AyRPM3+PPq1I2oIk8NpUfEN3kAM05XWDDs6o3gSneIKaVJifT2P+fqONLou2uIgXynFyMUDQvo/szA==} dependencies: - '@codemirror/autocomplete': 6.5.1(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2) + '@codemirror/autocomplete': 6.6.1(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.11.0)(@lezer/common@1.0.2) '@codemirror/language': 6.6.0 '@codemirror/state': 6.2.0 + '@lezer/common': 1.0.2 '@lezer/css': 1.1.1 transitivePeerDependencies: - '@codemirror/view' - - '@lezer/common' dev: false /@codemirror/lang-html@6.4.3: resolution: {integrity: sha512-VKzQXEC8nL69Jg2hvAFPBwOdZNvL8tMFOrdFwWpU+wc6a6KEkndJ/19R5xSaglNX6v2bttm8uIEFYxdQDcIZVQ==} dependencies: - '@codemirror/autocomplete': 6.5.1(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2) - '@codemirror/lang-css': 6.1.1(@codemirror/view@6.10.0)(@lezer/common@1.0.2) + '@codemirror/autocomplete': 6.5.1(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.11.0)(@lezer/common@1.0.2) + '@codemirror/lang-css': 6.2.0(@codemirror/view@6.11.0) '@codemirror/lang-javascript': 6.1.7 '@codemirror/language': 6.6.0 '@codemirror/state': 6.2.0 - '@codemirror/view': 6.10.0 + '@codemirror/view': 6.11.0 '@lezer/common': 1.0.2 '@lezer/css': 1.1.1 '@lezer/html': 1.3.4 @@ -1884,13 +1892,13 @@ packages: /@codemirror/lang-javascript@6.1.7: resolution: {integrity: sha512-KXKqxlZ4W6t5I7i2ScmITUD3f/F5Cllk3kj0De9P9mFeYVfhOVOWuDLgYiLpk357u7Xh4dhqjJAnsNPPoTLghQ==} dependencies: - '@codemirror/autocomplete': 6.5.1(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2) + '@codemirror/autocomplete': 6.6.1(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.11.0)(@lezer/common@1.0.2) '@codemirror/language': 6.6.0 '@codemirror/lint': 6.2.1 '@codemirror/state': 6.2.0 - '@codemirror/view': 6.10.0 + '@codemirror/view': 6.11.0 '@lezer/common': 1.0.2 - '@lezer/javascript': 1.4.2 + '@lezer/javascript': 1.4.3 dev: false /@codemirror/lang-json@6.0.1: @@ -1900,13 +1908,24 @@ packages: '@lezer/json': 1.0.0 dev: false + /@codemirror/lang-less@6.0.1(@codemirror/view@6.11.0): + resolution: {integrity: sha512-ABcsKBjLbyPZwPR5gePpc8jEKCQrFF4pby2WlMVdmJOOr7OWwwyz8DZonPx/cKDE00hfoSLc8F7yAcn/d6+rTQ==} + dependencies: + '@codemirror/lang-css': 6.2.0(@codemirror/view@6.11.0) + '@codemirror/language': 6.6.0 + '@lezer/highlight': 1.1.4 + '@lezer/lr': 1.3.4 + transitivePeerDependencies: + - '@codemirror/view' + dev: false + /@codemirror/lang-markdown@6.1.1: resolution: {integrity: sha512-n87Ms6Y5UYb1UkFu8sRzTLfq/yyF1y2AYiWvaVdbBQi5WDj1tFk5N+AKA+WC0Jcjc1VxvrCCM0iizjdYYi9sFQ==} dependencies: '@codemirror/lang-html': 6.4.3 '@codemirror/language': 6.6.0 '@codemirror/state': 6.2.0 - '@codemirror/view': 6.10.0 + '@codemirror/view': 6.11.0 '@lezer/common': 1.0.2 '@lezer/markdown': 1.0.2 dev: false @@ -1921,12 +1940,12 @@ packages: '@lezer/php': 1.0.1 dev: false - /@codemirror/lang-python@6.1.2(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2): + /@codemirror/lang-python@6.1.2(@codemirror/state@6.2.0)(@codemirror/view@6.11.0)(@lezer/common@1.0.2): resolution: {integrity: sha512-nbQfifLBZstpt6Oo4XxA2LOzlSp4b/7Bc5cmodG1R+Cs5PLLCTUvsMNWDnziiCfTOG/SW1rVzXq/GbIr6WXlcw==} dependencies: - '@codemirror/autocomplete': 6.5.1(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2) + '@codemirror/autocomplete': 6.6.1(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.11.0)(@lezer/common@1.0.2) '@codemirror/language': 6.6.0 - '@lezer/python': 1.1.4 + '@lezer/python': 1.1.5 transitivePeerDependencies: - '@codemirror/state' - '@codemirror/view' @@ -1940,10 +1959,10 @@ packages: '@lezer/rust': 1.0.0 dev: false - /@codemirror/lang-sass@6.0.1(@codemirror/view@6.10.0): + /@codemirror/lang-sass@6.0.1(@codemirror/view@6.11.0): resolution: {integrity: sha512-USy9zqtdLYxSuqq0s4peMoQi+BDzyOyO7chUzli+X2xVCjmBhc3CsWQ4kkDU0NYtCHHFQRkcFO8770eaOwZqfw==} dependencies: - '@codemirror/lang-css': 6.1.1(@codemirror/view@6.10.0)(@lezer/common@1.0.2) + '@codemirror/lang-css': 6.2.0(@codemirror/view@6.11.0) '@codemirror/language': 6.6.0 '@codemirror/state': 6.2.0 '@lezer/common': 1.0.2 @@ -1952,14 +1971,14 @@ packages: - '@codemirror/view' dev: false - /@codemirror/lang-sql@6.4.1(@codemirror/view@6.10.0)(@lezer/common@1.0.2): + /@codemirror/lang-sql@6.4.1(@codemirror/view@6.11.0)(@lezer/common@1.0.2): resolution: {integrity: sha512-PFB56L+A0WGY35uRya+Trt5g19V9k2V9X3c55xoFW4RgiATr/yLqWsbbnEsdxuMn5tLpuikp7Kmj9smRsqBXAg==} dependencies: - '@codemirror/autocomplete': 6.5.1(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2) + '@codemirror/autocomplete': 6.6.1(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.11.0)(@lezer/common@1.0.2) '@codemirror/language': 6.6.0 '@codemirror/state': 6.2.0 '@lezer/highlight': 1.1.4 - '@lezer/lr': 1.3.3 + '@lezer/lr': 1.3.4 transitivePeerDependencies: - '@codemirror/view' - '@lezer/common' @@ -1973,7 +1992,7 @@ packages: '@codemirror/language': 6.6.0 '@lezer/common': 1.0.2 '@lezer/highlight': 1.1.4 - '@lezer/lr': 1.3.3 + '@lezer/lr': 1.3.4 dev: false /@codemirror/lang-wast@6.0.1: @@ -1981,13 +2000,13 @@ packages: dependencies: '@codemirror/language': 6.6.0 '@lezer/highlight': 1.1.4 - '@lezer/lr': 1.3.3 + '@lezer/lr': 1.3.4 dev: false - /@codemirror/lang-xml@6.0.2(@codemirror/view@6.10.0): + /@codemirror/lang-xml@6.0.2(@codemirror/view@6.11.0): resolution: {integrity: sha512-JQYZjHL2LAfpiZI2/qZ/qzDuSqmGKMwyApYmEUUCTxLM4MWS7sATUEfIguZQr9Zjx/7gcdnewb039smF6nC2zw==} dependencies: - '@codemirror/autocomplete': 6.5.1(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2) + '@codemirror/autocomplete': 6.6.1(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.11.0)(@lezer/common@1.0.2) '@codemirror/language': 6.6.0 '@codemirror/state': 6.2.0 '@lezer/common': 1.0.2 @@ -1996,25 +2015,26 @@ packages: - '@codemirror/view' dev: false - /@codemirror/language-data@6.3.0(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2): - resolution: {integrity: sha512-D9tOZS38mK59jDs1Flqe8GgCdUAYI339SqBdwHJZwxgyXHsBc8RIhAlz2oXWGpvZeP/kVHy9LVfoBFgO02mx7w==} + /@codemirror/language-data@6.3.1(@codemirror/state@6.2.0)(@codemirror/view@6.11.0)(@lezer/common@1.0.2): + resolution: {integrity: sha512-p6jhJmvhGe1TG1EGNhwH7nFWWFSTJ8NDKnB2fVx5g3t+PpO0+63R7GJNxjS0TmmH3cdMxZbzejsik+rlEh1EyQ==} dependencies: '@codemirror/lang-angular': 0.1.0 '@codemirror/lang-cpp': 6.0.2 - '@codemirror/lang-css': 6.1.1(@codemirror/view@6.10.0)(@lezer/common@1.0.2) + '@codemirror/lang-css': 6.2.0(@codemirror/view@6.11.0) '@codemirror/lang-html': 6.4.3 '@codemirror/lang-java': 6.0.1 '@codemirror/lang-javascript': 6.1.7 '@codemirror/lang-json': 6.0.1 + '@codemirror/lang-less': 6.0.1(@codemirror/view@6.11.0) '@codemirror/lang-markdown': 6.1.1 '@codemirror/lang-php': 6.0.1 - '@codemirror/lang-python': 6.1.2(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2) + '@codemirror/lang-python': 6.1.2(@codemirror/state@6.2.0)(@codemirror/view@6.11.0)(@lezer/common@1.0.2) '@codemirror/lang-rust': 6.0.1 - '@codemirror/lang-sass': 6.0.1(@codemirror/view@6.10.0) - '@codemirror/lang-sql': 6.4.1(@codemirror/view@6.10.0)(@lezer/common@1.0.2) + '@codemirror/lang-sass': 6.0.1(@codemirror/view@6.11.0) + '@codemirror/lang-sql': 6.4.1(@codemirror/view@6.11.0)(@lezer/common@1.0.2) '@codemirror/lang-vue': 0.1.1 '@codemirror/lang-wast': 6.0.1 - '@codemirror/lang-xml': 6.0.2(@codemirror/view@6.10.0) + '@codemirror/lang-xml': 6.0.2(@codemirror/view@6.11.0) '@codemirror/language': 6.6.0 '@codemirror/legacy-modes': 6.3.2 transitivePeerDependencies: @@ -2027,7 +2047,7 @@ packages: resolution: {integrity: sha512-cwUd6lzt3MfNYOobdjf14ZkLbJcnv4WtndYaoBkbor/vF+rCNguMPK0IRtvZJG4dsWiaWPcK8x1VijhvSxnstg==} dependencies: '@codemirror/state': 6.2.0 - '@codemirror/view': 6.10.0 + '@codemirror/view': 6.11.0 '@lezer/common': 1.0.2 '@lezer/highlight': 1.1.4 '@lezer/lr': 1.3.3 @@ -2044,7 +2064,7 @@ packages: resolution: {integrity: sha512-y1muai5U/uUPAGRyHMx9mHuHLypPcHWxzlZGknp/U5Mdb5Ol8Q5ZLp67UqyTbNFJJ3unVxZ8iX3g1fMN79S1JQ==} dependencies: '@codemirror/state': 6.2.0 - '@codemirror/view': 6.10.0 + '@codemirror/view': 6.11.0 crelt: 1.0.5 dev: false @@ -2057,12 +2077,12 @@ packages: dependencies: '@codemirror/language': 6.6.0 '@codemirror/state': 6.2.0 - '@codemirror/view': 6.10.0 + '@codemirror/view': 6.11.0 '@lezer/highlight': 1.1.4 dev: false - /@codemirror/view@6.10.0: - resolution: {integrity: sha512-Oea3rvE4JQLMmLsy2b54yxXQJgJM9xKpUQIpF/LGgKUTH2lA06GAmEtKKWn5OUnbW3jrH1hHeUd8DJEgePMOeQ==} + /@codemirror/view@6.11.0: + resolution: {integrity: sha512-PRpPRkqMkAKKxEuiUBxapE0YR+wqs9At92ujbJo93PwTZ0jEJDzx9wahrDcXEhQ43Pe0RK9DdZMLWrt+QN80DA==} dependencies: '@codemirror/state': 6.2.0 style-mod: 4.0.3 @@ -2097,24 +2117,24 @@ packages: - utf-8-validate dev: false - /@crossbell/connect-kit@0.0.79(@tanstack/react-query@4.29.5)(@types/react@18.2.0)(ethers@5.7.2)(react-dom@18.2.0)(typescript@5.0.4)(wagmi@0.12.12): - resolution: {integrity: sha512-DK9AW6hT3z2EtTAtx+29lo1NkiMGSmC5bXUs2i78ijL72sIiPFklLJvlenngs/vtMWtNX4BlXrJB//jgQVLwEA==} + /@crossbell/connect-kit@0.0.82(@tanstack/react-query@4.29.5)(@types/react@18.2.6)(ethers@5.7.2)(react-dom@18.2.0)(typescript@5.0.4)(wagmi@0.12.13): + resolution: {integrity: sha512-XONgbOlXCOihXAg7IUJYfV+Zilf0Lux0kp0P3FUPjSbNk+fK08pLgkxkfiFEevr0+AW/lYP0riwW/JcIhFeEJQ==} peerDependencies: '@tanstack/react-query': ^4 ethers: ^5 wagmi: ^0.12 dependencies: - '@crossbell/contract': 0.0.79(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0) - '@crossbell/indexer': 0.0.79(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0) - '@crossbell/react-account': 0.0.79(@tanstack/react-query@4.29.5)(ethers@5.7.2)(react-dom@18.2.0)(typescript@5.0.4) - '@crossbell/ui': 0.0.79(@types/react@18.2.0)(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4) - '@crossbell/util-ethers': 0.0.79 - '@crossbell/util-hooks': 0.0.79(react-dom@18.2.0)(react@18.2.0) - '@crossbell/util-metadata': 0.0.79 - '@emotion/react': 11.10.8(@types/react@18.2.0)(react@18.2.0) - '@mantine/core': 6.0.9(@emotion/react@11.10.8)(@mantine/hooks@6.0.9)(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0) - '@mantine/hooks': 6.0.9(react@18.2.0) - '@mantine/notifications': 6.0.9(@mantine/core@6.0.9)(@mantine/hooks@6.0.9)(react-dom@18.2.0)(react@18.2.0) + '@crossbell/contract': 0.0.82(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0) + '@crossbell/indexer': 0.0.82(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0) + '@crossbell/react-account': 0.0.82(@tanstack/react-query@4.29.5)(ethers@5.7.2)(react-dom@18.2.0)(typescript@5.0.4) + '@crossbell/ui': 0.0.82(@types/react@18.2.6)(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4) + '@crossbell/util-ethers': 0.0.82 + '@crossbell/util-hooks': 0.0.82(react-dom@18.2.0)(react@18.2.0) + '@crossbell/util-metadata': 0.0.82 + '@emotion/react': 11.11.0(@types/react@18.2.6)(react@18.2.0) + '@mantine/core': 6.0.10(@emotion/react@11.11.0)(@mantine/hooks@6.0.10)(@types/react@18.2.6)(react-dom@18.2.0)(react@18.2.0) + '@mantine/hooks': 6.0.10(react@18.2.0) + '@mantine/notifications': 6.0.10(@mantine/core@6.0.10)(@mantine/hooks@6.0.10)(react-dom@18.2.0)(react@18.2.0) '@tanstack/react-query': 4.29.5(react-dom@18.2.0)(react@18.2.0) canvas-confetti: 1.6.0 check-password-strength: 2.0.7 @@ -2129,9 +2149,9 @@ packages: react-dropzone: 14.2.3(react@18.2.0) react-google-recaptcha: 2.1.0(react@18.2.0) rxjs: 7.8.1 - ts-essentials: 9.3.1(typescript@5.0.4) - wagmi: 0.12.12(ethers@5.7.2)(immer@10.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)(zod@3.21.4) - zustand: 4.3.7(immer@10.0.1)(react@18.2.0) + ts-essentials: 9.3.2(typescript@5.0.4) + wagmi: 0.12.13(ethers@5.7.2)(immer@10.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)(zod@3.21.4) + zustand: 4.3.8(immer@10.0.1)(react@18.2.0) transitivePeerDependencies: - '@types/react' - bufferutil @@ -2142,14 +2162,14 @@ packages: - utf-8-validate dev: false - /@crossbell/contract@0.0.79(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-SHewggocpFgoKJp6X37kBMTy3RlELTYbsHbfCxBc1sjA4YHyPT/OjR9M1TLKAvlIGGCYJfgzgXSNgn+bUUyXUQ==} + /@crossbell/contract@0.0.82(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-lpklLSKAx9vRoUvTPXsfwOYeSvmtrCwQ1IhEBK6zmMykCZeM+WLbjXrTkmGobfG1kYT6NGZ6S34SpzgRY/PV8w==} peerDependencies: ethers: ^5 react: ^18 dependencies: - '@crossbell/indexer': 0.0.79(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0) - '@crossbell/util-hooks': 0.0.79(react-dom@18.2.0)(react@18.2.0) + '@crossbell/indexer': 0.0.82(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0) + '@crossbell/util-hooks': 0.0.82(react-dom@18.2.0)(react@18.2.0) crossbell.js: 0.19.9 ethers: 5.7.2 react: 18.2.0 @@ -2161,8 +2181,8 @@ packages: - utf-8-validate dev: false - /@crossbell/indexer@0.0.79(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-zaqeOrck4MCJGV1KxD5MFAcyKhw88bYu582mNg6GXj1jdly0Lo1KMNtWOIHZzex+Ua55JhRXCDo28p7GqhhgDA==} + /@crossbell/indexer@0.0.82(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-0YjeRX6PVwrDsneV0k4gQxe5BmgHgo2lygsYvY4COEcygOKgUJwnJA3YENbCS6vSifNZgBy2Ha2lP9XavX46mQ==} peerDependencies: ethers: ^5 dependencies: @@ -2185,27 +2205,27 @@ packages: resolution: {integrity: sha512-0Yf9+MMTSD+JJkFbNaK/s+kl3CXhr4oq2yj3K0dvheB+e8uykcpM7yomxHie/sr0ushw3G7Ppf5NXYkfH0eiSw==} dev: false - /@crossbell/notification@0.0.79(@tanstack/react-query@4.29.5)(@types/react@18.2.0)(ethers@5.7.2)(immer@10.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)(wagmi@0.12.12): - resolution: {integrity: sha512-UEjO0+tooTMo41PqXTRUCRGychtAbP2dPY9H5HuTsyPoApsUyK4UE3fUUhvJWm4pVEQ4aaKThwNSRbUFOrFZsw==} + /@crossbell/notification@0.0.82(@tanstack/react-query@4.29.5)(@types/react@18.2.6)(ethers@5.7.2)(immer@10.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)(wagmi@0.12.13): + resolution: {integrity: sha512-RROhe87Li/PprE9Wn8v1T6yeSxJGpDGCZ4dezHKjpaLM1cFxKXS4StCwOyF0Y5KB+AG/yrWRW9C4PQLj6Xr1Yw==} peerDependencies: '@tanstack/react-query': ^4 ethers: ^5 react: ^18 wagmi: ^0.12 dependencies: - '@crossbell/indexer': 0.0.79(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0) - '@crossbell/react-account': 0.0.79(@tanstack/react-query@4.29.5)(ethers@5.7.2)(react-dom@18.2.0)(typescript@5.0.4) - '@crossbell/ui': 0.0.79(@types/react@18.2.0)(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4) - '@crossbell/util-hooks': 0.0.79(react-dom@18.2.0)(react@18.2.0) - '@crossbell/util-metadata': 0.0.79 + '@crossbell/indexer': 0.0.82(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0) + '@crossbell/react-account': 0.0.82(@tanstack/react-query@4.29.5)(ethers@5.7.2)(react-dom@18.2.0)(typescript@5.0.4) + '@crossbell/ui': 0.0.82(@types/react@18.2.6)(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4) + '@crossbell/util-hooks': 0.0.82(react-dom@18.2.0)(react@18.2.0) + '@crossbell/util-metadata': 0.0.82 '@tanstack/react-query': 4.29.5(react-dom@18.2.0)(react@18.2.0) classnames: 2.3.2 dayjs: 1.11.7 ethers: 5.7.2 react: 18.2.0 react-intersection-observer: 9.4.3(react@18.2.0) - wagmi: 0.12.12(ethers@5.7.2)(immer@10.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)(zod@3.21.4) - zustand: 4.3.7(immer@10.0.1)(react@18.2.0) + wagmi: 0.12.13(ethers@5.7.2)(immer@10.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)(zod@3.21.4) + zustand: 4.3.8(immer@10.0.1)(react@18.2.0) transitivePeerDependencies: - '@types/react' - bufferutil @@ -2217,17 +2237,17 @@ packages: - utf-8-validate dev: false - /@crossbell/react-account@0.0.79(@tanstack/react-query@4.29.5)(ethers@5.7.2)(react-dom@18.2.0)(typescript@5.0.4): - resolution: {integrity: sha512-K5Yovrc/jonOTZhiJ2Atl4bWiJLtjXXcJbyfA2jRPWSJgj74u3dEuFKk6UqSKJmrCd/gGLkJluAavtfnS7o8Nw==} + /@crossbell/react-account@0.0.82(@tanstack/react-query@4.29.5)(ethers@5.7.2)(react-dom@18.2.0)(typescript@5.0.4): + resolution: {integrity: sha512-eRkgIWlvp0MjnBr3wrdVoosKF2pDJ9gyiLQCPzNxu+jNwySYwB2Ew7xq6XBUpJMeCnlQcr7ydGu304MwKRKXSQ==} peerDependencies: '@tanstack/react-query': ^4 ethers: ^5 dependencies: - '@crossbell/contract': 0.0.79(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0) - '@crossbell/indexer': 0.0.79(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0) - '@crossbell/util-ethers': 0.0.79 - '@crossbell/util-hooks': 0.0.79(react-dom@18.2.0)(react@18.2.0) - '@crossbell/util-metadata': 0.0.79 + '@crossbell/contract': 0.0.82(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0) + '@crossbell/indexer': 0.0.82(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0) + '@crossbell/util-ethers': 0.0.82 + '@crossbell/util-hooks': 0.0.82(react-dom@18.2.0)(react@18.2.0) + '@crossbell/util-metadata': 0.0.82 '@tanstack/react-query': 4.29.5(react-dom@18.2.0)(react@18.2.0) check-password-strength: 2.0.7 crossbell.js: 0.19.9 @@ -2236,8 +2256,8 @@ packages: lodash.debounce: 4.0.8 react: 18.2.0 rxjs: 7.8.1 - ts-essentials: 9.3.1(typescript@5.0.4) - zustand: 4.3.7(immer@10.0.1)(react@18.2.0) + ts-essentials: 9.3.2(typescript@5.0.4) + zustand: 4.3.8(immer@10.0.1)(react@18.2.0) transitivePeerDependencies: - bufferutil - react-dom @@ -2247,15 +2267,15 @@ packages: - utf-8-validate dev: false - /@crossbell/ui@0.0.79(@types/react@18.2.0)(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4): - resolution: {integrity: sha512-HaJS0fMLl1py90XwGkV2cLNlDQGo5b0LHrzfJqM2lYdPXl8N9pTpJ8xgP3W9mhFYlYUhrrtOPbZdwfLMlzm7Sw==} + /@crossbell/ui@0.0.82(@types/react@18.2.6)(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4): + resolution: {integrity: sha512-y2cU/YF8H2IHJX2hHGie5PF3e+K7z4nlxCXlMg3UBeqmJ4KQo5YbefxsfmJPyjVdB3TTnMSXLZelI4s2bSPwrA==} peerDependencies: react: ^18 react-dom: ^18 dependencies: - '@crossbell/indexer': 0.0.79(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0) - '@crossbell/util-hooks': 0.0.79(react-dom@18.2.0)(react@18.2.0) - '@crossbell/util-metadata': 0.0.79 + '@crossbell/indexer': 0.0.82(ethers@5.7.2)(react-dom@18.2.0)(react@18.2.0) + '@crossbell/util-hooks': 0.0.82(react-dom@18.2.0)(react@18.2.0) + '@crossbell/util-metadata': 0.0.82 '@tanstack/react-query': 4.29.5(react-dom@18.2.0)(react@18.2.0) classnames: 2.3.2 crossbell.js: 0.19.9 @@ -2263,9 +2283,9 @@ packages: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-intersection-observer: 9.4.3(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@18.2.0)(react@18.2.0) + react-remove-scroll: 2.5.6(@types/react@18.2.6)(react@18.2.0) react-transition-group: 4.4.5(react-dom@18.2.0)(react@18.2.0) - ts-essentials: 9.3.1(typescript@5.0.4) + ts-essentials: 9.3.2(typescript@5.0.4) transitivePeerDependencies: - '@types/react' - bufferutil @@ -2276,12 +2296,12 @@ packages: - utf-8-validate dev: false - /@crossbell/util-ethers@0.0.79: - resolution: {integrity: sha512-WOEKtgqi1eGNULbVf4T/szBZ/xwXNfYCMcL7GUniwOJ+AFkOceZ5TQfdPqJlLhGIdGEfKvlM7V9H9gFw5TQZ3A==} + /@crossbell/util-ethers@0.0.82: + resolution: {integrity: sha512-IYHTM6dKEFQWdhSrcESGQ0rlnSSZBnbuNx8sOfGaV1ZyQGS2kL5t0bSgo40sUZQXArU7BJDtBiShUYOtgAvyng==} dev: false - /@crossbell/util-hooks@0.0.79(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-nusdeaNWy0JhYKVLobQxypFlUzzMmDMncyfTGMaaPLm2kRrJUs36gFoipo+8dEx8EB62DRb6n1f0iBChlK2kOg==} + /@crossbell/util-hooks@0.0.82(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-JF8yBWpt6YkeC2nUaLMg703Er0ub6qubvghklj3Bk+WGVokWvZwTfWn06kExE6drWmWWFXHbq1bUh85Ewt4xQg==} peerDependencies: react: ^18 dependencies: @@ -2296,10 +2316,10 @@ packages: - utf-8-validate dev: false - /@crossbell/util-metadata@0.0.79: - resolution: {integrity: sha512-3T4+F0nPZNJSisxVPnzbzRVulgqC1uJuuUl6Jh3CjrVMvyfpTBkBxy+QaKeYdDwwReD4oybhjsYT1I3sVV1Rhw==} + /@crossbell/util-metadata@0.0.82: + resolution: {integrity: sha512-OVY6V/ucVCyjphw/nxuY9VrUBCtZJcmShFNwkqcYOmpajmVjgL5vVCXEmf7UVEOVv6czPJNsbN9z320hrwc/cw==} dependencies: - '@crossbell/util-ethers': 0.0.79 + '@crossbell/util-ethers': 0.0.82 '@fastify/deepmerge': 1.3.0 crossbell.js: 0.19.9 transitivePeerDependencies: @@ -2576,7 +2596,7 @@ packages: dependencies: '@codemirror/language': 6.6.0 '@codemirror/state': 6.2.0 - '@codemirror/view': 6.10.0 + '@codemirror/view': 6.11.0 '@lezer/highlight': 1.1.4 dev: false @@ -2598,42 +2618,42 @@ packages: react: 18.2.0 dev: false - /@emotion/babel-plugin@11.10.8: - resolution: {integrity: sha512-gxNky50AJL3AlkbjvTARiwAqei6/tNUxDZPSKd+3jqWVM3AmdVTTdpjHorR/an/M0VJqdsuq5oGcFH+rjtyujQ==} + /@emotion/babel-plugin@11.11.0: + resolution: {integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==} dependencies: '@babel/helper-module-imports': 7.21.4 '@babel/runtime': 7.21.5 - '@emotion/hash': 0.9.0 - '@emotion/memoize': 0.8.0 - '@emotion/serialize': 1.1.1 + '@emotion/hash': 0.9.1 + '@emotion/memoize': 0.8.1 + '@emotion/serialize': 1.1.2 babel-plugin-macros: 3.1.0 convert-source-map: 1.9.0 escape-string-regexp: 4.0.0 find-root: 1.1.0 source-map: 0.5.7 - stylis: 4.1.4 + stylis: 4.2.0 dev: false - /@emotion/cache@11.10.8: - resolution: {integrity: sha512-5fyqGHi51LU95o7qQ/vD1jyvC4uCY5GcBT+UgP4LHdpO9jPDlXqhrRr9/wCKmfoAvh5G/F7aOh4MwQa+8uEqhA==} + /@emotion/cache@11.11.0: + resolution: {integrity: sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==} dependencies: - '@emotion/memoize': 0.8.0 - '@emotion/sheet': 1.2.1 - '@emotion/utils': 1.2.0 - '@emotion/weak-memoize': 0.3.0 - stylis: 4.1.4 + '@emotion/memoize': 0.8.1 + '@emotion/sheet': 1.2.2 + '@emotion/utils': 1.2.1 + '@emotion/weak-memoize': 0.3.1 + stylis: 4.2.0 dev: false - /@emotion/hash@0.9.0: - resolution: {integrity: sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ==} + /@emotion/hash@0.9.1: + resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==} dev: false - /@emotion/memoize@0.8.0: - resolution: {integrity: sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==} + /@emotion/memoize@0.8.1: + resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} dev: false - /@emotion/react@11.10.8(@types/react@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-ZfGfiABtJ1P1OXqOBsW08EgCDp5fK6C5I8hUJauc/VcJBGSzqAirMnFslhFWnZJ/w5HxPI36XbvMV0l4KZHl+w==} + /@emotion/react@11.11.0(@types/react@18.2.6)(react@18.2.0): + resolution: {integrity: sha512-ZSK3ZJsNkwfjT3JpDAWJZlrGD81Z3ytNDsxw1LKq1o+xkmO5pnWfr6gmCC8gHEFf3nSSX/09YrG67jybNPxSUw==} peerDependencies: '@types/react': '*' react: '>=16.8.0' @@ -2642,49 +2662,49 @@ packages: optional: true dependencies: '@babel/runtime': 7.21.5 - '@emotion/babel-plugin': 11.10.8 - '@emotion/cache': 11.10.8 - '@emotion/serialize': 1.1.1 - '@emotion/use-insertion-effect-with-fallbacks': 1.0.0(react@18.2.0) - '@emotion/utils': 1.2.0 - '@emotion/weak-memoize': 0.3.0 - '@types/react': 18.2.0 + '@emotion/babel-plugin': 11.11.0 + '@emotion/cache': 11.11.0 + '@emotion/serialize': 1.1.2 + '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) + '@emotion/utils': 1.2.1 + '@emotion/weak-memoize': 0.3.1 + '@types/react': 18.2.6 hoist-non-react-statics: 3.3.2 react: 18.2.0 dev: false - /@emotion/serialize@1.1.1: - resolution: {integrity: sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==} + /@emotion/serialize@1.1.2: + resolution: {integrity: sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==} dependencies: - '@emotion/hash': 0.9.0 - '@emotion/memoize': 0.8.0 - '@emotion/unitless': 0.8.0 - '@emotion/utils': 1.2.0 + '@emotion/hash': 0.9.1 + '@emotion/memoize': 0.8.1 + '@emotion/unitless': 0.8.1 + '@emotion/utils': 1.2.1 csstype: 3.1.2 dev: false - /@emotion/sheet@1.2.1: - resolution: {integrity: sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA==} + /@emotion/sheet@1.2.2: + resolution: {integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==} dev: false - /@emotion/unitless@0.8.0: - resolution: {integrity: sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==} + /@emotion/unitless@0.8.1: + resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} dev: false - /@emotion/use-insertion-effect-with-fallbacks@1.0.0(react@18.2.0): - resolution: {integrity: sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==} + /@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.2.0): + resolution: {integrity: sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==} peerDependencies: react: '>=16.8.0' dependencies: react: 18.2.0 dev: false - /@emotion/utils@1.2.0: - resolution: {integrity: sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw==} + /@emotion/utils@1.2.1: + resolution: {integrity: sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==} dev: false - /@emotion/weak-memoize@0.3.0: - resolution: {integrity: sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==} + /@emotion/weak-memoize@0.3.1: + resolution: {integrity: sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==} dev: false /@esbuild/android-arm64@0.17.18: @@ -2885,28 +2905,28 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.39.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.40.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.39.0 - eslint-visitor-keys: 3.4.0 + eslint: 8.40.0 + eslint-visitor-keys: 3.4.1 dev: true - /@eslint-community/regexpp@4.5.0: - resolution: {integrity: sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==} + /@eslint-community/regexpp@4.5.1: + resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.0.2: - resolution: {integrity: sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==} + /@eslint/eslintrc@2.0.3: + resolution: {integrity: sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 - espree: 9.5.1 + espree: 9.5.2 globals: 13.20.0 ignore: 5.2.4 import-fresh: 3.3.0 @@ -2917,8 +2937,8 @@ packages: - supports-color dev: true - /@eslint/js@8.39.0: - resolution: {integrity: sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==} + /@eslint/js@8.40.0: + resolution: {integrity: sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -3245,8 +3265,8 @@ packages: resolution: {integrity: sha512-EvYTiXet5XqweYGClEmpu3BoxmsQ4hkj3QaYA6qEnigCWffTP3vNRwBReTdrwDwo7OoJ3wM8Uoe9Uk4n+d4hfg==} dev: false - /@floating-ui/dom@1.2.6: - resolution: {integrity: sha512-02vxFDuvuVPs22iJICacezYJyf7zwwOCWkPNkWNBr1U0Qt1cKFYzWvxts0AmqcOQGwt/3KJWcWIgtbUU38keyw==} + /@floating-ui/dom@1.2.7: + resolution: {integrity: sha512-DyqylONj1ZaBnzj+uBnVfzdjjCkFCL2aA9ESHLyUOGSqb03RpbLMImP1ekIQXYs4KLk9jAjJfZAU8hXfWSahEg==} dependencies: '@floating-ui/core': 1.2.6 dev: false @@ -3257,7 +3277,18 @@ packages: react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: - '@floating-ui/dom': 1.2.6 + '@floating-ui/dom': 1.2.7 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@floating-ui/react-dom@2.0.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Ke0oU3SeuABC2C4OFu2mSAwHIP5WUiV98O9YWoHV4Q5aT6E9k06DV0Khi5uYspR8xmmBk08t8ZDcz3TR3ARkEg==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@floating-ui/dom': 1.2.7 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -3272,20 +3303,20 @@ packages: aria-hidden: 1.2.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - tabbable: 6.1.1 + tabbable: 6.1.2 dev: false - /@floating-ui/react@0.23.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-OCc2ViQOBUKOGcE9NLAbpyqB+8Zz92IKIhxgz7XAkynKkVzcVSKtkWOcgyvO4SAzB2OybgRwk3WdzdzDRdh2QQ==} + /@floating-ui/react@0.24.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-/UxcKFV5WtD+CbInbosDmUwVpcKlTTo6sVllSWMYXiX/HHXWeMxbcUNIkilsj5EDlbKiw7nHQtHYHYQLQMsVdQ==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: - '@floating-ui/react-dom': 1.3.0(react-dom@18.2.0)(react@18.2.0) + '@floating-ui/react-dom': 2.0.0(react-dom@18.2.0)(react@18.2.0) aria-hidden: 1.2.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - tabbable: 6.1.1 + tabbable: 6.1.2 dev: false /@fortaine/fetch-event-source@3.0.6: @@ -3422,7 +3453,7 @@ packages: react: 16.14.0 react-dom: 16.14.0 dependencies: - '@types/react': 18.2.0 + '@types/react': 18.2.6 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -3439,14 +3470,14 @@ packages: resolution: {integrity: sha512-zUHrjNFuY/DOZCkOBJ6qItQIkcopHM/Zv/QOE0a4XNG3HDNahxTNu5fQYl8dIuKCpxCqRdMl5cEwl5zekFc7BA==} dependencies: '@lezer/highlight': 1.1.4 - '@lezer/lr': 1.3.3 + '@lezer/lr': 1.3.4 dev: false /@lezer/css@1.1.1: resolution: {integrity: sha512-mSjx+unLLapEqdOYDejnGBokB5+AiJKZVclmud0MKQOKx3DLJ5b5VTCstgDDknR6iIV4gVrN6euzsCnj0A2gQA==} dependencies: '@lezer/highlight': 1.1.4 - '@lezer/lr': 1.3.3 + '@lezer/lr': 1.3.4 dev: false /@lezer/highlight@1.1.4: @@ -3460,28 +3491,28 @@ packages: dependencies: '@lezer/common': 1.0.2 '@lezer/highlight': 1.1.4 - '@lezer/lr': 1.3.3 + '@lezer/lr': 1.3.4 dev: false /@lezer/java@1.0.3: resolution: {integrity: sha512-kKN17wmgP1cgHb8juR4pwVSPMKkDMzY/lAPbBsZ1fpXwbk2sg3N1kIrf0q+LefxgrANaQb/eNO7+m2QPruTFng==} dependencies: '@lezer/highlight': 1.1.4 - '@lezer/lr': 1.3.3 + '@lezer/lr': 1.3.4 dev: false - /@lezer/javascript@1.4.2: - resolution: {integrity: sha512-77qdAD4zanmImPiAu4ibrMUzRc79UHoccdPa+Ey5iwS891TAkhnMAodUe17T7zV7tnF7e9HXM0pfmjoGEhrppg==} + /@lezer/javascript@1.4.3: + resolution: {integrity: sha512-k7Eo9z9B1supZ5cCD4ilQv/RZVN30eUQL+gGbr6ybrEY3avBAL5MDiYi2aa23Aj0A79ry4rJRvPAwE2TM8bd+A==} dependencies: '@lezer/highlight': 1.1.4 - '@lezer/lr': 1.3.3 + '@lezer/lr': 1.3.4 dev: false /@lezer/json@1.0.0: resolution: {integrity: sha512-zbAuUY09RBzCoCA3lJ1+ypKw5WSNvLqGMtasdW6HvVOqZoCpPr8eWrsGnOVWGKGn8Rh21FnrKRVlJXrGAVUqRw==} dependencies: '@lezer/highlight': 1.1.4 - '@lezer/lr': 1.3.3 + '@lezer/lr': 1.3.4 dev: false /@lezer/lr@1.3.3: @@ -3490,6 +3521,12 @@ packages: '@lezer/common': 1.0.2 dev: false + /@lezer/lr@1.3.4: + resolution: {integrity: sha512-7o+e4og/QoC/6btozDPJqnzBhUaD1fMfmvnEKQO1wRRiTse1WxaJ3OMEXZJnkgT6HCcTVOctSoXK9jGJw2oe9g==} + dependencies: + '@lezer/common': 1.0.2 + dev: false + /@lezer/markdown@1.0.2: resolution: {integrity: sha512-8CY0OoZ6V5EzPjSPeJ4KLVbtXdLBd8V6sRCooN5kHnO28ytreEGTyrtU/zUwo/XLRzGr/e1g44KlzKi3yWGB5A==} dependencies: @@ -3501,108 +3538,108 @@ packages: resolution: {integrity: sha512-aqdCQJOXJ66De22vzdwnuC502hIaG9EnPK2rSi+ebXyUd+j7GAX1mRjWZOVOmf3GST1YUfUCu6WXDiEgDGOVwA==} dependencies: '@lezer/highlight': 1.1.4 - '@lezer/lr': 1.3.3 + '@lezer/lr': 1.3.4 dev: false - /@lezer/python@1.1.4: - resolution: {integrity: sha512-x82XgYxqqX0Yiw7uIemQJ3z2QyQme5BYpectkPfNg99OQrakqfwqVolqEVIrsj4QO9rVDLFZZ49J0Vbne7UbAA==} + /@lezer/python@1.1.5: + resolution: {integrity: sha512-h0DVr6IfrmKUbTc5PeetaC87IZYoHyn5JogsVYW5mRDpVRyEsvaLBMLyEN4Ufc2BKp1c9y2Pkr8ZNLxS8dTLsQ==} dependencies: '@lezer/highlight': 1.1.4 - '@lezer/lr': 1.3.3 + '@lezer/lr': 1.3.4 dev: false /@lezer/rust@1.0.0: resolution: {integrity: sha512-IpGAxIjNxYmX9ra6GfQTSPegdCAWNeq23WNmrsMMQI7YNSvKtYxO4TX5rgZUmbhEucWn0KTBMeDEPXg99YKtTA==} dependencies: '@lezer/highlight': 1.1.4 - '@lezer/lr': 1.3.3 + '@lezer/lr': 1.3.4 dev: false /@lezer/sass@1.0.1: resolution: {integrity: sha512-S/aYAzABzMqWLfKKqV89pCWME4yjZYC6xzD02l44wbmb0sHxmN9/8aE4GULrKFzFaGazHdXcGEbPZ4zzB6yqwQ==} dependencies: '@lezer/highlight': 1.1.4 - '@lezer/lr': 1.3.3 + '@lezer/lr': 1.3.4 dev: false /@lezer/xml@1.0.1: resolution: {integrity: sha512-jMDXrV953sDAUEMI25VNrI9dz94Ai96FfeglytFINhhwQ867HKlCE2jt3AwZTCT7M528WxdDWv/Ty8e9wizwmQ==} dependencies: '@lezer/highlight': 1.1.4 - '@lezer/lr': 1.3.3 + '@lezer/lr': 1.3.4 dev: false - /@lit-labs/ssr-dom-shim@1.1.0: - resolution: {integrity: sha512-92uQ5ARf7UXYrzaFcAX3T2rTvaS9Z1//ukV+DqjACM4c8s0ZBQd7ayJU5Dh2AFLD/Ayuyz4uMmxQec8q3U4Ong==} + /@lit-labs/ssr-dom-shim@1.1.1: + resolution: {integrity: sha512-kXOeFbfCm4fFf2A3WwVEeQj55tMZa8c8/f9AKHMobQMkzNUfUj+antR3fRPaZJawsa1aZiP/Da3ndpZrwEe4rQ==} dev: false /@lit/reactive-element@1.6.1: resolution: {integrity: sha512-va15kYZr7KZNNPZdxONGQzpUr+4sxVu7V/VG7a8mRfPPXUyhEYj5RzXCQmGrlP3tAh0L3HHm5AjBMFYRqlM9SA==} dependencies: - '@lit-labs/ssr-dom-shim': 1.1.0 + '@lit-labs/ssr-dom-shim': 1.1.1 dev: false - /@mantine/core@6.0.9(@emotion/react@11.10.8)(@mantine/hooks@6.0.9)(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-v0g59ajqFOcSlXO3bNpRaZg3VSX3hVAJ/MyaAvzdMYtTiN0ogaBJH3RXQscxr7Us2ega4psG1rW7ybUP7WrZKg==} + /@mantine/core@6.0.10(@emotion/react@11.11.0)(@mantine/hooks@6.0.10)(@types/react@18.2.6)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Q8HdRTBkQDs6LEtklpYm6efz2WaV6T5rvgjUOfXq0z44G/XYM+P1B1BSFnHvUDkeWYLcGkK6aPI5Uxc0GEN04w==} peerDependencies: - '@mantine/hooks': 6.0.9 + '@mantine/hooks': 6.0.10 react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: '@floating-ui/react': 0.19.2(react-dom@18.2.0)(react@18.2.0) - '@mantine/hooks': 6.0.9(react@18.2.0) - '@mantine/styles': 6.0.9(@emotion/react@11.10.8)(react-dom@18.2.0)(react@18.2.0) - '@mantine/utils': 6.0.9(react@18.2.0) + '@mantine/hooks': 6.0.10(react@18.2.0) + '@mantine/styles': 6.0.10(@emotion/react@11.11.0)(react-dom@18.2.0)(react@18.2.0) + '@mantine/utils': 6.0.10(react@18.2.0) '@radix-ui/react-scroll-area': 1.0.2(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@18.2.0)(react@18.2.0) - react-textarea-autosize: 8.3.4(@types/react@18.2.0)(react@18.2.0) + react-remove-scroll: 2.5.6(@types/react@18.2.6)(react@18.2.0) + react-textarea-autosize: 8.3.4(@types/react@18.2.6)(react@18.2.0) transitivePeerDependencies: - '@emotion/react' - '@types/react' dev: false - /@mantine/hooks@6.0.9(react@18.2.0): - resolution: {integrity: sha512-01FvXnXed0Hni4WvmtTs0HMulyd7sibEG52uS+oy4ziYumKb8eMMTnvs4Ov7meKAvtA9/pmW+Yif1pm2GB4bnw==} + /@mantine/hooks@6.0.10(react@18.2.0): + resolution: {integrity: sha512-rxH5/CxmUs1mUZAj27Fza4SH07HV1XyrL7L9wwhZdMLg+oDEaAs8BMz8lsOIHOCro9ZDh+Mm7QAbEW8HcvmYJg==} peerDependencies: react: '>=16.8.0' dependencies: react: 18.2.0 dev: false - /@mantine/notifications@6.0.9(@mantine/core@6.0.9)(@mantine/hooks@6.0.9)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-X0Nyv9Fe9/1wrjxkyGTCE5VlOfzCbQjVWJ9uCWshqGkDSs8HTaWWZ9FM8fUeIXtI/LVB65OwPBegKw4/POgZQQ==} + /@mantine/notifications@6.0.10(@mantine/core@6.0.10)(@mantine/hooks@6.0.10)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-TUFEZB1YcOCcsrTljF1lblTONClfj2RP1A4FkGOD2ZxWKe58AzEbXHf9cnptPCjwnZbILWkOYVSMe3yyNs5IXw==} peerDependencies: - '@mantine/core': 6.0.9 - '@mantine/hooks': 6.0.9 + '@mantine/core': 6.0.10 + '@mantine/hooks': 6.0.10 react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: - '@mantine/core': 6.0.9(@emotion/react@11.10.8)(@mantine/hooks@6.0.9)(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0) - '@mantine/hooks': 6.0.9(react@18.2.0) - '@mantine/utils': 6.0.9(react@18.2.0) + '@mantine/core': 6.0.10(@emotion/react@11.11.0)(@mantine/hooks@6.0.10)(@types/react@18.2.6)(react-dom@18.2.0)(react@18.2.0) + '@mantine/hooks': 6.0.10(react@18.2.0) + '@mantine/utils': 6.0.10(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-transition-group: 4.4.2(react-dom@18.2.0)(react@18.2.0) dev: false - /@mantine/styles@6.0.9(@emotion/react@11.10.8)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-jTtSicZalxw5fHD4p2c5RJdsb1DlBTKFwMmPWSTt5IgQ3ADucQtQWl2sVtVCpR/b5w9/Ihzgju84bPmOlAWh0g==} + /@mantine/styles@6.0.10(@emotion/react@11.11.0)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-TVyo4xNBO7PhP2jubu2OI1YK2DEULrVgdsP0+1wfwj/bhSTnTLYmh2aOb1FyTiFvFn1dfq4If428z/ZuGiLtdQ==} peerDependencies: '@emotion/react': '>=11.9.0' react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: - '@emotion/react': 11.10.8(@types/react@18.2.0)(react@18.2.0) + '@emotion/react': 11.11.0(@types/react@18.2.6)(react@18.2.0) clsx: 1.1.1 csstype: 3.0.9 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@mantine/utils@6.0.9(react@18.2.0): - resolution: {integrity: sha512-zEDZixO8dw2ZSNZiQ1g7S+Bq2q4E8ps6bvpyZsxpiXBdh3g2H0WOEdJdDpBTiTRPWotSlU1kaKN3tOplCRDQ2Q==} + /@mantine/utils@6.0.10(react@18.2.0): + resolution: {integrity: sha512-Lo4VUn3+/kqhdjSoPzUFbxXEjMxj5vS4pqRjKRGtJsTwHiMFNcm8u4cIESzMBAEsoaBrI1dGE4WttwOJhjUaSw==} peerDependencies: react: '>=16.8.0' dependencies: @@ -3628,12 +3665,11 @@ packages: npmlog: 5.0.1 rimraf: 3.0.2 semver: 7.5.0 - tar: 6.1.13 + tar: 6.1.14 transitivePeerDependencies: - encoding - supports-color dev: false - optional: true /@metamask/safe-event-emitter@2.0.0: resolution: {integrity: sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==} @@ -3651,24 +3687,24 @@ packages: - supports-color dev: false - /@monaco-editor/loader@1.3.3(monaco-editor@0.37.1): + /@monaco-editor/loader@1.3.3(monaco-editor@0.38.0): resolution: {integrity: sha512-6KKF4CTzcJiS8BJwtxtfyYt9shBiEv32ateQ9T4UVogwn4HM/uPo9iJd2Dmbkpz8CM6Y0PDUpjnZzCwC+eYo2Q==} peerDependencies: monaco-editor: '>= 0.21.0 < 1' dependencies: - monaco-editor: 0.37.1 + monaco-editor: 0.38.0 state-local: 1.0.7 dev: false - /@monaco-editor/react@4.5.0(monaco-editor@0.37.1)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-VJMkp5Fe1+w8pLEq8tZPHZKu8zDXQIA1FtiDTSNccg1D3wg1YIZaH2es2Qpvop1k62g3c/YySRb3bnGXu2XwYQ==} + /@monaco-editor/react@4.5.1(monaco-editor@0.38.0)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-NNDFdP+2HojtNhCkRfE6/D6ro6pBNihaOzMbGK84lNWzRu+CfBjwzGt4jmnqimLuqp5yE5viHS2vi+QOAnD5FQ==} peerDependencies: monaco-editor: '>= 0.25.0 < 1' react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@monaco-editor/loader': 1.3.3(monaco-editor@0.37.1) - monaco-editor: 0.37.1 + '@monaco-editor/loader': 1.3.3(monaco-editor@0.38.0) + monaco-editor: 0.38.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -3734,8 +3770,8 @@ packages: tslib: 2.5.0 dev: false - /@next/bundle-analyzer@13.3.1: - resolution: {integrity: sha512-Qkd0ENOczIyJlKjjN7ENwQ2S5B6wqrTnVlzfWqAImw38VNgaVqZRgaM9Ph8JM43E6iLPjsMOHh8EN/7FxHyQ/g==} + /@next/bundle-analyzer@13.4.1: + resolution: {integrity: sha512-wbSVjc1RM43vLuvMLZL2hSq6+76VgyVWqgpgk4AlJM//KjynVMezo+c6HI8tRzMI0p0txzDtSUA3na32fuY67A==} dependencies: webpack-bundle-analyzer: 4.7.0 transitivePeerDependencies: @@ -3743,81 +3779,81 @@ packages: - utf-8-validate dev: true - /@next/env@13.3.1: - resolution: {integrity: sha512-EDtCoedIZC7JlUQ3uaQpSc4aVmyhbLHmQVALg7pFfQgOTjgSnn7mKtA0DiCMkYvvsx6aFb5octGMtWrOtGXW9A==} + /@next/env@13.4.1: + resolution: {integrity: sha512-eD6WCBMFjLFooLM19SIhSkWBHtaFrZFfg2Cxnyl3vS3DAdFRfnx5TY2RxlkuKXdIRCC0ySbtK9JXXt8qLCqzZg==} - /@next/eslint-plugin-next@13.3.1: - resolution: {integrity: sha512-Hpd74UrYGF+bq9bBSRDXRsRfaWkPpcwjhvachy3sr/R/5fY6feC0T0s047pUthyqcaeNsqKOY1nUGQQJNm4WyA==} + /@next/eslint-plugin-next@13.4.1: + resolution: {integrity: sha512-tVPS/2FKlA3ANCRCYZVT5jdbUKasBU8LG6bYqcNhyORDFTlDYa4cAWQJjZ7msIgLwMQIbL8CAsxrOL8maa/4Lg==} dependencies: glob: 7.1.7 dev: true - /@next/swc-darwin-arm64@13.3.1: - resolution: {integrity: sha512-UXPtriEc/pBP8luSLSCZBcbzPeVv+SSjs9cH/KygTbhmACye8/OOXRZO13Z2Wq1G0gLmEAIHQAOuF+vafPd2lw==} + /@next/swc-darwin-arm64@13.4.1: + resolution: {integrity: sha512-eF8ARHtYfnoYtDa6xFHriUKA/Mfj/cCbmKb3NofeKhMccs65G6/loZ15a6wYCCx4rPAd6x4t1WmVYtri7EdeBg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] requiresBuild: true optional: true - /@next/swc-darwin-x64@13.3.1: - resolution: {integrity: sha512-lT36yYxosCfLtplFzJWgo0hrPu6/do8+msgM7oQkPeohDNdhjtjFUgOOwdSnPublLR6Mo2Ym4P/wl5OANuD2bw==} + /@next/swc-darwin-x64@13.4.1: + resolution: {integrity: sha512-7cmDgF9tGWTgn5Gw+vP17miJbH4wcraMHDCOHTYWkO/VeKT73dUWG23TNRLfgtCNSPgH4V5B4uLHoZTanx9bAw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] requiresBuild: true optional: true - /@next/swc-linux-arm64-gnu@13.3.1: - resolution: {integrity: sha512-wRb76nLWJhonH8s3kxC/1tFguEkeOPayIwe9mkaz1G/yeS3OrjeyKMJsb4+Kdg0zbTo53bNCOl59NNtDM7yyyw==} + /@next/swc-linux-arm64-gnu@13.4.1: + resolution: {integrity: sha512-qwJqmCri2ie8aTtE5gjTSr8S6O8B67KCYgVZhv9gKH44yvc/zXbAY8u23QGULsYOyh1islWE5sWfQNLOj9iryg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@next/swc-linux-arm64-musl@13.3.1: - resolution: {integrity: sha512-qz3BzjJRZ16Iq/jrp+pjiYOc0jTjHlfmxQmZk9x/+5uhRP6/eWQSTAPVJ33BMo6oK5O5N4644OgTAbzXzorecg==} + /@next/swc-linux-arm64-musl@13.4.1: + resolution: {integrity: sha512-qcC54tWNGDv/VVIFkazxhqH1Bnagjfs4enzELVRlUOoJPD2BGJTPI7z08pQPbbgxLtRiu8gl2mXvpB8WlOkMeA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@next/swc-linux-x64-gnu@13.3.1: - resolution: {integrity: sha512-6mgkLmwlyWlomQmpl21I3hxgqE5INoW4owTlcLpNsd1V4wP+J46BlI/5zV5KWWbzjfncIqzXoeGs5Eg+1GHODA==} + /@next/swc-linux-x64-gnu@13.4.1: + resolution: {integrity: sha512-9TeWFlpLsBosZ+tsm/rWBaMwt5It9tPH8m3nawZqFUUrZyGRfGcI67js774vtx0k3rL9qbyY6+3pw9BCVpaYUA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@next/swc-linux-x64-musl@13.3.1: - resolution: {integrity: sha512-uqm5sielhQmKJM+qayIhgZv1KlS5pqTdQ99b+Z7hMWryXS96qE0DftTmMZowBcUL6x7s2vSXyH5wPtO1ON7LBg==} + /@next/swc-linux-x64-musl@13.4.1: + resolution: {integrity: sha512-sNDGaWmSqTS4QRUzw61wl4mVPeSqNIr1OOjLlQTRuyInxMxtqImRqdvzDvFTlDfdeUMU/DZhWGYoHrXLlZXe6A==} engines: {node: '>= 10'} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@next/swc-win32-arm64-msvc@13.3.1: - resolution: {integrity: sha512-WomIiTj/v3LevltlibNQKmvrOymNRYL+a0dp5R73IwPWN5FvXWwSELN/kiNALig/+T3luc4qHNTyvMCp9L6U5Q==} + /@next/swc-win32-arm64-msvc@13.4.1: + resolution: {integrity: sha512-+CXZC7u1iXdLRudecoUYbhbsXpglYv8KFYsFxKBPn7kg+bk7eJo738wAA4jXIl8grTF2mPdmO93JOQym+BlYGA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] requiresBuild: true optional: true - /@next/swc-win32-ia32-msvc@13.3.1: - resolution: {integrity: sha512-M+PoH+0+q658wRUbs285RIaSTYnGBSTdweH/0CdzDgA6Q4rBM0sQs4DHmO3BPP0ltCO/vViIoyG7ks66XmCA5g==} + /@next/swc-win32-ia32-msvc@13.4.1: + resolution: {integrity: sha512-vIoXVVc7UYO68VwVMDKwJC2+HqAZQtCYiVlApyKEeIPIQpz2gpufzGxk1z3/gwrJt/kJ5CDZjlhYDCzd3hdz+g==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] requiresBuild: true optional: true - /@next/swc-win32-x64-msvc@13.3.1: - resolution: {integrity: sha512-Sl1F4Vp5Z1rNXWZYqJwMuWRRol4bqOB6+/d7KqkgQ4AcafKPN1PZmpkCoxv4UFHtFNIB7EotnuIhtXu3zScicQ==} + /@next/swc-win32-x64-msvc@13.4.1: + resolution: {integrity: sha512-n8V5ImLQZibKTu10UUdI3nIeTLkliEXe628qxqW9v8My3BAH2a7H0SaCqkV2OgqFnn8sG1wxKYw9/SNJ632kSA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -3836,144 +3872,6 @@ packages: resolution: {integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==} dev: false - /@node-rs/jieba-android-arm-eabi@1.7.0: - resolution: {integrity: sha512-XF4OYcZCyDiBK+jm1Zmt2o+xEO7K2K5OvUC3MTc9jd3Lwvy3EdHp8tpGvEp8PxfVFe2/JxNzX4OQQQP3Dhmk9A==} - engines: {node: '>= 10'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: false - optional: true - - /@node-rs/jieba-android-arm64@1.7.0: - resolution: {integrity: sha512-9oWwFVr/37T89WC+jjiI9A6u0zUJNTJl5ZC4CMxX45MVMokWI7bBXU7t7qBmMdFBzj+OFwDd3sm1fh4vl7NSWA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: false - optional: true - - /@node-rs/jieba-darwin-arm64@1.7.0: - resolution: {integrity: sha512-9gBuxJCNITNI/gU5l8eeVGQ9MAf0BV86lfeo9TeU61vJCy6sqyx26wFMLODQgLNdiMP+q/fZme/G0hfZUjfPVA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@node-rs/jieba-darwin-x64@1.7.0: - resolution: {integrity: sha512-FFUSMY4tl0Prpxa1SHy7Yzze2KfV/bZzccpO5nd+a8zCKbiX6gVkJ89FfxSAD2QrXUGkZvJYiPmu5nkZItqRZQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@node-rs/jieba-freebsd-x64@1.7.0: - resolution: {integrity: sha512-QFz2pz0Br+621QbKkgQPqTn90j1kcCD9jaI++qTLNHJGlWLRn6sFoAjb+jQEQEy9aE7VqfIV56eaVcCoU5VO2w==} - engines: {node: '>= 10'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true - - /@node-rs/jieba-linux-arm-gnueabihf@1.7.0: - resolution: {integrity: sha512-kHJxO2sd7gMKqI1YS5DjABEcRwRemaCtgbKSuUqEaHGmUz9nAaUF6FSY8U4rXwr7HXt+kQa4NgyYDjgz+Pscrw==} - engines: {node: '>= 10'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@node-rs/jieba-linux-arm64-gnu@1.7.0: - resolution: {integrity: sha512-3qoCV9pF6llPBGDMu7K8JdHjI10WPkrq6P2gpZESqekcE4DatV6DcU9FWR+QL7MK/7meoE3/Zhjm7OK+qBd8gg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@node-rs/jieba-linux-arm64-musl@1.7.0: - resolution: {integrity: sha512-xv6hvzOV7iTCq7mM8SWhC3zEk6CqmBwhOSlfbb3gvPkc4U1UA1hmvcrD7oO5Qn+U+nuswysGCdVU6Z5AypLDfg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@node-rs/jieba-linux-x64-gnu@1.7.0: - resolution: {integrity: sha512-NpelWidMSNLoFTw+ov3y5jhJZjapHwEnh0Fyfm/7mvqkdwzVyedqNj22etRGum+nsAosMotCUWUznIMAD075gQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@node-rs/jieba-linux-x64-musl@1.7.0: - resolution: {integrity: sha512-yG4F8sy+fW4RbhyKXmEMT/JGuQuKH0TGymCEGYgT0km2I60iys63jWf2VTzCtrx583wxN5XoHv5HN60nhtIBtw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@node-rs/jieba-win32-arm64-msvc@1.7.0: - resolution: {integrity: sha512-R6l/BSMs6R6BwpZS6DIDZuAEjUIPdAHgyi+xptP3mICjm6U+GMsvsRTeZkIJ7a/yzYUfqvz54VpQsfE5f0psBQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@node-rs/jieba-win32-ia32-msvc@1.7.0: - resolution: {integrity: sha512-FwibbuizEjzom02K2JM2T8tL0VlxW5xGDDy3L3dgx46xIGE85PwGYjgju+eDt4UODgxDsxGC4DUMMZf3XvCc7A==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@node-rs/jieba-win32-x64-msvc@1.7.0: - resolution: {integrity: sha512-pJv7nluB6azhsOWvJB86Dyfg/M7n9k49bs9Bwmsylz9uhdZX9QnEShDW934RdmnjPYQ5aPgsSFrY6NXP/aovUA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@node-rs/jieba@1.7.0: - resolution: {integrity: sha512-Hm1JIlejxkWe1FSFZRns/g1j5hZmp357n+0n2BluABA4KLZ8EraHfPmPRmVMW6vbdMZObTYIVu5aVrPnUfBOxg==} - engines: {node: '>= 10'} - requiresBuild: true - optionalDependencies: - '@node-rs/jieba-android-arm-eabi': 1.7.0 - '@node-rs/jieba-android-arm64': 1.7.0 - '@node-rs/jieba-darwin-arm64': 1.7.0 - '@node-rs/jieba-darwin-x64': 1.7.0 - '@node-rs/jieba-freebsd-x64': 1.7.0 - '@node-rs/jieba-linux-arm-gnueabihf': 1.7.0 - '@node-rs/jieba-linux-arm64-gnu': 1.7.0 - '@node-rs/jieba-linux-arm64-musl': 1.7.0 - '@node-rs/jieba-linux-x64-gnu': 1.7.0 - '@node-rs/jieba-linux-x64-musl': 1.7.0 - '@node-rs/jieba-win32-arm64-msvc': 1.7.0 - '@node-rs/jieba-win32-ia32-msvc': 1.7.0 - '@node-rs/jieba-win32-x64-msvc': 1.7.0 - dev: false - optional: true - /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -3996,15 +3894,15 @@ packages: resolution: {integrity: sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug==} dev: false - /@pkgr/utils@2.3.1: - resolution: {integrity: sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==} + /@pkgr/utils@2.4.0: + resolution: {integrity: sha512-2OCURAmRtdlL8iUDTypMrrxfwe8frXTeXaxGsVOaYtc/wrUyk8Z/0OBetM7cdlsy7ZFWlMX72VogKeh+A4Xcjw==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} dependencies: cross-spawn: 7.0.3 + fast-glob: 3.2.12 is-glob: 4.0.3 - open: 8.4.2 + open: 9.1.0 picocolors: 1.0.0 - tiny-glob: 0.2.9 tslib: 2.5.0 dev: true @@ -4013,7 +3911,7 @@ packages: engines: {node: '>=14'} hasBin: true dependencies: - '@types/node': 18.16.2 + '@types/node': 20.1.0 playwright-core: 1.33.0 optionalDependencies: fsevents: 2.3.2 @@ -4230,10 +4128,10 @@ packages: - utf-8-validate dev: false - /@safe-global/safe-apps-sdk@7.10.1: - resolution: {integrity: sha512-2imnqAbx9XrqT3psrhe/YVpj2yW840ngJIuqv0nTiWJLKcTCzM2LJ4MH7ir7H8Sp2wdG/BqNB3SvjUAks2qNjQ==} + /@safe-global/safe-apps-sdk@7.11.0: + resolution: {integrity: sha512-RDamzPM1Lhhiiz0O+Dn6FkFqIh47jmZX+HCV/BBnBBOSKfBJE//IGD3+02zMgojXHTikQAburdPes9qmH1SA1A==} dependencies: - '@safe-global/safe-gateway-typescript-sdk': 3.7.0 + '@safe-global/safe-gateway-typescript-sdk': 3.7.3 ethers: 5.7.2 transitivePeerDependencies: - bufferutil @@ -4244,7 +4142,7 @@ packages: /@safe-global/safe-apps-sdk@7.9.0: resolution: {integrity: sha512-S2EI+JL8ocSgE3uGNaDZCzKmwfhtxXZFDUP76vN0FeaY35itFMyi8F0Vhxu0XnZm3yLzJE3tp5px6GhuQFLU6w==} dependencies: - '@safe-global/safe-gateway-typescript-sdk': 3.7.0 + '@safe-global/safe-gateway-typescript-sdk': 3.7.3 ethers: 5.7.2 transitivePeerDependencies: - bufferutil @@ -4252,8 +4150,8 @@ packages: - utf-8-validate dev: false - /@safe-global/safe-gateway-typescript-sdk@3.7.0: - resolution: {integrity: sha512-3BvlUgp0oZ1Zkn7nG3wY1jvCEE4t530BjKcaa3r0qsf0whf/ez/0gmQwk7DTOGmVmvOfjj6HHikxnrUCCX+/3Q==} + /@safe-global/safe-gateway-typescript-sdk@3.7.3: + resolution: {integrity: sha512-O6JCgXNZWG0Vv8FnOEjKfcbsP0WxGvoPJk5ufqUrsyBlHup16It6oaLnn+25nXFLBZOHI1bz8429JlqAc2t2hg==} dependencies: cross-fetch: 3.1.5 transitivePeerDependencies: @@ -4418,8 +4316,8 @@ packages: string.prototype.matchall: 4.0.8 dev: true - /@swc/helpers@0.5.0: - resolution: {integrity: sha512-SjY/p4MmECVVEWspzSRpQEM3sjR17sP8PbGxELWrT+YZMBfiUyt1MRUNjMV23zohwlG2HYtCQOsCwsTHguXkyg==} + /@swc/helpers@0.5.1: + resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==} dependencies: tslib: 2.5.0 @@ -4430,30 +4328,20 @@ packages: remove-accents: 0.4.2 dev: false - /@tanstack/query-core@4.29.1: - resolution: {integrity: sha512-vkPewLEG8ua0efo3SsVT0BcBtkq5RZX8oPhDAyKL+k/rdOYSQTEocfGEXSaBwIwsXeOGBUpfKqI+UmHvNqdWXg==} - dev: false - /@tanstack/query-core@4.29.5: resolution: {integrity: sha512-xXIiyQ/4r9KfaJ3k6kejqcaqFXXBTzN2aOJ5H1J6aTJE9hl/nbgAdfF6oiIu0CD5xowejJEJ6bBg8TO7BN4NuQ==} dev: false - /@tanstack/query-persist-client-core@4.29.1: - resolution: {integrity: sha512-lC7YsXHdHygVCHDXJqwaLGoWOHSfX+YEhwRaSWMBcHrfsHyEFzAvluQJlDytVd6JFAe49IuLJlajMGBbyI00ZA==} - dependencies: - '@tanstack/query-core': 4.29.1 - dev: false - /@tanstack/query-persist-client-core@4.29.5: resolution: {integrity: sha512-IjLtEZiEUnzpcFVdHoZGqtjv2g0smLK5WOWk8hP/2ndlXe5kaSbtCKWO2WFbw7yWPYVMM2m9zyglZqg5kU1DMA==} dependencies: '@tanstack/query-core': 4.29.5 dev: false - /@tanstack/query-sync-storage-persister@4.29.1: - resolution: {integrity: sha512-rX0bPgqhkz71HEQIz47Z3IFxs2fg7dO9uoxkjwo50VljrhXMl6Yv77xCeKYL97fNX7zhuMkax8HEy953woJ/QA==} + /@tanstack/query-sync-storage-persister@4.29.5: + resolution: {integrity: sha512-A5K2owrQ1z/Ipndt/thv3vMXjRPOT02jwlXM51OV5IHg4FLQ9vlXvImYWlBoHmY1MMl91x9bqRgz0gX6hnr14g==} dependencies: - '@tanstack/query-persist-client-core': 4.29.1 + '@tanstack/query-persist-client-core': 4.29.5 dev: false /@tanstack/react-query-devtools@4.29.6(@tanstack/react-query@4.29.5)(react-dom@18.2.0)(react@18.2.0): @@ -4498,8 +4386,8 @@ packages: use-sync-external-store: 1.2.0(react@18.2.0) dev: false - /@textlint/ast-node-types@4.4.3: - resolution: {integrity: sha512-qi2jjgO6Tn3KNPGnm6B7p6QTEPvY95NFsIAaJuwbulur8iJUEenp1OnoUfiDaC/g2WPPEFkcfXpmnu8XEMFo2A==} + /@textlint/ast-node-types@13.3.2: + resolution: {integrity: sha512-d9WXBahsAgRDWcfUE7pQs8E9SNbF0nxrEaYE2g01tLgQ/dYdlOLngNPXi0Lk+C+yU58kvmFSdO6nicIAe3WIiw==} dev: false /@tootallnate/once@2.0.0: @@ -4530,7 +4418,7 @@ packages: /@types/bn.js@5.1.1: resolution: {integrity: sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==} dependencies: - '@types/node': 18.16.2 + '@types/node': 20.1.0 dev: false /@types/canvas-confetti@1.6.0: @@ -4544,7 +4432,7 @@ packages: /@types/connect@3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 18.16.2 + '@types/node': 20.1.0 dev: false /@types/cookie@0.5.1: @@ -4593,7 +4481,7 @@ packages: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 18.16.2 + '@types/node': 20.1.0 dev: true /@types/hast@2.3.4: @@ -4601,13 +4489,6 @@ packages: dependencies: '@types/unist': 2.0.6 - /@types/hoist-non-react-statics@3.3.1: - resolution: {integrity: sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==} - dependencies: - '@types/react': 18.2.0 - hoist-non-react-statics: 3.3.2 - dev: false - /@types/js-cookie@2.2.7: resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==} dev: false @@ -4662,12 +4543,8 @@ packages: resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} dev: false - /@types/node@18.16.2: - resolution: {integrity: sha512-GQW/JL/5Fz/0I8RpeBG9lKp0+aNcXEaVL71c0D2Q0QHDTFvlYKT7an0onCUXj85anv7b4/WesqdfchLc0jtsCg==} - - /@types/nprogress@0.2.0: - resolution: {integrity: sha512-1cYJrqq9GezNFPsWTZpFut/d4CjpZqA0vhqDUPFWYKF1oIyBz5qnoYMzR+0C/T96t3ebLAC1SSnwrVOm5/j74A==} - dev: false + /@types/node@20.1.0: + resolution: {integrity: sha512-O+z53uwx64xY7D6roOi4+jApDGFg0qn6WHcxe5QeqjMaTezBO/mxdfFXIVAVVyNWKx84OmPB3L8kbVYOTeN34A==} /@types/pangu@4.0.0: resolution: {integrity: sha512-da3b6P7QDH41VdfF2xRE8/KgL06nX3RawfiIMAvJ/sYzLWQCQtxc+B3qWVtrIlrNlSgV/e1oG2SZYUpN6gvmhQ==} @@ -4687,7 +4564,7 @@ packages: /@types/pbkdf2@3.1.0: resolution: {integrity: sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==} dependencies: - '@types/node': 18.16.2 + '@types/node': 20.1.0 dev: false /@types/prismjs@1.26.0: @@ -4696,26 +4573,20 @@ packages: /@types/prop-types@15.7.5: resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} - /@types/react-dom@18.2.1: - resolution: {integrity: sha512-8QZEV9+Kwy7tXFmjJrp3XUKQSs9LTnE0KnoUb0YCguWBiNW0Yfb2iBMYZ08WPg35IR6P3Z0s00B15SwZnO26+w==} + /@types/react-dom@18.2.4: + resolution: {integrity: sha512-G2mHoTMTL4yoydITgOGwWdWMVd8sNgyEP85xVmMKAPUBwQWm9wBPQUmvbeF4V3WBY1P7mmL4BkjQ0SqUpf1snw==} dependencies: - '@types/react': 18.2.0 + '@types/react': 18.2.6 dev: true /@types/react-infinite-scroller@1.2.3: resolution: {integrity: sha512-l60JckVoO+dxmKW2eEG7jbliEpITsTJvRPTe97GazjF5+ylagAuyYdXl8YY9DQsTP9QjhqGKZROknzgscGJy0A==} dependencies: - '@types/react': 18.2.0 + '@types/react': 18.2.6 dev: true - /@types/react-scroll@1.8.6: - resolution: {integrity: sha512-aMTiNgcmA7dwn1yjoHsiL78RfRnKCXzFyMbv63VrZTXloSfNePBdKtVObC3/My6irwDf0Oz0U4VjEC/vrv6/9w==} - dependencies: - '@types/react': 18.2.0 - dev: true - - /@types/react@18.2.0: - resolution: {integrity: sha512-0FLj93y5USLHdnhIhABk83rm8XEGA7kH3cr+YUlvxoUGp1xNt/DINUMvqPxLyOQMzLmZe8i4RTHbvb8MC7NmrA==} + /@types/react@18.2.6: + resolution: {integrity: sha512-wRZClXn//zxCFW+ye/D2qY65UsYP1Fpex2YXorHc8awoNamkMZSvBxwxdYVInsHOZZd2Ppq8isnSzJL5Mpf8OA==} dependencies: '@types/prop-types': 15.7.5 '@types/scheduler': 0.16.3 @@ -4728,7 +4599,7 @@ packages: /@types/resolve@1.17.1: resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} dependencies: - '@types/node': 18.16.2 + '@types/node': 20.1.0 dev: true /@types/retry@0.12.0: @@ -4741,7 +4612,7 @@ packages: /@types/secp256k1@4.0.3: resolution: {integrity: sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==} dependencies: - '@types/node': 18.16.2 + '@types/node': 20.1.0 dev: false /@types/serialize-javascript@5.0.2: @@ -4768,11 +4639,11 @@ packages: /@types/ws@7.4.7: resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} dependencies: - '@types/node': 18.16.2 + '@types/node': 20.1.0 dev: false - /@typescript-eslint/parser@5.59.1(eslint@8.39.0)(typescript@5.0.4): - resolution: {integrity: sha512-nzjFAN8WEu6yPRDizIFyzAfgK7nybPodMNFGNH0M9tei2gYnYszRDqVA0xlnRjkl7Hkx2vYrEdb6fP2a21cG1g==} + /@typescript-eslint/parser@5.59.2(eslint@8.40.0)(typescript@5.0.4): + resolution: {integrity: sha512-uq0sKyw6ao1iFOZZGk9F8Nro/8+gfB5ezl1cA06SrqbgJAt0SRoFhb9pXaHvkrxUpZaoLxt8KlovHNk8Gp6/HQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -4781,31 +4652,31 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.59.1 - '@typescript-eslint/types': 5.59.1 - '@typescript-eslint/typescript-estree': 5.59.1(typescript@5.0.4) + '@typescript-eslint/scope-manager': 5.59.2 + '@typescript-eslint/types': 5.59.2 + '@typescript-eslint/typescript-estree': 5.59.2(typescript@5.0.4) debug: 4.3.4 - eslint: 8.39.0 + eslint: 8.40.0 typescript: 5.0.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@5.59.1: - resolution: {integrity: sha512-mau0waO5frJctPuAzcxiNWqJR5Z8V0190FTSqRw1Q4Euop6+zTwHAf8YIXNwDOT29tyUDrQ65jSg9aTU/H0omA==} + /@typescript-eslint/scope-manager@5.59.2: + resolution: {integrity: sha512-dB1v7ROySwQWKqQ8rEWcdbTsFjh2G0vn8KUyvTXdPoyzSL6lLGkiXEV5CvpJsEe9xIdKV+8Zqb7wif2issoOFA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.59.1 - '@typescript-eslint/visitor-keys': 5.59.1 + '@typescript-eslint/types': 5.59.2 + '@typescript-eslint/visitor-keys': 5.59.2 dev: true - /@typescript-eslint/types@5.59.1: - resolution: {integrity: sha512-dg0ICB+RZwHlysIy/Dh1SP+gnXNzwd/KS0JprD3Lmgmdq+dJAJnUPe1gNG34p0U19HvRlGX733d/KqscrGC1Pg==} + /@typescript-eslint/types@5.59.2: + resolution: {integrity: sha512-LbJ/HqoVs2XTGq5shkiKaNTuVv5tTejdHgfdjqRUGdYhjW1crm/M7og2jhVskMt8/4wS3T1+PfFvL1K3wqYj4w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree@5.59.1(typescript@5.0.4): - resolution: {integrity: sha512-lYLBBOCsFltFy7XVqzX0Ju+Lh3WPIAWxYpmH/Q7ZoqzbscLiCW00LeYCdsUnnfnj29/s1WovXKh2gwCoinHNGA==} + /@typescript-eslint/typescript-estree@5.59.2(typescript@5.0.4): + resolution: {integrity: sha512-+j4SmbwVmZsQ9jEyBMgpuBD0rKwi9RxRpjX71Brr73RsYnEr3Lt5QZ624Bxphp8HUkSKfqGnPJp1kA5nl0Sh7Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -4813,8 +4684,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.59.1 - '@typescript-eslint/visitor-keys': 5.59.1 + '@typescript-eslint/types': 5.59.2 + '@typescript-eslint/visitor-keys': 5.59.2 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -4825,20 +4696,20 @@ packages: - supports-color dev: true - /@typescript-eslint/visitor-keys@5.59.1: - resolution: {integrity: sha512-6waEYwBTCWryx0VJmP7JaM4FpipLsFl9CvYf2foAE8Qh/Y0s+bxWysciwOs0LTBED4JCaNxTZ5rGadB14M6dwA==} + /@typescript-eslint/visitor-keys@5.59.2: + resolution: {integrity: sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.59.1 - eslint-visitor-keys: 3.4.0 + '@typescript-eslint/types': 5.59.2 + eslint-visitor-keys: 3.4.1 dev: true - /@uiw/codemirror-extensions-events@4.19.16(@codemirror/view@6.10.0): + /@uiw/codemirror-extensions-events@4.19.16(@codemirror/view@6.11.0): resolution: {integrity: sha512-XNoMDj0G/7GCFKOwcP1rMlKHCDKkNKVBr55YaQsznsLfiFo8XtP72/5dM/3xKLa0Mr37Z3BbmVAT/WgnR5s/8A==} peerDependencies: '@codemirror/view': '>=6.0.0' dependencies: - '@codemirror/view': 6.10.0 + '@codemirror/view': 6.11.0 dev: false /@urql/core@4.0.7(graphql@16.6.0): @@ -4850,8 +4721,8 @@ packages: - graphql dev: false - /@wagmi/chains@0.2.19(typescript@5.0.4): - resolution: {integrity: sha512-pyqGjOscXH/ZFUJni+VpKmVIENz/vsgq2sgqpNAmLQ6h7/DYrzRvptij+b62K5wONZMr+7X2J5mHM9s4tkEd6A==} + /@wagmi/chains@0.2.22(typescript@5.0.4): + resolution: {integrity: sha512-TdiOzJT6TO1JrztRNjTA5Quz+UmQlbvWFG8N41u9tta0boHA1JCAzGGvU6KuIcOmJfRJkKOUIt67wlbopCpVHg==} peerDependencies: typescript: '>=4.9.4' peerDependenciesMeta: @@ -4861,8 +4732,8 @@ packages: typescript: 5.0.4 dev: false - /@wagmi/connectors@0.3.16(@wagmi/core@0.10.10)(ethers@5.7.2)(react@18.2.0)(typescript@5.0.4)(zod@3.21.4): - resolution: {integrity: sha512-WtiFyvai6IWbV7DhujjmtJF0m+FFQCiIDrtHsNf1xio0gBfpnO8rT9PZQQf0uxuLn0nLxqXqYMMwzPipUNaIcg==} + /@wagmi/connectors@0.3.19(@wagmi/core@0.10.11)(ethers@5.7.2)(react@18.2.0)(typescript@5.0.4)(zod@3.21.4): + resolution: {integrity: sha512-1EnVdNjP5dAfWoW8dlUDZS+Lva8MYabWK+vwzSUBeSyJcAslXInoiHLb+cz9p8oAAqXspcPLRX3XPErYav23gA==} peerDependencies: '@wagmi/core': '>=0.9.x' ethers: '>=5.5.1 <6' @@ -4876,11 +4747,11 @@ packages: '@coinbase/wallet-sdk': 3.6.6 '@ledgerhq/connect-kit-loader': 1.0.2 '@safe-global/safe-apps-provider': 0.15.2 - '@safe-global/safe-apps-sdk': 7.10.1 - '@wagmi/core': 0.10.10(ethers@5.7.2)(immer@10.0.1)(react@18.2.0)(typescript@5.0.4)(zod@3.21.4) - '@walletconnect/ethereum-provider': 2.7.0(@web3modal/standalone@2.3.5) + '@safe-global/safe-apps-sdk': 7.11.0 + '@wagmi/core': 0.10.11(ethers@5.7.2)(immer@10.0.1)(react@18.2.0)(typescript@5.0.4)(zod@3.21.4) + '@walletconnect/ethereum-provider': 2.7.2(@web3modal/standalone@2.3.7) '@walletconnect/legacy-provider': 2.0.0 - '@web3modal/standalone': 2.3.5(react@18.2.0) + '@web3modal/standalone': 2.3.7(react@18.2.0) abitype: 0.3.0(typescript@5.0.4)(zod@3.21.4) ethers: 5.7.2 eventemitter3: 4.0.7 @@ -4897,8 +4768,8 @@ packages: - zod dev: false - /@wagmi/core@0.10.10(ethers@5.7.2)(immer@10.0.1)(react@18.2.0)(typescript@5.0.4)(zod@3.21.4): - resolution: {integrity: sha512-oghQIASk+QfrRku2m36NJTZnj5gpJNqfID5G3kZlBReWr01iOFbGfTVcS6Pcu2X3rsR2lmky8Tu5DWLXdKeGZg==} + /@wagmi/core@0.10.11(ethers@5.7.2)(immer@10.0.1)(react@18.2.0)(typescript@5.0.4)(zod@3.21.4): + resolution: {integrity: sha512-WOmG2RG65U6i+p09/aFztFSLPCeC+CYnkPh+OXrxQ8Q3m829983sH7xUTRbFAl561lRevUHmB+XS/na+Oj2bYQ==} peerDependencies: ethers: '>=5.5.1 <6' typescript: '>=4.9.4' @@ -4906,13 +4777,13 @@ packages: typescript: optional: true dependencies: - '@wagmi/chains': 0.2.19(typescript@5.0.4) - '@wagmi/connectors': 0.3.16(@wagmi/core@0.10.10)(ethers@5.7.2)(react@18.2.0)(typescript@5.0.4)(zod@3.21.4) + '@wagmi/chains': 0.2.22(typescript@5.0.4) + '@wagmi/connectors': 0.3.19(@wagmi/core@0.10.11)(ethers@5.7.2)(react@18.2.0)(typescript@5.0.4)(zod@3.21.4) abitype: 0.3.0(typescript@5.0.4)(zod@3.21.4) ethers: 5.7.2 eventemitter3: 4.0.7 typescript: 5.0.4 - zustand: 4.3.7(immer@10.0.1)(react@18.2.0) + zustand: 4.3.8(immer@10.0.1)(react@18.2.0) transitivePeerDependencies: - '@react-native-async-storage/async-storage' - bufferutil @@ -4926,8 +4797,8 @@ packages: - zod dev: false - /@walletconnect/core@2.7.0: - resolution: {integrity: sha512-xUeFPpElybgn1a+lknqtHleei4VyuV/4qWgB1nP8qQUAO6a5pNsioODrnB2VAPdUHJYBdx2dCt2maRk6g53IPQ==} + /@walletconnect/core@2.7.2: + resolution: {integrity: sha512-gInSwh3uLpTEkDGArfOFoOVgiXW+zkZJpGqfARVi5fhSxsnL1jYNpqO2k8KAXUPfB4MIzLyaGruiaywncLAczA==} dependencies: '@walletconnect/heartbeat': 1.2.1 '@walletconnect/jsonrpc-provider': 1.0.12 @@ -4939,8 +4810,8 @@ packages: '@walletconnect/relay-auth': 1.0.4 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.7.0 - '@walletconnect/utils': 2.7.0 + '@walletconnect/types': 2.7.2 + '@walletconnect/utils': 2.7.2 events: 3.3.0 lodash.isequal: 4.5.0 uint8arrays: 3.1.1 @@ -4976,8 +4847,8 @@ packages: tslib: 1.14.1 dev: false - /@walletconnect/ethereum-provider@2.7.0(@web3modal/standalone@2.3.5): - resolution: {integrity: sha512-6TwQ05zi6DP1TP1XNgSvLbmCmLf/sz7kLTfMaVk45YYHNgYTTBlXqkyjUpQZI9lpq+uXLBbHn/jx2OGhOPUP0Q==} + /@walletconnect/ethereum-provider@2.7.2(@web3modal/standalone@2.3.7): + resolution: {integrity: sha512-bvmutLrKKLlQ1WxKCvvX5p5YVox1D1f3Enp6hzAiZf4taN+n/M5rmwfAcLgLhp4cTAUDhl3zgtZErzDyJnvGvQ==} peerDependencies: '@web3modal/standalone': '>=2' peerDependenciesMeta: @@ -4988,11 +4859,11 @@ packages: '@walletconnect/jsonrpc-provider': 1.0.12 '@walletconnect/jsonrpc-types': 1.0.2 '@walletconnect/jsonrpc-utils': 1.0.7 - '@walletconnect/sign-client': 2.7.0 - '@walletconnect/types': 2.7.0 - '@walletconnect/universal-provider': 2.7.0 - '@walletconnect/utils': 2.7.0 - '@web3modal/standalone': 2.3.5(react@18.2.0) + '@walletconnect/sign-client': 2.7.2 + '@walletconnect/types': 2.7.2 + '@walletconnect/universal-provider': 2.7.2 + '@walletconnect/utils': 2.7.2 + '@web3modal/standalone': 2.3.7(react@18.2.0) events: 3.3.0 transitivePeerDependencies: - '@react-native-async-storage/async-storage' @@ -5177,17 +5048,17 @@ packages: tslib: 1.14.1 dev: false - /@walletconnect/sign-client@2.7.0: - resolution: {integrity: sha512-K99xa6GSFS04U+140yrIEi/VJJJ0Q1ov4jCaiqa9euILDKxlBsM7m5GR+9sq6oYyj18SluJY4CJTdeOXUJlarA==} + /@walletconnect/sign-client@2.7.2: + resolution: {integrity: sha512-JOYPmrgR4YG4M2comNcXaa8cLIws0ZJj/SCpF0XJzRZP2+OXWouK19UaI32ROQrcwNodBNeYFRfT5hSM5xjfKg==} dependencies: - '@walletconnect/core': 2.7.0 + '@walletconnect/core': 2.7.2 '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.1 '@walletconnect/jsonrpc-utils': 1.0.7 '@walletconnect/logger': 2.0.1 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.7.0 - '@walletconnect/utils': 2.7.0 + '@walletconnect/types': 2.7.2 + '@walletconnect/utils': 2.7.2 events: 3.3.0 transitivePeerDependencies: - '@react-native-async-storage/async-storage' @@ -5202,8 +5073,8 @@ packages: tslib: 1.14.1 dev: false - /@walletconnect/types@2.7.0: - resolution: {integrity: sha512-aMUDUtO79WSBtC/bDetE6aFwdgwJr0tJ8nC8gnAl5ELsrjygEKCn6M8Q+v6nP9svG9yf5Rds4cImxCT6BWwTyw==} + /@walletconnect/types@2.7.2: + resolution: {integrity: sha512-1O2UefakZpT0ErRfEAXY7Ls3qdUrKDky/DsK088xR6klyfkQOx+aSVH0fJYLhmnqPTuvp3lrqNbsDc0s6/6nvg==} dependencies: '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.1 @@ -5216,17 +5087,17 @@ packages: - lokijs dev: false - /@walletconnect/universal-provider@2.7.0: - resolution: {integrity: sha512-aAIudO3ZlKD16X36VnXChpxBB6/JLK1SCJBfidk7E0GE2S4xr1xW5jXGSGS4Z+wIkNZXK0n7ULSK3PZ7mPBdog==} + /@walletconnect/universal-provider@2.7.2: + resolution: {integrity: sha512-5glu7vCmq3SFUYgniICf7CUZMwrd6FNS/qnCjrnfgW8T55Opms9YkhRpWTJFHpBdNRWF7n6z/Kss2J8olKTxKw==} dependencies: '@walletconnect/jsonrpc-http-connection': 1.0.6 '@walletconnect/jsonrpc-provider': 1.0.12 '@walletconnect/jsonrpc-types': 1.0.2 '@walletconnect/jsonrpc-utils': 1.0.7 '@walletconnect/logger': 2.0.1 - '@walletconnect/sign-client': 2.7.0 - '@walletconnect/types': 2.7.0 - '@walletconnect/utils': 2.7.0 + '@walletconnect/sign-client': 2.7.2 + '@walletconnect/types': 2.7.2 + '@walletconnect/utils': 2.7.2 eip1193-provider: 1.0.1 events: 3.3.0 transitivePeerDependencies: @@ -5238,8 +5109,8 @@ packages: - utf-8-validate dev: false - /@walletconnect/utils@2.7.0: - resolution: {integrity: sha512-k32jrQeyJsNZPdmtmg85Y3QgaS5YfzYSPrAxRC2uUD1ts7rrI6P5GG2iXNs3AvWKOuCgsp/PqU8s7AC7CRUscw==} + /@walletconnect/utils@2.7.2: + resolution: {integrity: sha512-b2lU/JoWqwCOLMudPSRTt3pliBnv6qQHCBWiMBYi1vL14AW3usO5QmK1wF90AVwpdPJ7wFZ6MgHymeWWfhYnGQ==} dependencies: '@stablelib/chacha20poly1305': 1.0.1 '@stablelib/hkdf': 1.0.1 @@ -5250,11 +5121,11 @@ packages: '@walletconnect/relay-api': 1.0.9 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.7.0 + '@walletconnect/types': 2.7.2 '@walletconnect/window-getters': 1.0.1 '@walletconnect/window-metadata': 1.0.1 detect-browser: 5.3.0 - query-string: 7.1.1 + query-string: 7.1.3 uint8arrays: 3.1.1 transitivePeerDependencies: - '@react-native-async-storage/async-storage' @@ -5274,8 +5145,8 @@ packages: tslib: 1.14.1 dev: false - /@web3modal/core@2.3.5(react@18.2.0): - resolution: {integrity: sha512-lLCClcy6RhnGN2/0gQrUDhcxb9en7Q+2FbRK3i1hgHNux5E/jl18ok82RLqtHIgy02bsQjs0nb4eBCrsZCXZBQ==} + /@web3modal/core@2.3.7(react@18.2.0): + resolution: {integrity: sha512-ggl9+tkAzz43npj97iTj6p4oQYaklxADQyCKAX7AnMfglZg5bRseMDGnfmpvnjlDn8TI+DGGO6da3ITmYRIDYQ==} dependencies: buffer: 6.0.3 valtio: 1.10.4(react@18.2.0) @@ -5283,22 +5154,22 @@ packages: - react dev: false - /@web3modal/standalone@2.3.5(react@18.2.0): - resolution: {integrity: sha512-7zUqvVHDq6YHybRhiK9PMtBUXqB+j0+gvD2rfgegfnF7apdORHdZDY5sL9FdzM8RhmM5hvE1IlxLqqfIR8brFg==} + /@web3modal/standalone@2.3.7(react@18.2.0): + resolution: {integrity: sha512-zgavWcimRVXnLdup2WQ0fFEnBnH+Wwn+k1/XzhwVpdJ//mrExWNYQaXt139RijxGUcux68ExRCyMqm1jkXTq3g==} dependencies: - '@web3modal/core': 2.3.5(react@18.2.0) - '@web3modal/ui': 2.3.5(react@18.2.0) + '@web3modal/core': 2.3.7(react@18.2.0) + '@web3modal/ui': 2.3.7(react@18.2.0) transitivePeerDependencies: - react dev: false - /@web3modal/ui@2.3.5(react@18.2.0): - resolution: {integrity: sha512-UB+qlu9syIwiO1IylL7u9A6mdeV3TaA+YG1h4F0R3h4Olsjs1xpb5y+l0PCVscYeM0GchNMGspVcQdV6OOOFFg==} + /@web3modal/ui@2.3.7(react@18.2.0): + resolution: {integrity: sha512-mNDXY4ElcvXXixKHZTLcEjKC9zs3O8BD1EtaC8cKIy+RKFyHMpLB1DOQmz77tn91jNjOkrvEryqUwCbsJ7hjfA==} dependencies: - '@web3modal/core': 2.3.5(react@18.2.0) - lit: 2.7.2 + '@web3modal/core': 2.3.7(react@18.2.0) + lit: 2.7.3 motion: 10.15.5 - qrcode: 1.5.1 + qrcode: 1.5.3 transitivePeerDependencies: - react dev: false @@ -5432,7 +5303,6 @@ packages: /abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} dev: false - optional: true /abitype@0.3.0(typescript@5.0.4)(zod@3.21.4): resolution: {integrity: sha512-0YokyAV4hKMcy97Pl+6QgZBlBdZJN2llslOs7kiFY+cu7kMlVXDBpxMExfv0krzBCQt2t7hNovpQ3y/zvEm18A==} @@ -5448,13 +5318,6 @@ packages: zod: 3.21.4 dev: false - /acorn-globals@7.0.1: - resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} - dependencies: - acorn: 8.8.2 - acorn-walk: 8.2.0 - dev: false - /acorn-import-assertions@1.8.0(acorn@8.8.2): resolution: {integrity: sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==} peerDependencies: @@ -5474,11 +5337,13 @@ packages: /acorn-walk@8.2.0: resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} engines: {node: '>=0.4.0'} + dev: true /acorn@8.8.2: resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} engines: {node: '>=0.4.0'} hasBin: true + dev: true /add-zero@1.0.0: resolution: {integrity: sha512-WpPiUgy7h9Kd7NY0aTuhfx7vjub3XYbZCq1W2e/LMvUsEmYK/hz8xgFDmd0GnKpk44HXFwIFu1hEOivc+MzJ0Q==} @@ -5524,13 +5389,13 @@ packages: resolution: {integrity: sha512-V7uUvAwnimu6eh/PED4mCDjE7tokeZQLKlxg9lCTMPhN+NjsSbtdacByVlR1oluXQzD3MOw55wylDmQo4+S9ZQ==} dev: false - /ahooks@3.7.6(react@18.2.0): - resolution: {integrity: sha512-p+2j4H/BI9vqXR0fZI7S/q6fUPxPklQnHqvU7zAVBljMFNSFeYRWB2iHHbjpXGOwUTOBYCh2OuvIHyJYj6Lpag==} + /ahooks@3.7.7(react@18.2.0): + resolution: {integrity: sha512-5e5WlPq81Y84UnTLOKIQeq2cJw4aa7yj8fR2Nb/oMmXPrWMjIMCbPS1o+fpxSfCaNA3AzOnnMc8AehWRZltkJQ==} engines: {node: '>=8.0.0'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': 7.21.0 + '@babel/runtime': 7.21.5 '@types/js-cookie': 2.2.7 ahooks-v3-count: 1.0.0 dayjs: 1.11.7 @@ -5617,6 +5482,11 @@ packages: dependencies: color-convert: 2.0.1 + /ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: false + /ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} @@ -5646,7 +5516,6 @@ packages: /aproba@2.0.0: resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} dev: false - optional: true /are-passive-events-supported@1.1.1: resolution: {integrity: sha512-5wnvlvB/dTbfrCvJ027Y4L4gW/6Mwoy1uFSavney0YO++GU+0e/flnjiBBwH+1kh7xNCgCOGvmJC3s32joYbww==} @@ -5659,7 +5528,6 @@ packages: delegates: 1.0.0 readable-stream: 3.6.2 dev: false - optional: true /arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} @@ -5677,7 +5545,7 @@ packages: /aria-query@5.1.3: resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} dependencies: - deep-equal: 2.2.0 + deep-equal: 2.2.1 dev: true /array-buffer-byte-length@1.0.0: @@ -5859,46 +5727,37 @@ packages: /axobject-query@3.1.1: resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==} dependencies: - deep-equal: 2.2.0 + deep-equal: 2.2.1 dev: true - /babel-loader@8.3.0(@babel/core@7.21.5)(webpack@5.81.0): + /babel-loader@8.3.0(@babel/core@7.21.8)(webpack@5.82.0): resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==} engines: {node: '>= 8.9'} peerDependencies: '@babel/core': ^7.0.0 webpack: '>=2' dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 find-cache-dir: 3.3.2 loader-utils: 2.0.4 make-dir: 3.1.0 schema-utils: 2.7.1 - webpack: 5.81.0(esbuild@0.17.18) + webpack: 5.82.0(esbuild@0.17.18) dev: true - /babel-loader@9.1.2(@babel/core@7.21.5)(webpack@5.81.0): + /babel-loader@9.1.2(@babel/core@7.21.8)(webpack@5.82.0): resolution: {integrity: sha512-mN14niXW43tddohGl8HPu5yfQq70iUThvFL/4QzESA7GcZoC0eVOhvWdQ8+3UlSjaDE9MVtsW9mxDY07W7VpVA==} engines: {node: '>= 14.15.0'} peerDependencies: '@babel/core': ^7.12.0 webpack: '>=5' dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 find-cache-dir: 3.3.2 schema-utils: 4.0.1 - webpack: 5.81.0(esbuild@0.17.18) + webpack: 5.82.0(esbuild@0.17.18) dev: true - /babel-plugin-macros@2.8.0: - resolution: {integrity: sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==} - dependencies: - '@babel/runtime': 7.21.5 - cosmiconfig: 6.0.0 - resolve: 1.22.2 - dev: false - optional: true - /babel-plugin-macros@3.1.0: resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} engines: {node: '>=10', npm: '>=6'} @@ -5944,16 +5803,6 @@ packages: - supports-color dev: true - /babel-plugin-preval@4.0.0: - resolution: {integrity: sha512-fZI/4cYneinlj2k/FsXw0/lTWSC5KKoepUueS1g25Gb5vx3GrRyaVwxWCshYqx11GEU4mZnbbFhee8vpquFS2w==} - engines: {node: '>=8', npm: '>=6'} - dependencies: - '@babel/runtime': 7.21.5 - babel-plugin-macros: 2.8.0 - require-from-string: 2.0.2 - dev: false - optional: true - /bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} dev: false @@ -5979,6 +5828,11 @@ packages: resolution: {integrity: sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==} dev: false + /big-integer@1.6.51: + resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} + engines: {node: '>=0.6'} + dev: true + /big.js@5.2.2: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} dev: true @@ -6045,10 +5899,17 @@ packages: text-encoding-utf-8: 1.0.2 dev: false - /boundary@1.0.1: - resolution: {integrity: sha512-AaLhxHwYVh55iOTJncV3DE5o7RakEUSSj64XXEWRTiIhlp7aDI8qR0vY/k8Uw0Z234VjZi/iG/WxfrvqYPUCww==} + /boundary@2.0.0: + resolution: {integrity: sha512-rJKn5ooC9u8q13IMCrW0RSp31pxBCHE3y9V/tp3TdWSLf8Em3p6Di4NBpfzbJge9YjjFEsD0RtFEjtvHL5VyEA==} dev: false + /bplist-parser@0.2.0: + resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} + engines: {node: '>= 5.10.0'} + dependencies: + big-integer: 1.6.51 + dev: true + /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -6112,6 +5973,7 @@ packages: /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true /buffer-xor@1.0.3: resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==} @@ -6144,6 +6006,13 @@ packages: engines: {node: '>=6'} dev: true + /bundle-name@3.0.0: + resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} + engines: {node: '>=12'} + dependencies: + run-applescript: 5.0.0 + dev: true + /busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} @@ -6172,13 +6041,26 @@ packages: /caniuse-lite@1.0.30001480: resolution: {integrity: sha512-q7cpoPPvZYgtyC4VaBSN0Bt+PJ4c4EYRf0DrduInOz2SkFpHD5p3LnvEpqBp7UnJn+8x1Ogl1s38saUxe+ihQQ==} - /caniuse-lite@1.0.30001481: - resolution: {integrity: sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ==} + /caniuse-lite@1.0.30001485: + resolution: {integrity: sha512-8aUpZ7sjhlOyiNsg+pgcrTTPUXKh+rg544QYHSvQErljVEKJzvkYkCR/hUFeeVoEfTToUtY9cUKNRC7+c45YkA==} /canvas-confetti@1.6.0: resolution: {integrity: sha512-ej+w/m8Jzpv9Z7W7uJZer14Ke8P2ogsjg4ZMGIuq4iqUOqY2Jq8BNW42iGmNfRwREaaEfFIczLuZZiEVSYNHAA==} dev: false + /canvas@2.11.2: + resolution: {integrity: sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==} + engines: {node: '>=6'} + requiresBuild: true + dependencies: + '@mapbox/node-pre-gyp': 1.0.10 + nan: 2.17.0 + simple-get: 3.1.1 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + /ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} dev: false @@ -6246,7 +6128,6 @@ packages: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} dev: false - optional: true /chroma-js@2.4.2: resolution: {integrity: sha512-U9eDw6+wt7V8z5NncY2jJfZa+hUH8XEj8FQHgFJTrUFnJfXYf4Ml4adI2vXZOjqRDpFWtYVWypDfZwnJ+HIR4A==} @@ -6286,14 +6167,14 @@ packages: engines: {node: '>=6'} dev: true - /clean-webpack-plugin@4.0.0(webpack@5.81.0): + /clean-webpack-plugin@4.0.0(webpack@5.82.0): resolution: {integrity: sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w==} engines: {node: '>=10.0.0'} peerDependencies: webpack: '>=4.0.0 <6.0.0' dependencies: del: 4.1.1 - webpack: 5.81.0(esbuild@0.17.18) + webpack: 5.82.0(esbuild@0.17.18) dev: true /clear-module@4.1.2: @@ -6381,7 +6262,6 @@ packages: resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} hasBin: true dev: false - optional: true /color@4.2.3: resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} @@ -6406,13 +6286,6 @@ packages: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} dev: false - /commander@1.1.1: - resolution: {integrity: sha512-71Rod2AhcH3JhkBikVpNd0pA+fWsmAaVoti6OR38T76chA7vE3pSerS0Jor4wDw+tOueD2zLVvFOw5H0Rcj7rA==} - engines: {node: '>= 0.6.x'} - dependencies: - keypress: 0.1.0 - dev: false - /commander@10.0.1: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} @@ -6457,16 +6330,6 @@ packages: /concat-map@0.0.1: resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} - /concat-stream@2.0.0: - resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} - engines: {'0': node >= 6.0} - dependencies: - buffer-from: 1.1.2 - inherits: 2.0.4 - readable-stream: 3.6.2 - typedarray: 0.0.6 - dev: false - /configstore@5.0.1: resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} engines: {node: '>=8'} @@ -6482,7 +6345,6 @@ packages: /console-control-strings@1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} dev: false - optional: true /convert-source-map@1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} @@ -6506,11 +6368,6 @@ packages: browserslist: 4.21.5 dev: true - /core-js@3.30.1: - resolution: {integrity: sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==} - requiresBuild: true - dev: false - /core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: true @@ -6527,18 +6384,6 @@ packages: layout-base: 2.0.1 dev: false - /cosmiconfig@6.0.0: - resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} - engines: {node: '>=8'} - dependencies: - '@types/parse-json': 4.0.0 - import-fresh: 3.3.0 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 - dev: false - optional: true - /cosmiconfig@7.1.0: resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} engines: {node: '>=10'} @@ -7115,6 +6960,13 @@ packages: engines: {node: '>=0.10'} dev: false + /decompress-response@4.2.1: + resolution: {integrity: sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==} + engines: {node: '>=8'} + dependencies: + mimic-response: 2.1.0 + dev: false + /decompress-response@6.0.0: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} engines: {node: '>=10'} @@ -7122,9 +6974,10 @@ packages: mimic-response: 3.1.0 dev: false - /deep-equal@2.2.0: - resolution: {integrity: sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==} + /deep-equal@2.2.1: + resolution: {integrity: sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ==} dependencies: + array-buffer-byte-length: 1.0.0 call-bind: 1.0.2 es-get-iterator: 1.1.3 get-intrinsic: 1.2.0 @@ -7151,15 +7004,34 @@ packages: /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true /deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} dev: true - /define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} + /default-browser-id@3.0.0: + resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} + engines: {node: '>=12'} + dependencies: + bplist-parser: 0.2.0 + untildify: 4.0.0 + dev: true + + /default-browser@4.0.0: + resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} + engines: {node: '>=14.16'} + dependencies: + bundle-name: 3.0.0 + default-browser-id: 3.0.0 + execa: 7.1.1 + titleize: 3.0.0 + dev: true + + /define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} dev: true /define-properties@1.2.0: @@ -7202,7 +7074,6 @@ packages: /delegates@1.0.0: resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} dev: false - optional: true /denque@2.1.0: resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} @@ -7291,8 +7162,8 @@ packages: resolution: {integrity: sha512-jggCCd+8Iqp4Tsz0nIvpcb22InKEBrGz5dw3EQJMs8HPJDsKbFIO3STYtAvCfDx26Muevn1MHVI0XxjgFfmiSA==} dev: false - /dompurify@3.0.2: - resolution: {integrity: sha512-B8c6JdiEpxAKnd8Dm++QQxJL4lfuc757scZtcapj6qjTjrQzyq5iAyznLKVvK+77eYNiFblHBlt7MM0fOeqoKw==} + /dompurify@3.0.3: + resolution: {integrity: sha512-axQ9zieHLnAnHh0sfAamKYiqXMJAVwu+LM/alQ7WDagoWessyWvMSFyW65CqF3owufNu8HBcE4cM2Vflu7YWcQ==} dev: false /dot-prop@5.3.0: @@ -7593,21 +7464,8 @@ packages: engines: {node: '>=12'} dev: false - /escodegen@2.0.0: - resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==} - engines: {node: '>=6.0'} - hasBin: true - dependencies: - esprima: 4.0.1 - estraverse: 5.3.0 - esutils: 2.0.3 - optionator: 0.8.3 - optionalDependencies: - source-map: 0.6.1 - dev: false - - /eslint-config-next@13.3.1(eslint@8.39.0)(typescript@5.0.4): - resolution: {integrity: sha512-DieA5djybeE3Q0IqnDXihmhgRSp44x1ywWBBpVRA9pSx+m5Icj8hFclx7ffXlAvb9MMLN6cgj/hqJ4lka/QmvA==} + /eslint-config-next@13.4.1(eslint@8.40.0)(typescript@5.0.4): + resolution: {integrity: sha512-ajuxjCkW1hvirr0EQZb3/B/bFH52Z7CT89uCtTcICFL9l30i5c8hN4p0LXvTjdOXNPV5fEDcxBgGHgXdzTj1/A==} peerDependencies: eslint: ^7.23.0 || ^8.0.0 typescript: '>=3.3.1' @@ -7615,16 +7473,16 @@ packages: typescript: optional: true dependencies: - '@next/eslint-plugin-next': 13.3.1 + '@next/eslint-plugin-next': 13.4.1 '@rushstack/eslint-patch': 1.2.0 - '@typescript-eslint/parser': 5.59.1(eslint@8.39.0)(typescript@5.0.4) - eslint: 8.39.0 + '@typescript-eslint/parser': 5.59.2(eslint@8.40.0)(typescript@5.0.4) + eslint: 8.40.0 eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.1)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.39.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.39.0) - eslint-plugin-jsx-a11y: 6.7.1(eslint@8.39.0) - eslint-plugin-react: 7.32.2(eslint@8.39.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.39.0) + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.40.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0) + eslint-plugin-jsx-a11y: 6.7.1(eslint@8.40.0) + eslint-plugin-react: 7.32.2(eslint@8.40.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.40.0) typescript: 5.0.4 transitivePeerDependencies: - eslint-import-resolver-webpack @@ -7641,7 +7499,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.59.1)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.39.0): + /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.40.0): resolution: {integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -7650,9 +7508,9 @@ packages: dependencies: debug: 4.3.4 enhanced-resolve: 5.13.0 - eslint: 8.39.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.39.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.39.0) + eslint: 8.40.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0) get-tsconfig: 4.5.0 globby: 13.1.4 is-core-module: 2.12.0 @@ -7665,7 +7523,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.59.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.39.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -7686,16 +7544,16 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.59.1(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.2(eslint@8.40.0)(typescript@5.0.4) debug: 3.2.7 - eslint: 8.39.0 + eslint: 8.40.0 eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.1)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.39.0) + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.40.0) transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.39.0): + /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0): resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} engines: {node: '>=4'} peerDependencies: @@ -7705,15 +7563,15 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.59.1(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.2(eslint@8.40.0)(typescript@5.0.4) array-includes: 3.1.6 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.39.0 + eslint: 8.40.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.39.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0) has: 1.0.3 is-core-module: 2.12.0 is-glob: 4.0.3 @@ -7728,7 +7586,7 @@ packages: - supports-color dev: true - /eslint-plugin-jsx-a11y@6.7.1(eslint@8.39.0): + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.40.0): resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} engines: {node: '>=4.0'} peerDependencies: @@ -7743,7 +7601,7 @@ packages: axobject-query: 3.1.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.39.0 + eslint: 8.40.0 has: 1.0.3 jsx-ast-utils: 3.3.3 language-tags: 1.0.5 @@ -7753,16 +7611,16 @@ packages: semver: 6.3.0 dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.39.0): + /eslint-plugin-react-hooks@4.6.0(eslint@8.40.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.39.0 + eslint: 8.40.0 dev: true - /eslint-plugin-react@7.32.2(eslint@8.39.0): + /eslint-plugin-react@7.32.2(eslint@8.40.0): resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} engines: {node: '>=4'} peerDependencies: @@ -7772,7 +7630,7 @@ packages: array.prototype.flatmap: 1.3.1 array.prototype.tosorted: 1.1.1 doctrine: 2.1.0 - eslint: 8.39.0 + eslint: 8.40.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.3 minimatch: 3.1.2 @@ -7786,7 +7644,7 @@ packages: string.prototype.matchall: 4.0.8 dev: true - /eslint-plugin-unused-imports@2.0.0(eslint@8.39.0): + /eslint-plugin-unused-imports@2.0.0(eslint@8.40.0): resolution: {integrity: sha512-3APeS/tQlTrFa167ThtP0Zm0vctjr4M44HMpeg1P4bK6wItarumq0Ma82xorMKdFsWpphQBlRPzw/pxiVELX1A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -7796,7 +7654,7 @@ packages: '@typescript-eslint/eslint-plugin': optional: true dependencies: - eslint: 8.39.0 + eslint: 8.40.0 eslint-rule-composer: 0.3.0 dev: true @@ -7821,20 +7679,20 @@ packages: estraverse: 5.3.0 dev: true - /eslint-visitor-keys@3.4.0: - resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==} + /eslint-visitor-keys@3.4.1: + resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.39.0: - resolution: {integrity: sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==} + /eslint@8.40.0: + resolution: {integrity: sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0) - '@eslint-community/regexpp': 4.5.0 - '@eslint/eslintrc': 2.0.2 - '@eslint/js': 8.39.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.40.0) + '@eslint-community/regexpp': 4.5.1 + '@eslint/eslintrc': 2.0.3 + '@eslint/js': 8.40.0 '@humanwhocodes/config-array': 0.11.8 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -7845,8 +7703,8 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.0 - eslint-visitor-keys: 3.4.0 - espree: 9.5.1 + eslint-visitor-keys: 3.4.1 + espree: 9.5.2 esquery: 1.5.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -7875,19 +7733,20 @@ packages: - supports-color dev: true - /espree@9.5.1: - resolution: {integrity: sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==} + /espree@9.5.2: + resolution: {integrity: sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.8.2 acorn-jsx: 5.3.2(acorn@8.8.2) - eslint-visitor-keys: 3.4.0 + eslint-visitor-keys: 3.4.1 dev: true /esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true + dev: true /esquery@1.5.0: resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} @@ -7911,6 +7770,7 @@ packages: /estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} + dev: true /estree-walker@1.0.1: resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} @@ -7919,6 +7779,7 @@ packages: /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} + dev: true /eth-block-tracker@6.1.0: resolution: {integrity: sha512-K9SY8+/xMBi4M5HHTDdxnpEqEEGjbNpzHFqvxyjMZej8InV/B+CkFRKM6W+uvrFJ7m8Zd1E0qUkseU3vdIDFYQ==} @@ -8058,6 +7919,21 @@ packages: safe-buffer: 5.2.1 dev: false + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + /execa@7.1.1: resolution: {integrity: sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==} engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} @@ -8133,6 +8009,7 @@ packages: /fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true /fast-redact@3.1.2: resolution: {integrity: sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw==} @@ -8307,7 +8184,6 @@ packages: dependencies: minipass: 3.3.6 dev: false - optional: true /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -8350,7 +8226,6 @@ packages: strip-ansi: 6.0.1 wide-align: 1.1.5 dev: false - optional: true /gensequence@5.0.2: resolution: {integrity: sha512-JlKEZnFc6neaeSVlkzBGGgkIoIaSxMgvdamRoPN8r3ozm2r9dusqxeKqYQ7lhzmj2UhFQP8nkyfCaiLQxiLrDA==} @@ -8484,10 +8359,6 @@ packages: define-properties: 1.2.0 dev: true - /globalyzer@0.1.0: - resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} - dev: true - /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -8522,10 +8393,6 @@ packages: pinkie-promise: 2.0.1 dev: true - /globrex@0.1.2: - resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - dev: true - /goober@2.1.13(csstype@3.1.2): resolution: {integrity: sha512-jFj3BQeleOoy7t93E9rZ2de+ScC4lQICLwiAQmKMg9F6roKGaLSHoCDYKkWlSafg138jejvq/mTdvmnwDQgqoQ==} peerDependencies: @@ -8601,7 +8468,6 @@ packages: /has-unicode@2.0.1: resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} dev: false - optional: true /has@1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} @@ -8868,6 +8734,11 @@ packages: - supports-color dev: false + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true + /human-signals@4.3.1: resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} engines: {node: '>=14.18.0'} @@ -8885,8 +8756,10 @@ packages: hasBin: true dev: true - /i18next-fs-backend@2.1.1: - resolution: {integrity: sha512-FTnj+UmNgT3YRml5ruRv0jMZDG7odOL/OP5PF5mOqvXud2vHrPOOs68Zdk6iqzL47cnnM0ZVkK2BAvpFeDJToA==} + /i18next-resources-to-backend@1.1.3: + resolution: {integrity: sha512-iDJITrMHoKLUa3B2wippgH62yM4f4wCEofeTj55rML9i7QrMDGKdr8FGCnSNNxRQzvW4546Qx6v2/xY3dAhvUA==} + dependencies: + '@babel/runtime': 7.21.5 dev: false /i18next@22.4.15: @@ -8909,10 +8782,8 @@ packages: safer-buffer: 2.1.2 dev: false - /idb-keyval@6.2.0: - resolution: {integrity: sha512-uw+MIyQn2jl3+hroD7hF8J7PUviBU7BPKWw4f/ISf32D4LoGu98yHjrzWWJDASu9QNrX10tCJqk9YY0ClWm8Ng==} - dependencies: - safari-14-idb-fix: 3.0.0 + /idb-keyval@6.2.1: + resolution: {integrity: sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==} dev: false /idb@7.1.1: @@ -9098,6 +8969,12 @@ packages: hasBin: true dev: true + /is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dev: true + /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -9133,6 +9010,14 @@ packages: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} dev: false + /is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + dependencies: + is-docker: 3.0.0 + dev: true + /is-map@2.0.2: resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} dev: true @@ -9302,12 +9187,12 @@ packages: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true - /isomorphic-dompurify@1.3.0: - resolution: {integrity: sha512-/e6YSq9WnMMa00exdm/XRQiH3UwTbRX0pusRk0IrvHxBbaEcnnOWYkTrLV9W7gcJxzhNE2vliYVMKLJ/tg2AaA==} + /isomorphic-dompurify@1.4.0(canvas@2.11.2): + resolution: {integrity: sha512-00ZbtXXRnmXfA6VoJwvYtOPgDbPw+Sgmiu12VpesAIoD+V6rjTyf2KEbig/yRfXztBBfcrk3S/X8xu1XNy5kzw==} dependencies: '@types/dompurify': 3.0.2 - dompurify: 3.0.2 - jsdom: 21.1.1 + dompurify: 3.0.3 + jsdom: 22.0.0(canvas@2.11.2) transitivePeerDependencies: - bufferutil - canvas @@ -9365,7 +9250,7 @@ packages: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.16.2 + '@types/node': 20.1.0 merge-stream: 2.0.0 supports-color: 7.2.0 dev: true @@ -9374,7 +9259,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.16.2 + '@types/node': 20.1.0 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -9404,9 +9289,9 @@ packages: dependencies: argparse: 2.0.1 - /jsdom@21.1.1: - resolution: {integrity: sha512-Jjgdmw48RKcdAIQyUD1UdBh2ecH7VqwaXPN3ehoZN6MqgVbMn+lRm1aAT1AsdJRAJpwfa4IpwgzySn61h2qu3w==} - engines: {node: '>=14'} + /jsdom@22.0.0(canvas@2.11.2): + resolution: {integrity: sha512-p5ZTEb5h+O+iU02t0GfEjAnkdYPrQSkfuTSMkMYyIoMvUNEHsbG0bHHbfXIcfTqD2UfvjQX7mmgiFsyRwGscVw==} + engines: {node: '>=16'} peerDependencies: canvas: ^2.5.0 peerDependenciesMeta: @@ -9414,13 +9299,11 @@ packages: optional: true dependencies: abab: 2.0.6 - acorn: 8.8.2 - acorn-globals: 7.0.1 + canvas: 2.11.2 cssstyle: 3.0.0 data-urls: 4.0.0 decimal.js: 10.4.3 domexception: 4.0.0 - escodegen: 2.0.0 form-data: 4.0.0 html-encoding-sniffer: 3.0.0 http-proxy-agent: 5.0.0 @@ -9502,8 +9385,8 @@ packages: engines: {node: '>=6'} hasBin: true - /jsonfeed-to-rss@3.0.6: - resolution: {integrity: sha512-lbEMYwPsofOBoUIW3QteZw+ogVUpWbnDZIaWgLvK8+3bZLeCW7m6luk9N2AT/Ax1plHy8nXMZo6TvcRILkDHpA==} + /jsonfeed-to-rss@3.0.7: + resolution: {integrity: sha512-R/MV3fNWXEdejw3iSY3bJLb0iH3RdXhd9w7AilCk+t18kbdkdv8kyaK4/py2hrPWoWQTTcsGwFda4DKiVYN+Jw==} dependencies: '@bret/truthy': 1.0.1 add-zero: 1.0.0 @@ -9512,7 +9395,7 @@ packages: lodash.get: 4.4.2 lodash.merge: 4.6.2 podcast-categories: 2.0.0 - sentence-splitter: 3.2.3 + sentence-splitter: 4.2.0 striptags: 3.2.0 trim-left: 1.0.1 trim-right: 1.0.1 @@ -9561,10 +9444,6 @@ packages: readable-stream: 3.6.2 dev: false - /keypress@0.1.0: - resolution: {integrity: sha512-x0yf9PL/nx9Nw9oLL8ZVErFAk85/lslwEP7Vz7s5SI1ODXZIgit3C5qyWjw4DxOuO/3Hb4866SQh28a1V1d+WA==} - dev: false - /keyvaluestorage-interface@1.0.0: resolution: {integrity: sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==} dev: false @@ -9578,12 +9457,13 @@ packages: engines: {node: '>=6'} dev: false - /langchain@0.0.66: - resolution: {integrity: sha512-HsVdXFDp2+YB12tvpMFOK6kIXaLvFzJKQUzitr5VEamhZCFUoojZgcS7ckRjxJIv+aVWbEzCi3KJI/2kPKsMkA==} + /langchain@0.0.71: + resolution: {integrity: sha512-xMaKOfNPdKn4diI5adhys6P9J/dHLq/oCtXraotbBeHvOeYkQ6Xo2ywtqQZN+OywhOUv/2Kg34QnFnKPDjn3xA==} engines: {node: '>=18'} peerDependencies: '@aws-sdk/client-lambda': ^3.310.0 '@aws-sdk/client-s3': ^3.310.0 + '@clickhouse/client': ^0.0.14 '@getmetal/metal-sdk': '*' '@huggingface/inference': ^1.5.1 '@opensearch-project/opensearch': '*' @@ -9616,6 +9496,8 @@ packages: optional: true '@aws-sdk/client-s3': optional: true + '@clickhouse/client': + optional: true '@getmetal/metal-sdk': optional: true '@huggingface/inference': @@ -9673,6 +9555,7 @@ packages: dependencies: '@anthropic-ai/sdk': 0.4.3 '@dqbd/tiktoken': 1.0.7 + ansi-styles: 5.2.0 binary-extensions: 2.2.0 browser-or-node: 2.1.1 expr-eval: 2.0.2 @@ -9715,14 +9598,6 @@ packages: engines: {node: '>=6'} dev: true - /levn@0.3.0: - resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.1.2 - type-check: 0.3.2 - dev: false - /levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -9780,26 +9655,26 @@ packages: wrap-ansi: 7.0.0 dev: true - /lit-element@3.3.1: - resolution: {integrity: sha512-Gl+2409uXWbf7n6cCl7Kzasm7zjT9xmdwi2BhLNi70sRKAgRkqueDu5mSIH3hPYMM0/vqBCdPXod3NbGkRA2ww==} + /lit-element@3.3.2: + resolution: {integrity: sha512-xXAeVWKGr4/njq0rGC9dethMnYCq5hpKYrgQZYTzawt9YQhMiXfD+T1RgrdY3NamOxwq2aXlb0vOI6e29CKgVQ==} dependencies: - '@lit-labs/ssr-dom-shim': 1.1.0 + '@lit-labs/ssr-dom-shim': 1.1.1 '@lit/reactive-element': 1.6.1 - lit-html: 2.7.2 + lit-html: 2.7.3 dev: false - /lit-html@2.7.2: - resolution: {integrity: sha512-ZJCfKlA2XELu5tn7XuzOziGFGvf1SeQm+ngLWoJ8bXtSkRrrR3ms6SWy+gsdxeYwySLij5xAhdd2C3EX0ftxdQ==} + /lit-html@2.7.3: + resolution: {integrity: sha512-9DyLzcn/kbRGowz2vFmSANFbRZTxYUgYYFqzie89w6GLpPUiBCDHfcdeRUV/k3Q2ueYxNjfv46yPCtKAEAPOVw==} dependencies: '@types/trusted-types': 2.0.3 dev: false - /lit@2.7.2: - resolution: {integrity: sha512-9QnZmG5mIKPRja96cpndMclLSi0Qrz2BXD6EbqNqCKMMjOWVm/BwAeXufFk2jqFsNmY07HOzU8X+8aTSVt3yrA==} + /lit@2.7.3: + resolution: {integrity: sha512-0a+u+vVbmgSfPu+fyvqjMPBX0Kwbyj9QOv9MbQFZhWGlV2cyk3lEwgfUQgYN+i/lx++1Z3wZknSIp3QCKxHLyg==} dependencies: '@lit/reactive-element': 1.6.1 - lit-element: 3.3.1 - lit-html: 2.7.2 + lit-element: 3.3.2 + lit-html: 2.7.3 dev: false /loader-runner@4.3.0: @@ -9871,10 +9746,6 @@ packages: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} dev: true - /lodash.throttle@4.1.1: - resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} - dev: false - /lodash.transform@4.6.0: resolution: {integrity: sha512-LO37ZnhmBVx0GvOU/caQuipEh4GN82TcWv3yHlebGDgOxbxiwwzW5Pcx2AcvpIv2WmvmSMoC492yQFNhy/l/UQ==} dev: false @@ -10482,6 +10353,11 @@ packages: engines: {node: '>=12'} dev: true + /mimic-response@2.1.0: + resolution: {integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==} + engines: {node: '>=8'} + dev: false + /mimic-response@3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} @@ -10516,13 +10392,11 @@ packages: dependencies: yallist: 4.0.0 dev: false - optional: true - /minipass@4.2.8: - resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} + /minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} engines: {node: '>=8'} dev: false - optional: true /minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} @@ -10531,7 +10405,6 @@ packages: minipass: 3.3.6 yallist: 4.0.0 dev: false - optional: true /mkdirp-classic@0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} @@ -10542,7 +10415,6 @@ packages: engines: {node: '>=10'} hasBin: true dev: false - optional: true /ml-array-mean@1.1.6: resolution: {integrity: sha512-MIdf7Zc8HznwIisyiJGRH9tRigg3Yf4FldW8DxKxpCCv/g5CafTw0RRu51nojVEOXuCQC7DRVVu5c7XXO/5joQ==} @@ -10575,8 +10447,8 @@ packages: num-sort: 2.1.0 dev: false - /monaco-editor@0.37.1: - resolution: {integrity: sha512-jLXEEYSbqMkT/FuJLBZAVWGuhIb4JNwHE9kPTorAVmsdZ4UzHAfgWxLsVtD7pLRFaOwYPhNG9nUCpmFL1t/dIg==} + /monaco-editor@0.38.0: + resolution: {integrity: sha512-11Fkh6yzEmwx7O0YoLxeae0qEGFwmyPRlVxpg7oF9czOOCB/iCjdJrG5I67da5WiXK3YJCxoz9TJFE8Tfq/v9A==} dev: false /motion@10.15.5: @@ -10621,6 +10493,10 @@ packages: object-assign: 4.1.1 thenify-all: 1.6.0 + /nan@2.17.0: + resolution: {integrity: sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==} + dev: false + /nanoid@3.3.6: resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -10644,37 +10520,17 @@ packages: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} dev: true - /next-i18next@13.2.2(i18next@22.4.15)(next@13.3.1)(react-i18next@12.2.2)(react@18.2.0): - resolution: {integrity: sha512-t0WU6K+HJoq2nVQ0n6OiiEZja9GyMqtDSU74FmOafgk4ljns+iZ18bsNJiI8rOUXfFfkW96ea1N7D5kbMyT+PA==} - engines: {node: '>=14'} - peerDependencies: - i18next: ^22.0.6 - next: '>= 12.0.0' - react: '>= 17.0.2' - react-i18next: ^12.2.0 - dependencies: - '@babel/runtime': 7.21.0 - '@types/hoist-non-react-statics': 3.3.1 - core-js: 3.30.1 - hoist-non-react-statics: 3.3.2 - i18next: 22.4.15 - i18next-fs-backend: 2.1.1 - next: 13.3.1(@babel/core@7.21.5)(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-i18next: 12.2.2(i18next@22.4.15)(react-dom@18.2.0)(react@18.2.0) - dev: false - - /next-pwa@5.6.0(@babel/core@7.21.5)(esbuild@0.17.18)(next@13.3.1)(webpack@5.81.0): + /next-pwa@5.6.0(@babel/core@7.21.8)(esbuild@0.17.18)(next@13.4.1)(webpack@5.82.0): resolution: {integrity: sha512-XV8g8C6B7UmViXU8askMEYhWwQ4qc/XqJGnexbLV68hzKaGHZDMtHsm2TNxFcbR7+ypVuth/wwpiIlMwpRJJ5A==} peerDependencies: next: '>=9.0.0' dependencies: - babel-loader: 8.3.0(@babel/core@7.21.5)(webpack@5.81.0) - clean-webpack-plugin: 4.0.0(webpack@5.81.0) + babel-loader: 8.3.0(@babel/core@7.21.8)(webpack@5.82.0) + clean-webpack-plugin: 4.0.0(webpack@5.82.0) globby: 11.1.0 - next: 13.3.1(@babel/core@7.21.5)(react-dom@18.2.0)(react@18.2.0) - terser-webpack-plugin: 5.3.7(esbuild@0.17.18)(webpack@5.81.0) - workbox-webpack-plugin: 6.5.4(webpack@5.81.0) + next: 13.4.1(@babel/core@7.21.8)(react-dom@18.2.0)(react@18.2.0) + terser-webpack-plugin: 5.3.7(esbuild@0.17.18)(webpack@5.82.0) + workbox-webpack-plugin: 6.5.4(webpack@5.82.0) workbox-window: 6.5.4 transitivePeerDependencies: - '@babel/core' @@ -10690,9 +10546,9 @@ packages: resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} dev: false - /next@13.3.1(@babel/core@7.21.5)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-eByWRxPzKHs2oQz1yE41LX35umhz86ZSZ+mYyXBqn2IBi2hyUqxBA88avywdr4uyH+hCJczegGsDGWbzQA5Rqw==} - engines: {node: '>=14.18.0'} + /next@13.4.1(@babel/core@7.21.8)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-JBw2kAIyhKDpjhEWvNVoFeIzNp9xNxg8wrthDOtMctfn3EpqGCmW0FSviNyGgOSOSn6zDaX48pmvbdf6X2W9xA==} + engines: {node: '>=16.8.0'} hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 @@ -10711,41 +10567,29 @@ packages: sass: optional: true dependencies: - '@next/env': 13.3.1 - '@swc/helpers': 0.5.0 + '@next/env': 13.4.1 + '@swc/helpers': 0.5.1 busboy: 1.6.0 - caniuse-lite: 1.0.30001481 + caniuse-lite: 1.0.30001485 postcss: 8.4.14 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - styled-jsx: 5.1.1(@babel/core@7.21.5)(react@18.2.0) + styled-jsx: 5.1.1(@babel/core@7.21.8)(react@18.2.0) + zod: 3.21.4 optionalDependencies: - '@next/swc-darwin-arm64': 13.3.1 - '@next/swc-darwin-x64': 13.3.1 - '@next/swc-linux-arm64-gnu': 13.3.1 - '@next/swc-linux-arm64-musl': 13.3.1 - '@next/swc-linux-x64-gnu': 13.3.1 - '@next/swc-linux-x64-musl': 13.3.1 - '@next/swc-win32-arm64-msvc': 13.3.1 - '@next/swc-win32-ia32-msvc': 13.3.1 - '@next/swc-win32-x64-msvc': 13.3.1 + '@next/swc-darwin-arm64': 13.4.1 + '@next/swc-darwin-x64': 13.4.1 + '@next/swc-linux-arm64-gnu': 13.4.1 + '@next/swc-linux-arm64-musl': 13.4.1 + '@next/swc-linux-x64-gnu': 13.4.1 + '@next/swc-linux-x64-musl': 13.4.1 + '@next/swc-win32-arm64-msvc': 13.4.1 + '@next/swc-win32-ia32-msvc': 13.4.1 + '@next/swc-win32-x64-msvc': 13.4.1 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - /nextjs-progressbar@0.0.16(next@13.3.1)(react@18.2.0): - resolution: {integrity: sha512-GV0fD38EMD3vSDCmkq+tObmoup6QA91a6a9MxGuhJZuRk/9TNsrHGnIQQQ/sggkMkXuT4fBgF6jRjFwScDT3zA==} - peerDependencies: - next: '>= 6.0.0' - react: '>= 16.0.0' - dependencies: - '@types/nprogress': 0.2.0 - next: 13.3.1(@babel/core@7.21.5)(react-dom@18.2.0)(react@18.2.0) - nprogress: 0.2.0 - prop-types: 15.8.1 - react: 18.2.0 - dev: false - /node-abi@3.40.0: resolution: {integrity: sha512-zNy02qivjjRosswoYmPi8hIKJRr8MpQyeKT6qlcq/OnOgA3Rhoae+IYOqsM9V5+JnHWmxKnWOT2GxvtqdtOCXA==} engines: {node: '>=10'} @@ -10757,11 +10601,6 @@ packages: resolution: {integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==} dev: false - /node-addon-api@3.2.1: - resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==} - dev: false - optional: true - /node-addon-api@6.1.0: resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} dev: false @@ -10803,19 +10642,6 @@ packages: /node-releases@2.0.10: resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} - /nodejieba@2.5.2: - resolution: {integrity: sha512-ByskJvaBrQ2eV+5M0OeD80S5NKoGaHc9zi3Z/PTKl/95eac2YF8RmWduq9AknLpkQLrLAIcqurrtC6BzjpKwwg==} - engines: {node: '>= 10.20.0'} - requiresBuild: true - dependencies: - '@mapbox/node-pre-gyp': 1.0.10 - node-addon-api: 3.2.1 - transitivePeerDependencies: - - encoding - - supports-color - dev: false - optional: true - /non-layered-tidy-tree-layout@2.0.2: resolution: {integrity: sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==} dev: false @@ -10827,7 +10653,6 @@ packages: dependencies: abbrev: 1.1.1 dev: false - optional: true /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} @@ -10842,6 +10667,13 @@ packages: resolution: {integrity: sha512-5PDmaAsVfnWUgTUbJ3ERwn7u79Z0dYxN9ErxCpVJJqe2RK0PJ3z+iFUxuqjwtlDDegXvtWoxD/3Fzxox7tFGWA==} dev: false + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + /npm-run-path@5.1.0: resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -10857,11 +10689,6 @@ packages: gauge: 3.0.2 set-blocking: 2.0.0 dev: false - optional: true - - /nprogress@0.2.0: - resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} - dev: false /nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} @@ -10954,10 +10781,6 @@ packages: es-abstract: 1.21.2 dev: true - /object_values@0.1.2: - resolution: {integrity: sha512-tZgUiKLraVH+4OAedBYrr4/K6KmAQw2RPNd1AuNdhLsuz5WP3VB7WuiKBWbOcjeqqAjus2ChIIWC8dSfmg7ReA==} - dev: false - /on-exit-leak-free@0.2.0: resolution: {integrity: sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==} dev: false @@ -10981,12 +10804,13 @@ packages: mimic-fn: 4.0.0 dev: true - /open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} + /open@9.1.0: + resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} + engines: {node: '>=14.16'} dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 + default-browser: 4.0.0 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 is-wsl: 2.2.0 dev: true @@ -11004,18 +10828,6 @@ packages: hasBin: true dev: true - /optionator@0.8.3: - resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} - engines: {node: '>= 0.8.0'} - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.3.0 - prelude-ls: 1.1.2 - type-check: 0.3.2 - word-wrap: 1.2.3 - dev: false - /optionator@0.9.1: resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} engines: {node: '>= 0.8.0'} @@ -11270,18 +11082,8 @@ packages: thread-stream: 0.15.2 dev: false - /pinyin@3.0.0-alpha.5: - resolution: {integrity: sha512-Sc8+Ch8uxZsVO0zvzHxvy24fEIixSl7V4kZoX4ThSyQ1BI0H8jIAqf0kxT8WMCX2xEHr1CYslKGDgSE4yj71hg==} - hasBin: true - dependencies: - commander: 1.1.1 - optionalDependencies: - '@node-rs/jieba': 1.7.0 - nodejieba: 2.5.2 - segmentit: 2.0.3 - transitivePeerDependencies: - - encoding - - supports-color + /pinyin-pro@3.14.0: + resolution: {integrity: sha512-mbFw2Gx8IlbnxClhaACRFUWXa/lCzCttrPIdHXPzAvWOAmTKcdTFlMjbt5Quq6YY2asgD79Ml/MQpPEGN3o8iw==} dev: false /pirates@4.0.5: @@ -11404,11 +11206,6 @@ packages: tunnel-agent: 0.6.0 dev: false - /prelude-ls@1.1.2: - resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} - engines: {node: '>= 0.8.0'} - dev: false - /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -11440,13 +11237,6 @@ packages: engines: {node: '>=6'} dev: true - /preval.macro@4.0.0: - resolution: {integrity: sha512-sJJnE71X+MPr64CVD2AurmUj4JEDqbudYbStav3L9Xjcqm4AR0ymMm6sugw1mUmfI/7gw4JWA4JXo/k6w34crw==} - dependencies: - babel-plugin-preval: 4.0.0 - dev: false - optional: true - /prisma@4.13.0: resolution: {integrity: sha512-L9mqjnSmvWIRCYJ9mQkwCtj4+JDYYTdhoyo8hlsHNDXaZLh/b4hR0IoKIBbTKxZuyHQzLopb/+0Rvb69uGV7uA==} engines: {node: '>=14.17'} @@ -11498,15 +11288,9 @@ packages: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} - /qrcode@1.5.1: - resolution: {integrity: sha512-nS8NJ1Z3md8uTjKtP+SGGhfqmTCs5flU/xR623oI0JX+Wepz9R8UrRVCTBTJm3qGw3rH6jJ6MUHjkDx15cxSSg==} - engines: {node: '>=10.13.0'} - hasBin: true - dependencies: - dijkstrajs: 1.0.3 - encode-utf8: 1.0.3 - pngjs: 5.0.0 - yargs: 15.4.1 + /qier-progress@1.0.4: + resolution: {integrity: sha512-gCxgoM2wxW7GCo/iEpOlaunVo2cf+/AJfG6wtYIbYz18GXtUhFjgZjX2s+otWh/P8ppVgGULASkWtXfZQEd2FQ==} + engines: {node: '>=6.0.0'} dev: false /qrcode@1.5.3: @@ -11537,8 +11321,8 @@ packages: strict-uri-encode: 2.0.0 dev: false - /query-string@7.1.1: - resolution: {integrity: sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w==} + /query-string@7.1.3: + resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} engines: {node: '>=6'} dependencies: decode-uri-component: 0.2.2 @@ -11672,8 +11456,8 @@ packages: /react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - /react-parallax-tilt@1.7.131(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-bhR0DVaQxJyCDFJ3arlkimm3178HxH29D9bV1j5zJ3LL1TsY74QXw4iIWXUeFhEZs49DN1rV1xoNawWE81NffQ==} + /react-parallax-tilt@1.7.137(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-PsuOXpsa/55n23/sd7sbSd91Fm7z37o1WYV2V0GMyo1IguaXmdoVGIqAZFynaxNWS6Go9TKR+CrzYuQHIiE6/g==} peerDependencies: react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 @@ -11696,7 +11480,7 @@ packages: warning: 4.0.3 dev: false - /react-remove-scroll-bar@2.3.4(@types/react@18.2.0)(react@18.2.0): + /react-remove-scroll-bar@2.3.4(@types/react@18.2.6)(react@18.2.0): resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==} engines: {node: '>=10'} peerDependencies: @@ -11706,14 +11490,14 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.0 + '@types/react': 18.2.6 react: 18.2.0 - react-style-singleton: 2.2.1(@types/react@18.2.0)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.6)(react@18.2.0) tslib: 2.5.0 dev: false - /react-remove-scroll@2.5.5(@types/react@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} + /react-remove-scroll@2.5.6(@types/react@18.2.6)(react@18.2.0): + resolution: {integrity: sha512-bO856ad1uDYLefgArk559IzUNeQ6SWH4QnrevIUjH+GczV56giDfl3h0Idptf2oIKxQmd1p9BN25jleKodTALg==} engines: {node: '>=10'} peerDependencies: '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -11722,25 +11506,13 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.0 + '@types/react': 18.2.6 react: 18.2.0 - react-remove-scroll-bar: 2.3.4(@types/react@18.2.0)(react@18.2.0) - react-style-singleton: 2.2.1(@types/react@18.2.0)(react@18.2.0) + react-remove-scroll-bar: 2.3.4(@types/react@18.2.6)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.6)(react@18.2.0) tslib: 2.5.0 - use-callback-ref: 1.3.0(@types/react@18.2.0)(react@18.2.0) - use-sidecar: 1.1.2(@types/react@18.2.0)(react@18.2.0) - dev: false - - /react-scroll@1.8.9(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-9m7ztraiX/l6L7erzYAD3fhnveNckei6/NkWfqwN2e0FRdoE2W6Pk4oi2Nah7mWpPCPAeIgegfaqZACTimPOwg==} - peerDependencies: - react: ^15.5.4 || ^16.0.0 || ^17.0.0 || ^18.0.0 - react-dom: ^15.5.4 || ^16.0.0 || ^17.0.0 || ^18.0.0 - dependencies: - lodash.throttle: 4.1.1 - prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + use-callback-ref: 1.3.0(@types/react@18.2.6)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.2.6)(react@18.2.0) dev: false /react-sortablejs@6.1.4(@types/sortablejs@1.15.1)(react-dom@18.2.0)(react@18.2.0)(sortablejs@1.15.0): @@ -11764,7 +11536,7 @@ packages: engines: {node: '>=0.12.0'} dev: false - /react-style-singleton@2.2.1(@types/react@18.2.0)(react@18.2.0): + /react-style-singleton@2.2.1(@types/react@18.2.6)(react@18.2.0): resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} engines: {node: '>=10'} peerDependencies: @@ -11774,14 +11546,14 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.0 + '@types/react': 18.2.6 get-nonce: 1.0.1 invariant: 2.2.4 react: 18.2.0 tslib: 2.5.0 dev: false - /react-textarea-autosize@8.3.4(@types/react@18.2.0)(react@18.2.0): + /react-textarea-autosize@8.3.4(@types/react@18.2.6)(react@18.2.0): resolution: {integrity: sha512-CdtmP8Dc19xL8/R6sWvtknD/eCXkQr30dtvC4VmGInhRsfF8X/ihXCq6+9l9qbxmKRiq407/7z5fxE7cVWQNgQ==} engines: {node: '>=10'} peerDependencies: @@ -11790,7 +11562,7 @@ packages: '@babel/runtime': 7.21.5 react: 18.2.0 use-composed-ref: 1.3.0(react@18.2.0) - use-latest: 1.2.1(@types/react@18.2.0)(react@18.2.0) + use-latest: 1.2.1(@types/react@18.2.6)(react@18.2.0) transitivePeerDependencies: - '@types/react' dev: false @@ -11823,8 +11595,8 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /react-virtuoso@4.3.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-n51V4fMk36VM6NapfaMbfs4w/IaVodp5asp+rtzlvz0yurG6uVrqA040ke43gpYtoOL6j6TxeXWo4b6GpO9N0A==} + /react-virtuoso@4.3.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-MdWzmM9d8Gt5YGPIgGzRoqnYygTsriWlZrq+SqxphJTiiHs9cffnjf2Beo3SA3wRYzQJD8FI2HXtN5ACWzPFbQ==} engines: {node: '>=10'} peerDependencies: react: '>=16 || >=17 || >= 18' @@ -11997,14 +11769,14 @@ packages: unified: 10.1.2 dev: false - /rehype-react@7.2.0(@types/react@18.2.0): + /rehype-react@7.2.0(@types/react@18.2.6): resolution: {integrity: sha512-MHYyCHka+3TtzBMKtcuvVOBAbI1HrfoYA+XH9m7/rlrQQATCPwtJnPdkxKKcIGF8vc9mxqQja9r9f+FHItQeWg==} peerDependencies: '@types/react': '>=17' dependencies: '@mapbox/hast-util-table-cell-style': 0.2.0 '@types/hast': 2.3.4 - '@types/react': 18.2.0 + '@types/react': 18.2.6 hast-to-hyperscript: 10.0.3 hast-util-whitespace: 2.0.1 unified: 10.1.2 @@ -12151,6 +11923,7 @@ packages: /require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} + dev: true /require-main-filename@2.0.0: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} @@ -12286,6 +12059,13 @@ packages: resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} dev: false + /run-applescript@5.0.0: + resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} + engines: {node: '>=12'} + dependencies: + execa: 5.1.1 + dev: true + /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: @@ -12314,10 +12094,6 @@ packages: mri: 1.2.0 dev: false - /safari-14-idb-fix@3.0.0: - resolution: {integrity: sha512-eBNFLob4PMq8JA1dGyFn6G97q3/WzNtFK4RnzT1fnLq+9RyrGknzYiM/9B12MnKAxuj1IXr7UKYtTNtjyKMBog==} - dev: false - /safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} @@ -12401,14 +12177,6 @@ packages: node-gyp-build: 4.6.0 dev: false - /segmentit@2.0.3: - resolution: {integrity: sha512-7mn2XL3OdTUQ+AhHz7SbgyxLTaQRzTWQNVwiK+UlTO8aePGbSwvKUzTwE4238+OUY9MoR6ksAg35zl8sfTunQQ==} - requiresBuild: true - dependencies: - preval.macro: 4.0.0 - dev: false - optional: true - /semver@6.3.0: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true @@ -12420,14 +12188,11 @@ packages: dependencies: lru-cache: 6.0.0 - /sentence-splitter@3.2.3: - resolution: {integrity: sha512-eDqaz4MasTn6Mp3dagKzIbiNsJpgpueMEQqCJeN9F9XQRFLDGFJ0kX8R3uMp+mU7J58dWjr4q6eks/nUX/vnJQ==} - hasBin: true + /sentence-splitter@4.2.0: + resolution: {integrity: sha512-1Ww0iofAbR56tu6lVJ9Yh8Sj5ukeVjikBQ4sR5sNWM0kc+2AJe3p5F2o2qyuf5dJ4KVs1RbJpNkwEiMBCz7pKg==} dependencies: - '@textlint/ast-node-types': 4.4.3 - concat-stream: 2.0.0 - object_values: 0.1.2 - structured-source: 3.0.2 + '@textlint/ast-node-types': 13.3.2 + structured-source: 4.0.0 dev: false /serialize-javascript@4.0.0: @@ -12498,6 +12263,14 @@ packages: resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} dev: false + /simple-get@3.1.1: + resolution: {integrity: sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==} + dependencies: + decompress-response: 4.2.1 + once: 1.4.0 + simple-concat: 1.0.1 + dev: false + /simple-get@4.0.1: resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} dependencies: @@ -12597,6 +12370,7 @@ packages: /source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + dev: true /source-map@0.8.0-beta.0: resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} @@ -12764,6 +12538,11 @@ packages: engines: {node: '>=10'} dev: true + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true + /strip-final-newline@3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} @@ -12790,10 +12569,10 @@ packages: resolution: {integrity: sha512-g45ZOGzHDMe2bdYMdIvdAfCQkCTDMGBazSw1ypMowwGIee7ZQ5dU0rBJ8Jqgl+jAKIv4dbeE1jscZq9wid1Tkw==} dev: false - /structured-source@3.0.2: - resolution: {integrity: sha512-Ap7JHfKgmH40SUjumqyKTHYHNZ8GvGQskP34ks0ElHCDEig+bYGpmXVksxPSrgcY9rkJqhVMzfeg5GIpZelfpQ==} + /structured-source@4.0.0: + resolution: {integrity: sha512-qGzRFNJDjFieQkl/sVOI2dUjHKRyL9dAJi2gCPGJLbJHBIkyOHxjuocpIEfbLioX+qSJpvbYdT49/YCdMznKxA==} dependencies: - boundary: 1.0.1 + boundary: 2.0.0 dev: false /style-mod@4.0.3: @@ -12806,7 +12585,7 @@ packages: inline-style-parser: 0.1.1 dev: false - /styled-jsx@5.1.1(@babel/core@7.21.5)(react@18.2.0): + /styled-jsx@5.1.1(@babel/core@7.21.8)(react@18.2.0): resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} engines: {node: '>= 12.0.0'} peerDependencies: @@ -12819,7 +12598,7 @@ packages: babel-plugin-macros: optional: true dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 client-only: 0.0.1 react: 18.2.0 @@ -12827,8 +12606,8 @@ packages: resolution: {integrity: sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==} dev: false - /stylis@4.1.4: - resolution: {integrity: sha512-USf5pszRYwuE6hg9by0OkKChkQYEXfkeTtm0xKw+jqQhwyjCVLdYyMBK7R+n7dhzsblAWJnGxju4vxq5eH20GQ==} + /stylis@4.2.0: + resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} dev: false /sucrase@3.32.0: @@ -12892,12 +12671,12 @@ packages: resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} engines: {node: ^14.18.0 || >=16.0.0} dependencies: - '@pkgr/utils': 2.3.1 + '@pkgr/utils': 2.4.0 tslib: 2.5.0 dev: true - /tabbable@6.1.1: - resolution: {integrity: sha512-4kl5w+nCB44EVRdO0g/UGoOp3vlwgycUVtkk/7DPyeLZUCuNFFKCFG6/t/DgHLrUPHjrZg6s5tNm+56Q2B0xyg==} + /tabbable@6.1.2: + resolution: {integrity: sha512-qCN98uP7i9z0fIS4amQ5zbGBOq+OSigYeGvPy7NDk8Y9yncqDZ9pRPgfsc2PJIVM9RrJj7GIfuRgmjoUU9zTHQ==} dev: false /tailwind-merge@1.12.0: @@ -12972,18 +12751,17 @@ packages: readable-stream: 3.6.2 dev: false - /tar@6.1.13: - resolution: {integrity: sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==} + /tar@6.1.14: + resolution: {integrity: sha512-piERznXu0U7/pW7cdSn7hjqySIVTYT6F76icmFk7ptU7dDYlXTm5r9A6K04R2vU3olYgoKeo1Cg3eeu5nhftAw==} engines: {node: '>=10'} dependencies: chownr: 2.0.0 fs-minipass: 2.1.0 - minipass: 4.2.8 + minipass: 5.0.0 minizlib: 2.1.2 mkdirp: 1.0.4 yallist: 4.0.0 dev: false - optional: true /temp-dir@2.0.0: resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} @@ -13000,7 +12778,7 @@ packages: unique-string: 2.0.0 dev: true - /terser-webpack-plugin@5.3.7(esbuild@0.17.18)(webpack@5.81.0): + /terser-webpack-plugin@5.3.7(esbuild@0.17.18)(webpack@5.82.0): resolution: {integrity: sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -13022,7 +12800,7 @@ packages: schema-utils: 3.1.2 serialize-javascript: 6.0.1 terser: 5.17.1 - webpack: 5.81.0(esbuild@0.17.18) + webpack: 5.82.0(esbuild@0.17.18) dev: true /terser@5.17.1: @@ -13064,17 +12842,15 @@ packages: /through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - /tiny-glob@0.2.9: - resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} - dependencies: - globalyzer: 0.1.0 - globrex: 0.1.2 - dev: true - /tiny-invariant@1.2.0: resolution: {integrity: sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==} dev: false + /titleize@3.0.0: + resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} + engines: {node: '>=12'} + dev: true + /to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} @@ -13143,8 +12919,8 @@ packages: engines: {node: '>=6.10'} dev: false - /ts-essentials@9.3.1(typescript@5.0.4): - resolution: {integrity: sha512-9CChSvQMyVRo29Vb1A2jbs+LKo3d/bAf+ndSaX0T8cEiy/HChVaRN/HY5DqUryZ8hZ6uol9bEgCnGmnDbwBR9Q==} + /ts-essentials@9.3.2(typescript@5.0.4): + resolution: {integrity: sha512-JxKJzuWqH1MmH4ZFHtJzGEhkfN3QvVR3C3w+4BIoWeoY68UVVoA2Np/Bca9z0IPSErVCWhv439aT0We4Dks8kQ==} peerDependencies: typescript: '>=4.1.0' dependencies: @@ -13189,13 +12965,6 @@ packages: safe-buffer: 5.2.1 dev: false - /type-check@0.3.2: - resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.1.2 - dev: false - /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -13239,10 +13008,6 @@ packages: dependencies: is-typedarray: 1.0.0 - /typedarray@0.0.6: - resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - dev: false - /typescript@5.0.4: resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} engines: {node: '>=12.20'} @@ -13429,6 +13194,11 @@ packages: engines: {node: '>= 10.0.0'} dev: true + /untildify@4.0.0: + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} + engines: {node: '>=8'} + dev: true + /upath@1.2.0: resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} engines: {node: '>=4'} @@ -13457,7 +13227,7 @@ packages: requires-port: 1.0.0 dev: false - /use-callback-ref@1.3.0(@types/react@18.2.0)(react@18.2.0): + /use-callback-ref@1.3.0(@types/react@18.2.6)(react@18.2.0): resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==} engines: {node: '>=10'} peerDependencies: @@ -13467,7 +13237,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.0 + '@types/react': 18.2.6 react: 18.2.0 tslib: 2.5.0 dev: false @@ -13480,7 +13250,7 @@ packages: react: 18.2.0 dev: false - /use-isomorphic-layout-effect@1.1.2(@types/react@18.2.0)(react@18.2.0): + /use-isomorphic-layout-effect@1.1.2(@types/react@18.2.6)(react@18.2.0): resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==} peerDependencies: '@types/react': '*' @@ -13489,11 +13259,11 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.0 + '@types/react': 18.2.6 react: 18.2.0 dev: false - /use-latest@1.2.1(@types/react@18.2.0)(react@18.2.0): + /use-latest@1.2.1(@types/react@18.2.6)(react@18.2.0): resolution: {integrity: sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==} peerDependencies: '@types/react': '*' @@ -13502,24 +13272,24 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.0 + '@types/react': 18.2.6 react: 18.2.0 - use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.0)(react@18.2.0) + use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.6)(react@18.2.0) dev: false - /use-onclickoutside@0.4.1(@types/react@18.2.0)(react@18.2.0): + /use-onclickoutside@0.4.1(@types/react@18.2.6)(react@18.2.0): resolution: {integrity: sha512-hAo1viJ9D2mPffUig4EWCwE4as7fq84HANk3MCkY3rhXk5oMl0mjLCLF/OhzWIhTaITcAcDDcnaxRdMHPq+sww==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: are-passive-events-supported: 1.1.1 react: 18.2.0 - use-latest: 1.2.1(@types/react@18.2.0)(react@18.2.0) + use-latest: 1.2.1(@types/react@18.2.6)(react@18.2.0) transitivePeerDependencies: - '@types/react' dev: false - /use-sidecar@1.1.2(@types/react@18.2.0)(react@18.2.0): + /use-sidecar@1.1.2(@types/react@18.2.6)(react@18.2.0): resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} engines: {node: '>=10'} peerDependencies: @@ -13529,7 +13299,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.0 + '@types/react': 18.2.6 detect-node-es: 1.1.0 react: 18.2.0 tslib: 2.5.0 @@ -13650,8 +13420,8 @@ packages: xml-name-validator: 4.0.0 dev: false - /wagmi@0.12.12(ethers@5.7.2)(immer@10.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)(zod@3.21.4): - resolution: {integrity: sha512-AEY4res9WCeAEbVv++tgdx6981lkdiAwfpLPj24mawMoocj2Cqr6j304lq7EJiEhnoiPqIwvbBzme3sAmUWYUA==} + /wagmi@0.12.13(ethers@5.7.2)(immer@10.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)(zod@3.21.4): + resolution: {integrity: sha512-1J+F68MztodPUo2OIFImiC3OoZD4gdryxTidfwQz9LJawXdBNmAOFvq0LQClrrqgFk0Gd3EoLo/MKGiEn2RsMg==} peerDependencies: ethers: '>=5.5.1 <6' react: '>=17.0.0' @@ -13660,10 +13430,10 @@ packages: typescript: optional: true dependencies: - '@tanstack/query-sync-storage-persister': 4.29.1 + '@tanstack/query-sync-storage-persister': 4.29.5 '@tanstack/react-query': 4.29.5(react-dom@18.2.0)(react@18.2.0) '@tanstack/react-query-persist-client': 4.29.5(@tanstack/react-query@4.29.5) - '@wagmi/core': 0.10.10(ethers@5.7.2)(immer@10.0.1)(react@18.2.0)(typescript@5.0.4)(zod@3.21.4) + '@wagmi/core': 0.10.11(ethers@5.7.2)(immer@10.0.1)(react@18.2.0)(typescript@5.0.4)(zod@3.21.4) abitype: 0.3.0(typescript@5.0.4)(zod@3.21.4) ethers: 5.7.2 react: 18.2.0 @@ -13788,8 +13558,8 @@ packages: engines: {node: '>=10.13.0'} dev: true - /webpack@5.81.0(esbuild@0.17.18): - resolution: {integrity: sha512-AAjaJ9S4hYCVODKLQTgG5p5e11hiMawBwV2v8MYLE0C/6UAGLuAF4n1qa9GOwdxnicaP+5k6M5HrLmD4+gIB8Q==} + /webpack@5.82.0(esbuild@0.17.18): + resolution: {integrity: sha512-iGNA2fHhnDcV1bONdUu554eZx+XeldsaeQ8T67H6KKHl2nUSwX8Zm7cmzOA46ox/X1ARxf7Bjv8wQ/HsB5fxBg==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -13819,7 +13589,7 @@ packages: neo-async: 2.6.2 schema-utils: 3.1.2 tapable: 2.2.1 - terser-webpack-plugin: 5.3.7(esbuild@0.17.18)(webpack@5.81.0) + terser-webpack-plugin: 5.3.7(esbuild@0.17.18)(webpack@5.82.0) watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -13923,7 +13693,6 @@ packages: dependencies: string-width: 4.2.3 dev: false - optional: true /wonka@6.3.2: resolution: {integrity: sha512-2xXbQ1LnwNS7egVm1HPhW2FyKrekolzhpM3mCwXdQr55gO+tAiY76rhb32OL9kKsW8taj++iP7C6hxlVzbnvrw==} @@ -13932,6 +13701,7 @@ packages: /word-wrap@1.2.3: resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} engines: {node: '>=0.10.0'} + dev: true /workbox-background-sync@6.5.4: resolution: {integrity: sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g==} @@ -14072,7 +13842,7 @@ packages: resolution: {integrity: sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA==} dev: true - /workbox-webpack-plugin@6.5.4(webpack@5.81.0): + /workbox-webpack-plugin@6.5.4(webpack@5.82.0): resolution: {integrity: sha512-LmWm/zoaahe0EGmMTrSLUi+BjyR3cdGEfU3fS6PN1zKFYbqAKuQ+Oy/27e4VSXsyIwAw8+QDfk1XHNGtZu9nQg==} engines: {node: '>=10.0.0'} peerDependencies: @@ -14081,7 +13851,7 @@ packages: fast-json-stable-stringify: 2.1.0 pretty-bytes: 5.6.0 upath: 1.2.0 - webpack: 5.81.0(esbuild@0.17.18) + webpack: 5.82.0(esbuild@0.17.18) webpack-sources: 1.4.3 workbox-build: 6.5.4 transitivePeerDependencies: @@ -14252,10 +14022,9 @@ packages: /zod@3.21.4: resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} - dev: false - /zustand@4.3.7(immer@10.0.1)(react@18.2.0): - resolution: {integrity: sha512-dY8ERwB9Nd21ellgkBZFhudER8KVlelZm8388B5nDAXhO/+FZDhYMuRnqDgu5SYyRgz/iaf8RKnbUs/cHfOGlQ==} + /zustand@4.3.8(immer@10.0.1)(react@18.2.0): + resolution: {integrity: sha512-4h28KCkHg5ii/wcFFJ5Fp+k1J3gJoasaIbppdgZFO4BPJnsNxL0mQXBSFgOgAdCdBj35aDTPvdAJReTMntFPGg==} engines: {node: '>=12.7.0'} peerDependencies: immer: '>=9.0' diff --git a/public/locales/en/common.json b/public/locales/en/common.json index 34fbe517..c2fdc139 100644 --- a/public/locales/en/common.json +++ b/public/locales/en/common.json @@ -1,5 +1,6 @@ { "intlDateTime": "{{val, datetime}}", "ago": "{{time}} ago", - "joined ago": "Joined {{time}} ago" + "joined ago": "Joined {{time}} ago", + "signed and stored on the blockchain": "Ownership of this {{name}} data is guaranteed by blockchain and smart contracts to the creator alone." } \ No newline at end of file diff --git a/public/locales/en/site.json b/public/locales/en/site.json index 0fe088ce..a673d1bd 100644 --- a/public/locales/en/site.json +++ b/public/locales/en/site.json @@ -1,4 +1,3 @@ { - "load more": "There are {{count}} more {{name}}, click to load more", - "signed and stored on the blockchain": "Ownership of this {{name}} data is guaranteed by blockchain and smart contracts to the creator alone." + "load more": "There are {{count}} more {{name}}, click to load more" } \ No newline at end of file diff --git a/public/locales/ja/common.json b/public/locales/ja/common.json index 2dd0cc98..63ad2c82 100644 --- a/public/locales/ja/common.json +++ b/public/locales/ja/common.json @@ -55,5 +55,6 @@ "Showcase": "ã‚·ãƒ§ãƒžã‚ąãƒžã‚đ", "AI-generated summary": "AIãŒį”Ÿæˆã—ãŸč́įī„", "Generating": "į”Ÿæˆäļ­", - "Show more": "もãĢãĻčĄĻįĪšã™ã‚‹" + "Show more": "もãĢãĻčĄĻįĪšã™ã‚‹", + "signed and stored on the blockchain": "{{name}}ãŊ、å‰ĩä―œč€…ãŦよãĢãĶį―ē名され、ブロッã‚ŊチェマãƒģãŦåŪ‰å…ĻãŦäŋå­˜ã•れãĶいãūす。" } diff --git a/public/locales/ja/site.json b/public/locales/ja/site.json index 626c40f4..2ceee34b 100644 --- a/public/locales/ja/site.json +++ b/public/locales/ja/site.json @@ -4,7 +4,6 @@ "About": "įīđäŧ‹", "Tags": "ã‚ŋグ", "load more": "ãūだ{{count}}äŧķãŪ{{name}}がありãūす。", - "signed and stored on the blockchain": "{{name}}ãŊ、å‰ĩä―œč€…ãŦよãĢãĶį―ē名され、ブロッã‚ŊチェマãƒģãŦåŪ‰å…ĻãŦäŋå­˜ã•れãĶいãūす。", "Write a comment on the blockchain": "ブロッã‚Ŋチェマãƒģでã‚ģãƒĄãƒģトする", "powered by": "こãŪã‚ĩã‚ĪトãŊ  ãŦよãĢãĶä―œå‹•ã—ãūす" } diff --git a/public/locales/zh-TW/common.json b/public/locales/zh-TW/common.json index 37245f2e..a64f43fe 100644 --- a/public/locales/zh-TW/common.json +++ b/public/locales/zh-TW/common.json @@ -1,87 +1,88 @@ { - "Connect": "é€Ģᷚ", - "Followers": "įē‰įĩē", - "Following": "čŋ―čđĪäļ­", - "Followings": "čŋ―čđĪäļ­", - "Follow": "čŋ―čđĪ", - "Unfollow": "取æķˆčŋ―čđĪ", - "intlDateTime": "{{val, datetime}}", - "post": "文įŦ ", - "posts": "文įŦ ", - "page": "頁éĒ", - "pages": "頁éĒ", - "comment": "į•™čĻ€", - "comments": "į•™čĻ€", - "Comment": "į•™čĻ€", - "Comments": "į•™čĻ€", - "reply": "回č͆", - "replies": "回č͆", - "like": "čۚ", - "likes": "čۚ", - "blog": "éƒĻč―æ ž", - "Owner": "æ“æœ‰č€…", - "Transaction Hash": "äšĪ易雜æđŠå€ž", - "IPFS Address": "IPFS ä―å€", - "BNB Greenfield Address": "BNB Greenfield ä―å€", - "Creation": "å‰ĩåŧš", - "Last Update": "最åūŒæ›ī新", - "Create Character": "å‰ĩåŧščšŦäŧ―", - "Submit": "提äšĪ", - "Reply": "回č͆", - "Cancel Reply": "取æķˆå›žč͆", - "Edit": "į·ĻčžŊ", - "Cancel Edit": "取æķˆį·ĻčžŊ", - "Confirm Modification": "įĒščŠį·ĻčžŊ", - "ago": "{{time}}前", - "joined ago": "{{time}}前加å…Ĩ", - "obtained ago": "{{time}}前įēåū—", - "Like": "éŧžčۚ", - "Mint to an NFT": "įč—į‚š NFT", - "Like successfully": "éŧžčŪšæˆåŠŸ", - "Mint successfully": "įč—åŪŒæˆï―ž", - "like stored": "ä― įš„éŧžčۚå·ēčĒŦåŪ‰å…Ļ地å„ē存åœĻå€åĄŠéˆäļŠïžŒåŊäŧĨåœĻ <2>Crossbell Scan äŸĨįœ‹", - "mint stored": "ä― å·ē將這įŊ‡æ–‡įŦ įč—æˆ NFTåŊäŧĨåœĻ <2>xChar 或 <6>Crossbell Scan äŸĨįœ‹", - "Got it, thanks!": "įŸĨ道å•Ķ感æĐįš„åŋƒï―ž", - "Like List": "按čŪšåˆ—čĄĻ", - "Mint List": "įč—åˆ—čĄĻ", - "Revert": "æ”ķ回", - "Confirm to revert": "įĒšåۚæ”ķ回", - "like revert": "čŦ‹įĒšåۚæ˜ŊåĶæƒģč́æ”ķ回這個éŧžčŪšæ“ä―œïžŸ", - "Cancel": "įŪ—äš†", - "Confirm": "įĒšåۚ", - "No Content Yet.": "äŧ€éšžéƒ―æē’", - "Close": "關閉", - "Dashboard": "äļŧæŽ§č‡š", - "Copied!": "拷čēåŪŒæˆ", - "Operator Sign": "į°―åæŽˆæŽŠ", - "Switch Characters": "切換čšŦäŧ―", - "Upgrade to Wallet": "升įīšį‚šéŒĒåŒ…čŠč­‰", - "Disconnect": "äļ­æ–·é€Ģᷚ", - "Loading": "辉å…Ĩäļ­...", - "Showcase": "åą•įĪšæŦƒ", - "AI-generated summary": "AI į”Ÿæˆįš„æ‘˜č́", - "Generating": "į”Ÿæˆäļ­...", - "Show more": "éĄŊįĪšæ›īåΚ", - "Patron": "čīŠåŠĐ", - "Become a patron of {{name}}": "æˆį‚š {{name}} įš„čīŠåŠĐ者", - "Latest patrons": "最新čīŠåŠĐ者", - "Latest tipper": "最新čīŠåŠĐ者", - "You are here to be the first patron.": "ä― æ˜ŊįŽŽäļ€ä―čīŠåŠĐč€…ã€‚", - "You are here to be the first tipper.": "ä― æ˜ŊįŽŽäļ€ä―čīŠåŠĐč€…ã€‚", - "Select a tier": "éļ擇äļ€å€‹į­‰įīš", - "One-time": "äļ€æŽĄæ€§", - "Monthly and NFT Rewards": "æŊæœˆå’Œ NFT įŽå‹ĩ", - "Coming soon": "åģ將æŽĻ凚", - "What is MIRA? Where can I get some?": "MIRA æ˜Ŋäŧ€éšžïžŸčƒ―吃嗎我åœĻ哊čĢĄåŊäŧĨįēåū—", - "Tip": "čīŠåŠĐ", - "Tip the post: {{name}}": "čīŠåŠĐ文įŦ ïžš{{name}}", - "Custom": "臩čĻ‚", - "Mintable": "Mintable", - "Successfully followed": "å˜ŋïžä― å·ēįķ“é–‹å§‹<2>čŋ―čđĪäŧ–å€‘įš„æœ€æ–°å‹•æ…‹å›‰ã€‚", - "Enable AI Filtering": "AI 過æŋū", - "Filter out possible low-quality content based on AI ratings.": "埚斞 AI čĐ•åˆ†éŽæŋūåŊčƒ―äļä―ģįš„å…§åŪđ", - "Refreshing": "é‡æ–°čž‰å…Ĩäļ­", - "Search for your interest": "æœä― æ‰€æƒģ", - "results": "項įĩæžœ", - "My xLog": "ä― įš„ xLog" + "Connect": "é€Ģᷚ", + "Followers": "įē‰įĩē", + "Following": "čŋ―čđĪäļ­", + "Followings": "čŋ―čđĪäļ­", + "Follow": "čŋ―čđĪ", + "Unfollow": "取æķˆčŋ―čđĪ", + "intlDateTime": "{{val, datetime}}", + "post": "文įŦ ", + "posts": "文įŦ ", + "page": "頁éĒ", + "pages": "頁éĒ", + "comment": "į•™čĻ€", + "comments": "į•™čĻ€", + "Comment": "į•™čĻ€", + "Comments": "į•™čĻ€", + "reply": "回č͆", + "replies": "回č͆", + "like": "čۚ", + "likes": "čۚ", + "blog": "éƒĻč―æ ž", + "Owner": "æ“æœ‰č€…", + "Transaction Hash": "äšĪ易雜æđŠå€ž", + "IPFS Address": "IPFS ä―å€", + "BNB Greenfield Address": "BNB Greenfield ä―å€", + "Creation": "å‰ĩåŧš", + "Last Update": "最åūŒæ›ī新", + "Create Character": "å‰ĩåŧščšŦäŧ―", + "Submit": "提äšĪ", + "Reply": "回č͆", + "Cancel Reply": "取æķˆå›žč͆", + "Edit": "į·ĻčžŊ", + "Cancel Edit": "取æķˆį·ĻčžŊ", + "Confirm Modification": "įĒščŠį·ĻčžŊ", + "ago": "{{time}}前", + "joined ago": "{{time}}前加å…Ĩ", + "obtained ago": "{{time}}前įēåū—", + "Like": "éŧžčۚ", + "Mint to an NFT": "įč—į‚š NFT", + "Like successfully": "éŧžčŪšæˆåŠŸ", + "Mint successfully": "įč—åŪŒæˆï―ž", + "like stored": "ä― įš„éŧžčۚå·ēčĒŦåŪ‰å…Ļ地å„ē存åœĻå€åĄŠéˆäļŠïžŒåŊäŧĨåœĻ <2>Crossbell Scan äŸĨįœ‹", + "mint stored": "ä― å·ē將這įŊ‡æ–‡įŦ įč—æˆ NFTåŊäŧĨåœĻ <2>xChar 或 <6>Crossbell Scan äŸĨįœ‹", + "Got it, thanks!": "įŸĨ道å•Ķ感æĐįš„åŋƒï―ž", + "Like List": "按čŪšåˆ—čĄĻ", + "Mint List": "įč—åˆ—čĄĻ", + "Revert": "æ”ķ回", + "Confirm to revert": "įĒšåۚæ”ķ回", + "like revert": "čŦ‹įĒšåۚæ˜ŊåĶæƒģč́æ”ķ回這個éŧžčŪšæ“ä―œïžŸ", + "Cancel": "įŪ—äš†", + "Confirm": "įĒšåۚ", + "No Content Yet.": "äŧ€éšžéƒ―æē’", + "Close": "關閉", + "Dashboard": "äļŧæŽ§č‡š", + "Copied!": "拷čēåŪŒæˆ", + "Operator Sign": "į°―åæŽˆæŽŠ", + "Switch Characters": "切換čšŦäŧ―", + "Upgrade to Wallet": "升įīšį‚šéŒĒåŒ…čŠč­‰", + "Disconnect": "äļ­æ–·é€Ģᷚ", + "Loading": "辉å…Ĩäļ­...", + "Showcase": "åą•įĪšæŦƒ", + "AI-generated summary": "AI į”Ÿæˆįš„æ‘˜č́", + "Generating": "į”Ÿæˆäļ­...", + "Show more": "éĄŊįĪšæ›īåΚ", + "Patron": "čīŠåŠĐ", + "Become a patron of {{name}}": "æˆį‚š {{name}} įš„čīŠåŠĐ者", + "Latest patrons": "最新čīŠåŠĐ者", + "Latest tipper": "最新čīŠåŠĐ者", + "You are here to be the first patron.": "ä― æ˜ŊįŽŽäļ€ä―čīŠåŠĐč€…ã€‚", + "You are here to be the first tipper.": "ä― æ˜ŊįŽŽäļ€ä―čīŠåŠĐč€…ã€‚", + "Select a tier": "éļ擇äļ€å€‹į­‰įīš", + "One-time": "äļ€æŽĄæ€§", + "Monthly and NFT Rewards": "æŊæœˆå’Œ NFT įŽå‹ĩ", + "Coming soon": "åģ將æŽĻ凚", + "What is MIRA? Where can I get some?": "MIRA æ˜Ŋäŧ€éšžïžŸčƒ―吃嗎我åœĻ哊čĢĄåŊäŧĨįēåū—", + "Tip": "čīŠåŠĐ", + "Tip the post: {{name}}": "čīŠåŠĐ文įŦ ïžš{{name}}", + "Custom": "臩čĻ‚", + "Mintable": "Mintable", + "Successfully followed": "å˜ŋïžä― å·ēįķ“é–‹å§‹<2>čŋ―čđĪäŧ–å€‘įš„æœ€æ–°å‹•æ…‹å›‰ã€‚", + "Enable AI Filtering": "AI 過æŋū", + "Filter out possible low-quality content based on AI ratings.": "埚斞 AI čĐ•åˆ†éŽæŋūåŊčƒ―äļä―ģįš„å…§åŪđ", + "Refreshing": "é‡æ–°čž‰å…Ĩäļ­", + "Search for your interest": "æœä― æ‰€æƒģ", + "results": "項įĩæžœ", + "My xLog": "ä― įš„ xLog", + "signed and stored on the blockchain": "æ­Ī{{name}}æ•ļæ“šæ‰€æœ‰æŽŠį”ąå€åĄŠéˆåŠ åŊ†æŠ€čĄ“å’Œæ™ščƒ―合įī„äŋéšœåƒ…æ­ļå‰ĩä―œč€…æ‰€æœ‰ã€‚" } \ No newline at end of file diff --git a/public/locales/zh-TW/site.json b/public/locales/zh-TW/site.json index c2710677..b2c42af1 100644 --- a/public/locales/zh-TW/site.json +++ b/public/locales/zh-TW/site.json @@ -4,7 +4,6 @@ "About": "關斞", "Tags": "æĻ™įąĪ", "load more": "還有{{count}}įŊ‡{{name}}éŧžéļ辉å…Ĩæ›īåĪšæ–‡įŦ ", - "signed and stored on the blockchain": "æ­Ī{{name}}æ•ļæ“šæ‰€æœ‰æŽŠį”ąå€åĄŠéˆåŠ åŊ†æŠ€čĄ“å’Œæ™ščƒ―合įī„äŋéšœåƒ…æ­ļå‰ĩä―œč€…æ‰€æœ‰ã€‚", "Write a comment on the blockchain": "åœĻå€åĄŠéˆäļŠį•™čĻ€ã€‚", "powered by": "į”ą 提äū›æ”Ŋæī", "This address is in local editing preview mode and cannot be viewed by the public.": "æ­Īåœ°å€č™•æ–žæœŽåœ°į·ĻčžŊ預čĶ―æĻĄåžïžŒå°šæœŠå…Žé–‹ã€‚", diff --git a/public/locales/zh/common.json b/public/locales/zh/common.json index 2918aace..4febe2b0 100644 --- a/public/locales/zh/common.json +++ b/public/locales/zh/common.json @@ -83,5 +83,6 @@ "Refreshing": "刷新äļ­", "Search for your interest": "搜įīĒä― æ„Ÿå…īčķĢįš„å†…åŪđ", "results": "æĄįŧ“æžœ", - "My xLog": "æˆ‘įš„ xLog" + "My xLog": "æˆ‘įš„ xLog", + "signed and stored on the blockchain": "æ­Ī{{name}}数æŪæ‰€æœ‰æƒį”ąåŒšå—é“ū加åŊ†æŠ€æœŊå’Œæ™ščƒ―åˆįšĶäŋéšœäŧ…å―’åˆ›ä―œč€…æ‰€æœ‰ã€‚" } diff --git a/public/locales/zh/site.json b/public/locales/zh/site.json index 1926e4a1..465ec3ae 100644 --- a/public/locales/zh/site.json +++ b/public/locales/zh/site.json @@ -4,7 +4,6 @@ "About": "å…ģ䚎", "Tags": "标į­ū", "load more": "čŋ˜æœ‰ {{count}} įŊ‡{{name}}į‚đå‡ŧåŠ č――æ›īåΚ", - "signed and stored on the blockchain": "æ­Ī{{name}}数æŪæ‰€æœ‰æƒį”ąåŒšå—é“ū加åŊ†æŠ€æœŊå’Œæ™ščƒ―åˆįšĶäŋéšœäŧ…å―’åˆ›ä―œč€…æ‰€æœ‰ã€‚", "Write a comment on the blockchain": "åœĻ匚块é“ūäļŠå†™äļ‹ä― įš„čŊ„čŪš", "powered by": "į”ą 提äū›æ”Ŋ持", "This address is in local editing preview mode and cannot be viewed by the public.": @@ -15,5 +14,6 @@ "View on Crossbell Scan": "åœĻ Crossbell Scan äŸĨįœ‹", "Subscribe to JSON Feed": "čŪĒ阅 JSON Feed", "Subscribe to RSS": "čŪĒ阅 RSS", - "Search on this site": "åœĻ朎įŦ™æœįīĒ" + "Search on this site": "åœĻ朎įŦ™æœįīĒ", + "404 - Whoops, this page is gone.": "404 - 哎呀čŋ™äļŠéĄĩéĒäļč§äš†ã€‚" } \ No newline at end of file diff --git a/src/app/(home)/activities/page.tsx b/src/app/(home)/activities/page.tsx new file mode 100644 index 00000000..13d68c5c --- /dev/null +++ b/src/app/(home)/activities/page.tsx @@ -0,0 +1,39 @@ +import { Metadata } from "next" + +import { Hydrate, dehydrate } from "@tanstack/react-query" + +import { HomeFeed } from "~/components/home/HomeFeed" +import { HomeSidebar } from "~/components/home/HomeSidebar" +import { APP_NAME } from "~/lib/env" +import getQueryClient from "~/lib/query-client" +import { prefetchGetFeed } from "~/queries/home.server" + +export const metadata: Metadata = { + title: `Activities - ${APP_NAME}`, +} + +async function Activities() { + const queryClient = getQueryClient() + await prefetchGetFeed( + { + type: "latest", + }, + queryClient, + ) + const dehydratedState = dehydrate(queryClient) + + return ( + +
+
+
+ +
+ +
+
+
+ ) +} + +export default Activities diff --git a/src/components/main/MainLayout.tsx b/src/app/(home)/layout.tsx similarity index 58% rename from src/components/main/MainLayout.tsx rename to src/app/(home)/layout.tsx index 9dc0d5a3..68fac978 100644 --- a/src/components/main/MainLayout.tsx +++ b/src/app/(home)/layout.tsx @@ -1,61 +1,26 @@ -import { useTranslation } from "next-i18next" -import { useRouter } from "next/router" +import { Hydrate, dehydrate } from "@tanstack/react-query" +import { ConnectButton } from "~/components/common/ConnectButton" +import { DarkModeSwitch } from "~/components/common/DarkModeSwitch" import { Logo } from "~/components/common/Logo" -import { - APP_DESCRIPTION, - APP_NAME, - DISCORD_LINK, - GITHUB_LINK, - TWITTER_LINK, -} from "~/lib/env" +import HomeTabs from "~/components/home/HomeTabs" +import { UniLink } from "~/components/ui/UniLink" +import { APP_NAME, DISCORD_LINK, GITHUB_LINK, TWITTER_LINK } from "~/lib/env" import { getSiteLink } from "~/lib/helpers" -import { cn } from "~/lib/utils" +import getQueryClient from "~/lib/query-client" +import { prefetchGetShowcase } from "~/queries/home.server" -import { ConnectButton } from "../common/ConnectButton" -import { DarkModeSwitch } from "../common/DarkModeSwitch" -import { SEOHead } from "../common/SEOHead" -import { Image } from "../ui/Image" -import { UniLink } from "../ui/UniLink" - -const tabs = [ - { - name: "Home", - link: "/", - }, - { - name: "Activities", - link: "/activities", - }, - { - name: ( - github stars - ), - link: GITHUB_LINK, - }, -] - -export function MainLayout({ +export default async function HomeLayout({ children, - title, }: { children?: React.ReactNode - title?: string }) { - const { t } = useTranslation("index") - const router = useRouter() + const queryClient = getQueryClient() + await prefetchGetShowcase(queryClient) + const dehydratedState = dehydrate(queryClient) return ( - <> - +
- {tabs?.map((tab, index) => ( - - ))} +
@@ -122,6 +74,6 @@ export function MainLayout({ - + ) } diff --git a/src/app/(home)/page.tsx b/src/app/(home)/page.tsx new file mode 100644 index 00000000..3c2888e4 --- /dev/null +++ b/src/app/(home)/page.tsx @@ -0,0 +1,341 @@ +import Link from "next/link" +import { memo } from "react" + +import { Logo } from "~/components/common/Logo" +import { default as OriginEntranceButton } from "~/components/home/EntranceButton" +import { Integration } from "~/components/home/Integrations" +import { ShowCase } from "~/components/home/Showcase" +import { Button } from "~/components/ui/Button" +import { Image } from "~/components/ui/Image" +import { CSB_SCAN, GITHUB_LINK } from "~/lib/env" +import { getSiteLink } from "~/lib/helpers" +import { Trans, useTranslation } from "~/lib/i18n" + +async function Home() { + const { t, i18n } = await useTranslation("index") + + const EntranceButton = memo(function Button() { + return ( + + + {t("Dashboard")} + + } + unconnectedContent={t("Get my xLog in 5 minutes")} + /> + ) + }) + + const features: { + title: string + subfeatures: { + screenshot?: { + src: string + } + icon: string + title: string + }[] + extra?: boolean + }[] = [ + { + title: "Write", + subfeatures: [ + { + screenshot: { + src: "/assets/easy.png", + }, + icon: "ðŸĪŠ", + title: "Easy to get started", + }, + { + screenshot: { + src: "/assets/experience.png", + }, + icon: "😆", + title: "Elegant experience", + }, + { + screenshot: { + src: "/assets/fast.png", + }, + icon: "🚀", + title: "Fast", + }, + ], + }, + { + title: "Own", + subfeatures: [ + { + screenshot: { + src: "/assets/safe.png", + }, + icon: "🔒", + title: "Safe", + }, + { + screenshot: { + src: "/assets/customizable.png", + }, + icon: "ðŸŽĻ", + title: "Customizable", + }, + { + screenshot: { + src: "/assets/open.png", + }, + icon: "🌐", + title: "Open", + }, + ], + extra: true, + }, + { + title: "Earn", + subfeatures: [ + { + icon: "🊙", + title: "Creator Incentives", + }, + { + icon: "🏟ïļ", + title: "DAO", + }, + ], + }, + ] + + return ( +
+
+

+ {features.map((feature) => ( + + {t(feature.title)} + {t(".")} + + ))} +

+

+ + xLog is the best{" "} + + on-chain + {" "} + and{" "} + + open-source + {" "} + blogging community for everyone. + +

+
+ + +
+
+ {t("Explore the xLog way")} + +
+
+
+
+ {features.map((feature, index) => ( +
+
+
+
+ {index + 1} +
+

+ {t(feature.title)} +

+

+ {t(`features.${feature.title}.subtitle`)} +

+

+ + . + + ), + }} + ns="index" + /> +

+
+
    + {feature.subfeatures.map((item) => ( +
  • + {item.screenshot?.src && ( +
    + {item.title} +
    + )} +

    + {item.icon} + + {t(item.title)} + +

    +

    + , + axfm: ( + + . + + ), + aincentive: ( + + . + + ), + }} + ns="index" + /> +

    +
  • + ))} +
+ {feature.extra && ( +
+
+ ðŸĪŦ{" "} + + {t(`features.${feature.title}.extra.title`)} + +
+
{t(`features.${feature.title}.extra.description`)}
+ + {t(`features.${feature.title}.extra.button`)} + +
+ )} +
+ ))} +
+
+
+ {t("Showcase")} +
+
+

+ {t( + "Discover these awesome teams and creators on xLog (sorted by update time)", + )} +

+ +
+
+
+
+ {t("Integration")} +
+
+

+ {t( + "xLog's open design allows it to integrate with many other open protocols and applications without friction.", + )} +

+
    + +
  • + +
  • +
+
+
+
+
+
+ +
+ +
+
+ ) +} + +export default Home diff --git a/src/app/(home)/search/page.tsx b/src/app/(home)/search/page.tsx new file mode 100644 index 00000000..e49284a5 --- /dev/null +++ b/src/app/(home)/search/page.tsx @@ -0,0 +1,36 @@ +import { Metadata } from "next" + +import { SearchInput } from "~/components/common/SearchInput" +import { HomeFeed } from "~/components/home/HomeFeed" +import { HomeSidebar } from "~/components/home/HomeSidebar" +import { APP_NAME } from "~/lib/env" + +export function generateMetadata({ + searchParams, +}: { + searchParams: { + [key: string]: string | string[] | undefined + } +}): Metadata { + return { + title: `Search: ${searchParams.q} - ${APP_NAME}`, + } +} + +async function Search() { + return ( +
+
+
+ +
+ +
+
+ +
+
+ ) +} + +export default Search diff --git a/src/app/(home)/topic/[topic]/page.tsx b/src/app/(home)/topic/[topic]/page.tsx new file mode 100644 index 00000000..6870d8bb --- /dev/null +++ b/src/app/(home)/topic/[topic]/page.tsx @@ -0,0 +1,46 @@ +import { Metadata } from "next" + +import { HomeFeed } from "~/components/home/HomeFeed" +import { HomeSidebar } from "~/components/home/HomeSidebar" +import { APP_NAME } from "~/lib/env" + +import topics from "../../../../../data/topics.json" + +export function generateMetadata({ + params, +}: { + params: { + topic: string + } +}): Metadata { + return { + title: `Topic: ${params.topic} - ${APP_NAME}`, + } +} + +function Topic({ + params, +}: { + params: { + topic: string + } +}) { + const info = topics.find((t) => t.name === params.topic) + + return ( +
+
+
+

Topic: {params.topic}

+

{info?.description}

+
+ +
+
+ +
+
+ ) +} + +export default Topic diff --git a/src/app/api/check-domain/route.ts b/src/app/api/check-domain/route.ts new file mode 100644 index 00000000..5d988230 --- /dev/null +++ b/src/app/api/check-domain/route.ts @@ -0,0 +1,18 @@ +import { NextResponse } from "next/server" + +import { NextServerResponse, getQuery } from "~/lib/server-helper" +import { checkDomainServer } from "~/models/site.model" + +// /api/check-domain?handle=innei-4525&domain=blog.innei.ren +export async function GET(req: Request): Promise { + const { handle, domain } = getQuery(req) + + if (!handle || !domain) { + return NextResponse.json({ error: "Missing characterId or domain" }) + } + const res = new NextServerResponse() + + return res.status(200).json({ + data: await checkDomainServer(domain as string, handle as string), + }) +} diff --git a/src/app/api/healthcheck/route.ts b/src/app/api/healthcheck/route.ts new file mode 100644 index 00000000..1048e452 --- /dev/null +++ b/src/app/api/healthcheck/route.ts @@ -0,0 +1,9 @@ +import { NextServerResponse } from "~/lib/server-helper" + +// /api/healthcheck +export async function GET() { + const res = new NextServerResponse() + return res.status(200).json({ + ok: true, + }) +} diff --git a/src/pages/api/host2handle.ts b/src/app/api/host2handle/route.ts similarity index 85% rename from src/pages/api/host2handle.ts rename to src/app/api/host2handle/route.ts index f97d02a9..0bc9b6f0 100644 --- a/src/pages/api/host2handle.ts +++ b/src/app/api/host2handle/route.ts @@ -1,14 +1,11 @@ -import { NextApiRequest, NextApiResponse } from "next" - import { OUR_DOMAIN } from "~/lib/env" import { cacheGet } from "~/lib/redis.server" +import { NextServerResponse, getQuery } from "~/lib/server-helper" import { checkDomainServer, fetchTenant } from "~/models/site.model" -export default async function handler( - req: NextApiRequest, - res: NextApiResponse, -) { - let { host } = req.query +// /api/host2handle?host=blog.innei.ren +export async function GET(req: Request) { + let { host } = getQuery(req) let realHost: string if (Array.isArray(host)) { @@ -57,6 +54,6 @@ export default async function handler( }, }) } - - res.status(200).json(result) + const res = new NextServerResponse() + return res.status(200).json(result) } diff --git a/src/pages/api/import/mirror.xyz.ts b/src/app/api/import/mirror.xyz/route.ts similarity index 81% rename from src/pages/api/import/mirror.xyz.ts rename to src/app/api/import/mirror.xyz/route.ts index 46054246..6337850b 100644 --- a/src/pages/api/import/mirror.xyz.ts +++ b/src/app/api/import/mirror.xyz/route.ts @@ -1,10 +1,8 @@ -import { NextApiRequest, NextApiResponse } from "next" +import { getDefaultSlug } from "~/lib/default-slug" +import { NextServerResponse, getQuery } from "~/lib/server-helper" -export default async function handler( - req: NextApiRequest, - res: NextApiResponse, -) { - const { address } = req.query +export async function GET(req: Request) { + const { address } = getQuery(req) const result = await ( await fetch("https://mirror.xyz/api/graphql", { @@ -20,5 +18,22 @@ export default async function handler( }) ).json() - res.status(200).json(result) + if (result.data?.projectFeed?.posts?.length) { + result.data.projectFeed.posts = result.data.projectFeed.posts.map( + (post: any) => { + return { + title: post.title, + date_published: new Date( + post.publishedAtTimestamp * 1000, + ).toISOString(), + slug: getDefaultSlug(post.title, post.digest), + tags: ["Mirror.xyz"], + content: post.body, + external_urls: [`https://mirror.xyz/${address}/${post.digest}`], + } + }, + ) + } + + return new NextServerResponse().status(200).json(result) } diff --git a/src/pages/api/pages.ts b/src/app/api/pages/route.ts similarity index 63% rename from src/pages/api/pages.ts rename to src/app/api/pages/route.ts index 8781951c..e1041456 100644 --- a/src/pages/api/pages.ts +++ b/src/app/api/pages/route.ts @@ -1,19 +1,15 @@ -import { NextApiRequest, NextApiResponse } from "next" - +import { NextServerResponse, getQuery } from "~/lib/server-helper" import { PageVisibilityEnum } from "~/lib/types" import { getPagesBySite } from "~/models/page.model" -export default async function handler( - req: NextApiRequest, - res: NextApiResponse, -) { - const query = req.query +export async function GET(req: Request) { + const query = getQuery(req) const result = await getPagesBySite({ characterId: +(query.characterId || 0) as number, type: query.type as "post" | "page", visibility: query.visibility as PageVisibilityEnum, - limit: query.take ? parseInt(query.take as string) : undefined, + limit: query.limit ? parseInt(query.limit as string) : undefined, cursor: query.cursor as string, useStat: true, ...(query.tags && { @@ -22,6 +18,6 @@ export default async function handler( : [query.tags as string], }), }) - - res.status(200).json(result) + const res = new NextServerResponse() + return res.status(200).json(result) } diff --git a/src/pages/api/redirection.tsx b/src/app/api/redirection/route.ts similarity index 81% rename from src/pages/api/redirection.tsx rename to src/app/api/redirection/route.ts index 2f4676f7..f54f8b90 100644 --- a/src/pages/api/redirection.tsx +++ b/src/app/api/redirection/route.ts @@ -1,9 +1,10 @@ import { NoteEntity } from "crossbell.js" -import { NextApiRequest, NextApiResponse } from "next" +import { redirect } from "next/navigation" import { IS_VERCEL_PREVIEW } from "~/lib/constants" import { getDefaultSlug } from "~/lib/default-slug" import { getSiteLink } from "~/lib/helpers" +import { NextServerResponse, getQuery } from "~/lib/server-helper" import { checkDomainServer } from "~/models/site.model" async function getOriginalNote( @@ -30,15 +31,12 @@ async function getOriginalNote( } } -export default async function handler( - req: NextApiRequest, - res: NextApiResponse, -) { - let { characterId, noteId } = req.query +export async function GET(req: Request): Promise { + let { characterId, noteId } = getQuery(req) + const res = new NextServerResponse() if (!characterId || typeof characterId !== "string") { - res.status(400).json({ error: "Missing characterId" }) - return + return res.status(400).json({ error: "Missing characterId" }) } let character @@ -84,6 +82,8 @@ export default async function handler( if (IS_VERCEL_PREVIEW) { const path = new URL(link).pathname - res.redirect(`/_site/${character.handle}${path}`) - } else res.redirect(link) + redirect(`/site/${character.handle}${path}`) + } else { + redirect(link) + } } diff --git a/src/pages/api/score.ts b/src/app/api/score/route.ts similarity index 90% rename from src/pages/api/score.ts rename to src/app/api/score/route.ts index de24f67b..ddc7f8c9 100644 --- a/src/pages/api/score.ts +++ b/src/app/api/score/route.ts @@ -1,8 +1,7 @@ -import { NextApiRequest, NextApiResponse } from "next" - import { toGateway } from "~/lib/ipfs-parser" import prisma from "~/lib/prisma.server" import { cacheGet } from "~/lib/redis.server" +import { NextServerResponse, getQuery } from "~/lib/server-helper" const getOriginalScore = async (cid: string) => { try { @@ -61,7 +60,7 @@ const getOriginalScore = async (cid: string) => { } } -export async function getScore(cid: string) { +async function getScore(cid: string) { const score = await cacheGet({ key: ["summary_score", cid], getValueFun: async () => { @@ -113,18 +112,16 @@ export async function getScore(cid: string) { return score } -export default async function handler( - req: NextApiRequest, - res: NextApiResponse, -) { - let { cid } = req.query +export async function GET(req: Request): Promise { + let { cid } = getQuery(req) + + const res = new NextServerResponse() if (!cid) { - res.status(400).send("Bad Request") - return + return res.status(400).send("Bad Request") } - res.status(200).json({ + return res.status(200).json({ data: await getScore(cid as string), }) } diff --git a/src/app/api/slug2id/route.ts b/src/app/api/slug2id/route.ts new file mode 100644 index 00000000..65c8e4cc --- /dev/null +++ b/src/app/api/slug2id/route.ts @@ -0,0 +1,15 @@ +import { NextServerResponse, getQuery } from "~/lib/server-helper" +import { getIdBySlug } from "~/queries/page.server" + +// GET /api/slug2id?characterId=52055&slug=note-144 +export async function GET(req: Request): Promise { + let { characterId, slug } = getQuery(req) + const res = new NextServerResponse() + if (!slug || !characterId) { + return res.status(400).send("Bad Request") + } + + return res + .status(200) + .send(await getIdBySlug(slug as string, characterId as string)) +} diff --git a/src/pages/api/summary.ts b/src/app/api/summary/route.ts similarity index 82% rename from src/pages/api/summary.ts rename to src/app/api/summary/route.ts index 8c7bf66b..e50b9595 100644 --- a/src/pages/api/summary.ts +++ b/src/app/api/summary/route.ts @@ -1,25 +1,30 @@ -import { OpenAI } from "langchain" import { AnalyzeDocumentChain, loadSummarizationChain } from "langchain/chains" +import { OpenAI } from "langchain/llms/openai" import { PromptTemplate } from "langchain/prompts" -import { NextApiRequest, NextApiResponse } from "next" +import removeMarkdown from "remove-markdown" import { Metadata } from "@prisma/client" import { toGateway } from "~/lib/ipfs-parser" import prisma from "~/lib/prisma.server" import { cacheGet } from "~/lib/redis.server" -import removeMarkdown from "remove-markdown" +import { NextServerResponse, getQuery } from "~/lib/server-helper" -const model = new OpenAI({ - openAIApiKey: process.env.OPENAI_API_KEY, - modelName: "gpt-3.5-turbo", - temperature: 0.3, - maxTokens: 400, -}) +let model: OpenAI | undefined + +if (process.env.OPENAI_API_KEY) { + model = new OpenAI({ + openAIApiKey: process.env.OPENAI_API_KEY, + modelName: "gpt-3.5-turbo", + temperature: 0.3, + maxTokens: 400, + }) +} const chains = new Map() const getOriginalSummary = async (cid: string, lang: string) => { + if (!model) return try { let { content } = await (await fetch(toGateway(`ipfs://${cid}`))).json() @@ -70,7 +75,7 @@ const getOriginalSummary = async (cid: string, lang: string) => { } } -export async function getSummary(cid: string, lang: string = "en") { +async function getSummary(cid: string, lang: string = "en") { const summary = await cacheGet({ key: ["summary", cid, lang], getValueFun: async () => { @@ -120,18 +125,15 @@ export async function getSummary(cid: string, lang: string = "en") { return summary } -export default async function handler( - req: NextApiRequest, - res: NextApiResponse, -) { - let { cid, lang } = req.query +export async function GET(req: Request): Promise { + let { cid, lang } = getQuery(req) + const res = new NextServerResponse() if (!cid) { - res.status(400).send("Bad Request") - return + return res.status(400).send("Bad Request") } - res.status(200).json({ + return res.status(200).json({ data: await getSummary(cid as string, lang as string), }) } diff --git a/src/pages/dashboard/[subdomain]/achievements.tsx b/src/app/dashboard/[subdomain]/achievements/page.tsx similarity index 63% rename from src/pages/dashboard/[subdomain]/achievements.tsx rename to src/app/dashboard/[subdomain]/achievements/page.tsx index 64838db0..99695f4d 100644 --- a/src/pages/dashboard/[subdomain]/achievements.tsx +++ b/src/app/dashboard/[subdomain]/achievements/page.tsx @@ -1,29 +1,14 @@ -import { GetServerSideProps } from "next" -import { useRouter } from "next/router" -import type { ReactElement } from "react" +"use client" + +import { useParams } from "next/navigation" import { AchievementItem } from "~/components/common/AchievementItem" -import { DashboardLayout } from "~/components/dashboard/DashboardLayout" -import { getServerSideProps as getLayoutServerSideProps } from "~/components/dashboard/DashboardLayout.server" import { DashboardMain } from "~/components/dashboard/DashboardMain" -import { serverSidePropsHandler } from "~/lib/server-side-props" import { useGetAchievements, useGetSite } from "~/queries/site" -export const getServerSideProps: GetServerSideProps = serverSidePropsHandler( - async (ctx) => { - const { props: layoutProps } = await getLayoutServerSideProps(ctx) - - return { - props: { - ...layoutProps, - }, - } - }, -) - export default function AchievementsPage() { - const router = useRouter() - const subdomain = router.query.subdomain as string + const params = useParams() + const subdomain = params?.subdomain as string const site = useGetSite(subdomain) const achievement = useGetAchievements(site.data?.characterId) @@ -62,7 +47,3 @@ export default function AchievementsPage() { ) } - -AchievementsPage.getLayout = (page: ReactElement) => { - return {page} -} diff --git a/src/pages/dashboard/[subdomain]/comments.tsx b/src/app/dashboard/[subdomain]/comments/page.tsx similarity index 82% rename from src/pages/dashboard/[subdomain]/comments.tsx rename to src/app/dashboard/[subdomain]/comments/page.tsx index 27592a46..b8520ec5 100644 --- a/src/pages/dashboard/[subdomain]/comments.tsx +++ b/src/app/dashboard/[subdomain]/comments/page.tsx @@ -1,34 +1,19 @@ -import { GetServerSideProps } from "next" -import { Trans, useTranslation } from "next-i18next" -import { useRouter } from "next/router" -import type { ReactElement } from "react" +"use client" + +import { useParams } from "next/navigation" import { Virtuoso } from "react-virtuoso" import { CommentItem } from "~/components/common/CommentItem" -import { DashboardLayout } from "~/components/dashboard/DashboardLayout" -import { getServerSideProps as getLayoutServerSideProps } from "~/components/dashboard/DashboardLayout.server" import { DashboardMain } from "~/components/dashboard/DashboardMain" import { UniLink } from "~/components/ui/UniLink" import { getSiteLink } from "~/lib/helpers" -import { serverSidePropsHandler } from "~/lib/server-side-props" +import { Trans, useTranslation } from "~/lib/i18n/client" import { useGetCommentsBySite, useGetSite } from "~/queries/site" -export const getServerSideProps: GetServerSideProps = serverSidePropsHandler( - async (ctx) => { - const { props: layoutProps } = await getLayoutServerSideProps(ctx) - - return { - props: { - ...layoutProps, - }, - } - }, -) - export default function CommentsPage() { - const router = useRouter() - const subdomain = router.query.subdomain as string - const { t } = useTranslation(["dashboard", "common"]) + const params = useParams() + const subdomain = params?.subdomain as string + const { t } = useTranslation("dashboard") const site = useGetSite(subdomain) @@ -137,10 +122,6 @@ export default function CommentsPage() { ) } -CommentsPage.getLayout = (page: ReactElement) => { - return {page} -} - const Loader = () => { const { t } = useTranslation("common") return ( diff --git a/src/pages/dashboard/[subdomain]/editor.tsx b/src/app/dashboard/[subdomain]/editor/page.tsx similarity index 95% rename from src/pages/dashboard/[subdomain]/editor.tsx rename to src/app/dashboard/[subdomain]/editor/page.tsx index 6db444fa..1fd82633 100644 --- a/src/pages/dashboard/[subdomain]/editor.tsx +++ b/src/app/dashboard/[subdomain]/editor/page.tsx @@ -1,9 +1,9 @@ +"use client" + import { useDebounceEffect } from "ahooks" import type { Root } from "mdast" import { nanoid } from "nanoid" -import { GetServerSideProps } from "next" -import { useTranslation } from "next-i18next" -import { useRouter } from "next/router" +import { useParams, useRouter, useSearchParams } from "next/navigation" import NodeID3 from "node-id3" import { ChangeEvent, @@ -15,7 +15,6 @@ import { useRef, useState, } from "react" -import type { ReactElement } from "react" import toast from "react-hot-toast" import { shallow } from "zustand/shallow" @@ -23,8 +22,6 @@ import type { EditorView } from "@codemirror/view" import { useQueryClient } from "@tanstack/react-query" import { PageContent } from "~/components/common/PageContent" -import { DashboardLayout } from "~/components/dashboard/DashboardLayout" -import { getServerSideProps as getLayoutServerSideProps } from "~/components/dashboard/DashboardLayout.server" import { DashboardMain } from "~/components/dashboard/DashboardMain" import { OptionsButton } from "~/components/dashboard/OptionsButton" import { PublishButton } from "~/components/dashboard/PublishButton" @@ -50,8 +47,8 @@ import { showConfetti } from "~/lib/confetti" import { getDefaultSlug } from "~/lib/default-slug" import { CSB_SCAN } from "~/lib/env" import { getSiteLink, getTwitterShareUrl } from "~/lib/helpers" +import { useTranslation } from "~/lib/i18n/client" import { getPageVisibility } from "~/lib/page-helpers" -import { serverSidePropsHandler } from "~/lib/server-side-props" import { delStorage, setStorage } from "~/lib/storage" import { PageVisibilityEnum } from "~/lib/types" import { cn, pick } from "~/lib/utils" @@ -64,18 +61,6 @@ import { } from "~/queries/page" import { useGetSite } from "~/queries/site" -export const getServerSideProps: GetServerSideProps = serverSidePropsHandler( - async (ctx) => { - const { props: layoutProps } = await getLayoutServerSideProps(ctx) - - return { - props: { - ...layoutProps, - }, - } - }, -) - const getInputDatetimeValue = (date: Date | string, dayjs: any) => { const str = dayjs(date).format() return str.substring(0, ((str.indexOf("T") | 0) + 6) | 0) @@ -85,10 +70,12 @@ export default function SubdomainEditor() { const router = useRouter() const queryClient = useQueryClient() const { t } = useTranslation("dashboard") + const params = useParams() + const subdomain = params?.subdomain as string + const searchParams = useSearchParams() - let pageId = router.query.id as string | undefined - const subdomain = router.query.subdomain as string - const isPost = router.query.type === "post" + let pageId = searchParams?.get("id") as string | undefined + const isPost = searchParams?.get("type") === "post" const site = useGetSite(subdomain) @@ -105,7 +92,9 @@ export default function SubdomainEditor() { site.data?.characterId, ]) router.replace( - `/dashboard/${subdomain}/editor?id=local-${randomId}&type=${router.query.type}`, + `/dashboard/${subdomain}/editor?id=local-${randomId}&type=${searchParams?.get( + "type", + )}`, ) } else { key = `draft-${site.data?.characterId}-${pageId}` @@ -117,7 +106,14 @@ export default function SubdomainEditor() { .replace(`draft-${site.data?.characterId}-`, ""), ) } - }, [subdomain, pageId, queryClient, router, site.data?.characterId]) + }, [ + subdomain, + pageId, + queryClient, + router, + site.data?.characterId, + searchParams, + ]) const page = useGetPage({ characterId: site.data?.characterId, @@ -272,7 +268,9 @@ export default function SubdomainEditor() { if (createOrUpdatePage.data.data) { router.replace( - `/dashboard/${subdomain}/editor?id=${site.data?.characterId}-${createOrUpdatePage.data.data}&type=${router.query.type}`, + `/dashboard/${subdomain}/editor?id=${site.data?.characterId}-${ + createOrUpdatePage.data.data + }&type=${searchParams?.get("type")}`, ) } @@ -507,7 +505,7 @@ export default function SubdomainEditor() { const onPreviewButtonClick = useCallback(() => { window.open( - `/_site/${subdomain}/preview/${draftKey.replace( + `/site/${subdomain}/preview/${draftKey.replace( `draft-${site.data?.characterId}-`, "", )}`, @@ -763,10 +761,6 @@ export default function SubdomainEditor() { ) } -SubdomainEditor.getLayout = (page: ReactElement) => { - return {page} -} - const EditorExtraProperties: FC<{ updateValue: (key: K, value: Values[K]) => void isPost: boolean diff --git a/src/pages/dashboard/[subdomain]/events.tsx b/src/app/dashboard/[subdomain]/events/page.tsx similarity index 89% rename from src/pages/dashboard/[subdomain]/events.tsx rename to src/app/dashboard/[subdomain]/events/page.tsx index 37b6d90f..81ecbf63 100644 --- a/src/pages/dashboard/[subdomain]/events.tsx +++ b/src/app/dashboard/[subdomain]/events/page.tsx @@ -1,35 +1,20 @@ -import { GetServerSideProps } from "next" -import { useTranslation } from "next-i18next" -import type { ReactElement } from "react" +"use client" + import { useEffect, useState } from "react" import { CharacterFloatCard } from "~/components/common/CharacterFloatCard" -import { DashboardLayout } from "~/components/dashboard/DashboardLayout" -import { getServerSideProps as getLayoutServerSideProps } from "~/components/dashboard/DashboardLayout.server" import { DashboardMain } from "~/components/dashboard/DashboardMain" import { Avatar } from "~/components/ui/Avatar" import { Image } from "~/components/ui/Image" import { UniLink } from "~/components/ui/UniLink" import { useDate } from "~/hooks/useDate" import { getSiteLink } from "~/lib/helpers" -import { serverSidePropsHandler } from "~/lib/server-side-props" +import { useTranslation } from "~/lib/i18n/client" import { getStorage, setStorage } from "~/lib/storage" import { cn } from "~/lib/utils" import { useGetPagesBySite } from "~/queries/page" import { useGetSite } from "~/queries/site" -export const getServerSideProps: GetServerSideProps = serverSidePropsHandler( - async (ctx) => { - const { props: layoutProps } = await getLayoutServerSideProps(ctx) - - return { - props: { - ...layoutProps, - }, - } - }, -) - function SiteAvatar({ siteId }: { siteId: string }) { const site = useGetSite(siteId) return ( @@ -189,7 +174,3 @@ export default function EventsPage() { ) } - -EventsPage.getLayout = (page: ReactElement) => { - return {page} -} diff --git a/src/pages/dashboard/[subdomain]/import/markdown.tsx b/src/app/dashboard/[subdomain]/import/markdown/page.tsx similarity index 78% rename from src/pages/dashboard/[subdomain]/import/markdown.tsx rename to src/app/dashboard/[subdomain]/import/markdown/page.tsx index 707cbb4b..b57110cf 100644 --- a/src/pages/dashboard/[subdomain]/import/markdown.tsx +++ b/src/app/dashboard/[subdomain]/import/markdown/page.tsx @@ -1,38 +1,24 @@ +"use client" + import type { NoteMetadata } from "crossbell.js" -import { GetServerSideProps } from "next" -import { useTranslation } from "next-i18next" -import { useRouter } from "next/router" -import { ReactElement, useEffect, useState } from "react" +import { useParams } from "next/navigation" +import { useEffect, useState } from "react" import { useForm } from "react-hook-form" import { toast } from "react-hot-toast" -import { DashboardLayout } from "~/components/dashboard/DashboardLayout" -import { getServerSideProps as getLayoutServerSideProps } from "~/components/dashboard/DashboardLayout.server" import { DashboardMain } from "~/components/dashboard/DashboardMain" import { ImportPreview } from "~/components/dashboard/ImportPreview" import { Button } from "~/components/ui/Button" import { Input } from "~/components/ui/Input" import { getSiteLink } from "~/lib/helpers" +import { useTranslation } from "~/lib/i18n/client" import { readFiles } from "~/lib/read-files" -import { serverSidePropsHandler } from "~/lib/server-side-props" import { usePostNotes } from "~/queries/page" import { useGetSite } from "~/queries/site" -export const getServerSideProps: GetServerSideProps = serverSidePropsHandler( - async (ctx) => { - const { props: layoutProps } = await getLayoutServerSideProps(ctx) - - return { - props: { - ...layoutProps, - }, - } - }, -) - export default function ImportMarkdownPage() { - const router = useRouter() - const subdomain = router.query.subdomain as string + const params = useParams() + const subdomain = params?.subdomain as string const site = useGetSite(subdomain) const { t } = useTranslation("dashboard") const form = useForm({ @@ -131,9 +117,3 @@ export default function ImportMarkdownPage() { ) } - -ImportMarkdownPage.getLayout = (page: ReactElement) => { - return ( - {page} - ) -} diff --git a/src/pages/dashboard/[subdomain]/import/mirror.tsx b/src/app/dashboard/[subdomain]/import/mirror/page.tsx similarity index 77% rename from src/pages/dashboard/[subdomain]/import/mirror.tsx rename to src/app/dashboard/[subdomain]/import/mirror/page.tsx index a4f37f67..df4e5908 100644 --- a/src/pages/dashboard/[subdomain]/import/mirror.tsx +++ b/src/app/dashboard/[subdomain]/import/mirror/page.tsx @@ -1,36 +1,22 @@ +"use client" + import type { NoteMetadata } from "crossbell.js" -import { GetServerSideProps } from "next" -import { useTranslation } from "next-i18next" -import { useRouter } from "next/router" -import { ReactElement, useEffect } from "react" +import { useParams } from "next/navigation" +import { useEffect } from "react" import { useForm } from "react-hook-form" import { toast } from "react-hot-toast" -import { DashboardLayout } from "~/components/dashboard/DashboardLayout" -import { getServerSideProps as getLayoutServerSideProps } from "~/components/dashboard/DashboardLayout.server" import { DashboardMain } from "~/components/dashboard/DashboardMain" import { ImportPreview } from "~/components/dashboard/ImportPreview" import { Button } from "~/components/ui/Button" import { getSiteLink } from "~/lib/helpers" -import { serverSidePropsHandler } from "~/lib/server-side-props" +import { useTranslation } from "~/lib/i18n/client" import { useCheckMirror, useGetMirrorXyz, usePostNotes } from "~/queries/page" import { useGetSite } from "~/queries/site" -export const getServerSideProps: GetServerSideProps = serverSidePropsHandler( - async (ctx) => { - const { props: layoutProps } = await getLayoutServerSideProps(ctx) - - return { - props: { - ...layoutProps, - }, - } - }, -) - export default function ImportMarkdownPage() { - const router = useRouter() - const subdomain = router.query.subdomain as string + const params = useParams() + const subdomain = params?.subdomain as string const site = useGetSite(subdomain) const { t } = useTranslation("dashboard") const form = useForm({ @@ -123,9 +109,3 @@ export default function ImportMarkdownPage() { ) } - -ImportMarkdownPage.getLayout = (page: ReactElement) => { - return ( - {page} - ) -} diff --git a/src/pages/dashboard/[subdomain]/import/index.tsx b/src/app/dashboard/[subdomain]/import/page.tsx similarity index 57% rename from src/pages/dashboard/[subdomain]/import/index.tsx rename to src/app/dashboard/[subdomain]/import/page.tsx index 31581863..d1bac6d6 100644 --- a/src/pages/dashboard/[subdomain]/import/index.tsx +++ b/src/app/dashboard/[subdomain]/import/page.tsx @@ -1,29 +1,14 @@ -import { GetServerSideProps } from "next" -import { useTranslation } from "next-i18next" -import { useRouter } from "next/router" -import type { ReactElement } from "react" +"use client" + +import { usePathname } from "next/navigation" -import { DashboardLayout } from "~/components/dashboard/DashboardLayout" -import { getServerSideProps as getLayoutServerSideProps } from "~/components/dashboard/DashboardLayout.server" import { DashboardMain } from "~/components/dashboard/DashboardMain" import { Image } from "~/components/ui/Image" import { UniLink } from "~/components/ui/UniLink" -import { serverSidePropsHandler } from "~/lib/server-side-props" - -export const getServerSideProps: GetServerSideProps = serverSidePropsHandler( - async (ctx) => { - const { props: layoutProps } = await getLayoutServerSideProps(ctx) - - return { - props: { - ...layoutProps, - }, - } - }, -) +import { useTranslation } from "~/lib/i18n/client" export default function ImportPage() { - const router = useRouter() + const pathname = usePathname() const { t } = useTranslation("dashboard") const options = [ @@ -46,7 +31,7 @@ export default function ImportPage() { ) } - -ImportPage.getLayout = (page: ReactElement) => { - return {page} -} diff --git a/src/components/dashboard/DashboardLayout.tsx b/src/app/dashboard/[subdomain]/layout.tsx similarity index 94% rename from src/components/dashboard/DashboardLayout.tsx rename to src/app/dashboard/[subdomain]/layout.tsx index 4105789e..8b7d5f64 100644 --- a/src/components/dashboard/DashboardLayout.tsx +++ b/src/app/dashboard/[subdomain]/layout.tsx @@ -1,4 +1,6 @@ -import { useRouter } from "next/router" +"use client" + +import { useParams, usePathname } from "next/navigation" import React, { useEffect } from "react" import { useTranslation } from "react-i18next" @@ -10,10 +12,13 @@ import { import { ConnectButton } from "~/components/common/ConnectButton" import { Logo } from "~/components/common/Logo" +import { DashboardSidebar } from "~/components/dashboard/DashboardSidebar" +import { DashboardTopbar } from "~/components/dashboard/DashboardTopbar" import { Avatar } from "~/components/ui/Avatar" +import { UniLink } from "~/components/ui/UniLink" import { useIsMobileLayout } from "~/hooks/useMobileLayout" import { useUserRole } from "~/hooks/useUserRole" -import { APP_NAME, DISCORD_LINK } from "~/lib/env" +import { DISCORD_LINK } from "~/lib/env" import { getSiteLink } from "~/lib/helpers" import { toGateway } from "~/lib/ipfs-parser" import { getStorage } from "~/lib/storage" @@ -21,20 +26,15 @@ import { cn } from "~/lib/utils" import { useGetPagesBySite } from "~/queries/page" import { useGetSite } from "~/queries/site" -import { SEOHead } from "../common/SEOHead" -import { UniLink } from "../ui/UniLink" -import { DashboardSidebar } from "./DashboardSidebar" -import { DashboardTopbar } from "./DashboardTopbar" - -export function DashboardLayout({ +export default function DashboardLayout({ children, title, }: { children: React.ReactNode title: string }) { - const router = useRouter() - const subdomain = router.query.subdomain as string + const params = useParams() + const subdomain = params?.subdomain as string const site = useGetSite(subdomain) const userRole = useUserRole(subdomain) @@ -48,6 +48,7 @@ export function DashboardLayout({ const { t } = useTranslation("dashboard") const isMobileLayout = useIsMobileLayout() + const pathname = usePathname() useEffect(() => { if (ssrReady) { @@ -92,7 +93,7 @@ export function DashboardLayout({ const links: { href?: string onClick?: () => void - isActive: (ctx: { href: string; pathname: string }) => boolean + isActive: (ctx: { href: string; pathname: string | null }) => boolean icon: React.ReactNode text: string }[] = [ @@ -131,7 +132,7 @@ export function DashboardLayout({ { href: `/dashboard/${subdomain}/import`, isActive: ({ pathname }) => - pathname.startsWith(`/dashboard/${subdomain}/import`), + !!pathname?.startsWith(`/dashboard/${subdomain}/import`), icon: "icon-[mingcute--file-import-line]", text: "Import", }, @@ -158,7 +159,7 @@ export function DashboardLayout({ { href: `/dashboard/${subdomain}/settings/general`, isActive: ({ pathname }) => - pathname.startsWith(`/dashboard/${subdomain}/settings`), + !!pathname?.startsWith(`/dashboard/${subdomain}/settings`), icon: "icon-[mingcute--settings-3-line]", text: "Settings", }, @@ -167,7 +168,8 @@ export function DashboardLayout({ return ready ? ( hasPermission ? ( <> - + {/* TODO */} + {/* */} {site?.data?.metadata?.content?.css && ( { - const { props: layoutProps } = await getLayoutServerSideProps(ctx) - - return { - props: { - ...layoutProps, - }, - } - }, -) - export default function SubdomainIndex() { - const router = useRouter() - const subdomain = router.query.subdomain as string + const params = useParams() + const subdomain = params?.subdomain as string const site = useGetSite(subdomain) const characterId = site.data?.characterId const stat = useGetStat({ @@ -280,7 +265,3 @@ export default function SubdomainIndex() { ) } - -SubdomainIndex.getLayout = (page: ReactElement) => { - return {page} -} diff --git a/src/app/dashboard/[subdomain]/pages/page.tsx b/src/app/dashboard/[subdomain]/pages/page.tsx new file mode 100644 index 00000000..e4b17db4 --- /dev/null +++ b/src/app/dashboard/[subdomain]/pages/page.tsx @@ -0,0 +1,7 @@ +"use client" + +import { PagesManager } from "~/components/dashboard/PagesManager" + +export default function SubdomainPages() { + return +} diff --git a/src/app/dashboard/[subdomain]/posts/page.tsx b/src/app/dashboard/[subdomain]/posts/page.tsx new file mode 100644 index 00000000..2ba92c48 --- /dev/null +++ b/src/app/dashboard/[subdomain]/posts/page.tsx @@ -0,0 +1,7 @@ +"use client" + +import { PagesManager } from "~/components/dashboard/PagesManager" + +export default function SubdomainPosts() { + return +} diff --git a/src/pages/dashboard/[subdomain]/settings/css.tsx b/src/app/dashboard/[subdomain]/settings/css/page.tsx similarity index 81% rename from src/pages/dashboard/[subdomain]/settings/css.tsx rename to src/app/dashboard/[subdomain]/settings/css/page.tsx index 09b19555..3e4dcff0 100644 --- a/src/pages/dashboard/[subdomain]/settings/css.tsx +++ b/src/app/dashboard/[subdomain]/settings/css/page.tsx @@ -1,34 +1,19 @@ -import { GetServerSideProps } from "next" -import { useTranslation } from "next-i18next" -import { useRouter } from "next/router" +"use client" + +import { useParams } from "next/navigation" import { useEffect, useState } from "react" -import type { ReactElement } from "react" import toast from "react-hot-toast" import { MonacoEditor } from "~/components/common/Monaco" -import { DashboardLayout } from "~/components/dashboard/DashboardLayout" -import { getServerSideProps as getLayoutServerSideProps } from "~/components/dashboard/DashboardLayout.server" import { SettingsLayout } from "~/components/dashboard/SettingsLayout" import { Button } from "~/components/ui/Button" import { FieldLabel } from "~/components/ui/FieldLabel" -import { serverSidePropsHandler } from "~/lib/server-side-props" +import { useTranslation } from "~/lib/i18n/client" import { useGetSite, useUpdateSite } from "~/queries/site" -export const getServerSideProps: GetServerSideProps = serverSidePropsHandler( - async (ctx) => { - const { props: layoutProps } = await getLayoutServerSideProps(ctx) - - return { - props: { - ...layoutProps, - }, - } - }, -) - export default function SettingsCSSPage() { - const router = useRouter() - const subdomain = router.query.subdomain as string + const params = useParams() + const subdomain = params?.subdomain as string const updateSite = useUpdateSite() const site = useGetSite(subdomain) @@ -132,7 +117,3 @@ export default function SettingsCSSPage() { ) } - -SettingsCSSPage.getLayout = (page: ReactElement) => { - return {page} -} diff --git a/src/pages/dashboard/[subdomain]/settings/domains.tsx b/src/app/dashboard/[subdomain]/settings/domains/page.tsx similarity index 91% rename from src/pages/dashboard/[subdomain]/settings/domains.tsx rename to src/app/dashboard/[subdomain]/settings/domains/page.tsx index 91989d6b..c762564b 100644 --- a/src/pages/dashboard/[subdomain]/settings/domains.tsx +++ b/src/app/dashboard/[subdomain]/settings/domains/page.tsx @@ -1,8 +1,7 @@ -import { GetServerSideProps } from "next" -import { useTranslation } from "next-i18next" -import { useRouter } from "next/router" +"use client" + +import { useParams, useRouter } from "next/navigation" import { useEffect, useState } from "react" -import type { ReactElement } from "react" import { useForm } from "react-hook-form" import toast from "react-hot-toast" @@ -11,8 +10,6 @@ import { useUpgradeEmailAccountModal, } from "@crossbell/connect-kit" -import { DashboardLayout } from "~/components/dashboard/DashboardLayout" -import { getServerSideProps as getLayoutServerSideProps } from "~/components/dashboard/DashboardLayout.server" import { SettingsLayout } from "~/components/dashboard/SettingsLayout" import { Button } from "~/components/ui/Button" import { Input } from "~/components/ui/Input" @@ -20,30 +17,19 @@ import { UniLink } from "~/components/ui/UniLink" import { useUserRole } from "~/hooks/useUserRole" import { OUR_DOMAIN } from "~/lib/env" import { getSiteLink } from "~/lib/helpers" -import { serverSidePropsHandler } from "~/lib/server-side-props" +import { useTranslation } from "~/lib/i18n/client" import { checkDomain, getSite } from "~/models/site.model" import { useGetSite, useUpdateSite } from "~/queries/site" -export const getServerSideProps: GetServerSideProps = serverSidePropsHandler( - async (ctx) => { - const { props: layoutProps } = await getLayoutServerSideProps(ctx) - - return { - props: { - ...layoutProps, - }, - } - }, -) - export default function SettingsDomainsPage() { - const router = useRouter() - const subdomain = router.query.subdomain as string + const params = useParams() + const subdomain = params?.subdomain as string const updateSite = useUpdateSite() const site = useGetSite(subdomain) const userRole = useUserRole(subdomain) const { t } = useTranslation("dashboard") + const router = useRouter() const isEmailAccount = useAccountState( (s) => s.computed.account?.type === "email", @@ -312,7 +298,3 @@ export default function SettingsDomainsPage() { ) } - -SettingsDomainsPage.getLayout = (page: ReactElement) => { - return {page} -} diff --git a/src/pages/dashboard/[subdomain]/settings/general.tsx b/src/app/dashboard/[subdomain]/settings/general/page.tsx similarity index 88% rename from src/pages/dashboard/[subdomain]/settings/general.tsx rename to src/app/dashboard/[subdomain]/settings/general/page.tsx index e7ca85a1..5382820c 100644 --- a/src/pages/dashboard/[subdomain]/settings/general.tsx +++ b/src/app/dashboard/[subdomain]/settings/general/page.tsx @@ -1,38 +1,22 @@ -import { GetServerSideProps } from "next" -import { Trans, useTranslation } from "next-i18next" -import { useRouter } from "next/router" +"use client" + +import { useParams } from "next/navigation" import { useEffect, useState } from "react" -import type { ReactElement } from "react" import { Controller, useForm } from "react-hook-form" import toast from "react-hot-toast" -import { DashboardLayout } from "~/components/dashboard/DashboardLayout" -import { getServerSideProps as getLayoutServerSideProps } from "~/components/dashboard/DashboardLayout.server" import { SettingsLayout } from "~/components/dashboard/SettingsLayout" import { Button } from "~/components/ui/Button" import { ImageUploader } from "~/components/ui/ImageUploader" import { Input } from "~/components/ui/Input" import { UniLink } from "~/components/ui/UniLink" +import { Trans, useTranslation } from "~/lib/i18n/client" import { toIPFS } from "~/lib/ipfs-parser" -import { serverSidePropsHandler } from "~/lib/server-side-props" import { useGetSite, useUpdateSite } from "~/queries/site" -export const getServerSideProps: GetServerSideProps = serverSidePropsHandler( - async (ctx) => { - const { props: layoutProps } = await getLayoutServerSideProps(ctx) - - return { - props: { - ...layoutProps, - }, - } - }, -) - export default function SiteSettingsGeneralPage() { - const router = useRouter() - - const subdomain = router.query.subdomain as string + const params = useParams() + const subdomain = params?.subdomain as string const updateSite = useUpdateSite() const site = useGetSite(subdomain) @@ -224,8 +208,8 @@ export default function SiteSettingsGeneralPage() { help={

- Integrate Umami Cloud Analytics into your site. You can follow the - instructions{" "} + Integrate Umami Cloud Analytics into your site. You can follow + the instructions{" "} ) } - -SiteSettingsGeneralPage.getLayout = (page: ReactElement) => { - return {page} -} diff --git a/src/pages/dashboard/[subdomain]/settings/navigation.tsx b/src/app/dashboard/[subdomain]/settings/navigation/page.tsx similarity index 87% rename from src/pages/dashboard/[subdomain]/settings/navigation.tsx rename to src/app/dashboard/[subdomain]/settings/navigation/page.tsx index 66a53933..d1bc9b2e 100644 --- a/src/pages/dashboard/[subdomain]/settings/navigation.tsx +++ b/src/app/dashboard/[subdomain]/settings/navigation/page.tsx @@ -1,34 +1,19 @@ +"use client" + import equal from "fast-deep-equal" import { nanoid } from "nanoid" -import { GetServerSideProps } from "next" -import { useTranslation } from "next-i18next" -import { useRouter } from "next/router" +import { useParams } from "next/navigation" import { ChangeEvent, FormEvent, useEffect, useMemo, useState } from "react" -import type { ReactElement } from "react" import toast from "react-hot-toast" import { ReactSortable } from "react-sortablejs" -import { DashboardLayout } from "~/components/dashboard/DashboardLayout" -import { getServerSideProps as getLayoutServerSideProps } from "~/components/dashboard/DashboardLayout.server" import { SettingsLayout } from "~/components/dashboard/SettingsLayout" import { Button } from "~/components/ui/Button" import { Input } from "~/components/ui/Input" -import { serverSidePropsHandler } from "~/lib/server-side-props" +import { useTranslation } from "~/lib/i18n/client" import { SiteNavigationItem } from "~/lib/types" import { useGetSite, useUpdateSite } from "~/queries/site" -export const getServerSideProps: GetServerSideProps = serverSidePropsHandler( - async (ctx) => { - const { props: layoutProps } = await getLayoutServerSideProps(ctx) - - return { - props: { - ...layoutProps, - }, - } - }, -) - type UpdateItem = (id: string, newItem: Partial) => void type RemoveItem = (id: string) => void @@ -80,9 +65,8 @@ const SortableNavigationItem: React.FC<{ } export default function SiteSettingsNavigationPage() { - const router = useRouter() - - const subdomain = router.query.subdomain as string + const params = useParams() + const subdomain = params?.subdomain as string const updateSite = useUpdateSite() const site = useGetSite(subdomain) @@ -211,7 +195,3 @@ export default function SiteSettingsNavigationPage() { ) } - -SiteSettingsNavigationPage.getLayout = (page: ReactElement) => { - return {page} -} diff --git a/src/pages/dashboard/[subdomain]/settings/operator.tsx b/src/app/dashboard/[subdomain]/settings/operator/page.tsx similarity index 89% rename from src/pages/dashboard/[subdomain]/settings/operator.tsx rename to src/app/dashboard/[subdomain]/settings/operator/page.tsx index 5311402a..cdf4d545 100644 --- a/src/pages/dashboard/[subdomain]/settings/operator.tsx +++ b/src/app/dashboard/[subdomain]/settings/operator/page.tsx @@ -1,8 +1,7 @@ -import { GetServerSideProps } from "next" -import { useTranslation } from "next-i18next" -import { useRouter } from "next/router" +"use client" + +import { useParams } from "next/navigation" import { useEffect, useState } from "react" -import type { ReactElement } from "react" import toast from "react-hot-toast" import { @@ -12,15 +11,13 @@ import { import { Dialog } from "@headlessui/react" import { CharacterCard } from "~/components/common/CharacterCard" -import { DashboardLayout } from "~/components/dashboard/DashboardLayout" -import { getServerSideProps as getLayoutServerSideProps } from "~/components/dashboard/DashboardLayout.server" import { SettingsLayout } from "~/components/dashboard/SettingsLayout" import { Button } from "~/components/ui/Button" import { Input } from "~/components/ui/Input" import { UniLink } from "~/components/ui/UniLink" import { useUserRole } from "~/hooks/useUserRole" import { getSiteLink } from "~/lib/helpers" -import { serverSidePropsHandler } from "~/lib/server-side-props" +import { useTranslation } from "~/lib/i18n/client" import { useAddOperator, useGetOperators, @@ -28,18 +25,6 @@ import { useRemoveOperator, } from "~/queries/site" -export const getServerSideProps: GetServerSideProps = serverSidePropsHandler( - async (ctx) => { - const { props: layoutProps } = await getLayoutServerSideProps(ctx) - - return { - props: { - ...layoutProps, - }, - } - }, -) - type RemoveItem = (operator: string) => void const SortableNavigationItem: React.FC<{ @@ -78,9 +63,8 @@ const SortableNavigationItem: React.FC<{ } export default function SettingsOperatorPage() { - const router = useRouter() - - const subdomain = router.query.subdomain as string + const params = useParams() + const subdomain = params?.subdomain as string const addOperator = useAddOperator() const removeOperator = useRemoveOperator() @@ -275,7 +259,3 @@ export default function SettingsOperatorPage() { ) } - -SettingsOperatorPage.getLayout = (page: ReactElement) => { - return {page} -} diff --git a/src/pages/dashboard/[subdomain]/settings/social-platforms.tsx b/src/app/dashboard/[subdomain]/settings/social-platforms/page.tsx similarity index 88% rename from src/pages/dashboard/[subdomain]/settings/social-platforms.tsx rename to src/app/dashboard/[subdomain]/settings/social-platforms/page.tsx index 68ab7a18..1995bb3c 100644 --- a/src/pages/dashboard/[subdomain]/settings/social-platforms.tsx +++ b/src/app/dashboard/[subdomain]/settings/social-platforms/page.tsx @@ -1,35 +1,20 @@ +"use client" + import equal from "fast-deep-equal" import { nanoid } from "nanoid" -import { GetServerSideProps } from "next" -import { Trans, useTranslation } from "next-i18next" -import { useRouter } from "next/router" +import { useParams } from "next/navigation" import { ChangeEvent, FormEvent, useEffect, useMemo, useState } from "react" -import type { ReactElement } from "react" import toast from "react-hot-toast" import { ReactSortable } from "react-sortablejs" -import { DashboardLayout } from "~/components/dashboard/DashboardLayout" -import { getServerSideProps as getLayoutServerSideProps } from "~/components/dashboard/DashboardLayout.server" import { SettingsLayout } from "~/components/dashboard/SettingsLayout" import { Platform } from "~/components/site/Platform" import { Button } from "~/components/ui/Button" import { Input } from "~/components/ui/Input" import { UniLink } from "~/components/ui/UniLink" -import { serverSidePropsHandler } from "~/lib/server-side-props" +import { Trans, useTranslation } from "~/lib/i18n/client" import { useGetSite, useUpdateSite } from "~/queries/site" -export const getServerSideProps: GetServerSideProps = serverSidePropsHandler( - async (ctx) => { - const { props: layoutProps } = await getLayoutServerSideProps(ctx) - - return { - props: { - ...layoutProps, - }, - } - }, -) - type Item = { identity: string platform: string @@ -90,9 +75,8 @@ const SortableNavigationItem: React.FC<{ } export default function SiteSettingsNavigationPage() { - const router = useRouter() - - const subdomain = router.query.subdomain as string + const params = useParams() + const subdomain = params?.subdomain as string const updateSite = useUpdateSite() const site = useGetSite(subdomain) @@ -251,7 +235,3 @@ export default function SiteSettingsNavigationPage() { ) } - -SiteSettingsNavigationPage.getLayout = (page: ReactElement) => { - return {page} -} diff --git a/src/pages/dashboard/[subdomain]/tokens.tsx b/src/app/dashboard/[subdomain]/tokens/page.tsx similarity index 81% rename from src/pages/dashboard/[subdomain]/tokens.tsx rename to src/app/dashboard/[subdomain]/tokens/page.tsx index 0754053c..bd1c4547 100644 --- a/src/pages/dashboard/[subdomain]/tokens.tsx +++ b/src/app/dashboard/[subdomain]/tokens/page.tsx @@ -1,7 +1,6 @@ -import { GetServerSideProps } from "next" -import { useTranslation } from "next-i18next" -import { useRouter } from "next/router" -import type { ReactElement } from "react" +"use client" + +import { useParams } from "next/navigation" import { useAccountBalance, @@ -9,32 +8,19 @@ import { useWalletClaimCSBModal, } from "@crossbell/connect-kit" -import { DashboardLayout } from "~/components/dashboard/DashboardLayout" -import { getServerSideProps as getLayoutServerSideProps } from "~/components/dashboard/DashboardLayout.server" import { DashboardMain } from "~/components/dashboard/DashboardMain" import { Button } from "~/components/ui/Button" import { UniLink } from "~/components/ui/UniLink" import { MIRA_LINK } from "~/lib/env" import { getSiteLink } from "~/lib/helpers" -import { serverSidePropsHandler } from "~/lib/server-side-props" +import { useTranslation } from "~/lib/i18n/client" import { useGetMiraBalance, useGetSite } from "~/queries/site" -export const getServerSideProps: GetServerSideProps = serverSidePropsHandler( - async (ctx) => { - const { props: layoutProps } = await getLayoutServerSideProps(ctx) - - return { - props: { - ...layoutProps, - }, - } - }, -) - export default function TokensPage() { - const router = useRouter() - const { t } = useTranslation(["dashboard", "index"]) - const subdomain = router.query.subdomain as string + const params = useParams() + const { t } = useTranslation("dashboard") + const { t: indexT } = useTranslation("index") + const subdomain = params?.subdomain as string const site = useGetSite(subdomain) const miraBalance = useGetMiraBalance(site.data?.characterId) @@ -138,7 +124,7 @@ export default function TokensPage() {

- {t("features.Earn.description", { ns: "index" })} + {indexT("features.Earn.description")}
{tokens.map((token) => { return ( @@ -161,7 +147,3 @@ export default function TokensPage() { ) } - -TokensPage.getLayout = (page: ReactElement) => { - return {page} -} diff --git a/src/pages/dashboard/index.tsx b/src/app/dashboard/page.tsx similarity index 97% rename from src/pages/dashboard/index.tsx rename to src/app/dashboard/page.tsx index 8500f5c6..465d981c 100644 --- a/src/pages/dashboard/index.tsx +++ b/src/app/dashboard/page.tsx @@ -1,4 +1,6 @@ -import { useRouter } from "next/router" +"use client" + +import { useRouter } from "next/navigation" import { useEffect, useRef } from "react" import { diff --git a/src/app/feed/hottest/route.ts b/src/app/feed/hottest/route.ts new file mode 100644 index 00000000..672dc679 --- /dev/null +++ b/src/app/feed/hottest/route.ts @@ -0,0 +1,28 @@ +import { SITE_URL } from "~/lib/env" +import { parsePost } from "~/lib/json-feed" +import { NextServerResponse } from "~/lib/server-helper" +import { ExpandedNote } from "~/lib/types" +import { getFeed } from "~/models/home.model" + +export async function GET(request: Request) { + const searchParams = new URLSearchParams(request.url.split("?")[1]) + + const feed = await getFeed({ + type: "hot", + daysInterval: parseInt(searchParams.get("interval") || "0"), + }) + + const data = { + version: "https://jsonfeed.org/version/1", + title: "xLog Latest", + icon: "https://ipfs.4everland.xyz/ipfs/bafkreigxdnr5lvtjxqin5upquomrti2s77hlgtjy5zaeu43uhpny75rbga", + home_page_url: `${SITE_URL}/activities`, + feed_url: `${SITE_URL}/feed/latest`, + items: feed?.list?.map((post: ExpandedNote) => parsePost(post)), + } + + const format = searchParams.get("format") === "xml" ? "xml" : "json" + + const res = new NextServerResponse() + return res.status(200).rss(data, format) +} diff --git a/src/pages/feed/latest.tsx b/src/app/feed/latest/route.ts similarity index 54% rename from src/pages/feed/latest.tsx rename to src/app/feed/latest/route.ts index 50266bc0..8c692b61 100644 --- a/src/pages/feed/latest.tsx +++ b/src/app/feed/latest/route.ts @@ -1,15 +1,10 @@ -// @ts-ignore -import jsonfeedToRSS from "jsonfeed-to-rss" -import { GetServerSideProps } from "next" - import { SITE_URL } from "~/lib/env" -import { parsePost, setHeader } from "~/lib/json-feed" +import { parsePost } from "~/lib/json-feed" +import { NextServerResponse } from "~/lib/server-helper" import { ExpandedNote } from "~/lib/types" import { getFeed } from "~/models/home.model" -export const getServerSideProps: GetServerSideProps = async (ctx) => { - setHeader(ctx) - +export async function GET(request: Request) { const feed = await getFeed({ type: "latest", }) @@ -23,16 +18,11 @@ export const getServerSideProps: GetServerSideProps = async (ctx) => { items: feed?.list?.map((post: ExpandedNote) => parsePost(post)), } - ctx.res.write( - ctx.query.format === "xml" ? jsonfeedToRSS(data) : JSON.stringify(data), - ) - ctx.res.end() + const format = + new URLSearchParams(request.url.split("?")[1]).get("format") === "xml" + ? "xml" + : "json" - return { - props: {}, - } + const res = new NextServerResponse() + return res.status(200).rss(data, format) } - -const LatestFeed: React.FC = () => null - -export default LatestFeed diff --git a/src/app/layout.tsx b/src/app/layout.tsx new file mode 100644 index 00000000..2562a84e --- /dev/null +++ b/src/app/layout.tsx @@ -0,0 +1,88 @@ +import "aplayer-react/dist/index.css" +import { dir } from "i18next" +import { Metadata } from "next" +import { Toaster } from "react-hot-toast" + +import "~/css/main.css" +import { useAcceptLang } from "~/hooks/useAcceptLang" +import { APP_DESCRIPTION, APP_NAME, APP_SLOGAN, SITE_URL } from "~/lib/env" + +import Providers from "./providers" + +export const metadata: Metadata = { + title: `${APP_NAME} - ${APP_SLOGAN}`, + description: APP_DESCRIPTION, + applicationName: APP_NAME, + generator: APP_NAME, + keywords: [ + "blog", + "xlog", + "blockchain", + "ethereum", + "web3", + "dapp", + "crypto", + ], + themeColor: "#ffffff", + alternates: { + types: { + "application/rss+xml": [ + { url: "/feed/latest?format=xml", title: "xLog Latest" }, + { url: "/feed/hottest?interval=0&format=xml", title: "xLog Hottest" }, + { + url: "/feed/hottest?interval=1&format=xml", + title: "xLog Hottest of the Day", + }, + { + url: "/feed/hottest?interval=7&format=xml", + title: "xLog Hottest of the Week", + }, + { + url: "/feed/hottest?interval=30&format=xml", + title: "xLog Hottest of the Month", + }, + ], + "application/feed+json": [ + { url: "/feed/latest", title: "xLog Latest" }, + { url: "/feed/hottest?interval=0", title: "xLog Hottest" }, + { url: "/feed/hottest?interval=1", title: "xLog Hottest of the Day" }, + { url: "/feed/hottest?interval=7", title: "xLog Hottest of the Week" }, + { + url: "/feed/hottest?interval=30", + title: "xLog Hottest of the Month", + }, + ], + }, + }, + icons: `${SITE_URL}/assets/logo.svg`, + openGraph: { + siteName: `${APP_NAME} - ${APP_SLOGAN}`, + description: APP_DESCRIPTION, + images: [`${SITE_URL}/assets/logo.svg`], + }, + twitter: { + card: "summary_large_image", + title: `${APP_NAME} - ${APP_SLOGAN}`, + description: APP_DESCRIPTION, + images: [`${SITE_URL}/assets/logo.svg`], + site: "@_xLog", + creator: "@_xLog", + }, +} + +export default function RootLayout({ + children, +}: { + children: React.ReactNode +}) { + const lang = useAcceptLang() + + return ( + + + {children} + + + + ) +} diff --git a/src/pages/_app.tsx b/src/app/providers.tsx similarity index 54% rename from src/pages/_app.tsx rename to src/app/providers.tsx index 35dd12e0..a11f4069 100644 --- a/src/pages/_app.tsx +++ b/src/app/providers.tsx @@ -1,9 +1,6 @@ -import "aplayer-react/dist/index.css" -import { Network } from "crossbell.js" -import { appWithTranslation } from "next-i18next" -import NextNProgress from "nextjs-progressbar" -import { Toaster } from "react-hot-toast" -import { AppPropsWithLayout } from "types/next" +"use client" + +import { useState } from "react" import { WagmiConfig, createClient } from "wagmi" import { @@ -14,30 +11,21 @@ import { NotificationModal, NotificationModalColorScheme, } from "@crossbell/notification" -import { Hydrate, QueryClient } from "@tanstack/react-query" +import { QueryClient } from "@tanstack/react-query" import { PersistQueryClientProvider } from "@tanstack/react-query-persist-client" -import "~/css/main.css" // eslint-disable-next-line import/no-unresolved import { useDarkMode } from "~/hooks/useDarkMode" import { useMobileLayout } from "~/hooks/useMobileLayout" -import { APP_NAME, IPFS_GATEWAY } from "~/lib/env" +import { useNProgress } from "~/hooks/useNProgress" +import { APP_NAME } from "~/lib/env" import { toGateway } from "~/lib/ipfs-parser" import { createIDBPersister } from "~/lib/persister.client" import { urlComposer } from "~/lib/url-composer" - -Network.setIpfsGateway(IPFS_GATEWAY) +import { LangProvider } from "~/providers/LangProvider" const wagmiClient = createClient(getDefaultClientConfig({ appName: APP_NAME })) -const queryClient = new QueryClient({ - defaultOptions: { - queries: { - cacheTime: 1000 * 60 * 60 * 24, // 24 hours - }, - }, -}) - const persister = createIDBPersister() const colorScheme: NotificationModalColorScheme = { @@ -47,11 +35,27 @@ const colorScheme: NotificationModalColorScheme = { border: `var(--border-color)`, } -function MyApp({ Component, pageProps }: AppPropsWithLayout) { - const getLayout = Component.getLayout ?? ((page) => page) - +export default function Providers({ + children, + lang, +}: { + children: React.ReactNode + lang: string +}) { useDarkMode() useMobileLayout() + useNProgress() + + const [queryClient] = useState( + () => + new QueryClient({ + defaultOptions: { + queries: { + cacheTime: 1000 * 60 * 60 * 24, // 24 hours + }, + }, + }), + ) return ( @@ -78,31 +82,10 @@ function MyApp({ Component, pageProps }: AppPropsWithLayout) { signInStrategy="simple" ignoreWalletDisconnectEvent={true} > - - {/* */} - - {getLayout()} - - - + {children} + ) } - -// Only uncomment this method if you have blocking data requirements for -// every single page in your application. This disables the ability to -// perform automatic static optimization, causing every page in your app to -// be server-side rendered. -// -// MyApp.getInitialProps = async (appContext) => { -// // calls page's `getInitialProps` and fills `appProps.pageProps` -// const appProps = await App.getInitialProps(appContext); -// -// return { ...appProps } -// } - -export default appWithTranslation(MyApp) diff --git a/src/app/robots.ts b/src/app/robots.ts new file mode 100644 index 00000000..5a741fd4 --- /dev/null +++ b/src/app/robots.ts @@ -0,0 +1,11 @@ +import { MetadataRoute } from "next" + +export default function robots(): MetadataRoute.Robots { + return { + rules: { + userAgent: "*", + allow: "/", + disallow: ["/dashboard/", "/preview/", "/api/"], + }, + } +} diff --git a/src/app/site/[site]/[slug]/page.tsx b/src/app/site/[site]/[slug]/page.tsx new file mode 100644 index 00000000..06b94f37 --- /dev/null +++ b/src/app/site/[site]/[slug]/page.tsx @@ -0,0 +1,103 @@ +import { Metadata } from "next" +import { notFound } from "next/navigation" + +import { Hydrate, dehydrate } from "@tanstack/react-query" + +import { SitePage } from "~/components/site/SitePage" +import { SITE_URL } from "~/lib/env" +import { useTranslation } from "~/lib/i18n" +import getQueryClient from "~/lib/query-client" +import { fetchGetPage } from "~/queries/page.server" +import { fetchGetSite } from "~/queries/site.server" + +export async function generateMetadata({ + params, +}: { + params: { + site: string + slug: string + } +}): Promise { + const queryClient = getQueryClient() + + const site = await fetchGetSite(params.site, queryClient) + + const page = await fetchGetPage( + { + characterId: site?.characterId, + slug: params.slug, + useStat: true, + }, + queryClient, + ) + + const title = `${page?.metadata?.content?.title} - ${ + site?.metadata?.content?.name || site?.handle + }` + const description = page?.metadata?.content?.summary + const siteImages = + site?.metadata?.content?.avatars || `${SITE_URL}/assets/logo.svg` + const images = page?.metadata?.content?.cover || siteImages + const twitterCreator = + "@" + + site?.metadata?.content?.connected_accounts + ?.find((account) => account?.endsWith?.("@twitter")) + ?.match(/csb:\/\/account:([^@]+)@twitter/)?.[1] + + return { + title, + description, + openGraph: { + siteName: title, + description, + images, + }, + twitter: { + card: "summary_large_image", + title, + description, + images, + site: "@_xLog", + creator: twitterCreator, + }, + } +} + +export default async function SitePagePage({ + params, +}: { + params: { + site: string + slug: string + } +}) { + const queryClient = getQueryClient() + + const site = await fetchGetSite(params.site, queryClient) + + const page = await fetchGetPage( + { + characterId: site?.characterId, + slug: params.slug, + useStat: true, + }, + queryClient, + ) + + if ( + !page || + new Date(page!.metadata?.content?.date_published || "") > new Date() + ) { + notFound() + } + + const dehydratedState = dehydrate(queryClient) + + const { t } = await useTranslation("site") + + return ( + + + + ) +} diff --git a/src/app/site/[site]/archives/page.tsx b/src/app/site/[site]/archives/page.tsx new file mode 100644 index 00000000..eb95025c --- /dev/null +++ b/src/app/site/[site]/archives/page.tsx @@ -0,0 +1,56 @@ +import { Metadata } from "next" + +import { Hydrate, dehydrate } from "@tanstack/react-query" + +import { SiteArchives } from "~/components/site/SiteArchives" +import getQueryClient from "~/lib/query-client" +import { PageVisibilityEnum } from "~/lib/types" +import { prefetchGetPagesBySite } from "~/queries/page.server" +import { fetchGetSite } from "~/queries/site.server" + +export async function generateMetadata({ + params, +}: { + params: { + site: string + } +}): Promise { + const queryClient = getQueryClient() + + const site = await fetchGetSite(params.site, queryClient) + + const title = `Archives - ${site?.metadata?.content?.name || site?.handle}` + + return { + title, + } +} + +export default async function SiteArchivesPage({ + params, +}: { + params: { + site: string + } +}) { + const queryClient = getQueryClient() + + const site = await fetchGetSite(params.site, queryClient) + await prefetchGetPagesBySite( + { + characterId: site?.characterId, + type: "post", + visibility: PageVisibilityEnum.Published, + limit: 100, + }, + queryClient, + ) + + const dehydratedState = dehydrate(queryClient) + + return ( + + + + ) +} diff --git a/src/app/site/[site]/layout.tsx b/src/app/site/[site]/layout.tsx new file mode 100644 index 00000000..59e46ceb --- /dev/null +++ b/src/app/site/[site]/layout.tsx @@ -0,0 +1,154 @@ +import { Metadata } from "next" +import { notFound } from "next/navigation" + +import { Hydrate, dehydrate } from "@tanstack/react-query" + +import { BlockchainInfo } from "~/components/common/BlockchainInfo" +import { Style } from "~/components/common/Style" +import { BackToTopFAB } from "~/components/site/BackToTopFAB" +import { SiteFooter } from "~/components/site/SiteFooter" +import { SiteHeader } from "~/components/site/SiteHeader" +import { FABContainer } from "~/components/ui/FAB" +import { SITE_URL } from "~/lib/env" +import getQueryClient from "~/lib/query-client" +import { cn } from "~/lib/utils" +import { + fetchGetSite, + prefetchGetSiteSubscriptions, + prefetchGetSiteToSubscriptions, +} from "~/queries/site.server" + +export async function generateMetadata({ + params, +}: { + params: { + site: string + } +}): Promise { + const queryClient = getQueryClient() + + const site = await fetchGetSite(params.site, queryClient) + + const title = site?.metadata?.content?.name || site?.handle + const description = site?.metadata?.content?.bio + const images = + site?.metadata?.content?.avatars || `${SITE_URL}/assets/logo.svg` + const twitterCreator = + "@" + + site?.metadata?.content?.connected_accounts + ?.find((account) => account?.endsWith?.("@twitter")) + ?.match(/csb:\/\/account:([^@]+)@twitter/)?.[1] + + return { + title, + description, + themeColor: "#ffffff", // TODO + alternates: { + types: { + "application/rss+xml": [ + { url: "/feed?format=xml", title }, + { url: "/feed/comments?format=xml", title: `Comments on ${title}` }, + ], + "application/feed+json": [ + { url: "/feed", title }, + { url: "/feed/comments", title: `Comments on ${title}` }, + ], + }, + }, + icons: images, + openGraph: { + siteName: title, + description, + images, + }, + twitter: { + card: "summary_large_image", + title, + description, + images, + site: "@_xLog", + creator: twitterCreator, + }, + } +} + +export default async function SiteLayout({ + children, + params, +}: { + children?: React.ReactNode + params: { + site: string + slug?: string + tag?: string + } +}) { + const queryClient = getQueryClient() + + const site = await fetchGetSite(params.site, queryClient) + + let page + if (site?.characterId) { + await Promise.all([ + prefetchGetSiteSubscriptions( + { + characterId: site.characterId, + }, + queryClient, + ), + prefetchGetSiteToSubscriptions( + { + characterId: site.characterId, + }, + queryClient, + ), + ]) + } else { + notFound() + } + + const dehydratedState = dehydrate(queryClient) + + return ( + +
+