feat: try to fix eslint not find problem

This commit is contained in:
Kaiwen Gong 2024-07-19 14:35:02 +08:00
parent 3e88692efd
commit 8385b2d2f3
8 changed files with 11016 additions and 1689 deletions

9466
package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

View file

@ -43,6 +43,7 @@
"drizzle-orm": "^0.31.2", "drizzle-orm": "^0.31.2",
"express": "^4.19.2", "express": "^4.19.2",
"langchain": "^0.1.30", "langchain": "^0.1.30",
"react-transition-group": "^4.4.5",
"winston": "^3.13.0", "winston": "^3.13.0",
"ws": "^8.17.1", "ws": "^8.17.1",
"zod": "^3.22.4" "zod": "^3.22.4"

View file

@ -1,12 +1,12 @@
import { Metadata } from "next"; import { Metadata } from "next";
import React from "react"; import React from "react";
import { ENV, assertEnvVariables } from "../../../lib/constants"; import { ENV, assertEnvVariables as assertEnvironmentVariables } from "../../../lib/constants";
export const metadata: Metadata = { export const metadata: Metadata = {
title: "News - Perplexica", title: "News - Perplexica",
}; };
assertEnvVariables(ENV); assertEnvironmentVariables(ENV);
const Layout = ({ children }: { children: React.ReactNode }) => { const Layout = ({ children }: { children: React.ReactNode }) => {
return <div>{children}</div>; return <div>{children}</div>;

View file

@ -1,6 +1,7 @@
import React from "react"; import React from "react";
import Image from "next/image"; import Image from "next/image";
import { ReactMarkdown } from "@/components/Markdown"; import { ReactMarkdown } from "@/components/Markdown";
interface ContextItemProperties { interface ContextItemProperties {
item: { item: {
name: string; name: string;
@ -21,6 +22,18 @@ interface ContextItemProperties {
}; };
}; };
} }
const ProviderInfo: React.FC<{ name: string; date: string }> = ({ name, date }) => (
<div className="absolute bottom-3 right-0 text-sm text-gray-700 dark:text-gray-300 flex items-end z-50">
<div className="absolute z-50 right-60 top-0 bottom-0 w-40 h-10 bg-gradient-to-r from-transparent to-slate-900 pointer-events-none"></div>
<div className="absolute z-50 right-0 top-0 bottom-0 w-60 h-10 bg-slate-900 pointer-events-none"></div>
<div className="relative z-50 dark:bg-slate-900 flex items-center">
<span className="truncate max-w-xs">{name}</span>
<span className="truncate max-w-xs text-xs text-gray-500 dark:text-gray-400 pl-3">{date}</span>
</div>
</div>
);
const ContextItem: React.FC<ContextItemProperties> = ({ item }) => { const ContextItem: React.FC<ContextItemProperties> = ({ item }) => {
return ( return (
<a <a
@ -34,41 +47,32 @@ const ContextItem: React.FC<ContextItemProperties> = ({ item }) => {
ring-slate-900/5 shadow-xl flex flex-row cursor-pointer hover:scale-95 transition-transform duration-300" ring-slate-900/5 shadow-xl flex flex-row cursor-pointer hover:scale-95 transition-transform duration-300"
> >
<div className="w-40 h-40 flex-shrink-0"> <div className="w-40 h-40 flex-shrink-0">
{/* div for image if the link does not exist use the placeholder image */} {item.image ? (
{!item.image && ( <Image
<img src={item.image.contentUrl}
alt={item.name}
width={150}
height={150}
className="rounded w-36 h-36 object-cover"
/>
) : (
<Image
src={"https://via.placeholder.com/150"} src={"https://via.placeholder.com/150"}
alt={"placeholder"} alt={"placeholder"}
width={150}
height={150}
className="rounded w-36 h-36 object-cover" className="rounded w-36 h-36 object-cover"
/> />
)} )}
{item.image && <img src={item.image.contentUrl} alt={item.name} className="rounded w-36 h-36 object-cover" />}
</div> </div>
<div className="flex flex-col items-stretch relative h-48"> <div className="flex flex-col items-stretch relative h-48">
{/* div for other text info */}
<div className="flex justify-start max-w-xl"> <div className="flex justify-start max-w-xl">
<h4 className="font-bold text-white truncate">{item.name}</h4> <h4 className="font-bold text-white truncate">{item.name}</h4>
</div> </div>
{/* Content container with controlled overflow */}
<div className="max-32 overflow-hidden"> <div className="max-32 overflow-hidden">
<ReactMarkdown text={item.description} className="text-slate-500 dark:text-slate-40 line-clamp-3" /> <ReactMarkdown text={item.description} className="text-slate-500 dark:text-slate-400 line-clamp-3" />
</div>
{/* Absolute positioned provider info */}
<div className="relative">
<div className="absolute bottom-3 right-0 text-sm text-gray-700 dark:text-gray-300 flex items-end z-50">
<div className="absolute z-50 right-60 top-0 bottom-0 w-40 h-10 bg-gradient-to-r from-transparent to-slate-900 pointer-events-none"></div>
<div className="absolute z-50 right-0 top-0 bottom-0 w-60 h-10 bg-slate-900 pointer-events-none"></div>
<div className="relative z-50 dark:bg-slate-900 flex items-center">
<span className="truncate max-w-xs">{item.provider[0].name}</span>
<span className="truncate max-w-xs text-xs text-gray-500 dark:text-gray-400 pl-3">
{new Date(item.datePublished).toLocaleDateString()}
</span>
</div>
</div>
<div className="absolute bottom-0 right-0 left-0 top-0 bg-white dark:bg-slate-900 opacity-80 z-40 pointer-events-none"></div>
</div> </div>
<ProviderInfo name={item.provider[0].name} date={new Date(item.datePublished).toLocaleDateString()} />
</div> </div>
</div> </div>
</a> </a>

110
ui/package-lock.json generated
View file

@ -26,12 +26,12 @@
"langchain": "^0.1.30", "langchain": "^0.1.30",
"lucide-react": "^0.363.0", "lucide-react": "^0.363.0",
"markdown-to-jsx": "^7.4.5", "markdown-to-jsx": "^7.4.5",
"next": "14.1.4", "next": "^14.2.5",
"next-themes": "^0.3.0", "next-themes": "^0.3.0",
"prism-react-renderer": "^2.3.1", "prism-react-renderer": "^2.3.1",
"process": "^0.11.10", "process": "^0.11.10",
"react": "^18.3.1", "react": "^18",
"react-dom": "^18.3.1", "react-dom": "^18",
"react-text-to-speech": "^0.14.5", "react-text-to-speech": "^0.14.5",
"react-textarea-autosize": "^8.5.3", "react-textarea-autosize": "^8.5.3",
"sonner": "^1.4.41", "sonner": "^1.4.41",
@ -1215,9 +1215,9 @@
} }
}, },
"node_modules/@next/env": { "node_modules/@next/env": {
"version": "14.1.4", "version": "14.2.5",
"resolved": "https://registry.npmjs.org/@next/env/-/env-14.1.4.tgz", "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.5.tgz",
"integrity": "sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==" "integrity": "sha512-/zZGkrTOsraVfYjGP8uM0p6r0BDT6xWpkjdVbcz66PJVSpwXX3yNiRycxAuDfBKGWBrZBXRuK/YVlkNgxHGwmA=="
}, },
"node_modules/@next/eslint-plugin-next": { "node_modules/@next/eslint-plugin-next": {
"version": "14.1.4", "version": "14.1.4",
@ -1230,9 +1230,9 @@
} }
}, },
"node_modules/@next/swc-darwin-arm64": { "node_modules/@next/swc-darwin-arm64": {
"version": "14.1.4", "version": "14.2.5",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.1.4.tgz", "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.5.tgz",
"integrity": "sha512-ubmUkbmW65nIAOmoxT1IROZdmmJMmdYvXIe8211send9ZYJu+SqxSnJM4TrPj9wmL6g9Atvj0S/2cFmMSS99jg==", "integrity": "sha512-/9zVxJ+K9lrzSGli1///ujyRfon/ZneeZ+v4ptpiPoOU+GKZnm8Wj8ELWU1Pm7GHltYRBklmXMTUqM/DqQ99FQ==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -1245,9 +1245,9 @@
} }
}, },
"node_modules/@next/swc-darwin-x64": { "node_modules/@next/swc-darwin-x64": {
"version": "14.1.4", "version": "14.2.5",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.1.4.tgz", "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.5.tgz",
"integrity": "sha512-b0Xo1ELj3u7IkZWAKcJPJEhBop117U78l70nfoQGo4xUSvv0PJSTaV4U9xQBLvZlnjsYkc8RwQN1HoH/oQmLlQ==", "integrity": "sha512-vXHOPCwfDe9qLDuq7U1OYM2wUY+KQ4Ex6ozwsKxp26BlJ6XXbHleOUldenM67JRyBfVjv371oneEvYd3H2gNSA==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -1260,9 +1260,9 @@
} }
}, },
"node_modules/@next/swc-linux-arm64-gnu": { "node_modules/@next/swc-linux-arm64-gnu": {
"version": "14.1.4", "version": "14.2.5",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.1.4.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.5.tgz",
"integrity": "sha512-457G0hcLrdYA/u1O2XkRMsDKId5VKe3uKPvrKVOyuARa6nXrdhJOOYU9hkKKyQTMru1B8qEP78IAhf/1XnVqKA==", "integrity": "sha512-vlhB8wI+lj8q1ExFW8lbWutA4M2ZazQNvMWuEDqZcuJJc78iUnLdPPunBPX8rC4IgT6lIx/adB+Cwrl99MzNaA==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -1275,9 +1275,9 @@
} }
}, },
"node_modules/@next/swc-linux-arm64-musl": { "node_modules/@next/swc-linux-arm64-musl": {
"version": "14.1.4", "version": "14.2.5",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.1.4.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.5.tgz",
"integrity": "sha512-l/kMG+z6MB+fKA9KdtyprkTQ1ihlJcBh66cf0HvqGP+rXBbOXX0dpJatjZbHeunvEHoBBS69GYQG5ry78JMy3g==", "integrity": "sha512-NpDB9NUR2t0hXzJJwQSGu1IAOYybsfeB+LxpGsXrRIb7QOrYmidJz3shzY8cM6+rO4Aojuef0N/PEaX18pi9OA==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -1290,9 +1290,9 @@
} }
}, },
"node_modules/@next/swc-linux-x64-gnu": { "node_modules/@next/swc-linux-x64-gnu": {
"version": "14.1.4", "version": "14.2.5",
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.1.4.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.5.tgz",
"integrity": "sha512-BapIFZ3ZRnvQ1uWbmqEGJuPT9cgLwvKtxhK/L2t4QYO7l+/DxXuIGjvp1x8rvfa/x1FFSsipERZK70pewbtJtw==", "integrity": "sha512-8XFikMSxWleYNryWIjiCX+gU201YS+erTUidKdyOVYi5qUQo/gRxv/3N1oZFCgqpesN6FPeqGM72Zve+nReVXQ==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -1305,9 +1305,9 @@
} }
}, },
"node_modules/@next/swc-linux-x64-musl": { "node_modules/@next/swc-linux-x64-musl": {
"version": "14.1.4", "version": "14.2.5",
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.1.4.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.5.tgz",
"integrity": "sha512-mqVxTwk4XuBl49qn2A5UmzFImoL1iLm0KQQwtdRJRKl21ylQwwGCxJtIYo2rbfkZHoSKlh/YgztY0qH3wG1xIg==", "integrity": "sha512-6QLwi7RaYiQDcRDSU/os40r5o06b5ue7Jsk5JgdRBGGp8l37RZEh9JsLSM8QF0YDsgcosSeHjglgqi25+m04IQ==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -1320,9 +1320,9 @@
} }
}, },
"node_modules/@next/swc-win32-arm64-msvc": { "node_modules/@next/swc-win32-arm64-msvc": {
"version": "14.1.4", "version": "14.2.5",
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.1.4.tgz", "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.5.tgz",
"integrity": "sha512-xzxF4ErcumXjO2Pvg/wVGrtr9QQJLk3IyQX1ddAC/fi6/5jZCZ9xpuL9Tzc4KPWMFq8GGWFVDMshZOdHGdkvag==", "integrity": "sha512-1GpG2VhbspO+aYoMOQPQiqc/tG3LzmsdBH0LhnDS3JrtDx2QmzXe0B6mSZZiN3Bq7IOMXxv1nlsjzoS1+9mzZw==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -1335,9 +1335,9 @@
} }
}, },
"node_modules/@next/swc-win32-ia32-msvc": { "node_modules/@next/swc-win32-ia32-msvc": {
"version": "14.1.4", "version": "14.2.5",
"resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.1.4.tgz", "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.5.tgz",
"integrity": "sha512-WZiz8OdbkpRw6/IU/lredZWKKZopUMhcI2F+XiMAcPja0uZYdMTZQRoQ0WZcvinn9xZAidimE7tN9W5v9Yyfyw==", "integrity": "sha512-Igh9ZlxwvCDsu6438FXlQTHlRno4gFpJzqPjSIBZooD22tKeI4fE/YMRoHVJHmrQ2P5YL1DoZ0qaOKkbeFWeMg==",
"cpu": [ "cpu": [
"ia32" "ia32"
], ],
@ -1350,9 +1350,9 @@
} }
}, },
"node_modules/@next/swc-win32-x64-msvc": { "node_modules/@next/swc-win32-x64-msvc": {
"version": "14.1.4", "version": "14.2.5",
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.1.4.tgz", "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.5.tgz",
"integrity": "sha512-4Rto21sPfw555sZ/XNLqfxDUNeLhNYGO2dlPqsnuCg8N8a2a9u1ltqBOPQ4vj1Gf7eJC0W2hHG2eYUHuiXgY2w==", "integrity": "sha512-tEQ7oinq1/CjSG9uSTerca3v4AZ+dFa+4Yu6ihaG8Ud8ddqLQgFGcnwYls13H5X5CPDPZJdYxyeMui6muOLd4g==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -1416,11 +1416,17 @@
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/@swc/counter": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz",
"integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ=="
},
"node_modules/@swc/helpers": { "node_modules/@swc/helpers": {
"version": "0.5.2", "version": "0.5.5",
"resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz", "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz",
"integrity": "sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==", "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==",
"dependencies": { "dependencies": {
"@swc/counter": "^0.1.3",
"tslib": "^2.4.0" "tslib": "^2.4.0"
} }
}, },
@ -5976,12 +5982,12 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/next": { "node_modules/next": {
"version": "14.1.4", "version": "14.2.5",
"resolved": "https://registry.npmjs.org/next/-/next-14.1.4.tgz", "resolved": "https://registry.npmjs.org/next/-/next-14.2.5.tgz",
"integrity": "sha512-1WTaXeSrUwlz/XcnhGTY7+8eiaFvdet5z9u3V2jb+Ek1vFo0VhHKSAIJvDWfQpttWjnyw14kBeq28TPq7bTeEQ==", "integrity": "sha512-0f8aRfBVL+mpzfBjYfQuLWh2WyAwtJXCRfkPF4UJ5qd2YwrHczsrSzXU4tRMV0OAxR8ZJZWPFn6uhSC56UTsLA==",
"dependencies": { "dependencies": {
"@next/env": "14.1.4", "@next/env": "14.2.5",
"@swc/helpers": "0.5.2", "@swc/helpers": "0.5.5",
"busboy": "1.6.0", "busboy": "1.6.0",
"caniuse-lite": "^1.0.30001579", "caniuse-lite": "^1.0.30001579",
"graceful-fs": "^4.2.11", "graceful-fs": "^4.2.11",
@ -5995,18 +6001,19 @@
"node": ">=18.17.0" "node": ">=18.17.0"
}, },
"optionalDependencies": { "optionalDependencies": {
"@next/swc-darwin-arm64": "14.1.4", "@next/swc-darwin-arm64": "14.2.5",
"@next/swc-darwin-x64": "14.1.4", "@next/swc-darwin-x64": "14.2.5",
"@next/swc-linux-arm64-gnu": "14.1.4", "@next/swc-linux-arm64-gnu": "14.2.5",
"@next/swc-linux-arm64-musl": "14.1.4", "@next/swc-linux-arm64-musl": "14.2.5",
"@next/swc-linux-x64-gnu": "14.1.4", "@next/swc-linux-x64-gnu": "14.2.5",
"@next/swc-linux-x64-musl": "14.1.4", "@next/swc-linux-x64-musl": "14.2.5",
"@next/swc-win32-arm64-msvc": "14.1.4", "@next/swc-win32-arm64-msvc": "14.2.5",
"@next/swc-win32-ia32-msvc": "14.1.4", "@next/swc-win32-ia32-msvc": "14.2.5",
"@next/swc-win32-x64-msvc": "14.1.4" "@next/swc-win32-x64-msvc": "14.2.5"
}, },
"peerDependencies": { "peerDependencies": {
"@opentelemetry/api": "^1.1.0", "@opentelemetry/api": "^1.1.0",
"@playwright/test": "^1.41.2",
"react": "^18.2.0", "react": "^18.2.0",
"react-dom": "^18.2.0", "react-dom": "^18.2.0",
"sass": "^1.3.0" "sass": "^1.3.0"
@ -6015,6 +6022,9 @@
"@opentelemetry/api": { "@opentelemetry/api": {
"optional": true "optional": true
}, },
"@playwright/test": {
"optional": true
},
"sass": { "sass": {
"optional": true "optional": true
} }

View file

@ -28,7 +28,7 @@
"langchain": "^0.1.30", "langchain": "^0.1.30",
"lucide-react": "^0.363.0", "lucide-react": "^0.363.0",
"markdown-to-jsx": "^7.4.5", "markdown-to-jsx": "^7.4.5",
"next": "14.1.4", "next": "^14.2.5",
"next-themes": "^0.3.0", "next-themes": "^0.3.0",
"prism-react-renderer": "^2.3.1", "prism-react-renderer": "^2.3.1",
"process": "^0.11.10", "process": "^0.11.10",

File diff suppressed because it is too large Load diff

1623
yarn.lock

File diff suppressed because it is too large Load diff