New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@vot.js/core

Package Overview
Dependencies
Maintainers
0
Versions
46
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@vot.js/core - npm Package Compare versions

Comparing version 2.2.6 to 2.3.0

8

dist/client.d.ts
import type { ClientSession, SessionModule } from "@vot.js/shared/types/secure";
import type { RequestLang, ResponseLang } from "@vot.js/shared/types/data";
import type { VOTOpts, FetchFunction, VOTSessions, URLSchema, ClientResponse } from "./types/client.js";
import type { VideoTranslationOpts, VideoTranslationResponse, VideoSubtitlesOpts, StreamPingOptions, StreamTranslationOpts, StreamTranslationResponse, VideoTranslationFailAudioResponse, AudioBufferObject, PartialAudioObject } from "./types/yandex.js";
import type { VideoTranslationVOTOpts } from "./types/vot.js";
import type { VideoTranslationOpts, VideoTranslationResponse, VideoSubtitlesOpts, StreamPingOptions, StreamTranslationOpts, StreamTranslationResponse, VideoTranslationFailAudioResponse, AudioBufferObject, PartialAudioObject, GetSubtitlesResponse } from "./types/yandex.js";
import type { GetSubtitlesVOTOpts, VideoTranslationVOTOpts } from "./types/vot.js";
export declare class VOTJSError extends Error {

@@ -58,3 +58,5 @@ data: unknown;

translateVideo({ videoData, requestLang, responseLang, translationHelp, headers, extraOpts, shouldSendFailedAudio, }: VideoTranslationOpts): Promise<VideoTranslationResponse>;
getSubtitles({ videoData, requestLang, headers, }: VideoSubtitlesOpts): Promise<import("@vot.js/shared/protos").SubtitlesResponse>;
protected getSubtitlesYAImpl({ videoData, requestLang, headers, }: VideoSubtitlesOpts): Promise<GetSubtitlesResponse>;
protected getSubtitlesVOTImpl({ url, videoId, service, headers, }: GetSubtitlesVOTOpts): Promise<GetSubtitlesResponse>;
getSubtitles({ videoData, requestLang, headers, }: VideoSubtitlesOpts): Promise<GetSubtitlesResponse>;
pingStream({ pingId, headers }: StreamPingOptions): Promise<boolean>;

@@ -61,0 +63,0 @@ translateStream({ videoData, requestLang, responseLang, headers, }: StreamTranslationOpts): Promise<StreamTranslationResponse>;

@@ -248,7 +248,10 @@ import config from "@vot.js/shared/config";

service: votData.service,
videoId: votData.videoId,
fromLang: requestLang,
toLang: responseLang,
rawVideo: url,
}, headers);
video_id: votData.videoId,
from_lang: requestLang,
to_lang: responseLang,
raw_video: url,
}, {
"X-Use-Snake-Case": "Yes",
...headers,
});
if (!res.success) {

@@ -262,3 +265,3 @@ throw new VOTJSError("Failed to request video translation", res);

case "success":
if (!translationData.translatedUrl) {
if (!translationData.translated_url) {
throw new VOTJSError("Audio link wasn't received from VOT response", translationData);

@@ -269,3 +272,3 @@ }

translated: true,
url: translationData.translatedUrl,
url: translationData.translated_url,
status: 1,

@@ -278,3 +281,3 @@ remainingTime: -1,

translated: false,
remainingTime: translationData.remainingTime,
remainingTime: translationData.remaining_time,
status: 2,

@@ -329,7 +332,4 @@ message: translationData.message,

}
async getSubtitles({ videoData, requestLang = this.requestLang, headers = {}, }) {
async getSubtitlesYAImpl({ videoData, requestLang = this.requestLang, headers = {}, }) {
const { url } = videoData;
if (this.isCustomLink(url)) {
throw new VOTJSError("Unsupported video URL for getting subtitles");
}
const session = await this.getSession("video-translation");

@@ -346,4 +346,64 @@ const body = YandexVOTProtobuf.encodeSubtitlesRequest(url, requestLang);

}
return YandexVOTProtobuf.decodeSubtitlesResponse(res.data);
const subtitlesData = YandexVOTProtobuf.decodeSubtitlesResponse(res.data);
const subtitles = subtitlesData.subtitles.map((subtitle) => {
const { language, url, translatedLanguage, translatedUrl } = subtitle;
return {
language,
url,
translatedLanguage,
translatedUrl,
};
});
return {
waiting: subtitlesData.waiting,
subtitles,
};
}
async getSubtitlesVOTImpl({ url, videoId, service, headers = {}, }) {
const votData = convertVOT(service, videoId, url);
const res = await this.requestVOT(this.paths.videoSubtitles, {
provider: "yandex",
service: votData.service,
video_id: votData.videoId,
}, headers);
if (!res.success) {
throw new VOTJSError("Failed to request video subtitles", res);
}
const subtitlesData = res.data;
const subtitles = subtitlesData.reduce((result, subtitle) => {
if (!subtitle.lang_from) {
return result;
}
const originalSubtitle = subtitlesData.find((sub) => sub.lang === subtitle.lang_from);
if (!originalSubtitle) {
return result;
}
result.push({
language: originalSubtitle.lang,
url: originalSubtitle.subtitle_url,
translatedLanguage: subtitle.lang,
translatedUrl: subtitle.subtitle_url,
});
return result;
}, []);
return {
waiting: false,
subtitles,
};
}
async getSubtitles({ videoData, requestLang = this.requestLang, headers = {}, }) {
const { url, videoId, host } = videoData;
return this.isCustomLink(url)
? await this.getSubtitlesVOTImpl({
url,
videoId,
service: host,
headers,
})
: await this.getSubtitlesYAImpl({
videoData,
requestLang,
headers,
});
}
async pingStream({ pingId, headers = {} }) {

@@ -350,0 +410,0 @@ const session = await this.getSession("video-translation");

@@ -12,3 +12,3 @@ import { StreamPingRequest, StreamTranslationRequest, StreamTranslationResponse, SubtitlesRequest, SubtitlesResponse, VideoTranslationAudioRequest, VideoTranslationAudioResponse, VideoTranslationRequest, VideoTranslationResponse, YandexSessionRequest, YandexSessionResponse, } from "@vot.js/shared/protos";

unknown1: 0,
translationHelp: translationHelp ? translationHelp : [],
translationHelp: translationHelp ?? [],
responseLanguage: responseLang,

@@ -15,0 +15,0 @@ wasStream,

@@ -35,3 +35,3 @@ import type {

status: Type.Literal("waiting"),
remainingTime: Type.Number(),
remaining_time: Type.Number(),
message: Type.String()

@@ -45,5 +45,5 @@ })

provider: TranslationProvider,
translatedUrl: Type.String(),
translated_url: Type.String(),
message: Type.String(),
createdAt: Type.String()
created_at: Type.String()
})

