);
};
diff --git a/enjoy/src/renderer/components/preferences/hotkeys.tsx b/enjoy/src/renderer/components/preferences/hotkeys.tsx
index 829de334..ebdaae47 100644
--- a/enjoy/src/renderer/components/preferences/hotkeys.tsx
+++ b/enjoy/src/renderer/components/preferences/hotkeys.tsx
@@ -8,29 +8,84 @@ export const Hotkeys = () => {
<>
+
{t("system")}
-
-
{t("openPreferences")}
-
- {commandOrCtrl} + ,
-
-
-
+
+
{t("quitApp")}
+
+ {commandOrCtrl} + Q
+
+
-
-
{t("playOrPause")}
-
- Space
-
+
+
+
+
+ {t("openPreferences")}
+
+
+ {commandOrCtrl} + ,
+
+
+
+
+
+
+
{t("player")}
+
+
+
{t("playOrPause")}
+
+ Space
+
+
+
+
+
+
+
+ {t("startOrStopRecording")}
+
+
+ r
+
+
+
+
+
+
+
+ {t("playOrPauseRecording")}
+
+
+ {commandOrCtrl} + r
+
+
+
+
+
+
+
+ {t("playPreviousSegment")}
+
+
+ p
+
+
+
+
+
+
+
+ {t("playNextSegment")}
+
+
+ n
+
+
+
-
>
);
};
diff --git a/enjoy/src/renderer/components/preferences/openai-settings.tsx b/enjoy/src/renderer/components/preferences/openai-settings.tsx
index 05e83349..75b359f7 100644
--- a/enjoy/src/renderer/components/preferences/openai-settings.tsx
+++ b/enjoy/src/renderer/components/preferences/openai-settings.tsx
@@ -117,7 +117,6 @@ export const OpenaiSettings = () => {
diff --git a/enjoy/src/renderer/components/recordings/recording-player.tsx b/enjoy/src/renderer/components/recordings/recording-player.tsx
index 882fac8b..3a28700c 100644
--- a/enjoy/src/renderer/components/recordings/recording-player.tsx
+++ b/enjoy/src/renderer/components/recordings/recording-player.tsx
@@ -1,6 +1,7 @@
import { useEffect, useState, useRef, useCallback } from "react";
import WaveSurfer from "wavesurfer.js";
-import { PitchContour } from "@renderer/components";
+import { renderPitchContour } from "@renderer/lib/utils";
+import { extractFrequencies } from "@/utils";
import { Button, Skeleton } from "@renderer/components/ui";
import { PlayIcon, PauseIcon } from "lucide-react";
import { useIntersectionObserver } from "@uidotdev/usehooks";
@@ -70,16 +71,23 @@ export const RecordingPlayer = (props: {
wavesurfer.on("timeupdate", (time: number) => {
onCurrentTimeChange?.(time);
}),
- wavesurfer.on("decode", () => {
+ wavesurfer.on("ready", () => {
const peaks = wavesurfer.getDecodedData().getChannelData(0);
const sampleRate = wavesurfer.options.sampleRate;
- wavesurfer.renderer.getWrapper().appendChild(
- PitchContour({
- peaks,
- sampleRate,
- height,
- })
- );
+ const data = extractFrequencies({ peaks, sampleRate });
+ setTimeout(() => {
+ renderPitchContour({
+ wrapper: wavesurfer.getWrapper(),
+ canvasId: `pitch-contour-${recording.id}-canvas`,
+ labels: new Array(data.length).fill(""),
+ datasets: [
+ {
+ data,
+ cubicInterpolationMode: "monotone",
+ },
+ ],
+ });
+ }, 1000);
setInitialized(true);
}),
];
diff --git a/enjoy/src/renderer/components/videos/index.ts b/enjoy/src/renderer/components/videos/index.ts
index fe2512fa..b0725b34 100644
--- a/enjoy/src/renderer/components/videos/index.ts
+++ b/enjoy/src/renderer/components/videos/index.ts
@@ -1,6 +1,6 @@
export * from "./videos-table";
export * from "./video-edit-form";
-export * from "./video-detail";
+export * from "./video-player";
export * from "./videos-component";
diff --git a/enjoy/src/renderer/components/videos/video-detail.tsx b/enjoy/src/renderer/components/videos/video-detail.tsx
deleted file mode 100644
index e226813d..00000000
--- a/enjoy/src/renderer/components/videos/video-detail.tsx
+++ /dev/null
@@ -1,407 +0,0 @@
-import { useEffect, useState, useContext } from "react";
-import {
- DbProviderContext,
- AppSettingsProviderContext,
- AISettingsProviderContext,
-} from "@renderer/context";
-import {
- LoaderSpin,
- RecordingsList,
- PagePlaceholder,
- MediaPlayer,
- MediaTranscription,
-} from "@renderer/components";
-import { CheckCircleIcon, LoaderIcon } from "lucide-react";
-import {
- AlertDialog,
- AlertDialogHeader,
- AlertDialogDescription,
- AlertDialogTitle,
- AlertDialogContent,
- AlertDialogFooter,
- AlertDialogCancel,
- Button,
- PingPoint,
- Progress,
- ScrollArea,
- toast,
-} from "@renderer/components/ui";
-import { t } from "i18next";
-import { useTranscribe } from "@renderer/hooks";
-import { useNavigate } from "react-router-dom";
-
-export const VideoDetail = (props: { id?: string; md5?: string }) => {
- const navigate = useNavigate();
-
- const { id, md5 } = props;
- const { addDblistener, removeDbListener } = useContext(DbProviderContext);
- const { whisperConfig } = useContext(AISettingsProviderContext);
- const { EnjoyApp, webApi } = useContext(AppSettingsProviderContext);
-
- const [video, setVideo] = useState
(null);
- const [transcription, setTranscription] = useState(null);
- const [sharing, setSharing] = useState(false);
-
- // Transcription controls
- const [transcribing, setTranscribing] = useState(false);
- const { transcribe } = useTranscribe();
- const [transcribingProgress, setTranscribingProgress] = useState(0);
-
- // Player controls
- const [initialized, setInitialized] = useState(false);
- const [currentTime, setCurrentTime] = useState(0);
- const [seek, setSeek] = useState<{
- seekTo: number;
- timestamp: number;
- }>();
- const [currentSegmentIndex, setCurrentSegmentIndex] = useState(0);
- const [recordButtonVisible, setRecordButtonVisible] =
- useState(false);
- const [zoomRatio, setZoomRatio] = useState(1.0);
- const [isPlaying, setIsPlaying] = useState(false);
- const [playMode, setPlayMode] = useState<"loop" | "single" | "all">("all");
- const [playBackRate, setPlaybackRate] = useState(1);
- const [displayInlineCaption, setDisplayInlineCaption] =
- useState(true);
-
- const onTransactionUpdate = (event: CustomEvent) => {
- const { model, action, record } = event.detail || {};
- if (model === "Transcription" && action === "update") {
- setTranscription(record);
- }
- };
-
- const findOrCreateTranscription = async () => {
- return EnjoyApp.transcriptions
- .findOrCreate({
- targetId: video.id,
- targetType: "Video",
- })
- .then((transcription) => {
- setTranscription(transcription);
- });
- };
-
- const generateTranscription = async () => {
- if (transcribing) return;
- if (!transcription) {
- await findOrCreateTranscription();
- }
-
- setTranscribing(true);
- setTranscribingProgress(0);
- try {
- const { engine, model, result } = await transcribe(video.src, {
- targetId: video.id,
- targetType: "Video",
- });
- await EnjoyApp.transcriptions.update(transcription.id, {
- state: "finished",
- result,
- engine,
- model,
- });
- } catch (err) {
- toast.error(err.message);
- }
-
- setTranscribing(false);
- };
-
- const findTranscriptionFromWebApi = async () => {
- if (!transcription) {
- await findOrCreateTranscription();
- }
-
- const res = await webApi.transcriptions({
- targetMd5: video.md5,
- });
-
- const transcript = (res?.transcriptions || []).filter((t) =>
- ["base", "small", "medium", "large", "whisper-1"].includes(t.model)
- )?.[0];
-
- if (!transcript) {
- throw new Error("Transcription not found");
- }
-
- await EnjoyApp.transcriptions.update(transcription.id, {
- state: "finished",
- result: transcript.result,
- engine: transcript.engine,
- model: transcript.model,
- });
- };
-
- const findOrGenerateTranscription = async () => {
- try {
- await findTranscriptionFromWebApi();
- } catch (err) {
- console.error(err);
- await generateTranscription();
- }
- };
-
- const handleShare = async () => {
- if (!video.source.startsWith("http")) {
- toast.error(t("shareFailed"), {
- description: t("cannotShareLocalVideo"),
- });
- return;
- }
-
- if (!video.source && !video.isUploaded) {
- try {
- await EnjoyApp.videos.upload(video.id);
- } catch (err) {
- toast.error(t("shareFailed"), { description: err.message });
- return;
- }
- }
-
- webApi
- .createPost({
- targetType: "Video",
- targetId: video.id,
- })
- .then(() => {
- toast.success(t("sharedSuccessfully"), {
- description: t("sharedVideo"),
- });
- })
- .catch((err) => {
- toast.error(t("shareFailed"), { description: err.message });
- });
- setSharing(false);
- };
-
- useEffect(() => {
- const where = id ? { id } : { md5 };
- EnjoyApp.videos.findOne(where).then((video) => {
- if (video) {
- setVideo(video);
- } else {
- toast.error(t("models.video.notFound"));
- }
- });
- }, [id, md5]);
-
- useEffect(() => {
- if (!video) return;
-
- findOrCreateTranscription();
- }, [video]);
-
- useEffect(() => {
- if (!initialized) return;
- if (!transcription) return;
-
- addDblistener(onTransactionUpdate);
-
- if (transcription?.state == "pending") {
- findOrGenerateTranscription();
- }
-
- if (whisperConfig.service === "local") {
- EnjoyApp.whisper.onProgress((_, p: number) => {
- if (p > 100) p = 100;
- setTranscribingProgress(p);
- });
- }
-
- return () => {
- removeDbListener(onTransactionUpdate);
- EnjoyApp.whisper.removeProgressListeners();
- };
- }, [md5, transcription, initialized]);
-
- if (!video) {
- return ;
- }
-
- if (!video.src) {
- return (
-
- );
- }
-
- return (
-
-
-
- setSharing(true)}
- onDecoded={({ duration, sampleRate }) => {
- if (video.duration) return;
-
- EnjoyApp.videos.update(video.id, {
- metadata: Object.assign({}, video.metadata, {
- duration,
- sampleRate,
- }),
- });
- }}
- />
-
-
-
-
-
-
-
- {
- if (currentSegmentIndex === index) return;
-
- const segment = transcription?.result?.[index];
- if (!segment) return;
-
- if (playMode === "loop" && isPlaying) {
- setIsPlaying(false);
- }
- setSeek({
- seekTo: segment.offsets.from / 1000,
- timestamp: Date.now(),
- });
- }}
- />
-
-
-
-
setSharing(value)}>
-
-
- {t("shareAudio")}
-
- {t("areYouSureToShareThisAudioToCommunity")}
-
-
-
- {t("cancel")}
-
-
-
-
-
- {/* Show loading progress until waveform is decoded & transcribed */}
-
-
-
- {t("preparingVideo")}
-
- {t("itMayTakeAWhileToPrepareForTheFirstLoad")}
-
-
-
-
- {initialized ? (
-
-
- {t("waveformIsDecoded")}
-
- ) : (
-
-
- {t("decodingWaveform")}
-
- )}
-
- {!transcription ? (
-
-
- {t("loadingTranscription")}
-
- ) : transcription.result ? (
-
-
- {t("transcribedSuccessfully")}
-
- ) : transcribing ? (
-
-
-
-
{t("transcribing")}
-
- {whisperConfig.service === "local" && (
-
- )}
-
- ) : (
-
-
-
- {t("notTranscribedYet")}
- {initialized && (
-
- )}
-
-
- )}
-
-
-
-
-
-
-
-
- {!initialized && (
-
-
-
- )}
-
- );
-};
diff --git a/enjoy/src/renderer/components/videos/video-player.tsx b/enjoy/src/renderer/components/videos/video-player.tsx
new file mode 100644
index 00000000..e87932ea
--- /dev/null
+++ b/enjoy/src/renderer/components/videos/video-player.tsx
@@ -0,0 +1,72 @@
+import { useEffect, useContext, useRef } from "react";
+import { MediaPlayerProviderContext } from "@renderer/context";
+import {
+ MediaLoadingModal,
+ MediaCaption,
+ MediaPlayerControls,
+ MediaTabs,
+ MediaCurrentRecording,
+} from "@renderer/components";
+import { formatDuration } from "@renderer/lib/utils";
+import { useVideo } from "@renderer/hooks";
+
+export const VideoPlayer = (props: { id?: string; md5?: string }) => {
+ const { id, md5 } = props;
+ const { media, currentTime, setMedia, setRef } = useContext(
+ MediaPlayerProviderContext
+ );
+ const { video } = useVideo({ id, md5 });
+ const ref = useRef(null);
+
+ useEffect(() => {
+ if (!video) return;
+
+ setMedia(video);
+ }, [video]);
+
+ useEffect(() => {
+ setRef(ref);
+ }, [ref]);
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {formatDuration(currentTime || 0)}
+
+ /
+
+ {formatDuration(media?.duration || 0)}
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
diff --git a/enjoy/src/renderer/components/videos/videos-component.tsx b/enjoy/src/renderer/components/videos/videos-component.tsx
index d3cf7f1c..1e25e87a 100644
--- a/enjoy/src/renderer/components/videos/videos-component.tsx
+++ b/enjoy/src/renderer/components/videos/videos-component.tsx
@@ -239,7 +239,7 @@ export const VideosComponent = () => {
{t("transcribe")}
- {t("transcribeVideoConfirmation", {
+ {t("transcribeMediaConfirmation", {
name: transcribing?.name || "",
})}
diff --git a/enjoy/src/renderer/context/ai-settings-provider.tsx b/enjoy/src/renderer/context/ai-settings-provider.tsx
index 8656dbc1..4abc1da2 100644
--- a/enjoy/src/renderer/context/ai-settings-provider.tsx
+++ b/enjoy/src/renderer/context/ai-settings-provider.tsx
@@ -25,7 +25,7 @@ export const AISettingsProvider = ({
}: {
children: React.ReactNode;
}) => {
- const [defaultEngine, setDefaultEngine] = useState(null);
+ const [defaultEngine, setDefaultEngine] = useState("openai");
const [openai, setOpenai] = useState(null);
const [googleGenerativeAi, setGoogleGenerativeAi] =
useState(null);
diff --git a/enjoy/src/renderer/context/index.ts b/enjoy/src/renderer/context/index.ts
index b1a26bec..413c0495 100644
--- a/enjoy/src/renderer/context/index.ts
+++ b/enjoy/src/renderer/context/index.ts
@@ -2,3 +2,5 @@ export * from "./ai-settings-provider";
export * from "./app-settings-provider";
export * from "./db-provider";
export * from "./theme-provider";
+export * from "./wavesurfer-provider";
+export * from "./media-player-provider";
diff --git a/enjoy/src/renderer/context/media-player-provider.tsx b/enjoy/src/renderer/context/media-player-provider.tsx
new file mode 100644
index 00000000..2c049110
--- /dev/null
+++ b/enjoy/src/renderer/context/media-player-provider.tsx
@@ -0,0 +1,454 @@
+import { createContext, useEffect, useState, useContext } from "react";
+import { extractFrequencies } from "@/utils";
+import { AppSettingsProviderContext } from "@renderer/context";
+import { useTranscriptions, useRecordings } from "@renderer/hooks";
+import WaveSurfer from "wavesurfer.js";
+import Regions, {
+ type Region as RegionType,
+} from "wavesurfer.js/dist/plugins/regions";
+import Chart from "chart.js/auto";
+import { TimelineEntry } from "echogarden/dist/utilities/Timeline.d.js";
+import { IPA_MAPPING } from "@/constants";
+
+type MediaPlayerContextType = {
+ media: AudioType | VideoType;
+ setMedia: (media: AudioType | VideoType) => void;
+ setMediaProvider: (mediaProvider: HTMLAudioElement | null) => void;
+ waveform: WaveFormDataType;
+ // wavesurfer
+ wavesurfer: WaveSurfer;
+ setRef: (ref: any) => void;
+ decoded: boolean;
+ // player state
+ currentTime: number;
+ currentSegmentIndex: number;
+ setCurrentSegmentIndex: (index: number) => void;
+ zoomRatio: number;
+ setZoomRatio: (zoomRation: number) => void;
+ fitZoomRatio: number;
+ minPxPerSec: number;
+ // regions
+ regions: Regions | null;
+ activeRegion: RegionType;
+ setActiveRegion: (region: RegionType) => void;
+ editingRegion: boolean;
+ setEditingRegion: (editing: boolean) => void;
+ renderPitchContour: (
+ region: RegionType,
+ options?: {
+ repaint?: boolean;
+ canvasId?: string;
+ containerClassNames?: string[];
+ data?: Chart["data"];
+ }
+ ) => void;
+ pitchChart: Chart;
+ // Transcription
+ transcription: TranscriptionType;
+ generateTranscription: () => void;
+ transcribing: boolean;
+ transcribingProgress: number;
+ transcriptionDraft: TranscriptionType["result"];
+ setTranscriptionDraft: (result: TranscriptionType["result"]) => void;
+ // Recordings
+ isRecording: boolean;
+ setIsRecording: (isRecording: boolean) => void;
+ currentRecording: RecordingType;
+ setCurrentRecording: (recording: RecordingType) => void;
+ recordings: RecordingType[];
+ fetchRecordings: (offset: number) => void;
+ loadingRecordings: boolean;
+ hasMoreRecordings: boolean;
+};
+
+export const MediaPlayerProviderContext =
+ createContext(null);
+
+export const MediaPlayerProvider = ({
+ children,
+}: {
+ children: React.ReactNode;
+}) => {
+ const height = 192;
+ const minPxPerSec = 150;
+ const { EnjoyApp } = useContext(AppSettingsProviderContext);
+
+ const [media, setMedia] = useState(null);
+ const [mediaProvider, setMediaProvider] = useState(
+ null
+ );
+ const [waveform, setWaveForm] = useState(null);
+ const [wavesurfer, setWavesurfer] = useState(null);
+
+ const [regions, setRegions] = useState(null);
+ const [activeRegion, setActiveRegion] = useState(null);
+ const [editingRegion, setEditingRegion] = useState(false);
+ const [pitchChart, setPitchChart] = useState(null);
+
+ const [ref, setRef] = useState(null);
+
+ // Player state
+ const [decoded, setDecoded] = useState(false);
+ const [currentTime, setCurrentTime] = useState(0);
+ const [currentSegmentIndex, setCurrentSegmentIndex] = useState(0);
+ const [fitZoomRatio, setFitZoomRatio] = useState(1.0);
+ const [zoomRatio, setZoomRatio] = useState(1.0);
+
+ const [isRecording, setIsRecording] = useState(false);
+ const [currentRecording, setCurrentRecording] = useState(null);
+
+ const [transcriptionDraft, setTranscriptionDraft] =
+ useState();
+
+ const {
+ transcription,
+ generateTranscription,
+ transcribing,
+ transcribingProgress,
+ } = useTranscriptions(media);
+
+ const {
+ recordings,
+ fetchRecordings,
+ loading: loadingRecordings,
+ hasMore: hasMoreRecordings,
+ } = useRecordings(media, currentSegmentIndex);
+
+ const initializeWavesurfer = async () => {
+ if (!media) return;
+ if (!mediaProvider) return;
+ if (!ref.current) return;
+
+ const ws = WaveSurfer.create({
+ container: ref.current,
+ height,
+ waveColor: "#eaeaea",
+ progressColor: "#c0d6df",
+ cursorColor: "#ff0054",
+ barWidth: 2,
+ autoScroll: true,
+ minPxPerSec,
+ autoCenter: false,
+ dragToSeek: false,
+ fillParent: true,
+ media: mediaProvider,
+ peaks: waveform ? [waveform.peaks] : undefined,
+ duration: waveform ? waveform.duration : undefined,
+ });
+
+ const blob = await fetch(media.src).then((res) => res.blob());
+
+ if (waveform) {
+ ws.loadBlob(blob, [waveform.peaks], waveform.duration);
+ setDecoded(true);
+ } else {
+ ws.loadBlob(blob);
+ }
+
+ setWavesurfer(ws);
+ };
+
+ const renderPitchContour = (
+ region: RegionType,
+ options?: {
+ repaint?: boolean;
+ canvasId?: string;
+ containerClassNames?: string[];
+ data?: Chart["data"];
+ }
+ ) => {
+ if (!region) return;
+ if (!waveform?.frequencies?.length) return;
+ if (!wavesurfer) return;
+
+ const { repaint = true, containerClassNames = [] } = options || {};
+ const duration = wavesurfer.getDuration();
+ const fromIndex = Math.round(
+ (region.start / duration) * waveform.frequencies.length
+ );
+ const toIndex = Math.round(
+ (region.end / duration) * waveform.frequencies.length
+ );
+
+ const wrapper = (wavesurfer as any).renderer.getWrapper();
+ // remove existing pitch contour
+ if (repaint) {
+ wrapper
+ .querySelectorAll(".pitch-contour")
+ .forEach((element: HTMLDivElement) => {
+ element.remove();
+ });
+ }
+
+ // calculate offset and width
+ const wrapperWidth = wrapper.getBoundingClientRect().width;
+ const offsetLeft = (region.start / duration) * wrapperWidth;
+ const width = ((region.end - region.start) / duration) * wrapperWidth;
+
+ // create container and canvas
+ const pitchContourWidthContainer = document.createElement("div");
+ const canvas = document.createElement("canvas");
+ const canvasId = options?.canvasId || `pitch-contour-${region.id}-canvas`;
+ canvas.id = canvasId;
+ canvas.style.width = `${width}px`;
+ canvas.style.height = `${height}px`;
+ pitchContourWidthContainer.appendChild(canvas);
+
+ pitchContourWidthContainer.style.position = "absolute";
+ pitchContourWidthContainer.style.top = "0";
+ pitchContourWidthContainer.style.left = "0";
+
+ pitchContourWidthContainer.style.width = `${width}px`;
+ pitchContourWidthContainer.style.height = `${height}px`;
+ pitchContourWidthContainer.style.marginLeft = `${offsetLeft}px`;
+ pitchContourWidthContainer.classList.add(
+ "pitch-contour",
+ ...containerClassNames
+ );
+ // pitchContourWidthContainer.style.zIndex = "3";
+
+ wrapper.appendChild(pitchContourWidthContainer);
+
+ // prepare chart data
+ let chartData: Chart["data"] = options?.data;
+
+ if (!chartData) {
+ const data = waveform.frequencies.slice(fromIndex, toIndex);
+ const regionDuration = region.end - region.start;
+
+ const labels = new Array(data.length).fill("");
+ const caption = transcription?.result?.timeline?.[currentSegmentIndex];
+ if (region.id.startsWith("segment-region")) {
+ caption.timeline.forEach((segment: TimelineEntry) => {
+ const index = Math.round(
+ ((segment.startTime - region.start) / regionDuration) * data.length
+ );
+ labels[index] = segment.text.trim();
+ });
+ } else if (region.id.startsWith("word-region")) {
+ const words = caption.timeline.filter(
+ (w: TimelineEntry) =>
+ w.startTime >= region.start &&
+ w.endTime <= region.end &&
+ w.type === "word"
+ );
+
+ let phones: TimelineEntry[] = [];
+ words.forEach((word: TimelineEntry) => {
+ word.timeline.forEach((token: TimelineEntry) => {
+ phones = phones.concat(token.timeline);
+ });
+ });
+
+ phones.forEach((phone: TimelineEntry) => {
+ const index = Math.round(
+ ((phone.startTime - region.start) / regionDuration) * data.length
+ );
+ labels[index] = [
+ labels[index] || "",
+ (IPA_MAPPING as any)[phone.text.trim()] || phone.text.trim(),
+ ].join("");
+ });
+ }
+
+ chartData = {
+ labels,
+ datasets: [
+ {
+ data,
+ cubicInterpolationMode: "monotone",
+ },
+ ],
+ };
+ }
+
+ setPitchChart(
+ new Chart(canvas, {
+ type: "line",
+ data: chartData,
+ options: {
+ plugins: {
+ legend: {
+ display: false,
+ },
+ title: {
+ display: false,
+ },
+ },
+ scales: {
+ x: {
+ beginAtZero: true,
+ ticks: {
+ autoSkip: false,
+ },
+ display: true,
+ grid: {
+ display: false,
+ },
+ border: {
+ display: false,
+ },
+ },
+ y: {
+ beginAtZero: true,
+ display: false,
+ },
+ },
+ },
+ })
+ );
+ };
+
+ useEffect(() => {
+ if (!media) return;
+
+ EnjoyApp.waveforms.find(media.md5).then((waveform) => {
+ setWaveForm(waveform);
+ });
+ }, [media]);
+
+ /*
+ * Initialize wavesurfer when container ref is available
+ * and mediaProvider is available
+ */
+ useEffect(() => {
+ initializeWavesurfer();
+ }, [media, ref, mediaProvider]);
+
+ /*
+ * When wavesurfer is decoded,
+ * set up event listeners for wavesurfer
+ * and clean up when component is unmounted
+ */
+ useEffect(() => {
+ if (!wavesurfer) return;
+
+ setRegions(wavesurfer.registerPlugin(Regions.create()));
+
+ setCurrentTime(0);
+
+ const subscriptions = [
+ wavesurfer.on("loading", (percent: number) => console.log(`${percent}%`)),
+ wavesurfer.on("timeupdate", (time: number) => setCurrentTime(time)),
+ wavesurfer.on("decode", () => {
+ const peaks: Float32Array = wavesurfer
+ .getDecodedData()
+ .getChannelData(0);
+ const duration: number = wavesurfer.getDuration();
+ const sampleRate = wavesurfer.options.sampleRate;
+ const _frequencies = extractFrequencies({ peaks, sampleRate });
+ const _waveform = {
+ peaks: Array.from(peaks),
+ duration,
+ sampleRate,
+ frequencies: _frequencies,
+ };
+ EnjoyApp.waveforms.save(media.md5, _waveform);
+ setWaveForm(_waveform);
+ }),
+ wavesurfer.on("ready", () => {
+ setDecoded(true);
+ }),
+ ];
+
+ return () => {
+ subscriptions.forEach((unsub) => unsub());
+ };
+ }, [wavesurfer]);
+
+ /*
+ * update fitZoomRatio when currentSegmentIndex is updated
+ */
+ useEffect(() => {
+ if (!ref?.current) return;
+ if (!wavesurfer) return;
+
+ if (!activeRegion) return;
+
+ const containerWidth = ref.current.getBoundingClientRect().width;
+ const duration = activeRegion.end - activeRegion.start;
+ if (activeRegion.id.startsWith("segment-region")) {
+ setFitZoomRatio(containerWidth / duration / minPxPerSec);
+ } else if (activeRegion.id.startsWith("word-region")) {
+ setFitZoomRatio(containerWidth / 3 / duration / minPxPerSec);
+ }
+ }, [ref, wavesurfer, activeRegion]);
+
+ /*
+ * Zoom chart when zoomRatio update
+ */
+ useEffect(() => {
+ if (!wavesurfer) return;
+ if (!decoded) return;
+
+ wavesurfer.zoom(zoomRatio * minPxPerSec);
+ if (!activeRegion) return;
+
+ renderPitchContour(activeRegion);
+ wavesurfer.setScrollTime(activeRegion.start);
+ }, [zoomRatio, wavesurfer, decoded]);
+
+ /*
+ * Re-render pitch contour when active region changed
+ */
+ useEffect(() => {
+ if (!activeRegion) return;
+
+ renderPitchContour(activeRegion);
+ }, [activeRegion]);
+
+ /*
+ * Update player styles
+ */
+ useEffect(() => {
+ if (!wavesurfer) return;
+ if (!decoded) return;
+
+ const scrollContainer = wavesurfer.getWrapper().closest(".scroll");
+ scrollContainer.style.scrollbarWidth = "thin";
+ }, [decoded, wavesurfer]);
+
+ return (
+
+ {children}
+
+ );
+};
diff --git a/enjoy/src/renderer/context/wavesurfer-provider.tsx b/enjoy/src/renderer/context/wavesurfer-provider.tsx
new file mode 100644
index 00000000..a31393d1
--- /dev/null
+++ b/enjoy/src/renderer/context/wavesurfer-provider.tsx
@@ -0,0 +1,185 @@
+import { createContext, useEffect, useState, useContext } from "react";
+import { extractFrequencies } from "@/utils";
+import { AppSettingsProviderContext } from "@renderer/context";
+import WaveSurfer from "wavesurfer.js";
+import Regions, {
+ type Region as RegionType,
+} from "wavesurfer.js/dist/plugins/regions";
+
+type WavesurferContextType = {
+ media: AudioType | VideoType;
+ setMedia: (media: AudioType | VideoType) => void;
+ setMediaProvider: (mediaProvider: HTMLAudioElement | null) => void;
+ wavesurfer: WaveSurfer;
+ setRef: (ref: any) => void;
+ initialized: boolean;
+ currentTime: number;
+ currentSegmentIndex: number;
+ setCurrentSegmentIndex: (index: number) => void;
+ zoomRatio: number;
+};
+
+export const WavesurferContext = createContext(null);
+
+export const WavesurferProvider = ({
+ children,
+}: {
+ children: React.ReactNode;
+}) => {
+ const { EnjoyApp } = useContext(AppSettingsProviderContext);
+
+ const [media, setMedia] = useState(null);
+ const [mediaProvider, setMediaProvider] = useState(
+ null
+ );
+ const [wavesurfer, setWavesurfer] = useState(null);
+ const [regions, setRegions] = useState(null);
+ const [ref, setRef] = useState(null);
+
+ // Player state
+ const [initialized, setInitialized] = useState(false);
+ const [currentTime, setCurrentTime] = useState(0);
+ const [seek, setSeek] = useState<{
+ seekTo: number;
+ timestamp: number;
+ }>();
+ const [currentSegmentIndex, setCurrentSegmentIndex] = useState(0);
+ const [zoomRatio, setZoomRatio] = useState(1.0);
+ const [isPlaying, setIsPlaying] = useState(false);
+ const [playMode, setPlayMode] = useState<"loop" | "single" | "all">("all");
+ const [playBackRate, setPlaybackRate] = useState(1);
+ const [displayInlineCaption, setDisplayInlineCaption] =
+ useState(true);
+
+ const initializeWavesurfer = async () => {
+ if (!media) return;
+ if (!mediaProvider) return;
+ if (!ref.current) return;
+
+ const waveform = await EnjoyApp.waveforms.find(media.md5);
+ const ws = WaveSurfer.create({
+ container: ref.current,
+ height: 250,
+ waveColor: "#eee",
+ progressColor: "rgba(0, 0, 0, 0.15)",
+ cursorColor: "#aaa",
+ barWidth: 2,
+ autoScroll: true,
+ minPxPerSec: 150,
+ autoCenter: false,
+ dragToSeek: false,
+ media: mediaProvider,
+ peaks: waveform ? [waveform.peaks] : undefined,
+ duration: waveform ? waveform.duration : undefined,
+ });
+
+ const blob = await fetch(media.src).then((res) => res.blob());
+
+ if (waveform) {
+ ws.loadBlob(blob, [waveform.peaks], waveform.duration);
+ setInitialized(true);
+ } else {
+ ws.loadBlob(blob);
+ }
+
+ // Set up region plugin
+ setRegions(ws.registerPlugin(Regions.create()));
+
+ setWavesurfer(ws);
+ };
+
+ /*
+ * Initialize wavesurfer when container ref is available
+ * and mediaProvider is available
+ */
+ useEffect(() => {
+ initializeWavesurfer();
+ }, [media, ref, mediaProvider]);
+
+ /*
+ * When wavesurfer is initialized,
+ * set up event listeners for wavesurfer
+ * and clean up when component is unmounted
+ */
+ useEffect(() => {
+ if (!wavesurfer) return;
+
+ setCurrentTime(0);
+ setIsPlaying(false);
+
+ const subscriptions = [
+ wavesurfer.on("play", () => setIsPlaying(true)),
+ wavesurfer.on("pause", () => setIsPlaying(false)),
+ wavesurfer.on("loading", (percent: number) => console.log(`${percent}%`)),
+ wavesurfer.on("timeupdate", (time: number) => setCurrentTime(time)),
+ wavesurfer.on("decode", () => {
+ const peaks: Float32Array = wavesurfer
+ .getDecodedData()
+ .getChannelData(0);
+ const duration: number = wavesurfer.getDuration();
+ const sampleRate = wavesurfer.options.sampleRate;
+ const _frequencies = extractFrequencies({ peaks, sampleRate });
+ const _waveform = {
+ peaks: Array.from(peaks),
+ duration,
+ sampleRate,
+ frequencies: _frequencies,
+ };
+ EnjoyApp.waveforms.save(media.md5, _waveform);
+ }),
+ wavesurfer.on("ready", () => {
+ setInitialized(true);
+ }),
+ ];
+
+ return () => {
+ subscriptions.forEach((unsub) => unsub());
+ };
+ }, [wavesurfer]);
+
+ /*
+ * When regions are available,
+ * set up event listeners for regions
+ * and clean up when component is unmounted
+ */
+ useEffect(() => {
+ if (!regions) return;
+
+ const subscriptions = [
+ wavesurfer.on("finish", () => {
+ if (playMode !== "loop") return;
+
+ regions?.getRegions()[0]?.play();
+ }),
+
+ regions.on("region-created", (region: RegionType) => {
+ region.on("click", () => {
+ wavesurfer.play(region.start, region.end);
+ });
+ }),
+ ];
+
+ return () => {
+ subscriptions.forEach((unsub) => unsub());
+ };
+ });
+
+ return (
+
+ {children}
+
+ );
+};
diff --git a/enjoy/src/renderer/hooks/index.ts b/enjoy/src/renderer/hooks/index.ts
index 9b4ea8b9..e752f1b9 100644
--- a/enjoy/src/renderer/hooks/index.ts
+++ b/enjoy/src/renderer/hooks/index.ts
@@ -1,3 +1,10 @@
+export * from './use-recordings';
+
export * from './use-transcribe';
+export * from './use-transcriptions';
+
export * from './use-ai-command';
export * from './use-conversation';
+
+export * from './use-audio';
+export * from './use-video';
diff --git a/enjoy/src/renderer/hooks/use-audio.tsx b/enjoy/src/renderer/hooks/use-audio.tsx
new file mode 100644
index 00000000..787b6b60
--- /dev/null
+++ b/enjoy/src/renderer/hooks/use-audio.tsx
@@ -0,0 +1,43 @@
+import { useEffect, useContext, useState } from "react";
+import {
+ DbProviderContext,
+ AppSettingsProviderContext,
+} from "@renderer/context";
+import { toast } from "@renderer/components/ui";
+import { t } from "i18next";
+
+export const useAudio = (options: { id?: string; md5?: string }) => {
+ const { id, md5 } = options;
+ const { EnjoyApp } = useContext(AppSettingsProviderContext);
+ const { addDblistener, removeDbListener } = useContext(DbProviderContext);
+ const [audio, setAudio] = useState(null);
+
+ const onAudioUpdate = (event: CustomEvent) => {
+ const { model, action, record } = event.detail || {};
+ if (model !== "Audio") return;
+ if (record?.id != audio?.id) return;
+ if (action !== "update") return;
+
+ setAudio(record);
+ };
+
+ useEffect(() => {
+ const where = id ? { id } : { md5 };
+ EnjoyApp.audios.findOne(where).then((audio) => {
+ if (audio) {
+ setAudio(audio);
+ } else {
+ toast.error(t("models.audio.notFound"));
+ }
+ });
+
+ addDblistener(onAudioUpdate);
+ return () => {
+ removeDbListener(onAudioUpdate);
+ };
+ }, [id, md5]);
+
+ return {
+ audio,
+ };
+};
diff --git a/enjoy/src/renderer/hooks/use-recordings.tsx b/enjoy/src/renderer/hooks/use-recordings.tsx
new file mode 100644
index 00000000..0f5d2d99
--- /dev/null
+++ b/enjoy/src/renderer/hooks/use-recordings.tsx
@@ -0,0 +1,101 @@
+import { useState, useContext, useEffect, useRef, useReducer } from "react";
+import {
+ AppSettingsProviderContext,
+ DbProviderContext,
+} from "@renderer/context";
+import { recordingsReducer } from "@renderer/reducers";
+
+export const useRecordings = (
+ media: AudioType | VideoType,
+ referenceId: number
+) => {
+ const { EnjoyApp } = useContext(AppSettingsProviderContext);
+ const { addDblistener, removeDbListener } = useContext(DbProviderContext);
+ const [recordings, dispatchRecordings] = useReducer(recordingsReducer, []);
+ const [loading, setLoading] = useState(false);
+ const [hasMore, setHasMore] = useState(true);
+
+ const fetchRecordings = async (offset = 0) => {
+ setLoading(true);
+
+ const limit = 10;
+ EnjoyApp.recordings
+ .findAll({
+ limit,
+ offset,
+ where: {
+ targetId: media.id,
+ targetType: media.mediaType,
+ referenceId,
+ },
+ })
+ .then((_recordings) => {
+ if (_recordings.length < limit) {
+ setHasMore(false);
+ } else {
+ setHasMore(true);
+ }
+
+ dispatchRecordings({
+ type: offset === 0 ? "set" : "append",
+ records: _recordings,
+ });
+ })
+ .finally(() => {
+ setLoading(false);
+ });
+ };
+
+ const onRecordingsUpdate = (event: CustomEvent) => {
+ const { model, action, record } = event.detail || {};
+
+ if (model === "PronunciationAssessment" && action === "create") {
+ const recording = recordings.find((r) => r.id === record.targetId);
+ if (!recording) return;
+
+ recording.pronunciationAssessment = record;
+ dispatchRecordings({
+ type: "update",
+ record: recording,
+ });
+ }
+
+ if (model != "Recording") return;
+
+ if (action === "destroy") {
+ dispatchRecordings({
+ type: "destroy",
+ record,
+ });
+ } else if (action === "create") {
+ if ((record as RecordingType).targetId !== media.id) return;
+ if ((record as RecordingType).referenceId !== referenceId) return;
+
+ dispatchRecordings({
+ type: "create",
+ record,
+ });
+ }
+ };
+
+ useEffect(() => {
+ addDblistener(onRecordingsUpdate);
+
+ return () => {
+ removeDbListener(onRecordingsUpdate);
+ };
+ }, [recordings]);
+
+ useEffect(() => {
+ if (!media) return;
+
+ fetchRecordings(0);
+ }, [media, referenceId]);
+
+ return {
+ recordings,
+ hasMore,
+ fetchRecordings,
+ loading,
+ };
+};
diff --git a/enjoy/src/renderer/hooks/use-transcribe.tsx b/enjoy/src/renderer/hooks/use-transcribe.tsx
index 8f6495fc..33fda5a7 100644
--- a/enjoy/src/renderer/hooks/use-transcribe.tsx
+++ b/enjoy/src/renderer/hooks/use-transcribe.tsx
@@ -12,11 +12,10 @@ import * as sdk from "microsoft-cognitiveservices-speech-sdk";
import axios from "axios";
import take from "lodash/take";
import sortedUniqBy from "lodash/sortedUniqBy";
-import {
- groupTranscription,
- END_OF_WORD_REGEX,
- milisecondsToTimestamp,
-} from "@/utils";
+import { groupTranscription, milisecondsToTimestamp } from "@/utils";
+import { END_OF_SENTENCE_REGEX } from "@/constants";
+import { AlignmentResult } from "echogarden/dist/api/API.d.js";
+import { FFMPEG_CONVERT_WAV_OPTIONS } from "@/constants";
export const useTranscribe = () => {
const { EnjoyApp, ffmpegWasm, ffmpegValid, user, webApi } = useContext(
@@ -28,12 +27,16 @@ export const useTranscribe = () => {
if (ffmpegValid) {
if (src instanceof Blob) {
src = await EnjoyApp.cacheObjects.writeFile(
- `${Date.now()}.${src.type.split("/")[1]}`,
+ `${Date.now()}.${src.type.split("/")[1].split(";")[0]}`,
await src.arrayBuffer()
);
}
- const output = `enjoy://library/cache/${src.split("/").pop()}.wav`;
+ const output = `enjoy://library/cache/${src
+ .split("/")
+ .pop()
+ .split(";")
+ .shift()}.wav`;
await EnjoyApp.ffmpeg.transcode(src, output, options);
const data = await fetchFile(output);
return new Blob([data], { type: "audio/wav" });
@@ -45,7 +48,7 @@ export const useTranscribe = () => {
const transcodeUsingWasm = async (src: string | Blob, options?: string[]) => {
if (!ffmpegWasm?.loaded) return;
- options = options || ["-ar", "16000", "-ac", "1", "-c:a", "pcm_s16le"];
+ options = options || FFMPEG_CONVERT_WAV_OPTIONS;
try {
let uri: URL;
@@ -80,21 +83,32 @@ export const useTranscribe = () => {
): Promise<{
engine: string;
model: string;
- result: TranscriptionResultSegmentGroupType[];
+ alignmentResult: AlignmentResult;
}> => {
const blob = await transcode(mediaSrc);
+ let result;
if (whisperConfig.service === "local") {
- return transcribeByLocal(blob);
+ result = await transcribeByLocal(blob);
} else if (whisperConfig.service === "cloudflare") {
- return transcribeByCloudflareAi(blob);
+ result = await transcribeByCloudflareAi(blob);
} else if (whisperConfig.service === "openai") {
- return transcribeByOpenAi(blob);
+ result = await transcribeByOpenAi(blob);
} else if (whisperConfig.service === "azure") {
- return transcribeByAzureAi(blob, params);
+ result = await transcribeByAzureAi(blob, params);
} else {
throw new Error(t("whisperServiceNotSupported"));
}
+
+ const alignmentResult = await EnjoyApp.echogarden.align(
+ new Uint8Array(await blob.arrayBuffer()),
+ result.result.map((segment) => segment.text).join(" ")
+ );
+
+ return {
+ ...result,
+ alignmentResult,
+ };
};
const transcribeByLocal = async (blob: Blob) => {
@@ -267,7 +281,7 @@ export const useTranscribe = () => {
if (
index === best.Words.length - 1 &&
- !text.trim().match(END_OF_WORD_REGEX)
+ !text.trim().match(END_OF_SENTENCE_REGEX)
) {
text = text + ".";
}
diff --git a/enjoy/src/renderer/hooks/use-transcriptions.tsx b/enjoy/src/renderer/hooks/use-transcriptions.tsx
new file mode 100644
index 00000000..929cf18b
--- /dev/null
+++ b/enjoy/src/renderer/hooks/use-transcriptions.tsx
@@ -0,0 +1,192 @@
+import { useState, useContext, useEffect } from "react";
+import { useTranscribe } from "@renderer/hooks";
+import {
+ AISettingsProviderContext,
+ AppSettingsProviderContext,
+ DbProviderContext,
+} from "@renderer/context";
+import { toast } from "@renderer/components/ui";
+import { TimelineEntry } from "echogarden/dist/utilities/Timeline.d.js";
+import { MAGIC_TOKEN_REGEX, END_OF_SENTENCE_REGEX } from "@/constants";
+
+export const useTranscriptions = (media: AudioType | VideoType) => {
+ const { whisperConfig } = useContext(AISettingsProviderContext);
+ const { EnjoyApp, webApi } = useContext(AppSettingsProviderContext);
+ const { addDblistener, removeDbListener } = useContext(DbProviderContext);
+ const [transcription, setTranscription] = useState(null);
+ const { transcribe } = useTranscribe();
+ const [transcribingProgress, setTranscribingProgress] = useState(0);
+ const [transcribing, setTranscribing] = useState(false);
+
+ const onTransactionUpdate = (event: CustomEvent) => {
+ const { model, action, record } = event.detail || {};
+ if (
+ model === "Transcription" &&
+ record.id === transcription.id &&
+ action === "update"
+ ) {
+ setTranscription(record);
+ }
+ };
+ const findOrCreateTranscription = async () => {
+ if (!media) return;
+ if (transcription) return;
+
+ return EnjoyApp.transcriptions
+ .findOrCreate({
+ targetId: media.id,
+ targetType: media.mediaType,
+ })
+ .then((t) => {
+ if (t.result && !t.result["transcript"]) {
+ t.result = null;
+ }
+ setTranscription(t);
+ })
+ .catch((err) => {
+ toast.error(err.message);
+ });
+ };
+
+ const generateTranscription = async () => {
+ if (transcribing) return;
+ if (!transcription) {
+ await findOrCreateTranscription();
+ }
+
+ setTranscribing(true);
+ setTranscribingProgress(0);
+ try {
+ const { engine, model, alignmentResult } = await transcribe(media.src, {
+ targetId: media.id,
+ targetType: media.mediaType,
+ });
+
+ let timeline: TimelineEntry[] = [];
+ if (alignmentResult) {
+ alignmentResult.timeline.forEach((t) => {
+ if (t.type === "sentence") {
+ timeline.push(t);
+ } else {
+ t.timeline.forEach((st) => {
+ timeline.push(st);
+ });
+ }
+ });
+ }
+
+ /*
+ * Pre-process
+ * Some words end with period should not be a single sentence, like Mr./Ms./Dr. etc
+ */
+ timeline.forEach((sentence, i) => {
+ const nextSentence = timeline[i + 1];
+ if (
+ !sentence.text
+ .replaceAll(MAGIC_TOKEN_REGEX, "")
+ .match(END_OF_SENTENCE_REGEX) &&
+ nextSentence?.text
+ ) {
+ console.log(sentence.text);
+ nextSentence.text = [sentence.text, nextSentence.text].join(" ");
+ nextSentence.timeline = [
+ ...sentence.timeline,
+ ...nextSentence.timeline,
+ ];
+ nextSentence.startTime = sentence.startTime;
+ timeline.splice(i, 1);
+ }
+ });
+
+ await EnjoyApp.transcriptions.update(transcription.id, {
+ state: "finished",
+ result: {
+ timeline: timeline,
+ transcript: alignmentResult.transcript,
+ },
+ engine,
+ model,
+ });
+ } catch (err) {
+ toast.error(err.message);
+ }
+
+ setTranscribing(false);
+ };
+
+ const findTranscriptionFromWebApi = async () => {
+ if (!transcription) {
+ await findOrCreateTranscription();
+ }
+
+ const res = await webApi.transcriptions({
+ targetMd5: media.md5,
+ });
+
+ const transcript = (res?.transcriptions || []).filter((t) =>
+ ["base", "small", "medium", "large", "whisper-1"].includes(t.model)
+ )?.[0];
+
+ if (!transcript) {
+ return Promise.reject("Transcription not found");
+ }
+
+ if (!transcript.result["transcript"]) {
+ return Promise.reject("Transcription not aligned");
+ }
+
+ return EnjoyApp.transcriptions.update(transcription.id, {
+ state: "finished",
+ result: transcript.result,
+ engine: transcript.engine,
+ model: transcript.model,
+ });
+ };
+
+ const findOrGenerateTranscription = async () => {
+ try {
+ await findTranscriptionFromWebApi();
+ } catch (err) {
+ console.error(err);
+ await generateTranscription();
+ }
+ };
+
+ useEffect(() => {
+ if (!media) return;
+
+ findOrCreateTranscription();
+ }, [media]);
+
+ useEffect(() => {
+ if (!transcription) return;
+
+ addDblistener(onTransactionUpdate);
+
+ if (
+ transcription.state == "pending" ||
+ !transcription.result?.["transcript"]
+ ) {
+ findOrGenerateTranscription();
+ }
+
+ if (whisperConfig.service === "local") {
+ EnjoyApp.whisper.onProgress((_, p: number) => {
+ if (p > 100) p = 100;
+ setTranscribingProgress(p);
+ });
+ }
+
+ return () => {
+ removeDbListener(onTransactionUpdate);
+ EnjoyApp.whisper.removeProgressListeners();
+ };
+ }, [transcription, media]);
+
+ return {
+ transcription,
+ transcribingProgress,
+ transcribing,
+ generateTranscription,
+ };
+};
diff --git a/enjoy/src/renderer/hooks/use-video.tsx b/enjoy/src/renderer/hooks/use-video.tsx
new file mode 100644
index 00000000..02fb091d
--- /dev/null
+++ b/enjoy/src/renderer/hooks/use-video.tsx
@@ -0,0 +1,43 @@
+import { useEffect, useContext, useState } from "react";
+import {
+ DbProviderContext,
+ AppSettingsProviderContext,
+} from "@renderer/context";
+import { toast } from "@renderer/components/ui";
+import { t } from "i18next";
+
+export const useVideo = (options: { id?: string; md5?: string }) => {
+ const { id, md5 } = options;
+ const { EnjoyApp } = useContext(AppSettingsProviderContext);
+ const { addDblistener, removeDbListener } = useContext(DbProviderContext);
+ const [video, setVideo] = useState(null);
+
+ const onAudioUpdate = (event: CustomEvent) => {
+ const { model, action, record } = event.detail || {};
+ if (model !== "Audio") return;
+ if (record?.id != video?.id) return;
+ if (action !== "update") return;
+
+ setVideo(record);
+ };
+
+ useEffect(() => {
+ const where = id ? { id } : { md5 };
+ EnjoyApp.videos.findOne(where).then((video) => {
+ if (video) {
+ setVideo(video);
+ } else {
+ toast.error(t("models.video.notFound"));
+ }
+ });
+
+ addDblistener(onAudioUpdate);
+ return () => {
+ removeDbListener(onAudioUpdate);
+ };
+ }, [id, md5]);
+
+ return {
+ video,
+ };
+};
diff --git a/enjoy/src/renderer/lib/utils.ts b/enjoy/src/renderer/lib/utils.ts
index 0cc7697f..18ae276f 100644
--- a/enjoy/src/renderer/lib/utils.ts
+++ b/enjoy/src/renderer/lib/utils.ts
@@ -10,6 +10,7 @@ import i18next, { t } from "i18next";
dayjs.extend(localizedFormat);
dayjs.extend(duration);
dayjs.extend(relativeTime);
+import Chart from "chart.js/auto";
export function cn(...inputs: ClassValue[]) {
return twMerge(clsx(inputs));
@@ -37,7 +38,8 @@ export function formatDuration(
format = "HH:mm:ss"
) {
dayjs.locale(i18next.resolvedLanguage?.toLowerCase() || "en");
- return dayjs.duration(duration, unit).format(format);
+ const display = dayjs.duration(duration, unit).format(format);
+ return display.replace(/^00:/, "");
}
export function bytesToSize(bytes: number) {
@@ -78,3 +80,60 @@ export function formatDate(date: string | Date) {
return then.fromNow();
}
}
+
+export function renderPitchContour(options: {
+ wrapper: HTMLElement;
+ canvasId: string;
+ labels: string[];
+ datasets: Chart["data"]["datasets"];
+}) {
+ const { wrapper, datasets, labels, canvasId } = options;
+
+ const width = wrapper.getBoundingClientRect().width;
+ const height = wrapper.getBoundingClientRect().height;
+ const canvas = document.createElement("canvas");
+ canvas.id = canvasId;
+ canvas.style.position = "absolute";
+ canvas.style.width = `${width}px`;
+ canvas.style.height = `${height}px`;
+ canvas.style.top = "0";
+ canvas.style.left = "0";
+
+ wrapper.appendChild(canvas);
+
+ new Chart(canvas, {
+ type: "line",
+ data: {
+ labels,
+ datasets,
+ },
+ options: {
+ plugins: {
+ legend: {
+ display: false,
+ },
+ title: {
+ display: false,
+ },
+ },
+ scales: {
+ x: {
+ beginAtZero: true,
+ ticks: {
+ autoSkip: false,
+ },
+ display: false,
+ grid: {
+ display: false,
+ },
+ border: {
+ display: false,
+ },
+ },
+ y: {
+ display: false,
+ },
+ },
+ },
+ });
+}
diff --git a/enjoy/src/renderer/pages/audio.tsx b/enjoy/src/renderer/pages/audio.tsx
index f519e330..c66bea28 100644
--- a/enjoy/src/renderer/pages/audio.tsx
+++ b/enjoy/src/renderer/pages/audio.tsx
@@ -1,8 +1,9 @@
-import { useParams , useNavigate } from "react-router-dom";
-import { AudioDetail } from "@renderer/components";
+import { useParams, useNavigate } from "react-router-dom";
+import { AudioPlayer } from "@renderer/components";
import { Button } from "@renderer/components/ui";
import { ChevronLeftIcon } from "lucide-react";
import { t } from "i18next";
+import { MediaPlayerProvider } from "@renderer/context";
export default () => {
const navigate = useNavigate();
@@ -10,15 +11,17 @@ export default () => {
return (
<>
-
-
+
+
{t("shadowingAudio")}
-
+
+
+
>
);
diff --git a/enjoy/src/renderer/pages/conversation.tsx b/enjoy/src/renderer/pages/conversation.tsx
index 3f44d1e9..ae633957 100644
--- a/enjoy/src/renderer/pages/conversation.tsx
+++ b/enjoy/src/renderer/pages/conversation.tsx
@@ -15,6 +15,7 @@ import { t } from "i18next";
import {
DbProviderContext,
AppSettingsProviderContext,
+ MediaPlayerProvider,
} from "@renderer/context";
import { messagesReducer } from "@renderer/reducers";
import { v4 as uuidv4 } from "uuid";
@@ -249,52 +250,54 @@ export default () => {
-
-
-
- {messages.map((message) => (
-
{
- if (message.status === "error") {
- dispatchMessages({ type: "destroy", record: message });
- }
+
+
+
+
+ {messages.map((message) => (
+
{
+ if (message.status === "error") {
+ dispatchMessages({ type: "destroy", record: message });
+ }
- handleSubmit(message.content);
- }}
- onRemove={() => {
- if (message.status === "error") {
- dispatchMessages({ type: "destroy", record: message });
- } else {
- EnjoyApp.messages.destroy(message.id).catch((err) => {
- toast.error(err.message);
- });
- }
- }}
- />
- ))}
- {offset > -1 && (
-
-
-
- )}
-
-
+ handleSubmit(message.content);
+ }}
+ onRemove={() => {
+ if (message.status === "error") {
+ dispatchMessages({ type: "destroy", record: message });
+ } else {
+ EnjoyApp.messages.destroy(message.id).catch((err) => {
+ toast.error(err.message);
+ });
+ }
+ }}
+ />
+ ))}
+ {offset > -1 && (
+
+
+
+ )}
+
+
+
diff --git a/enjoy/src/renderer/pages/conversations.tsx b/enjoy/src/renderer/pages/conversations.tsx
index 57c31835..35d62df7 100644
--- a/enjoy/src/renderer/pages/conversations.tsx
+++ b/enjoy/src/renderer/pages/conversations.tsx
@@ -64,12 +64,12 @@ export default () => {
const presets = CONVERSATION_PRESETS.map((preset) =>
Object.assign({}, preset, {
- engine: currentEngine.name,
+ engine: currentEngine?.name,
configuration: {
...preset.configuration,
tts: {
...preset.configuration.tts,
- engine: currentEngine.name,
+ engine: currentEngine?.name,
},
},
})
@@ -78,7 +78,7 @@ export default () => {
const customPreset = {
key: "custom",
name: t("custom"),
- engine: currentEngine.name,
+ engine: currentEngine?.name,
configuration: {
type: "gpt",
model: "gpt-4-turbo-preview",
@@ -92,7 +92,7 @@ export default () => {
historyBufferSize: 0,
tts: {
baseUrl: "",
- engine: currentEngine.name,
+ engine: currentEngine?.name,
model: "tts-1",
voice: "alloy",
},
@@ -107,7 +107,7 @@ export default () => {
type: "tts",
tts: {
baseUrl: "",
- engine: currentEngine.name,
+ engine: currentEngine?.name,
model: "tts-1",
voice: "alloy",
},
diff --git a/enjoy/src/renderer/pages/video.tsx b/enjoy/src/renderer/pages/video.tsx
index 268e32be..ccecda0f 100644
--- a/enjoy/src/renderer/pages/video.tsx
+++ b/enjoy/src/renderer/pages/video.tsx
@@ -1,8 +1,9 @@
-import { useParams , useNavigate } from "react-router-dom";
-import { VideoDetail } from "@renderer/components";
+import { useParams, useNavigate } from "react-router-dom";
+import { VideoPlayer } from "@renderer/components";
import { Button } from "@renderer/components/ui";
import { ChevronLeftIcon } from "lucide-react";
import { t } from "i18next";
+import { MediaPlayerProvider } from "@renderer/context";
export default () => {
const navigate = useNavigate();
@@ -10,15 +11,17 @@ export default () => {
return (
<>
-
-
+
+
{t("shadowingVideo")}
-
+
+
+
>
);
diff --git a/enjoy/src/types/audio.d.ts b/enjoy/src/types/audio.d.ts
index c74ab452..675ebf6a 100644
--- a/enjoy/src/types/audio.d.ts
+++ b/enjoy/src/types/audio.d.ts
@@ -1,4 +1,5 @@
type AudioType = {
+ mediaType: string,
id: string;
source: string;
name: string;
diff --git a/enjoy/src/types/enjoy-app.d.ts b/enjoy/src/types/enjoy-app.d.ts
index 7665218b..99b78a2a 100644
--- a/enjoy/src/types/enjoy-app.d.ts
+++ b/enjoy/src/types/enjoy-app.d.ts
@@ -206,6 +206,14 @@ type EnjoyAppType = {
}
) => Promise
;
};
+ echogarden: {
+ align: (
+ input: string | Uint8Array,
+ transcript: string,
+ options?: any
+ ) => Promise;
+ check: () => Promise;
+ };
whisper: {
config: () => Promise;
check: () => Promise<{ success: boolean; log: string }>;
diff --git a/enjoy/src/types/transcription.d.ts b/enjoy/src/types/transcription.d.ts
index af9c1afe..3d382c4a 100644
--- a/enjoy/src/types/transcription.d.ts
+++ b/enjoy/src/types/transcription.d.ts
@@ -5,7 +5,7 @@ type TranscriptionType = {
state: "pending" | "processing" | "finished";
engine: string;
model: string;
- result: TranscriptionResultSegmentGroupType[];
+ result: AlignmentResult;
};
type TranscriptionResultSegmentType = {
diff --git a/enjoy/src/types/video.d.ts b/enjoy/src/types/video.d.ts
index 45f401b5..554dd90a 100644
--- a/enjoy/src/types/video.d.ts
+++ b/enjoy/src/types/video.d.ts
@@ -1,4 +1,5 @@
type VideoType = {
+ mediaType: string,
id: string;
source: string;
name: string;
diff --git a/enjoy/src/utils.ts b/enjoy/src/utils.ts
index 5bddbbf0..6bac835b 100644
--- a/enjoy/src/utils.ts
+++ b/enjoy/src/utils.ts
@@ -1,7 +1,19 @@
import Pitchfinder from "pitchfinder";
+import { END_OF_SENTENCE_REGEX, MAGIC_TOKEN_REGEX } from "./constants";
-export function generatePitch(peaks: Float32Array, sampleRate: number) {
- const detectPitch = Pitchfinder.YIN({ sampleRate });
+export const extractFrequencies = (props: {
+ peaks: Float32Array;
+ sampleRate: number;
+}): number[] => {
+ const { peaks, sampleRate } = props;
+
+ const detectPitch = Pitchfinder.AMDF({
+ sampleRate,
+ sensitivity: 0.05,
+ minFrequency: 100,
+ maxFrequency: 1000,
+ ratio: 5,
+ });
const duration = peaks.length / sampleRate;
const bpm = peaks.length / duration / 60;
@@ -10,24 +22,8 @@ export function generatePitch(peaks: Float32Array, sampleRate: number) {
quantization: bpm,
});
- // Find the baseline frequency (the value that appears most often)
- const frequencyMap: any = {};
- let maxAmount = 0;
- let baseFrequency = 0;
- frequencies.forEach((frequency) => {
- if (!frequency) return;
- const tolerance = 10;
- frequency = Math.round(frequency * tolerance) / tolerance;
- if (!frequencyMap[frequency]) frequencyMap[frequency] = 0;
- frequencyMap[frequency] += 1;
- if (frequencyMap[frequency] > maxAmount) {
- maxAmount = frequencyMap[frequency];
- baseFrequency = frequency;
- }
- });
-
- return { frequencies, baseFrequency };
-}
+ return frequencies;
+};
export function milisecondsToTimestamp(ms: number) {
const hours = Math.floor(ms / 3600000).toString();
@@ -40,8 +36,6 @@ export function milisecondsToTimestamp(ms: number) {
)}:${seconds.padStart(2, "0")},${milliseconds}`;
}
-export const MAGIC_TOKENS = ["Mrs.", "Ms.", "Mr.", "Dr.", "Prof.", "St."];
-export const END_OF_WORD_REGEX = /[^\.!,\?][\.!\?]/g;
export const groupTranscription = (
transcription: TranscriptionResultSegmentType[]
): TranscriptionResultSegmentGroupType[] => {
@@ -75,8 +69,8 @@ export const groupTranscription = (
group.push(segment);
if (
- !MAGIC_TOKENS.includes(text) &&
- segment.text.trim().match(END_OF_WORD_REGEX)
+ !text.match(MAGIC_TOKEN_REGEX) &&
+ segment.text.trim().match(END_OF_SENTENCE_REGEX)
) {
// Group a complete sentence;
groups.push(generateGroup(group));
diff --git a/enjoy/tailwind.config.js b/enjoy/tailwind.config.js
index 9cd08355..2302b9cd 100644
--- a/enjoy/tailwind.config.js
+++ b/enjoy/tailwind.config.js
@@ -70,6 +70,7 @@ module.exports = {
plugins: [
require("tailwindcss-animate"),
require("@tailwindcss/typography"),
+ require("tailwind-scrollbar"),
require("tailwind-scrollbar-hide"),
require("@vidstack/react/tailwind.cjs"),
],
diff --git a/enjoy/vite.main.config.ts b/enjoy/vite.main.config.ts
index f25af154..870b9b66 100644
--- a/enjoy/vite.main.config.ts
+++ b/enjoy/vite.main.config.ts
@@ -23,21 +23,11 @@ export default defineConfig((env) => {
formats: ["es"],
},
rollupOptions: {
- external,
- // external: [
- // "axios",
- // "child_process",
- // "crypto",
- // "fs-extra",
- // "fs",
- // "path",
- // "sequelize",
- // "umzug",
- // "sqlite3",
- // "fluent-ffmpeg",
- // "ffmpeg-static",
- // "@andrkrn/ffprobe-static",
- // ],
+ external: [...external, "echogarden/dist/api/API.js"],
+ output: {
+ strict: false,
+ },
+ plugins: [],
},
commonjsOptions: {
transformMixedEsModules: true,
diff --git a/yarn.lock b/yarn.lock
index c607e2e7..f48b0983 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -15,9 +15,9 @@ __metadata:
markdown-it-mathjax3: "npm:^4.3.2"
markdown-it-sub: "npm:^2.0.0"
markdown-it-sup: "npm:^2.0.0"
- mermaid: "npm:^10.8.0"
- sass: "npm:^1.71.1"
- vitepress: "npm:^1.0.0-rc.42"
+ mermaid: "npm:^10.9.0"
+ sass: "npm:^1.72.0"
+ vitepress: "npm:^1.0.0-rc.45"
vitepress-plugin-mermaid: "npm:^2.0.16"
vue: "npm:^3.4.21"
languageName: unknown
@@ -251,7 +251,686 @@ __metadata:
languageName: node
linkType: hard
-"@babel/code-frame@npm:^7.23.5":
+"@aws-crypto/crc32@npm:3.0.0":
+ version: 3.0.0
+ resolution: "@aws-crypto/crc32@npm:3.0.0"
+ dependencies:
+ "@aws-crypto/util": "npm:^3.0.0"
+ "@aws-sdk/types": "npm:^3.222.0"
+ tslib: "npm:^1.11.1"
+ checksum: 10c0/09189ada61a4ffe6b3bd363b0535438470a8cc1a83c89a2591ef2a0b91acb9c4ba95626557cddf856abb9df0d2bfdb0969512f1949b6db7bff5d17109d8beb3f
+ languageName: node
+ linkType: hard
+
+"@aws-crypto/ie11-detection@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "@aws-crypto/ie11-detection@npm:3.0.0"
+ dependencies:
+ tslib: "npm:^1.11.1"
+ checksum: 10c0/388891b86d816adb658175afeedaa6c4b4c70e83a7e94050d0425788da7fd5c1d675c5bd1588700e5168325bb342cc1063aa1ee4e519bc7f9b028b3998b69c53
+ languageName: node
+ linkType: hard
+
+"@aws-crypto/sha256-browser@npm:3.0.0":
+ version: 3.0.0
+ resolution: "@aws-crypto/sha256-browser@npm:3.0.0"
+ dependencies:
+ "@aws-crypto/ie11-detection": "npm:^3.0.0"
+ "@aws-crypto/sha256-js": "npm:^3.0.0"
+ "@aws-crypto/supports-web-crypto": "npm:^3.0.0"
+ "@aws-crypto/util": "npm:^3.0.0"
+ "@aws-sdk/types": "npm:^3.222.0"
+ "@aws-sdk/util-locate-window": "npm:^3.0.0"
+ "@aws-sdk/util-utf8-browser": "npm:^3.0.0"
+ tslib: "npm:^1.11.1"
+ checksum: 10c0/c6a2d6b8176f6ab34b86f7b8c81e2beeae9d41bd4f5f375b332fbe9cbb916b94adcd70676fc7a505ba5abd4232dec1ddfcfa55877f91696d4c65f166648f3026
+ languageName: node
+ linkType: hard
+
+"@aws-crypto/sha256-js@npm:3.0.0, @aws-crypto/sha256-js@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "@aws-crypto/sha256-js@npm:3.0.0"
+ dependencies:
+ "@aws-crypto/util": "npm:^3.0.0"
+ "@aws-sdk/types": "npm:^3.222.0"
+ tslib: "npm:^1.11.1"
+ checksum: 10c0/fc013b25a5813c425d4fb77c9ffbc8b5f73d2c78b423df98a1b2575a26de5ff3775c8f62fcf8ef2cc39c8af1cc651013e2c670c1a605a2e16749e06920a2d68f
+ languageName: node
+ linkType: hard
+
+"@aws-crypto/supports-web-crypto@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "@aws-crypto/supports-web-crypto@npm:3.0.0"
+ dependencies:
+ tslib: "npm:^1.11.1"
+ checksum: 10c0/67e5cbdebd9560244658ba4dd8610c8dc51022497780961fb5061c09618d4337e18b1ee6c71ac24b4aca175f2aa34d1390b95f8759dc293f197f2339dd5dd8c9
+ languageName: node
+ linkType: hard
+
+"@aws-crypto/util@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "@aws-crypto/util@npm:3.0.0"
+ dependencies:
+ "@aws-sdk/types": "npm:^3.222.0"
+ "@aws-sdk/util-utf8-browser": "npm:^3.0.0"
+ tslib: "npm:^1.11.1"
+ checksum: 10c0/71ab6963daabbf080b274e24d160e4af6c8bbb6832bb885644018849ff53356bf82bb8000b8596cf296e7d6b14ad6201872b6b902f944e97e121eb2b2f692667
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/client-polly@npm:^3.529.1":
+ version: 3.533.0
+ resolution: "@aws-sdk/client-polly@npm:3.533.0"
+ dependencies:
+ "@aws-crypto/sha256-browser": "npm:3.0.0"
+ "@aws-crypto/sha256-js": "npm:3.0.0"
+ "@aws-sdk/client-sts": "npm:3.533.0"
+ "@aws-sdk/core": "npm:3.533.0"
+ "@aws-sdk/credential-provider-node": "npm:3.533.0"
+ "@aws-sdk/middleware-host-header": "npm:3.533.0"
+ "@aws-sdk/middleware-logger": "npm:3.533.0"
+ "@aws-sdk/middleware-recursion-detection": "npm:3.533.0"
+ "@aws-sdk/middleware-user-agent": "npm:3.533.0"
+ "@aws-sdk/region-config-resolver": "npm:3.533.0"
+ "@aws-sdk/types": "npm:3.533.0"
+ "@aws-sdk/util-endpoints": "npm:3.533.0"
+ "@aws-sdk/util-user-agent-browser": "npm:3.533.0"
+ "@aws-sdk/util-user-agent-node": "npm:3.533.0"
+ "@smithy/config-resolver": "npm:^2.1.5"
+ "@smithy/core": "npm:^1.3.8"
+ "@smithy/fetch-http-handler": "npm:^2.4.5"
+ "@smithy/hash-node": "npm:^2.1.4"
+ "@smithy/invalid-dependency": "npm:^2.1.4"
+ "@smithy/middleware-content-length": "npm:^2.1.4"
+ "@smithy/middleware-endpoint": "npm:^2.4.6"
+ "@smithy/middleware-retry": "npm:^2.1.7"
+ "@smithy/middleware-serde": "npm:^2.2.1"
+ "@smithy/middleware-stack": "npm:^2.1.4"
+ "@smithy/node-config-provider": "npm:^2.2.5"
+ "@smithy/node-http-handler": "npm:^2.4.3"
+ "@smithy/protocol-http": "npm:^3.2.2"
+ "@smithy/smithy-client": "npm:^2.4.5"
+ "@smithy/types": "npm:^2.11.0"
+ "@smithy/url-parser": "npm:^2.1.4"
+ "@smithy/util-base64": "npm:^2.2.1"
+ "@smithy/util-body-length-browser": "npm:^2.1.1"
+ "@smithy/util-body-length-node": "npm:^2.2.2"
+ "@smithy/util-defaults-mode-browser": "npm:^2.1.7"
+ "@smithy/util-defaults-mode-node": "npm:^2.2.7"
+ "@smithy/util-endpoints": "npm:^1.1.5"
+ "@smithy/util-middleware": "npm:^2.1.4"
+ "@smithy/util-retry": "npm:^2.1.4"
+ "@smithy/util-stream": "npm:^2.1.5"
+ "@smithy/util-utf8": "npm:^2.2.0"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/5e50f3b39ea496887bba9edff1445457ac137a82675a175abc45148485fb584b06335caf34c0346199aa8b14a9aec4dc152a7f90e7c793bc8a23addd1f1fffdc
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/client-sso-oidc@npm:3.533.0":
+ version: 3.533.0
+ resolution: "@aws-sdk/client-sso-oidc@npm:3.533.0"
+ dependencies:
+ "@aws-crypto/sha256-browser": "npm:3.0.0"
+ "@aws-crypto/sha256-js": "npm:3.0.0"
+ "@aws-sdk/client-sts": "npm:3.533.0"
+ "@aws-sdk/core": "npm:3.533.0"
+ "@aws-sdk/middleware-host-header": "npm:3.533.0"
+ "@aws-sdk/middleware-logger": "npm:3.533.0"
+ "@aws-sdk/middleware-recursion-detection": "npm:3.533.0"
+ "@aws-sdk/middleware-user-agent": "npm:3.533.0"
+ "@aws-sdk/region-config-resolver": "npm:3.533.0"
+ "@aws-sdk/types": "npm:3.533.0"
+ "@aws-sdk/util-endpoints": "npm:3.533.0"
+ "@aws-sdk/util-user-agent-browser": "npm:3.533.0"
+ "@aws-sdk/util-user-agent-node": "npm:3.533.0"
+ "@smithy/config-resolver": "npm:^2.1.5"
+ "@smithy/core": "npm:^1.3.8"
+ "@smithy/fetch-http-handler": "npm:^2.4.5"
+ "@smithy/hash-node": "npm:^2.1.4"
+ "@smithy/invalid-dependency": "npm:^2.1.4"
+ "@smithy/middleware-content-length": "npm:^2.1.4"
+ "@smithy/middleware-endpoint": "npm:^2.4.6"
+ "@smithy/middleware-retry": "npm:^2.1.7"
+ "@smithy/middleware-serde": "npm:^2.2.1"
+ "@smithy/middleware-stack": "npm:^2.1.4"
+ "@smithy/node-config-provider": "npm:^2.2.5"
+ "@smithy/node-http-handler": "npm:^2.4.3"
+ "@smithy/protocol-http": "npm:^3.2.2"
+ "@smithy/smithy-client": "npm:^2.4.5"
+ "@smithy/types": "npm:^2.11.0"
+ "@smithy/url-parser": "npm:^2.1.4"
+ "@smithy/util-base64": "npm:^2.2.1"
+ "@smithy/util-body-length-browser": "npm:^2.1.1"
+ "@smithy/util-body-length-node": "npm:^2.2.2"
+ "@smithy/util-defaults-mode-browser": "npm:^2.1.7"
+ "@smithy/util-defaults-mode-node": "npm:^2.2.7"
+ "@smithy/util-endpoints": "npm:^1.1.5"
+ "@smithy/util-middleware": "npm:^2.1.4"
+ "@smithy/util-retry": "npm:^2.1.4"
+ "@smithy/util-utf8": "npm:^2.2.0"
+ tslib: "npm:^2.5.0"
+ peerDependencies:
+ "@aws-sdk/credential-provider-node": ^3.533.0
+ checksum: 10c0/582c770b1b77dee69b4fc63bf574ce2dc205e027a7f6f1c0da0870db2d0d79a95611500f41b360e537e3a3dc5a09a5f900c8be2bd238803e9b3e72d9b093390c
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/client-sso@npm:3.533.0":
+ version: 3.533.0
+ resolution: "@aws-sdk/client-sso@npm:3.533.0"
+ dependencies:
+ "@aws-crypto/sha256-browser": "npm:3.0.0"
+ "@aws-crypto/sha256-js": "npm:3.0.0"
+ "@aws-sdk/core": "npm:3.533.0"
+ "@aws-sdk/middleware-host-header": "npm:3.533.0"
+ "@aws-sdk/middleware-logger": "npm:3.533.0"
+ "@aws-sdk/middleware-recursion-detection": "npm:3.533.0"
+ "@aws-sdk/middleware-user-agent": "npm:3.533.0"
+ "@aws-sdk/region-config-resolver": "npm:3.533.0"
+ "@aws-sdk/types": "npm:3.533.0"
+ "@aws-sdk/util-endpoints": "npm:3.533.0"
+ "@aws-sdk/util-user-agent-browser": "npm:3.533.0"
+ "@aws-sdk/util-user-agent-node": "npm:3.533.0"
+ "@smithy/config-resolver": "npm:^2.1.5"
+ "@smithy/core": "npm:^1.3.8"
+ "@smithy/fetch-http-handler": "npm:^2.4.5"
+ "@smithy/hash-node": "npm:^2.1.4"
+ "@smithy/invalid-dependency": "npm:^2.1.4"
+ "@smithy/middleware-content-length": "npm:^2.1.4"
+ "@smithy/middleware-endpoint": "npm:^2.4.6"
+ "@smithy/middleware-retry": "npm:^2.1.7"
+ "@smithy/middleware-serde": "npm:^2.2.1"
+ "@smithy/middleware-stack": "npm:^2.1.4"
+ "@smithy/node-config-provider": "npm:^2.2.5"
+ "@smithy/node-http-handler": "npm:^2.4.3"
+ "@smithy/protocol-http": "npm:^3.2.2"
+ "@smithy/smithy-client": "npm:^2.4.5"
+ "@smithy/types": "npm:^2.11.0"
+ "@smithy/url-parser": "npm:^2.1.4"
+ "@smithy/util-base64": "npm:^2.2.1"
+ "@smithy/util-body-length-browser": "npm:^2.1.1"
+ "@smithy/util-body-length-node": "npm:^2.2.2"
+ "@smithy/util-defaults-mode-browser": "npm:^2.1.7"
+ "@smithy/util-defaults-mode-node": "npm:^2.2.7"
+ "@smithy/util-endpoints": "npm:^1.1.5"
+ "@smithy/util-middleware": "npm:^2.1.4"
+ "@smithy/util-retry": "npm:^2.1.4"
+ "@smithy/util-utf8": "npm:^2.2.0"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/9ceba18e3424c4e25e92ea030a83bd1ecbb3a6bd82c262334ad2df8d94e249482f33734ef2ecfae8274becc1bbb3ba153bcade29a837feca965e118473a87b1b
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/client-sts@npm:3.533.0":
+ version: 3.533.0
+ resolution: "@aws-sdk/client-sts@npm:3.533.0"
+ dependencies:
+ "@aws-crypto/sha256-browser": "npm:3.0.0"
+ "@aws-crypto/sha256-js": "npm:3.0.0"
+ "@aws-sdk/core": "npm:3.533.0"
+ "@aws-sdk/middleware-host-header": "npm:3.533.0"
+ "@aws-sdk/middleware-logger": "npm:3.533.0"
+ "@aws-sdk/middleware-recursion-detection": "npm:3.533.0"
+ "@aws-sdk/middleware-user-agent": "npm:3.533.0"
+ "@aws-sdk/region-config-resolver": "npm:3.533.0"
+ "@aws-sdk/types": "npm:3.533.0"
+ "@aws-sdk/util-endpoints": "npm:3.533.0"
+ "@aws-sdk/util-user-agent-browser": "npm:3.533.0"
+ "@aws-sdk/util-user-agent-node": "npm:3.533.0"
+ "@smithy/config-resolver": "npm:^2.1.5"
+ "@smithy/core": "npm:^1.3.8"
+ "@smithy/fetch-http-handler": "npm:^2.4.5"
+ "@smithy/hash-node": "npm:^2.1.4"
+ "@smithy/invalid-dependency": "npm:^2.1.4"
+ "@smithy/middleware-content-length": "npm:^2.1.4"
+ "@smithy/middleware-endpoint": "npm:^2.4.6"
+ "@smithy/middleware-retry": "npm:^2.1.7"
+ "@smithy/middleware-serde": "npm:^2.2.1"
+ "@smithy/middleware-stack": "npm:^2.1.4"
+ "@smithy/node-config-provider": "npm:^2.2.5"
+ "@smithy/node-http-handler": "npm:^2.4.3"
+ "@smithy/protocol-http": "npm:^3.2.2"
+ "@smithy/smithy-client": "npm:^2.4.5"
+ "@smithy/types": "npm:^2.11.0"
+ "@smithy/url-parser": "npm:^2.1.4"
+ "@smithy/util-base64": "npm:^2.2.1"
+ "@smithy/util-body-length-browser": "npm:^2.1.1"
+ "@smithy/util-body-length-node": "npm:^2.2.2"
+ "@smithy/util-defaults-mode-browser": "npm:^2.1.7"
+ "@smithy/util-defaults-mode-node": "npm:^2.2.7"
+ "@smithy/util-endpoints": "npm:^1.1.5"
+ "@smithy/util-middleware": "npm:^2.1.4"
+ "@smithy/util-retry": "npm:^2.1.4"
+ "@smithy/util-utf8": "npm:^2.2.0"
+ tslib: "npm:^2.5.0"
+ peerDependencies:
+ "@aws-sdk/credential-provider-node": ^3.533.0
+ checksum: 10c0/1528804ec0014fa2953eefc67b432a4affb8273d89fc8edb404594f492a1a6a5c91507a768847d6fc062ff288230c2593e06e394816466f7061ea9bdc75b7f42
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/client-transcribe-streaming@npm:^3.529.1":
+ version: 3.534.0
+ resolution: "@aws-sdk/client-transcribe-streaming@npm:3.534.0"
+ dependencies:
+ "@aws-crypto/sha256-browser": "npm:3.0.0"
+ "@aws-crypto/sha256-js": "npm:3.0.0"
+ "@aws-sdk/client-sts": "npm:3.533.0"
+ "@aws-sdk/core": "npm:3.533.0"
+ "@aws-sdk/credential-provider-node": "npm:3.533.0"
+ "@aws-sdk/eventstream-handler-node": "npm:3.533.0"
+ "@aws-sdk/middleware-eventstream": "npm:3.533.0"
+ "@aws-sdk/middleware-host-header": "npm:3.533.0"
+ "@aws-sdk/middleware-logger": "npm:3.533.0"
+ "@aws-sdk/middleware-recursion-detection": "npm:3.533.0"
+ "@aws-sdk/middleware-sdk-transcribe-streaming": "npm:3.533.0"
+ "@aws-sdk/middleware-signing": "npm:3.534.0"
+ "@aws-sdk/middleware-user-agent": "npm:3.533.0"
+ "@aws-sdk/middleware-websocket": "npm:3.534.0"
+ "@aws-sdk/region-config-resolver": "npm:3.533.0"
+ "@aws-sdk/types": "npm:3.533.0"
+ "@aws-sdk/util-endpoints": "npm:3.533.0"
+ "@aws-sdk/util-user-agent-browser": "npm:3.533.0"
+ "@aws-sdk/util-user-agent-node": "npm:3.533.0"
+ "@smithy/config-resolver": "npm:^2.1.5"
+ "@smithy/core": "npm:^1.3.8"
+ "@smithy/eventstream-serde-browser": "npm:^2.1.4"
+ "@smithy/eventstream-serde-config-resolver": "npm:^2.1.4"
+ "@smithy/eventstream-serde-node": "npm:^2.1.4"
+ "@smithy/fetch-http-handler": "npm:^2.4.5"
+ "@smithy/hash-node": "npm:^2.1.4"
+ "@smithy/invalid-dependency": "npm:^2.1.4"
+ "@smithy/middleware-content-length": "npm:^2.1.4"
+ "@smithy/middleware-endpoint": "npm:^2.4.6"
+ "@smithy/middleware-retry": "npm:^2.1.7"
+ "@smithy/middleware-serde": "npm:^2.2.1"
+ "@smithy/middleware-stack": "npm:^2.1.4"
+ "@smithy/node-config-provider": "npm:^2.2.5"
+ "@smithy/node-http-handler": "npm:^2.4.3"
+ "@smithy/protocol-http": "npm:^3.2.2"
+ "@smithy/smithy-client": "npm:^2.4.5"
+ "@smithy/types": "npm:^2.11.0"
+ "@smithy/url-parser": "npm:^2.1.4"
+ "@smithy/util-base64": "npm:^2.2.1"
+ "@smithy/util-body-length-browser": "npm:^2.1.1"
+ "@smithy/util-body-length-node": "npm:^2.2.2"
+ "@smithy/util-defaults-mode-browser": "npm:^2.1.7"
+ "@smithy/util-defaults-mode-node": "npm:^2.2.7"
+ "@smithy/util-endpoints": "npm:^1.1.5"
+ "@smithy/util-retry": "npm:^2.1.4"
+ "@smithy/util-utf8": "npm:^2.2.0"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/2757c30d1a02e4d4e87fd84cc3d8a122a5c5f8848a9e4a7cf999f6f9e93a52db7d96abbcccb97ae57a15c73f058ae2a16f710641ec1a3adda327d764f2b095dc
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/core@npm:3.533.0":
+ version: 3.533.0
+ resolution: "@aws-sdk/core@npm:3.533.0"
+ dependencies:
+ "@smithy/core": "npm:^1.3.8"
+ "@smithy/protocol-http": "npm:^3.2.2"
+ "@smithy/signature-v4": "npm:^2.1.4"
+ "@smithy/smithy-client": "npm:^2.4.5"
+ "@smithy/types": "npm:^2.11.0"
+ fast-xml-parser: "npm:4.2.5"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/727b1cfe949b2c6315bdb1808e31a091b35f6bcfbe72985450f745e18aa83221d7cb9f823b65af0314ac0e5a34f165a649bd6077c6016814abe86e6e55dc9d7e
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/credential-provider-env@npm:3.533.0":
+ version: 3.533.0
+ resolution: "@aws-sdk/credential-provider-env@npm:3.533.0"
+ dependencies:
+ "@aws-sdk/types": "npm:3.533.0"
+ "@smithy/property-provider": "npm:^2.1.4"
+ "@smithy/types": "npm:^2.11.0"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/6b5a7adae44c562403290954967fb0d670184a6f07d7dc1da907d2dec01ca3341cb1f15de6b8717ed3092c2f41fc5199082a2a545b3f9349c5a25bde5e9bb90f
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/credential-provider-http@npm:3.533.0":
+ version: 3.533.0
+ resolution: "@aws-sdk/credential-provider-http@npm:3.533.0"
+ dependencies:
+ "@aws-sdk/types": "npm:3.533.0"
+ "@smithy/fetch-http-handler": "npm:^2.4.5"
+ "@smithy/node-http-handler": "npm:^2.4.3"
+ "@smithy/property-provider": "npm:^2.1.4"
+ "@smithy/protocol-http": "npm:^3.2.2"
+ "@smithy/smithy-client": "npm:^2.4.5"
+ "@smithy/types": "npm:^2.11.0"
+ "@smithy/util-stream": "npm:^2.1.5"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/ff11df866e5e24b09579d46670eea8361f5d2a6e370b9cf99fac3280aae5689d83ae308b7eaaceca78c7e2f77d63443d9674bd1035d453d9f8c815ffd407028c
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/credential-provider-ini@npm:3.533.0":
+ version: 3.533.0
+ resolution: "@aws-sdk/credential-provider-ini@npm:3.533.0"
+ dependencies:
+ "@aws-sdk/client-sts": "npm:3.533.0"
+ "@aws-sdk/credential-provider-env": "npm:3.533.0"
+ "@aws-sdk/credential-provider-process": "npm:3.533.0"
+ "@aws-sdk/credential-provider-sso": "npm:3.533.0"
+ "@aws-sdk/credential-provider-web-identity": "npm:3.533.0"
+ "@aws-sdk/types": "npm:3.533.0"
+ "@smithy/credential-provider-imds": "npm:^2.2.6"
+ "@smithy/property-provider": "npm:^2.1.4"
+ "@smithy/shared-ini-file-loader": "npm:^2.3.5"
+ "@smithy/types": "npm:^2.11.0"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/4f6233f8fe211f2737c68d778e9402921d1e046152b8501288b1c5594caa7e4728336f74a5ca2e2f073c06f6e2847b03aaf3277d1f4e5ec1f39c3f10dd8b9fa4
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/credential-provider-node@npm:3.533.0":
+ version: 3.533.0
+ resolution: "@aws-sdk/credential-provider-node@npm:3.533.0"
+ dependencies:
+ "@aws-sdk/credential-provider-env": "npm:3.533.0"
+ "@aws-sdk/credential-provider-http": "npm:3.533.0"
+ "@aws-sdk/credential-provider-ini": "npm:3.533.0"
+ "@aws-sdk/credential-provider-process": "npm:3.533.0"
+ "@aws-sdk/credential-provider-sso": "npm:3.533.0"
+ "@aws-sdk/credential-provider-web-identity": "npm:3.533.0"
+ "@aws-sdk/types": "npm:3.533.0"
+ "@smithy/credential-provider-imds": "npm:^2.2.6"
+ "@smithy/property-provider": "npm:^2.1.4"
+ "@smithy/shared-ini-file-loader": "npm:^2.3.5"
+ "@smithy/types": "npm:^2.11.0"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/81d548855f1072073e607d7646b0c268d2c27fa2c909c237e8f580ed4e43e358f14a5d5ebe9fa3d02b4a1b657d830e7769ccd5cf46e5d9ecaead81b04fdf266e
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/credential-provider-process@npm:3.533.0":
+ version: 3.533.0
+ resolution: "@aws-sdk/credential-provider-process@npm:3.533.0"
+ dependencies:
+ "@aws-sdk/types": "npm:3.533.0"
+ "@smithy/property-provider": "npm:^2.1.4"
+ "@smithy/shared-ini-file-loader": "npm:^2.3.5"
+ "@smithy/types": "npm:^2.11.0"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/3049d1c957a2d16475cde435089f5053e1a12af7a8eb203dde6542a0149cd685d6bf0261420b369bd62bc8726184734af8457214a6f00be48b7fc04764ee68f3
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/credential-provider-sso@npm:3.533.0":
+ version: 3.533.0
+ resolution: "@aws-sdk/credential-provider-sso@npm:3.533.0"
+ dependencies:
+ "@aws-sdk/client-sso": "npm:3.533.0"
+ "@aws-sdk/token-providers": "npm:3.533.0"
+ "@aws-sdk/types": "npm:3.533.0"
+ "@smithy/property-provider": "npm:^2.1.4"
+ "@smithy/shared-ini-file-loader": "npm:^2.3.5"
+ "@smithy/types": "npm:^2.11.0"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/72edbf91eee9bec966c2b25882a7261436693661d629e16919b563d6d36269ec1709914280d5c65f783224e016316068a412e8c554e8b1af66bfd9a9293b623a
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/credential-provider-web-identity@npm:3.533.0":
+ version: 3.533.0
+ resolution: "@aws-sdk/credential-provider-web-identity@npm:3.533.0"
+ dependencies:
+ "@aws-sdk/client-sts": "npm:3.533.0"
+ "@aws-sdk/types": "npm:3.533.0"
+ "@smithy/property-provider": "npm:^2.1.4"
+ "@smithy/types": "npm:^2.11.0"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/24845f7c8abaa910dc8e28d2c1836774a0eff422726821fc9d728bebe5aac5b248ac0daacd42453af7e71902ce8de5587bf131a73f3833881fe38d9d8a1638d5
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/eventstream-handler-node@npm:3.533.0":
+ version: 3.533.0
+ resolution: "@aws-sdk/eventstream-handler-node@npm:3.533.0"
+ dependencies:
+ "@aws-sdk/types": "npm:3.533.0"
+ "@smithy/eventstream-codec": "npm:^2.1.4"
+ "@smithy/types": "npm:^2.11.0"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/39fd2ba4a74a8a3363d5825b1c446eca89025480e6ca643188f9fe3b1b805d40839512df4da8af512de52ab51b4dfc3c1adfc54ddcd1eecfcfb123a7ab0ef014
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/middleware-eventstream@npm:3.533.0":
+ version: 3.533.0
+ resolution: "@aws-sdk/middleware-eventstream@npm:3.533.0"
+ dependencies:
+ "@aws-sdk/types": "npm:3.533.0"
+ "@smithy/protocol-http": "npm:^3.2.2"
+ "@smithy/types": "npm:^2.11.0"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/cee3f88a4d698e81871cee769a8e28c13635c4959cadfc351a0907b63eebfb3bad73cfbbc22fcbac413b0d06b2fe74400ff8b4dde46f245158e4214736ff8e39
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/middleware-host-header@npm:3.533.0":
+ version: 3.533.0
+ resolution: "@aws-sdk/middleware-host-header@npm:3.533.0"
+ dependencies:
+ "@aws-sdk/types": "npm:3.533.0"
+ "@smithy/protocol-http": "npm:^3.2.2"
+ "@smithy/types": "npm:^2.11.0"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/fee444f858a43b495782531d317b4281be71ec9349aa098eda85ecdbce7dd1f6e994d09fdd05c18fad83e78e0090aadd8497c087068a15025e6c2e5eadb5d9f7
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/middleware-logger@npm:3.533.0":
+ version: 3.533.0
+ resolution: "@aws-sdk/middleware-logger@npm:3.533.0"
+ dependencies:
+ "@aws-sdk/types": "npm:3.533.0"
+ "@smithy/types": "npm:^2.11.0"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/7634b3188832724bd1b8a2043c019ccb79f2403ecded3aaf007d398c8bef3bdc4746de708809bfbe50fb04621440251665e39cf4a51fb882fcdb2f25a6ed4948
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/middleware-recursion-detection@npm:3.533.0":
+ version: 3.533.0
+ resolution: "@aws-sdk/middleware-recursion-detection@npm:3.533.0"
+ dependencies:
+ "@aws-sdk/types": "npm:3.533.0"
+ "@smithy/protocol-http": "npm:^3.2.2"
+ "@smithy/types": "npm:^2.11.0"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/c0724231b2ddf4dbf3a4da884755b4388bb6d0bfa62fd62ef80316b818c8eadca9d0184da8ea507814927d8cab835877c4ac018ab7f4ef2bdd1aac5dd5a5e105
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/middleware-sdk-transcribe-streaming@npm:3.533.0":
+ version: 3.533.0
+ resolution: "@aws-sdk/middleware-sdk-transcribe-streaming@npm:3.533.0"
+ dependencies:
+ "@aws-sdk/types": "npm:3.533.0"
+ "@aws-sdk/util-format-url": "npm:3.533.0"
+ "@smithy/eventstream-serde-browser": "npm:^2.1.4"
+ "@smithy/protocol-http": "npm:^3.2.2"
+ "@smithy/signature-v4": "npm:^2.1.4"
+ "@smithy/types": "npm:^2.11.0"
+ tslib: "npm:^2.5.0"
+ uuid: "npm:^9.0.1"
+ checksum: 10c0/39babe53636a7fac448625550a501026d45b78641fefdf53d19a7adfb59fa78c618eca8da3682cdd7b96a20906fee20869320f6b8433515a0e97ec907ab3ea2a
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/middleware-signing@npm:3.534.0":
+ version: 3.534.0
+ resolution: "@aws-sdk/middleware-signing@npm:3.534.0"
+ dependencies:
+ "@aws-sdk/types": "npm:3.533.0"
+ "@smithy/property-provider": "npm:^2.1.4"
+ "@smithy/protocol-http": "npm:^3.2.2"
+ "@smithy/signature-v4": "npm:^2.1.4"
+ "@smithy/types": "npm:^2.11.0"
+ "@smithy/util-middleware": "npm:^2.1.4"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/1a246963948e98daa89a60012f82eb77d61c3efd7502e294e5f9f91c62d09ce8b35277acd0e5777f04aeef9da5937d0835f42815a9daec608b8507562ebecebb
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/middleware-user-agent@npm:3.533.0":
+ version: 3.533.0
+ resolution: "@aws-sdk/middleware-user-agent@npm:3.533.0"
+ dependencies:
+ "@aws-sdk/types": "npm:3.533.0"
+ "@aws-sdk/util-endpoints": "npm:3.533.0"
+ "@smithy/protocol-http": "npm:^3.2.2"
+ "@smithy/types": "npm:^2.11.0"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/36eda326fb96e5727d46e3480bec3d9563f83a18cce0c06c5a94da1829c504e54f62505be9c5445c71f550ac4a2a7117660735246cce3d6dd12802097a2038f5
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/middleware-websocket@npm:3.534.0":
+ version: 3.534.0
+ resolution: "@aws-sdk/middleware-websocket@npm:3.534.0"
+ dependencies:
+ "@aws-sdk/middleware-signing": "npm:3.534.0"
+ "@aws-sdk/types": "npm:3.533.0"
+ "@aws-sdk/util-format-url": "npm:3.533.0"
+ "@smithy/eventstream-codec": "npm:^2.1.4"
+ "@smithy/eventstream-serde-browser": "npm:^2.1.4"
+ "@smithy/fetch-http-handler": "npm:^2.4.5"
+ "@smithy/protocol-http": "npm:^3.2.2"
+ "@smithy/signature-v4": "npm:^2.1.4"
+ "@smithy/types": "npm:^2.11.0"
+ "@smithy/util-hex-encoding": "npm:^2.1.1"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/8505ce153b5e8a572f4c7c767341d7ae5dd766cc6234e81897464433f0ec80c0e8fdca897f18259a6950897d62c2ff2770df62ea5c9accd1051c157ff4b5f1f9
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/region-config-resolver@npm:3.533.0":
+ version: 3.533.0
+ resolution: "@aws-sdk/region-config-resolver@npm:3.533.0"
+ dependencies:
+ "@aws-sdk/types": "npm:3.533.0"
+ "@smithy/node-config-provider": "npm:^2.2.5"
+ "@smithy/types": "npm:^2.11.0"
+ "@smithy/util-config-provider": "npm:^2.2.1"
+ "@smithy/util-middleware": "npm:^2.1.4"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/901113f946782beb71030a76d77e8881b3128b0ae8f08fbceea84ae23ba6cb955234de0eb0f21be6e7909020c872399816cbfd58e4bc98a0e17a732ad1f36f03
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/token-providers@npm:3.533.0":
+ version: 3.533.0
+ resolution: "@aws-sdk/token-providers@npm:3.533.0"
+ dependencies:
+ "@aws-sdk/client-sso-oidc": "npm:3.533.0"
+ "@aws-sdk/types": "npm:3.533.0"
+ "@smithy/property-provider": "npm:^2.1.4"
+ "@smithy/shared-ini-file-loader": "npm:^2.3.5"
+ "@smithy/types": "npm:^2.11.0"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/30a9b03b6510be861624276dd8a3554e54c7668144e22a6791ab0bd3014af677071c95eaa175e994d85e7c19377b3fefd0a0b002e069b356eb1bad943e4edc06
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/types@npm:3.533.0":
+ version: 3.533.0
+ resolution: "@aws-sdk/types@npm:3.533.0"
+ dependencies:
+ "@smithy/types": "npm:^2.11.0"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/ac1589df82e9219bcc664369c770f0c3016c70a78af116bbc01d0bdcf5ed91c16e60df2953578329cb67aef348529b138f90e5128c298c581c68bced1a839f0e
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/types@npm:^3.222.0":
+ version: 3.523.0
+ resolution: "@aws-sdk/types@npm:3.523.0"
+ dependencies:
+ "@smithy/types": "npm:^2.10.1"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/174bf2fcc463235f94087fabdadfc534d72b2741f54860c3ae56fe40bb340a5e4581c92ac36bfec73a0b9b92fbcbc4b3ca0db09f19f67d24ee823a3140c280e2
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/util-endpoints@npm:3.533.0":
+ version: 3.533.0
+ resolution: "@aws-sdk/util-endpoints@npm:3.533.0"
+ dependencies:
+ "@aws-sdk/types": "npm:3.533.0"
+ "@smithy/types": "npm:^2.11.0"
+ "@smithy/util-endpoints": "npm:^1.1.5"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/000b2094b3b009944ce72f4f7f8cde77eee682403941d66ab9885fe0676c6527b02f554e90493ca63aa4f6b49f0d7f08d90eff9b2896c2cc4a574b8bbd3278d0
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/util-format-url@npm:3.533.0":
+ version: 3.533.0
+ resolution: "@aws-sdk/util-format-url@npm:3.533.0"
+ dependencies:
+ "@aws-sdk/types": "npm:3.533.0"
+ "@smithy/querystring-builder": "npm:^2.1.4"
+ "@smithy/types": "npm:^2.11.0"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/233eb9e7371b9f1425e3dfd85c8fecd7128295f3d383e174212565aeee2c63a0f59b77d2cef792bc9bdd927349c307b29f121e495e03aa96ca53d0b56675414f
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/util-locate-window@npm:^3.0.0":
+ version: 3.495.0
+ resolution: "@aws-sdk/util-locate-window@npm:3.495.0"
+ dependencies:
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/e1d33f519016dd3bb92ebdc192a49863c8a4bf5f8c5972c2518a600ecf8b3fc62c2271d79b6e91a42000c59fc9eee74aa2cf184268cd52048ce0a31af5e7117b
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/util-user-agent-browser@npm:3.533.0":
+ version: 3.533.0
+ resolution: "@aws-sdk/util-user-agent-browser@npm:3.533.0"
+ dependencies:
+ "@aws-sdk/types": "npm:3.533.0"
+ "@smithy/types": "npm:^2.11.0"
+ bowser: "npm:^2.11.0"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/3c4aabd5a1d8c7832ee2c6fdfa48584917401115883ea1e53448d7761dc8fd17d6cf5e46e0ff1a7b54d05bebe2391053c476873147aebdd746cab5cb91718207
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/util-user-agent-node@npm:3.533.0":
+ version: 3.533.0
+ resolution: "@aws-sdk/util-user-agent-node@npm:3.533.0"
+ dependencies:
+ "@aws-sdk/types": "npm:3.533.0"
+ "@smithy/node-config-provider": "npm:^2.2.5"
+ "@smithy/types": "npm:^2.11.0"
+ tslib: "npm:^2.5.0"
+ peerDependencies:
+ aws-crt: ">=1.0.0"
+ peerDependenciesMeta:
+ aws-crt:
+ optional: true
+ checksum: 10c0/91752157d17405f29e0e34500757a10cb65ed494dbc934bd8d9e66703c02b552d79b336b130d757877485a352f1ad3828971f9686714eaa2a45bb7cfc31726e2
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/util-utf8-browser@npm:^3.0.0":
+ version: 3.259.0
+ resolution: "@aws-sdk/util-utf8-browser@npm:3.259.0"
+ dependencies:
+ tslib: "npm:^2.3.1"
+ checksum: 10c0/ff56ff252c0ea22b760b909ba5bbe9ca59a447066097e73b1e2ae50a6d366631ba560c373ec4e83b3e225d16238eeaf8def210fdbf135070b3dd3ceb1cc2ef9a
+ languageName: node
+ linkType: hard
+
+"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.23.5":
version: 7.23.5
resolution: "@babel/code-frame@npm:7.23.5"
dependencies:
@@ -585,6 +1264,76 @@ __metadata:
languageName: node
linkType: hard
+"@echogarden/espeak-ng-emscripten@npm:^0.1.2":
+ version: 0.1.2
+ resolution: "@echogarden/espeak-ng-emscripten@npm:0.1.2"
+ checksum: 10c0/7b0b8b3834222879e5c971ec352569de96919a32561670c5c252ea6f8d9ce4fdf07ac3424321556c628ede6c083d6c384315264732ed0289bca07c1d848b026f
+ languageName: node
+ linkType: hard
+
+"@echogarden/fasttext-wasm@npm:^0.1.0":
+ version: 0.1.0
+ resolution: "@echogarden/fasttext-wasm@npm:0.1.0"
+ checksum: 10c0/e9bf9e6845f66314cd528d739d9af9a640029a491a763c10064d07faf47dd447fd32890c11a7f4b84abb659ea854cce4ee58907cc284e917580a320031b7ae05
+ languageName: node
+ linkType: hard
+
+"@echogarden/flite-wasi@npm:^0.1.1":
+ version: 0.1.1
+ resolution: "@echogarden/flite-wasi@npm:0.1.1"
+ checksum: 10c0/aae1a4a46cf5fa3ef49e3329fb60df1ab521d38f477f7b92360de863072e6c60f58c9dff5916acca51510b4edc995bbb5b84a9c4c8d9a3cedb80ea1e33f56e21
+ languageName: node
+ linkType: hard
+
+"@echogarden/fvad-wasm@npm:^0.1.2":
+ version: 0.1.2
+ resolution: "@echogarden/fvad-wasm@npm:0.1.2"
+ checksum: 10c0/e5ebd0c8bddd19f26cb4862f86fffa842f941c969ffb7da726c936fc338e2cb317ef99039fe7c5472ac370af909618ad08139b8b95dce8b07993de432b86d56a
+ languageName: node
+ linkType: hard
+
+"@echogarden/kissfft-wasm@npm:^0.1.1":
+ version: 0.1.1
+ resolution: "@echogarden/kissfft-wasm@npm:0.1.1"
+ checksum: 10c0/3c034ebb6f64f1551ec70314ca373aec5c4907cc36f6efa9aa62d759840acbf471c50f697b71f910adcf5fab09cf3d918405a76e78d7ba94ffae9baf885c780e
+ languageName: node
+ linkType: hard
+
+"@echogarden/rnnoise-wasm@npm:^0.1.1":
+ version: 0.1.1
+ resolution: "@echogarden/rnnoise-wasm@npm:0.1.1"
+ checksum: 10c0/806e51f68836d10319b40bd82dd24b02acc340c6b60b4bcd9609d8f480cd233a76c14a40a135cabb45c530c0187afb61a1ad6b8709c50de4559ec2136d45097f
+ languageName: node
+ linkType: hard
+
+"@echogarden/rubberband-wasm@npm:^0.1.1":
+ version: 0.1.1
+ resolution: "@echogarden/rubberband-wasm@npm:0.1.1"
+ checksum: 10c0/4d254c511f65bfb425aaedebb59de174938bbbde5b8c64e758bc6b633e0a9764cbd6091e077e38d4e5bf8b462785b7ed769786e44c285543d0bd87f9b7ab6376
+ languageName: node
+ linkType: hard
+
+"@echogarden/sonic-wasm@npm:^0.1.1":
+ version: 0.1.1
+ resolution: "@echogarden/sonic-wasm@npm:0.1.1"
+ checksum: 10c0/74872334ee730e03d21191d2e38aba4516a4ebe49380f4d2baf0da62d7d23a89d08839d2096de8b0bac548199c285d895466e51e83d24b841c4f8f08a52a6594
+ languageName: node
+ linkType: hard
+
+"@echogarden/speex-resampler-wasm@npm:^0.1.1":
+ version: 0.1.1
+ resolution: "@echogarden/speex-resampler-wasm@npm:0.1.1"
+ checksum: 10c0/f210506b865a5ed42dba6bdeaa5360ee591424a4007bf1c2f0a845ae78cec4fe0068ccf78c895f0f5cbf63778b3cccde2d21dc01bf51e83dd1e7a7ca963c26d9
+ languageName: node
+ linkType: hard
+
+"@echogarden/svoxpico-wasm@npm:^0.1.0":
+ version: 0.1.0
+ resolution: "@echogarden/svoxpico-wasm@npm:0.1.0"
+ checksum: 10c0/1a787402601146ab175359831feff3dde22ec17771303a75103d157b04a2a323172681306e2bf4edb7b2b8626db52683d28202779332e48be6df178b95772d32
+ languageName: node
+ linkType: hard
+
"@electron-forge/cli@npm:^7.3.0":
version: 7.3.0
resolution: "@electron-forge/cli@npm:7.3.0"
@@ -1466,12 +2215,19 @@ __metadata:
languageName: node
linkType: hard
-"@langchain/community@npm:^0.0.34, @langchain/community@npm:~0.0.33":
- version: 0.0.34
- resolution: "@langchain/community@npm:0.0.34"
+"@kurkle/color@npm:^0.3.0":
+ version: 0.3.2
+ resolution: "@kurkle/color@npm:0.3.2"
+ checksum: 10c0/a9e8e3e35dcd59dec4dd4f0105919c05e24823a96347bcf152965c29e48d6290b66d5fb96c071875db752e10930724c48ce6d338fefbd65e0ce5082d5c78970e
+ languageName: node
+ linkType: hard
+
+"@langchain/community@npm:^0.0.39, @langchain/community@npm:~0.0.36":
+ version: 0.0.39
+ resolution: "@langchain/community@npm:0.0.39"
dependencies:
- "@langchain/core": "npm:~0.1.36"
- "@langchain/openai": "npm:~0.0.14"
+ "@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"
@@ -1540,6 +2296,7 @@ __metadata:
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
@@ -1688,6 +2445,8 @@ __metadata:
optional: true
jsdom:
optional: true
+ jsonwebtoken:
+ optional: true
llmonitor:
optional: true
lodash:
@@ -1730,11 +2489,30 @@ __metadata:
optional: true
ws:
optional: true
- checksum: 10c0/d8c16c8108fbc713729733bd74499ab242ca2f0e765f8b57b9fff09720ffd2a0971b7a0ac013c1312469f1381ddc5eceb4b020db2ad9258b0b1df889d76f1c51
+ checksum: 10c0/a12ff244612538ab34bfe085cee66f7b27a750a51e9374b11999e3053e78b7cd9dfb9884b9073fca567bdb24214fb23f8c2d22d4bf5ce599e829ddbd49db6f93
languageName: node
linkType: hard
-"@langchain/core@npm:~0.1.36, @langchain/core@npm:~0.1.39, @langchain/core@npm:~0.1.5":
+"@langchain/core@npm:~0.1.44, @langchain/core@npm:~0.1.45":
+ version: 0.1.47
+ resolution: "@langchain/core@npm:0.1.47"
+ dependencies:
+ ansi-styles: "npm:^5.0.0"
+ camelcase: "npm:6"
+ decamelize: "npm:1.2.0"
+ js-tiktoken: "npm:^1.0.8"
+ langsmith: "npm:~0.1.7"
+ ml-distance: "npm:^4.0.0"
+ p-queue: "npm:^6.6.2"
+ p-retry: "npm:4"
+ uuid: "npm:^9.0.0"
+ zod: "npm:^3.22.4"
+ zod-to-json-schema: "npm:^3.22.3"
+ checksum: 10c0/12c13594fffa0c99f05f7e716d324f3c056c0db3616a86e8be7e04d55235dc7a2c114bd4eabad292d461a01cc6d8c2bbf6f2bf79ba1cb767d59dd5f30a28657e
+ languageName: node
+ linkType: hard
+
+"@langchain/core@npm:~0.1.5":
version: 0.1.40
resolution: "@langchain/core@npm:0.1.40"
dependencies:
@@ -1763,16 +2541,16 @@ __metadata:
languageName: node
linkType: hard
-"@langchain/openai@npm:~0.0.14":
- version: 0.0.15
- resolution: "@langchain/openai@npm:0.0.15"
+"@langchain/openai@npm:~0.0.19":
+ version: 0.0.20
+ resolution: "@langchain/openai@npm:0.0.20"
dependencies:
- "@langchain/core": "npm:~0.1.39"
+ "@langchain/core": "npm:~0.1.45"
js-tiktoken: "npm:^1.0.7"
openai: "npm:^4.26.0"
zod: "npm:^3.22.4"
zod-to-json-schema: "npm:^3.22.3"
- checksum: 10c0/4fc0ab0cd3da922d38e4b73e662af0757d87db5f9b44c2650fd771a6f988d8f1b6c6048db6aa56640f450a13da1d4533ae95a046d7def41cc32cf20e6408bbd7
+ checksum: 10c0/8e25d0da2fd80b6e80ffc54e0d3b640157acdee25974f95226e1d6db7d72bd5fe7c8e7e6828f5b2e93e302efc1e2d0ec880e57d86fad52a77bc7ecaceb2068f4
languageName: node
linkType: hard
@@ -3446,10 +4224,10 @@ __metadata:
languageName: node
linkType: hard
-"@remix-run/router@npm:1.15.2":
- version: 1.15.2
- resolution: "@remix-run/router@npm:1.15.2"
- checksum: 10c0/7bcad98a91e8a2e822f3776360d284bee48f9ba2d3b7ee2235f95b8701da2f06de3db880a205c4fd4e78c9198eaf6272229a2e66574a8cf563befd428fdefeee
+"@remix-run/router@npm:1.15.3":
+ version: 1.15.3
+ resolution: "@remix-run/router@npm:1.15.3"
+ checksum: 10c0/aea197447cee21e137d70f0c93e00de70c64fcfae20ae349ade9dc4202e782bd94dbc88be7302d13b6aa6cde38a701b074cd8e09a161d14cecda832a36dd2695
languageName: node
linkType: hard
@@ -3623,6 +4401,749 @@ __metadata:
languageName: node
linkType: hard
+"@smithy/abort-controller@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "@smithy/abort-controller@npm:2.2.0"
+ dependencies:
+ "@smithy/types": "npm:^2.12.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/87bf79591d2b2b289dadf2ed04f082232b44e39bd92c188bae5fe3d11cdc4e4d54f0962a7865c159f4c7f914b8d093fe2744f5ab9de07a0b4cc13f9da4a6cf48
+ languageName: node
+ linkType: hard
+
+"@smithy/config-resolver@npm:^2.1.5":
+ version: 2.1.5
+ resolution: "@smithy/config-resolver@npm:2.1.5"
+ dependencies:
+ "@smithy/node-config-provider": "npm:^2.2.5"
+ "@smithy/types": "npm:^2.11.0"
+ "@smithy/util-config-provider": "npm:^2.2.1"
+ "@smithy/util-middleware": "npm:^2.1.4"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/ca0a6f06e3c21b26bdad4d221c03a648e39b76636b8fcf952ab2453c661d5cff7dacd7126480d587df5ba46261859f22ab5152a6b3af4dc1ab14de761eac9816
+ languageName: node
+ linkType: hard
+
+"@smithy/config-resolver@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "@smithy/config-resolver@npm:2.2.0"
+ dependencies:
+ "@smithy/node-config-provider": "npm:^2.3.0"
+ "@smithy/types": "npm:^2.12.0"
+ "@smithy/util-config-provider": "npm:^2.3.0"
+ "@smithy/util-middleware": "npm:^2.2.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/977c3bd383b72e0ab25238515fddfd9138855b7c24247e19c5d1490b6a61234bd737956f770539508d7f4c07a54efb917923e5642abf15c1803df43fe5079859
+ languageName: node
+ linkType: hard
+
+"@smithy/core@npm:^1.3.8":
+ version: 1.4.0
+ resolution: "@smithy/core@npm:1.4.0"
+ dependencies:
+ "@smithy/middleware-endpoint": "npm:^2.5.0"
+ "@smithy/middleware-retry": "npm:^2.2.0"
+ "@smithy/middleware-serde": "npm:^2.3.0"
+ "@smithy/protocol-http": "npm:^3.3.0"
+ "@smithy/smithy-client": "npm:^2.5.0"
+ "@smithy/types": "npm:^2.12.0"
+ "@smithy/util-middleware": "npm:^2.2.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/a5ece1a4751be0778754cdff7484fd8930068c1ea858c696836ecd9c60fdd7944aef27590d35b95f6a4c499427c7b653ffddc452ad3ee6f8906e2a57e06e39ad
+ languageName: node
+ linkType: hard
+
+"@smithy/credential-provider-imds@npm:^2.2.6":
+ version: 2.2.6
+ resolution: "@smithy/credential-provider-imds@npm:2.2.6"
+ dependencies:
+ "@smithy/node-config-provider": "npm:^2.2.5"
+ "@smithy/property-provider": "npm:^2.1.4"
+ "@smithy/types": "npm:^2.11.0"
+ "@smithy/url-parser": "npm:^2.1.4"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/42d0302bdd896e30ade857db4e88a7c88893f7eb76f3c41bd997653fcb585aad32262906a740fff98bc1574c7c43aa1ade263e7587d601dd5532c18414233569
+ languageName: node
+ linkType: hard
+
+"@smithy/credential-provider-imds@npm:^2.3.0":
+ version: 2.3.0
+ resolution: "@smithy/credential-provider-imds@npm:2.3.0"
+ dependencies:
+ "@smithy/node-config-provider": "npm:^2.3.0"
+ "@smithy/property-provider": "npm:^2.2.0"
+ "@smithy/types": "npm:^2.12.0"
+ "@smithy/url-parser": "npm:^2.2.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/62d0416c667349ad493fe27eab9fb3dc8b67d87d6e20d25a02034234e0a2a5da6e7c02341bbfa055c92a0ad170aa6ab9191aa0dc728ad57c87da3f45236fc2c2
+ languageName: node
+ linkType: hard
+
+"@smithy/eventstream-codec@npm:^2.1.4":
+ version: 2.1.4
+ resolution: "@smithy/eventstream-codec@npm:2.1.4"
+ dependencies:
+ "@aws-crypto/crc32": "npm:3.0.0"
+ "@smithy/types": "npm:^2.11.0"
+ "@smithy/util-hex-encoding": "npm:^2.1.1"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/7e051c2171215ee8da49b39217f969542181be431650c5dc758be476a179f44e416689432333b19fdbee60a27b52cdb00bcefa92871da487a5afef02c0b95bdc
+ languageName: node
+ linkType: hard
+
+"@smithy/eventstream-codec@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "@smithy/eventstream-codec@npm:2.2.0"
+ dependencies:
+ "@aws-crypto/crc32": "npm:3.0.0"
+ "@smithy/types": "npm:^2.12.0"
+ "@smithy/util-hex-encoding": "npm:^2.2.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/b2b45542d81b56be382a40866af378a66579c76a8a099e8025b96b97bc4944662cbbd9fafef1ce88a3c8181c7bebb33470a9a064772ecc3b378b0e8e6899681d
+ languageName: node
+ linkType: hard
+
+"@smithy/eventstream-serde-browser@npm:^2.1.4":
+ version: 2.2.0
+ resolution: "@smithy/eventstream-serde-browser@npm:2.2.0"
+ dependencies:
+ "@smithy/eventstream-serde-universal": "npm:^2.2.0"
+ "@smithy/types": "npm:^2.12.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/686ff9e934929feb029600827b061d849e32b649c149908d158d03919bbab1317d053955e4f806b70fef9dab9af69b2d87d71fb39b4f9d750176f9332c5e0e70
+ languageName: node
+ linkType: hard
+
+"@smithy/eventstream-serde-config-resolver@npm:^2.1.4":
+ version: 2.2.0
+ resolution: "@smithy/eventstream-serde-config-resolver@npm:2.2.0"
+ dependencies:
+ "@smithy/types": "npm:^2.12.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/5b5b7c5204801129cf687d633ab345900c092d5a8631ac0b110536d5a5cbfef6294f105a6e6234b918d1ceadf428c6b5a9db18390af38f63ab6bf7a54c35e5b5
+ languageName: node
+ linkType: hard
+
+"@smithy/eventstream-serde-node@npm:^2.1.4":
+ version: 2.2.0
+ resolution: "@smithy/eventstream-serde-node@npm:2.2.0"
+ dependencies:
+ "@smithy/eventstream-serde-universal": "npm:^2.2.0"
+ "@smithy/types": "npm:^2.12.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/7ed29869ed62f4c5ff1d7adfd46c2f0a3893c567651e55c9acefc03b987a8781afc1962bb6fc874c7a6bb312793c4f2da99b9af3b478a4d636856a0ce0a90f94
+ languageName: node
+ linkType: hard
+
+"@smithy/eventstream-serde-universal@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "@smithy/eventstream-serde-universal@npm:2.2.0"
+ dependencies:
+ "@smithy/eventstream-codec": "npm:^2.2.0"
+ "@smithy/types": "npm:^2.12.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/bd2e429000d610b4399b82ec82ea3deb09d6b2c75965489f17c449fbc63011722bd835b9e73e69765f6ac9f8e371eed2cff373cc9f442bd78e239fb1209a1e6c
+ languageName: node
+ linkType: hard
+
+"@smithy/fetch-http-handler@npm:^2.4.5, @smithy/fetch-http-handler@npm:^2.5.0":
+ version: 2.5.0
+ resolution: "@smithy/fetch-http-handler@npm:2.5.0"
+ dependencies:
+ "@smithy/protocol-http": "npm:^3.3.0"
+ "@smithy/querystring-builder": "npm:^2.2.0"
+ "@smithy/types": "npm:^2.12.0"
+ "@smithy/util-base64": "npm:^2.3.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/850162a4660d7b363d135da4b6b1975401cae9a3c7df652ada49b5aba8af6cd723719f893b2938918d9d80263a60fd5dfda75e7f96577d381efbc4085ffd0820
+ languageName: node
+ linkType: hard
+
+"@smithy/hash-node@npm:^2.1.4":
+ version: 2.2.0
+ resolution: "@smithy/hash-node@npm:2.2.0"
+ dependencies:
+ "@smithy/types": "npm:^2.12.0"
+ "@smithy/util-buffer-from": "npm:^2.2.0"
+ "@smithy/util-utf8": "npm:^2.3.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/e9fccd5aa44f8a9b1fa4e9142e6c4c6c6390f86db358b51c7a68e174b0de6b34d1d9bbc41c3a1b4cb0c382ee002f685c9989e028b7b04b02818115edf42f1145
+ languageName: node
+ linkType: hard
+
+"@smithy/invalid-dependency@npm:^2.1.4":
+ version: 2.2.0
+ resolution: "@smithy/invalid-dependency@npm:2.2.0"
+ dependencies:
+ "@smithy/types": "npm:^2.12.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/79c64faf59389743b438487986fc2798dad033cef1c0fa6c7c91fbce268db75a36d94b1bf0580d8973745ce902d3f04c715375cb52350c16c395f4ba0120b051
+ languageName: node
+ linkType: hard
+
+"@smithy/is-array-buffer@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "@smithy/is-array-buffer@npm:2.1.1"
+ dependencies:
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/083b228a84aaf71203cc9e798e3a233f11a148455a249ab59db27f88c6ef9f7e0f83c5201ee1e28407e05aa425b7b6dd6aa0aee863df99d65484975b51288407
+ languageName: node
+ linkType: hard
+
+"@smithy/is-array-buffer@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "@smithy/is-array-buffer@npm:2.2.0"
+ dependencies:
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/2f2523cd8cc4538131e408eb31664983fecb0c8724956788b015aaf3ab85a0c976b50f4f09b176f1ed7bbe79f3edf80743be7a80a11f22cd9ce1285d77161aaf
+ languageName: node
+ linkType: hard
+
+"@smithy/middleware-content-length@npm:^2.1.4":
+ version: 2.2.0
+ resolution: "@smithy/middleware-content-length@npm:2.2.0"
+ dependencies:
+ "@smithy/protocol-http": "npm:^3.3.0"
+ "@smithy/types": "npm:^2.12.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/b9f260bda60448158b85aa53304463360d96f4066e6ff6b44aaa6df65468c45558512d5abdbea87592a5b6e879bb52b763ad15f12fff813d1ee68e081618328f
+ languageName: node
+ linkType: hard
+
+"@smithy/middleware-endpoint@npm:^2.4.6":
+ version: 2.4.6
+ resolution: "@smithy/middleware-endpoint@npm:2.4.6"
+ dependencies:
+ "@smithy/middleware-serde": "npm:^2.2.1"
+ "@smithy/node-config-provider": "npm:^2.2.5"
+ "@smithy/shared-ini-file-loader": "npm:^2.3.5"
+ "@smithy/types": "npm:^2.11.0"
+ "@smithy/url-parser": "npm:^2.1.4"
+ "@smithy/util-middleware": "npm:^2.1.4"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/2d32e07b54abb18c34a11ae2a094a880fa21ecb5d48859940120c89e69170446a6092952d95329986b3ba2b257870d1b5d086f8709b6368874825895677e63b6
+ languageName: node
+ linkType: hard
+
+"@smithy/middleware-endpoint@npm:^2.5.0":
+ version: 2.5.0
+ resolution: "@smithy/middleware-endpoint@npm:2.5.0"
+ dependencies:
+ "@smithy/middleware-serde": "npm:^2.3.0"
+ "@smithy/node-config-provider": "npm:^2.3.0"
+ "@smithy/shared-ini-file-loader": "npm:^2.4.0"
+ "@smithy/types": "npm:^2.12.0"
+ "@smithy/url-parser": "npm:^2.2.0"
+ "@smithy/util-middleware": "npm:^2.2.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/5f80e5d9bc63d1f438882eb90b471c63f877493d1a87ff8eb3aa2b3c8eaa8f42b6c9c818648270597595a495555e56da849fb0b41e44d1471e09cddcec030baf
+ languageName: node
+ linkType: hard
+
+"@smithy/middleware-retry@npm:^2.1.7, @smithy/middleware-retry@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "@smithy/middleware-retry@npm:2.2.0"
+ dependencies:
+ "@smithy/node-config-provider": "npm:^2.3.0"
+ "@smithy/protocol-http": "npm:^3.3.0"
+ "@smithy/service-error-classification": "npm:^2.1.5"
+ "@smithy/smithy-client": "npm:^2.5.0"
+ "@smithy/types": "npm:^2.12.0"
+ "@smithy/util-middleware": "npm:^2.2.0"
+ "@smithy/util-retry": "npm:^2.2.0"
+ tslib: "npm:^2.6.2"
+ uuid: "npm:^8.3.2"
+ checksum: 10c0/6b4b0913b729b2f56e30cb9cef42cdd3e41a2ad570e1e6b60f8662326e1f1063ff2335176c5308f99153c13c3a3e8d30f5adacb2cd744d0fbb10192ebb021ad9
+ languageName: node
+ linkType: hard
+
+"@smithy/middleware-serde@npm:^2.2.1":
+ version: 2.2.1
+ resolution: "@smithy/middleware-serde@npm:2.2.1"
+ dependencies:
+ "@smithy/types": "npm:^2.11.0"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/b82b7acbded65940bef41d6f208eff3533d7dc8adf161b48e254c230eb1f3c75519d920a1dfbe68ce8131485c7c4aba071ddb430183b6f6d35667dbc726263f7
+ languageName: node
+ linkType: hard
+
+"@smithy/middleware-serde@npm:^2.3.0":
+ version: 2.3.0
+ resolution: "@smithy/middleware-serde@npm:2.3.0"
+ dependencies:
+ "@smithy/types": "npm:^2.12.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/4ac7ea24a69c2a071a3c3ac560a4ac368021fd9f7008ac338adcb912df403787040148b2999e7e041826d4fcf48c0b39d2b884044da94205287a7129c5e7e59e
+ languageName: node
+ linkType: hard
+
+"@smithy/middleware-stack@npm:^2.1.4":
+ version: 2.1.4
+ resolution: "@smithy/middleware-stack@npm:2.1.4"
+ dependencies:
+ "@smithy/types": "npm:^2.11.0"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/0ac47b25365a6834984ba2edf5dd2096d41e4e6f2f9859e50150989e5de597dd88c5d70c2b169cb62b0ff40989d9f7cc2f2797f08eca59cd3b3d9ea67399069b
+ languageName: node
+ linkType: hard
+
+"@smithy/middleware-stack@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "@smithy/middleware-stack@npm:2.2.0"
+ dependencies:
+ "@smithy/types": "npm:^2.12.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/ce21595c5ad7d3e101965ee85ed790e1260d013901c8be80be8833dc2fcd556b00de2a56b95cfeb694a0d64909df343c3864a7d96fb35c6e5eb0652353c844a2
+ languageName: node
+ linkType: hard
+
+"@smithy/node-config-provider@npm:^2.2.5":
+ version: 2.2.5
+ resolution: "@smithy/node-config-provider@npm:2.2.5"
+ dependencies:
+ "@smithy/property-provider": "npm:^2.1.4"
+ "@smithy/shared-ini-file-loader": "npm:^2.3.5"
+ "@smithy/types": "npm:^2.11.0"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/7e9a950ccbaf64b11eaee09e4db4a1fa1266764041a9c8881e4a115ef39571ddcbd02cafb28ce70e8020ba27c704d719d2352a92b0723d41392b2efe3dddfa01
+ languageName: node
+ linkType: hard
+
+"@smithy/node-config-provider@npm:^2.3.0":
+ version: 2.3.0
+ resolution: "@smithy/node-config-provider@npm:2.3.0"
+ dependencies:
+ "@smithy/property-provider": "npm:^2.2.0"
+ "@smithy/shared-ini-file-loader": "npm:^2.4.0"
+ "@smithy/types": "npm:^2.12.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/92b87bcb8e5fd38f6a2b0f3512fc3f2439bbf9270ddeaaeb32331716c283907ae315bb9de25b6facb4377056c3ae7aaac66f2a7739632207654a8aad877f59f7
+ languageName: node
+ linkType: hard
+
+"@smithy/node-http-handler@npm:^2.4.3, @smithy/node-http-handler@npm:^2.5.0":
+ version: 2.5.0
+ resolution: "@smithy/node-http-handler@npm:2.5.0"
+ dependencies:
+ "@smithy/abort-controller": "npm:^2.2.0"
+ "@smithy/protocol-http": "npm:^3.3.0"
+ "@smithy/querystring-builder": "npm:^2.2.0"
+ "@smithy/types": "npm:^2.12.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/5f9688549ac9b374b2837db24b955e265eef77f76354fc676a78741613f6c60feee49908c4883e25e2e20fb3083d45723bb690070d0a6f7cc0682e74287fbad7
+ languageName: node
+ linkType: hard
+
+"@smithy/property-provider@npm:^2.1.4":
+ version: 2.1.4
+ resolution: "@smithy/property-provider@npm:2.1.4"
+ dependencies:
+ "@smithy/types": "npm:^2.11.0"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/52781a2307b0519c747e8edbf1afbb3d45f7f1339c5794045345456af198fc3dde272dc361a294a37f0a405357de3f09aa356539606a9414c16f2c92e417aba0
+ languageName: node
+ linkType: hard
+
+"@smithy/property-provider@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "@smithy/property-provider@npm:2.2.0"
+ dependencies:
+ "@smithy/types": "npm:^2.12.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/023b6c29bd2aa48eefce8329611719097efdd271a8207f6b01624c6f82245b56d5d81741a4f64ad56a6b240352f6d083af85232420cf1fd92ae0f08a338976a0
+ languageName: node
+ linkType: hard
+
+"@smithy/protocol-http@npm:^3.2.2":
+ version: 3.2.2
+ resolution: "@smithy/protocol-http@npm:3.2.2"
+ dependencies:
+ "@smithy/types": "npm:^2.11.0"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/2c8a7e2cbfc4124e4130f49a5c3a64babd8f491cb9150647f8e9f5701dc49ccbf42241d5b146dfd16bac622c9c0e4f2262cf78231408764deae1606624802ee5
+ languageName: node
+ linkType: hard
+
+"@smithy/protocol-http@npm:^3.3.0":
+ version: 3.3.0
+ resolution: "@smithy/protocol-http@npm:3.3.0"
+ dependencies:
+ "@smithy/types": "npm:^2.12.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/a32895fc7318d964e53069ae185f03b26fe9c76560451578e21b09c09e7b443a16a2dda348c1a8cde18bddf4b5ba1f72a715c57239ceb93a7539dd1f9f44a7b9
+ languageName: node
+ linkType: hard
+
+"@smithy/querystring-builder@npm:^2.1.4":
+ version: 2.1.4
+ resolution: "@smithy/querystring-builder@npm:2.1.4"
+ dependencies:
+ "@smithy/types": "npm:^2.11.0"
+ "@smithy/util-uri-escape": "npm:^2.1.1"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/b8274baab05031570f3f37370b0701209b61d33ebf8838335a7734061de8dbe1f67c67239dfddbfcf9933c03a3aa56a7322f89dae2c133f069651b5a54c35e03
+ languageName: node
+ linkType: hard
+
+"@smithy/querystring-builder@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "@smithy/querystring-builder@npm:2.2.0"
+ dependencies:
+ "@smithy/types": "npm:^2.12.0"
+ "@smithy/util-uri-escape": "npm:^2.2.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/45f33a053314c68541fa8571fec7398b4d67d98d3f846fda905f75489e08b0581405eb0bc0a8fe55177996e820df301ee275ab9529e9cdc3ea8e33cbb1a2abf4
+ languageName: node
+ linkType: hard
+
+"@smithy/querystring-parser@npm:^2.1.4":
+ version: 2.1.4
+ resolution: "@smithy/querystring-parser@npm:2.1.4"
+ dependencies:
+ "@smithy/types": "npm:^2.11.0"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/468c281e0596ee93be2111f13c1f6a36719d582824857a5dd8f969db69190b9d0f06581a894622e22f74a77a10be747a026c45c78a9fad00e2e21d9460e2f4ff
+ languageName: node
+ linkType: hard
+
+"@smithy/querystring-parser@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "@smithy/querystring-parser@npm:2.2.0"
+ dependencies:
+ "@smithy/types": "npm:^2.12.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/e2f1a3dd60d59915a2dc24a58c2bc9da6b5ca7940067ce20f6205647dc53c1abc951081e92af680637a8c5e33b2f853d9988e8bade672862e463f6944a6c9bc9
+ languageName: node
+ linkType: hard
+
+"@smithy/service-error-classification@npm:^2.1.4":
+ version: 2.1.4
+ resolution: "@smithy/service-error-classification@npm:2.1.4"
+ dependencies:
+ "@smithy/types": "npm:^2.11.0"
+ checksum: 10c0/ff8b60494d42293dade0cb61759fe49a24994b4cdf1d6a77a407b775945ebbf330b548cb30af24db29a2ba93673f913baa51f1a40ba978028326930b4bb509d8
+ languageName: node
+ linkType: hard
+
+"@smithy/service-error-classification@npm:^2.1.5":
+ version: 2.1.5
+ resolution: "@smithy/service-error-classification@npm:2.1.5"
+ dependencies:
+ "@smithy/types": "npm:^2.12.0"
+ checksum: 10c0/e3fb24af5a3a60bf6479bc057bc832f89a0b427650ea2f262220a9627d60d2ab455ad766a2fcceb55fba1b15eddb82b25775fb781c254d2031768f5f8e131e15
+ languageName: node
+ linkType: hard
+
+"@smithy/shared-ini-file-loader@npm:^2.3.5":
+ version: 2.3.5
+ resolution: "@smithy/shared-ini-file-loader@npm:2.3.5"
+ dependencies:
+ "@smithy/types": "npm:^2.11.0"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/dc11ca0405135f282abbc77844d26bbcb810b56324bfcff108701ef2ed7ff1fe7eeee2a650e9c36c64e442d524d3e9152a31963fe779664f60551cefab865115
+ languageName: node
+ linkType: hard
+
+"@smithy/shared-ini-file-loader@npm:^2.4.0":
+ version: 2.4.0
+ resolution: "@smithy/shared-ini-file-loader@npm:2.4.0"
+ dependencies:
+ "@smithy/types": "npm:^2.12.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/890fe084a616cb5d2d7aa5e1b7c0ab585b744ad44fb2e2c5042747bc44aea9bac72f62448a78198a3d5eba4281ad79d5c44ec929b24b70263a2fc02e268c8542
+ languageName: node
+ linkType: hard
+
+"@smithy/signature-v4@npm:^2.1.4":
+ version: 2.2.0
+ resolution: "@smithy/signature-v4@npm:2.2.0"
+ dependencies:
+ "@smithy/eventstream-codec": "npm:^2.2.0"
+ "@smithy/is-array-buffer": "npm:^2.2.0"
+ "@smithy/types": "npm:^2.12.0"
+ "@smithy/util-hex-encoding": "npm:^2.2.0"
+ "@smithy/util-middleware": "npm:^2.2.0"
+ "@smithy/util-uri-escape": "npm:^2.2.0"
+ "@smithy/util-utf8": "npm:^2.3.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/2b8588498b0710839f59d5c7cb200bc846a5ee030def49d27aab6b3a87bea806bdc12cefb2605822c9435da399ca86cdbb68583b5ade84966d167bf1cde2886f
+ languageName: node
+ linkType: hard
+
+"@smithy/smithy-client@npm:^2.4.5, @smithy/smithy-client@npm:^2.5.0":
+ version: 2.5.0
+ resolution: "@smithy/smithy-client@npm:2.5.0"
+ dependencies:
+ "@smithy/middleware-endpoint": "npm:^2.5.0"
+ "@smithy/middleware-stack": "npm:^2.2.0"
+ "@smithy/protocol-http": "npm:^3.3.0"
+ "@smithy/types": "npm:^2.12.0"
+ "@smithy/util-stream": "npm:^2.2.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/66186e3c9ad9f0b59871f5a71f9a33bdbd58445c0e6a320570325ec2a084aeb0110bba6d60872f90cac244777cec57c2b2099311f0496b5ba85344a65518d69b
+ languageName: node
+ linkType: hard
+
+"@smithy/types@npm:^2.10.1, @smithy/types@npm:^2.11.0":
+ version: 2.11.0
+ resolution: "@smithy/types@npm:2.11.0"
+ dependencies:
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/30bb6af16b4d7325f2551470100c2a2d62e904e6ab205019dbc1c6838207c12f68cd66fe227a492559582270d16935ae348f06275b4280d7832098e93039a62b
+ languageName: node
+ linkType: hard
+
+"@smithy/types@npm:^2.12.0":
+ version: 2.12.0
+ resolution: "@smithy/types@npm:2.12.0"
+ dependencies:
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/3530ba5b4f4e52a4028679f73e133af928cf6ea22a16d29669b8c67ea540ed46ab15dc6d391598fbdfd476884cdc57881c480168e2dbe7c5bb007f5afad01531
+ languageName: node
+ linkType: hard
+
+"@smithy/url-parser@npm:^2.1.4":
+ version: 2.1.4
+ resolution: "@smithy/url-parser@npm:2.1.4"
+ dependencies:
+ "@smithy/querystring-parser": "npm:^2.1.4"
+ "@smithy/types": "npm:^2.11.0"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/4657cc8b96f3ed47fb2bd30a9d73aabba9db6975a867c143244f357dd913ad301883ade0ca5dfaa05cae1aaeaef3c5666c0f2c7b0bc7fa2239b06fe48a14941b
+ languageName: node
+ linkType: hard
+
+"@smithy/url-parser@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "@smithy/url-parser@npm:2.2.0"
+ dependencies:
+ "@smithy/querystring-parser": "npm:^2.2.0"
+ "@smithy/types": "npm:^2.12.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/566d85f2d876d75d8a65bfd17fe00155e3f2cae79ca4ca4d979c56910fc5cde3d623efef07f5b37d7108c5eb9d5ec8e694705ac9b60bdf569e24ebf77c4c8215
+ languageName: node
+ linkType: hard
+
+"@smithy/util-base64@npm:^2.2.1, @smithy/util-base64@npm:^2.3.0":
+ version: 2.3.0
+ resolution: "@smithy/util-base64@npm:2.3.0"
+ dependencies:
+ "@smithy/util-buffer-from": "npm:^2.2.0"
+ "@smithy/util-utf8": "npm:^2.3.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/50e7f04793c5c31684802454bc2cdb5b3d969857afe6474a6eef75e43c5191391634a774ae240976c83a5d5fc49b141dd2ca224638076189580e7f50392ef2ea
+ languageName: node
+ linkType: hard
+
+"@smithy/util-body-length-browser@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "@smithy/util-body-length-browser@npm:2.1.1"
+ dependencies:
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/90f9078fb76a2a2b648bc120189adf4c25b5720162c7fb45829d0e755eda53507f3fbcfeff2d4db350b5c40a97b377f8e3ca4250c3761067994404b4b92203dd
+ languageName: node
+ linkType: hard
+
+"@smithy/util-body-length-node@npm:^2.2.2":
+ version: 2.3.0
+ resolution: "@smithy/util-body-length-node@npm:2.3.0"
+ dependencies:
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/c9aba7f426d45dde4123d60330ccf907a7078c3e8baeba55b4edeadfcfc1ce880e3a1b1c842450871f69b3d73b2ccd05029f018087e1373602d0e8284606b42d
+ languageName: node
+ linkType: hard
+
+"@smithy/util-buffer-from@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "@smithy/util-buffer-from@npm:2.1.1"
+ dependencies:
+ "@smithy/is-array-buffer": "npm:^2.1.1"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/476ca2ac2eb0632de1ad7074a7418c24491abb9b17ddb3ab28f67034920961ac32f9e26fed1ac7aaa4a6fd3842f4d867528713258d14db0e3b24121cccfcf7d8
+ languageName: node
+ linkType: hard
+
+"@smithy/util-buffer-from@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "@smithy/util-buffer-from@npm:2.2.0"
+ dependencies:
+ "@smithy/is-array-buffer": "npm:^2.2.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/223d6a508b52ff236eea01cddc062b7652d859dd01d457a4e50365af3de1e24a05f756e19433f6ccf1538544076b4215469e21a4ea83dc1d58d829725b0dbc5a
+ languageName: node
+ linkType: hard
+
+"@smithy/util-config-provider@npm:^2.2.1":
+ version: 2.2.1
+ resolution: "@smithy/util-config-provider@npm:2.2.1"
+ dependencies:
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/08963bfd6a5634268bc12853d64e31a5e041706397e619be5aeabcc45e676ff0bd85371e9d0d61e7117a7f47db90030d9bf9d7454a7d13078dd746f124533d55
+ languageName: node
+ linkType: hard
+
+"@smithy/util-config-provider@npm:^2.3.0":
+ version: 2.3.0
+ resolution: "@smithy/util-config-provider@npm:2.3.0"
+ dependencies:
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/cb3021c4b9711ed3849a2268f1ee76febcb0a74bfc3fb9f5bf311c11e862490fb95f42892b65bd8e2dd7a4fe18e6522d22a1f73b13ec1c6ccbdb518754669e4c
+ languageName: node
+ linkType: hard
+
+"@smithy/util-defaults-mode-browser@npm:^2.1.7":
+ version: 2.2.0
+ resolution: "@smithy/util-defaults-mode-browser@npm:2.2.0"
+ dependencies:
+ "@smithy/property-provider": "npm:^2.2.0"
+ "@smithy/smithy-client": "npm:^2.5.0"
+ "@smithy/types": "npm:^2.12.0"
+ bowser: "npm:^2.11.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/0a9e9ccd62f208d2f57cd13f8374cc3888d19d3501ccabc1959fec4e369ebaeb15f84c436e7d04d2ab52748a0284dde73bec4cac537605cc876c72e39542ff7c
+ languageName: node
+ linkType: hard
+
+"@smithy/util-defaults-mode-node@npm:^2.2.7":
+ version: 2.3.0
+ resolution: "@smithy/util-defaults-mode-node@npm:2.3.0"
+ dependencies:
+ "@smithy/config-resolver": "npm:^2.2.0"
+ "@smithy/credential-provider-imds": "npm:^2.3.0"
+ "@smithy/node-config-provider": "npm:^2.3.0"
+ "@smithy/property-provider": "npm:^2.2.0"
+ "@smithy/smithy-client": "npm:^2.5.0"
+ "@smithy/types": "npm:^2.12.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/604e2145c722bc1a1caffdf9ed63e259858aaecc051e423c9b2e2820e2f929b4fc1bc785180cbab00042b77493492526e3ca94fb7174d92765846b00f16130e1
+ languageName: node
+ linkType: hard
+
+"@smithy/util-endpoints@npm:^1.1.5":
+ version: 1.2.0
+ resolution: "@smithy/util-endpoints@npm:1.2.0"
+ dependencies:
+ "@smithy/node-config-provider": "npm:^2.3.0"
+ "@smithy/types": "npm:^2.12.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/5c0e292917ff48715b900f348ad34100956769b73bf401706fac05cb6339e650ce2481b179a1bf74670d6396b8b1afad0e120473ad6cabf33048d805ec750c9d
+ languageName: node
+ linkType: hard
+
+"@smithy/util-hex-encoding@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "@smithy/util-hex-encoding@npm:2.1.1"
+ dependencies:
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/66df17bd897f37d6670916fdc049308c40588f490a6b24dfc55e295ec17542ba548af67a6460a213e54889a0f1f210952b51985dcf5fa391d398ed5280654844
+ languageName: node
+ linkType: hard
+
+"@smithy/util-hex-encoding@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "@smithy/util-hex-encoding@npm:2.2.0"
+ dependencies:
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/35b23bb3e654464f4e621407d27a7b6eb8a813ca69156e805126514954e21478fbe26bbd7b90f0911d1ca179e6b2a4c2e7ce6d879d9b31b74462541d3092ea83
+ languageName: node
+ linkType: hard
+
+"@smithy/util-middleware@npm:^2.1.4":
+ version: 2.1.4
+ resolution: "@smithy/util-middleware@npm:2.1.4"
+ dependencies:
+ "@smithy/types": "npm:^2.11.0"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/8d064fe03653c464dbb31ed6059ae30929317ddb4ae16fdcdec6a58c581d0f054bd8ebf5b61e286a97c9d010e8d182516418f2058fd8560c23dc5c544fd44946
+ languageName: node
+ linkType: hard
+
+"@smithy/util-middleware@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "@smithy/util-middleware@npm:2.2.0"
+ dependencies:
+ "@smithy/types": "npm:^2.12.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/30227e6c561469cec52985bf5997b65bbe35e565a77d9e775af9d673ef6d4a297a9ad24cb54c076565d62b60a68750f0a34eeab008c02f66c979816bf629cf39
+ languageName: node
+ linkType: hard
+
+"@smithy/util-retry@npm:^2.1.4":
+ version: 2.1.4
+ resolution: "@smithy/util-retry@npm:2.1.4"
+ dependencies:
+ "@smithy/service-error-classification": "npm:^2.1.4"
+ "@smithy/types": "npm:^2.11.0"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/9ee5050d963a622be792dc54eeeb9dc9f56130169f8919a309a36cb12a97c9eda2e859ed7825df781093133e2cee9ae0758a9c0e901085105b2a6c0e5da028e3
+ languageName: node
+ linkType: hard
+
+"@smithy/util-retry@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "@smithy/util-retry@npm:2.2.0"
+ dependencies:
+ "@smithy/service-error-classification": "npm:^2.1.5"
+ "@smithy/types": "npm:^2.12.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/d71932a7a74e2218d1123a6d0966a470066c73f68537db6783a3c2a3142c4cc019abdae1c5f637f43fe411ecab451788abcf750d7b4919f563403a710e922190
+ languageName: node
+ linkType: hard
+
+"@smithy/util-stream@npm:^2.1.5, @smithy/util-stream@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "@smithy/util-stream@npm:2.2.0"
+ dependencies:
+ "@smithy/fetch-http-handler": "npm:^2.5.0"
+ "@smithy/node-http-handler": "npm:^2.5.0"
+ "@smithy/types": "npm:^2.12.0"
+ "@smithy/util-base64": "npm:^2.3.0"
+ "@smithy/util-buffer-from": "npm:^2.2.0"
+ "@smithy/util-hex-encoding": "npm:^2.2.0"
+ "@smithy/util-utf8": "npm:^2.3.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/65e4cb0ea3fc26263bb5bd4ee1425d76761741a627b350da00e565ae22b307c6b95417ff1edd7c9b846be91a72fa27ee054b80924071d65e2edc9ae35cdf29de
+ languageName: node
+ linkType: hard
+
+"@smithy/util-uri-escape@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "@smithy/util-uri-escape@npm:2.1.1"
+ dependencies:
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/947691837b8652b05c2ffc72ae88c7e68d417cd260c5146b3f415822ab817ccff61fdcf4703b15d0c8951a7ad53702a924c9b5c784e551169df0e113364e9454
+ languageName: node
+ linkType: hard
+
+"@smithy/util-uri-escape@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "@smithy/util-uri-escape@npm:2.2.0"
+ dependencies:
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/a2b33c698dd894d1b9a3ff6a660ddc7ffb3adf1f2a9c66fbf9a8ee5960f4fa74f832b87dfedb7ca4992fd9f1853af8547f545b4185590dff6fe2509c7e97d7dc
+ languageName: node
+ linkType: hard
+
+"@smithy/util-utf8@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "@smithy/util-utf8@npm:2.2.0"
+ dependencies:
+ "@smithy/util-buffer-from": "npm:^2.1.1"
+ tslib: "npm:^2.5.0"
+ checksum: 10c0/c27c9e12921a2e221ca27bda4656562b331bf7833e0f4ace9c3d3bd02ed7bd29b830a0bca739aacd37810aa532d72bd21fa93dea46680cfaf13baec7e6d032e3
+ languageName: node
+ linkType: hard
+
+"@smithy/util-utf8@npm:^2.3.0":
+ version: 2.3.0
+ resolution: "@smithy/util-utf8@npm:2.3.0"
+ dependencies:
+ "@smithy/util-buffer-from": "npm:^2.2.0"
+ tslib: "npm:^2.6.2"
+ checksum: 10c0/e18840c58cc507ca57fdd624302aefd13337ee982754c9aa688463ffcae598c08461e8620e9852a424d662ffa948fc64919e852508028d09e89ced459bd506ab
+ languageName: node
+ linkType: hard
+
"@szmarczak/http-timer@npm:^4.0.5":
version: 4.0.6
resolution: "@szmarczak/http-timer@npm:4.0.6"
@@ -3979,10 +5500,10 @@ __metadata:
languageName: node
linkType: hard
-"@types/lodash@npm:^4.14.202":
- version: 4.14.202
- resolution: "@types/lodash@npm:4.14.202"
- checksum: 10c0/6064d43c8f454170841bd67c8266cc9069d9e570a72ca63f06bceb484cb4a3ee60c9c1f305c1b9e3a87826049fd41124b8ef265c4dd08b00f6766609c7fe9973
+"@types/lodash@npm:^4.17.0":
+ version: 4.17.0
+ resolution: "@types/lodash@npm:4.17.0"
+ checksum: 10c0/4c5b41c9a6c41e2c05d08499e96f7940bcf194dcfa84356235b630da920c2a5e05f193618cea76006719bec61c76617dff02defa9d29934f9f6a76a49291bd8f
languageName: node
linkType: hard
@@ -4061,7 +5582,7 @@ __metadata:
languageName: node
linkType: hard
-"@types/node@npm:*, @types/node@npm:^20.11.24, @types/node@npm:^20.9.0":
+"@types/node@npm:*, @types/node@npm:^20.9.0":
version: 20.11.24
resolution: "@types/node@npm:20.11.24"
dependencies:
@@ -4086,6 +5607,22 @@ __metadata:
languageName: node
linkType: hard
+"@types/node@npm:^20.11.27":
+ version: 20.11.27
+ resolution: "@types/node@npm:20.11.27"
+ dependencies:
+ undici-types: "npm:~5.26.4"
+ checksum: 10c0/ec40bea80c60a12b39bd0da9b16333237a84c67ae83c8aa382b88381ae3948943bf6af969442e209270ad3e109f301a6b01ab243f80bd0e69673a877425f9418
+ languageName: node
+ linkType: hard
+
+"@types/normalize-package-data@npm:^2.4.0":
+ version: 2.4.4
+ resolution: "@types/normalize-package-data@npm:2.4.4"
+ checksum: 10c0/aef7bb9b015883d6f4119c423dd28c4bdc17b0e8a0ccf112c78b4fe0e91fbc4af7c6204b04bba0e199a57d2f3fbbd5b4a14bf8739bf9d2a39b2a0aad545e0f86
+ languageName: node
+ linkType: hard
+
"@types/prop-types@npm:*":
version: 15.7.11
resolution: "@types/prop-types@npm:15.7.11"
@@ -4100,12 +5637,12 @@ __metadata:
languageName: node
linkType: hard
-"@types/react-dom@npm:^18.2.19":
- version: 18.2.19
- resolution: "@types/react-dom@npm:18.2.19"
+"@types/react-dom@npm:^18.2.22":
+ version: 18.2.22
+ resolution: "@types/react-dom@npm:18.2.22"
dependencies:
"@types/react": "npm:*"
- checksum: 10c0/88d7c6daa4659f661d0c97985d9fca492f24b421a34bb614dcd94c343aed7bea121463149e97fb01ecaa693be17b7d1542cf71ddb1705f3889a81eb2639a88aa
+ checksum: 10c0/cd85b5f402126e44b8c7b573e74737389816abcc931b2b14d8f946ba81cce8637ea490419488fcae842efb1e2f69853bc30522e43fd8359e1007d4d14b8d8146
languageName: node
linkType: hard
@@ -4120,14 +5657,14 @@ __metadata:
languageName: node
linkType: hard
-"@types/react@npm:^18.2.62":
- version: 18.2.62
- resolution: "@types/react@npm:18.2.62"
+"@types/react@npm:^18.2.66":
+ version: 18.2.66
+ resolution: "@types/react@npm:18.2.66"
dependencies:
"@types/prop-types": "npm:*"
"@types/scheduler": "npm:*"
csstype: "npm:^3.0.2"
- checksum: 10c0/a45a986723b0febdcdcea754cfa426345f588fd9a522ab4136220a0b514ccba8f4986b23c73dd8e863d465ee1e733779bffffdd57c19488a318a5135f030c1e8
+ checksum: 10c0/56e4b841f2daf03a0b3268d4f2bcf5841167fe56742b9f1c076fad66587fb59191bdaba4d5727dbfbcff750d5e8797fdd4e57d8d9704b0bfc6ad31ee1e268a70
languageName: node
linkType: hard
@@ -4235,15 +5772,15 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/eslint-plugin@npm:^7.1.1":
- version: 7.1.1
- resolution: "@typescript-eslint/eslint-plugin@npm:7.1.1"
+"@typescript-eslint/eslint-plugin@npm:^7.2.0":
+ version: 7.2.0
+ resolution: "@typescript-eslint/eslint-plugin@npm:7.2.0"
dependencies:
"@eslint-community/regexpp": "npm:^4.5.1"
- "@typescript-eslint/scope-manager": "npm:7.1.1"
- "@typescript-eslint/type-utils": "npm:7.1.1"
- "@typescript-eslint/utils": "npm:7.1.1"
- "@typescript-eslint/visitor-keys": "npm:7.1.1"
+ "@typescript-eslint/scope-manager": "npm:7.2.0"
+ "@typescript-eslint/type-utils": "npm:7.2.0"
+ "@typescript-eslint/utils": "npm:7.2.0"
+ "@typescript-eslint/visitor-keys": "npm:7.2.0"
debug: "npm:^4.3.4"
graphemer: "npm:^1.4.0"
ignore: "npm:^5.2.4"
@@ -4256,44 +5793,44 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
- checksum: 10c0/041799604176bbee01f6ff029c5e2fcf1196db2737ba219a20b095f095dc0064ea425d15dd6dc22eaef294daa838209601ec7bc19317258dfa89a13afb8126ba
+ checksum: 10c0/8725c2193a16cc103a697d6e408c515a7618df3902dc504cf69999f60634dac79ce14a5bd942f0388ba7547caba44ac40e01097cda1106aa3912e2303dada8ab
languageName: node
linkType: hard
-"@typescript-eslint/parser@npm:^7.1.1":
- version: 7.1.1
- resolution: "@typescript-eslint/parser@npm:7.1.1"
+"@typescript-eslint/parser@npm:^7.2.0":
+ version: 7.2.0
+ resolution: "@typescript-eslint/parser@npm:7.2.0"
dependencies:
- "@typescript-eslint/scope-manager": "npm:7.1.1"
- "@typescript-eslint/types": "npm:7.1.1"
- "@typescript-eslint/typescript-estree": "npm:7.1.1"
- "@typescript-eslint/visitor-keys": "npm:7.1.1"
+ "@typescript-eslint/scope-manager": "npm:7.2.0"
+ "@typescript-eslint/types": "npm:7.2.0"
+ "@typescript-eslint/typescript-estree": "npm:7.2.0"
+ "@typescript-eslint/visitor-keys": "npm:7.2.0"
debug: "npm:^4.3.4"
peerDependencies:
eslint: ^8.56.0
peerDependenciesMeta:
typescript:
optional: true
- checksum: 10c0/84eb44f3767aaa1d7b26176348c89bd6732bc711f7f24186b1354eba95bf9e9c65b5675838772b831391210e525ff1f3bd4b51a3130ec35413aa362920effc57
+ checksum: 10c0/11ce36c68212fdbf98fc6fd32ba0977d46b645fd669a3f4fdb8be2036225f86ad005b31a66f97097e90517c44c92cf9cc5fb1d6e9647ee2fa125c4af21cdb477
languageName: node
linkType: hard
-"@typescript-eslint/scope-manager@npm:7.1.1":
- version: 7.1.1
- resolution: "@typescript-eslint/scope-manager@npm:7.1.1"
+"@typescript-eslint/scope-manager@npm:7.2.0":
+ version: 7.2.0
+ resolution: "@typescript-eslint/scope-manager@npm:7.2.0"
dependencies:
- "@typescript-eslint/types": "npm:7.1.1"
- "@typescript-eslint/visitor-keys": "npm:7.1.1"
- checksum: 10c0/a955c8529f24945d448b95982d06b5f15a74fc5df97307f5821d55e9861d6c26d61cbd118c1ca41634164ed1d4f6c74fcb8388761341c49e6902a6fb72036afc
+ "@typescript-eslint/types": "npm:7.2.0"
+ "@typescript-eslint/visitor-keys": "npm:7.2.0"
+ checksum: 10c0/4d088c127e6ba1a7de8567f70684779083be24b48746c3b4a86a0ec7062bca58693ee08482349ad6572a17ada8aa6f26b74d1c7139c8fcf7101fa09a572e0ea6
languageName: node
linkType: hard
-"@typescript-eslint/type-utils@npm:7.1.1":
- version: 7.1.1
- resolution: "@typescript-eslint/type-utils@npm:7.1.1"
+"@typescript-eslint/type-utils@npm:7.2.0":
+ version: 7.2.0
+ resolution: "@typescript-eslint/type-utils@npm:7.2.0"
dependencies:
- "@typescript-eslint/typescript-estree": "npm:7.1.1"
- "@typescript-eslint/utils": "npm:7.1.1"
+ "@typescript-eslint/typescript-estree": "npm:7.2.0"
+ "@typescript-eslint/utils": "npm:7.2.0"
debug: "npm:^4.3.4"
ts-api-utils: "npm:^1.0.1"
peerDependencies:
@@ -4301,23 +5838,23 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
- checksum: 10c0/6f19dc383718cce42ed7262d134f5f0221bcbf225fea28975cd714c90e57d861608d5187c7ad731f6281813f94b00f22282a99a8a852167366064abc6e256341
+ checksum: 10c0/069b65ef327e1bfa1e59009504c8307f88f3673ebcc23d17ad370452ece107013c9dc321876092673d2c02ddd35104f67231b31b0e4f7d5ca6fbf95b43f828b2
languageName: node
linkType: hard
-"@typescript-eslint/types@npm:7.1.1":
- version: 7.1.1
- resolution: "@typescript-eslint/types@npm:7.1.1"
- checksum: 10c0/2bef95ec0c60e67fada336db3e82fac2be16c21a9e54fc45c7aeda3291abcceefa12aa970025db88bc2b3e113b1e70abd7f89c2a651c16b816dff1a0c46e7907
+"@typescript-eslint/types@npm:7.2.0":
+ version: 7.2.0
+ resolution: "@typescript-eslint/types@npm:7.2.0"
+ checksum: 10c0/135aae061720185855bea61ea6cfd33f4801d2de57f65e50079bbdb505100f844632aa4e4bdeec9e9e79d29aaddad949178d0e918e41867da6ab4b1390820e33
languageName: node
linkType: hard
-"@typescript-eslint/typescript-estree@npm:7.1.1":
- version: 7.1.1
- resolution: "@typescript-eslint/typescript-estree@npm:7.1.1"
+"@typescript-eslint/typescript-estree@npm:7.2.0":
+ version: 7.2.0
+ resolution: "@typescript-eslint/typescript-estree@npm:7.2.0"
dependencies:
- "@typescript-eslint/types": "npm:7.1.1"
- "@typescript-eslint/visitor-keys": "npm:7.1.1"
+ "@typescript-eslint/types": "npm:7.2.0"
+ "@typescript-eslint/visitor-keys": "npm:7.2.0"
debug: "npm:^4.3.4"
globby: "npm:^11.1.0"
is-glob: "npm:^4.0.3"
@@ -4327,34 +5864,34 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
- checksum: 10c0/2cec9d21cfe46e523a6d29aff554e5450edf1ee30ce9cf644ee8f1f5e1cfd44b94afb3632db97a949c86c4a392ae80f264d56d8747b2b0fdbe5c54139433366a
+ checksum: 10c0/2730bb17730e6f3ca4061f00688a70386a808f5d174fdeb757c3cfa92c455373f69080df33237c1a8970e818af0cea0ae5a083970ed8ba493f3b04458c6f9271
languageName: node
linkType: hard
-"@typescript-eslint/utils@npm:7.1.1":
- version: 7.1.1
- resolution: "@typescript-eslint/utils@npm:7.1.1"
+"@typescript-eslint/utils@npm:7.2.0":
+ version: 7.2.0
+ resolution: "@typescript-eslint/utils@npm:7.2.0"
dependencies:
"@eslint-community/eslint-utils": "npm:^4.4.0"
"@types/json-schema": "npm:^7.0.12"
"@types/semver": "npm:^7.5.0"
- "@typescript-eslint/scope-manager": "npm:7.1.1"
- "@typescript-eslint/types": "npm:7.1.1"
- "@typescript-eslint/typescript-estree": "npm:7.1.1"
+ "@typescript-eslint/scope-manager": "npm:7.2.0"
+ "@typescript-eslint/types": "npm:7.2.0"
+ "@typescript-eslint/typescript-estree": "npm:7.2.0"
semver: "npm:^7.5.4"
peerDependencies:
eslint: ^8.56.0
- checksum: 10c0/3e70834c5b49e4643ec8da63fa2acaab54283a566af2cedcd4c2f4210833a59bf71c459dde69e738115633c7de9f1339130552ff246e8e1bb4db26910685408b
+ checksum: 10c0/37944e1a4038820da82b51ac4756e09cff31851d9d957d3fd67a3b6fd2cf6c0e87767161eaeb8b6e63de418e513bb2570a6ee3fa986ba77f6d451d66a538f753
languageName: node
linkType: hard
-"@typescript-eslint/visitor-keys@npm:7.1.1":
- version: 7.1.1
- resolution: "@typescript-eslint/visitor-keys@npm:7.1.1"
+"@typescript-eslint/visitor-keys@npm:7.2.0":
+ version: 7.2.0
+ resolution: "@typescript-eslint/visitor-keys@npm:7.2.0"
dependencies:
- "@typescript-eslint/types": "npm:7.1.1"
+ "@typescript-eslint/types": "npm:7.2.0"
eslint-visitor-keys: "npm:^3.4.1"
- checksum: 10c0/1ab19ec966ff0b86317eddcbfcda645856ec01c3b76a451298031f35e4da0a363e4888ce5ae9e2526e874799a502c49922d83d57d21cb6fef7f3912f51e4a271
+ checksum: 10c0/2d7467495b2b76f3edb1b3047e97076c2242e7eca6d50bbbdd88219f9ff754dbcb9334a0568fe0ceb4c562823980938bd278aa2ba53da6343e7d99a167924f24
languageName: node
linkType: hard
@@ -4742,6 +6279,13 @@ __metadata:
languageName: node
linkType: hard
+"alawmulaw@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "alawmulaw@npm:6.0.0"
+ checksum: 10c0/249982d2c0a68946b54a9e924378e9892598e29f4622c84bba01e5b43c25c5031b2859fa15ea1a0adfa1700c7a7937e74cfa2cd5677ad133dabdd40e9b7eaf8b
+ languageName: node
+ linkType: hard
+
"algoliasearch@npm:^4.19.1":
version: 4.22.1
resolution: "algoliasearch@npm:4.22.1"
@@ -5023,6 +6567,13 @@ __metadata:
languageName: node
linkType: hard
+"arrify@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "arrify@npm:1.0.1"
+ checksum: 10c0/c35c8d1a81bcd5474c0c57fe3f4bad1a4d46a5fa353cedcff7a54da315df60db71829e69104b859dff96c5d68af46bd2be259fe5e50dc6aa9df3b36bea0383ab
+ languageName: node
+ linkType: hard
+
"asar@npm:^3.0.0":
version: 3.2.0
resolution: "asar@npm:3.2.0"
@@ -5071,6 +6622,15 @@ __metadata:
languageName: node
linkType: hard
+"async@npm:^2.0.1":
+ version: 2.6.4
+ resolution: "async@npm:2.6.4"
+ dependencies:
+ lodash: "npm:^4.17.14"
+ checksum: 10c0/0ebb3273ef96513389520adc88e0d3c45e523d03653cc9b66f5c46f4239444294899bfd13d2b569e7dbfde7da2235c35cf5fd3ece9524f935d41bbe4efccdad0
+ languageName: node
+ linkType: hard
+
"asynckit@npm:^0.4.0":
version: 0.4.0
resolution: "asynckit@npm:0.4.0"
@@ -5281,6 +6841,13 @@ __metadata:
languageName: node
linkType: hard
+"bowser@npm:^2.11.0":
+ version: 2.11.0
+ resolution: "bowser@npm:2.11.0"
+ checksum: 10c0/04efeecc7927a9ec33c667fa0965dea19f4ac60b3fea60793c2e6cf06c1dcd2f7ae1dbc656f450c5f50783b1c75cf9dc173ba6f3b7db2feee01f8c4b793e1bd3
+ languageName: node
+ linkType: hard
+
"bplist-creator@npm:~0.0.3":
version: 0.0.8
resolution: "bplist-creator@npm:0.0.8"
@@ -5360,6 +6927,22 @@ __metadata:
languageName: node
linkType: hard
+"buffer-indexof@npm:~0.0.0":
+ version: 0.0.2
+ resolution: "buffer-indexof@npm:0.0.2"
+ checksum: 10c0/495124d3eacdfae2da6f815881e1c837459e48144ec46c246199ca3efc7052e767822784fd5399ca65a4043ba364b3a38b6b06dc6df44aab1aedea17544fc9fc
+ languageName: node
+ linkType: hard
+
+"buffer-split@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "buffer-split@npm:1.0.0"
+ dependencies:
+ buffer-indexof: "npm:~0.0.0"
+ checksum: 10c0/59280260d41c3871d227cd605343fc48a3ae3b3a7b799f3fec9a94e7275e040bdffcd84c3ae4a8e68de7f8232dee495f8d1c410b1466fc4be265d2d3410c8f75
+ languageName: node
+ linkType: hard
+
"buffer@npm:^5.5.0":
version: 5.7.1
resolution: "buffer@npm:5.7.1"
@@ -5505,6 +7088,18 @@ __metadata:
languageName: node
linkType: hard
+"camelcase-keys@npm:^7.0.0":
+ version: 7.0.2
+ resolution: "camelcase-keys@npm:7.0.2"
+ dependencies:
+ camelcase: "npm:^6.3.0"
+ map-obj: "npm:^4.1.0"
+ quick-lru: "npm:^5.1.1"
+ type-fest: "npm:^1.2.1"
+ checksum: 10c0/ae86a51168643e9e8a2f2c7bfa17850729979ec3dafc5253056a7d97931cbb0e3ef5b4185e59d54b7a56c54405dee2874b0c82033498d8626e512ff9034cb05c
+ languageName: node
+ linkType: hard
+
"camelcase-keys@npm:^9.1.3":
version: 9.1.3
resolution: "camelcase-keys@npm:9.1.3"
@@ -5517,7 +7112,7 @@ __metadata:
languageName: node
linkType: hard
-"camelcase@npm:6":
+"camelcase@npm:6, camelcase@npm:^6.3.0":
version: 6.3.0
resolution: "camelcase@npm:6.3.0"
checksum: 10c0/0d701658219bd3116d12da3eab31acddb3f9440790c0792e0d398f0a520a6a4058018e546862b6fba89d7ae990efaeb97da71e1913e9ebf5a8b5621a3d55c710
@@ -5580,7 +7175,7 @@ __metadata:
languageName: node
linkType: hard
-"chalk@npm:^5.2.0":
+"chalk@npm:^5.2.0, chalk@npm:^5.3.0":
version: 5.3.0
resolution: "chalk@npm:5.3.0"
checksum: 10c0/8297d436b2c0f95801103ff2ef67268d362021b8210daf8ddbe349695333eb3610a71122172ff3b0272f1ef2cf7cc2c41fdaa4715f52e49ffe04c56340feed09
@@ -5622,6 +7217,15 @@ __metadata:
languageName: node
linkType: hard
+"chart.js@npm:^4.4.2":
+ version: 4.4.2
+ resolution: "chart.js@npm:4.4.2"
+ dependencies:
+ "@kurkle/color": "npm:^0.3.0"
+ checksum: 10c0/4233bdc3cce9e4d5aca575f8ef9313f56867491b9eac027f3514ca807aca9a2ba2087f85ca3c68f022974f948ce688a178b0ce21d95706116abca5acf19e072f
+ languageName: node
+ linkType: hard
+
"cheerio-select@npm:^1.5.0":
version: 1.6.0
resolution: "cheerio-select@npm:1.6.0"
@@ -5749,6 +7353,15 @@ __metadata:
languageName: node
linkType: hard
+"cldr-segmentation@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "cldr-segmentation@npm:2.2.0"
+ dependencies:
+ utfstring: "npm:~2.0"
+ checksum: 10c0/154c067a23595c7e7df75a6aa9a23c544cff73c9cad18490f881c125facddf2bf4b0cdc0e832ddead75300bc8f25b26cb9126ba1ea5e326fc18c9dde9a13a044
+ languageName: node
+ linkType: hard
+
"clean-stack@npm:^2.0.0":
version: 2.2.0
resolution: "clean-stack@npm:2.2.0"
@@ -5954,6 +7567,13 @@ __metadata:
languageName: node
linkType: hard
+"commander@npm:^8.3.0":
+ version: 8.3.0
+ resolution: "commander@npm:8.3.0"
+ checksum: 10c0/8b043bb8322ea1c39664a1598a95e0495bfe4ca2fad0d84a92d7d1d8d213e2a155b441d2470c8e08de7c4a28cf2bc6e169211c49e1b21d9f7edc6ae4d9356060
+ languageName: node
+ linkType: hard
+
"commander@npm:^9.4.0, commander@npm:^9.4.1":
version: 9.5.0
resolution: "commander@npm:9.5.0"
@@ -5968,6 +7588,18 @@ __metadata:
languageName: node
linkType: hard
+"compromise-dates@npm:^3.5.0":
+ version: 3.5.0
+ resolution: "compromise-dates@npm:3.5.0"
+ dependencies:
+ spacetime: "npm:7.6.0"
+ spacetime-holiday: "npm:0.3.0"
+ peerDependencies:
+ compromise: ">=14.2.0"
+ checksum: 10c0/be9f56ec70f025465111ad2ce8c127067f908bb71d499bbee3a4d74a9a6ff88008fe1baa3646bac98d7d6598edb9ece74dc8667f78e2294682db31c1fb504da0
+ languageName: node
+ linkType: hard
+
"compromise-paragraphs@npm:^0.1.0":
version: 0.1.0
resolution: "compromise-paragraphs@npm:0.1.0"
@@ -6185,6 +7817,15 @@ __metadata:
languageName: node
linkType: hard
+"cssstyle@npm:^4.0.1":
+ version: 4.0.1
+ resolution: "cssstyle@npm:4.0.1"
+ dependencies:
+ rrweb-cssom: "npm:^0.6.0"
+ checksum: 10c0/cadf9a8b23e11f4c6d63f21291096a0b0be868bd4ab9c799daa2c5b18330e39e5281605f01da906e901b42f742df0f3b3645af6465e83377ff7d15a88ee432a0
+ languageName: node
+ linkType: hard
+
"csstype@npm:^3.0.2, csstype@npm:^3.1.3":
version: 3.1.3
resolution: "csstype@npm:3.1.3"
@@ -6192,6 +7833,15 @@ __metadata:
languageName: node
linkType: hard
+"cwise-compiler@npm:^1.0.0":
+ version: 1.1.3
+ resolution: "cwise-compiler@npm:1.1.3"
+ dependencies:
+ uniq: "npm:^1.0.0"
+ checksum: 10c0/91f38981c4c311cb55f2652d7f7cb31ab2d0bdcca556ac58d7085d43130713dfc19a1d4f5461a751e081ff112a4ada9ff01fa9566ad1c4461323ac7516e1f5cf
+ languageName: node
+ linkType: hard
+
"cytoscape-cose-bilkent@npm:^4.1.0":
version: 4.1.0
resolution: "cytoscape-cose-bilkent@npm:4.1.0"
@@ -6601,6 +8251,16 @@ __metadata:
languageName: node
linkType: hard
+"data-urls@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "data-urls@npm:5.0.0"
+ dependencies:
+ whatwg-mimetype: "npm:^4.0.0"
+ whatwg-url: "npm:^14.0.0"
+ checksum: 10c0/1b894d7d41c861f3a4ed2ae9b1c3f0909d4575ada02e36d3d3bc584bdd84278e20709070c79c3b3bff7ac98598cb191eb3e86a89a79ea4ee1ef360e1694f92ad
+ languageName: node
+ linkType: hard
+
"date-fns@npm:^3.2.0":
version: 3.3.1
resolution: "date-fns@npm:3.3.1"
@@ -6645,6 +8305,16 @@ __metadata:
languageName: node
linkType: hard
+"decamelize-keys@npm:^1.1.0":
+ version: 1.1.1
+ resolution: "decamelize-keys@npm:1.1.1"
+ dependencies:
+ decamelize: "npm:^1.1.0"
+ map-obj: "npm:^1.0.0"
+ checksum: 10c0/4ca385933127437658338c65fb9aead5f21b28d3dd3ccd7956eb29aab0953b5d3c047fbc207111672220c71ecf7a4d34f36c92851b7bbde6fca1a02c541bdd7d
+ languageName: node
+ linkType: hard
+
"decamelize-keys@npm:^2.0.1":
version: 2.0.1
resolution: "decamelize-keys@npm:2.0.1"
@@ -6657,13 +8327,20 @@ __metadata:
languageName: node
linkType: hard
-"decamelize@npm:1.2.0":
+"decamelize@npm:1.2.0, decamelize@npm:^1.1.0":
version: 1.2.0
resolution: "decamelize@npm:1.2.0"
checksum: 10c0/85c39fe8fbf0482d4a1e224ef0119db5c1897f8503bcef8b826adff7a1b11414972f6fef2d7dec2ee0b4be3863cf64ac1439137ae9e6af23a3d8dcbe26a5b4b2
languageName: node
linkType: hard
+"decamelize@npm:^5.0.0":
+ version: 5.0.1
+ resolution: "decamelize@npm:5.0.1"
+ checksum: 10c0/3da71022bc1e85487810fa0833138effb599fa331ca21e179650e93a765d0c4dabeb1ecdd6ad1474fa0bacd2457953c63ea335afb6e53b35f2b4bf779514e2a3
+ languageName: node
+ linkType: hard
+
"decamelize@npm:^6.0.0":
version: 6.0.0
resolution: "decamelize@npm:6.0.0"
@@ -6671,6 +8348,13 @@ __metadata:
languageName: node
linkType: hard
+"decimal.js@npm:^10.4.3":
+ version: 10.4.3
+ resolution: "decimal.js@npm:10.4.3"
+ checksum: 10c0/6d60206689ff0911f0ce968d40f163304a6c1bc739927758e6efc7921cfa630130388966f16bf6ef6b838cb33679fbe8e7a78a2f3c478afce841fd55ac8fb8ee
+ languageName: node
+ linkType: hard
+
"decode-named-character-reference@npm:^1.0.0":
version: 1.0.2
resolution: "decode-named-character-reference@npm:1.0.2"
@@ -7007,6 +8691,13 @@ __metadata:
languageName: node
linkType: hard
+"doublearray@npm:0.0.2":
+ version: 0.0.2
+ resolution: "doublearray@npm:0.0.2"
+ checksum: 10c0/ac830e612e17d0a45084e0ab5cc6255e79859a9135acde4b1bb3cee827ab0a29213f42916a72a240975ed905a4f9cade7844456f3b0d6ce3731fbf681561433e
+ languageName: node
+ linkType: hard
+
"ds-store@npm:^0.1.5":
version: 0.1.6
resolution: "ds-store@npm:0.1.6"
@@ -7041,6 +8732,69 @@ __metadata:
languageName: node
linkType: hard
+"echogarden@https://github.com/an-lee/echogarden":
+ version: 0.11.22
+ resolution: "echogarden@https://github.com/an-lee/echogarden.git#commit=501ad82e4d690e7ea1ff19ce6580a560697a01cb"
+ dependencies:
+ "@aws-sdk/client-polly": "npm:^3.529.1"
+ "@aws-sdk/client-transcribe-streaming": "npm:^3.529.1"
+ "@echogarden/espeak-ng-emscripten": "npm:^0.1.2"
+ "@echogarden/fasttext-wasm": "npm:^0.1.0"
+ "@echogarden/flite-wasi": "npm:^0.1.1"
+ "@echogarden/fvad-wasm": "npm:^0.1.2"
+ "@echogarden/kissfft-wasm": "npm:^0.1.1"
+ "@echogarden/rnnoise-wasm": "npm:^0.1.1"
+ "@echogarden/rubberband-wasm": "npm:^0.1.1"
+ "@echogarden/sonic-wasm": "npm:^0.1.1"
+ "@echogarden/speex-resampler-wasm": "npm:^0.1.1"
+ "@echogarden/svoxpico-wasm": "npm:^0.1.0"
+ "@mozilla/readability": "npm:^0.5.0"
+ alawmulaw: "npm:^6.0.0"
+ buffer-split: "npm:^1.0.0"
+ chalk: "npm:^5.3.0"
+ cldr-segmentation: "npm:^2.2.0"
+ command-exists: "npm:^1.2.9"
+ compromise: "npm:^14.12.0"
+ compromise-dates: "npm:^3.5.0"
+ fs-extra: "npm:^11.2.0"
+ gaxios: "npm:^6.3.0"
+ graceful-fs: "npm:^4.2.11"
+ html-escaper: "npm:^3.0.3"
+ html-to-text: "npm:^9.0.5"
+ import-meta-resolve: "npm:^4.0.0"
+ jieba-wasm: "npm:^0.0.2"
+ jsdom: "npm:^24.0.0"
+ json5: "npm:^2.2.3"
+ kuromoji: "npm:^0.1.2"
+ microsoft-cognitiveservices-speech-sdk: "npm:^1.36.0"
+ moving-median: "npm:^1.0.0"
+ msgpack-lite: "npm:^0.1.26"
+ ndarray: "npm:^1.0.19"
+ ndarray-ops: "npm:^1.2.2"
+ onnxruntime-node: "npm:^1.17.0"
+ sam-js: "npm:^0.2.1"
+ strip-ansi: "npm:^7.1.0"
+ tar: "npm:^6.2.0"
+ tinyld: "npm:^1.3.4"
+ ws: "npm:^8.16.0"
+ wtf_wikipedia: "npm:^10.3.0"
+ peerDependencies:
+ "@echogarden/vosk": ^0.3.39-patched.1
+ speaker: ^0.5.4
+ winax: ^3.4.2
+ peerDependenciesMeta:
+ "@echogarden/vosk":
+ optional: true
+ speaker:
+ optional: true
+ winax:
+ optional: true
+ bin:
+ echogarden: ./dist/cli/CLILauncher.js
+ conditions: (os=win32 | os=darwin | os=linux)
+ languageName: node
+ linkType: hard
+
"ee-first@npm:1.1.1":
version: 1.1.1
resolution: "ee-first@npm:1.1.1"
@@ -7127,10 +8881,10 @@ __metadata:
languageName: node
linkType: hard
-"electron-log@npm:^5.1.1":
- version: 5.1.1
- resolution: "electron-log@npm:5.1.1"
- checksum: 10c0/4ca427404d7a660df69146a4d16fcc266f0fa8d1da665b226cda50b8608f7ef032c43bef1330125b692835582afca4e2123602840b3216735c586dd49c16d03c
+"electron-log@npm:^5.1.2":
+ version: 5.1.2
+ resolution: "electron-log@npm:5.1.2"
+ checksum: 10c0/6e0f05a15f10196c6799901fe30e8c6fec9414bd025cf748ad7dfc9c88b0ad48e7295c00a41c1af0095fb584034f8d1700e7c561ff91b91abde0ea80e5b9c2cf
languageName: node
linkType: hard
@@ -7188,16 +8942,16 @@ __metadata:
languageName: node
linkType: hard
-"electron@npm:^29.1.0":
- version: 29.1.0
- resolution: "electron@npm:29.1.0"
+"electron@npm:^29.1.4":
+ version: 29.1.4
+ resolution: "electron@npm:29.1.4"
dependencies:
"@electron/get": "npm:^2.0.0"
"@types/node": "npm:^20.9.0"
extract-zip: "npm:^2.0.1"
bin:
electron: cli.js
- checksum: 10c0/6b9946f10866544e088176ba14ffd37b79058a1b79ea0fd582df60f9d35808727c9200a0dc78210364491073ad648e11eabd3ac745d8c81c0ef71547ee0df96b
+ checksum: 10c0/aa74131a22399026e041d2ea2b47827b7707b3f2daba72b4058047b48e88edbb08a472f4babe13b83bc47d269470a8d9bc7dae02cbd3fef64924d347558a32e8
languageName: node
linkType: hard
@@ -7290,7 +9044,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.34"
+ "@langchain/community": "npm:^0.0.39"
"@langchain/google-genai": "npm:^0.0.10"
"@mozilla/readability": "npm:^0.5.0"
"@playwright/test": "npm:^1.42.1"
@@ -7323,15 +9077,15 @@ __metadata:
"@types/fluent-ffmpeg": "npm:^2.1.24"
"@types/html-to-text": "npm:^9.0.4"
"@types/intl-tel-input": "npm:^18.1.4"
- "@types/lodash": "npm:^4.14.202"
+ "@types/lodash": "npm:^4.17.0"
"@types/mark.js": "npm:^8.11.12"
- "@types/node": "npm:^20.11.24"
- "@types/react": "npm:^18.2.62"
- "@types/react-dom": "npm:^18.2.19"
+ "@types/node": "npm:^20.11.27"
+ "@types/react": "npm:^18.2.66"
+ "@types/react-dom": "npm:^18.2.22"
"@types/validator": "npm:^13.11.9"
"@types/wavesurfer.js": "npm:^6.0.12"
- "@typescript-eslint/eslint-plugin": "npm:^7.1.1"
- "@typescript-eslint/parser": "npm:^7.1.1"
+ "@typescript-eslint/eslint-plugin": "npm:^7.2.0"
+ "@typescript-eslint/parser": "npm:^7.2.0"
"@uidotdev/usehooks": "npm:^2.4.1"
"@vidstack/react": "npm:^1.10.9"
"@vitejs/plugin-react": "npm:^4.2.1"
@@ -7340,6 +9094,7 @@ __metadata:
axios: "npm:^1.6.7"
camelcase: "npm:^8.0.0"
camelcase-keys: "npm:^9.1.3"
+ chart.js: "npm:^4.4.2"
cheerio: "npm:^1.0.0-rc.12"
class-variance-authority: "npm:^0.7.0"
clsx: "npm:^2.1.0"
@@ -7350,8 +9105,9 @@ __metadata:
dayjs: "npm:^1.11.10"
decamelize: "npm:^6.0.0"
decamelize-keys: "npm:^2.0.1"
- electron: "npm:^29.1.0"
- electron-log: "npm:^5.1.1"
+ echogarden: "https://github.com/an-lee/echogarden"
+ electron: "npm:^29.1.4"
+ electron-log: "npm:^5.1.2"
electron-playwright-helpers: "npm:^1.7.1"
electron-settings: "npm:^4.0.2"
electron-squirrel-startup: "npm:^1.0.0"
@@ -7364,29 +9120,29 @@ __metadata:
fs-extra: "npm:^11.2.0"
html-to-text: "npm:^9.0.5"
https-proxy-agent: "npm:^7.0.4"
- i18next: "npm:^23.10.0"
- intl-tel-input: "npm:^19.5.5"
+ i18next: "npm:^23.10.1"
+ intl-tel-input: "npm:^19.5.7"
js-md5: "npm:^0.8.3"
- langchain: "npm:^0.1.25"
+ langchain: "npm:^0.1.28"
lodash: "npm:^4.17.21"
- lucide-react: "npm:^0.344.0"
+ lucide-react: "npm:^0.358.0"
mark.js: "npm:^8.11.1"
- microsoft-cognitiveservices-speech-sdk: "npm:^1.35.0"
- next-themes: "npm:^0.2.1"
+ microsoft-cognitiveservices-speech-sdk: "npm:^1.36.0"
+ next-themes: "npm:^0.3.0"
octokit: "npm:^3.1.2"
- openai: "npm:^4.28.4"
+ openai: "npm:^4.29.0"
pitchfinder: "npm:^2.3.2"
postcss: "npm:^8.4.35"
progress: "npm:^2.0.3"
proxy-agent: "npm:^6.4.0"
react: "npm:^18.2.0"
- react-activity-calendar: "npm:^2.2.7"
+ react-activity-calendar: "npm:^2.2.8"
react-dom: "npm:^18.2.0"
react-hook-form: "npm:^7.51.0"
react-hotkeys-hook: "npm:^4.5.0"
- react-i18next: "npm:^14.0.5"
+ react-i18next: "npm:^14.1.0"
react-markdown: "npm:^9.0.1"
- react-router-dom: "npm:^6.22.2"
+ react-router-dom: "npm:^6.22.3"
react-tooltip: "npm:^5.26.3"
reflect-metadata: "npm:^0.2.1"
rimraf: "npm:^5.0.5"
@@ -7395,16 +9151,17 @@ __metadata:
sonner: "npm:^1.4.3"
sqlite3: "npm:^5.1.7"
tailwind-merge: "npm:^2.2.1"
+ tailwind-scrollbar: "npm:^3.1.0"
tailwind-scrollbar-hide: "npm:^1.1.7"
tailwindcss: "npm:^3.4.1"
tailwindcss-animate: "npm:^1.0.7"
ts-node: "npm:^10.9.2"
tslib: "npm:^2.6.2"
- typescript: "npm:^5.3.3"
+ typescript: "npm:^5.4.2"
umzug: "npm:^3.7.0"
- vite: "npm:^5.1.5"
+ vite: "npm:^5.1.6"
vite-plugin-static-copy: "npm:^1.0.1"
- wavesurfer.js: "npm:^7.7.3"
+ wavesurfer.js: "npm:^7.7.5"
zod: "npm:^3.22.4"
zx: "npm:^7.2.3"
languageName: unknown
@@ -7438,7 +9195,7 @@ __metadata:
languageName: node
linkType: hard
-"error-ex@npm:^1.2.0":
+"error-ex@npm:^1.2.0, error-ex@npm:^1.3.1":
version: 1.3.2
resolution: "error-ex@npm:1.3.2"
dependencies:
@@ -7904,6 +9661,13 @@ __metadata:
languageName: node
linkType: hard
+"event-lite@npm:^0.1.1":
+ version: 0.1.3
+ resolution: "event-lite@npm:0.1.3"
+ checksum: 10c0/68d11a1e9001d713d673866fe07f6c310fa9054fc0a936dd5eacc37a793aa6b3331ddb1d85dbcb88ddbe6b04944566a0f1c5b515118e1ec2e640ffcb30858b3f
+ languageName: node
+ linkType: hard
+
"event-stream@npm:=3.3.4":
version: 3.3.4
resolution: "event-stream@npm:3.3.4"
@@ -8028,7 +9792,7 @@ __metadata:
languageName: node
linkType: hard
-"extend@npm:^3.0.0":
+"extend@npm:^3.0.0, extend@npm:^3.0.2":
version: 3.0.2
resolution: "extend@npm:3.0.2"
checksum: 10c0/73bf6e27406e80aa3e85b0d1c4fd987261e628064e170ca781125c0b635a3dabad5e05adbf07595ea0cf1e6c5396cacb214af933da7cbaf24fe75ff14818e8f9
@@ -8086,6 +9850,17 @@ __metadata:
languageName: node
linkType: hard
+"fast-xml-parser@npm:4.2.5":
+ version: 4.2.5
+ resolution: "fast-xml-parser@npm:4.2.5"
+ dependencies:
+ strnum: "npm:^1.0.5"
+ bin:
+ fxparser: src/cli/cli.js
+ checksum: 10c0/f422349189b70660238eff9e48c57a0b9e5142f4c442bd79f50049847006341fe8dbcaac899c54e219034f63249fdba4512542ec54ef4dec24fcf9f54ad20d42
+ languageName: node
+ linkType: hard
+
"fastq@npm:^1.6.0":
version: 1.17.1
resolution: "fastq@npm:1.17.1"
@@ -8585,6 +10360,18 @@ __metadata:
languageName: node
linkType: hard
+"gaxios@npm:^6.3.0":
+ version: 6.3.0
+ resolution: "gaxios@npm:6.3.0"
+ dependencies:
+ extend: "npm:^3.0.2"
+ https-proxy-agent: "npm:^7.0.1"
+ is-stream: "npm:^2.0.0"
+ node-fetch: "npm:^2.6.9"
+ checksum: 10c0/89b390d6a3776fcb706dc9ef9728c424595fca15afb6a7c6fb8a164a06708203189cd71e39f1617ece39e1d7ec6964f8882b2cafaf1b823a02175f758c1b8738
+ languageName: node
+ linkType: hard
+
"generate-function@npm:^2.0.0":
version: 2.3.1
resolution: "generate-function@npm:2.3.1"
@@ -8919,7 +10706,7 @@ __metadata:
languageName: node
linkType: hard
-"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6":
+"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6":
version: 4.2.11
resolution: "graceful-fs@npm:4.2.11"
checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2
@@ -8940,6 +10727,13 @@ __metadata:
languageName: node
linkType: hard
+"hard-rejection@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "hard-rejection@npm:2.1.0"
+ checksum: 10c0/febc3343a1ad575aedcc112580835b44a89a89e01f400b4eda6e8110869edfdab0b00cd1bd4c3bfec9475a57e79e0b355aecd5be46454b6a62b9a359af60e564
+ languageName: node
+ linkType: hard
+
"has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2":
version: 1.0.2
resolution: "has-bigints@npm:1.0.2"
@@ -9071,6 +10865,31 @@ __metadata:
languageName: node
linkType: hard
+"hosted-git-info@npm:^4.0.1":
+ version: 4.1.0
+ resolution: "hosted-git-info@npm:4.1.0"
+ dependencies:
+ lru-cache: "npm:^6.0.0"
+ checksum: 10c0/150fbcb001600336d17fdbae803264abed013548eea7946c2264c49ebe2ebd8c4441ba71dd23dd8e18c65de79d637f98b22d4760ba5fb2e0b15d62543d0fff07
+ languageName: node
+ linkType: hard
+
+"html-encoding-sniffer@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "html-encoding-sniffer@npm:4.0.0"
+ dependencies:
+ whatwg-encoding: "npm:^3.1.1"
+ checksum: 10c0/523398055dc61ac9b34718a719cb4aa691e4166f29187e211e1607de63dc25ac7af52ca7c9aead0c4b3c0415ffecb17326396e1202e2e86ff4bca4c0ee4c6140
+ languageName: node
+ linkType: hard
+
+"html-escaper@npm:^3.0.3":
+ version: 3.0.3
+ resolution: "html-escaper@npm:3.0.3"
+ checksum: 10c0/a042fa4139127ff7546513e90ea39cc9161a1938ce90122dbc4260d4b7252c9aa8452f4509c0c2889901b8ae9a8699179150f1f99d3f80bcf7317573c5f08f4e
+ languageName: node
+ linkType: hard
+
"html-parse-stringify@npm:^3.0.1":
version: 3.0.1
resolution: "html-parse-stringify@npm:3.0.1"
@@ -9246,12 +11065,12 @@ __metadata:
languageName: node
linkType: hard
-"i18next@npm:^23.10.0":
- version: 23.10.0
- resolution: "i18next@npm:23.10.0"
+"i18next@npm:^23.10.1":
+ version: 23.10.1
+ resolution: "i18next@npm:23.10.1"
dependencies:
"@babel/runtime": "npm:^7.23.2"
- checksum: 10c0/b6161075cfc2f3238e8e293306d70f173b5d5f4b7217d29ba15d4b70bd876911ccf15ca8fed238405c735c2a2e86e26658a17ea7cfd4040abd3100fef0a7c7d4
+ checksum: 10c0/e9cd7565cc14fec53bcf872707a2c85b255804866f436ce08a3de6b2bf84209c61b7a7870ac87c1c27de39b5d8407b72b5231d99769d200b136db023abaa8795
languageName: node
linkType: hard
@@ -9264,7 +11083,7 @@ __metadata:
languageName: node
linkType: hard
-"iconv-lite@npm:0.6, iconv-lite@npm:^0.6.2":
+"iconv-lite@npm:0.6, iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2":
version: 0.6.3
resolution: "iconv-lite@npm:0.6.3"
dependencies:
@@ -9273,7 +11092,7 @@ __metadata:
languageName: node
linkType: hard
-"ieee754@npm:^1.1.13":
+"ieee754@npm:^1.1.13, ieee754@npm:^1.1.8":
version: 1.2.1
resolution: "ieee754@npm:1.2.1"
checksum: 10c0/b0782ef5e0935b9f12883a2e2aa37baa75da6e66ce6515c168697b42160807d9330de9a32ec1ed73149aea02e0d822e572bca6f1e22bdcbd2149e13b050b17bb
@@ -9320,6 +11139,13 @@ __metadata:
languageName: node
linkType: hard
+"import-meta-resolve@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "import-meta-resolve@npm:4.0.0"
+ checksum: 10c0/709375e01f8c3a87b7870991ca29c630d71bb7e22b7bb0f622613173d87b41b4043b4a983800e6d38ab3867496a46f82d30df0cbc2e55792c91c23193eea67a1
+ languageName: node
+ linkType: hard
+
"imul@npm:^1.0.0":
version: 1.0.1
resolution: "imul@npm:1.0.1"
@@ -9341,6 +11167,13 @@ __metadata:
languageName: node
linkType: hard
+"indent-string@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "indent-string@npm:5.0.0"
+ checksum: 10c0/8ee77b57d92e71745e133f6f444d6fa3ed503ad0e1bcd7e80c8da08b42375c07117128d670589725ed07b1978065803fa86318c309ba45415b7fe13e7f170220
+ languageName: node
+ linkType: hard
+
"infer-owner@npm:^1.0.4":
version: 1.0.4
resolution: "infer-owner@npm:1.0.4"
@@ -9386,6 +11219,13 @@ __metadata:
languageName: node
linkType: hard
+"int64-buffer@npm:^0.1.9":
+ version: 0.1.10
+ resolution: "int64-buffer@npm:0.1.10"
+ checksum: 10c0/22688f6d1f4db11eaacbf8e7f0b80a23690c29d023987302c367f8c071a53b84fa1cef6f8db0a347e9326f94ff76aa3529e8e9964e99d37fc675f5dcd835ee50
+ languageName: node
+ linkType: hard
+
"internal-slot@npm:^1.0.7":
version: 1.0.7
resolution: "internal-slot@npm:1.0.7"
@@ -9418,14 +11258,14 @@ __metadata:
languageName: node
linkType: hard
-"intl-tel-input@npm:^19.5.5":
- version: 19.5.5
- resolution: "intl-tel-input@npm:19.5.5"
+"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/940c1d318bfe6433dba61f4f186d9fb446b06bc4005fe45a8de580c37f3c96f01ebc772351c516d28c7a7054858696ab4252c0b75a6f3470352e727959c5381f
+ checksum: 10c0/99937f79099456759d1c6493c2b57d8a9e9ec4b8d186599be4ee432b4a8edd14fbb889f8866b6a7e001ef6a5092ee6fce81210592e10dfc061aa4f7bb9c07c33
languageName: node
linkType: hard
@@ -9438,6 +11278,13 @@ __metadata:
languageName: node
linkType: hard
+"iota-array@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "iota-array@npm:1.0.0"
+ checksum: 10c0/a6bfc7d5bf0338ade227b302eda52cea3db44cc6dd5803154147cdcee28e9cb65ca76c5859ab2bfe21d91ecc945c57a0dd446bbc657581bbdf92cda9c24def56
+ languageName: node
+ linkType: hard
+
"ip-address@npm:^9.0.5":
version: 9.0.5
resolution: "ip-address@npm:9.0.5"
@@ -9524,7 +11371,7 @@ __metadata:
languageName: node
linkType: hard
-"is-buffer@npm:~1.1.6":
+"is-buffer@npm:^1.0.2, is-buffer@npm:~1.1.6":
version: 1.1.6
resolution: "is-buffer@npm:1.1.6"
checksum: 10c0/ae18aa0b6e113d6c490ad1db5e8df9bdb57758382b313f5a22c9c61084875c6396d50bbf49315f5b1926d142d74dfb8d31b40d993a383e0a158b15fea7a82234
@@ -9538,7 +11385,7 @@ __metadata:
languageName: node
linkType: hard
-"is-core-module@npm:^2.11.0, is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1":
+"is-core-module@npm:^2.11.0, is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1, is-core-module@npm:^2.5.0":
version: 2.13.1
resolution: "is-core-module@npm:2.13.1"
dependencies:
@@ -9666,6 +11513,13 @@ __metadata:
languageName: node
linkType: hard
+"is-plain-obj@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "is-plain-obj@npm:1.1.0"
+ checksum: 10c0/daaee1805add26f781b413fdf192fc91d52409583be30ace35c82607d440da63cc4cac0ac55136716688d6c0a2c6ef3edb2254fecbd1fe06056d6bd15975ee8c
+ languageName: node
+ linkType: hard
+
"is-plain-obj@npm:^4.0.0":
version: 4.1.0
resolution: "is-plain-obj@npm:4.1.0"
@@ -9680,6 +11534,13 @@ __metadata:
languageName: node
linkType: hard
+"is-potential-custom-element-name@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "is-potential-custom-element-name@npm:1.0.1"
+ checksum: 10c0/b73e2f22bc863b0939941d369486d308b43d7aef1f9439705e3582bfccaa4516406865e32c968a35f97a99396dac84e2624e67b0a16b0a15086a785e16ce7db9
+ languageName: node
+ linkType: hard
+
"is-property@npm:^1.0.0, is-property@npm:^1.0.2":
version: 1.0.2
resolution: "is-property@npm:1.0.2"
@@ -9786,6 +11647,13 @@ __metadata:
languageName: node
linkType: hard
+"isarray@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "isarray@npm:1.0.0"
+ checksum: 10c0/18b5be6669be53425f0b84098732670ed4e727e3af33bc7f948aac01782110eb9a18b3b329c5323bcdd3acdaae547ee077d3951317e7f133bff7105264b3003d
+ languageName: node
+ linkType: hard
+
"isarray@npm:^2.0.5":
version: 2.0.5
resolution: "isarray@npm:2.0.5"
@@ -9814,6 +11682,16 @@ __metadata:
languageName: node
linkType: hard
+"isomorphic-unfetch@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "isomorphic-unfetch@npm:3.1.0"
+ dependencies:
+ node-fetch: "npm:^2.6.1"
+ unfetch: "npm:^4.2.0"
+ checksum: 10c0/d3b61fca06304db692b7f76bdfd3a00f410e42cfa7403c3b250546bf71589d18cf2f355922f57198e4cc4a9872d3647b20397a5c3edf1a347c90d57c83cf2a89
+ languageName: node
+ linkType: hard
+
"jackspeak@npm:^2.3.5":
version: 2.3.6
resolution: "jackspeak@npm:2.3.6"
@@ -9827,6 +11705,13 @@ __metadata:
languageName: node
linkType: hard
+"jieba-wasm@npm:^0.0.2":
+ version: 0.0.2
+ resolution: "jieba-wasm@npm:0.0.2"
+ checksum: 10c0/2ccd012a2b44e17cd67394dd4e0f4bb6e88139c698413af16e05246e91c2629da88503e8216816fcd0cf0636580b6cb36f16c0d3bf2952bf934b20c8c7877d16
+ languageName: node
+ linkType: hard
+
"jiti@npm:^1.19.1":
version: 1.21.0
resolution: "jiti@npm:1.21.0"
@@ -9884,6 +11769,40 @@ __metadata:
languageName: node
linkType: hard
+"jsdom@npm:^24.0.0":
+ version: 24.0.0
+ resolution: "jsdom@npm:24.0.0"
+ dependencies:
+ cssstyle: "npm:^4.0.1"
+ data-urls: "npm:^5.0.0"
+ decimal.js: "npm:^10.4.3"
+ form-data: "npm:^4.0.0"
+ html-encoding-sniffer: "npm:^4.0.0"
+ http-proxy-agent: "npm:^7.0.0"
+ https-proxy-agent: "npm:^7.0.2"
+ is-potential-custom-element-name: "npm:^1.0.1"
+ nwsapi: "npm:^2.2.7"
+ parse5: "npm:^7.1.2"
+ rrweb-cssom: "npm:^0.6.0"
+ saxes: "npm:^6.0.0"
+ symbol-tree: "npm:^3.2.4"
+ tough-cookie: "npm:^4.1.3"
+ w3c-xmlserializer: "npm:^5.0.0"
+ webidl-conversions: "npm:^7.0.0"
+ whatwg-encoding: "npm:^3.1.1"
+ whatwg-mimetype: "npm:^4.0.0"
+ whatwg-url: "npm:^14.0.0"
+ ws: "npm:^8.16.0"
+ xml-name-validator: "npm:^5.0.0"
+ peerDependencies:
+ canvas: ^2.11.2
+ peerDependenciesMeta:
+ canvas:
+ optional: true
+ checksum: 10c0/7b35043d7af39ad6dcaef0fa5679d8c8a94c6c9b6cc4a79222b7c9987d57ab7150c50856684ae56b473ab28c7d82aec0fb7ca19dcbd4c3f46683c807d717a3af
+ languageName: node
+ linkType: hard
+
"jsesc@npm:^2.5.1":
version: 2.5.2
resolution: "jsesc@npm:2.5.2"
@@ -9900,6 +11819,13 @@ __metadata:
languageName: node
linkType: hard
+"json-parse-even-better-errors@npm:^2.3.0":
+ version: 2.3.1
+ resolution: "json-parse-even-better-errors@npm:2.3.1"
+ checksum: 10c0/140932564c8f0b88455432e0f33c4cb4086b8868e37524e07e723f4eaedb9425bdc2bafd71bd1d9765bd15fd1e2d126972bc83990f55c467168c228c24d665f3
+ languageName: node
+ linkType: hard
+
"json-schema-traverse@npm:^0.4.1":
version: 0.4.1
resolution: "json-schema-traverse@npm:0.4.1"
@@ -10034,6 +11960,17 @@ __metadata:
languageName: node
linkType: hard
+"katex@npm:^0.16.9":
+ version: 0.16.9
+ resolution: "katex@npm:0.16.9"
+ dependencies:
+ commander: "npm:^8.3.0"
+ bin:
+ katex: cli.js
+ checksum: 10c0/750b1d61063eda970b97bfb2e8e26c898548ce2b544286813982498b1ce1d4cfae41dd32fa7e9488b6118a4c8df5cf06871746993d45227de34ea224c63199df
+ languageName: node
+ linkType: hard
+
"keyv@npm:^4.0.0, keyv@npm:^4.5.3":
version: 4.5.4
resolution: "keyv@npm:4.5.4"
@@ -10050,6 +11987,13 @@ __metadata:
languageName: node
linkType: hard
+"kind-of@npm:^6.0.3":
+ version: 6.0.3
+ resolution: "kind-of@npm:6.0.3"
+ checksum: 10c0/61cdff9623dabf3568b6445e93e31376bee1cdb93f8ba7033d86022c2a9b1791a1d9510e026e6465ebd701a6dd2f7b0808483ad8838341ac52f003f512e0b4c4
+ languageName: node
+ linkType: hard
+
"kleur@npm:^4.0.3":
version: 4.1.5
resolution: "kleur@npm:4.1.5"
@@ -10057,14 +12001,25 @@ __metadata:
languageName: node
linkType: hard
-"langchain@npm:^0.1.25":
- version: 0.1.25
- resolution: "langchain@npm:0.1.25"
+"kuromoji@npm:^0.1.2":
+ version: 0.1.2
+ resolution: "kuromoji@npm:0.1.2"
+ dependencies:
+ async: "npm:^2.0.1"
+ doublearray: "npm:0.0.2"
+ zlibjs: "npm:^0.3.1"
+ checksum: 10c0/abc799f869db4bd21a8d30ccd764a059dcff56728b7dc9a190eea5b2d01bf90ed47e13445706de865e38ca51b8a48685497e257cae8fc7e646cdab65145e9692
+ languageName: node
+ linkType: hard
+
+"langchain@npm:^0.1.28":
+ version: 0.1.28
+ resolution: "langchain@npm:0.1.28"
dependencies:
"@anthropic-ai/sdk": "npm:^0.9.1"
- "@langchain/community": "npm:~0.0.33"
- "@langchain/core": "npm:~0.1.36"
- "@langchain/openai": "npm:~0.0.14"
+ "@langchain/community": "npm:~0.0.36"
+ "@langchain/core": "npm:~0.1.44"
+ "@langchain/openai": "npm:~0.0.19"
binary-extensions: "npm:^2.2.0"
expr-eval: "npm:^2.0.2"
js-tiktoken: "npm:^1.0.7"
@@ -10104,7 +12059,7 @@ __metadata:
couchbase: ^4.2.10
d3-dsv: ^2.0.0
epub2: ^3.0.1
- fast-xml-parser: ^4.2.7
+ fast-xml-parser: "*"
google-auth-library: ^8.9.0
handlebars: ^4.7.8
html-to-text: ^9.0.5
@@ -10233,7 +12188,7 @@ __metadata:
optional: true
youtubei.js:
optional: true
- checksum: 10c0/ce8fbe8180df7dfb1f12b5dea176af29adbfd4b291234053274a1410f2d862ab73f8c9f31bee49c750ca5a4e12acdfc93a0bcc3a584e5b896d04776bea58e6ae
+ checksum: 10c0/b0646c72e8ad6f21eeb778a64c1330e9df0789312adcff4f52572cc07be695d840cf0d83810b03f34c18b52d8e8bd6076e63eb07ae9aa21c78209957d0d03bf0
languageName: node
linkType: hard
@@ -10503,7 +12458,7 @@ __metadata:
languageName: node
linkType: hard
-"lodash@npm:^4.17.15, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4":
+"lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4":
version: 4.17.21
resolution: "lodash@npm:4.17.21"
checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c
@@ -10589,12 +12544,12 @@ __metadata:
languageName: node
linkType: hard
-"lucide-react@npm:^0.344.0":
- version: 0.344.0
- resolution: "lucide-react@npm:0.344.0"
+"lucide-react@npm:^0.358.0":
+ version: 0.358.0
+ resolution: "lucide-react@npm:0.358.0"
peerDependencies:
react: ^16.5.1 || ^17.0.0 || ^18.0.0
- checksum: 10c0/f54c715459c190aab0fad8df2f76e06a6bf5be1b37d5d13f0ecfb2133dccda763b8b03b40463075fc93b2a754ad1b8d85adf3b880bf6da5f791dd17fcb788a37
+ checksum: 10c0/cbfd01bb5afde9b1e30d2e6d24d8ae202aa099d5ee8917b34ac0a327b456c705270034a76c65e39ed368ce753de1ee2d9cd8d4bdfd1a03db3cd9b6cfb5e165e9
languageName: node
linkType: hard
@@ -10707,7 +12662,14 @@ __metadata:
languageName: node
linkType: hard
-"map-obj@npm:^4.3.0":
+"map-obj@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "map-obj@npm:1.0.1"
+ checksum: 10c0/ccca88395e7d38671ed9f5652ecf471ecd546924be2fb900836b9da35e068a96687d96a5f93dcdfa94d9a27d649d2f10a84595590f89a347fb4dda47629dcc52
+ languageName: node
+ linkType: hard
+
+"map-obj@npm:^4.1.0, map-obj@npm:^4.3.0":
version: 4.3.0
resolution: "map-obj@npm:4.3.0"
checksum: 10c0/1c19e1c88513c8abdab25c316367154c6a0a6a0f77e3e8c391bb7c0e093aefed293f539d026dc013d86219e5e4c25f23b0003ea588be2101ccd757bacc12d43b
@@ -10987,6 +12949,26 @@ __metadata:
languageName: node
linkType: hard
+"meow@npm:^10.1.1":
+ version: 10.1.5
+ resolution: "meow@npm:10.1.5"
+ dependencies:
+ "@types/minimist": "npm:^1.2.2"
+ camelcase-keys: "npm:^7.0.0"
+ decamelize: "npm:^5.0.0"
+ decamelize-keys: "npm:^1.1.0"
+ hard-rejection: "npm:^2.1.0"
+ minimist-options: "npm:4.1.0"
+ normalize-package-data: "npm:^3.0.2"
+ read-pkg-up: "npm:^8.0.0"
+ redent: "npm:^4.0.0"
+ trim-newlines: "npm:^4.0.2"
+ type-fest: "npm:^1.2.2"
+ yargs-parser: "npm:^20.2.9"
+ checksum: 10c0/a513849022edd5ddcc41d28c679d31978abe414d9db5bc457e95e537a4327b2910fd2f699cdd883293f9a5da8951a50939bf60fbd62f7fe12b9ddf96a84b1b27
+ languageName: node
+ linkType: hard
+
"merge-descriptors@npm:1.0.1":
version: 1.0.1
resolution: "merge-descriptors@npm:1.0.1"
@@ -11001,9 +12983,9 @@ __metadata:
languageName: node
linkType: hard
-"mermaid@npm:^10.8.0":
- version: 10.8.0
- resolution: "mermaid@npm:10.8.0"
+"mermaid@npm:^10.9.0":
+ version: 10.9.0
+ resolution: "mermaid@npm:10.9.0"
dependencies:
"@braintree/sanitize-url": "npm:^6.0.1"
"@types/d3-scale": "npm:^4.0.3"
@@ -11016,6 +12998,7 @@ __metadata:
dayjs: "npm:^1.11.7"
dompurify: "npm:^3.0.5"
elkjs: "npm:^0.9.0"
+ katex: "npm:^0.16.9"
khroma: "npm:^2.0.0"
lodash-es: "npm:^4.17.21"
mdast-util-from-markdown: "npm:^1.3.0"
@@ -11024,7 +13007,7 @@ __metadata:
ts-dedent: "npm:^2.2.0"
uuid: "npm:^9.0.0"
web-worker: "npm:^1.2.0"
- checksum: 10c0/5ecf6dcb174ea891ed231ff8a2d0536dd72e32d2e80c3a793b373122cc903af81f59e4d2b262845a51749b80b5313a6d7ccff77cf803217e98b8d54f209f0f37
+ checksum: 10c0/ff1a96c8cd3384f64c9254d18f795f7fb2e454c47595c3deadbf6468544c607c5968c4a4bff8220bf27ccf0294f5527bc93660eea9958b4bc03e5e9871eaf57e
languageName: node
linkType: hard
@@ -11524,9 +13507,9 @@ __metadata:
languageName: node
linkType: hard
-"microsoft-cognitiveservices-speech-sdk@npm:^1.35.0":
- version: 1.35.0
- resolution: "microsoft-cognitiveservices-speech-sdk@npm:1.35.0"
+"microsoft-cognitiveservices-speech-sdk@npm:^1.36.0":
+ version: 1.36.0
+ resolution: "microsoft-cognitiveservices-speech-sdk@npm:1.36.0"
dependencies:
"@types/webrtc": "npm:^0.0.37"
agent-base: "npm:^6.0.1"
@@ -11534,7 +13517,7 @@ __metadata:
https-proxy-agent: "npm:^4.0.0"
uuid: "npm:^9.0.0"
ws: "npm:^7.5.6"
- checksum: 10c0/6525732ac0e639dbfaee2e0fe71b58f56936b9ab4d4fe960c636af5657836d8dcf3fff61af613cd5419e4474268f995f5d0e134580c373e6986cfa04baf14eb7
+ checksum: 10c0/53e8c6401e179dd35afd2dd536d4273ff7679771641955d0a7b2e707ed0c7f0a3218eba6cc6ebf9120d392e25a54b1af64055eac189928213f625ed6d4a4b8c3
languageName: node
linkType: hard
@@ -11593,6 +13576,13 @@ __metadata:
languageName: node
linkType: hard
+"min-indent@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "min-indent@npm:1.0.1"
+ checksum: 10c0/7e207bd5c20401b292de291f02913230cb1163abca162044f7db1d951fa245b174dc00869d40dd9a9f32a885ad6a5f3e767ee104cf278f399cb4e92d3f582d5c
+ languageName: node
+ linkType: hard
+
"minimatch@npm:9.0.3, minimatch@npm:^9.0.1, minimatch@npm:^9.0.3":
version: 9.0.3
resolution: "minimatch@npm:9.0.3"
@@ -11620,6 +13610,17 @@ __metadata:
languageName: node
linkType: hard
+"minimist-options@npm:4.1.0":
+ version: 4.1.0
+ resolution: "minimist-options@npm:4.1.0"
+ dependencies:
+ arrify: "npm:^1.0.1"
+ is-plain-obj: "npm:^1.1.0"
+ kind-of: "npm:^6.0.3"
+ checksum: 10c0/7871f9cdd15d1e7374e5b013e2ceda3d327a06a8c7b38ae16d9ef941e07d985e952c589e57213f7aa90a8744c60aed9524c0d85e501f5478382d9181f2763f54
+ languageName: node
+ linkType: hard
+
"minimist@npm:^1.1.1, minimist@npm:^1.1.3, minimist@npm:^1.2.0, minimist@npm:^1.2.3, minimist@npm:^1.2.5, minimist@npm:^1.2.6, minimist@npm:^1.2.8":
version: 1.2.8
resolution: "minimist@npm:1.2.8"
@@ -11860,6 +13861,13 @@ __metadata:
languageName: node
linkType: hard
+"moving-median@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "moving-median@npm:1.0.0"
+ checksum: 10c0/e174657eb053f0423272524ee0dd7e8bd9a925945828b7b4a13a67b1c69ff617a0dd5cf28921cf1281c2bf7eda64f62bf79e73892bad75250f66f1d56489a208
+ languageName: node
+ linkType: hard
+
"mri@npm:^1.1.0":
version: 1.2.0
resolution: "mri@npm:1.2.0"
@@ -11888,6 +13896,20 @@ __metadata:
languageName: node
linkType: hard
+"msgpack-lite@npm:^0.1.26":
+ version: 0.1.26
+ resolution: "msgpack-lite@npm:0.1.26"
+ dependencies:
+ event-lite: "npm:^0.1.1"
+ ieee754: "npm:^1.1.8"
+ int64-buffer: "npm:^0.1.9"
+ isarray: "npm:^1.0.0"
+ bin:
+ msgpack: ./bin/msgpack
+ checksum: 10c0/ba571dca7d789fa033523b74c1aae52bbd023834bcad3f397f481889a8df6cdb6b163b73307be8b744c420ce6d3c0e697f588bb96984c04f9dcf09370b9f12d4
+ languageName: node
+ linkType: hard
+
"murmur-32@npm:^0.1.0 || ^0.2.0":
version: 0.2.0
resolution: "murmur-32@npm:0.2.0"
@@ -11942,6 +13964,25 @@ __metadata:
languageName: node
linkType: hard
+"ndarray-ops@npm:^1.2.2":
+ version: 1.2.2
+ resolution: "ndarray-ops@npm:1.2.2"
+ dependencies:
+ cwise-compiler: "npm:^1.0.0"
+ checksum: 10c0/7391bfcc5d4f0142110c8c478332ea33d358bb3d6df8134d187ec5fb533fd2e034f919372f43c594e12609ce327e626cde52d23f966dcbc7c6f50c5710e4c2fd
+ languageName: node
+ linkType: hard
+
+"ndarray@npm:^1.0.19":
+ version: 1.0.19
+ resolution: "ndarray@npm:1.0.19"
+ dependencies:
+ iota-array: "npm:^1.0.0"
+ is-buffer: "npm:^1.0.2"
+ checksum: 10c0/e5929a845dae326052ff024f4f624b5f81e0be750224495baa0c7a02afd4e1117198452465c052f0bd111358b05c15655a797ec959dbbbe042c6ae573de09046
+ languageName: node
+ linkType: hard
+
"negotiator@npm:0.6.3, negotiator@npm:^0.6.2, negotiator@npm:^0.6.3":
version: 0.6.3
resolution: "negotiator@npm:0.6.3"
@@ -11956,14 +13997,13 @@ __metadata:
languageName: node
linkType: hard
-"next-themes@npm:^0.2.1":
- version: 0.2.1
- resolution: "next-themes@npm:0.2.1"
+"next-themes@npm:^0.3.0":
+ version: 0.3.0
+ resolution: "next-themes@npm:0.3.0"
peerDependencies:
- next: "*"
- react: "*"
- react-dom: "*"
- checksum: 10c0/979dec0a2de049ce7d1b5da835e7f7dc3b7ec83ba9e464348f497a52a6a6e5b5c395c97f071f66a63f50f22cce89fb6d19061ec7e75643b0eab215b21794bde7
+ react: ^16.8 || ^17 || ^18
+ react-dom: ^16.8 || ^17 || ^18
+ checksum: 10c0/72bd670ad6b9f547dc18cece340dfd1ac41e3e7b37eb321d4767db90bfa2c239f937011cd0efe35ca0081f1ea260051bc0868808ef39b0fbff2ddefd7146cec6
languageName: node
linkType: hard
@@ -12019,7 +14059,7 @@ __metadata:
languageName: node
linkType: hard
-"node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.7":
+"node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.7, node-fetch@npm:^2.6.9":
version: 2.7.0
resolution: "node-fetch@npm:2.7.0"
dependencies:
@@ -12153,6 +14193,18 @@ __metadata:
languageName: node
linkType: hard
+"normalize-package-data@npm:^3.0.2":
+ version: 3.0.3
+ resolution: "normalize-package-data@npm:3.0.3"
+ dependencies:
+ hosted-git-info: "npm:^4.0.1"
+ is-core-module: "npm:^2.5.0"
+ semver: "npm:^7.3.4"
+ validate-npm-package-license: "npm:^3.0.1"
+ checksum: 10c0/e5d0f739ba2c465d41f77c9d950e291ea4af78f8816ddb91c5da62257c40b76d8c83278b0d08ffbcd0f187636ebddad20e181e924873916d03e6e5ea2ef026be
+ languageName: node
+ linkType: hard
+
"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0":
version: 3.0.0
resolution: "normalize-path@npm:3.0.0"
@@ -12211,6 +14263,13 @@ __metadata:
languageName: node
linkType: hard
+"nwsapi@npm:^2.2.7":
+ version: 2.2.7
+ resolution: "nwsapi@npm:2.2.7"
+ checksum: 10c0/44be198adae99208487a1c886c0a3712264f7bbafa44368ad96c003512fed2753d4e22890ca1e6edb2690c3456a169f2a3c33bfacde1905cf3bf01c7722464db
+ languageName: node
+ linkType: hard
+
"object-assign@npm:^4.0.1, object-assign@npm:^4.1.1":
version: 4.1.1
resolution: "object-assign@npm:4.1.1"
@@ -12331,7 +14390,24 @@ __metadata:
languageName: node
linkType: hard
-"openai@npm:^4.26.0, openai@npm:^4.28.4":
+"onnxruntime-common@npm:1.17.0":
+ version: 1.17.0
+ resolution: "onnxruntime-common@npm:1.17.0"
+ checksum: 10c0/5d711197a2f0facb0dfc0597cf7f8c46b00ccadf28c9923e5159213f18697c90e3f2a7df40d7e7311de92c55eccd5bd254a771daf203f2b2df06bf806d1e0b62
+ languageName: node
+ linkType: hard
+
+"onnxruntime-node@npm:^1.17.0":
+ version: 1.17.0
+ resolution: "onnxruntime-node@npm:1.17.0"
+ dependencies:
+ onnxruntime-common: "npm:1.17.0"
+ checksum: 10c0/407b35baf75280b78eaaa41528356628f495121933b7aeaaaf5e5b8d85c9df368626dbfc09091992a24f4f0403bf061b14f02b9f44d6ed339ecb05c6e1813ad6
+ conditions: (os=win32 | os=darwin | os=linux)
+ languageName: node
+ linkType: hard
+
+"openai@npm:^4.26.0":
version: 4.28.4
resolution: "openai@npm:4.28.4"
dependencies:
@@ -12350,6 +14426,25 @@ __metadata:
languageName: node
linkType: hard
+"openai@npm:^4.29.0":
+ version: 4.29.0
+ resolution: "openai@npm:4.29.0"
+ dependencies:
+ "@types/node": "npm:^18.11.18"
+ "@types/node-fetch": "npm:^2.6.4"
+ abort-controller: "npm:^3.0.0"
+ agentkeepalive: "npm:^4.2.1"
+ digest-fetch: "npm:^1.3.0"
+ form-data-encoder: "npm:1.7.2"
+ formdata-node: "npm:^4.3.2"
+ node-fetch: "npm:^2.6.7"
+ web-streams-polyfill: "npm:^3.2.1"
+ bin:
+ openai: bin/cli
+ checksum: 10c0/df5a99c7a54f782780446cfb346d18793ded57a54908d839ca49967f85f8803c74ec7473f11426228af2c1df2c0d2325d52fe5590e54b194552593db7c524637
+ languageName: node
+ linkType: hard
+
"openapi-types@npm:^12.1.3":
version: 12.1.3
resolution: "openapi-types@npm:12.1.3"
@@ -12607,6 +14702,18 @@ __metadata:
languageName: node
linkType: hard
+"parse-json@npm:^5.2.0":
+ version: 5.2.0
+ resolution: "parse-json@npm:5.2.0"
+ dependencies:
+ "@babel/code-frame": "npm:^7.0.0"
+ error-ex: "npm:^1.3.1"
+ json-parse-even-better-errors: "npm:^2.3.0"
+ lines-and-columns: "npm:^1.1.6"
+ checksum: 10c0/77947f2253005be7a12d858aedbafa09c9ae39eb4863adf330f7b416ca4f4a08132e453e08de2db46459256fb66afaac5ee758b44fe6541b7cdaf9d252e59585
+ languageName: node
+ linkType: hard
+
"parse-passwd@npm:^1.0.0":
version: 1.0.0
resolution: "parse-passwd@npm:1.0.0"
@@ -12640,7 +14747,7 @@ __metadata:
languageName: node
linkType: hard
-"parse5@npm:^7.0.0":
+"parse5@npm:^7.0.0, parse5@npm:^7.1.2":
version: 7.1.2
resolution: "parse5@npm:7.1.2"
dependencies:
@@ -12666,6 +14773,18 @@ __metadata:
languageName: node
linkType: hard
+"path-exists-cli@npm:2.0.0":
+ version: 2.0.0
+ resolution: "path-exists-cli@npm:2.0.0"
+ dependencies:
+ meow: "npm:^10.1.1"
+ path-exists: "npm:^5.0.0"
+ bin:
+ path-exists: cli.js
+ checksum: 10c0/25b7ef80970641f7734c4367accf10e6cb36f881f0f93754cd94532d6847299cbe2930e6eaaed662fded26132372e527c9e9fa02271dbd14628d890134927480
+ languageName: node
+ linkType: hard
+
"path-exists@npm:^3.0.0":
version: 3.0.0
resolution: "path-exists@npm:3.0.0"
@@ -12680,6 +14799,13 @@ __metadata:
languageName: node
linkType: hard
+"path-exists@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "path-exists@npm:5.0.0"
+ checksum: 10c0/b170f3060b31604cde93eefdb7392b89d832dfbc1bed717c9718cbe0f230c1669b7e75f87e19901da2250b84d092989a0f9e44d2ef41deb09aa3ad28e691a40a
+ languageName: node
+ linkType: hard
+
"path-is-absolute@npm:^1.0.0":
version: 1.0.1
resolution: "path-is-absolute@npm:1.0.1"
@@ -13102,6 +15228,13 @@ __metadata:
languageName: node
linkType: hard
+"psl@npm:^1.1.33":
+ version: 1.9.0
+ resolution: "psl@npm:1.9.0"
+ checksum: 10c0/6a3f805fdab9442f44de4ba23880c4eba26b20c8e8e0830eff1cb31007f6825dace61d17203c58bfe36946842140c97a1ba7f67bc63ca2d88a7ee052b65d97ab
+ languageName: node
+ linkType: hard
+
"pump@npm:^3.0.0":
version: 3.0.0
resolution: "pump@npm:3.0.0"
@@ -13112,7 +15245,7 @@ __metadata:
languageName: node
linkType: hard
-"punycode@npm:^2.1.0":
+"punycode@npm:^2.1.0, punycode@npm:^2.1.1, punycode@npm:^2.3.1":
version: 2.3.1
resolution: "punycode@npm:2.3.1"
checksum: 10c0/14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9
@@ -13128,6 +15261,13 @@ __metadata:
languageName: node
linkType: hard
+"querystringify@npm:^2.1.1":
+ version: 2.2.0
+ resolution: "querystringify@npm:2.2.0"
+ checksum: 10c0/3258bc3dbdf322ff2663619afe5947c7926a6ef5fb78ad7d384602974c467fadfc8272af44f5eb8cddd0d011aae8fabf3a929a8eee4b86edcc0a21e6bd10f9aa
+ languageName: node
+ linkType: hard
+
"queue-microtask@npm:^1.2.2":
version: 1.2.3
resolution: "queue-microtask@npm:1.2.3"
@@ -13201,9 +15341,9 @@ __metadata:
languageName: node
linkType: hard
-"react-activity-calendar@npm:^2.2.7":
- version: 2.2.7
- resolution: "react-activity-calendar@npm:2.2.7"
+"react-activity-calendar@npm:^2.2.8":
+ version: 2.2.8
+ resolution: "react-activity-calendar@npm:2.2.8"
dependencies:
"@types/chroma-js": "npm:^2.4.3"
chroma-js: "npm:^2.4.2"
@@ -13211,7 +15351,7 @@ __metadata:
peerDependencies:
react: ^17.0.0 || ^18.0.0
react-dom: ^17.0.0 || ^18.0.0
- checksum: 10c0/2714e2a22f46b30436b050e370a0e3ffd27c36aaf5b0c07afefebfa0e4520e16cf994e86c6fb5eab6cf621941a3effc90c290325d18f55963f3e27643fd532ca
+ checksum: 10c0/a19af502299e7ada4220b00ec6cf6055fb2b984dbe66ab97872a379119a3f2111c4879f43fd6d5405612771545806d51c46a308e4e37088bf285df7947de6ced
languageName: node
linkType: hard
@@ -13246,9 +15386,9 @@ __metadata:
languageName: node
linkType: hard
-"react-i18next@npm:^14.0.5":
- version: 14.0.5
- resolution: "react-i18next@npm:14.0.5"
+"react-i18next@npm:^14.1.0":
+ version: 14.1.0
+ resolution: "react-i18next@npm:14.1.0"
dependencies:
"@babel/runtime": "npm:^7.23.9"
html-parse-stringify: "npm:^3.0.1"
@@ -13260,7 +15400,7 @@ __metadata:
optional: true
react-native:
optional: true
- checksum: 10c0/60e3bedc6889689cfb96005b134da79d50097d3ff088284b35f213820aacedbdad1ff32e97b8447db70834c16d472ded829675e05c2a099baea9fd96b3a5b72f
+ checksum: 10c0/d3e2d1e5183068a7a23f2fefc432d61546baef0afef176929a1a7b33489e5b3a2a892745a4424327c4bd3ab02ee3a6a4e450b57c2598393032a1efdbe57f8841
languageName: node
linkType: hard
@@ -13334,27 +15474,27 @@ __metadata:
languageName: node
linkType: hard
-"react-router-dom@npm:^6.22.2":
- version: 6.22.2
- resolution: "react-router-dom@npm:6.22.2"
+"react-router-dom@npm:^6.22.3":
+ version: 6.22.3
+ resolution: "react-router-dom@npm:6.22.3"
dependencies:
- "@remix-run/router": "npm:1.15.2"
- react-router: "npm:6.22.2"
+ "@remix-run/router": "npm:1.15.3"
+ react-router: "npm:6.22.3"
peerDependencies:
react: ">=16.8"
react-dom: ">=16.8"
- checksum: 10c0/5dc5a54a72b0470cce571f95021516f1afbe978f9b5103a0f7de9e8585d2f5f8d084f810f3eb648b9701a941a17f3a68517b07a4827dfc4bdb5f0ff0c18920a8
+ checksum: 10c0/39b0472db5d153cbbbf4f5df5c0b26f2b75ffd7b857d7b67d17e03f4618d806b957cf033fbeb265bb317ade951e6ce0d576311bdf6eb15a7013203079cfadf03
languageName: node
linkType: hard
-"react-router@npm:6.22.2":
- version: 6.22.2
- resolution: "react-router@npm:6.22.2"
+"react-router@npm:6.22.3":
+ version: 6.22.3
+ resolution: "react-router@npm:6.22.3"
dependencies:
- "@remix-run/router": "npm:1.15.2"
+ "@remix-run/router": "npm:1.15.3"
peerDependencies:
react: ">=16.8"
- checksum: 10c0/e0a0d1a0c8566b377cda632691a7c39d4009cbc8fced4fe06f13789a8acc38c474a366984b536b109e3685f3d7e1f839d6bec7b28fb96d311d86d02fc8999379
+ checksum: 10c0/a2c85c3d1fa93585e312b1f7e6e21d1ca421875013a8d879e109d3ed41fb035bc93faef4cd42b354ea18d039bc50b679bf752679ad83ac26a986e3432fbd0462
languageName: node
linkType: hard
@@ -13427,6 +15567,17 @@ __metadata:
languageName: node
linkType: hard
+"read-pkg-up@npm:^8.0.0":
+ version: 8.0.0
+ resolution: "read-pkg-up@npm:8.0.0"
+ dependencies:
+ find-up: "npm:^5.0.0"
+ read-pkg: "npm:^6.0.0"
+ type-fest: "npm:^1.0.1"
+ checksum: 10c0/cf3905ccbe5cd602f23192cc7ca65ed17561bab117eadb9aed817441d5bfc6b9a11215c2a3e9505f501d046818f3c4180dbea61fa83c42083e0b4e407d5cc745
+ languageName: node
+ linkType: hard
+
"read-pkg@npm:^2.0.0":
version: 2.0.0
resolution: "read-pkg@npm:2.0.0"
@@ -13438,6 +15589,18 @@ __metadata:
languageName: node
linkType: hard
+"read-pkg@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "read-pkg@npm:6.0.0"
+ dependencies:
+ "@types/normalize-package-data": "npm:^2.4.0"
+ normalize-package-data: "npm:^3.0.2"
+ parse-json: "npm:^5.2.0"
+ type-fest: "npm:^1.0.1"
+ checksum: 10c0/b51ee5eed75324f4fac34c9a40b5e4b403de4c532242be01959c9bbdb1ff9db1c6c2aefaba569622fec49d1ead866e97ba856ab145f6e11039b11f7bec1318ba
+ languageName: node
+ linkType: hard
+
"readable-stream@npm:^3.0.2, readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0":
version: 3.6.2
resolution: "readable-stream@npm:3.6.2"
@@ -13467,6 +15630,16 @@ __metadata:
languageName: node
linkType: hard
+"redent@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "redent@npm:4.0.0"
+ dependencies:
+ indent-string: "npm:^5.0.0"
+ strip-indent: "npm:^4.0.0"
+ checksum: 10c0/a9b640c8f4b2b5b26a1a908706475ff404dd50a97d6f094bc3c59717be922622927cc7d601d4ae2857d897ad243fd979bd76d751a0481cee8be7024e5fb4c662
+ languageName: node
+ linkType: hard
+
"reflect-metadata@npm:^0.2.1":
version: 0.2.1
resolution: "reflect-metadata@npm:0.2.1"
@@ -13532,6 +15705,13 @@ __metadata:
languageName: node
linkType: hard
+"requires-port@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "requires-port@npm:1.0.0"
+ checksum: 10c0/b2bfdd09db16c082c4326e573a82c0771daaf7b53b9ce8ad60ea46aa6e30aaf475fe9b164800b89f93b748d2c234d8abff945d2551ba47bf5698e04cd7713267
+ languageName: node
+ linkType: hard
+
"resolve-alpn@npm:^1.0.0":
version: 1.2.1
resolution: "resolve-alpn@npm:1.2.1"
@@ -13766,6 +15946,13 @@ __metadata:
languageName: unknown
linkType: soft
+"rrweb-cssom@npm:^0.6.0":
+ version: 0.6.0
+ resolution: "rrweb-cssom@npm:0.6.0"
+ checksum: 10c0/3d9d90d53c2349ea9c8509c2690df5a4ef930c9cf8242aeb9425d4046f09d712bb01047e00da0e1c1dab5db35740b3d78fd45c3e7272f75d3724a563f27c30a3
+ languageName: node
+ linkType: hard
+
"run-parallel@npm:^1.1.9":
version: 1.2.0
resolution: "run-parallel@npm:1.2.0"
@@ -13837,16 +16024,32 @@ __metadata:
languageName: node
linkType: hard
-"sass@npm:^1.71.1":
- version: 1.71.1
- resolution: "sass@npm:1.71.1"
+"sam-js@npm:^0.2.1":
+ version: 0.2.1
+ resolution: "sam-js@npm:0.2.1"
+ checksum: 10c0/5312b70541b5738a309c6f359528d40c6511c49879ba1ee7d51a1480973fed4787d5c782c92284df43d8a27f6161a7330778e534d0aaba4fe814c194c3217bf8
+ languageName: node
+ linkType: hard
+
+"sass@npm:^1.72.0":
+ version: 1.72.0
+ resolution: "sass@npm:1.72.0"
dependencies:
chokidar: "npm:>=3.0.0 <4.0.0"
immutable: "npm:^4.0.0"
source-map-js: "npm:>=0.6.2 <2.0.0"
bin:
sass: sass.js
- checksum: 10c0/59d79a6e106747746792b0c71908ae0aecdaf9b794d5724ee64e5249412f0d8ebe7ee2bf12946618848f14f949c4f6b530d82da3e62ab31c71198c6f73002130
+ checksum: 10c0/7df1bb470648edc4b528976b1b165c78d4c6731f680afac7cdc8324142f1ef4304598d317d98dac747a2ae8eee17271d760def90bba072021a8b19b459336ccd
+ languageName: node
+ linkType: hard
+
+"saxes@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "saxes@npm:6.0.0"
+ dependencies:
+ xmlchars: "npm:^2.2.0"
+ checksum: 10c0/3847b839f060ef3476eb8623d099aa502ad658f5c40fd60c105ebce86d244389b0d76fcae30f4d0c728d7705ceb2f7e9b34bb54717b6a7dbedaf5dad2d9a4b74
languageName: node
linkType: hard
@@ -13893,7 +16096,7 @@ __metadata:
languageName: node
linkType: hard
-"semver@npm:^7.1.1, semver@npm:^7.1.3, semver@npm:^7.2.1, semver@npm:^7.3.2, semver@npm:^7.3.5, semver@npm:^7.5.4":
+"semver@npm:^7.1.1, semver@npm:^7.1.3, semver@npm:^7.2.1, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.5.4":
version: 7.6.0
resolution: "semver@npm:7.6.0"
dependencies:
@@ -14280,6 +16483,22 @@ __metadata:
languageName: node
linkType: hard
+"spacetime-holiday@npm:0.3.0":
+ version: 0.3.0
+ resolution: "spacetime-holiday@npm:0.3.0"
+ peerDependencies:
+ spacetime: ">=6.3.0"
+ checksum: 10c0/1547771afc18d41891478a3f08fd9263a72a0f3434195ee28397b5bc93c047366986ff139c28a54bdd840e68ac5634ce55a68c6972262e613b43dcd2eade9c12
+ languageName: node
+ linkType: hard
+
+"spacetime@npm:7.6.0":
+ version: 7.6.0
+ resolution: "spacetime@npm:7.6.0"
+ checksum: 10c0/43a3909f5adb4c9819974005bdacec67ee7a1014502379d2580278f130327c049340816bc979961a8b2c55f4860895c8793d1cb87075e827d10d7f9cfe5ccc89
+ languageName: node
+ linkType: hard
+
"spdx-correct@npm:^3.0.0":
version: 3.2.0
resolution: "spdx-correct@npm:3.2.0"
@@ -14518,7 +16737,7 @@ __metadata:
languageName: node
linkType: hard
-"strip-ansi@npm:^7.0.1":
+"strip-ansi@npm:^7.0.1, strip-ansi@npm:^7.1.0":
version: 7.1.0
resolution: "strip-ansi@npm:7.1.0"
dependencies:
@@ -14541,6 +16760,15 @@ __metadata:
languageName: node
linkType: hard
+"strip-indent@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "strip-indent@npm:4.0.0"
+ dependencies:
+ min-indent: "npm:^1.0.1"
+ checksum: 10c0/6b1fb4e22056867f5c9e7a6f3f45922d9a2436cac758607d58aeaac0d3b16ec40b1c43317de7900f1b8dd7a4107352fa47fb960f2c23566538c51e8585c8870e
+ languageName: node
+ linkType: hard
+
"strip-json-comments@npm:^3.1.1":
version: 3.1.1
resolution: "strip-json-comments@npm:3.1.1"
@@ -14564,6 +16792,13 @@ __metadata:
languageName: node
linkType: hard
+"strnum@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "strnum@npm:1.0.5"
+ checksum: 10c0/64fb8cc2effbd585a6821faa73ad97d4b553c8927e49086a162ffd2cc818787643390b89d567460a8e74300148d11ac052e21c921ef2049f2987f4b1b89a7ff1
+ languageName: node
+ linkType: hard
+
"style-to-object@npm:^1.0.0":
version: 1.0.5
resolution: "style-to-object@npm:1.0.5"
@@ -14655,6 +16890,13 @@ __metadata:
languageName: node
linkType: hard
+"symbol-tree@npm:^3.2.4":
+ version: 3.2.4
+ resolution: "symbol-tree@npm:3.2.4"
+ checksum: 10c0/dfbe201ae09ac6053d163578778c53aa860a784147ecf95705de0cd23f42c851e1be7889241495e95c37cabb058edb1052f141387bef68f705afc8f9dd358509
+ languageName: node
+ linkType: hard
+
"tabbable@npm:^6.2.0":
version: 6.2.0
resolution: "tabbable@npm:6.2.0"
@@ -14678,6 +16920,15 @@ __metadata:
languageName: node
linkType: hard
+"tailwind-scrollbar@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "tailwind-scrollbar@npm:3.1.0"
+ peerDependencies:
+ tailwindcss: 3.x
+ checksum: 10c0/dad4d5dcc37f09806cb1b5380d7908d113d139638ac606644ba0c689dffb2d72250f6997c0091c2ba596346390b31742859a20933c2d8543f8103e2ddfc3fb82
+ languageName: node
+ linkType: hard
+
"tailwindcss-animate@npm:^1.0.7":
version: 1.0.7
resolution: "tailwindcss-animate@npm:1.0.7"
@@ -14752,7 +17003,7 @@ __metadata:
languageName: node
linkType: hard
-"tar@npm:^6.0.2, tar@npm:^6.0.5, tar@npm:^6.1.11, tar@npm:^6.1.2":
+"tar@npm:^6.0.2, tar@npm:^6.0.5, tar@npm:^6.1.11, tar@npm:^6.1.2, tar@npm:^6.2.0":
version: 6.2.0
resolution: "tar@npm:6.2.0"
dependencies:
@@ -14815,6 +17066,17 @@ __metadata:
languageName: node
linkType: hard
+"tinyld@npm:^1.3.4":
+ version: 1.3.4
+ resolution: "tinyld@npm:1.3.4"
+ bin:
+ tinyld: bin/tinyld.js
+ tinyld-heavy: bin/tinyld-heavy.js
+ tinyld-light: bin/tinyld-light.js
+ checksum: 10c0/975a318c6359696dc11b166d9ff80a96a8520a35090ea76e33e5868b24499d8fbd1d039b5ac6f6926b62f3c15a277a9f07d3b1f2ce0687acc3fb6001a42aeaa9
+ languageName: node
+ linkType: hard
+
"tmp-promise@npm:^3.0.2":
version: 3.0.3
resolution: "tmp-promise@npm:3.0.3"
@@ -14877,6 +17139,27 @@ __metadata:
languageName: node
linkType: hard
+"tough-cookie@npm:^4.1.3":
+ version: 4.1.3
+ resolution: "tough-cookie@npm:4.1.3"
+ dependencies:
+ psl: "npm:^1.1.33"
+ punycode: "npm:^2.1.1"
+ universalify: "npm:^0.2.0"
+ url-parse: "npm:^1.5.3"
+ checksum: 10c0/4fc0433a0cba370d57c4b240f30440c848906dee3180bb6e85033143c2726d322e7e4614abb51d42d111ebec119c4876ed8d7247d4113563033eebbc1739c831
+ languageName: node
+ linkType: hard
+
+"tr46@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "tr46@npm:5.0.0"
+ dependencies:
+ punycode: "npm:^2.3.1"
+ checksum: 10c0/1521b6e7bbc8adc825c4561480f9fe48eb2276c81335eed9fa610aa4c44a48a3221f78b10e5f18b875769eb3413e30efbf209ed556a17a42aa8d690df44b7bee
+ languageName: node
+ linkType: hard
+
"tr46@npm:~0.0.3":
version: 0.0.3
resolution: "tr46@npm:0.0.3"
@@ -14891,6 +17174,13 @@ __metadata:
languageName: node
linkType: hard
+"trim-newlines@npm:^4.0.2":
+ version: 4.1.1
+ resolution: "trim-newlines@npm:4.1.1"
+ checksum: 10c0/70e60e652305efd0dda1f2bce1a5edc9bb5834a2e00d05dfde178715ec48faa8264a2bc1a7efc593b7936d03f6d42c398616329eef44b7bd5070180a02056981
+ languageName: node
+ linkType: hard
+
"trim-repeated@npm:^1.0.0":
version: 1.0.0
resolution: "trim-repeated@npm:1.0.0"
@@ -14980,7 +17270,14 @@ __metadata:
languageName: node
linkType: hard
-"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.1.0, tslib@npm:^2.2.0, tslib@npm:^2.6.2":
+"tslib@npm:^1.11.1":
+ version: 1.14.1
+ resolution: "tslib@npm:1.14.1"
+ checksum: 10c0/69ae09c49eea644bc5ebe1bca4fa4cc2c82b7b3e02f43b84bd891504edf66dbc6b2ec0eef31a957042de2269139e4acff911e6d186a258fb14069cd7f6febce2
+ languageName: node
+ linkType: hard
+
+"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.1.0, tslib@npm:^2.2.0, tslib@npm:^2.3.1, tslib@npm:^2.5.0, tslib@npm:^2.6.2":
version: 2.6.2
resolution: "tslib@npm:2.6.2"
checksum: 10c0/e03a8a4271152c8b26604ed45535954c0a45296e32445b4b87f8a5abdb2421f40b59b4ca437c4346af0f28179780d604094eb64546bee2019d903d01c6c19bdb
@@ -15026,6 +17323,13 @@ __metadata:
languageName: node
linkType: hard
+"type-fest@npm:^1.0.1, type-fest@npm:^1.2.1, type-fest@npm:^1.2.2":
+ version: 1.4.0
+ resolution: "type-fest@npm:1.4.0"
+ checksum: 10c0/a3c0f4ee28ff6ddf800d769eafafcdeab32efa38763c1a1b8daeae681920f6e345d7920bf277245235561d8117dab765cb5f829c76b713b4c9de0998a5397141
+ languageName: node
+ linkType: hard
+
"type-fest@npm:^3.1.0":
version: 3.13.1
resolution: "type-fest@npm:3.13.1"
@@ -15118,23 +17422,23 @@ __metadata:
languageName: node
linkType: hard
-"typescript@npm:^5.3.3":
- version: 5.3.3
- resolution: "typescript@npm:5.3.3"
+"typescript@npm:^5.4.2":
+ version: 5.4.2
+ resolution: "typescript@npm:5.4.2"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
- checksum: 10c0/e33cef99d82573624fc0f854a2980322714986bc35b9cb4d1ce736ed182aeab78e2cb32b385efa493b2a976ef52c53e20d6c6918312353a91850e2b76f1ea44f
+ checksum: 10c0/583ff68cafb0c076695f72d61df6feee71689568179fb0d3a4834dac343df6b6ed7cf7b6f6c801fa52d43cd1d324e2f2d8ae4497b09f9e6cfe3d80a6d6c9ca52
languageName: node
linkType: hard
-"typescript@patch:typescript@npm%3A^5.3.3#optional!builtin":
- version: 5.3.3
- resolution: "typescript@patch:typescript@npm%3A5.3.3#optional!builtin::version=5.3.3&hash=e012d7"
+"typescript@patch:typescript@npm%3A^5.4.2#optional!builtin":
+ version: 5.4.2
+ resolution: "typescript@patch:typescript@npm%3A5.4.2#optional!builtin::version=5.4.2&hash=d69c25"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
- checksum: 10c0/1d0a5f4ce496c42caa9a30e659c467c5686eae15d54b027ee7866744952547f1be1262f2d40de911618c242b510029d51d43ff605dba8fb740ec85ca2d3f9500
+ checksum: 10c0/22e2f213c3ffe5960c5eaec6c95c04e01858fed57a94be250746f540b935b2c18c3c3fc80d3ab65d28c0aba1eb76284557ba3bf521d28caee811c44ba2b648f9
languageName: node
linkType: hard
@@ -15170,6 +17474,13 @@ __metadata:
languageName: node
linkType: hard
+"unfetch@npm:^4.2.0":
+ version: 4.2.0
+ resolution: "unfetch@npm:4.2.0"
+ checksum: 10c0/a5c0a896a6f09f278b868075aea65652ad185db30e827cb7df45826fe5ab850124bf9c44c4dafca4bf0c55a0844b17031e8243467fcc38dd7a7d435007151f1b
+ languageName: node
+ linkType: hard
+
"unified@npm:^11.0.0":
version: 11.0.4
resolution: "unified@npm:11.0.4"
@@ -15185,6 +17496,13 @@ __metadata:
languageName: node
linkType: hard
+"uniq@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "uniq@npm:1.0.1"
+ checksum: 10c0/369dca4a07fdd8de9e48378b9d4b6861722ca71d5f496e91687916bd4b48b8cf3d6db1677be1b40eea63bc6d4728efb4b4e0bd7a89c5fd2d23e7a2cff8009c7a
+ languageName: node
+ linkType: hard
+
"unique-filename@npm:^1.1.1":
version: 1.1.1
resolution: "unique-filename@npm:1.1.1"
@@ -15330,6 +17648,13 @@ __metadata:
languageName: node
linkType: hard
+"universalify@npm:^0.2.0":
+ version: 0.2.0
+ resolution: "universalify@npm:0.2.0"
+ checksum: 10c0/cedbe4d4ca3967edf24c0800cfc161c5a15e240dac28e3ce575c689abc11f2c81ccc6532c8752af3b40f9120fb5e454abecd359e164f4f6aa44c29cd37e194fe
+ languageName: node
+ linkType: hard
+
"universalify@npm:^2.0.0":
version: 2.0.1
resolution: "universalify@npm:2.0.1"
@@ -15374,6 +17699,16 @@ __metadata:
languageName: node
linkType: hard
+"url-parse@npm:^1.5.3":
+ version: 1.5.10
+ resolution: "url-parse@npm:1.5.10"
+ dependencies:
+ querystringify: "npm:^2.1.1"
+ requires-port: "npm:^1.0.0"
+ checksum: 10c0/bd5aa9389f896974beb851c112f63b466505a04b4807cea2e5a3b7092f6fbb75316f0491ea84e44f66fed55f1b440df5195d7e3a8203f64fcefa19d182f5be87
+ languageName: node
+ linkType: hard
+
"use-callback-ref@npm:^1.3.0":
version: 1.3.1
resolution: "use-callback-ref@npm:1.3.1"
@@ -15415,6 +17750,13 @@ __metadata:
languageName: node
linkType: hard
+"utfstring@npm:~2.0":
+ version: 2.0.2
+ resolution: "utfstring@npm:2.0.2"
+ checksum: 10c0/80690fe5533343016b1af67598cb820353f9b729ed2a6d33a23fecc0b959211423f1f1698413a71206e84cf6459a87ace1a09fdb7f0bf1e23836ea9d66f6ea97
+ languageName: node
+ linkType: hard
+
"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2":
version: 1.0.2
resolution: "util-deprecate@npm:1.0.2"
@@ -15438,7 +17780,7 @@ __metadata:
languageName: node
linkType: hard
-"uuid@npm:^9.0.0":
+"uuid@npm:^9.0.0, uuid@npm:^9.0.1":
version: 9.0.1
resolution: "uuid@npm:9.0.1"
bin:
@@ -15574,9 +17916,9 @@ __metadata:
languageName: node
linkType: hard
-"vite@npm:^5.1.5":
- version: 5.1.5
- resolution: "vite@npm:5.1.5"
+"vite@npm:^5.1.6":
+ version: 5.1.6
+ resolution: "vite@npm:5.1.6"
dependencies:
esbuild: "npm:^0.19.3"
fsevents: "npm:~2.3.3"
@@ -15610,7 +17952,7 @@ __metadata:
optional: true
bin:
vite: bin/vite.js
- checksum: 10c0/29be99ba0bec5e3ad50290510ba764b6c1016979a1ba70cf2071be9f1338f27e582a120836222e1fad6efb01c886a8fb57cb33471fadd0fceaa922bfc92bbbf7
+ checksum: 10c0/b935527544741d9313143a77f811d97b8b094757e42f9c02b7aca6294a4912674dbad5379e4759629b6ba895c93b5020cc7594f74b37846715336837fdce850a
languageName: node
linkType: hard
@@ -15629,9 +17971,9 @@ __metadata:
languageName: node
linkType: hard
-"vitepress@npm:^1.0.0-rc.42":
- version: 1.0.0-rc.44
- resolution: "vitepress@npm:1.0.0-rc.44"
+"vitepress@npm:^1.0.0-rc.45":
+ version: 1.0.0-rc.45
+ resolution: "vitepress@npm:1.0.0-rc.45"
dependencies:
"@docsearch/css": "npm:^3.5.2"
"@docsearch/js": "npm:^3.5.2"
@@ -15658,7 +18000,7 @@ __metadata:
optional: true
bin:
vitepress: bin/vitepress.js
- checksum: 10c0/41df791d34d4ee2ad8a274ad951604d5d40cd6eec3983a62d7060bf3002aa68686438592207058c078373f5e3b51120d3c142857dcae086836791eb06e39076c
+ checksum: 10c0/67a46d8803946789cfe97033167a9fb1b093ee8c9b519ed7bf2430d71956bbeb15257b380fb1c51e4ffbd6d5046ece94161990c0ddc70639d82dea1c02b0bc06
languageName: node
linkType: hard
@@ -15703,10 +18045,19 @@ __metadata:
languageName: node
linkType: hard
-"wavesurfer.js@npm:^7.7.3":
- version: 7.7.3
- resolution: "wavesurfer.js@npm:7.7.3"
- checksum: 10c0/6ef47d8edbb9a3d95442976958ea4a3f7b3705f02bfff539548cc53ca614f5c1057bd7dd2241c32433610084980f9906904e567d7a4312b33513d6e937add3d8
+"w3c-xmlserializer@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "w3c-xmlserializer@npm:5.0.0"
+ dependencies:
+ xml-name-validator: "npm:^5.0.0"
+ checksum: 10c0/8712774c1aeb62dec22928bf1cdfd11426c2c9383a1a63f2bcae18db87ca574165a0fbe96b312b73652149167ac6c7f4cf5409f2eb101d9c805efe0e4bae798b
+ languageName: node
+ linkType: hard
+
+"wavesurfer.js@npm:^7.7.5":
+ version: 7.7.5
+ resolution: "wavesurfer.js@npm:7.7.5"
+ checksum: 10c0/779e256d32e53c7dcf293aa57162ce9c5f6116f34acafef02baa683514d8f912578c535caf19171b67efcbadf43d10788de6c154f44ca8f0d43b7f428cb17d3e
languageName: node
linkType: hard
@@ -15761,6 +18112,13 @@ __metadata:
languageName: node
linkType: hard
+"webidl-conversions@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "webidl-conversions@npm:7.0.0"
+ checksum: 10c0/228d8cb6d270c23b0720cb2d95c579202db3aaf8f633b4e9dd94ec2000a04e7e6e43b76a94509cdb30479bd00ae253ab2371a2da9f81446cc313f89a4213a2c4
+ languageName: node
+ linkType: hard
+
"webpod@npm:^0":
version: 0.0.2
resolution: "webpod@npm:0.0.2"
@@ -15770,6 +18128,32 @@ __metadata:
languageName: node
linkType: hard
+"whatwg-encoding@npm:^3.1.1":
+ version: 3.1.1
+ resolution: "whatwg-encoding@npm:3.1.1"
+ dependencies:
+ iconv-lite: "npm:0.6.3"
+ checksum: 10c0/273b5f441c2f7fda3368a496c3009edbaa5e43b71b09728f90425e7f487e5cef9eb2b846a31bd760dd8077739c26faf6b5ca43a5f24033172b003b72cf61a93e
+ languageName: node
+ linkType: hard
+
+"whatwg-mimetype@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "whatwg-mimetype@npm:4.0.0"
+ checksum: 10c0/a773cdc8126b514d790bdae7052e8bf242970cebd84af62fb2f35a33411e78e981f6c0ab9ed1fe6ec5071b09d5340ac9178e05b52d35a9c4bcf558ba1b1551df
+ languageName: node
+ linkType: hard
+
+"whatwg-url@npm:^14.0.0":
+ version: 14.0.0
+ resolution: "whatwg-url@npm:14.0.0"
+ dependencies:
+ tr46: "npm:^5.0.0"
+ webidl-conversions: "npm:^7.0.0"
+ checksum: 10c0/ac32e9ba9d08744605519bbe9e1371174d36229689ecc099157b6ba102d4251a95e81d81f3d80271eb8da182eccfa65653f07f0ab43ea66a6934e643fd091ba9
+ languageName: node
+ linkType: hard
+
"whatwg-url@npm:^5.0.0":
version: 5.0.0
resolution: "whatwg-url@npm:5.0.0"
@@ -15949,6 +18333,40 @@ __metadata:
languageName: node
linkType: hard
+"ws@npm:^8.16.0":
+ version: 8.16.0
+ resolution: "ws@npm:8.16.0"
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: ">=5.0.2"
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+ checksum: 10c0/a7783bb421c648b1e622b423409cb2a58ac5839521d2f689e84bc9dc41d59379c692dd405b15a997ea1d4c0c2e5314ad707332d0c558f15232d2bc07c0b4618a
+ languageName: node
+ linkType: hard
+
+"wtf_wikipedia@npm:^10.3.0":
+ version: 10.3.0
+ resolution: "wtf_wikipedia@npm:10.3.0"
+ dependencies:
+ isomorphic-unfetch: "npm:^3.1.0"
+ path-exists-cli: "npm:2.0.0"
+ bin:
+ wtf_wikipedia: cli.js
+ checksum: 10c0/823ee34d210fab9aca9dafec1442a114c3b1f8603da695eb166a59f18cf9779a10d1c7f416c66519e027f8cff0fd5331d5b0a9b137c8ad014756f533a4fbe37b
+ languageName: node
+ linkType: hard
+
+"xml-name-validator@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "xml-name-validator@npm:5.0.0"
+ checksum: 10c0/3fcf44e7b73fb18be917fdd4ccffff3639373c7cb83f8fc35df6001fecba7942f1dbead29d91ebb8315e2f2ff786b508f0c9dc0215b6353f9983c6b7d62cb1f5
+ languageName: node
+ linkType: hard
+
"xmlbuilder@npm:^15.1.1":
version: 15.1.1
resolution: "xmlbuilder@npm:15.1.1"
@@ -15956,6 +18374,13 @@ __metadata:
languageName: node
linkType: hard
+"xmlchars@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "xmlchars@npm:2.2.0"
+ checksum: 10c0/b64b535861a6f310c5d9bfa10834cf49127c71922c297da9d4d1b45eeaae40bf9b4363275876088fbe2667e5db028d2cd4f8ee72eed9bede840a67d57dab7593
+ languageName: node
+ linkType: hard
+
"xmldom-sre@npm:0.1.31":
version: 0.1.31
resolution: "xmldom-sre@npm:0.1.31"
@@ -16025,7 +18450,7 @@ __metadata:
languageName: node
linkType: hard
-"yargs-parser@npm:^20.2.2":
+"yargs-parser@npm:^20.2.2, yargs-parser@npm:^20.2.9":
version: 20.2.9
resolution: "yargs-parser@npm:20.2.9"
checksum: 10c0/0685a8e58bbfb57fab6aefe03c6da904a59769bd803a722bb098bd5b0f29d274a1357762c7258fb487512811b8063fb5d2824a3415a0a4540598335b3b086c72
@@ -16123,6 +18548,13 @@ __metadata:
languageName: node
linkType: hard
+"zlibjs@npm:^0.3.1":
+ version: 0.3.1
+ resolution: "zlibjs@npm:0.3.1"
+ checksum: 10c0/2d110bfcb0f8b8dbf225423f6556da9c5bca95c8b849c1218983676158a24b5cd0350357e0c4d504e27f8c7e18d471d9712576f35114a81a51bcf83453f02beb
+ languageName: node
+ linkType: hard
+
"zod-to-json-schema@npm:^3.22.3":
version: 3.22.4
resolution: "zod-to-json-schema@npm:3.22.4"