@lynxflow/seo-engine 2.5.0 → 2.7.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/README.md +1 -1
- package/dist/article-strategic-planner.d.ts +35 -0
- package/dist/content-quality-scorer.d.ts +40 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.js +549 -0
- package/dist/index.mjs +549 -0
- package/dist/landing-channel-scorer.d.ts +41 -0
- package/dist/landing-cro-checker.d.ts +36 -0
- package/dist/social-community-insights.d.ts +27 -0
- package/dist/topic-cluster-architect.d.ts +39 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ High-Performance Universal Programmatic SEO & Structured Data Engine for Modern
|
|
|
4
4
|
|
|
5
5
|
[](https://www.typescriptlang.org/)
|
|
6
6
|
[](LICENSE)
|
|
7
|
-
[](https://www.npmjs.com/package/@lynxflow/seo-engine)
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 📝 Strategic Section-by-Section Article Planner
|
|
3
|
+
* Ported & optimized from Python article_planner.py (15.5 KB).
|
|
4
|
+
* Builds a blueprint with word count targets per section, direct answer snippet cards, CTA intensities, and internal linking map.
|
|
5
|
+
*/
|
|
6
|
+
export type SectionType = "intro" | "how_to" | "comparison" | "explanation" | "faq" | "conclusion";
|
|
7
|
+
export type CtaIntensity = "soft" | "medium" | "strong";
|
|
8
|
+
export interface ArticleSectionPlan {
|
|
9
|
+
sectionNumber: number;
|
|
10
|
+
type: SectionType;
|
|
11
|
+
heading: string;
|
|
12
|
+
targetWordCount: number;
|
|
13
|
+
strategicObjective: string;
|
|
14
|
+
hasFeaturedSnippetTarget: boolean;
|
|
15
|
+
ctaIntensity?: CtaIntensity;
|
|
16
|
+
internalLinkAnchors: string[];
|
|
17
|
+
}
|
|
18
|
+
export interface ComprehensiveArticlePlan {
|
|
19
|
+
topic: string;
|
|
20
|
+
targetTotalWords: number;
|
|
21
|
+
estimatedReadingTimeMinutes: number;
|
|
22
|
+
meta: {
|
|
23
|
+
titleOptions: string[];
|
|
24
|
+
metaDescription: string;
|
|
25
|
+
targetKeywords: string[];
|
|
26
|
+
};
|
|
27
|
+
sections: ArticleSectionPlan[];
|
|
28
|
+
ctaMap: Record<string, number>;
|
|
29
|
+
}
|
|
30
|
+
export declare class ArticleStrategicPlanner {
|
|
31
|
+
/**
|
|
32
|
+
* Generates a complete strategic article plan tailored to a target keyword and desired depth.
|
|
33
|
+
*/
|
|
34
|
+
static planArticle(topic: string, primaryKeyword: string, depth?: "standard" | "exhaustive_pillar"): ComprehensiveArticlePlan;
|
|
35
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 💎 Multi-Dimensional Content Quality Scorer
|
|
3
|
+
* Ported & optimized from Python content_scorer.py (31 KB).
|
|
4
|
+
* Evaluates 5 dimensions: Humanity/Voice (30%), Specificity (25%), Structure Balance (20%), SEO Compliance (15%), Readability (10%).
|
|
5
|
+
* Composite quality threshold: >= 70 to pass.
|
|
6
|
+
*/
|
|
7
|
+
export interface DimensionScoreBreakdown {
|
|
8
|
+
score: number;
|
|
9
|
+
weight: number;
|
|
10
|
+
weightedScore: number;
|
|
11
|
+
strengths: string[];
|
|
12
|
+
issues: string[];
|
|
13
|
+
}
|
|
14
|
+
export interface ContentQualityReport {
|
|
15
|
+
compositeScore: number;
|
|
16
|
+
passesQualityThreshold: boolean;
|
|
17
|
+
grade: "A+" | "A" | "B" | "C" | "F";
|
|
18
|
+
dimensions: {
|
|
19
|
+
humanity: DimensionScoreBreakdown;
|
|
20
|
+
specificity: DimensionScoreBreakdown;
|
|
21
|
+
structureBalance: DimensionScoreBreakdown;
|
|
22
|
+
seoCompliance: DimensionScoreBreakdown;
|
|
23
|
+
readability: DimensionScoreBreakdown;
|
|
24
|
+
};
|
|
25
|
+
proseToListRatio: number;
|
|
26
|
+
topPriorityFixes: string[];
|
|
27
|
+
}
|
|
28
|
+
export declare class ContentQualityScorer {
|
|
29
|
+
private static readonly VAGUE_WORDS;
|
|
30
|
+
private static readonly SPECIFICITY_DATA_PATTERNS;
|
|
31
|
+
private static readonly CONVERSATIONAL_DEVICES;
|
|
32
|
+
/**
|
|
33
|
+
* Scores content across all 5 dimensions.
|
|
34
|
+
*/
|
|
35
|
+
static scoreContent(content: string, metadata?: {
|
|
36
|
+
metaTitle?: string;
|
|
37
|
+
primaryKeyword?: string;
|
|
38
|
+
}): ContentQualityReport;
|
|
39
|
+
private static emptyReport;
|
|
40
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -125,6 +125,12 @@ import { TrustSignalsExtractor } from "./trust-signals-extractor";
|
|
|
125
125
|
import { CompetitorGapBlueprintEngine } from "./competitor-gap-blueprint";
|
|
126
126
|
import { EngagementHookAnalyzer } from "./engagement-hook-analyzer";
|
|
127
127
|
import { KeywordDensityGuard } from "./keyword-density-guard";
|
|
128
|
+
import { ContentQualityScorer } from "./content-quality-scorer";
|
|
129
|
+
import { LandingCroChecker } from "./landing-cro-checker";
|
|
130
|
+
import { SocialCommunityInsightsAggregator } from "./social-community-insights";
|
|
131
|
+
import { LandingChannelScorer } from "./landing-channel-scorer";
|
|
132
|
+
import { ArticleStrategicPlanner } from "./article-strategic-planner";
|
|
133
|
+
import { TopicClusterArchitect } from "./topic-cluster-architect";
|
|
128
134
|
export declare function createLynxSeoEngine(config: EngineConfig): LynxSeoEngine;
|
|
129
135
|
export declare const LynxSeo: {
|
|
130
136
|
createEngine: typeof createLynxSeoEngine;
|
|
@@ -147,6 +153,12 @@ export declare const LynxSeo: {
|
|
|
147
153
|
competitorGap: typeof CompetitorGapBlueprintEngine;
|
|
148
154
|
engagementHook: typeof EngagementHookAnalyzer;
|
|
149
155
|
keywordDensity: typeof KeywordDensityGuard;
|
|
156
|
+
contentQuality: typeof ContentQualityScorer;
|
|
157
|
+
landingCroChecker: typeof LandingCroChecker;
|
|
158
|
+
socialInsights: typeof SocialCommunityInsightsAggregator;
|
|
159
|
+
channelScorer: typeof LandingChannelScorer;
|
|
160
|
+
articlePlanner: typeof ArticleStrategicPlanner;
|
|
161
|
+
topicClusters: typeof TopicClusterArchitect;
|
|
150
162
|
inspectMeta: typeof SiteAuditor.inspectMeta;
|
|
151
163
|
crawlDomain: typeof DeepCrawlerAuditor.crawlAndAuditDomain;
|
|
152
164
|
inspectHtmlSnapshot: typeof DeepCrawlerAuditor.inspectHtmlSnapshot;
|
|
@@ -188,6 +200,12 @@ export declare const LynxSeo: {
|
|
|
188
200
|
marketingSkills: typeof MarketingSkillsEngine;
|
|
189
201
|
regenerationTracker: typeof PageRegenerationTracker;
|
|
190
202
|
};
|
|
203
|
+
export * from "./landing-channel-scorer";
|
|
204
|
+
export * from "./article-strategic-planner";
|
|
205
|
+
export * from "./topic-cluster-architect";
|
|
206
|
+
export * from "./content-quality-scorer";
|
|
207
|
+
export * from "./landing-cro-checker";
|
|
208
|
+
export * from "./social-community-insights";
|
|
191
209
|
export * from "./competitor-gap-blueprint";
|
|
192
210
|
export * from "./engagement-hook-analyzer";
|
|
193
211
|
export * from "./keyword-density-guard";
|