@contractspec/lib.image-gen 0.2.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.
Files changed (86) hide show
  1. package/dist/browser/docs/generators.docblock.js +36 -0
  2. package/dist/browser/docs/image-gen.docblock.js +47 -0
  3. package/dist/browser/generators/image-generator.js +525 -0
  4. package/dist/browser/generators/index.js +527 -0
  5. package/dist/browser/generators/prompt-builder.js +93 -0
  6. package/dist/browser/generators/style-resolver.js +90 -0
  7. package/dist/browser/i18n/catalogs/en.js +85 -0
  8. package/dist/browser/i18n/catalogs/es.js +85 -0
  9. package/dist/browser/i18n/catalogs/fr.js +85 -0
  10. package/dist/browser/i18n/catalogs/index.js +253 -0
  11. package/dist/browser/i18n/index.js +309 -0
  12. package/dist/browser/i18n/keys.js +33 -0
  13. package/dist/browser/i18n/locale.js +13 -0
  14. package/dist/browser/i18n/messages.js +265 -0
  15. package/dist/browser/index.js +623 -0
  16. package/dist/browser/presets/index.js +99 -0
  17. package/dist/browser/presets/marketing.js +35 -0
  18. package/dist/browser/presets/social.js +45 -0
  19. package/dist/browser/presets/video.js +25 -0
  20. package/dist/browser/types.js +5 -0
  21. package/dist/docs/generators.docblock.d.ts +1 -0
  22. package/dist/docs/generators.docblock.js +37 -0
  23. package/dist/docs/image-gen.docblock.d.ts +1 -0
  24. package/dist/docs/image-gen.docblock.js +48 -0
  25. package/dist/generators/image-generator.d.ts +12 -0
  26. package/dist/generators/image-generator.js +526 -0
  27. package/dist/generators/image-generator.test.d.ts +1 -0
  28. package/dist/generators/index.d.ts +4 -0
  29. package/dist/generators/index.js +528 -0
  30. package/dist/generators/prompt-builder.d.ts +21 -0
  31. package/dist/generators/prompt-builder.js +94 -0
  32. package/dist/generators/prompt-builder.test.d.ts +1 -0
  33. package/dist/generators/style-resolver.d.ts +9 -0
  34. package/dist/generators/style-resolver.js +91 -0
  35. package/dist/generators/style-resolver.test.d.ts +1 -0
  36. package/dist/i18n/catalogs/en.d.ts +8 -0
  37. package/dist/i18n/catalogs/en.js +86 -0
  38. package/dist/i18n/catalogs/es.d.ts +6 -0
  39. package/dist/i18n/catalogs/es.js +86 -0
  40. package/dist/i18n/catalogs/fr.d.ts +6 -0
  41. package/dist/i18n/catalogs/fr.js +86 -0
  42. package/dist/i18n/catalogs/index.d.ts +3 -0
  43. package/dist/i18n/catalogs/index.js +254 -0
  44. package/dist/i18n/i18n.test.d.ts +1 -0
  45. package/dist/i18n/index.d.ts +6 -0
  46. package/dist/i18n/index.js +310 -0
  47. package/dist/i18n/keys.d.ts +78 -0
  48. package/dist/i18n/keys.js +34 -0
  49. package/dist/i18n/locale.d.ts +8 -0
  50. package/dist/i18n/locale.js +14 -0
  51. package/dist/i18n/messages.d.ts +14 -0
  52. package/dist/i18n/messages.js +266 -0
  53. package/dist/index.d.ts +3 -0
  54. package/dist/index.js +624 -0
  55. package/dist/node/docs/generators.docblock.js +36 -0
  56. package/dist/node/docs/image-gen.docblock.js +47 -0
  57. package/dist/node/generators/image-generator.js +525 -0
  58. package/dist/node/generators/index.js +527 -0
  59. package/dist/node/generators/prompt-builder.js +93 -0
  60. package/dist/node/generators/style-resolver.js +90 -0
  61. package/dist/node/i18n/catalogs/en.js +85 -0
  62. package/dist/node/i18n/catalogs/es.js +85 -0
  63. package/dist/node/i18n/catalogs/fr.js +85 -0
  64. package/dist/node/i18n/catalogs/index.js +253 -0
  65. package/dist/node/i18n/index.js +309 -0
  66. package/dist/node/i18n/keys.js +33 -0
  67. package/dist/node/i18n/locale.js +13 -0
  68. package/dist/node/i18n/messages.js +265 -0
  69. package/dist/node/index.js +623 -0
  70. package/dist/node/presets/index.js +99 -0
  71. package/dist/node/presets/marketing.js +35 -0
  72. package/dist/node/presets/social.js +45 -0
  73. package/dist/node/presets/video.js +25 -0
  74. package/dist/node/types.js +5 -0
  75. package/dist/presets/index.d.ts +3 -0
  76. package/dist/presets/index.js +100 -0
  77. package/dist/presets/marketing.d.ts +8 -0
  78. package/dist/presets/marketing.js +36 -0
  79. package/dist/presets/presets.test.d.ts +1 -0
  80. package/dist/presets/social.d.ts +10 -0
  81. package/dist/presets/social.js +46 -0
  82. package/dist/presets/video.d.ts +6 -0
  83. package/dist/presets/video.js +26 -0
  84. package/dist/types.d.ts +56 -0
  85. package/dist/types.js +6 -0
  86. package/package.json +394 -0
