@lynxflow/seo-engine 2.3.0 → 2.5.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.3.0-orange.svg)](https://www.npmjs.com/package/@lynxflow/seo-engine)
7
+ [![Version](https://img.shields.io/badge/Version-2.5.0-orange.svg)](https://www.npmjs.com/package/@lynxflow/seo-engine)
8
8
 
9
9
  ---
10
10
 
@@ -0,0 +1,34 @@
1
+ /**
2
+ * 🥊 Competitor Gap Blueprint & "Beat Them" Content Architect
3
+ * Ported & optimized from Python competitor_gap_analyzer.py.
4
+ * Identifies thin sections, unsupported claims, missing perspectives, and outdated information in competitor content.
5
+ */
6
+ export type ContentGapType = "thin_section" | "unsupported_claim" | "missing_perspective" | "outdated_info" | "structural_gap";
7
+ export interface CompetitorContentGap {
8
+ gapType: ContentGapType;
9
+ description: string;
10
+ locationHeading: string;
11
+ competitorUrl: string;
12
+ priority: "high" | "medium" | "low";
13
+ counterOpportunity: string;
14
+ }
15
+ export interface CompetitorArticleInput {
16
+ url: string;
17
+ title: string;
18
+ wordCount: number;
19
+ headings: string[];
20
+ contentSnippet?: string;
21
+ }
22
+ export interface BeatThemBlueprint {
23
+ mustFillGaps: CompetitorContentGap[];
24
+ expectedCommonHeadings: string[];
25
+ differentiationAngles: string[];
26
+ outdatedToUpdate: string[];
27
+ winningOutlineRecommendation: string[];
28
+ }
29
+ export declare class CompetitorGapBlueprintEngine {
30
+ /**
31
+ * Analyzes competitors and builds an actionable "Beat Them" blueprint.
32
+ */
33
+ static buildBlueprint(targetTopic: string, userWordCount: number, competitors: CompetitorArticleInput[]): BeatThemBlueprint;
34
+ }
@@ -0,0 +1,50 @@
1
+ /**
2
+ * 🪝 Engagement Hook & Viral Reading Rhythm Analyzer
3
+ * Ported & optimized from Python engagement_analyzer.py.
4
+ * Evaluates the 4 viral reading criteria: Hook quality, sentence length variety, contextual CTA distribution, and paragraph breathability.
5
+ */
6
+ export interface HookEvaluation {
7
+ openingSentence: string;
8
+ isStrongHook: boolean;
9
+ hookType: "question" | "statistic" | "quote" | "thought_experiment" | "concrete_story" | "generic_bad_opener";
10
+ feedback: string;
11
+ suggestedHookUpgrade?: string;
12
+ }
13
+ export interface RhythmEvaluation {
14
+ sentenceCount: number;
15
+ averageWords: number;
16
+ standardDeviation: number;
17
+ hasVariedRhythm: boolean;
18
+ score: number;
19
+ }
20
+ export interface CtaDistributionEvaluation {
21
+ totalCtasDetected: number;
22
+ isDistributedAcrossArticle: boolean;
23
+ hasAboveTheFoldCta: boolean;
24
+ hasMidArticleCta: boolean;
25
+ hasBottomCta: boolean;
26
+ }
27
+ export interface ParagraphDensityEvaluation {
28
+ totalParagraphs: number;
29
+ longParagraphsCount: number;
30
+ isMobileBreathable: boolean;
31
+ }
32
+ export interface ArticleEngagementReport {
33
+ engagementScore: number;
34
+ allPassed: boolean;
35
+ passedCount: number;
36
+ hook: HookEvaluation;
37
+ rhythm: RhythmEvaluation;
38
+ ctas: CtaDistributionEvaluation;
39
+ paragraphs: ParagraphDensityEvaluation;
40
+ actionableFixes: string[];
41
+ }
42
+ export declare class EngagementHookAnalyzer {
43
+ private static readonly GENERIC_BAD_OPENERS;
44
+ private static readonly GOOD_HOOK_STARTERS;
45
+ private static readonly CTA_REGEX;
46
+ /**
47
+ * Analyzes an article's engagement mechanics.
48
+ */
49
+ static analyze(content: string): ArticleEngagementReport;
50
+ }
package/dist/index.d.ts CHANGED
@@ -119,6 +119,12 @@ import { SerpLengthComparator } from "./serp-length-comparator";
119
119
  import { PassiveVoiceComplexityAnalyzer } from "./passive-voice-complexity";
120
120
  import { AboveFoldCroAuditor } from "./above-fold-cro-auditor";
121
121
  import { ContextTemplatesGenerator } from "./context-templates-generator";
122
+ import { SearchIntentClassifier } from "./search-intent-classifier";
123
+ import { SeoOpportunityPrioritizer } from "./seo-opportunity-prioritizer";
124
+ import { TrustSignalsExtractor } from "./trust-signals-extractor";
125
+ import { CompetitorGapBlueprintEngine } from "./competitor-gap-blueprint";
126
+ import { EngagementHookAnalyzer } from "./engagement-hook-analyzer";
127
+ import { KeywordDensityGuard } from "./keyword-density-guard";
122
128
  export declare function createLynxSeoEngine(config: EngineConfig): LynxSeoEngine;
123
129
  export declare const LynxSeo: {
124
130
  createEngine: typeof createLynxSeoEngine;
@@ -135,6 +141,12 @@ export declare const LynxSeo: {
135
141
  readabilityComplexity: typeof PassiveVoiceComplexityAnalyzer;
136
142
  aboveFoldCro: typeof AboveFoldCroAuditor;
137
143
  contextTemplates: typeof ContextTemplatesGenerator;
144
+ searchIntent: typeof SearchIntentClassifier;
145
+ opportunityPrioritizer: typeof SeoOpportunityPrioritizer;
146
+ trustSignals: typeof TrustSignalsExtractor;
147
+ competitorGap: typeof CompetitorGapBlueprintEngine;
148
+ engagementHook: typeof EngagementHookAnalyzer;
149
+ keywordDensity: typeof KeywordDensityGuard;
138
150
  inspectMeta: typeof SiteAuditor.inspectMeta;
139
151
  crawlDomain: typeof DeepCrawlerAuditor.crawlAndAuditDomain;
140
152
  inspectHtmlSnapshot: typeof DeepCrawlerAuditor.inspectHtmlSnapshot;
@@ -176,6 +188,12 @@ export declare const LynxSeo: {
176
188
  marketingSkills: typeof MarketingSkillsEngine;
177
189
  regenerationTracker: typeof PageRegenerationTracker;
178
190
  };
191
+ export * from "./competitor-gap-blueprint";
192
+ export * from "./engagement-hook-analyzer";
193
+ export * from "./keyword-density-guard";
194
+ export * from "./search-intent-classifier";
195
+ export * from "./seo-opportunity-prioritizer";
196
+ export * from "./trust-signals-extractor";
179
197
  export * from "./humanity-ai-scrubber";
180
198
  export * from "./serp-length-comparator";
181
199
  export * from "./passive-voice-complexity";