mirror of
https://github.com/luminous-devs/lume.git
synced 2024-09-19 11:43:30 +00:00
new renderer for newsfeed
This commit is contained in:
parent
9d635d472e
commit
7a2e08f601
14
package.json
14
package.json
@ -17,6 +17,8 @@
|
|||||||
"@floating-ui/react": "^0.23.1",
|
"@floating-ui/react": "^0.23.1",
|
||||||
"@headlessui/react": "^1.7.14",
|
"@headlessui/react": "^1.7.14",
|
||||||
"@supabase/supabase-js": "^2.21.0",
|
"@supabase/supabase-js": "^2.21.0",
|
||||||
|
"@tanstack/react-query": "^4.29.5",
|
||||||
|
"@tanstack/react-virtual": "3.0.0-beta.54",
|
||||||
"@tauri-apps/api": "^1.2.0",
|
"@tauri-apps/api": "^1.2.0",
|
||||||
"@vidstack/react": "^0.4.5",
|
"@vidstack/react": "^0.4.5",
|
||||||
"dayjs": "^1.11.7",
|
"dayjs": "^1.11.7",
|
||||||
@ -31,7 +33,7 @@
|
|||||||
"react-string-replace": "^1.1.0",
|
"react-string-replace": "^1.1.0",
|
||||||
"react-virtuoso": "^4.3.1",
|
"react-virtuoso": "^4.3.1",
|
||||||
"react-youtube": "^10.1.0",
|
"react-youtube": "^10.1.0",
|
||||||
"swr": "^2.1.4",
|
"swr": "^2.1.5",
|
||||||
"tailwind-merge": "^1.12.0",
|
"tailwind-merge": "^1.12.0",
|
||||||
"tauri-plugin-sql-api": "github:tauri-apps/tauri-plugin-sql",
|
"tauri-plugin-sql-api": "github:tauri-apps/tauri-plugin-sql",
|
||||||
"vidstack": "^0.4.5"
|
"vidstack": "^0.4.5"
|
||||||
@ -40,9 +42,9 @@
|
|||||||
"@tailwindcss/typography": "^0.5.9",
|
"@tailwindcss/typography": "^0.5.9",
|
||||||
"@tauri-apps/cli": "^1.2.3",
|
"@tauri-apps/cli": "^1.2.3",
|
||||||
"@trivago/prettier-plugin-sort-imports": "^4.1.1",
|
"@trivago/prettier-plugin-sort-imports": "^4.1.1",
|
||||||
"@types/node": "^18.16.0",
|
"@types/node": "^18.16.1",
|
||||||
"@types/react": "^18.0.38",
|
"@types/react": "^18.2.0",
|
||||||
"@types/react-dom": "^18.0.11",
|
"@types/react-dom": "^18.2.1",
|
||||||
"@types/youtube-player": "^5.5.7",
|
"@types/youtube-player": "^5.5.7",
|
||||||
"@typescript-eslint/eslint-plugin": "^5.59.1",
|
"@typescript-eslint/eslint-plugin": "^5.59.1",
|
||||||
"@typescript-eslint/parser": "^5.59.1",
|
"@typescript-eslint/parser": "^5.59.1",
|
||||||
@ -62,9 +64,9 @@
|
|||||||
"prettier": "^2.8.8",
|
"prettier": "^2.8.8",
|
||||||
"prettier-plugin-tailwindcss": "^0.2.7",
|
"prettier-plugin-tailwindcss": "^0.2.7",
|
||||||
"prop-types": "^15.8.1",
|
"prop-types": "^15.8.1",
|
||||||
"tailwindcss": "^3.3.1",
|
"tailwindcss": "^3.3.2",
|
||||||
"typescript": "^4.9.5",
|
"typescript": "^4.9.5",
|
||||||
"vite": "^4.3.1",
|
"vite": "^4.3.2",
|
||||||
"vite-plugin-ssr": "^0.4.117",
|
"vite-plugin-ssr": "^0.4.117",
|
||||||
"vite-plugin-top-level-await": "^1.3.0",
|
"vite-plugin-top-level-await": "^1.3.0",
|
||||||
"vite-tsconfig-paths": "^4.2.0",
|
"vite-tsconfig-paths": "^4.2.0",
|
||||||
|
272
pnpm-lock.yaml
272
pnpm-lock.yaml
@ -10,12 +10,18 @@ dependencies:
|
|||||||
'@supabase/supabase-js':
|
'@supabase/supabase-js':
|
||||||
specifier: ^2.21.0
|
specifier: ^2.21.0
|
||||||
version: 2.21.0(encoding@0.1.13)
|
version: 2.21.0(encoding@0.1.13)
|
||||||
|
'@tanstack/react-query':
|
||||||
|
specifier: ^4.29.5
|
||||||
|
version: 4.29.5(react-dom@18.2.0)(react@18.2.0)
|
||||||
|
'@tanstack/react-virtual':
|
||||||
|
specifier: 3.0.0-beta.54
|
||||||
|
version: 3.0.0-beta.54(react@18.2.0)
|
||||||
'@tauri-apps/api':
|
'@tauri-apps/api':
|
||||||
specifier: ^1.2.0
|
specifier: ^1.2.0
|
||||||
version: 1.2.0
|
version: 1.2.0
|
||||||
'@vidstack/react':
|
'@vidstack/react':
|
||||||
specifier: ^0.4.5
|
specifier: ^0.4.5
|
||||||
version: 0.4.5(@types/react@18.0.38)(maverick.js@0.33.1)(media-icons@0.4.2)(react@18.2.0)(vidstack@0.4.5)
|
version: 0.4.5(@types/react@18.2.0)(maverick.js@0.33.1)(media-icons@0.4.2)(react@18.2.0)(vidstack@0.4.5)
|
||||||
dayjs:
|
dayjs:
|
||||||
specifier: ^1.11.7
|
specifier: ^1.11.7
|
||||||
version: 1.11.7
|
version: 1.11.7
|
||||||
@ -53,14 +59,14 @@ dependencies:
|
|||||||
specifier: ^10.1.0
|
specifier: ^10.1.0
|
||||||
version: 10.1.0(react@18.2.0)
|
version: 10.1.0(react@18.2.0)
|
||||||
swr:
|
swr:
|
||||||
specifier: ^2.1.4
|
specifier: ^2.1.5
|
||||||
version: 2.1.4(react@18.2.0)
|
version: 2.1.5(react@18.2.0)
|
||||||
tailwind-merge:
|
tailwind-merge:
|
||||||
specifier: ^1.12.0
|
specifier: ^1.12.0
|
||||||
version: 1.12.0
|
version: 1.12.0
|
||||||
tauri-plugin-sql-api:
|
tauri-plugin-sql-api:
|
||||||
specifier: github:tauri-apps/tauri-plugin-sql
|
specifier: github:tauri-apps/tauri-plugin-sql
|
||||||
version: github.com/tauri-apps/tauri-plugin-sql/62b21ef24303d80e9905f57b2b6d27efc8677c23
|
version: github.com/tauri-apps/tauri-plugin-sql/e180c047ed2de5b3fd89af92e4fed57520d8c918
|
||||||
vidstack:
|
vidstack:
|
||||||
specifier: ^0.4.5
|
specifier: ^0.4.5
|
||||||
version: 0.4.5
|
version: 0.4.5
|
||||||
@ -68,7 +74,7 @@ dependencies:
|
|||||||
devDependencies:
|
devDependencies:
|
||||||
'@tailwindcss/typography':
|
'@tailwindcss/typography':
|
||||||
specifier: ^0.5.9
|
specifier: ^0.5.9
|
||||||
version: 0.5.9(tailwindcss@3.3.1)
|
version: 0.5.9(tailwindcss@3.3.2)
|
||||||
'@tauri-apps/cli':
|
'@tauri-apps/cli':
|
||||||
specifier: ^1.2.3
|
specifier: ^1.2.3
|
||||||
version: 1.2.3
|
version: 1.2.3
|
||||||
@ -76,14 +82,14 @@ devDependencies:
|
|||||||
specifier: ^4.1.1
|
specifier: ^4.1.1
|
||||||
version: 4.1.1(prettier@2.8.8)
|
version: 4.1.1(prettier@2.8.8)
|
||||||
'@types/node':
|
'@types/node':
|
||||||
specifier: ^18.16.0
|
specifier: ^18.16.1
|
||||||
version: 18.16.0
|
version: 18.16.1
|
||||||
'@types/react':
|
'@types/react':
|
||||||
specifier: ^18.0.38
|
specifier: ^18.2.0
|
||||||
version: 18.0.38
|
version: 18.2.0
|
||||||
'@types/react-dom':
|
'@types/react-dom':
|
||||||
specifier: ^18.0.11
|
specifier: ^18.2.1
|
||||||
version: 18.0.11
|
version: 18.2.1
|
||||||
'@types/youtube-player':
|
'@types/youtube-player':
|
||||||
specifier: ^5.5.7
|
specifier: ^5.5.7
|
||||||
version: 5.5.7
|
version: 5.5.7
|
||||||
@ -95,7 +101,7 @@ devDependencies:
|
|||||||
version: 5.59.1(eslint@8.39.0)(typescript@4.9.5)
|
version: 5.59.1(eslint@8.39.0)(typescript@4.9.5)
|
||||||
'@vitejs/plugin-react-swc':
|
'@vitejs/plugin-react-swc':
|
||||||
specifier: ^3.3.0
|
specifier: ^3.3.0
|
||||||
version: 3.3.0(vite@4.3.1)
|
version: 3.3.0(vite@4.3.2)
|
||||||
autoprefixer:
|
autoprefixer:
|
||||||
specifier: ^10.4.14
|
specifier: ^10.4.14
|
||||||
version: 10.4.14(postcss@8.4.23)
|
version: 10.4.14(postcss@8.4.23)
|
||||||
@ -142,28 +148,34 @@ devDependencies:
|
|||||||
specifier: ^15.8.1
|
specifier: ^15.8.1
|
||||||
version: 15.8.1
|
version: 15.8.1
|
||||||
tailwindcss:
|
tailwindcss:
|
||||||
specifier: ^3.3.1
|
specifier: ^3.3.2
|
||||||
version: 3.3.1(postcss@8.4.23)
|
version: 3.3.2
|
||||||
typescript:
|
typescript:
|
||||||
specifier: ^4.9.5
|
specifier: ^4.9.5
|
||||||
version: 4.9.5
|
version: 4.9.5
|
||||||
vite:
|
vite:
|
||||||
specifier: ^4.3.1
|
specifier: ^4.3.2
|
||||||
version: 4.3.1(@types/node@18.16.0)
|
version: 4.3.2(@types/node@18.16.1)
|
||||||
vite-plugin-ssr:
|
vite-plugin-ssr:
|
||||||
specifier: ^0.4.117
|
specifier: ^0.4.117
|
||||||
version: 0.4.117(vite@4.3.1)
|
version: 0.4.117(vite@4.3.2)
|
||||||
vite-plugin-top-level-await:
|
vite-plugin-top-level-await:
|
||||||
specifier: ^1.3.0
|
specifier: ^1.3.0
|
||||||
version: 1.3.0(vite@4.3.1)
|
version: 1.3.0(vite@4.3.2)
|
||||||
vite-tsconfig-paths:
|
vite-tsconfig-paths:
|
||||||
specifier: ^4.2.0
|
specifier: ^4.2.0
|
||||||
version: 4.2.0(typescript@4.9.5)(vite@4.3.1)
|
version: 4.2.0(typescript@4.9.5)(vite@4.3.2)
|
||||||
ws:
|
ws:
|
||||||
specifier: ^8.13.0
|
specifier: ^8.13.0
|
||||||
version: 8.13.0
|
version: 8.13.0
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
|
/@alloc/quick-lru@5.2.0:
|
||||||
|
resolution:
|
||||||
|
{ integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== }
|
||||||
|
engines: { node: '>=10' }
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@babel/code-frame@7.21.4:
|
/@babel/code-frame@7.21.4:
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== }
|
{ integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== }
|
||||||
@ -830,9 +842,9 @@ packages:
|
|||||||
- supports-color
|
- supports-color
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@swc/core-darwin-arm64@1.3.54:
|
/@swc/core-darwin-arm64@1.3.55:
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-B1nTlkhTfzt95C/p+iWRaqwHTqqVWcqpHatnieIKxMCaceuZjvd7PeddbHmmrFFfjQqfs8UNzwrTVpgsFwCJWg== }
|
{ integrity: sha512-UnHC8aPg/JvHhgXxTU6EhTtfnYNS7nhq8EKB8laNPxlHbwEyMBVQ2QuJHlNCtFtvSfX/uH5l04Ld1iGXnBTfdQ== }
|
||||||
engines: { node: '>=10' }
|
engines: { node: '>=10' }
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [darwin]
|
os: [darwin]
|
||||||
@ -840,9 +852,9 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/@swc/core-darwin-x64@1.3.54:
|
/@swc/core-darwin-x64@1.3.55:
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-FM+46dRyvJySCrDIDARamycjl/LB9taQCFQg5QpQmQFwIkZ7GIaiQUZO9cdrZUBGPJJCsm7o2FG4ufwnVsCHHA== }
|
{ integrity: sha512-VNJkFVARrktIqtaLrD1NFA54gqekH7eAUcUY2U2SdHwO67HYjfMXMxlugLP5PDasSKpTkrVooUdhkffoA5W50g== }
|
||||||
engines: { node: '>=10' }
|
engines: { node: '>=10' }
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [darwin]
|
os: [darwin]
|
||||||
@ -850,9 +862,9 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/@swc/core-linux-arm-gnueabihf@1.3.54:
|
/@swc/core-linux-arm-gnueabihf@1.3.55:
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-5EfxTKllNm+ucjuo3WNhwHfY417UwqCsaqjJnveXgn5DU+6/ft96skdpD+xrBp5ejMNzem8xYambOrBLzs2QDw== }
|
{ integrity: sha512-6OcohhIFKKNW/TpJt26Tpul8zyL7dmp1Lnyj2BX9ycsZZ5UnsNiGqn37mrqJgVTx/ansEmbyOmKu2mzm/Ct6cQ== }
|
||||||
engines: { node: '>=10' }
|
engines: { node: '>=10' }
|
||||||
cpu: [arm]
|
cpu: [arm]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
@ -860,9 +872,9 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/@swc/core-linux-arm64-gnu@1.3.54:
|
/@swc/core-linux-arm64-gnu@1.3.55:
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-4AmBlRaelUYcW9aR/q3z8UiNYsQ/1JtinETCZBye08wnwK81ITriYcHTBPP8Ix8IZtkcvpsN/SsGAnLNcrpRBQ== }
|
{ integrity: sha512-MfZtXGBv21XWwvrSMP0CMxScDolT/iv5PRl9UBprYUehwWr7BNjA3V9W7QQ+kKoPyORWk7LX7OpJZF3FnO618Q== }
|
||||||
engines: { node: '>=10' }
|
engines: { node: '>=10' }
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
@ -870,9 +882,9 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/@swc/core-linux-arm64-musl@1.3.54:
|
/@swc/core-linux-arm64-musl@1.3.55:
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-twgmC6wfH2WW5mlG/rHk4GnbDZ2UDetF0PMJt/ICmgBwJsDSf71WSI9CA5b/F1wE9DE0ofyo+yukjuj9TtPvOQ== }
|
{ integrity: sha512-iZJo+7L5lv10W0f0C6SlyteAyMJt5Tp+aH3+nlAwKdtc+VjyL1sGhR8DJMXp2/buBRZJ9tjEtpXKDaWUdSdF7Q== }
|
||||||
engines: { node: '>=10' }
|
engines: { node: '>=10' }
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
@ -880,9 +892,9 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/@swc/core-linux-x64-gnu@1.3.54:
|
/@swc/core-linux-x64-gnu@1.3.55:
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-/dE+z0pF1R0vvXPTQ43+cypltfbZDI0C3WuDMkb1KIaQS7yiaufzzWIVGfJisoKGxpyk3ABSSPcStEqedpvJ+w== }
|
{ integrity: sha512-Rmc8ny/mslzzz0+wNK9/mLdyAWVbMZHRSvljhpzASmq48NBkmZ5vk9/WID6MnUz2e9cQ0JxJQs8t39KlFJtW3g== }
|
||||||
engines: { node: '>=10' }
|
engines: { node: '>=10' }
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
@ -890,9 +902,9 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/@swc/core-linux-x64-musl@1.3.54:
|
/@swc/core-linux-x64-musl@1.3.55:
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-/dGU5pCaPYEaaPAPt+Fa+9cCTNuhmtdTpxwUX0ZF3VlWAf3QPoTcPYkUDEOvWcl3g8RpEr7ZGp9beVCp2NpLpA== }
|
{ integrity: sha512-Ymoc4xxINzS93ZjVd2UZfLZk1jF6wHjdCbC1JF+0zK3IrNrxCIDoWoaAj0+Bbvyo3hD1Xg/cneSTsqX8amnnuQ== }
|
||||||
engines: { node: '>=10' }
|
engines: { node: '>=10' }
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
@ -900,9 +912,9 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/@swc/core-win32-arm64-msvc@1.3.54:
|
/@swc/core-win32-arm64-msvc@1.3.55:
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-gpqOqHB7fHqTApS8pvW1/oMCcfEH1LxRU81KqUGY/MXR3DDwpnDY3ycyCzRB4tpNr91ZpgzUtrlx8OQCHq75uw== }
|
{ integrity: sha512-OhnmFstq2qRU2GI5I0G/8L+vc2rx8+w+IOA6EZBrY4FuMCbPIZKKzlnAIxYn2W+yD4gvBzYP3tgEcaDfQk6EkA== }
|
||||||
engines: { node: '>=10' }
|
engines: { node: '>=10' }
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
@ -910,9 +922,9 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/@swc/core-win32-ia32-msvc@1.3.54:
|
/@swc/core-win32-ia32-msvc@1.3.55:
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-2h+EnYoEDZcPfoGCKU4F/gbDz0Dw+vQG7b5rxwo6IWFhB2mGOMiYZzbIo6LVyFRoSXNVNa88Yov18pgfeM9gMw== }
|
{ integrity: sha512-3VR5rHZ6uoL/Vo3djV30GgX2oyDwWWsk+Yp+nyvYyBaKYiH2zeHfxdYRLSQV3W7kSlCAH3oDYpSljrWZ0t5XEQ== }
|
||||||
engines: { node: '>=10' }
|
engines: { node: '>=10' }
|
||||||
cpu: [ia32]
|
cpu: [ia32]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
@ -920,9 +932,9 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/@swc/core-win32-x64-msvc@1.3.54:
|
/@swc/core-win32-x64-msvc@1.3.55:
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-//W/mqIVuOxMRVI3ojCF6jKLpugu6sSSsCaBpM9GdDVGAaAt0UdivKzecqHIt2PGoN6l1mT73Zy+083PvkPhHQ== }
|
{ integrity: sha512-KBtMFtRwnbxBugYf6i2ePqEGdxsk715KcqGMjGhxNg7BTACnXnhj37irHu2e7A7wZffbkUVUYuj/JEgVkEjSxg== }
|
||||||
engines: { node: '>=10' }
|
engines: { node: '>=10' }
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
@ -930,9 +942,9 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/@swc/core@1.3.54:
|
/@swc/core@1.3.55:
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-/BCIn698CHkQz3d3VY5W5BHagbwkKen295mDM+JPfDepLsLy3lKtD1+GZqZYKVQDebUj90eAn7OD+qBrAxPtaA== }
|
{ integrity: sha512-w/lN3OuJsuy868yJZKop+voZLVzI5pVSoopQVtgDNkEzejnPuRp9XaeAValvuMaWqKoTMtOjLzEPyv/xiAGYQQ== }
|
||||||
engines: { node: '>=10' }
|
engines: { node: '>=10' }
|
||||||
requiresBuild: true
|
requiresBuild: true
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@ -941,19 +953,19 @@ packages:
|
|||||||
'@swc/helpers':
|
'@swc/helpers':
|
||||||
optional: true
|
optional: true
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@swc/core-darwin-arm64': 1.3.54
|
'@swc/core-darwin-arm64': 1.3.55
|
||||||
'@swc/core-darwin-x64': 1.3.54
|
'@swc/core-darwin-x64': 1.3.55
|
||||||
'@swc/core-linux-arm-gnueabihf': 1.3.54
|
'@swc/core-linux-arm-gnueabihf': 1.3.55
|
||||||
'@swc/core-linux-arm64-gnu': 1.3.54
|
'@swc/core-linux-arm64-gnu': 1.3.55
|
||||||
'@swc/core-linux-arm64-musl': 1.3.54
|
'@swc/core-linux-arm64-musl': 1.3.55
|
||||||
'@swc/core-linux-x64-gnu': 1.3.54
|
'@swc/core-linux-x64-gnu': 1.3.55
|
||||||
'@swc/core-linux-x64-musl': 1.3.54
|
'@swc/core-linux-x64-musl': 1.3.55
|
||||||
'@swc/core-win32-arm64-msvc': 1.3.54
|
'@swc/core-win32-arm64-msvc': 1.3.55
|
||||||
'@swc/core-win32-ia32-msvc': 1.3.54
|
'@swc/core-win32-ia32-msvc': 1.3.55
|
||||||
'@swc/core-win32-x64-msvc': 1.3.54
|
'@swc/core-win32-x64-msvc': 1.3.55
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@tailwindcss/typography@0.5.9(tailwindcss@3.3.1):
|
/@tailwindcss/typography@0.5.9(tailwindcss@3.3.2):
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-t8Sg3DyynFysV9f4JDOVISGsjazNb48AeIYQwcL+Bsq5uf4RYL75C1giZ43KISjeDGBaTN3Kxh7Xj/vRSMJUUg== }
|
{ integrity: sha512-t8Sg3DyynFysV9f4JDOVISGsjazNb48AeIYQwcL+Bsq5uf4RYL75C1giZ43KISjeDGBaTN3Kxh7Xj/vRSMJUUg== }
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@ -963,9 +975,48 @@ packages:
|
|||||||
lodash.isplainobject: 4.0.6
|
lodash.isplainobject: 4.0.6
|
||||||
lodash.merge: 4.6.2
|
lodash.merge: 4.6.2
|
||||||
postcss-selector-parser: 6.0.10
|
postcss-selector-parser: 6.0.10
|
||||||
tailwindcss: 3.3.1(postcss@8.4.23)
|
tailwindcss: 3.3.2
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/@tanstack/query-core@4.29.5:
|
||||||
|
resolution:
|
||||||
|
{ integrity: sha512-xXIiyQ/4r9KfaJ3k6kejqcaqFXXBTzN2aOJ5H1J6aTJE9hl/nbgAdfF6oiIu0CD5xowejJEJ6bBg8TO7BN4NuQ== }
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@tanstack/react-query@4.29.5(react-dom@18.2.0)(react@18.2.0):
|
||||||
|
resolution:
|
||||||
|
{ integrity: sha512-F87cibC3s3eG0Q90g2O+hqntpCrudKFnR8P24qkH9uccEhXErnJxBC/AAI4cJRV2bfMO8IeGZQYf3WyYgmSg0w== }
|
||||||
|
peerDependencies:
|
||||||
|
react: ^16.8.0 || ^17.0.0 || ^18.0.0
|
||||||
|
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
|
||||||
|
react-native: '*'
|
||||||
|
peerDependenciesMeta:
|
||||||
|
react-dom:
|
||||||
|
optional: true
|
||||||
|
react-native:
|
||||||
|
optional: true
|
||||||
|
dependencies:
|
||||||
|
'@tanstack/query-core': 4.29.5
|
||||||
|
react: 18.2.0
|
||||||
|
react-dom: 18.2.0(react@18.2.0)
|
||||||
|
use-sync-external-store: 1.2.0(react@18.2.0)
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@tanstack/react-virtual@3.0.0-beta.54(react@18.2.0):
|
||||||
|
resolution:
|
||||||
|
{ integrity: sha512-D1mDMf4UPbrtHRZZriCly5bXTBMhylslm4dhcHqTtDJ6brQcgGmk8YD9JdWBGWfGSWPKoh2x1H3e7eh+hgPXtQ== }
|
||||||
|
peerDependencies:
|
||||||
|
react: ^16.8.0 || ^17.0.0 || ^18.0.0
|
||||||
|
dependencies:
|
||||||
|
'@tanstack/virtual-core': 3.0.0-beta.54
|
||||||
|
react: 18.2.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@tanstack/virtual-core@3.0.0-beta.54:
|
||||||
|
resolution:
|
||||||
|
{ integrity: sha512-jtkwqdP2rY2iCCDVAFuaNBH3fiEi29aTn2RhtIoky8DTTiCdc48plpHHreLwmv1PICJ4AJUUESaq3xa8fZH8+g== }
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@tauri-apps/api@1.2.0:
|
/@tauri-apps/api@1.2.0:
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-lsI54KI6HGf7VImuf/T9pnoejfgkNoXveP14pVV7XarrQ46rOejIVJLFqHI9sRReJMGdh2YuCoI3cc/yCWCsrw== }
|
{ integrity: sha512-lsI54KI6HGf7VImuf/T9pnoejfgkNoXveP14pVV7XarrQ46rOejIVJLFqHI9sRReJMGdh2YuCoI3cc/yCWCsrw== }
|
||||||
@ -1105,9 +1156,9 @@ packages:
|
|||||||
{ integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== }
|
{ integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== }
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@types/node@18.16.0:
|
/@types/node@18.16.1:
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-BsAaKhB+7X+H4GnSjGhJG9Qi8Tw+inU9nJDwmD5CgOmBLEI6ArdhikpLX7DjbjDRDTbqZzU2LSQNZg8WGPiSZQ== }
|
{ integrity: sha512-DZxSZWXxFfOlx7k7Rv4LAyiMroaxa3Ly/7OOzZO8cBNho0YzAi4qlbrx8W27JGqG57IgR/6J7r+nOJWw6kcvZA== }
|
||||||
|
|
||||||
/@types/phoenix@1.5.6:
|
/@types/phoenix@1.5.6:
|
||||||
resolution:
|
resolution:
|
||||||
@ -1118,16 +1169,16 @@ packages:
|
|||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== }
|
{ integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== }
|
||||||
|
|
||||||
/@types/react-dom@18.0.11:
|
/@types/react-dom@18.2.1:
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw== }
|
{ integrity: sha512-8QZEV9+Kwy7tXFmjJrp3XUKQSs9LTnE0KnoUb0YCguWBiNW0Yfb2iBMYZ08WPg35IR6P3Z0s00B15SwZnO26+w== }
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/react': 18.0.38
|
'@types/react': 18.2.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@types/react@18.0.38:
|
/@types/react@18.2.0:
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-ExsidLLSzYj4cvaQjGnQCk4HFfVT9+EZ9XZsQ8Hsrcn8QNgXtpZ3m9vSIC2MWtx7jHictK6wYhQgGh6ic58oOw== }
|
{ integrity: sha512-0FLj93y5USLHdnhIhABk83rm8XEGA7kH3cr+YUlvxoUGp1xNt/DINUMvqPxLyOQMzLmZe8i4RTHbvb8MC7NmrA== }
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/prop-types': 15.7.5
|
'@types/prop-types': 15.7.5
|
||||||
'@types/scheduler': 0.16.3
|
'@types/scheduler': 0.16.3
|
||||||
@ -1146,7 +1197,7 @@ packages:
|
|||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-NbsqiNX9CnEfC1Z0Vf4mE1SgAJ07JnRYcNex7AJ9zAVzmiGHmjKFEk7O4TJIsgv2B1sLEb6owKFZrACwdYngsQ== }
|
{ integrity: sha512-NbsqiNX9CnEfC1Z0Vf4mE1SgAJ07JnRYcNex7AJ9zAVzmiGHmjKFEk7O4TJIsgv2B1sLEb6owKFZrACwdYngsQ== }
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 18.16.0
|
'@types/node': 18.16.1
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@types/youtube-player@5.5.7:
|
/@types/youtube-player@5.5.7:
|
||||||
@ -1292,7 +1343,7 @@ packages:
|
|||||||
eslint-visitor-keys: 3.4.0
|
eslint-visitor-keys: 3.4.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@vidstack/react@0.4.5(@types/react@18.0.38)(maverick.js@0.33.1)(media-icons@0.4.2)(react@18.2.0)(vidstack@0.4.5):
|
/@vidstack/react@0.4.5(@types/react@18.2.0)(maverick.js@0.33.1)(media-icons@0.4.2)(react@18.2.0)(vidstack@0.4.5):
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-spcim3+p1fMzkhHRKn5PS54YQjfThW5M3F2+R8tCT+wpsxbbCDa/TGdLBoIy2oC0LNziPkn0vlBWIZko9F5iig== }
|
{ integrity: sha512-spcim3+p1fMzkhHRKn5PS54YQjfThW5M3F2+R8tCT+wpsxbbCDa/TGdLBoIy2oC0LNziPkn0vlBWIZko9F5iig== }
|
||||||
engines: { node: '>=16' }
|
engines: { node: '>=16' }
|
||||||
@ -1303,21 +1354,21 @@ packages:
|
|||||||
react: ^18.0.0
|
react: ^18.0.0
|
||||||
vidstack: 0.4.5
|
vidstack: 0.4.5
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/react': 18.0.38
|
'@types/react': 18.2.0
|
||||||
maverick.js: 0.33.1
|
maverick.js: 0.33.1
|
||||||
media-icons: 0.4.2
|
media-icons: 0.4.2
|
||||||
react: 18.2.0
|
react: 18.2.0
|
||||||
vidstack: 0.4.5
|
vidstack: 0.4.5
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@vitejs/plugin-react-swc@3.3.0(vite@4.3.1):
|
/@vitejs/plugin-react-swc@3.3.0(vite@4.3.2):
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-Ycg+n2eyCOTpn/wRy+evVo859+hw7qCj9iaX5CMny6x1fx1Uoq0xBG+a98lFtwLNGfGEnpI0F26YigRuxCRkwg== }
|
{ integrity: sha512-Ycg+n2eyCOTpn/wRy+evVo859+hw7qCj9iaX5CMny6x1fx1Uoq0xBG+a98lFtwLNGfGEnpI0F26YigRuxCRkwg== }
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
vite: ^4
|
vite: ^4
|
||||||
dependencies:
|
dependencies:
|
||||||
'@swc/core': 1.3.54
|
'@swc/core': 1.3.55
|
||||||
vite: 4.3.1(@types/node@18.16.0)
|
vite: 4.3.2(@types/node@18.16.1)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@swc/helpers'
|
- '@swc/helpers'
|
||||||
dev: true
|
dev: true
|
||||||
@ -1542,7 +1593,7 @@ packages:
|
|||||||
hasBin: true
|
hasBin: true
|
||||||
dependencies:
|
dependencies:
|
||||||
caniuse-lite: 1.0.30001481
|
caniuse-lite: 1.0.30001481
|
||||||
electron-to-chromium: 1.4.371
|
electron-to-chromium: 1.4.372
|
||||||
node-releases: 2.0.10
|
node-releases: 2.0.10
|
||||||
update-browserslist-db: 1.0.11(browserslist@4.21.5)
|
update-browserslist-db: 1.0.11(browserslist@4.21.5)
|
||||||
dev: true
|
dev: true
|
||||||
@ -1846,9 +1897,9 @@ packages:
|
|||||||
{ integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== }
|
{ integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== }
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/electron-to-chromium@1.4.371:
|
/electron-to-chromium@1.4.372:
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-jlBzY4tFcJaiUjzhRTCWAqRvTO/fWzjA3Bls0mykzGZ7zvcMP7h05W6UcgzfT9Ca1SW2xyKDOFRyI0pQeRNZGw== }
|
{ integrity: sha512-MrlFq/j+TYHOjeWsWGYfzevc25HNeJdsF6qaLFrqBTRWZQtWkb1myq/Q2veLWezVaa5OcSZ99CFwTT4aF4Mung== }
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/emoji-regex@8.0.0:
|
/emoji-regex@8.0.0:
|
||||||
@ -2961,7 +3012,7 @@ packages:
|
|||||||
engines: { node: '>=16' }
|
engines: { node: '>=16' }
|
||||||
dependencies:
|
dependencies:
|
||||||
'@maverick-js/signals': 5.9.3
|
'@maverick-js/signals': 5.9.3
|
||||||
type-fest: 3.8.0
|
type-fest: 3.9.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/media-captions@0.0.8:
|
/media-captions@0.0.8:
|
||||||
@ -3334,10 +3385,10 @@ packages:
|
|||||||
engines: { node: '>= 6' }
|
engines: { node: '>= 6' }
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/postcss-import@14.1.0(postcss@8.4.23):
|
/postcss-import@15.1.0(postcss@8.4.23):
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw== }
|
{ integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== }
|
||||||
engines: { node: '>=10.0.0' }
|
engines: { node: '>=14.0.0' }
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
postcss: ^8.0.0
|
postcss: ^8.0.0
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -3358,10 +3409,10 @@ packages:
|
|||||||
postcss: 8.4.23
|
postcss: 8.4.23
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/postcss-load-config@3.1.4(postcss@8.4.23):
|
/postcss-load-config@4.0.1(postcss@8.4.23):
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg== }
|
{ integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA== }
|
||||||
engines: { node: '>= 10' }
|
engines: { node: '>= 14' }
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
postcss: '>=8.0.9'
|
postcss: '>=8.0.9'
|
||||||
ts-node: '>=9.0.0'
|
ts-node: '>=9.0.0'
|
||||||
@ -3373,12 +3424,12 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
lilconfig: 2.1.0
|
lilconfig: 2.1.0
|
||||||
postcss: 8.4.23
|
postcss: 8.4.23
|
||||||
yaml: 1.10.2
|
yaml: 2.2.2
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/postcss-nested@6.0.0(postcss@8.4.23):
|
/postcss-nested@6.0.1(postcss@8.4.23):
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w== }
|
{ integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ== }
|
||||||
engines: { node: '>=12.0' }
|
engines: { node: '>=12.0' }
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
postcss: ^8.2.14
|
postcss: ^8.2.14
|
||||||
@ -3509,12 +3560,6 @@ packages:
|
|||||||
{ integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== }
|
{ integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== }
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/quick-lru@5.1.1:
|
|
||||||
resolution:
|
|
||||||
{ integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== }
|
|
||||||
engines: { node: '>=10' }
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/react-dom@18.2.0(react@18.2.0):
|
/react-dom@18.2.0(react@18.2.0):
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== }
|
{ integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== }
|
||||||
@ -3947,9 +3992,9 @@ packages:
|
|||||||
engines: { node: '>= 0.4' }
|
engines: { node: '>= 0.4' }
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/swr@2.1.4(react@18.2.0):
|
/swr@2.1.5(react@18.2.0):
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-NG+eu3s3YT7aCnL0BRzsYIh8U0HhzA4II1bNMTUtO5D+N+4+YJpcfLiagFdrt0IbTGCbOiVyzAIMvqOCsk9cQA== }
|
{ integrity: sha512-/OhfZMcEpuz77KavXST5q6XE9nrOBOVcBLWjMT+oAE/kQHyE3PASrevXCtQDZ8aamntOfFkbVJp7Il9tNBQWrw== }
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
react: ^16.11.0 || ^17.0.0 || ^18.0.0
|
react: ^16.11.0 || ^17.0.0 || ^18.0.0
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -3967,17 +4012,15 @@ packages:
|
|||||||
{ integrity: sha512-Y17eDp7FtN1+JJ4OY0Bqv9OA41O+MS8c1Iyr3T6JFLnOgLg3EvcyMKZAnQ8AGyvB5Nxm3t9Xb5Mhe139m8QT/g== }
|
{ integrity: sha512-Y17eDp7FtN1+JJ4OY0Bqv9OA41O+MS8c1Iyr3T6JFLnOgLg3EvcyMKZAnQ8AGyvB5Nxm3t9Xb5Mhe139m8QT/g== }
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/tailwindcss@3.3.1(postcss@8.4.23):
|
/tailwindcss@3.3.2:
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-Vkiouc41d4CEq0ujXl6oiGFQ7bA3WEhUZdTgXAhtKxSy49OmKs8rEfQmupsfF0IGW8fv2iQkp1EVUuapCFrZ9g== }
|
{ integrity: sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w== }
|
||||||
engines: { node: '>=12.13.0' }
|
engines: { node: '>=14.0.0' }
|
||||||
hasBin: true
|
hasBin: true
|
||||||
peerDependencies:
|
|
||||||
postcss: ^8.0.9
|
|
||||||
dependencies:
|
dependencies:
|
||||||
|
'@alloc/quick-lru': 5.2.0
|
||||||
arg: 5.0.2
|
arg: 5.0.2
|
||||||
chokidar: 3.5.3
|
chokidar: 3.5.3
|
||||||
color-name: 1.1.4
|
|
||||||
didyoumean: 1.2.2
|
didyoumean: 1.2.2
|
||||||
dlv: 1.1.3
|
dlv: 1.1.3
|
||||||
fast-glob: 3.2.12
|
fast-glob: 3.2.12
|
||||||
@ -3990,13 +4033,12 @@ packages:
|
|||||||
object-hash: 3.0.0
|
object-hash: 3.0.0
|
||||||
picocolors: 1.0.0
|
picocolors: 1.0.0
|
||||||
postcss: 8.4.23
|
postcss: 8.4.23
|
||||||
postcss-import: 14.1.0(postcss@8.4.23)
|
postcss-import: 15.1.0(postcss@8.4.23)
|
||||||
postcss-js: 4.0.1(postcss@8.4.23)
|
postcss-js: 4.0.1(postcss@8.4.23)
|
||||||
postcss-load-config: 3.1.4(postcss@8.4.23)
|
postcss-load-config: 4.0.1(postcss@8.4.23)
|
||||||
postcss-nested: 6.0.0(postcss@8.4.23)
|
postcss-nested: 6.0.1(postcss@8.4.23)
|
||||||
postcss-selector-parser: 6.0.11
|
postcss-selector-parser: 6.0.11
|
||||||
postcss-value-parser: 4.2.0
|
postcss-value-parser: 4.2.0
|
||||||
quick-lru: 5.1.1
|
|
||||||
resolve: 1.22.2
|
resolve: 1.22.2
|
||||||
sucrase: 3.32.0
|
sucrase: 3.32.0
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
@ -4112,9 +4154,9 @@ packages:
|
|||||||
engines: { node: '>=10' }
|
engines: { node: '>=10' }
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/type-fest@3.8.0:
|
/type-fest@3.9.0:
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-FVNSzGQz9Th+/9R6Lvv7WIAkstylfHN2/JYxkyhhmKFYh9At2DST8t6L6Lref9eYO8PXFTfG9Sg1Agg0K3vq3Q== }
|
{ integrity: sha512-hR8JP2e8UiH7SME5JZjsobBlEiatFoxpzCP+R3ZeCo7kAaG1jXQE5X/buLzogM6GJu8le9Y4OcfNuIQX0rZskA== }
|
||||||
engines: { node: '>=14.16' }
|
engines: { node: '>=14.16' }
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
@ -4217,10 +4259,10 @@ packages:
|
|||||||
maverick.js: 0.33.1
|
maverick.js: 0.33.1
|
||||||
media-captions: 0.0.8
|
media-captions: 0.0.8
|
||||||
media-icons: 0.4.2
|
media-icons: 0.4.2
|
||||||
type-fest: 3.8.0
|
type-fest: 3.9.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/vite-plugin-ssr@0.4.117(vite@4.3.1):
|
/vite-plugin-ssr@0.4.117(vite@4.3.2):
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-jebuK9HGNTpwbNlhIygTmNX8W9ZJTClUv/V5MfvRbVGqL0jGkYbsKKwzRNbUDm5EMqblbFf9mMHt6KSIuh/YJQ== }
|
{ integrity: sha512-jebuK9HGNTpwbNlhIygTmNX8W9ZJTClUv/V5MfvRbVGqL0jGkYbsKKwzRNbUDm5EMqblbFf9mMHt6KSIuh/YJQ== }
|
||||||
engines: { node: '>=12.19.0' }
|
engines: { node: '>=12.19.0' }
|
||||||
@ -4242,25 +4284,25 @@ packages:
|
|||||||
fast-glob: 3.2.12
|
fast-glob: 3.2.12
|
||||||
picocolors: 1.0.0
|
picocolors: 1.0.0
|
||||||
sirv: 2.0.3
|
sirv: 2.0.3
|
||||||
vite: 4.3.1(@types/node@18.16.0)
|
vite: 4.3.2(@types/node@18.16.1)
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/vite-plugin-top-level-await@1.3.0(vite@4.3.1):
|
/vite-plugin-top-level-await@1.3.0(vite@4.3.2):
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-owIfsgWudMlQODWJSwp0sQB3AZZu3qsMygeBjZy8CyjEk6OB9AGd8lHqmgwrcEqgvy9N58lYxSBLVk3/4ejEiA== }
|
{ integrity: sha512-owIfsgWudMlQODWJSwp0sQB3AZZu3qsMygeBjZy8CyjEk6OB9AGd8lHqmgwrcEqgvy9N58lYxSBLVk3/4ejEiA== }
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
vite: '>=2.8'
|
vite: '>=2.8'
|
||||||
dependencies:
|
dependencies:
|
||||||
'@rollup/plugin-virtual': 3.0.1
|
'@rollup/plugin-virtual': 3.0.1
|
||||||
'@swc/core': 1.3.54
|
'@swc/core': 1.3.55
|
||||||
uuid: 9.0.0
|
uuid: 9.0.0
|
||||||
vite: 4.3.1(@types/node@18.16.0)
|
vite: 4.3.2(@types/node@18.16.1)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@swc/helpers'
|
- '@swc/helpers'
|
||||||
- rollup
|
- rollup
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/vite-tsconfig-paths@4.2.0(typescript@4.9.5)(vite@4.3.1):
|
/vite-tsconfig-paths@4.2.0(typescript@4.9.5)(vite@4.3.2):
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-jGpus0eUy5qbbMVGiTxCL1iB9ZGN6Bd37VGLJU39kTDD6ZfULTTb1bcc5IeTWqWJKiWV5YihCaibeASPiGi8kw== }
|
{ integrity: sha512-jGpus0eUy5qbbMVGiTxCL1iB9ZGN6Bd37VGLJU39kTDD6ZfULTTb1bcc5IeTWqWJKiWV5YihCaibeASPiGi8kw== }
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@ -4272,15 +4314,15 @@ packages:
|
|||||||
debug: 4.3.4
|
debug: 4.3.4
|
||||||
globrex: 0.1.2
|
globrex: 0.1.2
|
||||||
tsconfck: 2.1.1(typescript@4.9.5)
|
tsconfck: 2.1.1(typescript@4.9.5)
|
||||||
vite: 4.3.1(@types/node@18.16.0)
|
vite: 4.3.2(@types/node@18.16.1)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
- typescript
|
- typescript
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/vite@4.3.1(@types/node@18.16.0):
|
/vite@4.3.2(@types/node@18.16.1):
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-EPmfPLAI79Z/RofuMvkIS0Yr091T2ReUoXQqc5ppBX/sjFRhHKiPPF/R46cTdoci/XgeQpB23diiJxq5w30vdg== }
|
{ integrity: sha512-9R53Mf+TBoXCYejcL+qFbZde+eZveQLDYd9XgULILLC1a5ZwPaqgmdVpL8/uvw2BM/1TzetWjglwm+3RO+xTyw== }
|
||||||
engines: { node: ^14.18.0 || >=16.0.0 }
|
engines: { node: ^14.18.0 || >=16.0.0 }
|
||||||
hasBin: true
|
hasBin: true
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@ -4304,7 +4346,7 @@ packages:
|
|||||||
terser:
|
terser:
|
||||||
optional: true
|
optional: true
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 18.16.0
|
'@types/node': 18.16.1
|
||||||
esbuild: 0.17.18
|
esbuild: 0.17.18
|
||||||
postcss: 8.4.23
|
postcss: 8.4.23
|
||||||
rollup: 3.21.0
|
rollup: 3.21.0
|
||||||
@ -4428,12 +4470,6 @@ packages:
|
|||||||
{ integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== }
|
{ integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== }
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/yaml@1.10.2:
|
|
||||||
resolution:
|
|
||||||
{ integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== }
|
|
||||||
engines: { node: '>= 6' }
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/yaml@2.2.2:
|
/yaml@2.2.2:
|
||||||
resolution:
|
resolution:
|
||||||
{ integrity: sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA== }
|
{ integrity: sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA== }
|
||||||
@ -4457,10 +4493,10 @@ packages:
|
|||||||
- supports-color
|
- supports-color
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
github.com/tauri-apps/tauri-plugin-sql/62b21ef24303d80e9905f57b2b6d27efc8677c23:
|
github.com/tauri-apps/tauri-plugin-sql/e180c047ed2de5b3fd89af92e4fed57520d8c918:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
tarball: https://codeload.github.com/tauri-apps/tauri-plugin-sql/tar.gz/62b21ef24303d80e9905f57b2b6d27efc8677c23,
|
tarball: https://codeload.github.com/tauri-apps/tauri-plugin-sql/tar.gz/e180c047ed2de5b3fd89af92e4fed57520d8c918,
|
||||||
}
|
}
|
||||||
name: tauri-plugin-sql-api
|
name: tauri-plugin-sql-api
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
|
@ -83,7 +83,7 @@ export default function EventCollector() {
|
|||||||
event.tags,
|
event.tags,
|
||||||
event.content,
|
event.content,
|
||||||
event.created_at,
|
event.created_at,
|
||||||
''
|
event.id
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -10,7 +10,6 @@ export const Placeholder = () => {
|
|||||||
<span className="text-zinc-500">·</span>
|
<span className="text-zinc-500">·</span>
|
||||||
<div className="h-4 w-12 rounded bg-zinc-700" />
|
<div className="h-4 w-12 rounded bg-zinc-700" />
|
||||||
</div>
|
</div>
|
||||||
<div className="h-3 w-3 rounded-full bg-zinc-700" />
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -8,7 +8,7 @@ export const NoteQuoteRepost = memo(function NoteQuoteRepost({ event }: { event:
|
|||||||
const rootNote = () => {
|
const rootNote = () => {
|
||||||
let note = null;
|
let note = null;
|
||||||
|
|
||||||
if (event.content.length > 0) {
|
if (event.content) {
|
||||||
const content = destr(event.content);
|
const content = destr(event.content);
|
||||||
if (content) {
|
if (content) {
|
||||||
note = <RootNote event={content} />;
|
note = <RootNote event={content} />;
|
||||||
|
@ -103,7 +103,7 @@ export function Page() {
|
|||||||
event.tags,
|
event.tags,
|
||||||
event.content,
|
event.content,
|
||||||
event.created_at,
|
event.created_at,
|
||||||
''
|
event.id
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
// hide message (channel only)
|
// hide message (channel only)
|
||||||
|
@ -4,113 +4,116 @@ import { NoteBase } from '@components/note/base';
|
|||||||
import { Placeholder } from '@components/note/placeholder';
|
import { Placeholder } from '@components/note/placeholder';
|
||||||
import { NoteQuoteRepost } from '@components/note/quoteRepost';
|
import { NoteQuoteRepost } from '@components/note/quoteRepost';
|
||||||
|
|
||||||
import { filteredNotesAtom, hasNewerNoteAtom, notesAtom } from '@stores/note';
|
import { hasNewerNoteAtom } from '@stores/note';
|
||||||
|
|
||||||
import { dateToUnix } from '@utils/getDate';
|
import { countTotalNotes, getNotes } from '@utils/storage';
|
||||||
import { getLatestNotes, getNotes } from '@utils/storage';
|
|
||||||
|
|
||||||
|
import { useInfiniteQuery } from '@tanstack/react-query';
|
||||||
|
import { useVirtualizer } from '@tanstack/react-virtual';
|
||||||
import { ArrowUp } from 'iconoir-react';
|
import { ArrowUp } from 'iconoir-react';
|
||||||
import { useAtom, useAtomValue, useSetAtom } from 'jotai';
|
import { useAtom } from 'jotai';
|
||||||
import { useCallback, useEffect, useRef } from 'react';
|
import { useEffect, useRef } from 'react';
|
||||||
import { Virtuoso } from 'react-virtuoso';
|
|
||||||
|
const ITEM_PER_PAGE = 20;
|
||||||
|
const TIME = Math.floor(Date.now() / 1000);
|
||||||
|
|
||||||
|
let totalNotes = 0;
|
||||||
|
|
||||||
|
if (typeof window !== 'undefined') {
|
||||||
|
const result = await countTotalNotes();
|
||||||
|
totalNotes = result.total;
|
||||||
|
}
|
||||||
|
|
||||||
export function Page() {
|
export function Page() {
|
||||||
const [hasNewerNote, setHasNewerNote] = useAtom(hasNewerNoteAtom);
|
const [hasNewerNote] = useAtom(hasNewerNoteAtom);
|
||||||
const setData = useSetAtom(notesAtom);
|
|
||||||
const data = useAtomValue(filteredNotesAtom);
|
|
||||||
|
|
||||||
const virtuosoRef = useRef(null);
|
const { status, error, data, fetchNextPage, hasNextPage, isFetching, isFetchingNextPage }: any = useInfiniteQuery({
|
||||||
const now = useRef(new Date());
|
queryKey: ['following'],
|
||||||
const limit = useRef(20);
|
queryFn: async ({ pageParam = 0 }) => {
|
||||||
const offset = useRef(0);
|
return await getNotes(TIME, ITEM_PER_PAGE, pageParam);
|
||||||
|
|
||||||
const itemContent: any = useCallback(
|
|
||||||
(index: string | number) => {
|
|
||||||
switch (data[index].kind) {
|
|
||||||
case 1:
|
|
||||||
return <NoteBase event={data[index]} />;
|
|
||||||
case 6:
|
|
||||||
return <NoteQuoteRepost event={data[index]} />;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
[data]
|
getNextPageParam: (lastPage) => (lastPage.nextCursor <= totalNotes ? lastPage.nextCursor : 'undefined'),
|
||||||
);
|
});
|
||||||
|
|
||||||
const computeItemKey = useCallback(
|
const allRows = data ? data.pages.flatMap((d: { data: any }) => d.data) : [];
|
||||||
(index: string | number) => {
|
const parentRef = useRef();
|
||||||
return data[index].event_id;
|
|
||||||
},
|
|
||||||
[data]
|
|
||||||
);
|
|
||||||
|
|
||||||
const initialData = useCallback(async () => {
|
const rowVirtualizer = useVirtualizer({
|
||||||
const result: any = await getNotes(dateToUnix(now.current), limit.current, offset.current);
|
count: hasNextPage ? allRows.length + 1 : allRows.length,
|
||||||
setData((data) => [...data, ...result]);
|
getScrollElement: () => parentRef.current,
|
||||||
}, [setData]);
|
estimateSize: () => 400,
|
||||||
|
overscan: 5,
|
||||||
|
});
|
||||||
|
|
||||||
const loadMore = useCallback(async () => {
|
const itemsVirtualizer = rowVirtualizer.getVirtualItems();
|
||||||
offset.current += limit.current;
|
|
||||||
// query next page
|
|
||||||
const result: any = await getNotes(dateToUnix(now.current), limit.current, offset.current);
|
|
||||||
setData((data) => [...data, ...result]);
|
|
||||||
}, [setData]);
|
|
||||||
|
|
||||||
const loadLatest = useCallback(async () => {
|
|
||||||
// next query
|
|
||||||
const result: any = await getLatestNotes(dateToUnix(now.current));
|
|
||||||
// update data
|
|
||||||
setData((data) => [...result, ...data]);
|
|
||||||
// hide newer trigger
|
|
||||||
setHasNewerNote(false);
|
|
||||||
// scroll to top
|
|
||||||
virtuosoRef.current.scrollToIndex({ index: -1 });
|
|
||||||
}, [setData, setHasNewerNote]);
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
let initPage = false;
|
const [lastItem] = [...rowVirtualizer.getVirtualItems()].reverse();
|
||||||
|
|
||||||
if (!initPage) {
|
if (!lastItem) {
|
||||||
initialData().catch(console.error);
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
return () => {
|
if (lastItem.index >= allRows.length - 1 && hasNextPage && !isFetchingNextPage) {
|
||||||
initPage = true;
|
fetchNextPage();
|
||||||
};
|
}
|
||||||
}, [initialData]);
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
|
}, [fetchNextPage, allRows.length, rowVirtualizer.getVirtualItems()]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<NewsfeedLayout>
|
<NewsfeedLayout>
|
||||||
<div className="relative h-full w-full rounded-lg border border-zinc-800 bg-zinc-900 shadow-input shadow-black/20">
|
<div className="relative h-full w-full rounded-lg border border-zinc-800 bg-zinc-900 shadow-input shadow-black/20">
|
||||||
{hasNewerNote && (
|
{hasNewerNote && (
|
||||||
<div className="absolute left-1/2 top-2 z-50 -translate-x-1/2 transform">
|
<div className="absolute left-1/2 top-2 z-50 -translate-x-1/2 transform">
|
||||||
<button
|
<button className="inline-flex h-8 transform items-center justify-center gap-1 rounded-full bg-fuchsia-500 pl-3 pr-3.5 text-sm shadow-md shadow-fuchsia-800/20 active:translate-y-1">
|
||||||
onClick={() => loadLatest()}
|
|
||||||
className="inline-flex h-8 transform items-center justify-center gap-1 rounded-full bg-fuchsia-500 pl-3 pr-3.5 text-sm shadow-md shadow-fuchsia-800/20 active:translate-y-1"
|
|
||||||
>
|
|
||||||
<ArrowUp width={14} height={14} />
|
<ArrowUp width={14} height={14} />
|
||||||
Load latest
|
Load latest
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
<Virtuoso
|
{status === 'loading' ? (
|
||||||
ref={virtuosoRef}
|
<Placeholder />
|
||||||
data={data}
|
) : status === 'error' ? (
|
||||||
itemContent={itemContent}
|
<div>{error.message}</div>
|
||||||
computeItemKey={computeItemKey}
|
) : (
|
||||||
components={COMPONENTS}
|
<div ref={parentRef} className="h-full w-full overflow-y-auto" style={{ contain: 'strict' }}>
|
||||||
overscan={200}
|
<FormBase />
|
||||||
endReached={loadMore}
|
<div
|
||||||
className="scrollbar-hide h-full w-full overflow-y-auto"
|
className="relative w-full"
|
||||||
/>
|
style={{
|
||||||
|
height: `${rowVirtualizer.getTotalSize()}px`,
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="absolute left-0 top-0 w-full"
|
||||||
|
style={{
|
||||||
|
transform: `translateY(${itemsVirtualizer[0].start - rowVirtualizer.options.scrollMargin}px)`,
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{rowVirtualizer.getVirtualItems().map((virtualRow) => {
|
||||||
|
const note = allRows[virtualRow.index];
|
||||||
|
if (note) {
|
||||||
|
if (note.kind === 1) {
|
||||||
|
return (
|
||||||
|
<div key={virtualRow.index} data-index={virtualRow.index} ref={rowVirtualizer.measureElement}>
|
||||||
|
<NoteBase key={note.event_id} event={note} />
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
return (
|
||||||
|
<div key={virtualRow.index} data-index={virtualRow.index} ref={rowVirtualizer.measureElement}>
|
||||||
|
<NoteQuoteRepost key={note.event_id} event={note} />
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
<div>{isFetching && !isFetchingNextPage ? 'Background Updating...' : null}</div>
|
||||||
</div>
|
</div>
|
||||||
</NewsfeedLayout>
|
</NewsfeedLayout>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const COMPONENTS = {
|
|
||||||
Header: () => <FormBase />,
|
|
||||||
EmptyPlaceholder: () => <Placeholder />,
|
|
||||||
ScrollSeekPlaceholder: () => <Placeholder />,
|
|
||||||
};
|
|
||||||
|
@ -5,14 +5,19 @@ import { PageContextProvider } from '@utils/hooks/usePageContext';
|
|||||||
|
|
||||||
import { PageContext } from '@renderer/types';
|
import { PageContext } from '@renderer/types';
|
||||||
|
|
||||||
|
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
||||||
import { StrictMode } from 'react';
|
import { StrictMode } from 'react';
|
||||||
|
|
||||||
|
const queryClient = new QueryClient();
|
||||||
|
|
||||||
export function Shell({ children, pageContext }: { children: React.ReactNode; pageContext: PageContext }) {
|
export function Shell({ children, pageContext }: { children: React.ReactNode; pageContext: PageContext }) {
|
||||||
return (
|
return (
|
||||||
<StrictMode>
|
<StrictMode>
|
||||||
<PageContextProvider pageContext={pageContext}>
|
<PageContextProvider pageContext={pageContext}>
|
||||||
<RelayProvider>
|
<RelayProvider>
|
||||||
<AccountProvider>{children}</AccountProvider>
|
<AccountProvider>
|
||||||
|
<QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
|
||||||
|
</AccountProvider>
|
||||||
</RelayProvider>
|
</RelayProvider>
|
||||||
</PageContextProvider>
|
</PageContextProvider>
|
||||||
</StrictMode>
|
</StrictMode>
|
||||||
|
@ -78,9 +78,16 @@ export async function countTotalNotes() {
|
|||||||
// get all notes
|
// get all notes
|
||||||
export async function getNotes(time: number, limit: number, offset: number) {
|
export async function getNotes(time: number, limit: number, offset: number) {
|
||||||
const db = await connect();
|
const db = await connect();
|
||||||
return await db.select(
|
|
||||||
`SELECT * FROM notes WHERE created_at <= "${time}" ORDER BY created_at DESC LIMIT "${limit}" OFFSET "${offset}";`
|
const notes: any = { data: null, nextCursor: 0 };
|
||||||
|
const query: any = await db.select(
|
||||||
|
`SELECT * FROM notes WHERE created_at <= "${time}" GROUP BY parent_id ORDER BY created_at DESC LIMIT "${limit}" OFFSET "${offset}";`
|
||||||
);
|
);
|
||||||
|
|
||||||
|
notes['data'] = query;
|
||||||
|
notes['nextCursor'] = offset + limit;
|
||||||
|
|
||||||
|
return notes;
|
||||||
}
|
}
|
||||||
|
|
||||||
// get note by id
|
// get note by id
|
||||||
@ -93,7 +100,9 @@ export async function getNoteByID(event_id: string) {
|
|||||||
// get all latest notes
|
// get all latest notes
|
||||||
export async function getLatestNotes(time: number) {
|
export async function getLatestNotes(time: number) {
|
||||||
const db = await connect();
|
const db = await connect();
|
||||||
return await db.select(`SELECT * FROM notes WHERE created_at > "${time}" ORDER BY created_at DESC;`);
|
return await db.select(
|
||||||
|
`SELECT * FROM notes WHERE created_at > "${time}" GROUP BY parent_id ORDER BY created_at DESC;`
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// create note
|
// create note
|
||||||
|
Loading…
Reference in New Issue
Block a user