@@ -56,7 +56,15 @@

provider: TranslationProvider,
translatedUrl: Type.Null(),
translated_url: Type.Null(),
message: Type.String(),
createdAt: Type.String()
created_at: Type.String()
})
export type GetSubtitlesVOTOpts<T extends TSchema> = Static<ReturnType<typeof GetSubtitlesVOTOpts<T>>>
export const GetSubtitlesVOTOpts = <T extends TSchema>(T: T) => Type.Object({
url: Type.String(),
videoId: Type.String(),
service: T,
headers: Type.Optional(RequestHeaders)
})
export type TranslationResponse = Static<typeof TranslationResponse>

@@ -67,2 +75,23 @@ export const TranslationResponse = Type.Union([

TranslationFailedResponse
])
])
export type SubtitleItem = Static<typeof SubtitleItem>
export const SubtitleItem = Type.Object({
id: Type.Number(),
service: Type.String(),
video_id: Type.String(),
provider: TranslationProvider,
lang: Type.String(),
lang_from: Type.Union([
Type.String(),
Type.Null()
]),
subtitle_url: Type.String(),
created_at: Type.String()
})
export type SubtitlesResponse = Static<typeof SubtitlesResponse>
export const SubtitlesResponse = Type.Object({
waiting: Type.Boolean(),
subtitles: Type.Array(SubtitleItem)
})

@@ -153,2 +153,16 @@ import type {

status: Type.Number()
})
export type SubtitleItem = Static<typeof SubtitleItem>
export const SubtitleItem = Type.Object({
language: Type.String(),
url: Type.String(),
translatedLanguage: Type.String(),
translatedUrl: Type.String()
})
export type GetSubtitlesResponse = Static<typeof GetSubtitlesResponse>
export const GetSubtitlesResponse = Type.Object({
waiting: Type.Boolean(),
subtitles: Type.Array(SubtitleItem)
})

@@ -15,3 +15,3 @@ import type { RequestLang, ResponseLang, RequestHeaders } from "@vot.js/shared/types/data";

status: "waiting";
remainingTime: number;
remaining_time: number;
message: string;

@@ -23,5 +23,5 @@ };

provider: TranslationProvider;
translatedUrl: string;
translated_url: string;
message: string;
createdAt: string;
created_at: string;
};

@@ -32,7 +32,27 @@ export type TranslationFailedResponse = {

provider: TranslationProvider;
translatedUrl: null;
translated_url: null;
message: string;
createdAt: string;
created_at: string;
};
export type GetSubtitlesVOTOpts<T = VideoService> = {
url: string;
videoId: string;
service: T;
headers?: RequestHeaders;
};
export type TranslationResponse = TranslationWaitingResponse | TranslationSuccessResponse | TranslationFailedResponse;
export type SubtitleItem = {
id: number;
service: string;
video_id: string;
provider: TranslationProvider;
lang: string;
lang_from: string | null;
subtitle_url: string;
created_at: string;
};
export type SubtitlesResponse = {
waiting: boolean;
subtitles: SubtitleItem[];
};
//# sourceMappingURL=vot.d.ts.map

@@ -105,2 +105,12 @@ import type { RequestLang, ResponseLang, RequestHeaders } from "@vot.js/shared/types/data";

};
export type SubtitleItem = {
language: string;
url: string;
translatedLanguage: string;
translatedUrl: string;
};
export type GetSubtitlesResponse = {
waiting: boolean;
subtitles: SubtitleItem[];
};
//# sourceMappingURL=yandex.d.ts.map
{
"name": "@vot.js/core",
"description": "core package",
"version": "2.2.6",
"version": "2.3.0",
"author": "Toil",

@@ -84,3 +84,3 @@ "license": "MIT",

"tsc-esm-fix": "^3.1.2",
"typescript": "^5.6.3"
"typescript": "^5.7.3"
},

@@ -91,3 +91,3 @@ "peerDependencies": {

"dependencies": {
"@vot.js/shared": "^2.2.6"
"@vot.js/shared": "^2.3.0"
},

@@ -94,0 +94,0 @@ "scripts": {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc