diff --git a/.github/workflows/build-enjoy-app.yml b/.github/workflows/build-enjoy-app.yml
index b1944dc80..2f7a5f2ac 100644
--- a/.github/workflows/build-enjoy-app.yml
+++ b/.github/workflows/build-enjoy-app.yml
@@ -1,19 +1,13 @@
name: Build Enjoy App
on:
workflow_dispatch:
- inputs:
- os:
- type: choice
- description: Choose os
- options:
- - macos-12
- - macos-14
- - windows-latest
- - ubuntu-latest
jobs:
build:
- runs-on: ${{ github.event.inputs.os }}
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [macos-12, macos-14, windows-latest, ubuntu-latest]
steps:
- uses: actions/checkout@v4
@@ -31,13 +25,13 @@ jobs:
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: "**/node_modules"
- key: ${{ github.event.inputs.os }}-${{ hashFiles('**/yarn.lock') }}
+ key: ${{ matrix.os }}-${{ hashFiles('**/yarn.lock') }}
- name: Install dependencies
run: yarn install
- name: Install Apple certificate
- if: contains(github.event.inputs.os, 'macos')
+ if: contains(matrix.os, 'macos')
env:
MACOS_CERTIFICATE_APPLICATION_BASE64: ${{ secrets.MACOS_CERTIFICATE_APPLICATION_BASE64 }}
MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}
@@ -54,7 +48,7 @@ jobs:
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
- name: Enjoy-${{ runner.os }}-${{ github.event.inputs.os == 'macos-14' && 'arm64' || 'x64' }}-build-${{ github.ref_name }}-${{ steps.current-time.outputs.formattedTime }}
+ name: Enjoy-${{ runner.os }}-${{ matrix.os == 'macos-14' && 'arm64' || 'x64' }}-build-${{ github.ref_name }}-${{ steps.current-time.outputs.formattedTime }}
path: |
enjoy/out/make/**/*.deb
enjoy/out/make/**/*.rpm
diff --git a/enjoy/package.json b/enjoy/package.json
index fb576315c..ed63fe50e 100644
--- a/enjoy/package.json
+++ b/enjoy/package.json
@@ -49,7 +49,7 @@
"@types/intl-tel-input": "^18.1.4",
"@types/lodash": "^4.17.0",
"@types/mark.js": "^8.11.12",
- "@types/node": "^20.11.27",
+ "@types/node": "^20.11.28",
"@types/react": "^18.2.66",
"@types/react-dom": "^18.2.22",
"@types/validator": "^13.11.9",
@@ -66,7 +66,7 @@
"flora-colossus": "^2.0.0",
"octokit": "^3.1.2",
"progress": "^2.0.3",
- "tailwind-merge": "^2.2.1",
+ "tailwind-merge": "^2.2.2",
"tailwind-scrollbar": "^3.1.0",
"tailwindcss": "^3.4.1",
"tailwindcss-animate": "^1.0.7",
@@ -82,7 +82,7 @@
"@ffmpeg/ffmpeg": "^0.12.10",
"@ffmpeg/util": "^0.12.1",
"@hookform/resolvers": "^3.3.4",
- "@langchain/community": "^0.0.39",
+ "@langchain/community": "^0.0.40",
"@langchain/google-genai": "^0.0.10",
"@mozilla/readability": "^0.5.0",
"@radix-ui/react-accordion": "^1.1.2",
@@ -110,7 +110,7 @@
"@uidotdev/usehooks": "^2.4.1",
"@vidstack/react": "^1.10.9",
"autosize": "^6.0.1",
- "axios": "^1.6.7",
+ "axios": "^1.6.8",
"camelcase": "^8.0.0",
"camelcase-keys": "^9.1.3",
"chart.js": "^4.4.2",
@@ -135,7 +135,7 @@
"html-to-text": "^9.0.5",
"https-proxy-agent": "^7.0.4",
"i18next": "^23.10.1",
- "intl-tel-input": "^19.5.7",
+ "intl-tel-input": "^20.0.3",
"js-md5": "^0.8.3",
"langchain": "^0.1.28",
"lodash": "^4.17.21",
@@ -143,14 +143,14 @@
"mark.js": "^8.11.1",
"microsoft-cognitiveservices-speech-sdk": "^1.36.0",
"next-themes": "^0.3.0",
- "openai": "^4.29.0",
+ "openai": "^4.29.1",
"pitchfinder": "^2.3.2",
- "postcss": "^8.4.35",
+ "postcss": "^8.4.36",
"proxy-agent": "^6.4.0",
"react": "^18.2.0",
"react-activity-calendar": "^2.2.8",
"react-dom": "^18.2.0",
- "react-hook-form": "^7.51.0",
+ "react-hook-form": "^7.51.1",
"react-hotkeys-hook": "^4.5.0",
"react-i18next": "^14.1.0",
"react-markdown": "^9.0.1",
diff --git a/enjoy/src/i18n/en.json b/enjoy/src/i18n/en.json
index ce46a4d24..93f6e640d 100644
--- a/enjoy/src/i18n/en.json
+++ b/enjoy/src/i18n/en.json
@@ -474,6 +474,7 @@
"resolvingDownloadUrl": "Resolving download URL",
"waveformIsDecoded": "Waveform is decoded",
"decodingWaveform": "Decoding waveform",
+ "failedToDecodeWaveform": "Failed to decode waveform",
"transcribedSuccessfully": "Transcribed successfully",
"transcribing": "Transcribing",
"notTranscribedYet": "Not transcribed yet",
diff --git a/enjoy/src/i18n/zh-CN.json b/enjoy/src/i18n/zh-CN.json
index 849bed732..b16228ba8 100644
--- a/enjoy/src/i18n/zh-CN.json
+++ b/enjoy/src/i18n/zh-CN.json
@@ -473,6 +473,7 @@
"resolvingDownloadUrl": "正在解析下载地址",
"waveformIsDecoded": "波形已解码",
"decodingWaveform": "正在解码波形",
+ "failedToDecodeWaveform": "解码波形失败",
"transcribedSuccessfully": "语音转文本成功",
"transcribing": "正在语音转文本",
"notTranscribedYet": "尚未语音转文本",
diff --git a/enjoy/src/renderer/components/medias/media-loading-modal.tsx b/enjoy/src/renderer/components/medias/media-loading-modal.tsx
index a64d8e7da..7d0676670 100644
--- a/enjoy/src/renderer/components/medias/media-loading-modal.tsx
+++ b/enjoy/src/renderer/components/medias/media-loading-modal.tsx
@@ -15,7 +15,7 @@ import {
PingPoint,
Progress,
} from "@renderer/components/ui";
-import { CheckCircleIcon, LoaderIcon } from "lucide-react";
+import { CheckCircleIcon, LoaderIcon, XCircleIcon } from "lucide-react";
import { t } from "i18next";
import { useNavigate } from "react-router-dom";
@@ -23,7 +23,9 @@ export const MediaLoadingModal = () => {
const navigate = useNavigate();
const { whisperConfig } = useContext(AISettingsProviderContext);
const {
+ media,
decoded,
+ decodeError,
transcription,
transcribing,
transcribingProgress,
@@ -47,6 +49,21 @@ export const MediaLoadingModal = () => {
{t("waveformIsDecoded")}
+ ) : decodeError ? (
+
+
+
+
+
+
+ {decodeError}
+
+
+ {t("failedToDecodeWaveform")}:{" "}
+ {media?.src}
+
+
+
) : (
diff --git a/enjoy/src/renderer/components/medias/media-player.tsx b/enjoy/src/renderer/components/medias/media-player.tsx
index efa0aa913..9d0979add 100644
--- a/enjoy/src/renderer/components/medias/media-player.tsx
+++ b/enjoy/src/renderer/components/medias/media-player.tsx
@@ -13,7 +13,9 @@ import {
} from "@vidstack/react/player/layouts/default";
export const MediaPlayer = () => {
- const { media, setMediaProvider } = useContext(MediaPlayerProviderContext);
+ const { media, setMediaProvider, setDecodeError } = useContext(
+ MediaPlayerProviderContext
+ );
const mediaRemote = useMediaRemote();
if (!media?.src) return null;
@@ -31,6 +33,7 @@ export const MediaPlayer = () => {
setMediaProvider(provider.video);
}
}}
+ onError={(err) => setDecodeError(err.message)}
>
diff --git a/enjoy/src/renderer/components/posts/post-audio.tsx b/enjoy/src/renderer/components/posts/post-audio.tsx
index 1d0c97d1b..5a54edb98 100644
--- a/enjoy/src/renderer/components/posts/post-audio.tsx
+++ b/enjoy/src/renderer/components/posts/post-audio.tsx
@@ -14,6 +14,8 @@ import {
} from "@vidstack/react/player/layouts/default";
export const STORAGE_WORKER_ENDPOINT = "https://enjoy-storage.baizhiheizi.com";
import { TimelineEntry } from "echogarden/dist/utilities/Timeline.d.js";
+import { t } from "i18next";
+import { XCircleIcon } from "lucide-react";
export const PostAudio = (props: {
audio: Partial
;
@@ -23,6 +25,7 @@ export const PostAudio = (props: {
const [currentTime, setCurrentTime] = useState(0);
const { webApi } = useContext(AppSettingsProviderContext);
const [transcription, setTranscription] = useState();
+ const [error, setError] = useState(null);
const currentTranscription = transcription?.result["transcript"]
? (transcription.result?.timeline || []).find(
@@ -45,6 +48,22 @@ export const PostAudio = (props: {
});
}, [audio.md5]);
+ if (error) {
+ return (
+
+
+
+
+
+ {error}
+
+
+
+
+
+ );
+ }
+
return (
{audio.sourceUrl.startsWith(STORAGE_WORKER_ENDPOINT) ? (
@@ -53,6 +72,7 @@ export const PostAudio = (props: {
setCurrentTime={setCurrentTime}
audio={audio}
height={height}
+ onError={(err) => setError(err.message)}
/>
) : (
setError(err.message)}
>
@@ -88,8 +109,9 @@ const WavesurferPlayer = (props: {
height?: number;
currentTime: number;
setCurrentTime: (currentTime: number) => void;
+ onError?: (error: Error) => void;
}) => {
- const { audio, height = 80, currentTime, setCurrentTime } = props;
+ const { audio, height = 80, onError, setCurrentTime } = props;
const [initialized, setInitialized] = useState(false);
const [isPlaying, setIsPlaying] = useState(false);
const [wavesurfer, setWavesurfer] = useState(null);
@@ -162,6 +184,9 @@ const WavesurferPlayer = (props: {
}, 1000);
setInitialized(true);
}),
+ wavesurfer.on("error", (err: Error) => {
+ onError(err);
+ }),
];
return () => {
diff --git a/enjoy/src/renderer/components/posts/post-recording.tsx b/enjoy/src/renderer/components/posts/post-recording.tsx
index ea9f58898..48d005297 100644
--- a/enjoy/src/renderer/components/posts/post-recording.tsx
+++ b/enjoy/src/renderer/components/posts/post-recording.tsx
@@ -6,6 +6,8 @@ import { Button, Skeleton } from "@renderer/components/ui";
import { PlayIcon, PauseIcon } from "lucide-react";
import { useIntersectionObserver } from "@uidotdev/usehooks";
import { secondsToTimestamp } from "@renderer/lib/utils";
+import { t } from "i18next";
+import { XCircleIcon } from "lucide-react";
export const PostRecording = (props: {
recording: RecordingType;
@@ -20,6 +22,7 @@ export const PostRecording = (props: {
threshold: 1,
});
const [duration, setDuration] = useState(0);
+ const [error, setError] = useState(null);
const onPlayClick = useCallback(() => {
wavesurfer.isPlaying() ? wavesurfer.pause() : wavesurfer.play();
@@ -31,6 +34,7 @@ export const PostRecording = (props: {
if (!entry?.isIntersecting) return;
if (!recording.src) return;
if (wavesurfer) return;
+ if (error) return;
const ws = WaveSurfer.create({
container: containerRef.current,
@@ -48,7 +52,11 @@ export const PostRecording = (props: {
});
setWavesurfer(ws);
- }, [recording.src, entry]);
+
+ return () => {
+ setWavesurfer(null);
+ };
+ }, [recording.src, entry, error]);
useEffect(() => {
if (!wavesurfer) return;
@@ -84,6 +92,9 @@ export const PostRecording = (props: {
}, 1000);
setInitialized(true);
}),
+ wavesurfer.on("error", (err: Error) => {
+ setError(err.message);
+ }),
];
return () => {
@@ -92,6 +103,22 @@ export const PostRecording = (props: {
};
}, [wavesurfer]);
+ if (error) {
+ return (
+
+
+
+
+
+ {error}
+
+
+
+
+
+ );
+ }
+
return (
diff --git a/enjoy/src/renderer/context/app-settings-provider.tsx b/enjoy/src/renderer/context/app-settings-provider.tsx
index ff42cff99..7793f1a68 100644
--- a/enjoy/src/renderer/context/app-settings-provider.tsx
+++ b/enjoy/src/renderer/context/app-settings-provider.tsx
@@ -39,7 +39,6 @@ export const AppSettingsProvider = ({
}: {
children: React.ReactNode;
}) => {
- const [initialized, setInitialized] = useState
(false);
const [version, setVersion] = useState("");
const [apiUrl, setApiUrl] = useState(WEB_API_URL);
const [webApi, setWebApi] = useState(null);
@@ -62,10 +61,6 @@ export const AppSettingsProvider = ({
fetchProxyConfig();
}, []);
- useEffect(() => {
- validate();
- }, [user, libraryPath]);
-
useEffect(() => {
if (!apiUrl) return;
@@ -192,10 +187,6 @@ export const AppSettingsProvider = ({
});
};
- const validate = async () => {
- setInitialized(Boolean(user && libraryPath));
- };
-
return (
{children}
diff --git a/enjoy/src/renderer/context/media-player-provider.tsx b/enjoy/src/renderer/context/media-player-provider.tsx
index 9ecd53564..f6d1acebf 100644
--- a/enjoy/src/renderer/context/media-player-provider.tsx
+++ b/enjoy/src/renderer/context/media-player-provider.tsx
@@ -9,6 +9,7 @@ import Regions, {
import Chart from "chart.js/auto";
import { TimelineEntry } from "echogarden/dist/utilities/Timeline.d.js";
import { IPA_MAPPING } from "@/constants";
+import { toast } from "@renderer/components/ui";
type MediaPlayerContextType = {
media: AudioType | VideoType;
@@ -19,6 +20,8 @@ type MediaPlayerContextType = {
wavesurfer: WaveSurfer;
setRef: (ref: any) => void;
decoded: boolean;
+ decodeError: string;
+ setDecodeError: (error: string) => void;
// player state
currentTime: number;
currentSegmentIndex: number;
@@ -89,6 +92,7 @@ export const MediaPlayerProvider = ({
// Player state
const [decoded, setDecoded] = useState(false);
+ const [decodeError, setDecodeError] = useState(null);
const [currentTime, setCurrentTime] = useState(0);
const [currentSegmentIndex, setCurrentSegmentIndex] = useState(0);
const [fitZoomRatio, setFitZoomRatio] = useState(1.0);
@@ -333,6 +337,10 @@ export const MediaPlayerProvider = ({
wavesurfer.on("ready", () => {
setDecoded(true);
}),
+ wavesurfer.on("error", (err: Error) => {
+ toast.error(err.message);
+ setDecodeError(err.message);
+ }),
];
return () => {
@@ -360,7 +368,7 @@ export const MediaPlayerProvider = ({
return () => {
setFitZoomRatio(1.0);
- }
+ };
}, [ref, wavesurfer, activeRegion]);
/*
@@ -411,6 +419,8 @@ export const MediaPlayerProvider = ({
*/
useEffect(() => {
initializeWavesurfer();
+ setDecoded(false);
+ setDecodeError(null);
}, [media, ref, mediaProvider]);
return (
@@ -422,6 +432,8 @@ export const MediaPlayerProvider = ({
wavesurfer,
setRef,
decoded,
+ decodeError,
+ setDecodeError,
currentTime,
currentSegmentIndex,
setCurrentSegmentIndex,
diff --git a/yarn.lock b/yarn.lock
index 7e53c37c5..94e16ed80 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1144,7 +1144,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.23.7, @babel/runtime@npm:^7.23.9":
+"@babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.23.9, @babel/runtime@npm:^7.24.0":
version: 7.24.0
resolution: "@babel/runtime@npm:7.24.0"
dependencies:
@@ -2222,7 +2222,281 @@ __metadata:
languageName: node
linkType: hard
-"@langchain/community@npm:^0.0.39, @langchain/community@npm:~0.0.36":
+"@langchain/community@npm:^0.0.40":
+ version: 0.0.40
+ resolution: "@langchain/community@npm:0.0.40"
+ dependencies:
+ "@langchain/core": "npm:~0.1.44"
+ "@langchain/openai": "npm:~0.0.19"
+ flat: "npm:^5.0.2"
+ langsmith: "npm:~0.1.1"
+ uuid: "npm:^9.0.0"
+ zod: "npm:^3.22.3"
+ peerDependencies:
+ "@aws-crypto/sha256-js": ^5.0.0
+ "@aws-sdk/client-bedrock-agent-runtime": ^3.485.0
+ "@aws-sdk/client-bedrock-runtime": ^3.422.0
+ "@aws-sdk/client-dynamodb": ^3.310.0
+ "@aws-sdk/client-kendra": ^3.352.0
+ "@aws-sdk/client-lambda": ^3.310.0
+ "@aws-sdk/client-sagemaker-runtime": ^3.310.0
+ "@aws-sdk/client-sfn": ^3.310.0
+ "@aws-sdk/credential-provider-node": ^3.388.0
+ "@azure/search-documents": ^12.0.0
+ "@clickhouse/client": ^0.2.5
+ "@cloudflare/ai": "*"
+ "@datastax/astra-db-ts": ^0.1.4
+ "@elastic/elasticsearch": ^8.4.0
+ "@getmetal/metal-sdk": "*"
+ "@getzep/zep-js": ^0.9.0
+ "@gomomento/sdk": ^1.51.1
+ "@gomomento/sdk-core": ^1.51.1
+ "@google-ai/generativelanguage": ^0.2.1
+ "@gradientai/nodejs-sdk": ^1.2.0
+ "@huggingface/inference": ^2.6.4
+ "@mozilla/readability": "*"
+ "@opensearch-project/opensearch": "*"
+ "@pinecone-database/pinecone": "*"
+ "@planetscale/database": ^1.8.0
+ "@qdrant/js-client-rest": ^1.2.0
+ "@raycast/api": ^1.55.2
+ "@rockset/client": ^0.9.1
+ "@smithy/eventstream-codec": ^2.0.5
+ "@smithy/protocol-http": ^3.0.6
+ "@smithy/signature-v4": ^2.0.10
+ "@smithy/util-utf8": ^2.0.0
+ "@supabase/postgrest-js": ^1.1.1
+ "@supabase/supabase-js": ^2.10.0
+ "@tensorflow-models/universal-sentence-encoder": "*"
+ "@tensorflow/tfjs-converter": "*"
+ "@tensorflow/tfjs-core": "*"
+ "@upstash/redis": ^1.20.6
+ "@upstash/vector": ^1.0.2
+ "@vercel/kv": ^0.2.3
+ "@vercel/postgres": ^0.5.0
+ "@writerai/writer-sdk": ^0.40.2
+ "@xata.io/client": ^0.28.0
+ "@xenova/transformers": ^2.5.4
+ "@zilliz/milvus2-sdk-node": ">=2.2.7"
+ better-sqlite3: ^9.4.0
+ cassandra-driver: ^4.7.2
+ chromadb: "*"
+ closevector-common: 0.1.3
+ closevector-node: 0.1.6
+ closevector-web: 0.1.6
+ cohere-ai: "*"
+ convex: ^1.3.1
+ couchbase: ^4.3.0
+ discord.js: ^14.14.1
+ dria: ^0.0.3
+ faiss-node: ^0.5.1
+ firebase-admin: ^11.9.0 || ^12.0.0
+ google-auth-library: ^8.9.0
+ googleapis: ^126.0.1
+ hnswlib-node: ^1.4.2
+ html-to-text: ^9.0.5
+ ioredis: ^5.3.2
+ jsdom: "*"
+ jsonwebtoken: ^9.0.2
+ llmonitor: ^0.5.9
+ lodash: ^4.17.21
+ lunary: ^0.6.11
+ mongodb: ">=5.2.0"
+ mysql2: ^3.3.3
+ neo4j-driver: "*"
+ node-llama-cpp: "*"
+ pg: ^8.11.0
+ pg-copy-streams: ^6.0.5
+ pickleparser: ^0.2.1
+ portkey-ai: ^0.1.11
+ redis: "*"
+ replicate: ^0.18.0
+ typeorm: ^0.3.12
+ typesense: ^1.5.3
+ usearch: ^1.1.1
+ vectordb: ^0.1.4
+ voy-search: 0.6.2
+ weaviate-ts-client: "*"
+ web-auth-library: ^1.0.3
+ ws: ^8.14.2
+ peerDependenciesMeta:
+ "@aws-crypto/sha256-js":
+ optional: true
+ "@aws-sdk/client-bedrock-agent-runtime":
+ optional: true
+ "@aws-sdk/client-bedrock-runtime":
+ optional: true
+ "@aws-sdk/client-dynamodb":
+ optional: true
+ "@aws-sdk/client-kendra":
+ optional: true
+ "@aws-sdk/client-lambda":
+ optional: true
+ "@aws-sdk/client-sagemaker-runtime":
+ optional: true
+ "@aws-sdk/client-sfn":
+ optional: true
+ "@aws-sdk/credential-provider-node":
+ optional: true
+ "@azure/search-documents":
+ optional: true
+ "@clickhouse/client":
+ optional: true
+ "@cloudflare/ai":
+ optional: true
+ "@datastax/astra-db-ts":
+ optional: true
+ "@elastic/elasticsearch":
+ optional: true
+ "@getmetal/metal-sdk":
+ optional: true
+ "@getzep/zep-js":
+ optional: true
+ "@gomomento/sdk":
+ optional: true
+ "@gomomento/sdk-core":
+ optional: true
+ "@google-ai/generativelanguage":
+ optional: true
+ "@gradientai/nodejs-sdk":
+ optional: true
+ "@huggingface/inference":
+ optional: true
+ "@mozilla/readability":
+ optional: true
+ "@opensearch-project/opensearch":
+ optional: true
+ "@pinecone-database/pinecone":
+ optional: true
+ "@planetscale/database":
+ optional: true
+ "@qdrant/js-client-rest":
+ optional: true
+ "@raycast/api":
+ optional: true
+ "@rockset/client":
+ optional: true
+ "@smithy/eventstream-codec":
+ optional: true
+ "@smithy/protocol-http":
+ optional: true
+ "@smithy/signature-v4":
+ optional: true
+ "@smithy/util-utf8":
+ optional: true
+ "@supabase/postgrest-js":
+ optional: true
+ "@supabase/supabase-js":
+ optional: true
+ "@tensorflow-models/universal-sentence-encoder":
+ optional: true
+ "@tensorflow/tfjs-converter":
+ optional: true
+ "@tensorflow/tfjs-core":
+ optional: true
+ "@upstash/redis":
+ optional: true
+ "@upstash/vector":
+ optional: true
+ "@vercel/kv":
+ optional: true
+ "@vercel/postgres":
+ optional: true
+ "@writerai/writer-sdk":
+ optional: true
+ "@xata.io/client":
+ optional: true
+ "@xenova/transformers":
+ optional: true
+ "@zilliz/milvus2-sdk-node":
+ optional: true
+ better-sqlite3:
+ optional: true
+ cassandra-driver:
+ optional: true
+ chromadb:
+ optional: true
+ closevector-common:
+ optional: true
+ closevector-node:
+ optional: true
+ closevector-web:
+ optional: true
+ cohere-ai:
+ optional: true
+ convex:
+ optional: true
+ couchbase:
+ optional: true
+ discord.js:
+ optional: true
+ dria:
+ optional: true
+ faiss-node:
+ optional: true
+ firebase-admin:
+ optional: true
+ google-auth-library:
+ optional: true
+ googleapis:
+ optional: true
+ hnswlib-node:
+ optional: true
+ html-to-text:
+ optional: true
+ ioredis:
+ optional: true
+ jsdom:
+ optional: true
+ jsonwebtoken:
+ optional: true
+ llmonitor:
+ optional: true
+ lodash:
+ optional: true
+ lunary:
+ optional: true
+ mongodb:
+ optional: true
+ mysql2:
+ optional: true
+ neo4j-driver:
+ optional: true
+ node-llama-cpp:
+ optional: true
+ pg:
+ optional: true
+ pg-copy-streams:
+ optional: true
+ pickleparser:
+ optional: true
+ portkey-ai:
+ optional: true
+ redis:
+ optional: true
+ replicate:
+ optional: true
+ typeorm:
+ optional: true
+ typesense:
+ optional: true
+ usearch:
+ optional: true
+ vectordb:
+ optional: true
+ voy-search:
+ optional: true
+ weaviate-ts-client:
+ optional: true
+ web-auth-library:
+ optional: true
+ ws:
+ optional: true
+ checksum: 10c0/24c86d437bc14302c22ef2b0b55d6e3213487e69edf57c63be25888b2082391f76598263c8268e9e3ed73da0a6c1b1b9e7c1c474cf5fc2288bc1caf64e439732
+ languageName: node
+ linkType: hard
+
+"@langchain/community@npm:~0.0.36":
version: 0.0.39
resolution: "@langchain/community@npm:0.0.39"
dependencies:
@@ -5374,12 +5648,12 @@ __metadata:
languageName: node
linkType: hard
-"@types/node@npm:^20.11.27":
- version: 20.11.27
- resolution: "@types/node@npm:20.11.27"
+"@types/node@npm:^20.11.28":
+ version: 20.11.28
+ resolution: "@types/node@npm:20.11.28"
dependencies:
undici-types: "npm:~5.26.4"
- checksum: 10c0/ec40bea80c60a12b39bd0da9b16333237a84c67ae83c8aa382b88381ae3948943bf6af969442e209270ad3e109f301a6b01ab243f80bd0e69673a877425f9418
+ checksum: 10c0/c599745243ed9ae4ca87460f18f88d02ab7424b545136aa504ed7a1d898e3a9bb133c927bcc7e861f79d7f6043ef917a173e780c8a001e129221e92f6d97b0ee
languageName: node
linkType: hard
@@ -6453,14 +6727,14 @@ __metadata:
languageName: node
linkType: hard
-"axios@npm:^1.6.7":
- version: 1.6.7
- resolution: "axios@npm:1.6.7"
+"axios@npm:^1.6.8":
+ version: 1.6.8
+ resolution: "axios@npm:1.6.8"
dependencies:
- follow-redirects: "npm:^1.15.4"
+ follow-redirects: "npm:^1.15.6"
form-data: "npm:^4.0.0"
proxy-from-env: "npm:^1.1.0"
- checksum: 10c0/131bf8e62eee48ca4bd84e6101f211961bf6a21a33b95e5dfb3983d5a2fe50d9fffde0b57668d7ce6f65063d3dc10f2212cbcb554f75cfca99da1c73b210358d
+ checksum: 10c0/0f22da6f490335479a89878bc7d5a1419484fbb437b564a80c34888fc36759ae4f56ea28d55a191695e5ed327f0bad56e7ff60fb6770c14d1be6501505d47ab9
languageName: node
linkType: hard
@@ -8840,7 +9114,7 @@ __metadata:
"@ffmpeg/ffmpeg": "npm:^0.12.10"
"@ffmpeg/util": "npm:^0.12.1"
"@hookform/resolvers": "npm:^3.3.4"
- "@langchain/community": "npm:^0.0.39"
+ "@langchain/community": "npm:^0.0.40"
"@langchain/google-genai": "npm:^0.0.10"
"@mozilla/readability": "npm:^0.5.0"
"@playwright/test": "npm:^1.42.1"
@@ -8875,7 +9149,7 @@ __metadata:
"@types/intl-tel-input": "npm:^18.1.4"
"@types/lodash": "npm:^4.17.0"
"@types/mark.js": "npm:^8.11.12"
- "@types/node": "npm:^20.11.27"
+ "@types/node": "npm:^20.11.28"
"@types/react": "npm:^18.2.66"
"@types/react-dom": "npm:^18.2.22"
"@types/validator": "npm:^13.11.9"
@@ -8887,7 +9161,7 @@ __metadata:
"@vitejs/plugin-react": "npm:^4.2.1"
autoprefixer: "npm:^10.4.18"
autosize: "npm:^6.0.1"
- axios: "npm:^1.6.7"
+ axios: "npm:^1.6.8"
camelcase: "npm:^8.0.0"
camelcase-keys: "npm:^9.1.3"
chart.js: "npm:^4.4.2"
@@ -8918,7 +9192,7 @@ __metadata:
html-to-text: "npm:^9.0.5"
https-proxy-agent: "npm:^7.0.4"
i18next: "npm:^23.10.1"
- intl-tel-input: "npm:^19.5.7"
+ intl-tel-input: "npm:^20.0.3"
js-md5: "npm:^0.8.3"
langchain: "npm:^0.1.28"
lodash: "npm:^4.17.21"
@@ -8927,15 +9201,15 @@ __metadata:
microsoft-cognitiveservices-speech-sdk: "npm:^1.36.0"
next-themes: "npm:^0.3.0"
octokit: "npm:^3.1.2"
- openai: "npm:^4.29.0"
+ openai: "npm:^4.29.1"
pitchfinder: "npm:^2.3.2"
- postcss: "npm:^8.4.35"
+ postcss: "npm:^8.4.36"
progress: "npm:^2.0.3"
proxy-agent: "npm:^6.4.0"
react: "npm:^18.2.0"
react-activity-calendar: "npm:^2.2.8"
react-dom: "npm:^18.2.0"
- react-hook-form: "npm:^7.51.0"
+ react-hook-form: "npm:^7.51.1"
react-hotkeys-hook: "npm:^4.5.0"
react-i18next: "npm:^14.1.0"
react-markdown: "npm:^9.0.1"
@@ -8947,7 +9221,7 @@ __metadata:
sequelize-typescript: "npm:^2.1.6"
sonner: "npm:^1.4.3"
sqlite3: "npm:^5.1.7"
- tailwind-merge: "npm:^2.2.1"
+ tailwind-merge: "npm:^2.2.2"
tailwind-scrollbar: "npm:^3.1.0"
tailwind-scrollbar-hide: "npm:^1.1.7"
tailwindcss: "npm:^3.4.1"
@@ -9876,13 +10150,13 @@ __metadata:
languageName: node
linkType: hard
-"follow-redirects@npm:^1.15.4":
- version: 1.15.5
- resolution: "follow-redirects@npm:1.15.5"
+"follow-redirects@npm:^1.15.6":
+ version: 1.15.6
+ resolution: "follow-redirects@npm:1.15.6"
peerDependenciesMeta:
debug:
optional: true
- checksum: 10c0/418d71688ceaf109dfd6f85f747a0c75de30afe43a294caa211def77f02ef19865b547dfb73fde82b751e1cc507c06c754120b848fe5a7400b0a669766df7615
+ checksum: 10c0/9ff767f0d7be6aa6870c82ac79cf0368cd73e01bbc00e9eb1c2a16fbb198ec105e3c9b6628bb98e9f3ac66fe29a957b9645bcb9a490bb7aa0d35f908b6b85071
languageName: node
linkType: hard
@@ -11081,14 +11355,10 @@ __metadata:
languageName: node
linkType: hard
-"intl-tel-input@npm:^19.5.7":
- version: 19.5.7
- resolution: "intl-tel-input@npm:19.5.7"
- dependencies:
- prop-types: "npm:^15.8.1"
- react: "npm:^18.2.0"
- react-dom: "npm:^18.2.0"
- checksum: 10c0/99937f79099456759d1c6493c2b57d8a9e9ec4b8d186599be4ee432b4a8edd14fbb889f8866b6a7e001ef6a5092ee6fce81210592e10dfc061aa4f7bb9c07c33
+"intl-tel-input@npm:^20.0.3":
+ version: 20.0.3
+ resolution: "intl-tel-input@npm:20.0.3"
+ checksum: 10c0/430315b65cc29becb3ea7cc2a99036ec3dae07d7c4ea1bbdea4823e798842c00bdc45e78bbebb8b555f6a369b5a99a5ca7f4ae64502082b9443aefbf5d897c5a
languageName: node
linkType: hard
@@ -12317,7 +12587,7 @@ __metadata:
languageName: node
linkType: hard
-"loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0":
+"loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0":
version: 1.4.0
resolution: "loose-envify@npm:1.4.0"
dependencies:
@@ -14100,7 +14370,7 @@ __metadata:
languageName: node
linkType: hard
-"object-assign@npm:^4.0.1, object-assign@npm:^4.1.1":
+"object-assign@npm:^4.0.1":
version: 4.1.1
resolution: "object-assign@npm:4.1.1"
checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414
@@ -14256,9 +14526,9 @@ __metadata:
languageName: node
linkType: hard
-"openai@npm:^4.29.0":
- version: 4.29.0
- resolution: "openai@npm:4.29.0"
+"openai@npm:^4.29.1":
+ version: 4.29.1
+ resolution: "openai@npm:4.29.1"
dependencies:
"@types/node": "npm:^18.11.18"
"@types/node-fetch": "npm:^2.6.4"
@@ -14271,7 +14541,7 @@ __metadata:
web-streams-polyfill: "npm:^3.2.1"
bin:
openai: bin/cli
- checksum: 10c0/df5a99c7a54f782780446cfb346d18793ded57a54908d839ca49967f85f8803c74ec7473f11426228af2c1df2c0d2325d52fe5590e54b194552593db7c524637
+ checksum: 10c0/7873d1c8f69d8a76ca38bd3b0aa10e967ee1a2e705a1a2eb1012dcdd1b689569e041e1bcbeb72e10fc15a43d62c0f99e01de58c8ed454e8c0b54626b58c0794f
languageName: node
linkType: hard
@@ -14918,6 +15188,17 @@ __metadata:
languageName: node
linkType: hard
+"postcss@npm:^8.4.36":
+ version: 8.4.36
+ resolution: "postcss@npm:8.4.36"
+ dependencies:
+ nanoid: "npm:^3.3.7"
+ picocolors: "npm:^1.0.0"
+ source-map-js: "npm:^1.1.0"
+ checksum: 10c0/e7c834e31d8f4e8dfd0a427df36fdc7bdc58a16e373551618e2c3ac172019eb816b24f1b4709311ebcade8d3ba31b2d75522d28ef45ecbbeb11eb01f265579fb
+ languageName: node
+ linkType: hard
+
"postject@npm:^1.0.0-alpha.6":
version: 1.0.0-alpha.6
resolution: "postject@npm:1.0.0-alpha.6"
@@ -14996,17 +15277,6 @@ __metadata:
languageName: node
linkType: hard
-"prop-types@npm:^15.8.1":
- version: 15.8.1
- resolution: "prop-types@npm:15.8.1"
- dependencies:
- loose-envify: "npm:^1.4.0"
- object-assign: "npm:^4.1.1"
- react-is: "npm:^16.13.1"
- checksum: 10c0/59ece7ca2fb9838031d73a48d4becb9a7cc1ed10e610517c7d8f19a1e02fa47f7c27d557d8a5702bec3cfeccddc853579832b43f449e54635803f277b1c78077
- languageName: node
- linkType: hard
-
"property-information@npm:^6.0.0":
version: 6.4.1
resolution: "property-information@npm:6.4.1"
@@ -15206,12 +15476,12 @@ __metadata:
languageName: node
linkType: hard
-"react-hook-form@npm:^7.51.0":
- version: 7.51.0
- resolution: "react-hook-form@npm:7.51.0"
+"react-hook-form@npm:^7.51.1":
+ version: 7.51.1
+ resolution: "react-hook-form@npm:7.51.1"
peerDependencies:
react: ^16.8.0 || ^17 || ^18
- checksum: 10c0/929464db00d1bc60bb7de41ab7c05cd2b28afba1d4d4ed10b02288919fb95fa81667e467bc571cbb403bec2bb9116b465211ce9962c3c0120a49dcbf47bfa699
+ checksum: 10c0/f0acbf27fc548d3cd0e4db40b84d9dfe6c24209e4421fffbd422da15e32cc98f877ab0af9e06cb1deaf4205ec655b56020ff9f8b2bae6ada5e619890f174c374
languageName: node
linkType: hard
@@ -15243,13 +15513,6 @@ __metadata:
languageName: node
linkType: hard
-"react-is@npm:^16.13.1":
- version: 16.13.1
- resolution: "react-is@npm:16.13.1"
- checksum: 10c0/33977da7a5f1a287936a0c85639fec6ca74f4f15ef1e59a6bc20338fc73dc69555381e211f7a3529b8150a1f71e4225525b41b60b52965bda53ce7d47377ada1
- languageName: node
- linkType: hard
-
"react-markdown@npm:^9.0.1":
version: 9.0.1
resolution: "react-markdown@npm:9.0.1"
@@ -16316,6 +16579,13 @@ __metadata:
languageName: node
linkType: hard
+"source-map-js@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "source-map-js@npm:1.1.0"
+ checksum: 10c0/d1f016efe4fcf67fd92e36da0670f2889b13a36cc453329758336450e811c61164376eb451b453b4dd4e89a760f841b0a014942d54f240af31a791829bc0e336
+ languageName: node
+ linkType: hard
+
"source-map-support@npm:^0.5.13":
version: 0.5.21
resolution: "source-map-support@npm:0.5.21"
@@ -16761,12 +17031,12 @@ __metadata:
languageName: node
linkType: hard
-"tailwind-merge@npm:^2.2.1":
- version: 2.2.1
- resolution: "tailwind-merge@npm:2.2.1"
+"tailwind-merge@npm:^2.2.2":
+ version: 2.2.2
+ resolution: "tailwind-merge@npm:2.2.2"
dependencies:
- "@babel/runtime": "npm:^7.23.7"
- checksum: 10c0/14ab965ec897e9377484b7593f7a700dde09b8035b762ad42652622a3ed1f202b203f48c0f235c0b1b38e9390470d94458f6f9010d33a5a18d71b15f38b986a6
+ "@babel/runtime": "npm:^7.24.0"
+ checksum: 10c0/68a5e199848a467aed4f8d1a8d7b6a5b583ff72f1d2801e018bf245eaa41e6564b63ead9e2b708a214cefbd843970c5e0a21754d5f2a20e2c1238e25955685ce
languageName: node
linkType: hard