@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 CHANGED
@@ -4,7 +4,7 @@ High-Performance Universal Programmatic SEO & Structured Data Engine for Modern
4
4
 
5
5
  [![TypeScript](https://img.shields.io/badge/TypeScript-Ready-blue.svg)](https://www.typescriptlang.org/)
6
6
  [![License](https://img.shields.io/badge/License-Proprietary-green.svg)](LICENSE)
7
- [![Version](https://img.shields.io/badge/Version-2.5.0-orange.svg)](https://www.npmjs.com/package/@lynxflow/seo-engine)
7
+ [![Version](https://img.shields.io/badge/Version-2.7.0-orange.svg)](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";