Fix player unfuntional hotkeys (#679)

* upgrade deps

* fix react warning

* hotkeys for play/pause recording

* tune recording trim

* refactor hotkeys
This commit is contained in:
an-lee
2024-06-17 13:19:44 +08:00
committed by GitHub
parent 448ece4e7d
commit fad4a219a1
10 changed files with 505 additions and 132 deletions

View File

@@ -11,7 +11,7 @@
"sass": "^1.77.5",
"vitepress": "^1.2.3",
"vitepress-plugin-mermaid": "^2.0.16",
"vue": "^3.4.27"
"vue": "^3.4.29"
},
"scripts": {
"dev": "vitepress dev",

View File

@@ -56,7 +56,7 @@
"@types/rails__actioncable": "^6.1.10",
"@types/react": "^18.3.3",
"@types/react-dom": "^18.3.0",
"@types/validator": "^13.11.10",
"@types/validator": "^13.12.0",
"@types/wavesurfer.js": "^6.0.12",
"@typescript-eslint/eslint-plugin": "^7.13.0",
"@typescript-eslint/parser": "^7.13.0",
@@ -64,7 +64,7 @@
"autoprefixer": "^10.4.19",
"electron": "^31.0.1",
"electron-playwright-helpers": "^1.7.1",
"eslint": "^9.4.0",
"eslint": "^9.5.0",
"eslint-import-resolver-typescript": "^3.6.1",
"eslint-plugin-import": "^2.29.1",
"flora-colossus": "^2.0.0",
@@ -77,7 +77,7 @@
"ts-node": "^10.9.2",
"tslib": "^2.6.3",
"typescript": "^5.4.5",
"vite": "^5.2.13",
"vite": "^5.3.1",
"vite-plugin-static-copy": "^1.0.5",
"zx": "^8.1.2"
},
@@ -85,7 +85,7 @@
"@andrkrn/ffprobe-static": "^5.2.0",
"@electron-forge/publisher-s3": "^7.4.0",
"@hookform/resolvers": "^3.6.0",
"@langchain/community": "^0.2.10",
"@langchain/community": "^0.2.11",
"@langchain/google-genai": "^0.0.17",
"@mozilla/readability": "^0.5.0",
"@radix-ui/react-accordion": "^1.1.2",
@@ -110,7 +110,7 @@
"@radix-ui/react-toast": "^1.1.5",
"@radix-ui/react-toggle": "^1.0.3",
"@radix-ui/react-tooltip": "^1.0.7",
"@rails/actioncable": "7.1.3-4",
"@rails/actioncable": "7.1.3",
"@sentry/electron": "^5.1.0",
"@uidotdev/usehooks": "^2.4.1",
"@vidstack/react": "^1.11.22",
@@ -142,11 +142,11 @@
"html-to-text": "^9.0.5",
"https-proxy-agent": "^7.0.4",
"i18next": "^23.11.5",
"intl-tel-input": "^23.0.11",
"intl-tel-input": "^23.0.12",
"js-md5": "^0.8.3",
"langchain": "^0.2.5",
"lodash": "^4.17.21",
"lucide-react": "^0.394.0",
"lucide-react": "^0.395.0",
"mark.js": "^8.11.1",
"microsoft-cognitiveservices-speech-sdk": "^1.38.0",
"next-themes": "^0.3.0",
@@ -157,12 +157,12 @@
"react": "^18.3.1",
"react-activity-calendar": "^2.2.10",
"react-dom": "^18.3.1",
"react-hook-form": "^7.51.5",
"react-hook-form": "^7.52.0",
"react-hotkeys-hook": "^4.5.0",
"react-i18next": "^14.1.2",
"react-markdown": "^9.0.1",
"react-router-dom": "^6.23.1",
"react-tooltip": "^5.26.4",
"react-tooltip": "^5.27.0",
"reflect-metadata": "^0.2.2",
"rimraf": "^5.0.7",
"sequelize": "^6.37.3",

View File

