@genfeedai/prompts 0.1.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/index.js ADDED
@@ -0,0 +1,541 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/index.ts
31
+ var index_exports = {};
32
+ __export(index_exports, {
33
+ PROMPT_CATEGORIES: () => PROMPT_CATEGORIES,
34
+ PROMPT_REGISTRY: () => PROMPT_REGISTRY,
35
+ getAllPrompts: () => getAllPrompts,
36
+ getPrompt: () => getPrompt,
37
+ getPromptCategories: () => getPromptCategories,
38
+ getPromptJson: () => getPromptJson,
39
+ getPromptsByCategory: () => getPromptsByCategory,
40
+ searchPromptsByTag: () => searchPromptsByTag
41
+ });
42
+ module.exports = __toCommonJS(index_exports);
43
+
44
+ // src/registry.ts
45
+ var fs = __toESM(require("fs"));
46
+ var path = __toESM(require("path"));
47
+ var PROMPT_REGISTRY = {
48
+ "product-photography": {
49
+ id: "product-photography",
50
+ title: "Product Photography",
51
+ description: "Professional product shots perfect for e-commerce and marketing",
52
+ category: "image-generation",
53
+ tier: "free",
54
+ template: "A professional product photograph of {product}, shot on {background}, {lighting} lighting, {angle} angle, high resolution, commercial quality",
55
+ variables: [
56
+ {
57
+ name: "product",
58
+ label: "Product",
59
+ type: "text",
60
+ required: true,
61
+ placeholder: "e.g., wireless headphones"
62
+ },
63
+ {
64
+ name: "background",
65
+ label: "Background",
66
+ type: "select",
67
+ options: ["white", "gradient", "lifestyle", "studio"],
68
+ default: "white"
69
+ },
70
+ {
71
+ name: "lighting",
72
+ label: "Lighting",
73
+ type: "select",
74
+ options: ["soft", "dramatic", "natural", "studio"],
75
+ default: "soft"
76
+ },
77
+ {
78
+ name: "angle",
79
+ label: "Camera Angle",
80
+ type: "select",
81
+ options: ["front", "45-degree", "top-down", "eye-level"],
82
+ default: "45-degree"
83
+ }
84
+ ],
85
+ tags: ["product", "ecommerce", "photography", "commercial"],
86
+ icon: "\u{1F4E6}",
87
+ version: 1
88
+ },
89
+ "social-media-post": {
90
+ id: "social-media-post",
91
+ title: "Social Media Post",
92
+ description: "Eye-catching images optimized for social media engagement",
93
+ category: "image-generation",
94
+ tier: "free",
95
+ template: "A {style} social media post featuring {subject}, {mood} mood, {platform} optimized, trending design, vibrant colors",
96
+ variables: [
97
+ {
98
+ name: "subject",
99
+ label: "Subject",
100
+ type: "text",
101
+ required: true,
102
+ placeholder: "e.g., coffee shop, workout"
103
+ },
104
+ {
105
+ name: "style",
106
+ label: "Style",
107
+ type: "select",
108
+ options: ["minimalist", "vibrant", "artistic", "corporate"],
109
+ default: "vibrant"
110
+ },
111
+ {
112
+ name: "mood",
113
+ label: "Mood",
114
+ type: "select",
115
+ options: ["energetic", "calm", "professional", "playful"],
116
+ default: "energetic"
117
+ },
118
+ {
119
+ name: "platform",
120
+ label: "Platform",
121
+ type: "select",
122
+ options: ["Instagram", "Facebook", "Twitter", "LinkedIn"],
123
+ default: "Instagram"
124
+ }
125
+ ],
126
+ tags: ["social", "media", "marketing", "engagement"],
127
+ icon: "\u{1F4F1}",
128
+ version: 1
129
+ },
130
+ "brand-ad": {
131
+ id: "brand-ad",
132
+ title: "Brand Advertisement",
133
+ description: "Professional brand advertisements that convert and engage",
134
+ category: "image-generation",
135
+ tier: "free",
136
+ template: "A {style} advertisement for {brand}, showcasing {product}, {tone} tone, {target} audience, professional marketing photography",
137
+ variables: [
138
+ {
139
+ name: "brand",
140
+ label: "Brand Name",
141
+ type: "text",
142
+ required: true,
143
+ placeholder: "e.g., Nike, Apple"
144
+ },
145
+ {
146
+ name: "product",
147
+ label: "Product/Service",
148
+ type: "text",
149
+ required: true,
150
+ placeholder: "e.g., running shoes"
151
+ },
152
+ {
153
+ name: "style",
154
+ label: "Ad Style",
155
+ type: "select",
156
+ options: ["luxury", "casual", "tech", "lifestyle"],
157
+ default: "lifestyle"
158
+ },
159
+ {
160
+ name: "tone",
161
+ label: "Brand Tone",
162
+ type: "select",
163
+ options: ["premium", "friendly", "innovative", "trustworthy"],
164
+ default: "premium"
165
+ },
166
+ {
167
+ name: "target",
168
+ label: "Target Audience",
169
+ type: "select",
170
+ options: ["young adults", "professionals", "families", "athletes"],
171
+ default: "young adults"
172
+ }
173
+ ],
174
+ tags: ["brand", "advertising", "marketing", "commercial"],
175
+ icon: "\u{1F3AF}",
176
+ version: 1
177
+ },
178
+ "portrait-headshot": {
179
+ id: "portrait-headshot",
180
+ title: "Portrait Headshot",
181
+ description: "Professional headshots perfect for LinkedIn and business use",
182
+ category: "image-generation",
183
+ tier: "free",
184
+ template: "A professional {style} headshot of a {subject}, {background} background, {lighting} lighting, confident expression, business attire",
185
+ variables: [
186
+ {
187
+ name: "subject",
188
+ label: "Subject",
189
+ type: "text",
190
+ required: true,
191
+ placeholder: "e.g., business executive, entrepreneur"
192
+ },
193
+ {
194
+ name: "style",
195
+ label: "Style",
196
+ type: "select",
197
+ options: ["corporate", "creative", "casual", "formal"],
198
+ default: "corporate"
199
+ },
200
+ {
201
+ name: "background",
202
+ label: "Background",
203
+ type: "select",
204
+ options: ["neutral", "office", "outdoor", "studio"],
205
+ default: "neutral"
206
+ },
207
+ {
208
+ name: "lighting",
209
+ label: "Lighting",
210
+ type: "select",
211
+ options: ["natural", "studio", "window", "soft"],
212
+ default: "natural"
213
+ }
214
+ ],
215
+ tags: ["portrait", "headshot", "professional", "business"],
216
+ icon: "\u{1F464}",
217
+ version: 1
218
+ },
219
+ "product-demo": {
220
+ id: "product-demo",
221
+ title: "Product Demo Video",
222
+ description: "Engaging product demonstration videos that showcase features",
223
+ category: "video-generation",
224
+ tier: "free",
225
+ template: "Create a {duration} product demo video for {product}, highlighting {features}, {style} presentation, clear call-to-action",
226
+ variables: [
227
+ {
228
+ name: "product",
229
+ label: "Product",
230
+ type: "text",
231
+ required: true,
232
+ placeholder: "e.g., smartphone app"
233
+ },
234
+ {
235
+ name: "features",
236
+ label: "Key Features",
237
+ type: "text",
238
+ required: true,
239
+ placeholder: "e.g., ease of use, speed"
240
+ },
241
+ {
242
+ name: "duration",
243
+ label: "Duration",
244
+ type: "select",
245
+ options: ["15-second", "30-second", "60-second"],
246
+ default: "30-second"
247
+ },
248
+ {
249
+ name: "style",
250
+ label: "Presentation Style",
251
+ type: "select",
252
+ options: ["animated", "live-action", "screen-recording", "hybrid"],
253
+ default: "animated"
254
+ }
255
+ ],
256
+ tags: ["product", "demo", "video", "marketing"],
257
+ icon: "\u{1F3A5}",
258
+ version: 1
259
+ },
260
+ "social-clip": {
261
+ id: "social-clip",
262
+ title: "Social Media Clip",
263
+ description: "Short-form video content optimized for social platforms",
264
+ category: "video-generation",
265
+ tier: "free",
266
+ template: "A {duration} social media clip about {topic}, {style} style, {platform} optimized, engaging hook, trending format",
267
+ variables: [
268
+ {
269
+ name: "topic",
270
+ label: "Topic/Theme",
271
+ type: "text",
272
+ required: true,
273
+ placeholder: "e.g., cooking tips, workout routine"
274
+ },
275
+ {
276
+ name: "duration",
277
+ label: "Duration",
278
+ type: "select",
279
+ options: ["15 seconds", "30 seconds", "60 seconds"],
280
+ default: "30 seconds"
281
+ },
282
+ {
283
+ name: "style",
284
+ label: "Video Style",
285
+ type: "select",
286
+ options: ["educational", "entertaining", "inspiring", "promotional"],
287
+ default: "entertaining"
288
+ },
289
+ {
290
+ name: "platform",
291
+ label: "Target Platform",
292
+ type: "select",
293
+ options: ["TikTok", "Instagram Reels", "YouTube Shorts", "Twitter"],
294
+ default: "Instagram Reels"
295
+ }
296
+ ],
297
+ tags: ["social", "short-form", "viral", "content"],
298
+ icon: "\u{1F4F9}",
299
+ version: 1
300
+ },
301
+ "ugc-testimonial": {
302
+ id: "ugc-testimonial",
303
+ title: "UGC Testimonial",
304
+ description: "Authentic user-generated content style testimonial videos",
305
+ category: "video-generation",
306
+ tier: "free",
307
+ template: "A {style} UGC testimonial video for {product}, featuring {scenario}, authentic {tone} delivery, mobile-first format",
308
+ variables: [
309
+ {
310
+ name: "product",
311
+ label: "Product/Service",
312
+ type: "text",
313
+ required: true,
314
+ placeholder: "e.g., skincare routine"
315
+ },
316
+ {
317
+ name: "scenario",
318
+ label: "Usage Scenario",
319
+ type: "text",
320
+ required: true,
321
+ placeholder: "e.g., morning routine"
322
+ },
323
+ {
324
+ name: "style",
325
+ label: "UGC Style",
326
+ type: "select",
327
+ options: ["before-after", "day-in-life", "review", "tutorial"],
328
+ default: "review"
329
+ },
330
+ {
331
+ name: "tone",
332
+ label: "Delivery Tone",
333
+ type: "select",
334
+ options: ["casual", "enthusiastic", "honest", "expert"],
335
+ default: "casual"
336
+ }
337
+ ],
338
+ tags: ["ugc", "testimonial", "authentic", "conversion"],
339
+ icon: "\u{1F5E3}\uFE0F",
340
+ version: 1
341
+ },
342
+ "blog-outline": {
343
+ id: "blog-outline",
344
+ title: "Blog Post Outline",
345
+ description: "Comprehensive blog post outlines for content marketing",
346
+ category: "content",
347
+ tier: "free",
348
+ template: "Create a detailed blog post outline about {topic} for {audience}, {tone} tone, {format} format, SEO-optimized structure",
349
+ variables: [
350
+ {
351
+ name: "topic",
352
+ label: "Blog Topic",
353
+ type: "text",
354
+ required: true,
355
+ placeholder: "e.g., AI in marketing"
356
+ },
357
+ {
358
+ name: "audience",
359
+ label: "Target Audience",
360
+ type: "select",
361
+ options: ["beginners", "professionals", "experts", "general"],
362
+ default: "professionals"
363
+ },
364
+ {
365
+ name: "tone",
366
+ label: "Writing Tone",
367
+ type: "select",
368
+ options: ["informative", "conversational", "authoritative", "friendly"],
369
+ default: "informative"
370
+ },
371
+ {
372
+ name: "format",
373
+ label: "Content Format",
374
+ type: "select",
375
+ options: ["how-to", "listicle", "guide", "analysis"],
376
+ default: "how-to"
377
+ }
378
+ ],
379
+ tags: ["blog", "content", "seo", "marketing"],
380
+ icon: "\u{1F4DD}",
381
+ version: 1
382
+ },
383
+ "social-caption": {
384
+ id: "social-caption",
385
+ title: "Social Media Caption",
386
+ description: "Engaging captions that drive interaction and engagement",
387
+ category: "content",
388
+ tier: "free",
389
+ template: "Write a {style} caption for {platform} about {topic}, {tone} voice, include {cta}, optimized for engagement",
390
+ variables: [
391
+ {
392
+ name: "topic",
393
+ label: "Post Topic",
394
+ type: "text",
395
+ required: true,
396
+ placeholder: "e.g., new product launch"
397
+ },
398
+ {
399
+ name: "platform",
400
+ label: "Social Platform",
401
+ type: "select",
402
+ options: ["Instagram", "Facebook", "Twitter", "LinkedIn"],
403
+ default: "Instagram"
404
+ },
405
+ {
406
+ name: "style",
407
+ label: "Caption Style",
408
+ type: "select",
409
+ options: ["storytelling", "promotional", "educational", "humorous"],
410
+ default: "storytelling"
411
+ },
412
+ {
413
+ name: "tone",
414
+ label: "Brand Voice",
415
+ type: "select",
416
+ options: ["casual", "professional", "playful", "inspirational"],
417
+ default: "casual"
418
+ },
419
+ {
420
+ name: "cta",
421
+ label: "Call-to-Action",
422
+ type: "select",
423
+ options: ["like & comment", "share your story", "visit link", "tag friends"],
424
+ default: "like & comment"
425
+ }
426
+ ],
427
+ tags: ["social", "caption", "engagement", "copywriting"],
428
+ icon: "\u{1F4AC}",
429
+ version: 1
430
+ },
431
+ "email-sequence": {
432
+ id: "email-sequence",
433
+ title: "Email Marketing Sequence",
434
+ description: "Effective email sequences for nurturing and conversion",
435
+ category: "content",
436
+ tier: "free",
437
+ template: "Design a {type} email sequence for {goal}, {length} emails, {audience} audience, {tone} approach, conversion-focused",
438
+ variables: [
439
+ {
440
+ name: "type",
441
+ label: "Sequence Type",
442
+ type: "select",
443
+ options: ["welcome", "nurture", "sales", "onboarding"],
444
+ default: "welcome"
445
+ },
446
+ {
447
+ name: "goal",
448
+ label: "Primary Goal",
449
+ type: "text",
450
+ required: true,
451
+ placeholder: "e.g., increase product adoption"
452
+ },
453
+ {
454
+ name: "length",
455
+ label: "Number of Emails",
456
+ type: "select",
457
+ options: ["3-email", "5-email", "7-email", "10-email"],
458
+ default: "5-email"
459
+ },
460
+ {
461
+ name: "audience",
462
+ label: "Target Audience",
463
+ type: "select",
464
+ options: ["new subscribers", "existing customers", "leads", "inactive users"],
465
+ default: "new subscribers"
466
+ },
467
+ {
468
+ name: "tone",
469
+ label: "Email Tone",
470
+ type: "select",
471
+ options: ["friendly", "professional", "urgent", "educational"],
472
+ default: "friendly"
473
+ }
474
+ ],
475
+ tags: ["email", "marketing", "sequence", "automation"],
476
+ icon: "\u{1F4E7}",
477
+ version: 1
478
+ }
479
+ };
480
+ var PROMPT_CATEGORIES = [
481
+ {
482
+ id: "image-generation",
483
+ name: "Image Generation",
484
+ description: "Prompts for creating AI-generated images",
485
+ icon: "\u{1F3A8}",
486
+ count: 4
487
+ },
488
+ {
489
+ id: "video-generation",
490
+ name: "Video Generation",
491
+ description: "Prompts for creating AI-generated videos",
492
+ icon: "\u{1F3AC}",
493
+ count: 3
494
+ },
495
+ {
496
+ id: "content",
497
+ name: "Content Creation",
498
+ description: "Prompts for text and content generation",
499
+ icon: "\u270D\uFE0F",
500
+ count: 3
501
+ }
502
+ ];
503
+ function getAllPrompts() {
504
+ return Object.values(PROMPT_REGISTRY);
505
+ }
506
+ function getPrompt(id) {
507
+ return PROMPT_REGISTRY[id];
508
+ }
509
+ function getPromptJson(id) {
510
+ try {
511
+ const category = PROMPT_REGISTRY[id]?.category;
512
+ if (!category) return void 0;
513
+ const promptPath = path.join(__dirname, "..", "prompts", category, `${id}.json`);
514
+ const jsonContent = fs.readFileSync(promptPath, "utf-8");
515
+ return JSON.parse(jsonContent);
516
+ } catch (_error) {
517
+ return PROMPT_REGISTRY[id];
518
+ }
519
+ }
520
+ function getPromptsByCategory(category) {
521
+ return Object.values(PROMPT_REGISTRY).filter((p) => p.category === category);
522
+ }
523
+ function searchPromptsByTag(tag) {
524
+ return Object.values(PROMPT_REGISTRY).filter(
525
+ (p) => p.tags.some((t) => t.toLowerCase().includes(tag.toLowerCase()))
526
+ );
527
+ }
528
+ function getPromptCategories() {
529
+ return PROMPT_CATEGORIES;
530
+ }
531
+ // Annotate the CommonJS export names for ESM import in node:
532
+ 0 && (module.exports = {
533
+ PROMPT_CATEGORIES,
534
+ PROMPT_REGISTRY,
535
+ getAllPrompts,
536
+ getPrompt,
537
+ getPromptCategories,
538
+ getPromptJson,
539
+ getPromptsByCategory,
540
+ searchPromptsByTag
541
+ });