From 80f675cb543b49b30fc5b534e1fcef2e919f5cfe Mon Sep 17 00:00:00 2001 From: reya Date: Thu, 30 Nov 2023 16:02:28 +0700 Subject: [PATCH] improve notification and performance --- package.json | 18 +- pnpm-lock.yaml | 308 +++++++++++++++--------------- src-tauri/Cargo.lock | 40 ++-- src/app/home/index.tsx | 12 +- src/libs/ndk/instance.ts | 8 +- src/libs/storage/instance.ts | 14 +- src/main.jsx | 5 +- src/shared/notes/kinds/text.tsx | 4 +- src/shared/notes/notify.tsx | 211 ++++++++++++-------- src/shared/notes/replies/form.tsx | 2 +- src/utils/hooks/useProfile.ts | 25 ++- 11 files changed, 356 insertions(+), 291 deletions(-) diff --git a/package.json b/package.json index 0c18fe2f..7dfd73ec 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "dependencies": { "@evilmartians/harmony": "^1.2.0", "@getalby/sdk": "^2.7.0", - "@nostr-dev-kit/ndk": "^2.1.1", + "@nostr-dev-kit/ndk": "^2.1.3", "@nostr-fetch/adapter-ndk": "^0.13.1", "@radix-ui/react-accordion": "^1.1.2", "@radix-ui/react-alert-dialog": "^1.0.5", @@ -33,7 +33,7 @@ "@radix-ui/react-switch": "^1.0.3", "@radix-ui/react-toolbar": "^1.0.4", "@radix-ui/react-tooltip": "^1.0.7", - "@tanstack/react-query": "^5.8.7", + "@tanstack/react-query": "^5.10.0", "@tanstack/react-query-devtools": "^5.10.0", "@tauri-apps/api": "2.0.0-alpha.11", "@tauri-apps/cli": "2.0.0-alpha.17", @@ -61,13 +61,13 @@ "@tiptap/starter-kit": "^2.1.12", "@tiptap/suggestion": "^2.1.12", "dayjs": "^1.11.10", - "framer-motion": "^10.16.5", + "framer-motion": "^10.16.7", "html-to-text": "^9.0.5", "idb-keyval": "^6.2.1", "light-bolt11-decoder": "^3.0.0", "lru-cache": "^10.1.0", "markdown-to-jsx": "^7.3.2", - "media-chrome": "^1.5.3", + "media-chrome": "^1.5.4", "minidenticons": "^4.2.0", "nanoid": "^5.0.3", "nostr-fetch": "^0.13.1", @@ -82,10 +82,10 @@ "react-router-dom": "^6.20.0", "react-string-replace": "^1.1.1", "reactflow": "^11.10.1", - "sonner": "^1.2.3", + "sonner": "^1.2.4", "tauri-controls": "github:reyamir/tauri-controls", "tippy.js": "^6.3.7", - "tiptap-markdown": "^0.8.4", + "tiptap-markdown": "^0.8.7", "virtua": "^0.16.7", "zustand": "^4.4.7" }, @@ -94,11 +94,11 @@ "@tailwindcss/typography": "^0.5.10", "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@types/html-to-text": "^9.0.4", - "@types/node": "^20.10.0", + "@types/node": "^20.10.1", "@types/react": "^18.2.39", "@types/react-dom": "^18.2.17", - "@typescript-eslint/eslint-plugin": "^6.13.0", - "@typescript-eslint/parser": "^6.13.0", + "@typescript-eslint/eslint-plugin": "^6.13.1", + "@typescript-eslint/parser": "^6.13.1", "@vitejs/plugin-react-swc": "^3.5.0", "autoprefixer": "^10.4.16", "clsx": "^2.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9a77b92f..97297c70 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,11 +12,11 @@ dependencies: specifier: ^2.7.0 version: 2.7.0(typescript@5.3.2) '@nostr-dev-kit/ndk': - specifier: ^2.1.1 - version: 2.1.1(typescript@5.3.2) + specifier: ^2.1.3 + version: 2.1.3(typescript@5.3.2) '@nostr-fetch/adapter-ndk': specifier: ^0.13.1 - version: 0.13.1(@nostr-dev-kit/ndk@2.1.1)(nostr-fetch@0.13.1) + version: 0.13.1(@nostr-dev-kit/ndk@2.1.3)(nostr-fetch@0.13.1) '@radix-ui/react-accordion': specifier: ^1.1.2 version: 1.1.2(@types/react-dom@18.2.17)(@types/react@18.2.39)(react-dom@18.2.0)(react@18.2.0) @@ -51,11 +51,11 @@ dependencies: specifier: ^1.0.7 version: 1.0.7(@types/react-dom@18.2.17)(@types/react@18.2.39)(react-dom@18.2.0)(react@18.2.0) '@tanstack/react-query': - specifier: ^5.8.7 - version: 5.8.7(react-dom@18.2.0)(react@18.2.0) + specifier: ^5.10.0 + version: 5.10.0(react@18.2.0) '@tanstack/react-query-devtools': specifier: ^5.10.0 - version: 5.10.0(@tanstack/react-query@5.8.7)(react@18.2.0) + version: 5.10.0(@tanstack/react-query@5.10.0)(react@18.2.0) '@tauri-apps/api': specifier: 2.0.0-alpha.11 version: 2.0.0-alpha.11 @@ -135,8 +135,8 @@ dependencies: specifier: ^1.11.10 version: 1.11.10 framer-motion: - specifier: ^10.16.5 - version: 10.16.5(react-dom@18.2.0)(react@18.2.0) + specifier: ^10.16.7 + version: 10.16.7(react-dom@18.2.0)(react@18.2.0) html-to-text: specifier: ^9.0.5 version: 9.0.5 @@ -153,8 +153,8 @@ dependencies: specifier: ^7.3.2 version: 7.3.2(react@18.2.0) media-chrome: - specifier: ^1.5.3 - version: 1.5.3 + specifier: ^1.5.4 + version: 1.5.4 minidenticons: specifier: ^4.2.0 version: 4.2.0 @@ -198,8 +198,8 @@ dependencies: specifier: ^11.10.1 version: 11.10.1(@types/react@18.2.39)(react-dom@18.2.0)(react@18.2.0) sonner: - specifier: ^1.2.3 - version: 1.2.3(react-dom@18.2.0)(react@18.2.0) + specifier: ^1.2.4 + version: 1.2.4(react-dom@18.2.0)(react@18.2.0) tauri-controls: specifier: github:reyamir/tauri-controls version: github.com/reyamir/tauri-controls/079b1262f9b75c84b97613174836101b01d61c37(@tauri-apps/api@2.0.0-alpha.11)(@tauri-apps/plugin-os@2.0.0-alpha.4)(clsx@2.0.0)(react-dom@18.2.0)(react@18.2.0)(tailwind-merge@1.14.0) @@ -207,8 +207,8 @@ dependencies: specifier: ^6.3.7 version: 6.3.7 tiptap-markdown: - specifier: ^0.8.4 - version: 0.8.4(@tiptap/core@2.1.12) + specifier: ^0.8.7 + version: 0.8.7(@tiptap/core@2.1.12) virtua: specifier: ^0.16.7 version: 0.16.7(react-dom@18.2.0)(react@18.2.0) @@ -230,8 +230,8 @@ devDependencies: specifier: ^9.0.4 version: 9.0.4 '@types/node': - specifier: ^20.10.0 - version: 20.10.0 + specifier: ^20.10.1 + version: 20.10.1 '@types/react': specifier: ^18.2.39 version: 18.2.39 @@ -239,11 +239,11 @@ devDependencies: specifier: ^18.2.17 version: 18.2.17 '@typescript-eslint/eslint-plugin': - specifier: ^6.13.0 - version: 6.13.0(@typescript-eslint/parser@6.13.0)(eslint@8.54.0)(typescript@5.3.2) + specifier: ^6.13.1 + version: 6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.54.0)(typescript@5.3.2) '@typescript-eslint/parser': - specifier: ^6.13.0 - version: 6.13.0(eslint@8.54.0)(typescript@5.3.2) + specifier: ^6.13.1 + version: 6.13.1(eslint@8.54.0)(typescript@5.3.2) '@vitejs/plugin-react-swc': specifier: ^3.5.0 version: 3.5.0(vite@4.5.0) @@ -306,7 +306,7 @@ devDependencies: version: 5.3.2 vite: specifier: ^4.5.0 - version: 4.5.0(@types/node@20.10.0) + version: 4.5.0(@types/node@20.10.1) vite-tsconfig-paths: specifier: ^4.2.1 version: 4.2.1(typescript@5.3.2)(vite@4.5.0) @@ -323,8 +323,8 @@ packages: engines: {node: '>=10'} dev: true - /@babel/code-frame@7.23.4: - resolution: {integrity: sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==} + /@babel/code-frame@7.23.5: + resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.23.4 @@ -340,11 +340,11 @@ packages: source-map: 0.5.7 dev: true - /@babel/generator@7.23.4: - resolution: {integrity: sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==} + /@babel/generator@7.23.5: + resolution: {integrity: sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.4 + '@babel/types': 7.23.5 '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.20 jsesc: 2.5.2 @@ -360,21 +360,21 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.23.4 + '@babel/types': 7.23.5 dev: true /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.4 + '@babel/types': 7.23.5 dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.4 + '@babel/types': 7.23.5 dev: true /@babel/helper-string-parser@7.23.4: @@ -396,16 +396,16 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/parser@7.23.4: - resolution: {integrity: sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==} + /@babel/parser@7.23.5: + resolution: {integrity: sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==} engines: {node: '>=6.0.0'} hasBin: true dependencies: '@babel/types': 7.17.0 dev: true - /@babel/runtime@7.23.4: - resolution: {integrity: sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==} + /@babel/runtime@7.23.5: + resolution: {integrity: sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.0 @@ -414,23 +414,23 @@ packages: resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.23.4 - '@babel/parser': 7.23.4 - '@babel/types': 7.23.4 + '@babel/code-frame': 7.23.5 + '@babel/parser': 7.23.5 + '@babel/types': 7.23.5 dev: true /@babel/traverse@7.23.2: resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.23.4 - '@babel/generator': 7.23.4 + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.4 - '@babel/types': 7.23.4 + '@babel/parser': 7.23.5 + '@babel/types': 7.23.5 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: @@ -445,8 +445,8 @@ packages: to-fast-properties: 2.0.0 dev: true - /@babel/types@7.23.4: - resolution: {integrity: sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==} + /@babel/types@7.23.5: + resolution: {integrity: sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.23.4 @@ -847,8 +847,8 @@ packages: fastq: 1.15.0 dev: true - /@nostr-dev-kit/ndk@2.1.1(typescript@5.3.2): - resolution: {integrity: sha512-sMD4re3QVpSVMzoyvJAFiftPxJBXkhjRInrK5DcjhSkkPTlJhI+oiVXCpcvCJ3PHT5PilhDgKkg3LyOvv135UQ==} + /@nostr-dev-kit/ndk@2.1.3(typescript@5.3.2): + resolution: {integrity: sha512-GUJNc69kSvQWEjPlAUh6pyvAehnzApPPTjv97Mrmk8C/frPt5O2jHr62OgSVlXlj5AWUegDn2hnbtiZjGVPtWw==} dependencies: '@noble/hashes': 1.3.2 '@noble/secp256k1': 2.0.0 @@ -866,13 +866,13 @@ packages: - typescript dev: false - /@nostr-fetch/adapter-ndk@0.13.1(@nostr-dev-kit/ndk@2.1.1)(nostr-fetch@0.13.1): + /@nostr-fetch/adapter-ndk@0.13.1(@nostr-dev-kit/ndk@2.1.3)(nostr-fetch@0.13.1): resolution: {integrity: sha512-B3xeFR/qZHOzyy68WZCL+v+OjOZHG9YBW6jEpp1b1hzogAkoqSYJfYHo55Heka/CUp8z7dteYV/tmabtTCVcPA==} peerDependencies: '@nostr-dev-kit/ndk': ^0.8.4 nostr-fetch: ^0.13.1 dependencies: - '@nostr-dev-kit/ndk': 2.1.1(typescript@5.3.2) + '@nostr-dev-kit/ndk': 2.1.3(typescript@5.3.2) '@nostr-fetch/kernel': 0.13.1 nostr-fetch: 0.13.1 dev: false @@ -891,7 +891,7 @@ packages: /@radix-ui/primitive@1.0.1: resolution: {integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==} dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 dev: false /@radix-ui/react-accordion@1.1.2(@types/react-dom@18.2.17)(@types/react@18.2.39)(react-dom@18.2.0)(react@18.2.0): @@ -907,7 +907,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-collapsible': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.39)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.39)(react-dom@18.2.0)(react@18.2.0) @@ -936,7 +936,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.39)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.39)(react@18.2.0) @@ -962,7 +962,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.39)(react-dom@18.2.0)(react@18.2.0) '@types/react': 18.2.39 '@types/react-dom': 18.2.17 @@ -983,7 +983,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/react-context': 1.0.1(@types/react@18.2.39)(react@18.2.0) '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.39)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.39)(react@18.2.0) @@ -1007,7 +1007,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.39)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.39)(react@18.2.0) @@ -1035,7 +1035,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.39)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.39)(react@18.2.0) '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.39)(react-dom@18.2.0)(react@18.2.0) @@ -1055,7 +1055,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@types/react': 18.2.39 react: 18.2.0 dev: false @@ -1069,7 +1069,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@types/react': 18.2.39 react: 18.2.0 dev: false @@ -1087,7 +1087,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.39)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.39)(react@18.2.0) @@ -1117,7 +1117,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@types/react': 18.2.39 react: 18.2.0 dev: false @@ -1135,7 +1135,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.39)(react@18.2.0) '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.39)(react-dom@18.2.0)(react@18.2.0) @@ -1160,7 +1160,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.39)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.39)(react@18.2.0) @@ -1183,7 +1183,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@types/react': 18.2.39 react: 18.2.0 dev: false @@ -1201,7 +1201,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.39)(react@18.2.0) '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.39)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.39)(react@18.2.0) @@ -1224,7 +1224,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.39)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.39)(react@18.2.0) @@ -1249,7 +1249,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.39)(react@18.2.0) '@types/react': 18.2.39 react: 18.2.0 @@ -1268,7 +1268,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.39)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.39)(react@18.2.0) @@ -1306,7 +1306,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.39)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.39)(react@18.2.0) @@ -1341,7 +1341,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@floating-ui/react-dom': 2.0.4(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.39)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.39)(react@18.2.0) @@ -1371,7 +1371,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.39)(react-dom@18.2.0)(react@18.2.0) '@types/react': 18.2.39 '@types/react-dom': 18.2.17 @@ -1392,7 +1392,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.39)(react@18.2.0) '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.39)(react@18.2.0) '@types/react': 18.2.39 @@ -1414,7 +1414,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/react-slot': 1.0.2(@types/react@18.2.39)(react@18.2.0) '@types/react': 18.2.39 '@types/react-dom': 18.2.17 @@ -1435,7 +1435,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.39)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.39)(react@18.2.0) @@ -1464,7 +1464,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.39)(react-dom@18.2.0)(react@18.2.0) '@types/react': 18.2.39 '@types/react-dom': 18.2.17 @@ -1481,7 +1481,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.39)(react@18.2.0) '@types/react': 18.2.39 react: 18.2.0 @@ -1500,7 +1500,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.39)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.39)(react@18.2.0) @@ -1527,7 +1527,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-context': 1.0.1(@types/react@18.2.39)(react@18.2.0) '@radix-ui/react-direction': 1.0.1(@types/react@18.2.39)(react@18.2.0) @@ -1554,7 +1554,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.39)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.39)(react@18.2.0) @@ -1577,7 +1577,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-context': 1.0.1(@types/react@18.2.39)(react@18.2.0) '@radix-ui/react-direction': 1.0.1(@types/react@18.2.39)(react@18.2.0) @@ -1604,7 +1604,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.39)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.39)(react@18.2.0) @@ -1632,7 +1632,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@types/react': 18.2.39 react: 18.2.0 dev: false @@ -1646,7 +1646,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.39)(react@18.2.0) '@types/react': 18.2.39 react: 18.2.0 @@ -1661,7 +1661,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.39)(react@18.2.0) '@types/react': 18.2.39 react: 18.2.0 @@ -1676,7 +1676,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@types/react': 18.2.39 react: 18.2.0 dev: false @@ -1690,7 +1690,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@types/react': 18.2.39 react: 18.2.0 dev: false @@ -1704,7 +1704,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/rect': 1.0.1 '@types/react': 18.2.39 react: 18.2.0 @@ -1719,7 +1719,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.39)(react@18.2.0) '@types/react': 18.2.39 react: 18.2.0 @@ -1738,7 +1738,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.39)(react-dom@18.2.0)(react@18.2.0) '@types/react': 18.2.39 '@types/react-dom': 18.2.17 @@ -1749,7 +1749,7 @@ packages: /@radix-ui/rect@1.0.1: resolution: {integrity: sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==} dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 dev: false /@reactflow/background@11.3.6(@types/react@18.2.39)(react-dom@18.2.0)(react@18.2.0): @@ -2057,40 +2057,32 @@ packages: tailwindcss: 3.3.5 dev: true - /@tanstack/query-core@5.8.7: - resolution: {integrity: sha512-58xOSkxxZK4SGQ/uzX8MDZHLGZCkxlgkPxnfhxUOL2uchnNHyay2UVcR3mQNMgaMwH1e2l+0n+zfS7+UJ/MAJw==} + /@tanstack/query-core@5.10.0: + resolution: {integrity: sha512-wlw/l2E+U70iABaJnOtZIJN/5VMhuj4RPViafwUYiIGoqw1VqqqaxBnBL90qLhWswoOaK8RAj3+NiG0duk+cRg==} dev: false /@tanstack/query-devtools@5.10.0: resolution: {integrity: sha512-ZN17ZHiPFc8B1AZplueTLI6qxqNPuelV/8Q6gx2coNac2++AD1gq8NvCQxfq9HoaqFJM8xqS3oPYxa3HZZTo8w==} dev: false - /@tanstack/react-query-devtools@5.10.0(@tanstack/react-query@5.8.7)(react@18.2.0): + /@tanstack/react-query-devtools@5.10.0(@tanstack/react-query@5.10.0)(react@18.2.0): resolution: {integrity: sha512-amQN/6BdSMiYtILISk5j3IrZZiWz+HOHjJdcJNZHaTpzS7aIM1Z82bghCSoPdBtS7P1KbdoW35aD4glm9EkIuQ==} peerDependencies: '@tanstack/react-query': ^5.10.0 react: ^18.0.0 dependencies: '@tanstack/query-devtools': 5.10.0 - '@tanstack/react-query': 5.8.7(react-dom@18.2.0)(react@18.2.0) + '@tanstack/react-query': 5.10.0(react@18.2.0) react: 18.2.0 dev: false - /@tanstack/react-query@5.8.7(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-RYSSMmkhbJ7tPkf8w+MSRIXQLoUCm7DRnTLDcdf+uampupnriEsob3fVWTt9oaEj+AJWEKeCErDBdZeNcAzURQ==} + /@tanstack/react-query@5.10.0(react@18.2.0): + resolution: {integrity: sha512-LeJsyXUvhq1TBsEbt3SSEaxP2Att1sv/qW588GL/bvjxPxsLUBWKGuFJ5Z1YP+/nJqVmcXJE8AtvZaaxE9rsKQ==} peerDependencies: react: ^18.0.0 - react-dom: ^18.0.0 - react-native: '*' - peerDependenciesMeta: - react-dom: - optional: true - react-native: - optional: true dependencies: - '@tanstack/query-core': 5.8.7 + '@tanstack/query-core': 5.10.0 react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) dev: false /@tauri-apps/api@2.0.0-alpha.11: @@ -2518,7 +2510,7 @@ packages: prosemirror-schema-basic: 1.2.2 prosemirror-schema-list: 1.3.0 prosemirror-state: 1.4.3 - prosemirror-tables: 1.3.4 + prosemirror-tables: 1.3.5 prosemirror-trailing-node: 2.0.7(prosemirror-model@1.19.3)(prosemirror-state@1.4.3)(prosemirror-view@1.32.4) prosemirror-transform: 1.8.0 prosemirror-view: 1.32.4 @@ -2586,7 +2578,7 @@ packages: optional: true dependencies: '@babel/generator': 7.17.7 - '@babel/parser': 7.23.4 + '@babel/parser': 7.23.5 '@babel/traverse': 7.23.2 '@babel/types': 7.17.0 javascript-natural-sort: 0.7.1 @@ -2802,8 +2794,8 @@ packages: resolution: {integrity: sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==} dev: false - /@types/node@20.10.0: - resolution: {integrity: sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ==} + /@types/node@20.10.1: + resolution: {integrity: sha512-T2qwhjWwGH81vUEx4EXmBKsTJRXFXNZTL4v0gi01+zyBmCwzE6TyHszqX01m+QHTEq+EZNo13NeJIdEqf+Myrg==} dependencies: undici-types: 5.26.5 dev: true @@ -2842,8 +2834,8 @@ packages: resolution: {integrity: sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ==} dev: false - /@typescript-eslint/eslint-plugin@6.13.0(@typescript-eslint/parser@6.13.0)(eslint@8.54.0)(typescript@5.3.2): - resolution: {integrity: sha512-HTvbSd0JceI2GW5DHS3R9zbarOqjkM9XDR7zL8eCsBUO/eSiHcoNE7kSL5sjGXmVa9fjH5LCfHDXNnH4QLp7tQ==} + /@typescript-eslint/eslint-plugin@6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-5bQDGkXaxD46bPvQt08BUz9YSaO4S0fB1LB5JHQuXTfkGPI3+UUeS387C/e9jRie5GqT8u5kFTrMvAjtX4O5kA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -2854,11 +2846,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.13.0(eslint@8.54.0)(typescript@5.3.2) - '@typescript-eslint/scope-manager': 6.13.0 - '@typescript-eslint/type-utils': 6.13.0(eslint@8.54.0)(typescript@5.3.2) - '@typescript-eslint/utils': 6.13.0(eslint@8.54.0)(typescript@5.3.2) - '@typescript-eslint/visitor-keys': 6.13.0 + '@typescript-eslint/parser': 6.13.1(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/scope-manager': 6.13.1 + '@typescript-eslint/type-utils': 6.13.1(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/utils': 6.13.1(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/visitor-keys': 6.13.1 debug: 4.3.4 eslint: 8.54.0 graphemer: 1.4.0 @@ -2871,8 +2863,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.13.0(eslint@8.54.0)(typescript@5.3.2): - resolution: {integrity: sha512-VpG+M7GNhHLI/aTDctqAV0XbzB16vf+qDX9DXuMZSe/0bahzDA9AKZB15NDbd+D9M4cDsJvfkbGOA7qiZ/bWJw==} + /@typescript-eslint/parser@6.13.1(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-fs2XOhWCzRhqMmQf0eicLa/CWSaYss2feXsy7xBD/pLyWke/jCIVc2s1ikEAtSW7ina1HNhv7kONoEfVNEcdDQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2881,10 +2873,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.13.0 - '@typescript-eslint/types': 6.13.0 - '@typescript-eslint/typescript-estree': 6.13.0(typescript@5.3.2) - '@typescript-eslint/visitor-keys': 6.13.0 + '@typescript-eslint/scope-manager': 6.13.1 + '@typescript-eslint/types': 6.13.1 + '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.2) + '@typescript-eslint/visitor-keys': 6.13.1 debug: 4.3.4 eslint: 8.54.0 typescript: 5.3.2 @@ -2892,16 +2884,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@6.13.0: - resolution: {integrity: sha512-2x0K2/CujsokIv+LN2T0l5FVDMtsCjkUyYtlcY4xxnxLAW+x41LXr16duoicHpGtLhmtN7kqvuFJ3zbz00Ikhw==} + /@typescript-eslint/scope-manager@6.13.1: + resolution: {integrity: sha512-BW0kJ7ceiKi56GbT2KKzZzN+nDxzQK2DS6x0PiSMPjciPgd/JRQGMibyaN2cPt2cAvuoH0oNvn2fwonHI+4QUQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.13.0 - '@typescript-eslint/visitor-keys': 6.13.0 + '@typescript-eslint/types': 6.13.1 + '@typescript-eslint/visitor-keys': 6.13.1 dev: true - /@typescript-eslint/type-utils@6.13.0(eslint@8.54.0)(typescript@5.3.2): - resolution: {integrity: sha512-YHufAmZd/yP2XdoD3YeFEjq+/Tl+myhzv+GJHSOz+ro/NFGS84mIIuLU3pVwUcauSmwlCrVXbBclkn1HfjY0qQ==} + /@typescript-eslint/type-utils@6.13.1(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-A2qPlgpxx2v//3meMqQyB1qqTg1h1dJvzca7TugM3Yc2USDY+fsRBiojAEo92HO7f5hW5mjAUF6qobOPzlBCBQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2910,8 +2902,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.13.0(typescript@5.3.2) - '@typescript-eslint/utils': 6.13.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.2) + '@typescript-eslint/utils': 6.13.1(eslint@8.54.0)(typescript@5.3.2) debug: 4.3.4 eslint: 8.54.0 ts-api-utils: 1.0.3(typescript@5.3.2) @@ -2920,13 +2912,13 @@ packages: - supports-color dev: true - /@typescript-eslint/types@6.13.0: - resolution: {integrity: sha512-oXg7DFxx/GmTrKXKKLSoR2rwiutOC7jCQ5nDH5p5VS6cmHE1TcPTaYQ0VPSSUvj7BnNqCgQ/NXcTBxn59pfPTQ==} + /@typescript-eslint/types@6.13.1: + resolution: {integrity: sha512-gjeEskSmiEKKFIbnhDXUyiqVma1gRCQNbVZ1C8q7Zjcxh3WZMbzWVfGE9rHfWd1msQtPS0BVD9Jz9jded44eKg==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.13.0(typescript@5.3.2): - resolution: {integrity: sha512-IT4O/YKJDoiy/mPEDsfOfp+473A9GVqXlBKckfrAOuVbTqM8xbc0LuqyFCcgeFWpqu3WjQexolgqN2CuWBYbog==} + /@typescript-eslint/typescript-estree@6.13.1(typescript@5.3.2): + resolution: {integrity: sha512-sBLQsvOC0Q7LGcUHO5qpG1HxRgePbT6wwqOiGLpR8uOJvPJbfs0mW3jPA3ujsDvfiVwVlWUDESNXv44KtINkUQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -2934,8 +2926,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.13.0 - '@typescript-eslint/visitor-keys': 6.13.0 + '@typescript-eslint/types': 6.13.1 + '@typescript-eslint/visitor-keys': 6.13.1 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -2946,8 +2938,8 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.13.0(eslint@8.54.0)(typescript@5.3.2): - resolution: {integrity: sha512-V+txaxARI8yznDkcQ6FNRXxG+T37qT3+2NsDTZ/nKLxv6VfGrRhTnuvxPUxpVuWWr+eVeIxU53PioOXbz8ratQ==} + /@typescript-eslint/utils@6.13.1(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-ouPn/zVoan92JgAegesTXDB/oUp6BP1v8WpfYcqh649ejNc9Qv+B4FF2Ff626kO1xg0wWwwG48lAJ4JuesgdOw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2955,9 +2947,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.13.0 - '@typescript-eslint/types': 6.13.0 - '@typescript-eslint/typescript-estree': 6.13.0(typescript@5.3.2) + '@typescript-eslint/scope-manager': 6.13.1 + '@typescript-eslint/types': 6.13.1 + '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.2) eslint: 8.54.0 semver: 7.5.4 transitivePeerDependencies: @@ -2965,11 +2957,11 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@6.13.0: - resolution: {integrity: sha512-UQklteCEMCRoq/1UhKFZsHv5E4dN1wQSzJoxTfABasWk1HgJRdg1xNUve/Kv/Sdymt4x+iEzpESOqRFlQr/9Aw==} + /@typescript-eslint/visitor-keys@6.13.1: + resolution: {integrity: sha512-NDhQUy2tg6XGNBGDRm1XybOHSia8mcXmlbKWoQP+nm1BIIMxa55shyJfZkHpEBN62KNPLrocSM2PdPcaLgDKMQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.13.0 + '@typescript-eslint/types': 6.13.1 eslint-visitor-keys: 3.4.3 dev: true @@ -2983,7 +2975,7 @@ packages: vite: ^4 || ^5 dependencies: '@swc/core': 1.3.99 - vite: 4.5.0(@types/node@20.10.0) + vite: 4.5.0(@types/node@20.10.1) transitivePeerDependencies: - '@swc/helpers' dev: true @@ -3216,7 +3208,7 @@ packages: hasBin: true dependencies: caniuse-lite: 1.0.30001565 - electron-to-chromium: 1.4.595 + electron-to-chromium: 1.4.597 node-releases: 2.0.13 update-browserslist-db: 1.0.13(browserslist@4.22.1) dev: true @@ -3596,8 +3588,8 @@ packages: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: true - /electron-to-chromium@1.4.595: - resolution: {integrity: sha512-+ozvXuamBhDOKvMNUQvecxfbyICmIAwS4GpLmR0bsiSBlGnLaOcs2Cj7J8XSbW+YEaN3Xl3ffgpm+srTUWFwFQ==} + /electron-to-chromium@1.4.597: + resolution: {integrity: sha512-0XOQNqHhg2YgRVRUrS4M4vWjFCFIP2ETXcXe/0KIQBjXE9Cpy+tgzzYfuq6HGai3hWq0YywtG+5XK8fyG08EjA==} dev: true /emoji-regex@9.2.2: @@ -3792,7 +3784,7 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.5 aria-query: 5.3.0 array-includes: 3.1.7 array.prototype.flatmap: 1.3.2 @@ -4055,8 +4047,8 @@ packages: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} dev: true - /framer-motion@10.16.5(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-GEzVjOYP2MIpV9bT/GbhcsBNoImG3/2X3O/xVNWmktkv9MdJ7P/44zELm/7Fjb+O3v39SmKFnoDQB32giThzpg==} + /framer-motion@10.16.7(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-iJrX0RXxbRI3qSvDjMIp0hj+Rq6eAx+GotpX8fnZhI88Texkhlj5QHifY4BdokCh4C0oYKPsyf0wL+kwM6/taw==} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 @@ -4770,8 +4762,8 @@ packages: resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} dev: false - /media-chrome@1.5.3: - resolution: {integrity: sha512-XiE29yNa9jyCMdshDLvSgXb0e/RJauMaTXT9kL9dTJmmZXz0RK+Ol/TsE2z4uO68x+rqZauoGEANUbDEyN8NLg==} + /media-chrome@1.5.4: + resolution: {integrity: sha512-BKWxw21Y6WZX4WX5WfwtmyMlnCKf4IrVbG7n5dWbQQew1ZFtKEUjR0xYqKDqOi1fkZkP3T2j2+MCRNuRB5YT+A==} dev: false /merge-stream@2.0.0: @@ -5371,8 +5363,8 @@ packages: prosemirror-view: 1.32.4 dev: false - /prosemirror-tables@1.3.4: - resolution: {integrity: sha512-z6uLSQ1BLC3rgbGwZmpfb+xkdvD7W/UOsURDfognZFYaTtc0gsk7u/t71Yijp2eLflVpffMk6X0u0+u+MMDvIw==} + /prosemirror-tables@1.3.5: + resolution: {integrity: sha512-JSZ2cCNlApu/ObAhdPyotrjBe2cimniniTpz60YXzbL0kZ+47nEYk2LWbfKU2lKpBkUNquta2PjteoNi4YCluQ==} dependencies: prosemirror-keymap: 1.2.2 prosemirror-model: 1.19.3 @@ -5794,8 +5786,8 @@ packages: is-fullwidth-code-point: 4.0.0 dev: true - /sonner@1.2.3(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-LMr155izOFA8hudzuUVQT0H93VqmcF9ODP475YjjC/4INESYWN1/ioC5SYRG20jmDmwuQDR8ugP7y6ELghT6JQ==} + /sonner@1.2.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-WGLP2QQnomgewaCTsK7YWiLcy5n1Yj83vsL5cP4zHMmpSkmFsCYTpQKhlXJrPE5kzjwbqCkCFXcOpbKc4vaUaA==} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 @@ -5995,8 +5987,8 @@ packages: '@popperjs/core': 2.11.8 dev: false - /tiptap-markdown@0.8.4(@tiptap/core@2.1.12): - resolution: {integrity: sha512-aCwr8cpVdZeb/2J0ffz8PvpLmQBcFE9GOxk2vB0Y9zlJEGWnSiGo1BWnwaeiyAdQqfBzV7NyNg+oz2A/MbC/Sg==} + /tiptap-markdown@0.8.7(@tiptap/core@2.1.12): + resolution: {integrity: sha512-jHnAm/yyKSCGL4xh2/73PNMI0+sZ1qrmZAda2fMwtpVs9LMYi8aYPilJLn4mL5RNrALE6jx+KRmGsq3DGpvnaQ==} peerDependencies: '@tiptap/core': ^2.0.3 dependencies: @@ -6251,13 +6243,13 @@ packages: debug: 4.3.4 globrex: 0.1.2 tsconfck: 2.1.2(typescript@5.3.2) - vite: 4.5.0(@types/node@20.10.0) + vite: 4.5.0(@types/node@20.10.1) transitivePeerDependencies: - supports-color - typescript dev: true - /vite@4.5.0(@types/node@20.10.0): + /vite@4.5.0(@types/node@20.10.1): resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -6285,7 +6277,7 @@ packages: terser: optional: true dependencies: - '@types/node': 20.10.0 + '@types/node': 20.10.1 esbuild: 0.18.20 postcss: 8.4.31 rollup: 3.29.4 diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 505d9d1d..e69b2bfa 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -382,11 +382,11 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "atomic-write-file" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c232177ba50b16fe7a4588495bd474a62a9e45a8e4ca6fd7d0b7ac29d164631e" +checksum = "9ae364a6c1301604bbc6dfbf8c385c47ff82301dd01eef506195a029196d8d04" dependencies = [ - "nix 0.26.4", + "nix 0.27.1", "rand 0.8.5", ] @@ -731,9 +731,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.9" +version = "4.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46ca43acc1b21c6cc2d1d3129c19e323a613935b5bc28fb3b33b5b2e5fb00030" +checksum = "41fffed7514f420abec6d183b1d3acfd9099c79c3a10a06ade4f8203f1411272" dependencies = [ "clap_builder", "clap_derive", @@ -1330,12 +1330,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f258a7194e7f7c2a7837a8913aeab7fd8c383457034fa20ce4dd3dcb813e8eb8" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -2961,7 +2961,17 @@ dependencies = [ "cfg-if", "libc", "memoffset 0.7.1", - "pin-utils", +] + +[[package]] +name = "nix" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +dependencies = [ + "bitflags 2.4.1", + "cfg-if", + "libc", ] [[package]] @@ -3993,9 +4003,9 @@ dependencies = [ [[package]] name = "rsa" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a3211b01eea83d80687da9eef70e39d65144a3894866a5153a2723e425a157f" +checksum = "af6c4b23d99685a1408194da11270ef8e9809aff951cc70ec9b17350b087e474" dependencies = [ "const-oid", "digest", @@ -4470,9 +4480,9 @@ dependencies = [ [[package]] name = "spki" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" dependencies = [ "base64ct", "der", @@ -6005,9 +6015,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.65" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85" +checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" dependencies = [ "js-sys", "wasm-bindgen", diff --git a/src/app/home/index.tsx b/src/app/home/index.tsx index 5ac59b77..08facfae 100644 --- a/src/app/home/index.tsx +++ b/src/app/home/index.tsx @@ -35,18 +35,18 @@ export function HomeScreen() { queryFn: async () => { const dbWidgets = await db.getWidgets(); const defaultWidgets = [ - { - id: '9998', - title: 'Notification', - content: '', - kind: WIDGET_KIND.notification, - }, { id: '9999', title: 'Newsfeed', content: '', kind: WIDGET_KIND.newsfeed, }, + { + id: '9998', + title: 'Notification', + content: '', + kind: WIDGET_KIND.notification, + }, ]; return [...defaultWidgets, ...dbWidgets]; diff --git a/src/libs/ndk/instance.ts b/src/libs/ndk/instance.ts index c23e93a2..f762d7b4 100644 --- a/src/libs/ndk/instance.ts +++ b/src/libs/ndk/instance.ts @@ -66,7 +66,7 @@ export const NDKInstance = () => { // connect await instance.connect(); - const tmpFetcher = NostrFetcher.withCustomPool(ndkAdapter(instance)); + const _fetcher = NostrFetcher.withCustomPool(ndkAdapter(instance)); // update account's metadata if (db.account) { @@ -88,7 +88,7 @@ export const NDKInstance = () => { const rootIds = new Set(); const dedupQueue = new Set(); - const events = await tmpFetcher.fetchLatestEvents( + const events = await _fetcher.fetchLatestEvents( explicitRelayUrls, { kinds: [NDKKind.Text, NDKKind.Repost], @@ -127,7 +127,7 @@ export const NDKInstance = () => { signal: AbortSignal; pageParam: number; }) => { - const events = await tmpFetcher.fetchLatestEvents( + const events = await _fetcher.fetchLatestEvents( explicitRelayUrls, { kinds: [NDKKind.Text, NDKKind.Repost, NDKKind.Reaction, NDKKind.Zap], @@ -147,7 +147,7 @@ export const NDKInstance = () => { } setNDK(instance); - setFetcher(tmpFetcher); + setFetcher(_fetcher); setRelayUrls(explicitRelayUrls); } catch (e) { const yes = await ask( diff --git a/src/libs/storage/instance.ts b/src/libs/storage/instance.ts index a69ac239..9b399135 100644 --- a/src/libs/storage/instance.ts +++ b/src/libs/storage/instance.ts @@ -73,7 +73,7 @@ export class LumeStorage { [pubkey] ); - if (results.length < 1) return null; + if (!results.length) return null; if (typeof results[0].profile === 'string') results[0].profile = JSON.parse(results[0].profile); @@ -87,7 +87,7 @@ export class LumeStorage { [id] ); - if (results.length < 1) return null; + if (!results.length) return null; return results[0]; } @@ -98,7 +98,7 @@ export class LumeStorage { `SELECT * FROM ndk_events WHERE id IN (${idsArr}) ORDER BY id;` ); - if (results.length < 1) return []; + if (!results.length) return []; return results; } @@ -108,7 +108,7 @@ export class LumeStorage { [pubkey] ); - if (results.length < 1) return []; + if (!results.length) return []; return results; } @@ -118,7 +118,7 @@ export class LumeStorage { [kind] ); - if (results.length < 1) return []; + if (!results.length) return []; return results; } @@ -128,7 +128,7 @@ export class LumeStorage { [kind, pubkey] ); - if (results.length < 1) return []; + if (!results.length) return []; return results; } @@ -138,7 +138,7 @@ export class LumeStorage { [tagValue] ); - if (results.length < 1) return []; + if (!results.length) return []; return results; } diff --git a/src/main.jsx b/src/main.jsx index 326f277f..7269cc95 100644 --- a/src/main.jsx +++ b/src/main.jsx @@ -12,6 +12,9 @@ const queryClient = new QueryClient({ defaultOptions: { queries: { gcTime: 1000 * 60 * 60 * 24, // 24 hours + queries: { + retryDelay: (attemptIndex) => Math.min(1000 * 2 ** attemptIndex, 10000), // 10 seconds + }, }, }, }); @@ -22,7 +25,7 @@ const root = createRoot(container); root.render( - + diff --git a/src/shared/notes/kinds/text.tsx b/src/shared/notes/kinds/text.tsx index 51d6f985..16719167 100644 --- a/src/shared/notes/kinds/text.tsx +++ b/src/shared/notes/kinds/text.tsx @@ -7,14 +7,14 @@ export function TextKind({ content, textmode }: { content: string; textmode?: bo if (textmode) { return ( -
+
{parsedContent}
); } return ( -
+
{parsedContent}
diff --git a/src/shared/notes/notify.tsx b/src/shared/notes/notify.tsx index aaf54b18..d5a2bf7a 100644 --- a/src/shared/notes/notify.tsx +++ b/src/shared/notes/notify.tsx @@ -1,109 +1,158 @@ import { NDKEvent, NDKKind } from '@nostr-dev-kit/ndk'; import { memo } from 'react'; -import { ShareIcon } from '@shared/icons'; -import { - MemoizedArticleKind, - MemoizedFileKind, - MemoizedTextKind, - NoteSkeleton, -} from '@shared/notes'; +import { ReplyIcon, RepostIcon } from '@shared/icons'; +import { ChildNote, TextKind } from '@shared/notes'; import { User } from '@shared/user'; import { WIDGET_KIND } from '@stores/constants'; import { formatCreatedAt } from '@utils/createdAt'; -import { useEvent } from '@utils/hooks/useEvent'; +import { useNostr } from '@utils/hooks/useNostr'; import { useWidget } from '@utils/hooks/useWidget'; export function NotifyNote({ event }: { event: NDKEvent }) { - const createdAt = formatCreatedAt(event.created_at, false); - const rootEventId = event.tags.find((el) => el[0] === 'e')?.[1]; - - const { status, data } = useEvent(rootEventId); + const { getEventThread } = useNostr(); const { addWidget } = useWidget(); - const renderKind = (event: NDKEvent) => { - switch (event.kind) { - case NDKKind.Text: - return ; - case NDKKind.Article: - return ; - case 1063: - return ; - default: - return ( -
- {event.content} -
- ); - } - }; + const thread = getEventThread(event.tags); + const createdAt = formatCreatedAt(event.created_at, false); - const renderText = (kind: number) => { - switch (kind) { - case NDKKind.Text: - return 'replied'; - case NDKKind.Reaction: { - return `reacted your post`; - } - case NDKKind.Repost: - return 'reposted your post'; - case NDKKind.Zap: - return 'zapped your post'; - default: - return 'unknown'; - } - }; - - if (status === 'pending') { + if (event.kind === NDKKind.Reaction) { return ( -
-
- +
+
+
+
+
+ {event.content === '+' ? '👍' : event.content} +
+
+
+ +

reacted

+
+
{createdAt}
+
+
+
+
+
+
+ {thread.rootEventId ? : null} +
+
+ +
); } - return ( -
-
-
-
-
- {event.kind === 7 ? (event.content === '+' ? '👍' : event.content) : '⚡️'} -
-
-
- -

- {renderText(event.kind)} -

+ if (event.kind === NDKKind.Repost) { + return ( +
+
+
+
+
+ +
+
+
+ +

reposted

+
+
{createdAt}
-
{createdAt}
-
-
-
{data ? renderKind(data) :

Loading...

}
- +
+
+
+ {thread.rootEventId ? : null} +
+
+ +
-
- ); + ); + } + + if (event.kind === NDKKind.Text) { + return ( +
+
+
+
+
+ +
+
+
+ +

replied

+
+
{createdAt}
+
+
+
+
+
+
+ {thread.replyEventId ? ( + + ) : thread.rootEventId ? ( + + ) : null} + +
+
+ +
+
+
+ ); + } } export const MemoizedNotifyNote = memo(NotifyNote); diff --git a/src/shared/notes/replies/form.tsx b/src/shared/notes/replies/form.tsx index 9b6d9923..f84dfcf4 100644 --- a/src/shared/notes/replies/form.tsx +++ b/src/shared/notes/replies/form.tsx @@ -50,7 +50,7 @@ export function NoteReplyForm({ rootEvent }: { rootEvent: NDKEvent }) { value={value} onChange={(e) => setValue(e.target.value)} placeholder="Reply to this post..." - className="h-28 w-full resize-none rounded-t-xl bg-neutral-100 px-5 py-4 text-neutral-900 !outline-none placeholder:text-neutral-600 dark:bg-neutral-900 dark:text-neutral-100 dark:placeholder:text-neutral-400" + className="h-28 w-full resize-none rounded-t-xl border-transparent bg-neutral-100 px-5 py-4 text-neutral-900 !outline-none placeholder:text-neutral-600 focus:border-blue-500 focus:ring focus:ring-blue-200 dark:bg-neutral-900 dark:text-neutral-100 dark:placeholder:text-neutral-400 dark:focus:ring-blue-800" spellCheck={false} />
diff --git a/src/utils/hooks/useProfile.ts b/src/utils/hooks/useProfile.ts index f8523733..aa448dad 100644 --- a/src/utils/hooks/useProfile.ts +++ b/src/utils/hooks/useProfile.ts @@ -1,10 +1,11 @@ import { NDKUserProfile } from '@nostr-dev-kit/ndk'; -import { useQuery } from '@tanstack/react-query'; +import { useQuery, useQueryClient } from '@tanstack/react-query'; import { nip19 } from 'nostr-tools'; import { useNDK } from '@libs/ndk/provider'; export function useProfile(pubkey: string, embed?: string) { + const queryClient = useQueryClient(); const { ndk } = useNDK(); const { status, @@ -13,24 +14,34 @@ export function useProfile(pubkey: string, embed?: string) { } = useQuery({ queryKey: ['user', pubkey], queryFn: async () => { + // parse data from nostr.band api if (embed) { const profile: NDKUserProfile = JSON.parse(embed); return profile; } + // get clean pubkey without any special characters let hexstring = pubkey.replace(/[^a-zA-Z0-9]/g, ''); - if (hexstring.startsWith('npub1')) - hexstring = nip19.decode(hexstring).data as string; + + if (hexstring.startsWith('npub1') || hexstring.startsWith('nprofile1')) { + const decoded = nip19.decode(hexstring); + if (decoded.type === 'nprofile') hexstring = decoded.data.pubkey; + if (decoded.type === 'npub') hexstring = decoded.data; + } const user = ndk.getUser({ pubkey: hexstring }); - if (!user) return Promise.reject(new Error("user's profile not found")); + const profile = await user.fetchProfile(); - return await user.fetchProfile(); + if (!profile) + throw new Error( + `Cannot get metadata for ${pubkey}, will be retry after 10 seconds` + ); + return profile; }, - staleTime: Infinity, - refetchOnMount: false, + initialData: () => queryClient.getQueryData(['user', pubkey]), refetchOnWindowFocus: false, refetchOnReconnect: false, + retry: 2, }); return { status, user, error };