@lynxflow/seo-engine 2.1.1 → 2.3.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.1.1-orange.svg)](https://www.npmjs.com/package/@lynxflow/seo-engine)
7
+ [![Version](https://img.shields.io/badge/Version-2.3.0-orange.svg)](https://www.npmjs.com/package/@lynxflow/seo-engine)
8
8
 
9
9
  ---
10
10
 
@@ -0,0 +1,41 @@
1
+ /**
2
+ * 🎯 Above-The-Fold & Landing Page CRO Auditor
3
+ * Evaluates hero sections and landing page conversion architecture (0-100 Score).
4
+ * Analyzes Value Proposition clarity, CTA strength, Trust signals, and Friction points.
5
+ */
6
+ export interface AboveFoldAuditInput {
7
+ h1: string;
8
+ subheadline?: string;
9
+ primaryCtaText: string;
10
+ primaryCtaUrl?: string;
11
+ hasTestimonialsOrStars?: boolean;
12
+ hasRiskReversalOrGuarantee?: boolean;
13
+ hasCustomerLogos?: boolean;
14
+ pageContentSnippet?: string;
15
+ }
16
+ export interface CroCriterionResult {
17
+ name: string;
18
+ passed: boolean;
19
+ score: number;
20
+ feedback: string;
21
+ }
22
+ export interface AboveFoldCroReport {
23
+ croScore: number;
24
+ rating: "high_converting" | "solid" | "high_friction";
25
+ criteria: CroCriterionResult[];
26
+ recommendedFixes: string[];
27
+ suggestedHeroVariant: {
28
+ h1: string;
29
+ subheadline: string;
30
+ ctaText: string;
31
+ reassuranceBadge: string;
32
+ };
33
+ }
34
+ export declare class AboveFoldCroAuditor {
35
+ private static readonly STRONG_ACTION_VERBS;
36
+ private static readonly WEAK_ACTION_VERBS;
37
+ /**
38
+ * Audits hero section and returns a comprehensive CRO report.
39
+ */
40
+ static auditHero(input: AboveFoldAuditInput): AboveFoldCroReport;
41
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * 🤖 AEO Direct Answer & LLM Citation Synthesizer
3
+ * Generates compact, fact-dense direct answers (40-60 words) optimized for
4
+ * Perplexity, SearchGPT, Gemini AI Overviews, and Claude citations.
5
+ */
6
+ export interface AeoDirectSnippetOptions {
7
+ brandName: string;
8
+ serviceName: string;
9
+ locationName?: string;
10
+ countryName?: string;
11
+ currencySymbol?: string;
12
+ startingPrice?: number;
13
+ keyBenefits?: string[];
14
+ entityCategory?: string;
15
+ language?: string;
16
+ }
17
+ export interface AeoDirectAnswerResult {
18
+ directAnswerText: string;
19
+ bulletPoints: string[];
20
+ statHighlight: string;
21
+ citationScore: number;
22
+ speakableText: string;
23
+ }
24
+ export declare class AeoSnippetSynthesizer {
25
+ /**
26
+ * Synthesizes a structured AEO direct answer block in < 0.01ms.
27
+ */
28
+ static synthesize(opts: AeoDirectSnippetOptions): AeoDirectAnswerResult;
29
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * 📁 Context Templates Generator for AI Coding Agents
3
+ * Automatically generates production-ready markdown configuration templates
4
+ * (.claude/ and context/ directories) for Claude Code, Cursor, and Antigravity.
5
+ */
6
+ export interface BrandContextInput {
7
+ brandName: string;
8
+ domain: string;
9
+ industry: string;
10
+ coreFeatures: string[];
11
+ targetAudience: string;
12
+ primaryKeywords: string[];
13
+ }
14
+ export declare class ContextTemplatesGenerator {
15
+ /**
16
+ * Generates a complete bundle of 8 context markdown files tailored to a brand.
17
+ */
18
+ static generateAllContextFiles(input: BrandContextInput): Record<string, string>;
19
+ static generateBrandVoice(input: BrandContextInput): string;
20
+ static generateFeatures(input: BrandContextInput): string;
21
+ static generateInternalLinksMap(input: BrandContextInput): string;
22
+ static generateStyleGuide(input: BrandContextInput): string;
23
+ static generateTargetKeywords(input: BrandContextInput): string;
24
+ static generateCompetitorAnalysis(input: BrandContextInput): string;
25
+ static generateSeoGuidelines(input: BrandContextInput): string;
26
+ static generateCroBestPractices(input: BrandContextInput): string;
27
+ }
@@ -0,0 +1,42 @@
1
+ /**
2
+ * ⚡ Google Indexing API Batch Client
3
+ * Directly notifies Googlebot of URL updates, additions, and deletions for immediate crawling.
4
+ * Integrates with Service Account credentials and automatic batch quota management.
5
+ */
6
+ export interface GoogleIndexingPayload {
7
+ url: string;
8
+ type: "URL_UPDATED" | "URL_DELETED";
9
+ }
10
+ export interface GoogleIndexingResult {
11
+ url: string;
12
+ type: "URL_UPDATED" | "URL_DELETED";
13
+ status: "submitted" | "queued" | "rate_limited" | "error";
14
+ notifyTime?: string;
15
+ message?: string;
16
+ }
17
+ export interface GoogleIndexingBatchSummary {
18
+ totalRequested: number;
19
+ submittedCount: number;
20
+ queuedCount: number;
21
+ rateLimitedCount: number;
22
+ results: GoogleIndexingResult[];
23
+ }
24
+ export declare class GoogleIndexingClient {
25
+ private static readonly GOOGLE_INDEXING_ENDPOINT;
26
+ private static readonly DAILY_QUOTA_LIMIT;
27
+ /**
28
+ * Submits a single URL to Google Indexing API.
29
+ */
30
+ static submitUrl(url: string, type?: "URL_UPDATED" | "URL_DELETED", options?: {
31
+ accessToken?: string;
32
+ proxyUrl?: string;
33
+ }): Promise<GoogleIndexingResult>;
34
+ /**
35
+ * Submits a batch of URLs with rate limiting and quota protection.
36
+ */
37
+ static submitBatch(urls: string[] | GoogleIndexingPayload[], options?: {
38
+ accessToken?: string;
39
+ proxyUrl?: string;
40
+ maxBatchSize?: number;
41
+ }): Promise<GoogleIndexingBatchSummary>;
42
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * 🧹 Humanity AI Scrubber & Anti-AI Watermark Engine
3
+ * Detects and removes robotic LLM patterns, clichés, em-dash abuses, and filler phrases.
4
+ * Computes a rigorous Humanity Score (0-100) and produces humanized copy.
5
+ */
6
+ export interface AiClichéMatch {
7
+ pattern: string;
8
+ count: number;
9
+ category: "filler_word" | "robotic_intro" | "excessive_punctuation" | "overused_transition";
10
+ suggestion: string;
11
+ }
12
+ export interface HumanityScrubReport {
13
+ humanityScore: number;
14
+ aiProbabilityScore: number;
15
+ totalWords: number;
16
+ clichésDetectedCount: number;
17
+ clichés: AiClichéMatch[];
18
+ isHumanSounding: boolean;
19
+ scrubbedText: string;
20
+ improvementRecommendations: string[];
21
+ }
22
+ export declare class HumanityAiScrubber {
23
+ private static readonly BANNED_AI_WORDS;
24
+ private static readonly ROBOTIC_INTROS;
25
+ /**
26
+ * Analyzes text and returns a comprehensive Humanity Score and scrubbed output.
27
+ */
28
+ static analyzeAndScrub(text: string, language?: string): HumanityScrubReport;
29
+ }
package/dist/index.d.ts CHANGED
@@ -111,6 +111,14 @@ import { InternalPageRankEngine } from "./internal-pagerank-graph";
111
111
  import { GeoCitationScorer } from "./geo-citation-scorer";
112
112
  import { MarketingSkillsEngine } from "./marketing-skills-engine";
113
113
  import { PageRegenerationTracker } from "./generation-tracker";
114
+ import { GoogleIndexingClient } from "./google-indexing-client";
115
+ import { AeoSnippetSynthesizer } from "./aeo-snippet-synthesizer";
116
+ import { SemanticCannibalizationDetector } from "./semantic-cannibalization";
117
+ import { HumanityAiScrubber } from "./humanity-ai-scrubber";
118
+ import { SerpLengthComparator } from "./serp-length-comparator";
119
+ import { PassiveVoiceComplexityAnalyzer } from "./passive-voice-complexity";
120
+ import { AboveFoldCroAuditor } from "./above-fold-cro-auditor";
121
+ import { ContextTemplatesGenerator } from "./context-templates-generator";
114
122
  export declare function createLynxSeoEngine(config: EngineConfig): LynxSeoEngine;
115
123
  export declare const LynxSeo: {
116
124
  createEngine: typeof createLynxSeoEngine;
@@ -119,6 +127,14 @@ export declare const LynxSeo: {
119
127
  createLagoMeter: (apiKey?: string, lagoUrl?: string) => LagoTokenMeter;
120
128
  createHyperswitchGateway: (apiKey: string, baseUrl?: string) => HyperswitchGateway;
121
129
  submitToIndexNow: typeof IndexNowClient.submitUrls;
130
+ googleIndexing: typeof GoogleIndexingClient;
131
+ aeoSnippet: typeof AeoSnippetSynthesizer;
132
+ cannibalization: typeof SemanticCannibalizationDetector;
133
+ humanityScrubber: typeof HumanityAiScrubber;
134
+ serpLength: typeof SerpLengthComparator;
135
+ readabilityComplexity: typeof PassiveVoiceComplexityAnalyzer;
136
+ aboveFoldCro: typeof AboveFoldCroAuditor;
137
+ contextTemplates: typeof ContextTemplatesGenerator;
122
138
  inspectMeta: typeof SiteAuditor.inspectMeta;
123
139
  crawlDomain: typeof DeepCrawlerAuditor.crawlAndAuditDomain;
124
140
  inspectHtmlSnapshot: typeof DeepCrawlerAuditor.inspectHtmlSnapshot;
@@ -160,6 +176,14 @@ export declare const LynxSeo: {
160
176
  marketingSkills: typeof MarketingSkillsEngine;
161
177
  regenerationTracker: typeof PageRegenerationTracker;
162
178
  };
179
+ export * from "./humanity-ai-scrubber";
180
+ export * from "./serp-length-comparator";
181
+ export * from "./passive-voice-complexity";
182
+ export * from "./above-fold-cro-auditor";
183
+ export * from "./context-templates-generator";
184
+ export * from "./google-indexing-client";
185
+ export * from "./aeo-snippet-synthesizer";
186
+ export * from "./semantic-cannibalization";
163
187
  export * from "./generation-tracker";
164
188
  export * from "./internal-pagerank-graph";
165
189
  export * from "./geo-citation-scorer";