@lssm/lib.content-gen 0.0.0-canary-20251217054315 → 0.0.0-canary-20251217060804
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/generators/blog.d.ts +15 -0
- package/dist/generators/email.d.ts +18 -0
- package/dist/generators/index.d.ts +5 -0
- package/dist/generators/landing-page.d.ts +27 -0
- package/dist/generators/social.d.ts +14 -0
- package/dist/index.d.ts +7 -0
- package/dist/seo/index.d.ts +2 -0
- package/dist/seo/optimizer.d.ts +11 -0
- package/dist/types.d.ts +71 -0
- package/package.json +13 -13
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ContentBrief, GeneratedContent, GeneratorOptions } from "../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/generators/blog.d.ts
|
|
4
|
+
declare class BlogGenerator {
|
|
5
|
+
private readonly llm?;
|
|
6
|
+
private readonly model?;
|
|
7
|
+
private readonly temperature;
|
|
8
|
+
constructor(options?: GeneratorOptions);
|
|
9
|
+
generate(brief: ContentBrief): Promise<GeneratedContent>;
|
|
10
|
+
private generateWithLlm;
|
|
11
|
+
private generateDeterministic;
|
|
12
|
+
private renderWhyNow;
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
export { BlogGenerator };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { EmailCampaignBrief, EmailDraft, GeneratorOptions } from "../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/generators/email.d.ts
|
|
4
|
+
declare class EmailCampaignGenerator {
|
|
5
|
+
private readonly llm?;
|
|
6
|
+
private readonly model?;
|
|
7
|
+
private readonly temperature;
|
|
8
|
+
constructor(options?: GeneratorOptions);
|
|
9
|
+
generate(input: EmailCampaignBrief): Promise<EmailDraft>;
|
|
10
|
+
private generateWithLlm;
|
|
11
|
+
private generateFallback;
|
|
12
|
+
private subjects;
|
|
13
|
+
private defaultPreview;
|
|
14
|
+
private renderBody;
|
|
15
|
+
private variantHook;
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
export { EmailCampaignGenerator };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { BlogGenerator } from "./blog.js";
|
|
2
|
+
import { EmailCampaignGenerator } from "./email.js";
|
|
3
|
+
import { LandingPageCopy, LandingPageGenerator } from "./landing-page.js";
|
|
4
|
+
import { SocialPostGenerator } from "./social.js";
|
|
5
|
+
export { BlogGenerator, EmailCampaignGenerator, LandingPageCopy, LandingPageGenerator, SocialPostGenerator };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ContentBlock, ContentBrief, GeneratorOptions } from "../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/generators/landing-page.d.ts
|
|
4
|
+
interface LandingPageCopy {
|
|
5
|
+
hero: {
|
|
6
|
+
eyebrow?: string;
|
|
7
|
+
title: string;
|
|
8
|
+
subtitle: string;
|
|
9
|
+
primaryCta: string;
|
|
10
|
+
secondaryCta?: string;
|
|
11
|
+
};
|
|
12
|
+
highlights: ContentBlock[];
|
|
13
|
+
socialProof: ContentBlock;
|
|
14
|
+
faq: ContentBlock[];
|
|
15
|
+
}
|
|
16
|
+
declare class LandingPageGenerator {
|
|
17
|
+
private readonly options?;
|
|
18
|
+
private readonly llm?;
|
|
19
|
+
private readonly model?;
|
|
20
|
+
constructor(options?: GeneratorOptions | undefined);
|
|
21
|
+
generate(brief: ContentBrief): Promise<LandingPageCopy>;
|
|
22
|
+
private generateWithLlm;
|
|
23
|
+
private generateFallback;
|
|
24
|
+
private buildFaq;
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
export { LandingPageCopy, LandingPageGenerator };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ContentBrief, GeneratorOptions, SocialPost } from "../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/generators/social.d.ts
|
|
4
|
+
declare class SocialPostGenerator {
|
|
5
|
+
private readonly llm?;
|
|
6
|
+
private readonly model?;
|
|
7
|
+
constructor(options?: GeneratorOptions);
|
|
8
|
+
generate(brief: ContentBrief): Promise<SocialPost[]>;
|
|
9
|
+
private generateWithLlm;
|
|
10
|
+
private generateFallback;
|
|
11
|
+
private buildHashtags;
|
|
12
|
+
}
|
|
13
|
+
//#endregion
|
|
14
|
+
export { SocialPostGenerator };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AudienceProfile, ContentBlock, ContentBrief, EmailCampaignBrief, EmailDraft, GeneratedContent, GeneratorOptions, SeoMetadata, SocialPost } from "./types.js";
|
|
2
|
+
import { BlogGenerator } from "./generators/blog.js";
|
|
3
|
+
import { EmailCampaignGenerator } from "./generators/email.js";
|
|
4
|
+
import { LandingPageCopy, LandingPageGenerator } from "./generators/landing-page.js";
|
|
5
|
+
import { SocialPostGenerator } from "./generators/social.js";
|
|
6
|
+
import { SeoOptimizer } from "./seo/optimizer.js";
|
|
7
|
+
export { AudienceProfile, BlogGenerator, ContentBlock, ContentBrief, EmailCampaignBrief, EmailCampaignGenerator, EmailDraft, GeneratedContent, GeneratorOptions, LandingPageCopy, LandingPageGenerator, SeoMetadata, SeoOptimizer, SocialPost, SocialPostGenerator };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ContentBrief, SeoMetadata } from "../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/seo/optimizer.d.ts
|
|
4
|
+
declare class SeoOptimizer {
|
|
5
|
+
optimize(brief: ContentBrief): SeoMetadata;
|
|
6
|
+
private keywords;
|
|
7
|
+
private slugify;
|
|
8
|
+
private schema;
|
|
9
|
+
}
|
|
10
|
+
//#endregion
|
|
11
|
+
export { SeoOptimizer };
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { LLMProvider } from "@lssm/lib.contracts/integrations/providers/llm";
|
|
2
|
+
|
|
3
|
+
//#region src/types.d.ts
|
|
4
|
+
interface AudienceProfile {
|
|
5
|
+
role: string;
|
|
6
|
+
industry?: string;
|
|
7
|
+
region?: string;
|
|
8
|
+
maturity?: 'early' | 'scaleup' | 'enterprise';
|
|
9
|
+
painPoints?: string[];
|
|
10
|
+
}
|
|
11
|
+
interface ContentBrief {
|
|
12
|
+
title: string;
|
|
13
|
+
summary: string;
|
|
14
|
+
problems: string[];
|
|
15
|
+
solutions: string[];
|
|
16
|
+
metrics?: string[];
|
|
17
|
+
proofPoints?: string[];
|
|
18
|
+
complianceNotes?: string[];
|
|
19
|
+
audience: AudienceProfile;
|
|
20
|
+
callToAction?: string;
|
|
21
|
+
references?: {
|
|
22
|
+
label: string;
|
|
23
|
+
url: string;
|
|
24
|
+
}[];
|
|
25
|
+
}
|
|
26
|
+
interface ContentBlock {
|
|
27
|
+
heading: string;
|
|
28
|
+
body: string;
|
|
29
|
+
bullets?: string[];
|
|
30
|
+
cta?: string;
|
|
31
|
+
}
|
|
32
|
+
interface GeneratedContent {
|
|
33
|
+
title: string;
|
|
34
|
+
subtitle?: string;
|
|
35
|
+
intro: string;
|
|
36
|
+
sections: ContentBlock[];
|
|
37
|
+
outro?: string;
|
|
38
|
+
}
|
|
39
|
+
interface GeneratorOptions {
|
|
40
|
+
llm?: LLMProvider;
|
|
41
|
+
model?: string;
|
|
42
|
+
temperature?: number;
|
|
43
|
+
}
|
|
44
|
+
interface EmailCampaignBrief {
|
|
45
|
+
brief: ContentBrief;
|
|
46
|
+
variant: 'announcement' | 'onboarding' | 'nurture';
|
|
47
|
+
cadenceDay?: number;
|
|
48
|
+
}
|
|
49
|
+
interface EmailDraft {
|
|
50
|
+
subject: string;
|
|
51
|
+
previewText: string;
|
|
52
|
+
body: string;
|
|
53
|
+
cta: string;
|
|
54
|
+
variant: EmailCampaignBrief['variant'];
|
|
55
|
+
}
|
|
56
|
+
interface SocialPost {
|
|
57
|
+
channel: 'twitter' | 'linkedin' | 'threads';
|
|
58
|
+
body: string;
|
|
59
|
+
hashtags: string[];
|
|
60
|
+
cta?: string;
|
|
61
|
+
link?: string;
|
|
62
|
+
}
|
|
63
|
+
interface SeoMetadata {
|
|
64
|
+
metaTitle: string;
|
|
65
|
+
metaDescription: string;
|
|
66
|
+
keywords: string[];
|
|
67
|
+
slug: string;
|
|
68
|
+
schemaMarkup: Record<string, unknown>;
|
|
69
|
+
}
|
|
70
|
+
//#endregion
|
|
71
|
+
export { AudienceProfile, ContentBlock, ContentBrief, EmailCampaignBrief, EmailDraft, GeneratedContent, GeneratorOptions, SeoMetadata, SocialPost };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lssm/lib.content-gen",
|
|
3
|
-
"version": "0.0.0-canary-
|
|
3
|
+
"version": "0.0.0-canary-20251217060804",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -23,24 +23,24 @@
|
|
|
23
23
|
"test": "bun run"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@lssm/lib.contracts": "0.0.0-canary-
|
|
26
|
+
"@lssm/lib.contracts": "0.0.0-canary-20251217060804"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@lssm/tool.tsdown": "0.0.0-canary-
|
|
30
|
-
"@lssm/tool.typescript": "0.0.0-canary-
|
|
29
|
+
"@lssm/tool.tsdown": "0.0.0-canary-20251217060804",
|
|
30
|
+
"@lssm/tool.typescript": "0.0.0-canary-20251217060804",
|
|
31
31
|
"tsdown": "^0.17.4",
|
|
32
32
|
"typescript": "^5.9.3"
|
|
33
33
|
},
|
|
34
34
|
"exports": {
|
|
35
|
-
".": "./
|
|
36
|
-
"./generators": "./
|
|
37
|
-
"./generators/blog": "./
|
|
38
|
-
"./generators/email": "./
|
|
39
|
-
"./generators/landing-page": "./
|
|
40
|
-
"./generators/social": "./
|
|
41
|
-
"./seo": "./
|
|
42
|
-
"./seo/optimizer": "./
|
|
43
|
-
"./types": "./
|
|
35
|
+
".": "./dist/index.js",
|
|
36
|
+
"./generators": "./dist/generators/index.js",
|
|
37
|
+
"./generators/blog": "./dist/generators/blog.js",
|
|
38
|
+
"./generators/email": "./dist/generators/email.js",
|
|
39
|
+
"./generators/landing-page": "./dist/generators/landing-page.js",
|
|
40
|
+
"./generators/social": "./dist/generators/social.js",
|
|
41
|
+
"./seo": "./dist/seo/index.js",
|
|
42
|
+
"./seo/optimizer": "./dist/seo/optimizer.js",
|
|
43
|
+
"./types": "./dist/types.js",
|
|
44
44
|
"./*": "./*"
|
|
45
45
|
},
|
|
46
46
|
"publishConfig": {
|