From d2c32d367577932b250381a021de7d5b7c18fb72 Mon Sep 17 00:00:00 2001 From: an-lee Date: Sun, 20 Oct 2024 11:58:21 +0800 Subject: [PATCH] Fix transcription (#1137) * upgrade deps * fix generate transcription * validate transcription before download from online --- 1000-hours/package.json | 2 +- 1000h-portal/package.json | 2 +- enjoy/package.json | 24 +- .../src/renderer/hooks/use-transcriptions.tsx | 26 +- yarn.lock | 248 ++++++++++-------- 5 files changed, 173 insertions(+), 129 deletions(-) diff --git a/1000-hours/package.json b/1000-hours/package.json index 9c652fa8d..e29afd4bc 100644 --- a/1000-hours/package.json +++ b/1000-hours/package.json @@ -8,7 +8,7 @@ "markdown-it-sub": "^2.0.0", "markdown-it-sup": "^2.0.0", "mermaid": "^11.3.0", - "sass": "^1.80.1", + "sass": "^1.80.3", "vitepress": "^1.4.1", "vitepress-plugin-mermaid": "^2.0.17", "vue": "^3.5.12" diff --git a/1000h-portal/package.json b/1000h-portal/package.json index 12f338361..88abafd81 100644 --- a/1000h-portal/package.json +++ b/1000h-portal/package.json @@ -19,7 +19,7 @@ "devDependencies": { "autoprefixer": "^10.4.20", "postcss": "^8.4.47", - "sass": "^1.80.1", + "sass": "^1.80.3", "tailwindcss": "^3.4.14" } } diff --git a/enjoy/package.json b/enjoy/package.json index 5d92eb962..7e72c7b9e 100644 --- a/enjoy/package.json +++ b/enjoy/package.json @@ -49,10 +49,10 @@ "@types/fluent-ffmpeg": "^2.1.26", "@types/html-to-text": "^9.0.4", "@types/intl-tel-input": "^18.1.4", - "@types/lodash": "^4.17.10", + "@types/lodash": "^4.17.12", "@types/mark.js": "^8.11.12", "@types/mustache": "^4.2.5", - "@types/node": "^22.7.6", + "@types/node": "^22.7.7", "@types/prop-types": "^15.7.13", "@types/rails__actioncable": "^6.1.11", "@types/react": "^18.3.11", @@ -61,14 +61,14 @@ "@types/unzipper": "^0.10.10", "@types/validator": "^13.12.2", "@types/wavesurfer.js": "^6.0.12", - "@typescript-eslint/eslint-plugin": "^8.9.0", - "@typescript-eslint/parser": "^8.9.0", - "@vitejs/plugin-react": "^4.3.2", + "@typescript-eslint/eslint-plugin": "^8.10.0", + "@typescript-eslint/parser": "^8.10.0", + "@vitejs/plugin-react": "^4.3.3", "autoprefixer": "^10.4.20", "electron": "^33.0.1", "electron-devtools-installer": "^3.2.0", "electron-playwright-helpers": "^1.7.1", - "eslint": "^9.12.0", + "eslint": "^9.13.0", "eslint-import-resolver-typescript": "^3.6.3", "eslint-plugin-import": "^2.31.0", "flora-colossus": "^2.0.0", @@ -139,7 +139,7 @@ "dayjs": "^1.11.13", "decamelize": "^6.0.0", "decamelize-keys": "^2.0.1", - "echogarden": "^1.8.5", + "echogarden": "^1.8.7", "electron-context-menu": "^4.0.4", "electron-log": "^5.2.0", "electron-settings": "^4.0.4", @@ -149,7 +149,7 @@ "fs-extra": "^11.2.0", "html-to-text": "^9.0.5", "https-proxy-agent": "^7.0.5", - "i18next": "^23.16.0", + "i18next": "^23.16.1", "intl-tel-input": "^24.6.0", "js-md5": "^0.8.3", "langchain": "^0.3.2", @@ -160,17 +160,17 @@ "microsoft-cognitiveservices-speech-sdk": "^1.41.0", "mustache": "^4.2.0", "next-themes": "^0.3.0", - "openai": "^4.67.3", + "openai": "^4.68.1", "pitchfinder": "^2.3.2", "postcss": "^8.4.47", "proxy-agent": "^6.4.0", "react": "^18.3.1", - "react-activity-calendar": "^2.6.2", + "react-activity-calendar": "^2.6.3", "react-audio-visualize": "^1.2.0", "react-audio-voice-recorder": "^2.2.0", "react-dom": "^18.3.1", "react-frame-component": "^5.2.7", - "react-hook-form": "^7.53.0", + "react-hook-form": "^7.53.1", "react-hotkeys-hook": "^4.5.1", "react-i18next": "^15.0.3", "react-markdown": "^9.0.1", @@ -189,7 +189,7 @@ "umzug": "^3.8.2", "unzipper": "^0.12.3", "update-electron-app": "^3.0.0", - "wavesurfer.js": "^7.8.6", + "wavesurfer.js": "^7.8.7", "zod": "^3.23.8", "zod-to-json-schema": "^3.23.3" } diff --git a/enjoy/src/renderer/hooks/use-transcriptions.tsx b/enjoy/src/renderer/hooks/use-transcriptions.tsx index 94dad0134..f3dd06999 100644 --- a/enjoy/src/renderer/hooks/use-transcriptions.tsx +++ b/enjoy/src/renderer/hooks/use-transcriptions.tsx @@ -94,7 +94,13 @@ export const useTranscriptions = (media: AudioType | VideoType) => { items: 10, }); if (result.transcriptions.length) { - return result.transcriptions[0]; + for (const tr of result.transcriptions) { + if (validateTranscription(tr)) { + return tr; + } else { + console.warn(`Invalid transcription: ${tr.id}`); + } + } } else { return null; } @@ -115,7 +121,7 @@ export const useTranscriptions = (media: AudioType | VideoType) => { originalText, language = learningLanguage, service = sttEngine, - model, + model: whisperModel, isolate = false, } = params || {}; setService(service); @@ -138,6 +144,7 @@ export const useTranscriptions = (media: AudioType | VideoType) => { { targetId: media.id, targetType: media.mediaType, + model: whisperModel, originalText, language, service, @@ -254,6 +261,21 @@ export const useTranscriptions = (media: AudioType | VideoType) => { return timeline; }; + const validateTranscription = (transcription: TranscriptionType) => { + if (!transcription) return; + + const { timeline, transcript } = transcription.result; + if (!timeline || !transcript) { + return false; + } + + if (timeline[0]?.type !== "sentence") { + return false; + } + + return true; + }; + /* * find or create transcription */ diff --git a/yarn.lock b/yarn.lock index 800e1db6d..ce1fe9563 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17,7 +17,7 @@ __metadata: markdown-it-sub: "npm:^2.0.0" markdown-it-sup: "npm:^2.0.0" mermaid: "npm:^11.3.0" - sass: "npm:^1.80.1" + sass: "npm:^1.80.3" swiper: "npm:^11.1.14" vitepress: "npm:^1.4.1" vitepress-plugin-mermaid: "npm:^2.0.17" @@ -34,7 +34,7 @@ __metadata: nuxt: "npm:^3.13.2" nuxt-og-image: "npm:^3.0.6" postcss: "npm:^8.4.47" - sass: "npm:^1.80.1" + sass: "npm:^1.80.3" tailwindcss: "npm:^3.4.14" vue: "npm:^3.5.12" vue-router: "npm:^4.4.5" @@ -2899,10 +2899,10 @@ __metadata: languageName: node linkType: hard -"@eslint/core@npm:^0.6.0": - version: 0.6.0 - resolution: "@eslint/core@npm:0.6.0" - checksum: 10c0/fffdb3046ad6420f8cb9204b6466fdd8632a9baeebdaf2a97d458a4eac0e16653ba50d82d61835d7d771f6ced0ec942ec482b2fbccc300e45f2cbf784537f240 +"@eslint/core@npm:^0.7.0": + version: 0.7.0 + resolution: "@eslint/core@npm:0.7.0" + checksum: 10c0/3cdee8bc6cbb96ac6103d3ead42e59830019435839583c9eb352b94ed558bd78e7ffad5286dc710df21ec1e7bd8f52aa6574c62457a4dd0f01f3736fa4a7d87a languageName: node linkType: hard @@ -2923,10 +2923,10 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:9.12.0": - version: 9.12.0 - resolution: "@eslint/js@npm:9.12.0" - checksum: 10c0/325650a59a1ce3d97c69441501ebaf415607248bacbe8c8ca35adc7cb73b524f592f266a75772f496b06f3239e3ee1996722a242148085f0ee5fb3dd7065897c +"@eslint/js@npm:9.13.0": + version: 9.13.0 + resolution: "@eslint/js@npm:9.13.0" + checksum: 10c0/672257bffe17777b8a98bd80438702904cc7a0b98b9c2e426a8a10929198b3553edf8a3fc20feed4133c02e7c8f7331a0ef1b23e5dab8e4469f7f1791beff1e0 languageName: node linkType: hard @@ -7538,10 +7538,10 @@ __metadata: languageName: node linkType: hard -"@types/lodash@npm:^4.17.10": - version: 4.17.10 - resolution: "@types/lodash@npm:4.17.10" - checksum: 10c0/149b2b9fcc277204393423ed14df28894980c2322ec522fc23f2c6f7edef6ee8d876ee09ed4520f45d128adc0a7a6e618bb0017668349716cd99c6ef54a21621 +"@types/lodash@npm:^4.17.12": + version: 4.17.12 + resolution: "@types/lodash@npm:4.17.12" + checksum: 10c0/106008f628ea3c74ed7ee7842dee79e230c84e3721ac38c293700031adb5bd130113048c22f476dbde0d0c119506b0fc447d4bd62eca922682d11e00e1377967 languageName: node linkType: hard @@ -7652,12 +7652,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^22.7.6": - version: 22.7.6 - resolution: "@types/node@npm:22.7.6" +"@types/node@npm:^22.7.7": + version: 22.7.7 + resolution: "@types/node@npm:22.7.7" dependencies: undici-types: "npm:~6.19.2" - checksum: 10c0/d4406a63afce981c363fb1d1954aaf1759ad2d487c0833ebf667565ea4e45ff217d6fab4b5343badbdeccdf9d2e4a0841d633e0c929ceabcb33c288663dd0c73 + checksum: 10c0/07268a1e990ad9d9b1865092881317ea679a46eb6706d83a8874eec75fdddae6cfd6452e4e68b651561183e2a8f8548276f3155744bc402c2545978c19b70d65 languageName: node linkType: hard @@ -7807,15 +7807,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^8.9.0": - version: 8.9.0 - resolution: "@typescript-eslint/eslint-plugin@npm:8.9.0" +"@typescript-eslint/eslint-plugin@npm:^8.10.0": + version: 8.10.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.10.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.9.0" - "@typescript-eslint/type-utils": "npm:8.9.0" - "@typescript-eslint/utils": "npm:8.9.0" - "@typescript-eslint/visitor-keys": "npm:8.9.0" + "@typescript-eslint/scope-manager": "npm:8.10.0" + "@typescript-eslint/type-utils": "npm:8.10.0" + "@typescript-eslint/utils": "npm:8.10.0" + "@typescript-eslint/visitor-keys": "npm:8.10.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -7826,66 +7826,66 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/07f273dc270268980bbf65ea5e0c69d05377e42dbdb2dd3f4a1293a3536c049ddfb548eb9ec6e60394c2361c4a15b62b8246951f83e16a9d16799578a74dc691 + checksum: 10c0/4b77ba9c865a2a14e238cd330b5901f0274b8ce1c13324fccd0339b8eea82a50a4709394c903fd8cd5bd0d3aebace0761ff9a4a19fa20b00bb61349b7671c035 languageName: node linkType: hard -"@typescript-eslint/parser@npm:^8.9.0": - version: 8.9.0 - resolution: "@typescript-eslint/parser@npm:8.9.0" +"@typescript-eslint/parser@npm:^8.10.0": + version: 8.10.0 + resolution: "@typescript-eslint/parser@npm:8.10.0" dependencies: - "@typescript-eslint/scope-manager": "npm:8.9.0" - "@typescript-eslint/types": "npm:8.9.0" - "@typescript-eslint/typescript-estree": "npm:8.9.0" - "@typescript-eslint/visitor-keys": "npm:8.9.0" + "@typescript-eslint/scope-manager": "npm:8.10.0" + "@typescript-eslint/types": "npm:8.10.0" + "@typescript-eslint/typescript-estree": "npm:8.10.0" + "@typescript-eslint/visitor-keys": "npm:8.10.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/aca7c838de85fb700ecf5682dc6f8f90a0fbfe09a3044a176c0dc3ffd9c5e7105beb0919a30824f46b02223a74119b4f5a9834a0663328987f066cb359b5dbed + checksum: 10c0/7becb2457c085c239838d301796074b790f46dd38c9fbc14ec1dec8e993c7115cd8a66cdc07983c3a68a2dd92e24e8acc49d69a4ebcc29e9869957eb52d1cb74 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.9.0": - version: 8.9.0 - resolution: "@typescript-eslint/scope-manager@npm:8.9.0" +"@typescript-eslint/scope-manager@npm:8.10.0": + version: 8.10.0 + resolution: "@typescript-eslint/scope-manager@npm:8.10.0" dependencies: - "@typescript-eslint/types": "npm:8.9.0" - "@typescript-eslint/visitor-keys": "npm:8.9.0" - checksum: 10c0/1fb77a982e3384d8cabd64678ea8f9de328708080ff9324bf24a44da4e8d7b7692ae4820efc3ef36027bf0fd6a061680d3c30ce63d661fb31e18970fca5e86c5 + "@typescript-eslint/types": "npm:8.10.0" + "@typescript-eslint/visitor-keys": "npm:8.10.0" + checksum: 10c0/b8bb8635c4d6c00a3578d6265e3ee0f5d96d0c9dee534ed588aa411c3f4497fd71cce730c3ae7571e52453d955b191bc9edcc47c9af21a20c90e9a20f2371108 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.9.0": - version: 8.9.0 - resolution: "@typescript-eslint/type-utils@npm:8.9.0" +"@typescript-eslint/type-utils@npm:8.10.0": + version: 8.10.0 + resolution: "@typescript-eslint/type-utils@npm:8.10.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:8.9.0" - "@typescript-eslint/utils": "npm:8.9.0" + "@typescript-eslint/typescript-estree": "npm:8.10.0" + "@typescript-eslint/utils": "npm:8.10.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" peerDependenciesMeta: typescript: optional: true - checksum: 10c0/aff06afda9ac7d12f750e76c8f91ed8b56eefd3f3f4fbaa93a64411ec9e0bd2c2972f3407e439320d98062b16f508dce7604b8bb2b803fded9d3148e5ee721b1 + checksum: 10c0/1af8fce8394279e6ac7bcef449a132072ee36e374c8d557564246ffe7150230844901ca0305e29525bf37c87010e03bf8bedec76fccbfe1e41931cb4f274e208 languageName: node linkType: hard -"@typescript-eslint/types@npm:8.9.0": - version: 8.9.0 - resolution: "@typescript-eslint/types@npm:8.9.0" - checksum: 10c0/8d901b7ed2f943624c24f7fa67f7be9d49a92554d54c4f27397c05b329ceff59a9ea246810b53ff36fca08760c14305dd4ce78fbac7ca0474311b0575bf49010 +"@typescript-eslint/types@npm:8.10.0": + version: 8.10.0 + resolution: "@typescript-eslint/types@npm:8.10.0" + checksum: 10c0/f27dd43c8383e02e914a254257627e393dfc0f08b0f74a253c106813ae361f090271b2f3f2ef588fa3ca1329897d873da595bb5641fe8e3091b25eddca24b5d2 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.9.0": - version: 8.9.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.9.0" +"@typescript-eslint/typescript-estree@npm:8.10.0": + version: 8.10.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.10.0" dependencies: - "@typescript-eslint/types": "npm:8.9.0" - "@typescript-eslint/visitor-keys": "npm:8.9.0" + "@typescript-eslint/types": "npm:8.10.0" + "@typescript-eslint/visitor-keys": "npm:8.10.0" debug: "npm:^4.3.4" fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" @@ -7895,31 +7895,31 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/bb5ec70727f07d1575e95f9d117762636209e1ab073a26c4e873e1e5b4617b000d300a23d294ad81693f7e99abe3e519725452c30b235a253edcd85b6ae052b0 + checksum: 10c0/535a740fe25be0e28fe68c41e3264273d1e5169c9f938e08cc0e3415c357726f43efa44621960108c318fc3305c425d29f3223b6e731d44d67f84058a8947304 languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.9.0": - version: 8.9.0 - resolution: "@typescript-eslint/utils@npm:8.9.0" +"@typescript-eslint/utils@npm:8.10.0": + version: 8.10.0 + resolution: "@typescript-eslint/utils@npm:8.10.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.9.0" - "@typescript-eslint/types": "npm:8.9.0" - "@typescript-eslint/typescript-estree": "npm:8.9.0" + "@typescript-eslint/scope-manager": "npm:8.10.0" + "@typescript-eslint/types": "npm:8.10.0" + "@typescript-eslint/typescript-estree": "npm:8.10.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 - checksum: 10c0/af13e3d501060bdc5fa04b131b3f9a90604e5c1d4845d1f8bd94b703a3c146a76debfc21fe65a7f3a0459ed6c57cf2aa3f0a052469bb23b6f35ff853fe9495b1 + checksum: 10c0/a21a2933517176abd00fcd5d8d80023e35dc3d89d5746bbac43790b4e984ab1f371117db08048bce7f42d54c64f4e0e35161149f8f34fd25a27bff9d1110fd16 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.9.0": - version: 8.9.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.9.0" +"@typescript-eslint/visitor-keys@npm:8.10.0": + version: 8.10.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.10.0" dependencies: - "@typescript-eslint/types": "npm:8.9.0" + "@typescript-eslint/types": "npm:8.10.0" eslint-visitor-keys: "npm:^3.4.3" - checksum: 10c0/e33208b946841f1838d87d64f4ee230f798e68bdce8c181d3ac0abb567f758cb9c4bdccc919d493167869f413ca4c400e7db0f7dd7e8fc84ab6a8344076a7458 + checksum: 10c0/14721c4ac939640d5fd1ee1b6eeb07604b11a6017e319e21dcc71e7aac2992341fc7ae1992d977bad4433b6a1d0d1c0c279e6927316b26245f6e333f922fa458 languageName: node linkType: hard @@ -8102,9 +8102,9 @@ __metadata: languageName: node linkType: hard -"@vitejs/plugin-react@npm:^4.3.2": - version: 4.3.2 - resolution: "@vitejs/plugin-react@npm:4.3.2" +"@vitejs/plugin-react@npm:^4.3.3": + version: 4.3.3 + resolution: "@vitejs/plugin-react@npm:4.3.3" dependencies: "@babel/core": "npm:^7.25.2" "@babel/plugin-transform-react-jsx-self": "npm:^7.24.7" @@ -8113,7 +8113,7 @@ __metadata: react-refresh: "npm:^0.14.2" peerDependencies: vite: ^4.2.0 || ^5.0.0 - checksum: 10c0/945f357175bea45031dc98d379e63cd34cd60a51b3dd394b66138696625ac8b55bc913a23481f78bbe15ca558c21ea4699b936abbd8242003d7c0ad51d298727 + checksum: 10c0/b370c25fb47bb96f0cc51f3aadbbcfce54e40f95a4de67cf932e5ec526f139648da703725c6ea2c71a1b525eb3dd6e3e8ff877da143627cd2575de5ec4f00aa3 languageName: node linkType: hard @@ -11716,9 +11716,9 @@ __metadata: languageName: node linkType: hard -"echogarden@npm:^1.8.5": - version: 1.8.5 - resolution: "echogarden@npm:1.8.5" +"echogarden@npm:^1.8.7": + version: 1.8.7 + resolution: "echogarden@npm:1.8.7" dependencies: "@aws-sdk/client-polly": "npm:^3.670.0" "@aws-sdk/client-transcribe-streaming": "npm:^3.672.0" @@ -12148,10 +12148,10 @@ __metadata: "@types/fluent-ffmpeg": "npm:^2.1.26" "@types/html-to-text": "npm:^9.0.4" "@types/intl-tel-input": "npm:^18.1.4" - "@types/lodash": "npm:^4.17.10" + "@types/lodash": "npm:^4.17.12" "@types/mark.js": "npm:^8.11.12" "@types/mustache": "npm:^4.2.5" - "@types/node": "npm:^22.7.6" + "@types/node": "npm:^22.7.7" "@types/prop-types": "npm:^15.7.13" "@types/rails__actioncable": "npm:^6.1.11" "@types/react": "npm:^18.3.11" @@ -12160,11 +12160,11 @@ __metadata: "@types/unzipper": "npm:^0.10.10" "@types/validator": "npm:^13.12.2" "@types/wavesurfer.js": "npm:^6.0.12" - "@typescript-eslint/eslint-plugin": "npm:^8.9.0" - "@typescript-eslint/parser": "npm:^8.9.0" + "@typescript-eslint/eslint-plugin": "npm:^8.10.0" + "@typescript-eslint/parser": "npm:^8.10.0" "@uidotdev/usehooks": "npm:^2.4.1" "@vidstack/react": "npm:^1.12.11" - "@vitejs/plugin-react": "npm:^4.3.2" + "@vitejs/plugin-react": "npm:^4.3.3" ahoy.js: "npm:^0.4.4" autoprefixer: "npm:^10.4.20" autosize: "npm:^6.0.1" @@ -12183,7 +12183,7 @@ __metadata: dayjs: "npm:^1.11.13" decamelize: "npm:^6.0.0" decamelize-keys: "npm:^2.0.1" - echogarden: "npm:^1.8.5" + echogarden: "npm:^1.8.7" electron: "npm:^33.0.1" electron-context-menu: "npm:^4.0.4" electron-devtools-installer: "npm:^3.2.0" @@ -12191,7 +12191,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.12.0" + eslint: "npm:^9.13.0" eslint-import-resolver-typescript: "npm:^3.6.3" eslint-plugin-import: "npm:^2.31.0" ffmpeg-static: "npm:^5.2.0" @@ -12200,7 +12200,7 @@ __metadata: fs-extra: "npm:^11.2.0" html-to-text: "npm:^9.0.5" https-proxy-agent: "npm:^7.0.5" - i18next: "npm:^23.16.0" + i18next: "npm:^23.16.1" intl-tel-input: "npm:^24.6.0" js-md5: "npm:^0.8.3" langchain: "npm:^0.3.2" @@ -12212,19 +12212,19 @@ __metadata: mustache: "npm:^4.2.0" next-themes: "npm:^0.3.0" octokit: "npm:^4.0.2" - openai: "npm:^4.67.3" + openai: "npm:^4.68.1" pitchfinder: "npm:^2.3.2" postcss: "npm:^8.4.47" progress: "npm:^2.0.3" prop-types: "npm:^15.8.1" proxy-agent: "npm:^6.4.0" react: "npm:^18.3.1" - react-activity-calendar: "npm:^2.6.2" + react-activity-calendar: "npm:^2.6.3" react-audio-visualize: "npm:^1.2.0" react-audio-voice-recorder: "npm:^2.2.0" react-dom: "npm:^18.3.1" react-frame-component: "npm:^5.2.7" - react-hook-form: "npm:^7.53.0" + react-hook-form: "npm:^7.53.1" react-hotkeys-hook: "npm:^4.5.1" react-i18next: "npm:^15.0.3" react-markdown: "npm:^9.0.1" @@ -12252,7 +12252,7 @@ __metadata: update-electron-app: "npm:^3.0.0" vite: "npm:^5.4.9" vite-plugin-static-copy: "npm:^2.0.0" - wavesurfer.js: "npm:^7.8.6" + wavesurfer.js: "npm:^7.8.7" zod: "npm:^3.23.8" zod-to-json-schema: "npm:^3.23.3" zx: "npm:^8.1.9" @@ -12838,16 +12838,16 @@ __metadata: languageName: node linkType: hard -"eslint@npm:^9.12.0": - version: 9.12.0 - resolution: "eslint@npm:9.12.0" +"eslint@npm:^9.13.0": + version: 9.13.0 + resolution: "eslint@npm:9.13.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" "@eslint-community/regexpp": "npm:^4.11.0" "@eslint/config-array": "npm:^0.18.0" - "@eslint/core": "npm:^0.6.0" + "@eslint/core": "npm:^0.7.0" "@eslint/eslintrc": "npm:^3.1.0" - "@eslint/js": "npm:9.12.0" + "@eslint/js": "npm:9.13.0" "@eslint/plugin-kit": "npm:^0.2.0" "@humanfs/node": "npm:^0.16.5" "@humanwhocodes/module-importer": "npm:^1.0.1" @@ -12884,7 +12884,7 @@ __metadata: optional: true bin: eslint: bin/eslint.js - checksum: 10c0/67cf6ea3ea28dcda7dd54aac33e2d4028eb36991d13defb0d2339c3eaa877d5dddd12cd4416ddc701a68bcde9e0bb9e65524c2e4e9914992c724f5b51e949dda + checksum: 10c0/d3577444152182a9d8ea8c6a6acb073d3a2773ad73a6b646f432746583ec4bfcd6a44fcc2e37d05d276984e583c46c2d289b3b981ca8f8b4052756a152341d19 languageName: node linkType: hard @@ -14737,12 +14737,12 @@ __metadata: languageName: node linkType: hard -"i18next@npm:^23.16.0": - version: 23.16.0 - resolution: "i18next@npm:23.16.0" +"i18next@npm:^23.16.1": + version: 23.16.1 + resolution: "i18next@npm:23.16.1" dependencies: "@babel/runtime": "npm:^7.23.2" - checksum: 10c0/17b40d125befec02e2c8069e658ea54d36ee46fab9e05bbeed93bb5ec75fab8bd334139372652d5df491147a124447a8ee1b78ccba726b7d61b1c03e84c7b6c5 + checksum: 10c0/6bab6b956db1e563ed03319d073b566c66df089c7ad96fc695fa6fe3719654522ffae21c18b77058ebd9aa57dc9f42feb617a8c92903bdc78e1c2e0d9460b669 languageName: node linkType: hard @@ -18513,6 +18513,28 @@ __metadata: languageName: node linkType: hard +"openai@npm:^4.68.1": + version: 4.68.1 + resolution: "openai@npm:4.68.1" + 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" + form-data-encoder: "npm:1.7.2" + formdata-node: "npm:^4.3.2" + node-fetch: "npm:^2.6.7" + peerDependencies: + zod: ^3.23.8 + peerDependenciesMeta: + zod: + optional: true + bin: + openai: bin/cli + checksum: 10c0/9b358f50f0bb6f456c5afa14fa695ba27554b0ad47c53510c7c25b59fdd6a92f0b78e4bc69a56188e76756a981f9bc4d81d5da82a1778c1b57d8a9d3aef8671a + languageName: node + linkType: hard + "openapi-types@npm:^12.1.3": version: 12.1.3 resolution: "openapi-types@npm:12.1.3" @@ -19965,15 +19987,15 @@ __metadata: languageName: node linkType: hard -"react-activity-calendar@npm:^2.6.2": - version: 2.6.2 - resolution: "react-activity-calendar@npm:2.6.2" +"react-activity-calendar@npm:^2.6.3": + version: 2.6.3 + resolution: "react-activity-calendar@npm:2.6.3" dependencies: date-fns: "npm:^4.1.0" peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - checksum: 10c0/03653c3e13758b1c551ecf42824775a5e34dfc57508a7690f849490b6a7bcaab258309515d06660abbb5c16613300eff24538799e8affded3269f5f979b3a2d0 + checksum: 10c0/2f5756aa888b0f9e546dbe0216933678a2614d0a95e241b5ede724dc0d7be1acb0d4f65c85e210c538b75d3cd1ed99066bc3049639ec7bcadccf1a8d0fe14ff9 languageName: node linkType: hard @@ -20023,12 +20045,12 @@ __metadata: languageName: node linkType: hard -"react-hook-form@npm:^7.53.0": - version: 7.53.0 - resolution: "react-hook-form@npm:7.53.0" +"react-hook-form@npm:^7.53.1": + version: 7.53.1 + resolution: "react-hook-form@npm:7.53.1" peerDependencies: react: ^16.8.0 || ^17 || ^18 || ^19 - checksum: 10c0/6d62b150618a833c17d59e669b707661499e2bb516a8d340ca37699f99eb448bbba7b5b78324938c8948014e21efaa32e3510c2ba246fd5e97a96fca0cfa7c98 + checksum: 10c0/dd2466359a633f873755b366d367d51ab17100566b687fb3b098f704232bc6ab1c79d29f879151e492880ca5eeac35e9425fbe5a309e2a55f7a4b5baf7826e8d languageName: node linkType: hard @@ -20892,9 +20914,9 @@ __metadata: languageName: node linkType: hard -"sass@npm:^1.80.1": - version: 1.80.1 - resolution: "sass@npm:1.80.1" +"sass@npm:^1.80.3": + version: 1.80.3 + resolution: "sass@npm:1.80.3" dependencies: "@parcel/watcher": "npm:^2.4.1" chokidar: "npm:^4.0.0" @@ -20902,7 +20924,7 @@ __metadata: source-map-js: "npm:>=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 10c0/91ec2b8bcba4c3c68c047fdcbe04cb82646b5cc6446e04d9134ff3c642d9895363de5cbf88869f0a6aa81bcd2de9b8ccba7df7ff35d33a07a18754014ee7a31a + checksum: 10c0/fa08043fc36b854717b6eaf6247ee11341d0aff5e17a645965071866bd677930c9c9467d82ed5a4a666d7897a82be8a61427cd81b808e6b9e2d3b32cf278bebd languageName: node linkType: hard @@ -23777,10 +23799,10 @@ __metadata: languageName: node linkType: hard -"wavesurfer.js@npm:^7.8.6": - version: 7.8.6 - resolution: "wavesurfer.js@npm:7.8.6" - checksum: 10c0/fe5a9cc06f2960f41602540b81c7972c9d45d813a294c0a5a7f31ffa71362395168aa8341acaa736d4835cc5917c54f2013a090214d72d038e1942a98256975c +"wavesurfer.js@npm:^7.8.7": + version: 7.8.7 + resolution: "wavesurfer.js@npm:7.8.7" + checksum: 10c0/841ae671b659208d21332078435c00acc380eca731b1b0ebae04a92db65b3c5c0caf4b1b02f29d07bd47edc795eb8acb74ba84d8aa3bb75ce09f51839d9930dd languageName: node linkType: hard