@consilioweb/payload-seo-analyzer 1.9.0 → 1.10.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 +42 -0
- package/dist/client.cjs +655 -85
- package/dist/client.js +655 -85
- package/dist/index.cjs +1064 -211
- package/dist/index.d.cts +111 -3
- package/dist/index.d.ts +111 -3
- package/dist/index.js +1059 -212
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -177,6 +177,13 @@ interface SeoFeatures {
|
|
|
177
177
|
duplicateContent?: boolean;
|
|
178
178
|
/** Settings view (/admin/seo-config) */
|
|
179
179
|
settings?: boolean;
|
|
180
|
+
/**
|
|
181
|
+
* Proactive monitoring digest (opt-in, default false). Periodically reports score
|
|
182
|
+
* regressions, new 404s and ranking drops via webhook and/or email. Delivery + thresholds
|
|
183
|
+
* are configured with env vars (SEO_ALERT_WEBHOOK_URL, SEO_ALERT_EMAIL, SEO_ALERT_SCORE_DROP,
|
|
184
|
+
* SEO_ALERT_POSITION_DROP, SEO_ALERT_INTERVAL_HOURS). Email uses Payload's email adapter.
|
|
185
|
+
*/
|
|
186
|
+
alerts?: boolean;
|
|
180
187
|
}
|
|
181
188
|
/** Pre-computed context shared across all rule modules to avoid redundant work */
|
|
182
189
|
interface AnalysisContext {
|
|
@@ -1216,6 +1223,107 @@ declare function buildSeoInputFromDoc(doc: any, collection: string, options?: {
|
|
|
1216
1223
|
isGlobal?: boolean;
|
|
1217
1224
|
}): SeoInput;
|
|
1218
1225
|
|
|
1226
|
+
/**
|
|
1227
|
+
* Frontend metadata helper — turns a Payload document into a Next.js-compatible `Metadata`
|
|
1228
|
+
* object (title, description, canonical, hreflang, robots, Open Graph, Twitter).
|
|
1229
|
+
*
|
|
1230
|
+
* This closes the loop between analysis and production: instead of only grading the SEO in the
|
|
1231
|
+
* admin, the plugin can now PRODUCE the actual `<head>` metadata. Use it in a Next.js page:
|
|
1232
|
+
*
|
|
1233
|
+
* export async function generateMetadata({ params }) {
|
|
1234
|
+
* const doc = await payload.findByID({ collection: 'pages', id, depth: 1 })
|
|
1235
|
+
* return buildSeoMetadata(doc, { collection: 'pages', siteUrl, siteName: 'My Site' })
|
|
1236
|
+
* }
|
|
1237
|
+
*
|
|
1238
|
+
* The return value is a structural subset of Next's `Metadata` (assignable to it) — kept
|
|
1239
|
+
* dependency-free so the plugin doesn't hard-depend on `next`.
|
|
1240
|
+
*/
|
|
1241
|
+
interface SeoMetadataOptions {
|
|
1242
|
+
/** Collection slug — used to pick the Open Graph type (posts → 'article') */
|
|
1243
|
+
collection?: string;
|
|
1244
|
+
/** Absolute site URL (defaults to NEXT_PUBLIC_SERVER_URL / PAYLOAD_PUBLIC_SERVER_URL) */
|
|
1245
|
+
siteUrl?: string;
|
|
1246
|
+
/** Site name for Open Graph */
|
|
1247
|
+
siteName?: string;
|
|
1248
|
+
/** Template for the title, e.g. "%s | My Site" (%s = the page title) */
|
|
1249
|
+
titleTemplate?: string;
|
|
1250
|
+
/** Fallback OG/Twitter image (absolute, or site-relative) when the document has none */
|
|
1251
|
+
defaultImage?: string;
|
|
1252
|
+
/** Open Graph locale, e.g. 'fr_FR' */
|
|
1253
|
+
locale?: string;
|
|
1254
|
+
}
|
|
1255
|
+
interface SeoMetadata {
|
|
1256
|
+
title?: string;
|
|
1257
|
+
description?: string;
|
|
1258
|
+
alternates?: {
|
|
1259
|
+
canonical?: string;
|
|
1260
|
+
languages?: Record<string, string>;
|
|
1261
|
+
};
|
|
1262
|
+
robots?: {
|
|
1263
|
+
index: boolean;
|
|
1264
|
+
follow: boolean;
|
|
1265
|
+
};
|
|
1266
|
+
openGraph?: {
|
|
1267
|
+
title?: string;
|
|
1268
|
+
description?: string;
|
|
1269
|
+
url?: string;
|
|
1270
|
+
siteName?: string;
|
|
1271
|
+
type?: string;
|
|
1272
|
+
locale?: string;
|
|
1273
|
+
images?: Array<{
|
|
1274
|
+
url: string;
|
|
1275
|
+
}>;
|
|
1276
|
+
};
|
|
1277
|
+
twitter?: {
|
|
1278
|
+
card?: string;
|
|
1279
|
+
title?: string;
|
|
1280
|
+
description?: string;
|
|
1281
|
+
images?: string[];
|
|
1282
|
+
};
|
|
1283
|
+
}
|
|
1284
|
+
/**
|
|
1285
|
+
* Build a Next.js-compatible `Metadata` object from a Payload document.
|
|
1286
|
+
* Pure — safe to call inside `generateMetadata()` (server side).
|
|
1287
|
+
*/
|
|
1288
|
+
declare function buildSeoMetadata(doc: Record<string, unknown>, options?: SeoMetadataOptions): SeoMetadata;
|
|
1289
|
+
|
|
1290
|
+
/**
|
|
1291
|
+
* Schema.org / JSON-LD generation — pure, framework-agnostic builders.
|
|
1292
|
+
*
|
|
1293
|
+
* Single source of truth shared by the admin endpoint (`endpoints/schemaGenerator.ts`) and the
|
|
1294
|
+
* frontend render helper (`buildJsonLd` + the `<JsonLd>` component), so the structured data the
|
|
1295
|
+
* dashboard previews is byte-for-byte what the site renders.
|
|
1296
|
+
*/
|
|
1297
|
+
declare const SCHEMA_TYPES: readonly ["Article", "LocalBusiness", "BreadcrumbList", "FAQPage", "Product", "Organization", "Person", "Event", "Recipe", "Video"];
|
|
1298
|
+
type SchemaType = (typeof SCHEMA_TYPES)[number];
|
|
1299
|
+
/** Resolve an absolute image URL from a populated meta.image or hero media object. */
|
|
1300
|
+
declare function getSchemaImageUrl(metaImage: Record<string, unknown> | undefined, heroMedia: Record<string, unknown> | undefined, siteUrl: string): string | undefined;
|
|
1301
|
+
/** Detect schema type from collection slug and document content. */
|
|
1302
|
+
declare function detectSchemaType(collection: string, doc: Record<string, unknown>): SchemaType;
|
|
1303
|
+
interface BuildJsonLdOptions {
|
|
1304
|
+
/** Collection slug — used to auto-detect the schema type when `type` is omitted */
|
|
1305
|
+
collection?: string;
|
|
1306
|
+
/** Absolute site URL (defaults to NEXT_PUBLIC_SERVER_URL / PAYLOAD_PUBLIC_SERVER_URL) */
|
|
1307
|
+
siteUrl?: string;
|
|
1308
|
+
/** Force a specific schema type instead of auto-detecting */
|
|
1309
|
+
type?: SchemaType;
|
|
1310
|
+
}
|
|
1311
|
+
/**
|
|
1312
|
+
* Build a clean JSON-LD object from a Payload document. Pure — safe to call on the server
|
|
1313
|
+
* during rendering (e.g. in a Next.js Server Component) or from the admin endpoint.
|
|
1314
|
+
*/
|
|
1315
|
+
declare function buildJsonLd(doc: Record<string, unknown>, options?: BuildJsonLdOptions): {
|
|
1316
|
+
type: SchemaType;
|
|
1317
|
+
jsonLd: Record<string, unknown>;
|
|
1318
|
+
};
|
|
1319
|
+
/**
|
|
1320
|
+
* Convenience: build the JSON-LD and return a ready-to-inject `<script>` string.
|
|
1321
|
+
* In React/Next you can instead render the object directly:
|
|
1322
|
+
* <script type="application/ld+json"
|
|
1323
|
+
* dangerouslySetInnerHTML={{ __html: JSON.stringify(buildJsonLd(doc, opts).jsonLd) }} />
|
|
1324
|
+
*/
|
|
1325
|
+
declare function renderJsonLdScript(doc: Record<string, unknown>, options?: BuildJsonLdOptions): string;
|
|
1326
|
+
|
|
1219
1327
|
/**
|
|
1220
1328
|
* SEO Score History endpoint handler.
|
|
1221
1329
|
* Returns score history + trend for a specific document.
|
|
@@ -1348,8 +1456,8 @@ declare function createGenerateHandler(pluginConfig: GeneratePluginConfig): Payl
|
|
|
1348
1456
|
|
|
1349
1457
|
/**
|
|
1350
1458
|
* Schema.org JSON-LD Auto-Generator endpoint.
|
|
1351
|
-
*
|
|
1352
|
-
*
|
|
1459
|
+
* Thin HTTP wrapper around the pure `buildJsonLd` helper (`helpers/buildSchema.ts`), so the
|
|
1460
|
+
* admin preview and the frontend `<JsonLd>` render use identical structured data.
|
|
1353
1461
|
*
|
|
1354
1462
|
* Auto-detects schema type from collection/content, with optional override.
|
|
1355
1463
|
*
|
|
@@ -1474,4 +1582,4 @@ declare function getStopWordCompounds(locale: 'fr' | 'en'): ReadonlyArray<readon
|
|
|
1474
1582
|
|
|
1475
1583
|
declare function analyzeSeo(data: SeoInput, config?: SeoConfig): SeoAnalysis;
|
|
1476
1584
|
|
|
1477
|
-
export { ACTION_VERBS, type AnalysisContext, type CheckCategory, type CheckStatus, type DashboardLocale, type DashboardTranslations, type DocSourceType, EVERGREEN_SLUGS, FLESCH_THRESHOLDS, type FetchAllDocsOptions, type FetchedDoc, GENERIC_ANCHORS, type GenerateFnArgs$1 as GenerateFnArgs, KEYWORD_DENSITY_MAX, KEYWORD_DENSITY_MIN, KEYWORD_DENSITY_WARN, LEGAL_SLUGS_MAP, MAX_RECURSION_DEPTH, META_DESC_LENGTH_MAX, META_DESC_LENGTH_MIN, MIN_WORDS_FORM, MIN_WORDS_GENERIC, MIN_WORDS_LEGAL, MIN_WORDS_POST, MIN_WORDS_THIN, type MetaFieldsConfig, POWER_WORDS, POWER_WORDS_FR, type PageType, READABILITY_THRESHOLDS, type ResolveLocaleArgs, type RuleGroup, SCORE_EXCELLENT, SCORE_GOOD, SCORE_OK, STOP_WORDS, STOP_WORD_COMPOUNDS_MAP, type SeoAnalysis, type SeoCheck, type SeoConfig, type SeoFeatures, type SeoInput, type SeoLevel, type SeoPluginConfig, type SeoThresholds, TITLE_LENGTH_MAX, TITLE_LENGTH_MIN, UTILITY_SLUGS, WARNING_MULTIPLIER, analyzeSeo, buildSeoInputFromDoc, calculateFlesch, calculateFleschFR, checkHeadingHierarchy, checkImagesInBlocks, countKeywordOccurrences, countLongSections, countSentences, countSyllablesEN, countSyllablesFR, countWords, createAiRewriteHandler, createDuplicateContentHandler, createGenerateHandler, createHistoryHandler, createKeywordResearchHandler, createPerformanceHandler, createRedirectChainsHandler, createSchemaGeneratorHandler, createSeoPerformanceCollection, createSeoScoreHistoryCollection, createSitemapAuditHandler, createTrackSeoScoreHook, detectPageType, detectPassiveVoice, extractHeadingsFromLexical, extractImagesFromLexical, extractLinkUrlsFromLexical, extractLinksFromLexical, extractListsFromLexical, extractTextFromLexical, fetchAllDocs, getActionVerbs, getActionVerbsFR, getDashboardT, getEvergreenSlugs, getGenericAnchors, getLegalSlugs, getPowerWords, getStopWordCompounds, getStopWords, getStopWordsFR, getUtilitySlugs, hasTransitionWord, isStopWordInCompoundExpression, keywordMatchesText, metaFields, normalizeForComparison, registerDashboardTranslations, resolveAnalysisLocale, seoAnalyzerPlugin, seoFields, seoAnalyzerPlugin as seoPlugin, slugifyKeyword };
|
|
1585
|
+
export { ACTION_VERBS, type AnalysisContext, type BuildJsonLdOptions, type CheckCategory, type CheckStatus, type DashboardLocale, type DashboardTranslations, type DocSourceType, EVERGREEN_SLUGS, FLESCH_THRESHOLDS, type FetchAllDocsOptions, type FetchedDoc, GENERIC_ANCHORS, type GenerateFnArgs$1 as GenerateFnArgs, KEYWORD_DENSITY_MAX, KEYWORD_DENSITY_MIN, KEYWORD_DENSITY_WARN, LEGAL_SLUGS_MAP, MAX_RECURSION_DEPTH, META_DESC_LENGTH_MAX, META_DESC_LENGTH_MIN, MIN_WORDS_FORM, MIN_WORDS_GENERIC, MIN_WORDS_LEGAL, MIN_WORDS_POST, MIN_WORDS_THIN, type MetaFieldsConfig, POWER_WORDS, POWER_WORDS_FR, type PageType, READABILITY_THRESHOLDS, type ResolveLocaleArgs, type RuleGroup, SCHEMA_TYPES, SCORE_EXCELLENT, SCORE_GOOD, SCORE_OK, STOP_WORDS, STOP_WORD_COMPOUNDS_MAP, type SchemaType, type SeoAnalysis, type SeoCheck, type SeoConfig, type SeoFeatures, type SeoInput, type SeoLevel, type SeoMetadata, type SeoMetadataOptions, type SeoPluginConfig, type SeoThresholds, TITLE_LENGTH_MAX, TITLE_LENGTH_MIN, UTILITY_SLUGS, WARNING_MULTIPLIER, analyzeSeo, buildJsonLd, buildSeoInputFromDoc, buildSeoMetadata, calculateFlesch, calculateFleschFR, checkHeadingHierarchy, checkImagesInBlocks, countKeywordOccurrences, countLongSections, countSentences, countSyllablesEN, countSyllablesFR, countWords, createAiRewriteHandler, createDuplicateContentHandler, createGenerateHandler, createHistoryHandler, createKeywordResearchHandler, createPerformanceHandler, createRedirectChainsHandler, createSchemaGeneratorHandler, createSeoPerformanceCollection, createSeoScoreHistoryCollection, createSitemapAuditHandler, createTrackSeoScoreHook, detectPageType, detectPassiveVoice, detectSchemaType, extractHeadingsFromLexical, extractImagesFromLexical, extractLinkUrlsFromLexical, extractLinksFromLexical, extractListsFromLexical, extractTextFromLexical, fetchAllDocs, getActionVerbs, getActionVerbsFR, getDashboardT, getEvergreenSlugs, getGenericAnchors, getLegalSlugs, getPowerWords, getSchemaImageUrl, getStopWordCompounds, getStopWords, getStopWordsFR, getUtilitySlugs, hasTransitionWord, isStopWordInCompoundExpression, keywordMatchesText, metaFields, normalizeForComparison, registerDashboardTranslations, renderJsonLdScript, resolveAnalysisLocale, seoAnalyzerPlugin, seoFields, seoAnalyzerPlugin as seoPlugin, slugifyKeyword };
|
package/dist/index.d.ts
CHANGED
|
@@ -177,6 +177,13 @@ interface SeoFeatures {
|
|
|
177
177
|
duplicateContent?: boolean;
|
|
178
178
|
/** Settings view (/admin/seo-config) */
|
|
179
179
|
settings?: boolean;
|
|
180
|
+
/**
|
|
181
|
+
* Proactive monitoring digest (opt-in, default false). Periodically reports score
|
|
182
|
+
* regressions, new 404s and ranking drops via webhook and/or email. Delivery + thresholds
|
|
183
|
+
* are configured with env vars (SEO_ALERT_WEBHOOK_URL, SEO_ALERT_EMAIL, SEO_ALERT_SCORE_DROP,
|
|
184
|
+
* SEO_ALERT_POSITION_DROP, SEO_ALERT_INTERVAL_HOURS). Email uses Payload's email adapter.
|
|
185
|
+
*/
|
|
186
|
+
alerts?: boolean;
|
|
180
187
|
}
|
|
181
188
|
/** Pre-computed context shared across all rule modules to avoid redundant work */
|
|
182
189
|
interface AnalysisContext {
|
|
@@ -1216,6 +1223,107 @@ declare function buildSeoInputFromDoc(doc: any, collection: string, options?: {
|
|
|
1216
1223
|
isGlobal?: boolean;
|
|
1217
1224
|
}): SeoInput;
|
|
1218
1225
|
|
|
1226
|
+
/**
|
|
1227
|
+
* Frontend metadata helper — turns a Payload document into a Next.js-compatible `Metadata`
|
|
1228
|
+
* object (title, description, canonical, hreflang, robots, Open Graph, Twitter).
|
|
1229
|
+
*
|
|
1230
|
+
* This closes the loop between analysis and production: instead of only grading the SEO in the
|
|
1231
|
+
* admin, the plugin can now PRODUCE the actual `<head>` metadata. Use it in a Next.js page:
|
|
1232
|
+
*
|
|
1233
|
+
* export async function generateMetadata({ params }) {
|
|
1234
|
+
* const doc = await payload.findByID({ collection: 'pages', id, depth: 1 })
|
|
1235
|
+
* return buildSeoMetadata(doc, { collection: 'pages', siteUrl, siteName: 'My Site' })
|
|
1236
|
+
* }
|
|
1237
|
+
*
|
|
1238
|
+
* The return value is a structural subset of Next's `Metadata` (assignable to it) — kept
|
|
1239
|
+
* dependency-free so the plugin doesn't hard-depend on `next`.
|
|
1240
|
+
*/
|
|
1241
|
+
interface SeoMetadataOptions {
|
|
1242
|
+
/** Collection slug — used to pick the Open Graph type (posts → 'article') */
|
|
1243
|
+
collection?: string;
|
|
1244
|
+
/** Absolute site URL (defaults to NEXT_PUBLIC_SERVER_URL / PAYLOAD_PUBLIC_SERVER_URL) */
|
|
1245
|
+
siteUrl?: string;
|
|
1246
|
+
/** Site name for Open Graph */
|
|
1247
|
+
siteName?: string;
|
|
1248
|
+
/** Template for the title, e.g. "%s | My Site" (%s = the page title) */
|
|
1249
|
+
titleTemplate?: string;
|
|
1250
|
+
/** Fallback OG/Twitter image (absolute, or site-relative) when the document has none */
|
|
1251
|
+
defaultImage?: string;
|
|
1252
|
+
/** Open Graph locale, e.g. 'fr_FR' */
|
|
1253
|
+
locale?: string;
|
|
1254
|
+
}
|
|
1255
|
+
interface SeoMetadata {
|
|
1256
|
+
title?: string;
|
|
1257
|
+
description?: string;
|
|
1258
|
+
alternates?: {
|
|
1259
|
+
canonical?: string;
|
|
1260
|
+
languages?: Record<string, string>;
|
|
1261
|
+
};
|
|
1262
|
+
robots?: {
|
|
1263
|
+
index: boolean;
|
|
1264
|
+
follow: boolean;
|
|
1265
|
+
};
|
|
1266
|
+
openGraph?: {
|
|
1267
|
+
title?: string;
|
|
1268
|
+
description?: string;
|
|
1269
|
+
url?: string;
|
|
1270
|
+
siteName?: string;
|
|
1271
|
+
type?: string;
|
|
1272
|
+
locale?: string;
|
|
1273
|
+
images?: Array<{
|
|
1274
|
+
url: string;
|
|
1275
|
+
}>;
|
|
1276
|
+
};
|
|
1277
|
+
twitter?: {
|
|
1278
|
+
card?: string;
|
|
1279
|
+
title?: string;
|
|
1280
|
+
description?: string;
|
|
1281
|
+
images?: string[];
|
|
1282
|
+
};
|
|
1283
|
+
}
|
|
1284
|
+
/**
|
|
1285
|
+
* Build a Next.js-compatible `Metadata` object from a Payload document.
|
|
1286
|
+
* Pure — safe to call inside `generateMetadata()` (server side).
|
|
1287
|
+
*/
|
|
1288
|
+
declare function buildSeoMetadata(doc: Record<string, unknown>, options?: SeoMetadataOptions): SeoMetadata;
|
|
1289
|
+
|
|
1290
|
+
/**
|
|
1291
|
+
* Schema.org / JSON-LD generation — pure, framework-agnostic builders.
|
|
1292
|
+
*
|
|
1293
|
+
* Single source of truth shared by the admin endpoint (`endpoints/schemaGenerator.ts`) and the
|
|
1294
|
+
* frontend render helper (`buildJsonLd` + the `<JsonLd>` component), so the structured data the
|
|
1295
|
+
* dashboard previews is byte-for-byte what the site renders.
|
|
1296
|
+
*/
|
|
1297
|
+
declare const SCHEMA_TYPES: readonly ["Article", "LocalBusiness", "BreadcrumbList", "FAQPage", "Product", "Organization", "Person", "Event", "Recipe", "Video"];
|
|
1298
|
+
type SchemaType = (typeof SCHEMA_TYPES)[number];
|
|
1299
|
+
/** Resolve an absolute image URL from a populated meta.image or hero media object. */
|
|
1300
|
+
declare function getSchemaImageUrl(metaImage: Record<string, unknown> | undefined, heroMedia: Record<string, unknown> | undefined, siteUrl: string): string | undefined;
|
|
1301
|
+
/** Detect schema type from collection slug and document content. */
|
|
1302
|
+
declare function detectSchemaType(collection: string, doc: Record<string, unknown>): SchemaType;
|
|
1303
|
+
interface BuildJsonLdOptions {
|
|
1304
|
+
/** Collection slug — used to auto-detect the schema type when `type` is omitted */
|
|
1305
|
+
collection?: string;
|
|
1306
|
+
/** Absolute site URL (defaults to NEXT_PUBLIC_SERVER_URL / PAYLOAD_PUBLIC_SERVER_URL) */
|
|
1307
|
+
siteUrl?: string;
|
|
1308
|
+
/** Force a specific schema type instead of auto-detecting */
|
|
1309
|
+
type?: SchemaType;
|
|
1310
|
+
}
|
|
1311
|
+
/**
|
|
1312
|
+
* Build a clean JSON-LD object from a Payload document. Pure — safe to call on the server
|
|
1313
|
+
* during rendering (e.g. in a Next.js Server Component) or from the admin endpoint.
|
|
1314
|
+
*/
|
|
1315
|
+
declare function buildJsonLd(doc: Record<string, unknown>, options?: BuildJsonLdOptions): {
|
|
1316
|
+
type: SchemaType;
|
|
1317
|
+
jsonLd: Record<string, unknown>;
|
|
1318
|
+
};
|
|
1319
|
+
/**
|
|
1320
|
+
* Convenience: build the JSON-LD and return a ready-to-inject `<script>` string.
|
|
1321
|
+
* In React/Next you can instead render the object directly:
|
|
1322
|
+
* <script type="application/ld+json"
|
|
1323
|
+
* dangerouslySetInnerHTML={{ __html: JSON.stringify(buildJsonLd(doc, opts).jsonLd) }} />
|
|
1324
|
+
*/
|
|
1325
|
+
declare function renderJsonLdScript(doc: Record<string, unknown>, options?: BuildJsonLdOptions): string;
|
|
1326
|
+
|
|
1219
1327
|
/**
|
|
1220
1328
|
* SEO Score History endpoint handler.
|
|
1221
1329
|
* Returns score history + trend for a specific document.
|
|
@@ -1348,8 +1456,8 @@ declare function createGenerateHandler(pluginConfig: GeneratePluginConfig): Payl
|
|
|
1348
1456
|
|
|
1349
1457
|
/**
|
|
1350
1458
|
* Schema.org JSON-LD Auto-Generator endpoint.
|
|
1351
|
-
*
|
|
1352
|
-
*
|
|
1459
|
+
* Thin HTTP wrapper around the pure `buildJsonLd` helper (`helpers/buildSchema.ts`), so the
|
|
1460
|
+
* admin preview and the frontend `<JsonLd>` render use identical structured data.
|
|
1353
1461
|
*
|
|
1354
1462
|
* Auto-detects schema type from collection/content, with optional override.
|
|
1355
1463
|
*
|
|
@@ -1474,4 +1582,4 @@ declare function getStopWordCompounds(locale: 'fr' | 'en'): ReadonlyArray<readon
|
|
|
1474
1582
|
|
|
1475
1583
|
declare function analyzeSeo(data: SeoInput, config?: SeoConfig): SeoAnalysis;
|
|
1476
1584
|
|
|
1477
|
-
export { ACTION_VERBS, type AnalysisContext, type CheckCategory, type CheckStatus, type DashboardLocale, type DashboardTranslations, type DocSourceType, EVERGREEN_SLUGS, FLESCH_THRESHOLDS, type FetchAllDocsOptions, type FetchedDoc, GENERIC_ANCHORS, type GenerateFnArgs$1 as GenerateFnArgs, KEYWORD_DENSITY_MAX, KEYWORD_DENSITY_MIN, KEYWORD_DENSITY_WARN, LEGAL_SLUGS_MAP, MAX_RECURSION_DEPTH, META_DESC_LENGTH_MAX, META_DESC_LENGTH_MIN, MIN_WORDS_FORM, MIN_WORDS_GENERIC, MIN_WORDS_LEGAL, MIN_WORDS_POST, MIN_WORDS_THIN, type MetaFieldsConfig, POWER_WORDS, POWER_WORDS_FR, type PageType, READABILITY_THRESHOLDS, type ResolveLocaleArgs, type RuleGroup, SCORE_EXCELLENT, SCORE_GOOD, SCORE_OK, STOP_WORDS, STOP_WORD_COMPOUNDS_MAP, type SeoAnalysis, type SeoCheck, type SeoConfig, type SeoFeatures, type SeoInput, type SeoLevel, type SeoPluginConfig, type SeoThresholds, TITLE_LENGTH_MAX, TITLE_LENGTH_MIN, UTILITY_SLUGS, WARNING_MULTIPLIER, analyzeSeo, buildSeoInputFromDoc, calculateFlesch, calculateFleschFR, checkHeadingHierarchy, checkImagesInBlocks, countKeywordOccurrences, countLongSections, countSentences, countSyllablesEN, countSyllablesFR, countWords, createAiRewriteHandler, createDuplicateContentHandler, createGenerateHandler, createHistoryHandler, createKeywordResearchHandler, createPerformanceHandler, createRedirectChainsHandler, createSchemaGeneratorHandler, createSeoPerformanceCollection, createSeoScoreHistoryCollection, createSitemapAuditHandler, createTrackSeoScoreHook, detectPageType, detectPassiveVoice, extractHeadingsFromLexical, extractImagesFromLexical, extractLinkUrlsFromLexical, extractLinksFromLexical, extractListsFromLexical, extractTextFromLexical, fetchAllDocs, getActionVerbs, getActionVerbsFR, getDashboardT, getEvergreenSlugs, getGenericAnchors, getLegalSlugs, getPowerWords, getStopWordCompounds, getStopWords, getStopWordsFR, getUtilitySlugs, hasTransitionWord, isStopWordInCompoundExpression, keywordMatchesText, metaFields, normalizeForComparison, registerDashboardTranslations, resolveAnalysisLocale, seoAnalyzerPlugin, seoFields, seoAnalyzerPlugin as seoPlugin, slugifyKeyword };
|
|
1585
|
+
export { ACTION_VERBS, type AnalysisContext, type BuildJsonLdOptions, type CheckCategory, type CheckStatus, type DashboardLocale, type DashboardTranslations, type DocSourceType, EVERGREEN_SLUGS, FLESCH_THRESHOLDS, type FetchAllDocsOptions, type FetchedDoc, GENERIC_ANCHORS, type GenerateFnArgs$1 as GenerateFnArgs, KEYWORD_DENSITY_MAX, KEYWORD_DENSITY_MIN, KEYWORD_DENSITY_WARN, LEGAL_SLUGS_MAP, MAX_RECURSION_DEPTH, META_DESC_LENGTH_MAX, META_DESC_LENGTH_MIN, MIN_WORDS_FORM, MIN_WORDS_GENERIC, MIN_WORDS_LEGAL, MIN_WORDS_POST, MIN_WORDS_THIN, type MetaFieldsConfig, POWER_WORDS, POWER_WORDS_FR, type PageType, READABILITY_THRESHOLDS, type ResolveLocaleArgs, type RuleGroup, SCHEMA_TYPES, SCORE_EXCELLENT, SCORE_GOOD, SCORE_OK, STOP_WORDS, STOP_WORD_COMPOUNDS_MAP, type SchemaType, type SeoAnalysis, type SeoCheck, type SeoConfig, type SeoFeatures, type SeoInput, type SeoLevel, type SeoMetadata, type SeoMetadataOptions, type SeoPluginConfig, type SeoThresholds, TITLE_LENGTH_MAX, TITLE_LENGTH_MIN, UTILITY_SLUGS, WARNING_MULTIPLIER, analyzeSeo, buildJsonLd, buildSeoInputFromDoc, buildSeoMetadata, calculateFlesch, calculateFleschFR, checkHeadingHierarchy, checkImagesInBlocks, countKeywordOccurrences, countLongSections, countSentences, countSyllablesEN, countSyllablesFR, countWords, createAiRewriteHandler, createDuplicateContentHandler, createGenerateHandler, createHistoryHandler, createKeywordResearchHandler, createPerformanceHandler, createRedirectChainsHandler, createSchemaGeneratorHandler, createSeoPerformanceCollection, createSeoScoreHistoryCollection, createSitemapAuditHandler, createTrackSeoScoreHook, detectPageType, detectPassiveVoice, detectSchemaType, extractHeadingsFromLexical, extractImagesFromLexical, extractLinkUrlsFromLexical, extractLinksFromLexical, extractListsFromLexical, extractTextFromLexical, fetchAllDocs, getActionVerbs, getActionVerbsFR, getDashboardT, getEvergreenSlugs, getGenericAnchors, getLegalSlugs, getPowerWords, getSchemaImageUrl, getStopWordCompounds, getStopWords, getStopWordsFR, getUtilitySlugs, hasTransitionWord, isStopWordInCompoundExpression, keywordMatchesText, metaFields, normalizeForComparison, registerDashboardTranslations, renderJsonLdScript, resolveAnalysisLocale, seoAnalyzerPlugin, seoFields, seoAnalyzerPlugin as seoPlugin, slugifyKeyword };
|