@contractspec/lib.video-gen 2.7.6 → 2.7.7
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/README.md +67 -25
- package/dist/browser/compositions/api-overview.js +114 -114
- package/dist/browser/compositions/index.js +115 -115
- package/dist/browser/compositions/primitives/index.js +113 -113
- package/dist/browser/compositions/social-clip.js +114 -114
- package/dist/browser/compositions/terminal-demo.js +113 -113
- package/dist/browser/design/index.js +35 -35
- package/dist/browser/generators/index.js +94 -94
- package/dist/browser/generators/scene-planner.js +94 -94
- package/dist/browser/generators/script-generator.js +94 -94
- package/dist/browser/generators/video-generator.js +94 -94
- package/dist/browser/i18n/catalogs/index.js +74 -74
- package/dist/browser/i18n/index.js +94 -94
- package/dist/browser/i18n/locale.js +2 -2
- package/dist/browser/i18n/messages.js +74 -74
- package/dist/browser/index.js +212 -212
- package/dist/browser/player/demo-player.js +116 -116
- package/dist/browser/player/index.js +116 -116
- package/dist/browser/remotion/Root.js +115 -115
- package/dist/browser/remotion/index.js +115 -115
- package/dist/compositions/api-overview.js +114 -114
- package/dist/compositions/index.d.ts +4 -4
- package/dist/compositions/index.js +115 -115
- package/dist/compositions/primitives/animated-text.d.ts +1 -1
- package/dist/compositions/primitives/brand-frame.d.ts +1 -1
- package/dist/compositions/primitives/index.d.ts +8 -8
- package/dist/compositions/primitives/index.js +113 -113
- package/dist/compositions/primitives/transition.d.ts +1 -1
- package/dist/compositions/social-clip.js +114 -114
- package/dist/compositions/terminal-demo.js +113 -113
- package/dist/design/index.d.ts +2 -2
- package/dist/design/index.js +35 -35
- package/dist/generators/index.d.ts +2 -2
- package/dist/generators/index.js +94 -94
- package/dist/generators/scene-planner.d.ts +1 -1
- package/dist/generators/scene-planner.js +94 -94
- package/dist/generators/script-generator.d.ts +2 -2
- package/dist/generators/script-generator.js +94 -94
- package/dist/generators/video-generator.js +94 -94
- package/dist/i18n/catalogs/index.d.ts +1 -1
- package/dist/i18n/catalogs/index.js +74 -74
- package/dist/i18n/index.d.ts +7 -7
- package/dist/i18n/index.js +94 -94
- package/dist/i18n/locale.d.ts +1 -1
- package/dist/i18n/locale.js +2 -2
- package/dist/i18n/messages.js +74 -74
- package/dist/index.d.ts +3 -3
- package/dist/index.js +212 -212
- package/dist/node/compositions/api-overview.js +114 -114
- package/dist/node/compositions/index.js +115 -115
- package/dist/node/compositions/primitives/index.js +113 -113
- package/dist/node/compositions/social-clip.js +114 -114
- package/dist/node/compositions/terminal-demo.js +113 -113
- package/dist/node/design/index.js +35 -35
- package/dist/node/generators/index.js +94 -94
- package/dist/node/generators/scene-planner.js +94 -94
- package/dist/node/generators/script-generator.js +94 -94
- package/dist/node/generators/video-generator.js +94 -94
- package/dist/node/i18n/catalogs/index.js +74 -74
- package/dist/node/i18n/index.js +94 -94
- package/dist/node/i18n/locale.js +2 -2
- package/dist/node/i18n/messages.js +74 -74
- package/dist/node/index.js +212 -212
- package/dist/node/player/demo-player.js +116 -116
- package/dist/node/player/index.js +116 -116
- package/dist/node/remotion/Root.js +115 -115
- package/dist/node/remotion/index.js +115 -115
- package/dist/player/demo-player.js +116 -116
- package/dist/player/index.d.ts +1 -1
- package/dist/player/index.js +116 -116
- package/dist/remotion/Root.js +115 -115
- package/dist/remotion/index.js +115 -115
- package/dist/renderers/index.d.ts +2 -2
- package/dist/types.d.ts +6 -6
- package/package.json +15 -15
|
@@ -151,54 +151,54 @@ Prioritize clarity and pacing. Each scene should communicate one idea.`,
|
|
|
151
151
|
}
|
|
152
152
|
});
|
|
153
153
|
|
|
154
|
-
// src/i18n/catalogs/
|
|
154
|
+
// src/i18n/catalogs/es.ts
|
|
155
155
|
import { defineTranslation as defineTranslation2 } from "@contractspec/lib.contracts-spec/translations";
|
|
156
|
-
var
|
|
156
|
+
var esMessages = defineTranslation2({
|
|
157
157
|
meta: {
|
|
158
158
|
key: "video-gen.messages",
|
|
159
159
|
version: "1.0.0",
|
|
160
160
|
domain: "video-gen",
|
|
161
|
-
description: "
|
|
161
|
+
description: "Spanish translations for the video-gen package",
|
|
162
162
|
owners: ["platform"],
|
|
163
163
|
stability: "experimental"
|
|
164
164
|
},
|
|
165
|
-
locale: "
|
|
165
|
+
locale: "es",
|
|
166
166
|
fallback: "en",
|
|
167
167
|
messages: {
|
|
168
168
|
"prompt.script.system": {
|
|
169
|
-
value: `
|
|
170
|
-
|
|
169
|
+
value: `Eres un redactor de guiones de narración para vídeo.
|
|
170
|
+
Escribe un guión de narración para un vídeo corto (30-60 segundos).
|
|
171
171
|
{styleGuide}
|
|
172
172
|
|
|
173
|
-
|
|
173
|
+
Devuelve JSON con la forma:
|
|
174
174
|
{
|
|
175
175
|
"segments": [{ "sceneId": string, "text": string }],
|
|
176
176
|
"fullText": string
|
|
177
177
|
}
|
|
178
178
|
|
|
179
|
-
|
|
180
|
-
|
|
179
|
+
Los identificadores de escena deben ser: "intro", "problems", "solutions", "metrics", "cta".
|
|
180
|
+
Incluye solo los segmentos relevantes para el brief.`,
|
|
181
181
|
description: "Script generator LLM system prompt",
|
|
182
182
|
placeholders: [{ name: "styleGuide", type: "string" }]
|
|
183
183
|
},
|
|
184
184
|
"prompt.scenePlanner.system": {
|
|
185
|
-
value: `
|
|
186
|
-
|
|
185
|
+
value: `Eres un planificador de escenas de vídeo para vídeos de marketing/documentación de ContractSpec.
|
|
186
|
+
Dado un brief de contenido, divídelo en escenas de vídeo.
|
|
187
187
|
|
|
188
|
-
|
|
189
|
-
- compositionId
|
|
190
|
-
- props
|
|
191
|
-
- durationInFrames
|
|
192
|
-
- narrationText
|
|
188
|
+
Cada escena debe tener:
|
|
189
|
+
- compositionId: uno de "ApiOverview", "SocialClip", "TerminalDemo"
|
|
190
|
+
- props: las propiedades de entrada de esa composición
|
|
191
|
+
- durationInFrames: duración a {fps} fps
|
|
192
|
+
- narrationText: lo que dice el narrador durante esta escena
|
|
193
193
|
|
|
194
|
-
|
|
194
|
+
Devuelve un objeto JSON con la forma:
|
|
195
195
|
{
|
|
196
196
|
"scenes": [{ "compositionId": string, "props": object, "durationInFrames": number, "narrationText": string }],
|
|
197
197
|
"narrationScript": string
|
|
198
198
|
}
|
|
199
199
|
|
|
200
|
-
|
|
201
|
-
|
|
200
|
+
Mantén la duración total alrededor de {targetSeconds} segundos.
|
|
201
|
+
Prioriza la claridad y el ritmo. Cada escena debe comunicar una idea.`,
|
|
202
202
|
description: "Scene planner LLM system prompt",
|
|
203
203
|
placeholders: [
|
|
204
204
|
{ name: "fps", type: "number" },
|
|
@@ -206,64 +206,64 @@ Privilégiez la clarté et le rythme. Chaque scène doit communiquer une idée.`
|
|
|
206
206
|
]
|
|
207
207
|
},
|
|
208
208
|
"prompt.style.professional": {
|
|
209
|
-
value: "
|
|
209
|
+
value: "Usa un tono claro, autoritario y profesional. Sé conciso y directo.",
|
|
210
210
|
description: "Style guide for professional narration"
|
|
211
211
|
},
|
|
212
212
|
"prompt.style.casual": {
|
|
213
|
-
value: "
|
|
213
|
+
value: "Usa un tono amigable y conversacional. Sé accesible y cercano.",
|
|
214
214
|
description: "Style guide for casual narration"
|
|
215
215
|
},
|
|
216
216
|
"prompt.style.technical": {
|
|
217
|
-
value: "
|
|
217
|
+
value: "Usa un lenguaje técnico preciso. Sé detallado y exacto.",
|
|
218
218
|
description: "Style guide for technical narration"
|
|
219
219
|
},
|
|
220
220
|
"script.segment.challenge": {
|
|
221
|
-
value: "
|
|
221
|
+
value: "El desafío: {content}",
|
|
222
222
|
description: "Narration segment prefix for problems",
|
|
223
223
|
placeholders: [{ name: "content", type: "string" }]
|
|
224
224
|
},
|
|
225
225
|
"script.segment.solution": {
|
|
226
|
-
value: "La
|
|
226
|
+
value: "La solución: {content}",
|
|
227
227
|
description: "Narration segment prefix for solutions",
|
|
228
228
|
placeholders: [{ name: "content", type: "string" }]
|
|
229
229
|
},
|
|
230
230
|
"script.segment.results": {
|
|
231
|
-
value: "
|
|
231
|
+
value: "Los resultados: {content}",
|
|
232
232
|
description: "Narration segment prefix for metrics",
|
|
233
233
|
placeholders: [{ name: "content", type: "string" }]
|
|
234
234
|
},
|
|
235
235
|
"scene.cta.default": {
|
|
236
|
-
value: "
|
|
236
|
+
value: "Más información",
|
|
237
237
|
description: "Default call-to-action text for scenes"
|
|
238
238
|
},
|
|
239
239
|
"scene.hook.problem": {
|
|
240
|
-
value: "
|
|
240
|
+
value: "El problema",
|
|
241
241
|
description: "Scene hook label for problem statement"
|
|
242
242
|
},
|
|
243
243
|
"scene.narration.problem": {
|
|
244
|
-
value: "
|
|
244
|
+
value: "El problema: {content}",
|
|
245
245
|
description: "Scene narration for problem statement",
|
|
246
246
|
placeholders: [{ name: "content", type: "string" }]
|
|
247
247
|
},
|
|
248
248
|
"scene.hook.solution": {
|
|
249
|
-
value: "La
|
|
249
|
+
value: "La solución",
|
|
250
250
|
description: "Scene hook label for solution"
|
|
251
251
|
},
|
|
252
252
|
"scene.narration.solution": {
|
|
253
|
-
value: "La
|
|
253
|
+
value: "La solución: {content}",
|
|
254
254
|
description: "Scene narration for solution",
|
|
255
255
|
placeholders: [{ name: "content", type: "string" }]
|
|
256
256
|
},
|
|
257
257
|
"scene.hook.results": {
|
|
258
|
-
value: "
|
|
258
|
+
value: "Resultados",
|
|
259
259
|
description: "Scene hook label for results/metrics"
|
|
260
260
|
},
|
|
261
261
|
"composition.apiOverview.generates": {
|
|
262
|
-
value: "
|
|
262
|
+
value: "Genera:",
|
|
263
263
|
description: "ApiOverview heading for generated outputs"
|
|
264
264
|
},
|
|
265
265
|
"composition.apiOverview.tagline": {
|
|
266
|
-
value: "
|
|
266
|
+
value: "Una spec. Todas las superficies.",
|
|
267
267
|
description: "ApiOverview default tagline"
|
|
268
268
|
},
|
|
269
269
|
"composition.apiOverview.output.rest": {
|
|
@@ -271,11 +271,11 @@ Privilégiez la clarté et le rythme. Chaque scène doit communiquer une idée.`
|
|
|
271
271
|
description: "Generated output label: REST"
|
|
272
272
|
},
|
|
273
273
|
"composition.apiOverview.output.graphql": {
|
|
274
|
-
value: "
|
|
274
|
+
value: "Mutación GraphQL",
|
|
275
275
|
description: "Generated output label: GraphQL"
|
|
276
276
|
},
|
|
277
277
|
"composition.apiOverview.output.prisma": {
|
|
278
|
-
value: "
|
|
278
|
+
value: "Modelo Prisma",
|
|
279
279
|
description: "Generated output label: Prisma"
|
|
280
280
|
},
|
|
281
281
|
"composition.apiOverview.output.typescript": {
|
|
@@ -283,7 +283,7 @@ Privilégiez la clarté et le rythme. Chaque scène doit communiquer une idée.`
|
|
|
283
283
|
description: "Generated output label: TypeScript SDK"
|
|
284
284
|
},
|
|
285
285
|
"composition.apiOverview.output.mcp": {
|
|
286
|
-
value: "
|
|
286
|
+
value: "Herramienta MCP",
|
|
287
287
|
description: "Generated output label: MCP Tool"
|
|
288
288
|
},
|
|
289
289
|
"composition.apiOverview.output.openapi": {
|
|
@@ -291,7 +291,7 @@ Privilégiez la clarté et le rythme. Chaque scène doit communiquer une idée.`
|
|
|
291
291
|
description: "Generated output label: OpenAPI"
|
|
292
292
|
},
|
|
293
293
|
"composition.socialClip.cta": {
|
|
294
|
-
value: "
|
|
294
|
+
value: "Más información",
|
|
295
295
|
description: "SocialClip default CTA"
|
|
296
296
|
},
|
|
297
297
|
"composition.terminal.title": {
|
|
@@ -301,54 +301,54 @@ Privilégiez la clarté et le rythme. Chaque scène doit communiquer une idée.`
|
|
|
301
301
|
}
|
|
302
302
|
});
|
|
303
303
|
|
|
304
|
-
// src/i18n/catalogs/
|
|
304
|
+
// src/i18n/catalogs/fr.ts
|
|
305
305
|
import { defineTranslation as defineTranslation3 } from "@contractspec/lib.contracts-spec/translations";
|
|
306
|
-
var
|
|
306
|
+
var frMessages = defineTranslation3({
|
|
307
307
|
meta: {
|
|
308
308
|
key: "video-gen.messages",
|
|
309
309
|
version: "1.0.0",
|
|
310
310
|
domain: "video-gen",
|
|
311
|
-
description: "
|
|
311
|
+
description: "French translations for the video-gen package",
|
|
312
312
|
owners: ["platform"],
|
|
313
313
|
stability: "experimental"
|
|
314
314
|
},
|
|
315
|
-
locale: "
|
|
315
|
+
locale: "fr",
|
|
316
316
|
fallback: "en",
|
|
317
317
|
messages: {
|
|
318
318
|
"prompt.script.system": {
|
|
319
|
-
value: `
|
|
320
|
-
|
|
319
|
+
value: `Vous êtes un rédacteur de scripts de narration vidéo.
|
|
320
|
+
Écrivez un script de narration pour une courte vidéo (30-60 secondes).
|
|
321
321
|
{styleGuide}
|
|
322
322
|
|
|
323
|
-
|
|
323
|
+
Retournez du JSON avec la forme :
|
|
324
324
|
{
|
|
325
325
|
"segments": [{ "sceneId": string, "text": string }],
|
|
326
326
|
"fullText": string
|
|
327
327
|
}
|
|
328
328
|
|
|
329
|
-
|
|
330
|
-
|
|
329
|
+
Les identifiants de scène doivent être : "intro", "problems", "solutions", "metrics", "cta".
|
|
330
|
+
N'incluez que les segments pertinents au brief.`,
|
|
331
331
|
description: "Script generator LLM system prompt",
|
|
332
332
|
placeholders: [{ name: "styleGuide", type: "string" }]
|
|
333
333
|
},
|
|
334
334
|
"prompt.scenePlanner.system": {
|
|
335
|
-
value: `
|
|
336
|
-
|
|
335
|
+
value: `Vous êtes un planificateur de scènes vidéo pour les vidéos marketing/documentation de ContractSpec.
|
|
336
|
+
À partir d'un brief, décomposez-le en scènes vidéo.
|
|
337
337
|
|
|
338
|
-
|
|
339
|
-
- compositionId:
|
|
340
|
-
- props:
|
|
341
|
-
- durationInFrames:
|
|
342
|
-
- narrationText:
|
|
338
|
+
Chaque scène doit avoir :
|
|
339
|
+
- compositionId : un parmi "ApiOverview", "SocialClip", "TerminalDemo"
|
|
340
|
+
- props : les propriétés d'entrée de cette composition
|
|
341
|
+
- durationInFrames : durée à {fps} fps
|
|
342
|
+
- narrationText : ce que le narrateur dit pendant cette scène
|
|
343
343
|
|
|
344
|
-
|
|
344
|
+
Retournez un objet JSON avec la forme :
|
|
345
345
|
{
|
|
346
346
|
"scenes": [{ "compositionId": string, "props": object, "durationInFrames": number, "narrationText": string }],
|
|
347
347
|
"narrationScript": string
|
|
348
348
|
}
|
|
349
349
|
|
|
350
|
-
|
|
351
|
-
|
|
350
|
+
Gardez la durée totale autour de {targetSeconds} secondes.
|
|
351
|
+
Privilégiez la clarté et le rythme. Chaque scène doit communiquer une idée.`,
|
|
352
352
|
description: "Scene planner LLM system prompt",
|
|
353
353
|
placeholders: [
|
|
354
354
|
{ name: "fps", type: "number" },
|
|
@@ -356,64 +356,64 @@ Prioriza la claridad y el ritmo. Cada escena debe comunicar una idea.`,
|
|
|
356
356
|
]
|
|
357
357
|
},
|
|
358
358
|
"prompt.style.professional": {
|
|
359
|
-
value: "
|
|
359
|
+
value: "Utilisez un ton clair, autoritaire et professionnel. Soyez concis et direct.",
|
|
360
360
|
description: "Style guide for professional narration"
|
|
361
361
|
},
|
|
362
362
|
"prompt.style.casual": {
|
|
363
|
-
value: "
|
|
363
|
+
value: "Utilisez un ton amical et conversationnel. Soyez accessible et proche.",
|
|
364
364
|
description: "Style guide for casual narration"
|
|
365
365
|
},
|
|
366
366
|
"prompt.style.technical": {
|
|
367
|
-
value: "
|
|
367
|
+
value: "Utilisez un langage technique précis. Soyez détaillé et exact.",
|
|
368
368
|
description: "Style guide for technical narration"
|
|
369
369
|
},
|
|
370
370
|
"script.segment.challenge": {
|
|
371
|
-
value: "
|
|
371
|
+
value: "Le défi : {content}",
|
|
372
372
|
description: "Narration segment prefix for problems",
|
|
373
373
|
placeholders: [{ name: "content", type: "string" }]
|
|
374
374
|
},
|
|
375
375
|
"script.segment.solution": {
|
|
376
|
-
value: "La
|
|
376
|
+
value: "La solution : {content}",
|
|
377
377
|
description: "Narration segment prefix for solutions",
|
|
378
378
|
placeholders: [{ name: "content", type: "string" }]
|
|
379
379
|
},
|
|
380
380
|
"script.segment.results": {
|
|
381
|
-
value: "
|
|
381
|
+
value: "Les résultats : {content}",
|
|
382
382
|
description: "Narration segment prefix for metrics",
|
|
383
383
|
placeholders: [{ name: "content", type: "string" }]
|
|
384
384
|
},
|
|
385
385
|
"scene.cta.default": {
|
|
386
|
-
value: "
|
|
386
|
+
value: "En savoir plus",
|
|
387
387
|
description: "Default call-to-action text for scenes"
|
|
388
388
|
},
|
|
389
389
|
"scene.hook.problem": {
|
|
390
|
-
value: "
|
|
390
|
+
value: "Le problème",
|
|
391
391
|
description: "Scene hook label for problem statement"
|
|
392
392
|
},
|
|
393
393
|
"scene.narration.problem": {
|
|
394
|
-
value: "
|
|
394
|
+
value: "Le problème : {content}",
|
|
395
395
|
description: "Scene narration for problem statement",
|
|
396
396
|
placeholders: [{ name: "content", type: "string" }]
|
|
397
397
|
},
|
|
398
398
|
"scene.hook.solution": {
|
|
399
|
-
value: "La
|
|
399
|
+
value: "La solution",
|
|
400
400
|
description: "Scene hook label for solution"
|
|
401
401
|
},
|
|
402
402
|
"scene.narration.solution": {
|
|
403
|
-
value: "La
|
|
403
|
+
value: "La solution : {content}",
|
|
404
404
|
description: "Scene narration for solution",
|
|
405
405
|
placeholders: [{ name: "content", type: "string" }]
|
|
406
406
|
},
|
|
407
407
|
"scene.hook.results": {
|
|
408
|
-
value: "
|
|
408
|
+
value: "Résultats",
|
|
409
409
|
description: "Scene hook label for results/metrics"
|
|
410
410
|
},
|
|
411
411
|
"composition.apiOverview.generates": {
|
|
412
|
-
value: "
|
|
412
|
+
value: "Génère :",
|
|
413
413
|
description: "ApiOverview heading for generated outputs"
|
|
414
414
|
},
|
|
415
415
|
"composition.apiOverview.tagline": {
|
|
416
|
-
value: "
|
|
416
|
+
value: "Un spec. Toutes les surfaces.",
|
|
417
417
|
description: "ApiOverview default tagline"
|
|
418
418
|
},
|
|
419
419
|
"composition.apiOverview.output.rest": {
|
|
@@ -421,11 +421,11 @@ Prioriza la claridad y el ritmo. Cada escena debe comunicar una idea.`,
|
|
|
421
421
|
description: "Generated output label: REST"
|
|
422
422
|
},
|
|
423
423
|
"composition.apiOverview.output.graphql": {
|
|
424
|
-
value: "
|
|
424
|
+
value: "Mutation GraphQL",
|
|
425
425
|
description: "Generated output label: GraphQL"
|
|
426
426
|
},
|
|
427
427
|
"composition.apiOverview.output.prisma": {
|
|
428
|
-
value: "
|
|
428
|
+
value: "Modèle Prisma",
|
|
429
429
|
description: "Generated output label: Prisma"
|
|
430
430
|
},
|
|
431
431
|
"composition.apiOverview.output.typescript": {
|
|
@@ -433,7 +433,7 @@ Prioriza la claridad y el ritmo. Cada escena debe comunicar una idea.`,
|
|
|
433
433
|
description: "Generated output label: TypeScript SDK"
|
|
434
434
|
},
|
|
435
435
|
"composition.apiOverview.output.mcp": {
|
|
436
|
-
value: "
|
|
436
|
+
value: "Outil MCP",
|
|
437
437
|
description: "Generated output label: MCP Tool"
|
|
438
438
|
},
|
|
439
439
|
"composition.apiOverview.output.openapi": {
|
|
@@ -441,7 +441,7 @@ Prioriza la claridad y el ritmo. Cada escena debe comunicar una idea.`,
|
|
|
441
441
|
description: "Generated output label: OpenAPI"
|
|
442
442
|
},
|
|
443
443
|
"composition.socialClip.cta": {
|
|
444
|
-
value: "
|
|
444
|
+
value: "En savoir plus",
|
|
445
445
|
description: "SocialClip default CTA"
|
|
446
446
|
},
|
|
447
447
|
"composition.terminal.title": {
|
|
@@ -451,26 +451,6 @@ Prioriza la claridad y el ritmo. Cada escena debe comunicar una idea.`,
|
|
|
451
451
|
}
|
|
452
452
|
});
|
|
453
453
|
|
|
454
|
-
// src/i18n/messages.ts
|
|
455
|
-
import {
|
|
456
|
-
createI18nFactory
|
|
457
|
-
} from "@contractspec/lib.contracts-spec/translations";
|
|
458
|
-
var factory = createI18nFactory({
|
|
459
|
-
specKey: "video-gen.messages",
|
|
460
|
-
catalogs: [enMessages, frMessages, esMessages]
|
|
461
|
-
});
|
|
462
|
-
var createVideoGenI18n = factory.create;
|
|
463
|
-
var getDefaultI18n = factory.getDefault;
|
|
464
|
-
var resetI18nRegistry = factory.resetRegistry;
|
|
465
|
-
|
|
466
|
-
// src/i18n/locale.ts
|
|
467
|
-
import {
|
|
468
|
-
DEFAULT_LOCALE,
|
|
469
|
-
SUPPORTED_LOCALES,
|
|
470
|
-
resolveLocale,
|
|
471
|
-
isSupportedLocale
|
|
472
|
-
} from "@contractspec/lib.contracts-spec/translations";
|
|
473
|
-
|
|
474
454
|
// src/i18n/keys.ts
|
|
475
455
|
var PROMPT_KEYS = {
|
|
476
456
|
"prompt.script.system": "prompt.script.system",
|
|
@@ -510,6 +490,26 @@ var I18N_KEYS = {
|
|
|
510
490
|
...SCENE_KEYS,
|
|
511
491
|
...COMPOSITION_KEYS
|
|
512
492
|
};
|
|
493
|
+
|
|
494
|
+
// src/i18n/locale.ts
|
|
495
|
+
import {
|
|
496
|
+
DEFAULT_LOCALE,
|
|
497
|
+
isSupportedLocale,
|
|
498
|
+
resolveLocale,
|
|
499
|
+
SUPPORTED_LOCALES
|
|
500
|
+
} from "@contractspec/lib.contracts-spec/translations";
|
|
501
|
+
|
|
502
|
+
// src/i18n/messages.ts
|
|
503
|
+
import {
|
|
504
|
+
createI18nFactory
|
|
505
|
+
} from "@contractspec/lib.contracts-spec/translations";
|
|
506
|
+
var factory = createI18nFactory({
|
|
507
|
+
specKey: "video-gen.messages",
|
|
508
|
+
catalogs: [enMessages, frMessages, esMessages]
|
|
509
|
+
});
|
|
510
|
+
var createVideoGenI18n = factory.create;
|
|
511
|
+
var getDefaultI18n = factory.getDefault;
|
|
512
|
+
var resetI18nRegistry = factory.resetRegistry;
|
|
513
513
|
// src/generators/script-generator.ts
|
|
514
514
|
class ScriptGenerator {
|
|
515
515
|
llm;
|