@contractspec/lib.video-gen 2.7.6 → 2.7.10

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