@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 +1 -1
- package/dist/above-fold-cro-auditor.d.ts +41 -0
- package/dist/aeo-snippet-synthesizer.d.ts +29 -0
- package/dist/context-templates-generator.d.ts +27 -0
- package/dist/google-indexing-client.d.ts +42 -0
- package/dist/humanity-ai-scrubber.d.ts +29 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.js +747 -1
- package/dist/index.mjs +747 -1
- package/dist/passive-voice-complexity.d.ts +31 -0
- package/dist/semantic-cannibalization.d.ts +43 -0
- package/dist/serp-length-comparator.d.ts +34 -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,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";
|