@@ -328,9 +328,9 @@ export class Recording extends Model<Recording> {
let trimmedSamples = echogarden.trimAudioStart(
rawAudio.audioChannels[0],
0,
-35
-50
);
trimmedSamples = echogarden.trimAudioEnd(trimmedSamples, 0, -35);
trimmedSamples = echogarden.trimAudioEnd(trimmedSamples, 0, -50);
rawAudio.audioChannels[0] = trimmedSamples;
duration = Math.round(echogarden.getRawAudioDuration(rawAudio) * 1000);

View File

@@ -20,13 +20,11 @@ export const MeaningMemorizingCard = (props: { meaning: MeaningType }) => {
useHotkeys(
[currentHotkeys.PlayOrPause],
(keyboardEvent, _hotkeyEvent) => {
keyboardEvent.preventDefault();
() => {
document.getElementById("vocabulary-toggle-side-button").click();
},
{
enabled,
preventDefault: true,
},
[side]
);

View File

@@ -421,27 +421,12 @@ export const MediaCurrentRecording = () => {
calContainerWidth();
}, [currentRecording, isRecording, layout?.width]);
useHotkeys(
[
currentHotkeys.PlayOrPauseRecording,
currentHotkeys.PronunciationAssessment,
],
(keyboardEvent, hotkeyEvent) => {
if (!player) return;
keyboardEvent.preventDefault();
switch (hotkeyEvent.keys.join("")) {
case currentHotkeys.PlayOrPauseRecording.toLowerCase():
document.getElementById("recording-play-or-pause-button").click();
break;
case currentHotkeys.PronunciationAssessment.toLowerCase():
setDetailIsOpen(!detailIsOpen);
break;
}
},
{ enabled },
[player]
);
useHotkeys(currentHotkeys.PlayOrPauseRecording, () => {
document.getElementById("recording-play-or-pause-button").click();
});
useHotkeys(currentHotkeys.PronunciationAssessment, () => {
setDetailIsOpen(!detailIsOpen);
});
if (isRecording) return <MediaRecorder />;
if (!currentRecording?.src)

View File

@@ -375,39 +375,49 @@ export const MediaPlayerControls = () => {
}, [wavesurfer, decoded, playMode, activeRegion, currentTime]);
useHotkeys(
[
currentHotkeys.PlayOrPause,
currentHotkeys.PlayPreviousSegment,
currentHotkeys.PlayNextSegment,
currentHotkeys.StartOrStopRecording,
currentHotkeys.Compare,
],
(keyboardEvent, hotkeyEvent) => {
if (!wavesurfer) return;
keyboardEvent.preventDefault();
switch (hotkeyEvent.keys.join("")) {
case currentHotkeys.PlayOrPause.toLowerCase():
document.getElementById("media-play-or-pause-button").click();
break;
case currentHotkeys.PlayPreviousSegment.toLowerCase():
document.getElementById("media-play-previous-button").click();
break;
case currentHotkeys.PlayNextSegment.toLowerCase():
document.getElementById("media-play-next-button").click();
break;
case currentHotkeys.StartOrStopRecording.toLowerCase():
document.getElementById("media-record-button").click();
break;
case currentHotkeys.Compare.toLowerCase():
document.getElementById("media-compare-button").click();
break;
}
currentHotkeys.PlayOrPause,
() => {
document.getElementById("media-play-or-pause-button").click();
},
{
enabled,
preventDefault: true,
}
);
useHotkeys(
currentHotkeys.PlayPreviousSegment,
() => {
document.getElementById("media-play-previous-button").click();
},
[wavesurfer, currentHotkeys]
{
preventDefault: true,
}
);
useHotkeys(
currentHotkeys.PlayNextSegment,
() => {
document.getElementById("media-play-next-button").click();
},
{
preventDefault: true,
}
);
useHotkeys(
currentHotkeys.StartOrStopRecording,
() => {
document.getElementById("media-record-button").click();
},
{
preventDefault: true,
}
);
useHotkeys(
currentHotkeys.Compare,
() => {
document.getElementById("media-compare-button").click();
},
{
preventDefault: true,
}
);
/*

View File

@@ -68,7 +68,7 @@ export const BanduLoginForm = () => {
intlTelInput(ref.current, {
initialCountry: "cn",
utilsScript:
"https://cdn.jsdelivr.net/npm/intl-tel-input@23.0.10/build/js/utils.js",
"https://cdn.jsdelivr.net/npm/intl-tel-input@23.0.12/build/js/utils.js",
});
setIti(intlTelInput(ref.current));

View File

@@ -67,7 +67,7 @@ export const PronunciationAssessmentCard = (props: {
].map(({ label, value }) => {
if (typeof value === "number") {
return (
<div className="flex items-center space-x-2 mb-2">
<div key={label} className="flex items-center space-x-2 mb-2">
<span className="text-muted-foreground text-sm">
{label}:
</span>
@@ -95,7 +95,9 @@ export const PronunciationAssessmentCard = (props: {
</div>
)}
<div className="mt-auto flex items-center gap-4">
{assessment.language && <Badge variant="secondary">{assessment.language}</Badge>}
{assessment.language && (
<Badge variant="secondary">{assessment.language}</Badge>
)}
<div className="text-xs text-muted-foreground">
{formatDateTime(assessment.createdAt)}
</div>

View File

@@ -109,6 +109,7 @@ const HotKeysSettingsSystemSettings = ({
},
{
enabled,
preventDefault: true,
}
);
@@ -119,6 +120,7 @@ const HotKeysSettingsSystemSettings = ({
},
{
enabled,
preventDefault: true,
}
);
@@ -129,6 +131,7 @@ const HotKeysSettingsSystemSettings = ({
},
{
enabled,
preventDefault: true,
}
);
return children;

499
yarn.lock
View File

@@ -19,7 +19,7 @@ __metadata:
sass: "npm:^1.77.5"
vitepress: "npm:^1.2.3"
vitepress-plugin-mermaid: "npm:^2.0.16"
vue: "npm:^3.4.27"
vue: "npm:^3.4.29"
languageName: unknown
linkType: soft
@@ -1356,6 +1356,15 @@ __metadata:
languageName: node
linkType: hard
"@babel/parser@npm:^7.24.7":
version: 7.24.7
resolution: "@babel/parser@npm:7.24.7"
bin:
parser: ./bin/babel-parser.js
checksum: 10c0/8b244756872185a1c6f14b979b3535e682ff08cb5a2a5fd97cc36c017c7ef431ba76439e95e419d43000c5b07720495b00cf29a7f0d9a483643d08802b58819b
languageName: node
linkType: hard
"@babel/plugin-transform-react-jsx-self@npm:^7.24.5":
version: 7.24.6
resolution: "@babel/plugin-transform-react-jsx-self@npm:7.24.6"
@@ -2117,6 +2126,13 @@ __metadata:
languageName: node
linkType: hard
"@esbuild/aix-ppc64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/aix-ppc64@npm:0.21.5"
conditions: os=aix & cpu=ppc64
languageName: node
linkType: hard
"@esbuild/android-arm64@npm:0.20.2":
version: 0.20.2
resolution: "@esbuild/android-arm64@npm:0.20.2"
@@ -2124,6 +2140,13 @@ __metadata:
languageName: node
linkType: hard
"@esbuild/android-arm64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/android-arm64@npm:0.21.5"
conditions: os=android & cpu=arm64
languageName: node
linkType: hard
"@esbuild/android-arm@npm:0.20.2":
version: 0.20.2
resolution: "@esbuild/android-arm@npm:0.20.2"
@@ -2131,6 +2154,13 @@ __metadata:
languageName: node
linkType: hard
"@esbuild/android-arm@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/android-arm@npm:0.21.5"
conditions: os=android & cpu=arm
languageName: node
linkType: hard
"@esbuild/android-x64@npm:0.20.2":
version: 0.20.2
resolution: "@esbuild/android-x64@npm:0.20.2"
@@ -2138,6 +2168,13 @@ __metadata:
languageName: node
linkType: hard
"@esbuild/android-x64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/android-x64@npm:0.21.5"
conditions: os=android & cpu=x64
languageName: node
linkType: hard
"@esbuild/darwin-arm64@npm:0.20.2":
version: 0.20.2
resolution: "@esbuild/darwin-arm64@npm:0.20.2"
@@ -2145,6 +2182,13 @@ __metadata:
languageName: node
linkType: hard
"@esbuild/darwin-arm64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/darwin-arm64@npm:0.21.5"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
"@esbuild/darwin-x64@npm:0.20.2":
version: 0.20.2
resolution: "@esbuild/darwin-x64@npm:0.20.2"
@@ -2152,6 +2196,13 @@ __metadata:
languageName: node
linkType: hard
"@esbuild/darwin-x64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/darwin-x64@npm:0.21.5"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
"@esbuild/freebsd-arm64@npm:0.20.2":
version: 0.20.2
resolution: "@esbuild/freebsd-arm64@npm:0.20.2"
@@ -2159,6 +2210,13 @@ __metadata:
languageName: node
linkType: hard
"@esbuild/freebsd-arm64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/freebsd-arm64@npm:0.21.5"
conditions: os=freebsd & cpu=arm64
languageName: node
linkType: hard
"@esbuild/freebsd-x64@npm:0.20.2":
version: 0.20.2
resolution: "@esbuild/freebsd-x64@npm:0.20.2"
@@ -2166,6 +2224,13 @@ __metadata:
languageName: node
linkType: hard
"@esbuild/freebsd-x64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/freebsd-x64@npm:0.21.5"
conditions: os=freebsd & cpu=x64
languageName: node
linkType: hard
"@esbuild/linux-arm64@npm:0.20.2":
version: 0.20.2
resolution: "@esbuild/linux-arm64@npm:0.20.2"
@@ -2173,6 +2238,13 @@ __metadata:
languageName: node
linkType: hard
"@esbuild/linux-arm64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/linux-arm64@npm:0.21.5"
conditions: os=linux & cpu=arm64
languageName: node
linkType: hard
"@esbuild/linux-arm@npm:0.20.2":
version: 0.20.2
resolution: "@esbuild/linux-arm@npm:0.20.2"
@@ -2180,6 +2252,13 @@ __metadata:
languageName: node
linkType: hard
"@esbuild/linux-arm@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/linux-arm@npm:0.21.5"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
"@esbuild/linux-ia32@npm:0.20.2":
version: 0.20.2
resolution: "@esbuild/linux-ia32@npm:0.20.2"
@@ -2187,6 +2266,13 @@ __metadata:
languageName: node
linkType: hard
"@esbuild/linux-ia32@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/linux-ia32@npm:0.21.5"
conditions: os=linux & cpu=ia32
languageName: node
linkType: hard
"@esbuild/linux-loong64@npm:0.20.2":
version: 0.20.2
resolution: "@esbuild/linux-loong64@npm:0.20.2"
@@ -2194,6 +2280,13 @@ __metadata:
languageName: node
linkType: hard
"@esbuild/linux-loong64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/linux-loong64@npm:0.21.5"
conditions: os=linux & cpu=loong64
languageName: node
linkType: hard
"@esbuild/linux-mips64el@npm:0.20.2":
version: 0.20.2
resolution: "@esbuild/linux-mips64el@npm:0.20.2"
@@ -2201,6 +2294,13 @@ __metadata:
languageName: node
linkType: hard
"@esbuild/linux-mips64el@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/linux-mips64el@npm:0.21.5"
conditions: os=linux & cpu=mips64el
languageName: node
linkType: hard
"@esbuild/linux-ppc64@npm:0.20.2":
version: 0.20.2
resolution: "@esbuild/linux-ppc64@npm:0.20.2"
@@ -2208,6 +2308,13 @@ __metadata:
languageName: node
linkType: hard
"@esbuild/linux-ppc64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/linux-ppc64@npm:0.21.5"
conditions: os=linux & cpu=ppc64
languageName: node
linkType: hard
"@esbuild/linux-riscv64@npm:0.20.2":
version: 0.20.2
resolution: "@esbuild/linux-riscv64@npm:0.20.2"
@@ -2215,6 +2322,13 @@ __metadata:
languageName: node
linkType: hard
"@esbuild/linux-riscv64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/linux-riscv64@npm:0.21.5"
conditions: os=linux & cpu=riscv64
languageName: node
linkType: hard
"@esbuild/linux-s390x@npm:0.20.2":
version: 0.20.2
resolution: "@esbuild/linux-s390x@npm:0.20.2"
@@ -2222,6 +2336,13 @@ __metadata:
languageName: node
linkType: hard
"@esbuild/linux-s390x@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/linux-s390x@npm:0.21.5"
conditions: os=linux & cpu=s390x
languageName: node
linkType: hard
"@esbuild/linux-x64@npm:0.20.2":
version: 0.20.2
resolution: "@esbuild/linux-x64@npm:0.20.2"
@@ -2229,6 +2350,13 @@ __metadata:
languageName: node
linkType: hard
"@esbuild/linux-x64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/linux-x64@npm:0.21.5"
conditions: os=linux & cpu=x64
languageName: node
linkType: hard
"@esbuild/netbsd-x64@npm:0.20.2":
version: 0.20.2
resolution: "@esbuild/netbsd-x64@npm:0.20.2"
@@ -2236,6 +2364,13 @@ __metadata:
languageName: node
linkType: hard
"@esbuild/netbsd-x64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/netbsd-x64@npm:0.21.5"
conditions: os=netbsd & cpu=x64
languageName: node
linkType: hard
"@esbuild/openbsd-x64@npm:0.20.2":
version: 0.20.2
resolution: "@esbuild/openbsd-x64@npm:0.20.2"
@@ -2243,6 +2378,13 @@ __metadata:
languageName: node
linkType: hard
"@esbuild/openbsd-x64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/openbsd-x64@npm:0.21.5"
conditions: os=openbsd & cpu=x64
languageName: node
linkType: hard
"@esbuild/sunos-x64@npm:0.20.2":
version: 0.20.2
resolution: "@esbuild/sunos-x64@npm:0.20.2"
@@ -2250,6 +2392,13 @@ __metadata:
languageName: node
linkType: hard
"@esbuild/sunos-x64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/sunos-x64@npm:0.21.5"
conditions: os=sunos & cpu=x64
languageName: node
linkType: hard
"@esbuild/win32-arm64@npm:0.20.2":
version: 0.20.2
resolution: "@esbuild/win32-arm64@npm:0.20.2"
@@ -2257,6 +2406,13 @@ __metadata:
languageName: node
linkType: hard
"@esbuild/win32-arm64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/win32-arm64@npm:0.21.5"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
"@esbuild/win32-ia32@npm:0.20.2":
version: 0.20.2
resolution: "@esbuild/win32-ia32@npm:0.20.2"
@@ -2264,6 +2420,13 @@ __metadata:
languageName: node
linkType: hard
"@esbuild/win32-ia32@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/win32-ia32@npm:0.21.5"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
"@esbuild/win32-x64@npm:0.20.2":
version: 0.20.2
resolution: "@esbuild/win32-x64@npm:0.20.2"
@@ -2271,6 +2434,13 @@ __metadata:
languageName: node
linkType: hard
"@esbuild/win32-x64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/win32-x64@npm:0.21.5"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0":
version: 4.4.0
resolution: "@eslint-community/eslint-utils@npm:4.4.0"
@@ -2289,14 +2459,14 @@ __metadata:
languageName: node
linkType: hard
"@eslint/config-array@npm:^0.15.1":
version: 0.15.1
resolution: "@eslint/config-array@npm:0.15.1"
"@eslint/config-array@npm:^0.16.0":
version: 0.16.0
resolution: "@eslint/config-array@npm:0.16.0"
dependencies:
"@eslint/object-schema": "npm:^2.1.3"
"@eslint/object-schema": "npm:^2.1.4"
debug: "npm:^4.3.1"
minimatch: "npm:^3.0.5"
checksum: 10c0/60947a188157f2f811cc2aedf3c2494fa10932178838f6a7c7e9a8bb106ab51b4b4e571f49ae63cdd3884002b78631e4395be25d4ae52470360fc7fb463303d2
checksum: 10c0/b9d04409151dc95ec6b5e04e1e185a808d58e18cfc7340adc1e9420a5ff15843a0a308fb2cd9a2b354652885c2bebbcd5515814e93e9c9133f423891b6e53c70
languageName: node
linkType: hard
@@ -2317,17 +2487,17 @@ __metadata:
languageName: node
linkType: hard
"@eslint/js@npm:9.4.0":
version: 9.4.0
resolution: "@eslint/js@npm:9.4.0"
checksum: 10c0/7ffc508d3e9cd496cab7f08c5ba8f97851c8adaea3ebff8804b1c3b4662aa7aac7e9c3b597f7e47fdc29319a107bcf892865070a6b113c2e4d19f8fa1f99f569
"@eslint/js@npm:9.5.0":
version: 9.5.0
resolution: "@eslint/js@npm:9.5.0"
checksum: 10c0/dacf51ec2d5b4c8d1315d21a0ff761235d9e39b2391cb945138c58dc512a6c18949c40b644235f5c4fdf5b637ef8f881214acc496dddf46b718529bf22af42ac
languageName: node
linkType: hard
"@eslint/object-schema@npm:^2.1.3":
version: 2.1.3
resolution: "@eslint/object-schema@npm:2.1.3"
checksum: 10c0/ee892d0112ee7ec86312dfb1fa718da76b2d446e3495b9ec1f3ef31382a335d31420b76f3def175b96f7c3517c88fc860fec049d62a81d444237a23881559403
"@eslint/object-schema@npm:^2.1.4":
version: 2.1.4
resolution: "@eslint/object-schema@npm:2.1.4"
checksum: 10c0/e9885532ea70e483fb007bf1275968b05bb15ebaa506d98560c41a41220d33d342e19023d5f2939fed6eb59676c1bda5c847c284b4b55fce521d282004da4dda
languageName: node
linkType: hard
@@ -2495,9 +2665,9 @@ __metadata:
languageName: node
linkType: hard
"@langchain/community@npm:^0.2.10":
version: 0.2.10
resolution: "@langchain/community@npm:0.2.10"
"@langchain/community@npm:^0.2.11":
version: 0.2.11
resolution: "@langchain/community@npm:0.2.11"
dependencies:
"@langchain/core": "npm:~0.2.6"
"@langchain/openai": "npm:~0.1.0"
@@ -2872,7 +3042,7 @@ __metadata:
optional: true
youtubei.js:
optional: true
checksum: 10c0/6ab49e731cf8d0ba8761ce2bab2673f493e0d2a5bdcad333bd0a17f6552d023ce9e39b770a5ad211c2a353791c176ae2cafacf88510d09aca147c89598fcd5ff
checksum: 10c0/1d926943571e4eb7464a35765bcee6bf59ddc5be202c130ee9423a9f33e25961b336b75474f3e04f825fbf44be759f4655205f9af81568980d18e377f9857779
languageName: node
linkType: hard
@@ -5027,10 +5197,10 @@ __metadata:
languageName: node
linkType: hard
"@rails/actioncable@npm:7.1.3-4":
version: 7.1.3-4
resolution: "@rails/actioncable@npm:7.1.3-4"
checksum: 10c0/1675a2dad20fabee553d538682e3ec8baba75b88df6a5c7219419459d54489ebc80f42860380633dced5746db1333ff533b06d22ea481d350313be066bb2097a
"@rails/actioncable@npm:7.1.3":
version: 7.1.3
resolution: "@rails/actioncable@npm:7.1.3"
checksum: 10c0/6019097498387a9c0684df0be380182820a0480173e05a5c5a830cef6cf3e40c9ec75b834af0396b0f57b4e658891c820163e84b9f2bd1ac293c90f5a12ce488
languageName: node
linkType: hard
@@ -6744,7 +6914,14 @@ __metadata:
languageName: node
linkType: hard
"@types/validator@npm:^13.11.10, @types/validator@npm:^13.7.17":
"@types/validator@npm:^13.12.0":
version: 13.12.0
resolution: "@types/validator@npm:13.12.0"
checksum: 10c0/a539f06c840dc672dedc819c5906472561dd4269c8298f5e0b0066226a8c47e4ffd60b1c10f21b91ee3cfb591e391537f879e0524e42db7f50a61995c2b2f2ef
languageName: node
linkType: hard
"@types/validator@npm:^13.7.17":
version: 13.11.10
resolution: "@types/validator@npm:13.11.10"
checksum: 10c0/fe63a20fa90d3e8c661d0ac5b5af162cdd387b9e8fd67f5a0a00ca308e4e2d7602467cc32ef3e2c979b737629fa9e2ff593d3946ee4f8667bbb80af0494b9c66
@@ -6968,6 +7145,19 @@ __metadata:
languageName: node
linkType: hard
"@vue/compiler-core@npm:3.4.29":
version: 3.4.29
resolution: "@vue/compiler-core@npm:3.4.29"
dependencies:
"@babel/parser": "npm:^7.24.7"
"@vue/shared": "npm:3.4.29"
entities: "npm:^4.5.0"
estree-walker: "npm:^2.0.2"
source-map-js: "npm:^1.2.0"
checksum: 10c0/9d68fd1a0c10d782ba8f8129669abaa558b4234a5382ca20423bdfcd724709ead84ae27098f0cab91f6a72ce31565d8440f256c96cb48c07144080f922e18642
languageName: node
linkType: hard
"@vue/compiler-dom@npm:3.4.27":
version: 3.4.27
resolution: "@vue/compiler-dom@npm:3.4.27"
@@ -6978,6 +7168,16 @@ __metadata:
languageName: node
linkType: hard
"@vue/compiler-dom@npm:3.4.29":
version: 3.4.29
resolution: "@vue/compiler-dom@npm:3.4.29"
dependencies:
"@vue/compiler-core": "npm:3.4.29"
"@vue/shared": "npm:3.4.29"
checksum: 10c0/c98620b718eda8756708f2ee96745ff8a0c1938c690ffbc29855c81292df650a5167ae12efcd9abdbfd93b443e3a7b3a2fcc070c5f09cb821bce465c9806ffb9
languageName: node
linkType: hard
"@vue/compiler-sfc@npm:3.4.27":
version: 3.4.27
resolution: "@vue/compiler-sfc@npm:3.4.27"
@@ -6995,6 +7195,23 @@ __metadata:
languageName: node
linkType: hard
"@vue/compiler-sfc@npm:3.4.29":
version: 3.4.29
resolution: "@vue/compiler-sfc@npm:3.4.29"
dependencies:
"@babel/parser": "npm:^7.24.7"
"@vue/compiler-core": "npm:3.4.29"
"@vue/compiler-dom": "npm:3.4.29"
"@vue/compiler-ssr": "npm:3.4.29"
"@vue/shared": "npm:3.4.29"
estree-walker: "npm:^2.0.2"
magic-string: "npm:^0.30.10"
postcss: "npm:^8.4.38"
source-map-js: "npm:^1.2.0"
checksum: 10c0/4db562793d6ac7e4850e9b841b9e0bbe591c20493eafadc9a0bf0d4e6d355f61fed63a40eda4dabfa489d117f1aae2fb0b57095c8e1dfb00026f2fa1f06507e5
languageName: node
linkType: hard
"@vue/compiler-ssr@npm:3.4.27":
version: 3.4.27
resolution: "@vue/compiler-ssr@npm:3.4.27"
@@ -7005,6 +7222,16 @@ __metadata:
languageName: node
linkType: hard
"@vue/compiler-ssr@npm:3.4.29":
version: 3.4.29
resolution: "@vue/compiler-ssr@npm:3.4.29"
dependencies:
"@vue/compiler-dom": "npm:3.4.29"
"@vue/shared": "npm:3.4.29"
checksum: 10c0/a12cc3ecc0e137500192e472ad5d03ce7442db3c9bb7f1e7d655b45a12a92d8db1c2bc0f959f7693119da2587927c72e1d623fa0471c7ec1c236cfb4a62b4b01
languageName: node
linkType: hard
"@vue/devtools-api@npm:^7.2.1":
version: 7.2.1
resolution: "@vue/devtools-api@npm:7.2.1"
@@ -7047,6 +7274,15 @@ __metadata:
languageName: node
linkType: hard
"@vue/reactivity@npm:3.4.29":
version: 3.4.29
resolution: "@vue/reactivity@npm:3.4.29"
dependencies:
"@vue/shared": "npm:3.4.29"
checksum: 10c0/cc465ba1675705b52af49bcaf1cbd9d694723e1264eaff9b8225392dc6ed221cbdf4826223063d182c558e507d2a9b5cabb3f304cf18b5818439af4e8807d0e1
languageName: node
linkType: hard
"@vue/runtime-core@npm:3.4.27":
version: 3.4.27
resolution: "@vue/runtime-core@npm:3.4.27"
@@ -7057,6 +7293,16 @@ __metadata:
languageName: node
linkType: hard
"@vue/runtime-core@npm:3.4.29":
version: 3.4.29
resolution: "@vue/runtime-core@npm:3.4.29"
dependencies:
"@vue/reactivity": "npm:3.4.29"
"@vue/shared": "npm:3.4.29"
checksum: 10c0/1580ac9daec5598aa03e74e3a58d63e6531ee6cec27811dbdca649e37836dcb814de2fae3ee544bdd3a5f61ff575f3e37c1a54f3effc6a7a55edd8f4749f83b4
languageName: node
linkType: hard
"@vue/runtime-dom@npm:3.4.27":
version: 3.4.27
resolution: "@vue/runtime-dom@npm:3.4.27"
@@ -7068,6 +7314,18 @@ __metadata:
languageName: node
linkType: hard
"@vue/runtime-dom@npm:3.4.29":
version: 3.4.29
resolution: "@vue/runtime-dom@npm:3.4.29"
dependencies:
"@vue/reactivity": "npm:3.4.29"
"@vue/runtime-core": "npm:3.4.29"
"@vue/shared": "npm:3.4.29"
csstype: "npm:^3.1.3"
checksum: 10c0/b307e9a16631d50bc4226da3962dc1e2cac54ba37fcfc1ab87ebdf6c1df4be0d73cedf57812bbca99b2e40593a45450f1dedf61dcf8f74ce70bfc1ed88282a9c
languageName: node
linkType: hard
"@vue/server-renderer@npm:3.4.27":
version: 3.4.27
resolution: "@vue/server-renderer@npm:3.4.27"
@@ -7080,6 +7338,18 @@ __metadata:
languageName: node
linkType: hard
"@vue/server-renderer@npm:3.4.29":
version: 3.4.29
resolution: "@vue/server-renderer@npm:3.4.29"
dependencies:
"@vue/compiler-ssr": "npm:3.4.29"
"@vue/shared": "npm:3.4.29"
peerDependencies:
vue: 3.4.29
checksum: 10c0/c4144470494fe29d8aa06c0b364eef48e1ef661fd2761601b3fa52ea4bcb7f1e26c83c716983aee47ea52cd7b6a7c09ea3c8a20f880c00bb82ca88918bc535fc
languageName: node
linkType: hard
"@vue/shared@npm:3.4.27, @vue/shared@npm:^3.4.27":
version: 3.4.27
resolution: "@vue/shared@npm:3.4.27"
@@ -7087,6 +7357,13 @@ __metadata:
languageName: node
linkType: hard
"@vue/shared@npm:3.4.29":
version: 3.4.29
resolution: "@vue/shared@npm:3.4.29"
checksum: 10c0/7569bb841f1741a4163623feebafb492b6afc7b41967a0dd28d8563230cb2fdd5eed845bcbd006f8928051360fb83da267c8a8ebd0205b13fb1377cdf924cc6e
languageName: node
linkType: hard
"@vueuse/core@npm:10.10.0, @vueuse/core@npm:^10.10.0":
version: 10.10.0
resolution: "@vueuse/core@npm:10.10.0"
@@ -10140,7 +10417,7 @@ __metadata:
"@electron-forge/publisher-s3": "npm:^7.4.0"
"@electron/fuses": "npm:^1.8.0"
"@hookform/resolvers": "npm:^3.6.0"
"@langchain/community": "npm:^0.2.10"
"@langchain/community": "npm:^0.2.11"
"@langchain/google-genai": "npm:^0.0.17"
"@mozilla/readability": "npm:^0.5.0"
"@playwright/test": "npm:^1.44.1"
@@ -10166,7 +10443,7 @@ __metadata:
"@radix-ui/react-toast": "npm:^1.1.5"
"@radix-ui/react-toggle": "npm:^1.0.3"
"@radix-ui/react-tooltip": "npm:^1.0.7"
"@rails/actioncable": "npm:7.1.3-4"
"@rails/actioncable": "npm:7.1.3"
"@sentry/electron": "npm:^5.1.0"
"@tailwindcss/typography": "npm:^0.5.13"
"@types/ahoy.js": "npm:^0.4.2"
@@ -10182,7 +10459,7 @@ __metadata:
"@types/rails__actioncable": "npm:^6.1.10"
"@types/react": "npm:^18.3.3"
"@types/react-dom": "npm:^18.3.0"
"@types/validator": "npm:^13.11.10"
"@types/validator": "npm:^13.12.0"
"@types/wavesurfer.js": "npm:^6.0.12"
"@typescript-eslint/eslint-plugin": "npm:^7.13.0"
"@typescript-eslint/parser": "npm:^7.13.0"
@@ -10214,7 +10491,7 @@ __metadata:
electron-playwright-helpers: "npm:^1.7.1"
electron-settings: "npm:^4.0.4"
electron-squirrel-startup: "npm:^1.0.1"
eslint: "npm:^9.4.0"
eslint: "npm:^9.5.0"
eslint-import-resolver-typescript: "npm:^3.6.1"
eslint-plugin-import: "npm:^2.29.1"
ffmpeg-static: "npm:^5.2.0"
@@ -10224,11 +10501,11 @@ __metadata:
html-to-text: "npm:^9.0.5"
https-proxy-agent: "npm:^7.0.4"
i18next: "npm:^23.11.5"
intl-tel-input: "npm:^23.0.11"
intl-tel-input: "npm:^23.0.12"
js-md5: "npm:^0.8.3"
langchain: "npm:^0.2.5"
lodash: "npm:^4.17.21"
lucide-react: "npm:^0.394.0"
lucide-react: "npm:^0.395.0"
mark.js: "npm:^8.11.1"
microsoft-cognitiveservices-speech-sdk: "npm:^1.38.0"
next-themes: "npm:^0.3.0"
@@ -10241,12 +10518,12 @@ __metadata:
react: "npm:^18.3.1"
react-activity-calendar: "npm:^2.2.10"
react-dom: "npm:^18.3.1"
react-hook-form: "npm:^7.51.5"
react-hook-form: "npm:^7.52.0"
react-hotkeys-hook: "npm:^4.5.0"
react-i18next: "npm:^14.1.2"
react-markdown: "npm:^9.0.1"
react-router-dom: "npm:^6.23.1"
react-tooltip: "npm:^5.26.4"
react-tooltip: "npm:^5.27.0"
reflect-metadata: "npm:^0.2.2"
rimraf: "npm:^5.0.7"
sequelize: "npm:^6.37.3"
@@ -10263,7 +10540,7 @@ __metadata:
typescript: "npm:^5.4.5"
umzug: "npm:^3.8.1"
update-electron-app: "npm:^3.0.0"
vite: "npm:^5.2.13"
vite: "npm:^5.3.1"
vite-plugin-static-copy: "npm:^1.0.5"
wavesurfer.js: "npm:^7.7.15"
zod: "npm:^3.23.8"
@@ -10506,6 +10783,86 @@ __metadata:
languageName: node
linkType: hard
"esbuild@npm:^0.21.3":
version: 0.21.5
resolution: "esbuild@npm:0.21.5"
dependencies:
"@esbuild/aix-ppc64": "npm:0.21.5"
"@esbuild/android-arm": "npm:0.21.5"
"@esbuild/android-arm64": "npm:0.21.5"
"@esbuild/android-x64": "npm:0.21.5"
"@esbuild/darwin-arm64": "npm:0.21.5"
"@esbuild/darwin-x64": "npm:0.21.5"
"@esbuild/freebsd-arm64": "npm:0.21.5"
"@esbuild/freebsd-x64": "npm:0.21.5"
"@esbuild/linux-arm": "npm:0.21.5"
"@esbuild/linux-arm64": "npm:0.21.5"
"@esbuild/linux-ia32": "npm:0.21.5"
"@esbuild/linux-loong64": "npm:0.21.5"
"@esbuild/linux-mips64el": "npm:0.21.5"
"@esbuild/linux-ppc64": "npm:0.21.5"
"@esbuild/linux-riscv64": "npm:0.21.5"
"@esbuild/linux-s390x": "npm:0.21.5"
"@esbuild/linux-x64": "npm:0.21.5"
"@esbuild/netbsd-x64": "npm:0.21.5"
"@esbuild/openbsd-x64": "npm:0.21.5"
"@esbuild/sunos-x64": "npm:0.21.5"
"@esbuild/win32-arm64": "npm:0.21.5"
"@esbuild/win32-ia32": "npm:0.21.5"
"@esbuild/win32-x64": "npm:0.21.5"
dependenciesMeta:
"@esbuild/aix-ppc64":
optional: true
"@esbuild/android-arm":
optional: true
"@esbuild/android-arm64":
optional: true
"@esbuild/android-x64":
optional: true
"@esbuild/darwin-arm64":
optional: true
"@esbuild/darwin-x64":
optional: true
"@esbuild/freebsd-arm64":
optional: true
"@esbuild/freebsd-x64":
optional: true
"@esbuild/linux-arm":
optional: true
"@esbuild/linux-arm64":
optional: true
"@esbuild/linux-ia32":
optional: true
"@esbuild/linux-loong64":
optional: true
"@esbuild/linux-mips64el":
optional: true
"@esbuild/linux-ppc64":
optional: true
"@esbuild/linux-riscv64":
optional: true
"@esbuild/linux-s390x":
optional: true
"@esbuild/linux-x64":
optional: true
"@esbuild/netbsd-x64":
optional: true
"@esbuild/openbsd-x64":
optional: true
"@esbuild/sunos-x64":
optional: true
"@esbuild/win32-arm64":
optional: true
"@esbuild/win32-ia32":
optional: true
"@esbuild/win32-x64":
optional: true
bin:
esbuild: bin/esbuild
checksum: 10c0/fa08508adf683c3f399e8a014a6382a6b65542213431e26206c0720e536b31c09b50798747c2a105a4bbba1d9767b8d3615a74c2f7bf1ddf6d836cd11eb672de
languageName: node
linkType: hard
"escalade@npm:^3.1.1, escalade@npm:^3.1.2":
version: 3.1.2
resolution: "escalade@npm:3.1.2"
@@ -10665,15 +11022,15 @@ __metadata:
languageName: node
linkType: hard
"eslint@npm:^9.4.0":
version: 9.4.0
resolution: "eslint@npm:9.4.0"
"eslint@npm:^9.5.0":
version: 9.5.0
resolution: "eslint@npm:9.5.0"
dependencies:
"@eslint-community/eslint-utils": "npm:^4.2.0"
"@eslint-community/regexpp": "npm:^4.6.1"
"@eslint/config-array": "npm:^0.15.1"
"@eslint/config-array": "npm:^0.16.0"
"@eslint/eslintrc": "npm:^3.1.0"
"@eslint/js": "npm:9.4.0"
"@eslint/js": "npm:9.5.0"
"@humanwhocodes/module-importer": "npm:^1.0.1"
"@humanwhocodes/retry": "npm:^0.3.0"
"@nodelib/fs.walk": "npm:^1.2.8"
@@ -10685,7 +11042,7 @@ __metadata:
eslint-scope: "npm:^8.0.1"
eslint-visitor-keys: "npm:^4.0.0"
espree: "npm:^10.0.1"
esquery: "npm:^1.4.2"
esquery: "npm:^1.5.0"
esutils: "npm:^2.0.2"
fast-deep-equal: "npm:^3.1.3"
file-entry-cache: "npm:^8.0.0"
@@ -10705,7 +11062,7 @@ __metadata:
text-table: "npm:^0.2.0"
bin:
eslint: bin/eslint.js
checksum: 10c0/826c901812536451e1bdb151359098db3a01ee9ff41775d5e97553626d07f7319cb2a0fd54176ef8e2e057105874077426b5d408ee6e8cff06bb814651f4c004
checksum: 10c0/1c83d94ccfd6d97474aaaf463714eba7afa040639ad9191db430d34e9e2851ba14510651de69b52f26ee30611caf0fa4c66b3fb73bb71df6ab10cef5bb44bb32
languageName: node
linkType: hard
@@ -10737,7 +11094,7 @@ __metadata:
languageName: node
linkType: hard
"esquery@npm:^1.4.2":
"esquery@npm:^1.5.0":
version: 1.5.0
resolution: "esquery@npm:1.5.0"
dependencies:
@@ -12408,10 +12765,10 @@ __metadata:
languageName: node
linkType: hard
"intl-tel-input@npm:^23.0.11":
version: 23.0.11
resolution: "intl-tel-input@npm:23.0.11"
checksum: 10c0/90a3d0b2d712ba346b88887060855bb71f3824a82913996443641d77ed9ebe63c36c41eac8f0a19b25be90a0da1768e2c4bd9bf954e396d69d993380c380e801
"intl-tel-input@npm:^23.0.12":
version: 23.0.12
resolution: "intl-tel-input@npm:23.0.12"
checksum: 10c0/b1e0ed75b3d670fbfeefdfaee771219e7b5b0fc1aa3f939a42855ba562f501bfa0c92a9508736f3b8475c59494c97deb55d4329adf6492034192352cc30ffe4a
languageName: node
linkType: hard
@@ -13726,12 +14083,12 @@ __metadata:
languageName: node
linkType: hard
"lucide-react@npm:^0.394.0":
version: 0.394.0
resolution: "lucide-react@npm:0.394.0"
"lucide-react@npm:^0.395.0":
version: 0.395.0
resolution: "lucide-react@npm:0.395.0"
peerDependencies:
react: ^16.5.1 || ^17.0.0 || ^18.0.0
checksum: 10c0/63d040a4ce3789b2aca0e6206ff05aa4620e93f888f6dadf09a0946dcbbcab384410ea3761b32d4afd3a5cd041e3d3f4149c1d83d1680b3502bb552d7620f716
checksum: 10c0/e3ae8865da0e20514e6058f908c9b0686b9117e63c53ea42bdcdbc45e87a09054be35b4698c8f185dbd57fd110e6730c9c308b50e99f7170f498372b5fbac772
languageName: node
linkType: hard
@@ -16666,12 +17023,12 @@ __metadata:
languageName: node
linkType: hard
"react-hook-form@npm:^7.51.5":
version: 7.51.5
resolution: "react-hook-form@npm:7.51.5"
"react-hook-form@npm:^7.52.0":
version: 7.52.0
resolution: "react-hook-form@npm:7.52.0"
peerDependencies:
react: ^16.8.0 || ^17 || ^18
checksum: 10c0/5b13f99a125d92ee618f2d4e218d5ec854f8cac1b568e83b4b125efb002cc79eef0f5c06b54015c78e16a830cf1ea356a646e8c6abb00b7ca8225dba9a92091e
react: ^16.8.0 || ^17 || ^18 || ^19
checksum: 10c0/058bf5596f314c071863bb133979deb56d0a7817d5bf1908a569c003fe03a15736402b040d3e18aeb259723c6e15c243fe75d2d887ea47ff4be87fc472f31ad5
languageName: node
linkType: hard
@@ -16807,16 +17164,16 @@ __metadata:
languageName: node
linkType: hard
"react-tooltip@npm:^5.26.4":
version: 5.26.4
resolution: "react-tooltip@npm:5.26.4"
"react-tooltip@npm:^5.27.0":
version: 5.27.0
resolution: "react-tooltip@npm:5.27.0"
dependencies:
"@floating-ui/dom": "npm:^1.6.1"
classnames: "npm:^2.3.0"
peerDependencies:
react: ">=16.14.0"
react-dom: ">=16.14.0"
checksum: 10c0/f419baf6551c1cd812cc5d3dec76d027899f0ac99e20a50759ad26daa7bfabb3b9283345771f964e1dc973be7b16981f09b4c78f3ace3e1d8fe0389cecf8c199
checksum: 10c0/4b105dcef7b3d166e359b97fdbbef9c622de3c91e3c9387f959495c66d4caefb25e38cd75e0258dac104c3814c0ae74b97807382d36f45dfae6200645bafd3a3
languageName: node
linkType: hard
@@ -19269,11 +19626,11 @@ __metadata:
languageName: node
linkType: hard
"vite@npm:^5.2.13":
version: 5.2.13
resolution: "vite@npm:5.2.13"
"vite@npm:^5.3.1":
version: 5.3.1
resolution: "vite@npm:5.3.1"
dependencies:
esbuild: "npm:^0.20.1"
esbuild: "npm:^0.21.3"
fsevents: "npm:~2.3.3"
postcss: "npm:^8.4.38"
rollup: "npm:^4.13.0"
@@ -19305,7 +19662,7 @@ __metadata:
optional: true
bin:
vite: bin/vite.js
checksum: 10c0/f7a99da71884e69cc581dcfb43d73c8d56d73b9668d6980131603c544d6323c6003a20f376531dc0cfcf36bf5009bc465f89e6c5f8bd9d22868987aba4e4af1b
checksum: 10c0/9317262c02ea2dc324dfdbc20c3c450cd89cc9a16399a41a4bf820a3a1f31cf400878c015135e355ee034853cc2399b5499899d5b1bc462d57642d71083e74b6
languageName: node
linkType: hard
@@ -19399,6 +19756,24 @@ __metadata:
languageName: node
linkType: hard
"vue@npm:^3.4.29":
version: 3.4.29
resolution: "vue@npm:3.4.29"
dependencies:
"@vue/compiler-dom": "npm:3.4.29"
"@vue/compiler-sfc": "npm:3.4.29"
"@vue/runtime-dom": "npm:3.4.29"
"@vue/server-renderer": "npm:3.4.29"
"@vue/shared": "npm:3.4.29"
peerDependencies:
typescript: "*"
peerDependenciesMeta:
typescript:
optional: true
checksum: 10c0/1a84802f746e53b7900e100b6efa55cd38038fa299c955fa11cfe7b6017d5502125ec2993805c9c6612002426660ebdad2cbe7c6153d99e979dc2736e4249def
languageName: node
linkType: hard
"w3c-xmlserializer@npm:^5.0.0":
version: 5.0.0
resolution: "w3c-xmlserializer@npm:5.0.0"