@clipwright/core 0.11.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/skills.d.ts CHANGED
@@ -121,13 +121,7 @@ export declare const makeUgcInputShape: {
121
121
  "4k": "4k";
122
122
  "720p": "720p";
123
123
  }>>;
124
- readonly voice: z.ZodOptional<z.ZodEnum<{
125
- daria_ru_female: "daria_ru_female";
126
- eric: "eric";
127
- george: "george";
128
- owner_ru_clone: "owner_ru_clone";
129
- sarah: "sarah";
130
- }>>;
124
+ readonly voice: z.ZodOptional<z.ZodString>;
131
125
  readonly voice_id: z.ZodOptional<z.ZodString>;
132
126
  readonly tts_model: z.ZodOptional<z.ZodEnum<{
133
127
  eleven_flash_v2_5: "eleven_flash_v2_5";
@@ -208,13 +202,61 @@ export declare const makeUgcInput: z.ZodObject<{
208
202
  "4k": "4k";
209
203
  "720p": "720p";
210
204
  }>>;
211
- voice: z.ZodOptional<z.ZodEnum<{
212
- daria_ru_female: "daria_ru_female";
213
- eric: "eric";
214
- george: "george";
215
- owner_ru_clone: "owner_ru_clone";
216
- sarah: "sarah";
205
+ voice: z.ZodOptional<z.ZodString>;
206
+ voice_id: z.ZodOptional<z.ZodString>;
207
+ tts_model: z.ZodOptional<z.ZodEnum<{
208
+ eleven_flash_v2_5: "eleven_flash_v2_5";
209
+ eleven_turbo_v2_5: "eleven_turbo_v2_5";
210
+ eleven_v3: "eleven_v3";
211
+ }>>;
212
+ webhook_url: z.ZodOptional<z.ZodString>;
213
+ disclosure_overlay: z.ZodOptional<z.ZodBoolean>;
214
+ background: z.ZodOptional<z.ZodEnum<{
215
+ blur: "blur";
216
+ contain: "contain";
217
+ white: "white";
217
218
  }>>;
219
+ }, z.core.$strip>;
220
+ /** Вход API: имя голоса сверяет `voiceRefusal` сервера. Каталог сюда не импортируется — */
221
+ /** баррел читают клиенты; сервер берёт готовую схему из `@clipwright/core/voice-admission`. */
222
+ export declare function serverUgcInputWith(voiceRefusal: (voice: string) => string | undefined): z.ZodObject<{
223
+ script: z.ZodOptional<z.ZodString>;
224
+ segments: z.ZodOptional<z.ZodArray<z.ZodObject<{
225
+ kind: z.ZodEnum<{
226
+ actor: "actor";
227
+ media: "media";
228
+ }>;
229
+ script: z.ZodOptional<z.ZodString>;
230
+ media_url: z.ZodOptional<z.ZodString>;
231
+ }, z.core.$strip>>>;
232
+ person: z.ZodOptional<z.ZodString>;
233
+ actor_id: z.ZodOptional<z.ZodString>;
234
+ image: z.ZodOptional<z.ZodString>;
235
+ character: z.ZodOptional<z.ZodString>;
236
+ name: z.ZodOptional<z.ZodString>;
237
+ broll_url: z.ZodOptional<z.ZodString>;
238
+ captions: z.ZodDefault<z.ZodBoolean>;
239
+ caption_style: z.ZodDefault<z.ZodEnum<{
240
+ hormozi: "hormozi";
241
+ minimal: "minimal";
242
+ tiktok: "tiktok";
243
+ }>>;
244
+ look: z.ZodDefault<z.ZodEnum<{
245
+ commercial: "commercial";
246
+ natural: "natural";
247
+ raw_iphone: "raw_iphone";
248
+ }>>;
249
+ aspect_ratio: z.ZodOptional<z.ZodEnum<{
250
+ "16:9": "16:9";
251
+ "1:1": "1:1";
252
+ "9:16": "9:16";
253
+ }>>;
254
+ resolution: z.ZodOptional<z.ZodEnum<{
255
+ "1080p": "1080p";
256
+ "4k": "4k";
257
+ "720p": "720p";
258
+ }>>;
259
+ voice: z.ZodOptional<z.ZodString>;
218
260
  voice_id: z.ZodOptional<z.ZodString>;
219
261
  tts_model: z.ZodOptional<z.ZodEnum<{
220
262
  eleven_flash_v2_5: "eleven_flash_v2_5";
@@ -268,13 +310,7 @@ export declare const storedUgcInput: z.ZodObject<{
268
310
  "4k": "4k";
269
311
  "720p": "720p";
270
312
  }>>;
271
- voice: z.ZodOptional<z.ZodEnum<{
272
- daria_ru_female: "daria_ru_female";
273
- eric: "eric";
274
- george: "george";
275
- owner_ru_clone: "owner_ru_clone";
276
- sarah: "sarah";
277
- }>>;
313
+ voice: z.ZodOptional<z.ZodString>;
278
314
  voice_id: z.ZodOptional<z.ZodString>;
279
315
  webhook_url: z.ZodOptional<z.ZodString>;
280
316
  disclosure_overlay: z.ZodOptional<z.ZodBoolean>;
@@ -328,5 +364,10 @@ export declare const quoteResponse: z.ZodObject<{
328
364
  "1:1": "1:1";
329
365
  "9:16": "9:16";
330
366
  }>;
367
+ tts_model: z.ZodEnum<{
368
+ eleven_flash_v2_5: "eleven_flash_v2_5";
369
+ eleven_turbo_v2_5: "eleven_turbo_v2_5";
370
+ eleven_v3: "eleven_v3";
371
+ }>;
331
372
  }, z.core.$strip>;
332
373
  export type QuoteResponse = z.infer<typeof quoteResponse>;
package/dist/skills.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { countWords } from "./pacing.js";
3
- import { resolveTtsModel, MAX_SCRIPT_CHARS, SCRIPT_LENGTH_DESCRIPTION, STRESS_MARKING_DESCRIPTION, ttsScriptLimitError, TTS_MODELS, VOICE_ID_PATTERN, VOICE_PRESET_NAMES, } from "./voices.js";
3
+ import { resolveTtsModel, MAX_SCRIPT_CHARS, SCRIPT_LENGTH_DESCRIPTION, STRESS_MARKING_DESCRIPTION, ttsScriptLimitError, TTS_MODELS, isVoicePresetName, VOICE_ID_PATTERN, VOICE_NAME_PATTERN, VOICE_PRESET_NAMES, } from "./voices.js";
4
4
  export const CAPTION_STYLES = ["hormozi", "tiktok", "minimal"];
5
5
  export const LOOKS = ["natural", "commercial", "raw_iphone"];
6
6
  /**
@@ -146,16 +146,15 @@ export const makeUgcInputShape = {
146
146
  .enum(RESOLUTIONS)
147
147
  .optional()
148
148
  .describe(`Output resolution: ${RESOLUTIONS.join(" | ")} (short side 720 / 1080 / 2160 px). Omitted means 1080p.`),
149
- // Оба голосовых поля — .optional() БЕЗ .default() по той же причине, что и
150
- // resolution выше: отличить «клиент явно выбрал голос» от «клиент промолчал»
151
- // можно только так. Дефолт (клон владельца) подставляет резолвер в адаптере,
152
- // а не схема; явность нужна тестам warnings (US-517). voice — наше имя пресета
153
- // (enum порождает tools/list), voice_id — сырой вендорский id как escape hatch.
149
+ // Без .default(), как resolution: явный выбор голоса отличим от молчания (US-517).
150
+ // voice — форма имени, список сверяет `serverUgcInput` (#164); voice_id — сырой id вендора.
154
151
  voice: z
155
- .enum(VOICE_PRESET_NAMES)
152
+ .string()
153
+ .regex(VOICE_NAME_PATTERN)
156
154
  .optional()
157
- .describe(`Curated voice preset: ${VOICE_PRESET_NAMES.join(" | ")} (list_voices describes each; ` +
158
- "owner_ru_clone is the Russian cloned voice). Omitted means the voice matched to the avatar. " +
155
+ .describe(`Voice name from list_voices. Curated presets: ${VOICE_PRESET_NAMES.join(" | ")} ` +
156
+ "(owner_ru_clone is the Russian cloned voice). The API refuses a name list_voices does not " +
157
+ "return, before any charge. Omitted means the voice matched to the avatar. " +
159
158
  "Mutually exclusive with voice_id."),
160
159
  voice_id: z
161
160
  .string()
@@ -168,7 +167,8 @@ export const makeUgcInputShape = {
168
167
  .optional()
169
168
  .describe(`Speech model: ${TTS_MODELS.join(" | ")}. Omitted means the model of the chosen preset ` +
170
169
  "(list_voices shows it; every preset speaks eleven_v3) or eleven_v3 for a raw voice_id. " +
171
- "eleven_v3 is the most expressive and the only one that reads stress marks; " +
170
+ "eleven_v3 is the most expressive and the only one that reads stress marks " +
171
+ "(a capital vowel inside a Russian word, \"потОм\", becomes one; see script); " +
172
172
  "eleven_flash_v2_5 and eleven_turbo_v2_5 are cheaper alternatives for languages other than " +
173
173
  "Russian. " + SCRIPT_LENGTH_DESCRIPTION),
174
174
  webhook_url: z.string().url().max(MAX_URL_LENGTH).optional(),
@@ -213,7 +213,8 @@ export const makeUgcInput = z
213
213
  message: "pass exactly one of script | segments",
214
214
  })
215
215
  // Потолок символов — по модели: v3 короче v2 вдвое; отказ здесь, до резерва и вендора (#101).
216
- .refine((v) => ttsScriptLimitError(spokenTextOf(v), resolveTtsModel(v)) === undefined, {
216
+ // Модель незнакомого клиенту голоса знает только сервер, и потолок он проверит сам (#164).
217
+ .refine((v) => modelUnknownToClient(v) || ttsScriptLimitError(spokenTextOf(v), resolveTtsModel(v)) === undefined, {
217
218
  path: ["script"],
218
219
  error: (issue) => {
219
220
  const input = issue.input;
@@ -255,6 +256,28 @@ export const makeUgcInput = z
255
256
  .refine((v) => v.segments !== undefined || countWords(v.script ?? "") >= 1, {
256
257
  message: "script has 0 speakable words",
257
258
  });
259
+ function modelUnknownToClient(v) {
260
+ return v.tts_model === undefined && v.voice !== undefined && !isVoicePresetName(v.voice);
261
+ }
262
+ /** Вход API: имя голоса сверяет `voiceRefusal` сервера. Каталог сюда не импортируется — */
263
+ /** баррел читают клиенты; сервер берёт готовую схему из `@clipwright/core/voice-admission`. */
264
+ export function serverUgcInputWith(voiceRefusal) {
265
+ return makeUgcInput
266
+ .refine((v) => v.voice === undefined || voiceRefusal(v.voice) === undefined, {
267
+ path: ["voice"],
268
+ error: (issue) => voiceRefusal(issue.input.voice),
269
+ })
270
+ // Потолок, пропущенный клиентом: модель допущенного голоса каталога сервер знает (#164).
271
+ .refine((v) => !modelUnknownToClient(v) ||
272
+ voiceRefusal(v.voice) !== undefined ||
273
+ ttsScriptLimitError(spokenTextOf(v), resolveTtsModel(v)) === undefined, {
274
+ path: ["script"],
275
+ error: (issue) => {
276
+ const input = issue.input;
277
+ return ttsScriptLimitError(spokenTextOf(input), resolveTtsModel(input));
278
+ },
279
+ });
280
+ }
258
281
  /** Сохранённый вход рана: правила допуска он уже прошёл, и смена модели или */
259
282
  /** потолка не должна делать старый ран нечитаемым (#145). */
260
283
  export const storedUgcInput = z.object({ ...makeUgcInputShape, tts_model: z.string().optional() });
@@ -322,5 +345,6 @@ export const quoteResponse = z.object({
322
345
  .nullable(),
323
346
  /** Формат, который реально будет отрендерен на этом входе. */
324
347
  resolved_aspect_ratio: z.enum(ASPECT_RATIOS),
348
+ tts_model: z.enum(TTS_MODELS),
325
349
  });
326
350
  //# sourceMappingURL=skills.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,157 @@
1
+ {
2
+ "models": [
3
+ {
4
+ "id": "eleven_v3",
5
+ "languages": [
6
+ "af",
7
+ "ar",
8
+ "as",
9
+ "az",
10
+ "be",
11
+ "bg",
12
+ "bn",
13
+ "bs",
14
+ "ca",
15
+ "ceb",
16
+ "cs",
17
+ "cy",
18
+ "da",
19
+ "de",
20
+ "el",
21
+ "en",
22
+ "es",
23
+ "et",
24
+ "fa",
25
+ "fi",
26
+ "fil",
27
+ "fr",
28
+ "ga",
29
+ "gl",
30
+ "gu",
31
+ "ha",
32
+ "he",
33
+ "hi",
34
+ "hr",
35
+ "hu",
36
+ "hy",
37
+ "id",
38
+ "is",
39
+ "it",
40
+ "ja",
41
+ "jv",
42
+ "ka",
43
+ "kk",
44
+ "kn",
45
+ "ko",
46
+ "ky",
47
+ "lb",
48
+ "ln",
49
+ "lt",
50
+ "lv",
51
+ "mk",
52
+ "ml",
53
+ "mr",
54
+ "ms",
55
+ "ne",
56
+ "nl",
57
+ "no",
58
+ "ny",
59
+ "pa",
60
+ "pl",
61
+ "ps",
62
+ "pt",
63
+ "ro",
64
+ "ru",
65
+ "sd",
66
+ "sk",
67
+ "sl",
68
+ "so",
69
+ "sr",
70
+ "sv",
71
+ "sw",
72
+ "ta",
73
+ "te",
74
+ "th",
75
+ "tr",
76
+ "uk",
77
+ "ur",
78
+ "vi",
79
+ "zh"
80
+ ]
81
+ },
82
+ {
83
+ "id": "eleven_flash_v2_5",
84
+ "languages": [
85
+ "ar",
86
+ "bg",
87
+ "cs",
88
+ "da",
89
+ "de",
90
+ "el",
91
+ "en",
92
+ "es",
93
+ "fi",
94
+ "fil",
95
+ "fr",
96
+ "hi",
97
+ "hr",
98
+ "hu",
99
+ "id",
100
+ "it",
101
+ "ja",
102
+ "ko",
103
+ "ms",
104
+ "nl",
105
+ "no",
106
+ "pl",
107
+ "pt",
108
+ "ro",
109
+ "ru",
110
+ "sk",
111
+ "sv",
112
+ "ta",
113
+ "tr",
114
+ "uk",
115
+ "vi",
116
+ "zh"
117
+ ]
118
+ },
119
+ {
120
+ "id": "eleven_turbo_v2_5",
121
+ "languages": [
122
+ "ar",
123
+ "bg",
124
+ "cs",
125
+ "da",
126
+ "de",
127
+ "el",
128
+ "en",
129
+ "es",
130
+ "fi",
131
+ "fil",
132
+ "fr",
133
+ "hi",
134
+ "hr",
135
+ "hu",
136
+ "id",
137
+ "it",
138
+ "ja",
139
+ "ko",
140
+ "ms",
141
+ "nl",
142
+ "no",
143
+ "pl",
144
+ "pt",
145
+ "ro",
146
+ "ru",
147
+ "sk",
148
+ "sv",
149
+ "ta",
150
+ "tr",
151
+ "uk",
152
+ "vi",
153
+ "zh"
154
+ ]
155
+ }
156
+ ]
157
+ }
@@ -0,0 +1,55 @@
1
+ import type { CatalogFileVoice } from "./voice-catalog.js";
2
+ /** Почему API не допускает имя голоса; `undefined` — пресет или живой голос каталога. */
3
+ export declare function catalogVoiceRefusal(voice: string, voices?: readonly CatalogFileVoice[]): string | undefined;
4
+ export declare const serverUgcInput: import("zod").ZodObject<{
5
+ script: import("zod").ZodOptional<import("zod").ZodString>;
6
+ segments: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
7
+ kind: import("zod").ZodEnum<{
8
+ actor: "actor";
9
+ media: "media";
10
+ }>;
11
+ script: import("zod").ZodOptional<import("zod").ZodString>;
12
+ media_url: import("zod").ZodOptional<import("zod").ZodString>;
13
+ }, import("zod/v4/core").$strip>>>;
14
+ person: import("zod").ZodOptional<import("zod").ZodString>;
15
+ actor_id: import("zod").ZodOptional<import("zod").ZodString>;
16
+ image: import("zod").ZodOptional<import("zod").ZodString>;
17
+ character: import("zod").ZodOptional<import("zod").ZodString>;
18
+ name: import("zod").ZodOptional<import("zod").ZodString>;
19
+ broll_url: import("zod").ZodOptional<import("zod").ZodString>;
20
+ captions: import("zod").ZodDefault<import("zod").ZodBoolean>;
21
+ caption_style: import("zod").ZodDefault<import("zod").ZodEnum<{
22
+ hormozi: "hormozi";
23
+ minimal: "minimal";
24
+ tiktok: "tiktok";
25
+ }>>;
26
+ look: import("zod").ZodDefault<import("zod").ZodEnum<{
27
+ commercial: "commercial";
28
+ natural: "natural";
29
+ raw_iphone: "raw_iphone";
30
+ }>>;
31
+ aspect_ratio: import("zod").ZodOptional<import("zod").ZodEnum<{
32
+ "16:9": "16:9";
33
+ "1:1": "1:1";
34
+ "9:16": "9:16";
35
+ }>>;
36
+ resolution: import("zod").ZodOptional<import("zod").ZodEnum<{
37
+ "1080p": "1080p";
38
+ "4k": "4k";
39
+ "720p": "720p";
40
+ }>>;
41
+ voice: import("zod").ZodOptional<import("zod").ZodString>;
42
+ voice_id: import("zod").ZodOptional<import("zod").ZodString>;
43
+ tts_model: import("zod").ZodOptional<import("zod").ZodEnum<{
44
+ eleven_flash_v2_5: "eleven_flash_v2_5";
45
+ eleven_turbo_v2_5: "eleven_turbo_v2_5";
46
+ eleven_v3: "eleven_v3";
47
+ }>>;
48
+ webhook_url: import("zod").ZodOptional<import("zod").ZodString>;
49
+ disclosure_overlay: import("zod").ZodOptional<import("zod").ZodBoolean>;
50
+ background: import("zod").ZodOptional<import("zod").ZodEnum<{
51
+ blur: "blur";
52
+ contain: "contain";
53
+ white: "white";
54
+ }>>;
55
+ }, import("zod/v4/core").$strip>;
@@ -0,0 +1,20 @@
1
+ import { serverUgcInputWith } from "./skills.js";
2
+ import { VOICE_CATALOG } from "./voice-catalog-data.js";
3
+ import { isVoicePresetName } from "./voices.js";
4
+ // Подпуть, а не баррел: каталог весит сотни килобайт, и клиентам SDK он не нужен (docs/16).
5
+ /** Почему API не допускает имя голоса; `undefined` — пресет или живой голос каталога. */
6
+ export function catalogVoiceRefusal(voice, voices = VOICE_CATALOG.voices) {
7
+ if (isVoicePresetName(voice))
8
+ return undefined;
9
+ const entry = voices.find((item) => item.slug === voice);
10
+ if (entry === undefined) {
11
+ return `unknown voice "${voice}": call list_voices for the voice names this API accepts`;
12
+ }
13
+ if (entry.retired_at !== undefined) {
14
+ return (`voice "${voice}" was retired from the catalog on ${entry.retired_at.slice(0, 10)} ` +
15
+ "and is no longer accepted; call list_voices to choose another voice");
16
+ }
17
+ return undefined;
18
+ }
19
+ export const serverUgcInput = serverUgcInputWith((voice) => catalogVoiceRefusal(voice));
20
+ //# sourceMappingURL=voice-admission.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice-admission.js","sourceRoot":"","sources":["../src/voice-admission.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,4FAA4F;AAE5F,yFAAyF;AACzF,MAAM,UAAU,mBAAmB,CACjC,KAAa,EACb,MAAM,GAAgC,aAAa,CAAC,MAAM;IAE1D,IAAI,iBAAiB,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;IACzD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,kBAAkB,KAAK,0DAA0D,CAAC;IAC3F,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,CACL,UAAU,KAAK,qCAAqC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG;YACpF,qEAAqE,CACtE,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,kBAAkB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC"}
@@ -0,0 +1,33 @@
1
+ /** Сгенерированные файлы, разобранные схемой. В баррел не входит: клиентам SDK */
2
+ /** каталог не нужен, а подключать ли его подпутём, решает S5 (#164). */
3
+ export declare const VOICE_CATALOG: {
4
+ shortfall: Partial<Record<"bg" | "cs" | "da" | "de" | "el" | "en" | "es" | "fi" | "fil" | "fr" | "hi" | "hr" | "hu" | "id" | "it" | "ja" | "ko" | "ms" | "nl" | "no" | "pl" | "pt" | "ro" | "ru" | "sk" | "sv" | "ta" | "tr" | "uk" | "vi" | "zh", {
5
+ female?: number | undefined;
6
+ male?: number | undefined;
7
+ }>>;
8
+ voices: {
9
+ slug: string;
10
+ language: "bg" | "cs" | "da" | "de" | "el" | "en" | "es" | "fi" | "fil" | "fr" | "hi" | "hr" | "hu" | "id" | "it" | "ja" | "ko" | "ms" | "nl" | "no" | "pl" | "pt" | "ro" | "ru" | "sk" | "sv" | "ta" | "tr" | "uk" | "vi" | "zh";
11
+ locale: string | null;
12
+ accent: string | null;
13
+ gender_raw: string | null;
14
+ age_raw: string | null;
15
+ use_case_raw: string | null;
16
+ descriptive_raw: string | null;
17
+ name: string;
18
+ description: string | null;
19
+ category: string | null;
20
+ verified_models: ("eleven_flash_v2_5" | "eleven_turbo_v2_5" | "eleven_v3")[];
21
+ notice_period_days: number;
22
+ featured: boolean;
23
+ rank: number;
24
+ retired_at?: string | undefined;
25
+ refreshed_at: string;
26
+ }[];
27
+ };
28
+ export declare const TTS_MODEL_LANGUAGES: {
29
+ models: {
30
+ id: "eleven_flash_v2_5" | "eleven_turbo_v2_5" | "eleven_v3";
31
+ languages: string[];
32
+ }[];
33
+ };
@@ -0,0 +1,8 @@
1
+ import catalogJson from "./voice-catalog.generated.json" with { type: "json" };
2
+ import modelsJson from "./tts-model-languages.generated.json" with { type: "json" };
3
+ import { ttsModelLanguagesFile, voiceCatalogFile } from "./voice-catalog.js";
4
+ /** Сгенерированные файлы, разобранные схемой. В баррел не входит: клиентам SDK */
5
+ /** каталог не нужен, а подключать ли его подпутём, решает S5 (#164). */
6
+ export const VOICE_CATALOG = voiceCatalogFile.parse(catalogJson);
7
+ export const TTS_MODEL_LANGUAGES = ttsModelLanguagesFile.parse(modelsJson);
8
+ //# sourceMappingURL=voice-catalog-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice-catalog-data.js","sourceRoot":"","sources":["../src/voice-catalog-data.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,gCAAgC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC/E,OAAO,UAAU,MAAM,sCAAsC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE7E,kFAAkF;AAClF,wEAAwE;AACxE,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACjE,MAAM,CAAC,MAAM,mBAAmB,GAAG,qBAAqB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC"}