@@ -0,0 +1,266 @@
1
+ // @bun
2
+ // src/i18n/catalogs/en.ts
3
+ import { defineTranslation } from "@contractspec/lib.contracts-spec/translations";
4
+ var enMessages = defineTranslation({
5
+ meta: {
6
+ key: "image-gen.messages",
7
+ version: "1.0.0",
8
+ domain: "image-gen",
9
+ description: "All user-facing, LLM-facing, and developer-facing strings for the image-gen package",
10
+ owners: ["platform"],
11
+ stability: "experimental"
12
+ },
13
+ locale: "en",
14
+ fallback: "en",
15
+ messages: {
16
+ "prompt.system.imagePromptEngineer": {
17
+ value: "You are an expert image prompt engineer. Given a JSON brief containing title, summary, problems, solutions, purpose, style, and style tokens, produce a single detailed image generation prompt. The prompt should be vivid, specific, and optimized for AI image generation models. Focus on composition, lighting, color palette, and subject matter. Output only the prompt text, no JSON.",
18
+ description: "System prompt for LLM-based image prompt engineering"
19
+ },
20
+ "image.generate.description": {
21
+ value: "Generate a {style} image for {purpose}",
22
+ description: "Description template for image generation tasks",
23
+ placeholders: [
24
+ { name: "style", type: "string" },
25
+ { name: "purpose", type: "string" }
26
+ ]
27
+ },
28
+ "image.prompt.featuring": {
29
+ value: "featuring {solutions}",
30
+ description: "Prompt fragment for featured solutions",
31
+ placeholders: [{ name: "solutions", type: "string" }]
32
+ },
33
+ "image.prompt.industryContext": {
34
+ value: "{industry} context",
35
+ description: "Prompt fragment for industry context",
36
+ placeholders: [{ name: "industry", type: "string" }]
37
+ },
38
+ "image.error.noProvider": {
39
+ value: "No image provider configured",
40
+ description: "Error message when no ImageProvider is available"
41
+ },
42
+ "image.error.generationFailed": {
43
+ value: "Image generation failed",
44
+ description: "Error message when image generation fails"
45
+ },
46
+ "purpose.blogHero": {
47
+ value: "Blog hero image",
48
+ description: "Label for blog hero image purpose"
49
+ },
50
+ "purpose.socialOg": {
51
+ value: "Social media OG image",
52
+ description: "Label for Open Graph image purpose"
53
+ },
54
+ "purpose.socialTwitter": {
55
+ value: "Twitter card image",
56
+ description: "Label for Twitter card image purpose"
57
+ },
58
+ "purpose.socialInstagram": {
59
+ value: "Instagram image",
60
+ description: "Label for Instagram image purpose"
61
+ },
62
+ "purpose.landingHero": {
63
+ value: "Landing page hero",
64
+ description: "Label for landing page hero image purpose"
65
+ },
66
+ "purpose.videoThumbnail": {
67
+ value: "Video thumbnail",
68
+ description: "Label for video thumbnail purpose"
69
+ },
70
+ "purpose.emailHeader": {
71
+ value: "Email header",
72
+ description: "Label for email header image purpose"
73
+ },
74
+ "purpose.illustration": {
75
+ value: "Illustration",
76
+ description: "Label for illustration purpose"
77
+ },
78
+ "purpose.icon": {
79
+ value: "Icon",
80
+ description: "Label for icon purpose"
81
+ }
82
+ }
83
+ });
84
+
85
+ // src/i18n/catalogs/fr.ts
86
+ import { defineTranslation as defineTranslation2 } from "@contractspec/lib.contracts-spec/translations";
87
+ var frMessages = defineTranslation2({
88
+ meta: {
89
+ key: "image-gen.messages",
90
+ version: "1.0.0",
91
+ domain: "image-gen",
92
+ description: "French translations for the image-gen package",
93
+ owners: ["platform"],
94
+ stability: "experimental"
95
+ },
96
+ locale: "fr",
97
+ fallback: "en",
98
+ messages: {
99
+ "prompt.system.imagePromptEngineer": {
100
+ value: "Vous \xEAtes un expert en ing\xE9nierie de prompts d'images. \xC0 partir d'un brief JSON contenant titre, r\xE9sum\xE9, probl\xE8mes, solutions, objectif, style et tokens de style, produisez un prompt d\xE9taill\xE9 de g\xE9n\xE9ration d'image. Le prompt doit \xEAtre vivant, sp\xE9cifique et optimis\xE9 pour les mod\xE8les de g\xE9n\xE9ration d'images IA. Concentrez-vous sur la composition, l'\xE9clairage, la palette de couleurs et le sujet. Produisez uniquement le texte du prompt, pas de JSON.",
101
+ description: "Prompt syst\xE8me pour l'ing\xE9nierie de prompts d'images par LLM"
102
+ },
103
+ "image.generate.description": {
104
+ value: "G\xE9n\xE9rer une image {style} pour {purpose}",
105
+ description: "Mod\xE8le de description pour les t\xE2ches de g\xE9n\xE9ration d'images",
106
+ placeholders: [
107
+ { name: "style", type: "string" },
108
+ { name: "purpose", type: "string" }
109
+ ]
110
+ },
111
+ "image.prompt.featuring": {
112
+ value: "mettant en avant {solutions}",
113
+ description: "Fragment de prompt pour les solutions mises en avant",
114
+ placeholders: [{ name: "solutions", type: "string" }]
115
+ },
116
+ "image.prompt.industryContext": {
117
+ value: "contexte {industry}",
118
+ description: "Fragment de prompt pour le contexte industriel",
119
+ placeholders: [{ name: "industry", type: "string" }]
120
+ },
121
+ "image.error.noProvider": {
122
+ value: "Aucun fournisseur d'images configur\xE9",
123
+ description: "Message d'erreur quand aucun ImageProvider n'est disponible"
124
+ },
125
+ "image.error.generationFailed": {
126
+ value: "La g\xE9n\xE9ration d'image a \xE9chou\xE9",
127
+ description: "Message d'erreur quand la g\xE9n\xE9ration d'image \xE9choue"
128
+ },
129
+ "purpose.blogHero": {
130
+ value: "Image hero de blog",
131
+ description: "Libell\xE9 pour l'objectif image hero de blog"
132
+ },
133
+ "purpose.socialOg": {
134
+ value: "Image OG pour r\xE9seaux sociaux",
135
+ description: "Libell\xE9 pour l'objectif image Open Graph"
136
+ },
137
+ "purpose.socialTwitter": {
138
+ value: "Image carte Twitter",
139
+ description: "Libell\xE9 pour l'objectif image carte Twitter"
140
+ },
141
+ "purpose.socialInstagram": {
142
+ value: "Image Instagram",
143
+ description: "Libell\xE9 pour l'objectif image Instagram"
144
+ },
145
+ "purpose.landingHero": {
146
+ value: "Hero de page d'atterrissage",
147
+ description: "Libell\xE9 pour l'objectif image hero de page d'atterrissage"
148
+ },
149
+ "purpose.videoThumbnail": {
150
+ value: "Miniature vid\xE9o",
151
+ description: "Libell\xE9 pour l'objectif miniature vid\xE9o"
152
+ },
153
+ "purpose.emailHeader": {
154
+ value: "En-t\xEAte d'email",
155
+ description: "Libell\xE9 pour l'objectif image en-t\xEAte d'email"
156
+ },
157
+ "purpose.illustration": {
158
+ value: "Illustration",
159
+ description: "Libell\xE9 pour l'objectif illustration"
160
+ },
161
+ "purpose.icon": {
162
+ value: "Ic\xF4ne",
163
+ description: "Libell\xE9 pour l'objectif ic\xF4ne"
164
+ }
165
+ }
166
+ });
167
+
168
+ // src/i18n/catalogs/es.ts
169
+ import { defineTranslation as defineTranslation3 } from "@contractspec/lib.contracts-spec/translations";
170
+ var esMessages = defineTranslation3({
171
+ meta: {
172
+ key: "image-gen.messages",
173
+ version: "1.0.0",
174
+ domain: "image-gen",
175
+ description: "Spanish translations for the image-gen package",
176
+ owners: ["platform"],
177
+ stability: "experimental"
178
+ },
179
+ locale: "es",
180
+ fallback: "en",
181
+ messages: {
182
+ "prompt.system.imagePromptEngineer": {
183
+ value: "Eres un experto en ingenier\xEDa de prompts de im\xE1genes. Dado un brief JSON que contiene t\xEDtulo, resumen, problemas, soluciones, prop\xF3sito, estilo y tokens de estilo, produce un prompt detallado de generaci\xF3n de im\xE1genes. El prompt debe ser v\xEDvido, espec\xEDfico y optimizado para modelos de generaci\xF3n de im\xE1genes con IA. Conc\xE9ntrate en la composici\xF3n, iluminaci\xF3n, paleta de colores y tema. Produce solo el texto del prompt, sin JSON.",
184
+ description: "Prompt del sistema para ingenier\xEDa de prompts de im\xE1genes por LLM"
185
+ },
186
+ "image.generate.description": {
187
+ value: "Generar una imagen {style} para {purpose}",
188
+ description: "Plantilla de descripci\xF3n para tareas de generaci\xF3n de im\xE1genes",
189
+ placeholders: [
190
+ { name: "style", type: "string" },
191
+ { name: "purpose", type: "string" }
192
+ ]
193
+ },
194
+ "image.prompt.featuring": {
195
+ value: "presentando {solutions}",
196
+ description: "Fragmento de prompt para soluciones destacadas",
197
+ placeholders: [{ name: "solutions", type: "string" }]
198
+ },
199
+ "image.prompt.industryContext": {
200
+ value: "contexto de {industry}",
201
+ description: "Fragmento de prompt para contexto de industria",
202
+ placeholders: [{ name: "industry", type: "string" }]
203
+ },
204
+ "image.error.noProvider": {
205
+ value: "No hay proveedor de im\xE1genes configurado",
206
+ description: "Mensaje de error cuando no hay ImageProvider disponible"
207
+ },
208
+ "image.error.generationFailed": {
209
+ value: "La generaci\xF3n de imagen fall\xF3",
210
+ description: "Mensaje de error cuando la generaci\xF3n de imagen falla"
211
+ },
212
+ "purpose.blogHero": {
213
+ value: "Imagen hero de blog",
214
+ description: "Etiqueta para el prop\xF3sito imagen hero de blog"
215
+ },
216
+ "purpose.socialOg": {
217
+ value: "Imagen OG para redes sociales",
218
+ description: "Etiqueta para el prop\xF3sito imagen Open Graph"
219
+ },
220
+ "purpose.socialTwitter": {
221
+ value: "Imagen de tarjeta Twitter",
222
+ description: "Etiqueta para el prop\xF3sito imagen tarjeta Twitter"
223
+ },
224
+ "purpose.socialInstagram": {
225
+ value: "Imagen de Instagram",
226
+ description: "Etiqueta para el prop\xF3sito imagen Instagram"
227
+ },
228
+ "purpose.landingHero": {
229
+ value: "Hero de p\xE1gina de aterrizaje",
230
+ description: "Etiqueta para el prop\xF3sito imagen hero de p\xE1gina de aterrizaje"
231
+ },
232
+ "purpose.videoThumbnail": {
233
+ value: "Miniatura de video",
234
+ description: "Etiqueta para el prop\xF3sito miniatura de video"
235
+ },
236
+ "purpose.emailHeader": {
237
+ value: "Encabezado de email",
238
+ description: "Etiqueta para el prop\xF3sito imagen encabezado de email"
239
+ },
240
+ "purpose.illustration": {
241
+ value: "Ilustraci\xF3n",
242
+ description: "Etiqueta para el prop\xF3sito ilustraci\xF3n"
243
+ },
244
+ "purpose.icon": {
245
+ value: "Icono",
246
+ description: "Etiqueta para el prop\xF3sito icono"
247
+ }
248
+ }
249
+ });
250
+
251
+ // src/i18n/messages.ts
252
+ import {
253
+ createI18nFactory
254
+ } from "@contractspec/lib.contracts-spec/translations";
255
+ var factory = createI18nFactory({
256
+ specKey: "image-gen.messages",
257
+ catalogs: [enMessages, frMessages, esMessages]
258
+ });
259
+ var createImageGenI18n = factory.create;
260
+ var getDefaultI18n = factory.getDefault;
261
+ var resetI18nRegistry = factory.resetRegistry;
262
+ export {
263
+ resetI18nRegistry,
264
+ getDefaultI18n,
265
+ createImageGenI18n
266
+ };
@@ -0,0 +1,3 @@
1
+ export * from './types';
2
+ export * from './generators';
3
+ export * from './presets';