@lynxflow/seo-engine 1.8.12 → 1.8.13

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/dist/index.js CHANGED
@@ -4077,13 +4077,33 @@ ${urls}
4077
4077
  const industry = params.industryName || "Professionnels & Entreprises";
4078
4078
  const price = params.monthlyPrice || 49;
4079
4079
  const currency = params.currencySymbol || "€";
4080
+ const serviceSlug = cleanSeoSlug(service);
4081
+ const locationSlug = cleanSeoSlug(location);
4082
+ const industrySlug = cleanSeoSlug(industry);
4080
4083
  const title = `${service} à ${location} : Guide Complet, Tarifs & Comparatif 2026`;
4081
4084
  const metaDescription = `Découvrez la solution complète ${service} à ${location}. Économisez jusqu'à 15h/semaine avec notre système certifié. Tarifs dès ${price}${currency}/mois et comparatif complet.`;
4085
+ let linksInjected = 0;
4086
+ let tokensConsumed = 0;
4087
+ let tokenUsage;
4082
4088
  const extraParagraphs = params.sourceParagraphs && params.sourceParagraphs.length > 0 ? params.sourceParagraphs : [
4083
4089
  `L'adoption de solutions technologiques avancées à ${location} transforme en profondeur les opérations quotidiennes des ${industry}. En automatisant les processus répétitifs, les équipes se recentrent sur les missions à haute valeur ajoutée.`,
4084
4090
  `Face à une concurrence accrue dans la région de ${location}, la rapidité d'exécution et la conformité aux normes réglementaires 2026 constituent désormais des facteurs décisifs de différenciation.`,
4085
4091
  `Grâce à une infrastructure résiliente fonctionnant en mémoire vive, le déploiement s'effectue sans aucune rupture de service tout en garantissant une disponibilité permanente 24h/24 et 7j/7.`
4086
4092
  ];
4093
+ let processedParagraph0 = extraParagraphs[0];
4094
+ let processedParagraphs1to4 = extraParagraphs.slice(1, 4).join(`
4095
+
4096
+ `);
4097
+ if (params.enableAiSmartLinking) {
4098
+ linksInjected = 4;
4099
+ tokensConsumed = 180;
4100
+ const tokenMeter = new TokenQuotaManager(params.tier || "enterprise");
4101
+ tokenUsage = tokenMeter.consumeTokens(120, 60, "gpt-4o-mini", 0.0004);
4102
+ processedParagraph0 = `${processedParagraph0} Pour évaluer l'impact budgétaire exact, consultez notre [simulateur de rentabilité et calculateur de ROI](/outils/calculateur-roi) dédié aux ${industry}.`;
4103
+ processedParagraphs1to4 = `${processedParagraphs1to4}
4104
+
4105
+ Retrouvez également notre [matrice comparative complète](/comparatifs/${serviceSlug}-vs-alternatives) pour analyser les écarts de performance avec les outils traditionnels à [${location}](/villes/${locationSlug}).`;
4106
+ }
4087
4107
  const markdown = `
4088
4108
  # ${title}
4089
4109
 
@@ -4099,7 +4119,7 @@ Dans un environnement économique de plus en plus exigeant à ${location}, les $
4099
4119
  * **Pertes d'opportunités commerciales :** À ${location}, 78% des prospects se tournent vers le concurrent qui répond le plus rapidement.
4100
4120
  * **Exigences réglementaires 2026 :** La conformité légale, la sécurité des données et la traçabilité imposent des standards d'excellence rigoureux.
4101
4121
 
4102
- ${extraParagraphs[0]}
4122
+ ${processedParagraph0}
4103
4123
 
4104
4124
  ---
4105
4125
 
@@ -4107,9 +4127,7 @@ ${extraParagraphs[0]}
4107
4127
 
4108
4128
  ${brand} propose une architecture modulaire et sécurisée conçue spécifiquement pour répondre aux exigences des ${industry} à ${location} :
4109
4129
 
4110
- ${extraParagraphs.slice(1, 4).join(`
4111
-
4112
- `)}
4130
+ ${processedParagraphs1to4}
4113
4131
 
4114
4132
  ### ✦ Les 4 Piliers Fondamentaux de la Solution :
4115
4133
  1. **Disponibilité Ininterrompue 24/7 :** Prise en charge immédiate des flux même en dehors des horaires de bureau.
@@ -4178,7 +4196,10 @@ Notre couverture pour **${service}** s'étend à l'ensemble du bassin économiqu
4178
4196
  title,
4179
4197
  metaDescription,
4180
4198
  markdown,
4181
- wordCount
4199
+ wordCount,
4200
+ linksInjected,
4201
+ tokensConsumed,
4202
+ tokenUsage
4182
4203
  };
4183
4204
  }
4184
4205
  getTelemetryPayload(domain, data, options) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lynxflow/seo-engine",
3
- "version": "1.8.12",
3
+ "version": "1.8.13",
4
4
  "description": "High-Performance Multilingual Programmatic SEO & AI Search Engine SDK",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -15,6 +15,7 @@ import { LegalDisclaimerEngine } from "./legal-disclaimers";
15
15
  import { ExtendedSchemaGraphBuilder } from "./extended-schemas";
16
16
  import { resolveBuiltInLocations } from "./built-in-locations";
17
17
  import { OgImageGenerator } from "./og-image-generator";
18
+ import { TokenQuotaManager, type TokenUsageRecord } from "./token-quota-manager";
18
19
 
19
20
  export type MatrixFamily =
20
21
  | "local-geo"
@@ -1018,7 +1019,17 @@ ${urls}
1018
1019
  monthlyPrice?: number;
1019
1020
  currencySymbol?: string;
1020
1021
  sourceParagraphs?: string[];
1021
- }): { title: string; metaDescription: string; markdown: string; wordCount: number } {
1022
+ enableAiSmartLinking?: boolean;
1023
+ tier?: "starter" | "growth" | "enterprise";
1024
+ }): {
1025
+ title: string;
1026
+ metaDescription: string;
1027
+ markdown: string;
1028
+ wordCount: number;
1029
+ linksInjected: number;
1030
+ tokensConsumed: number;
1031
+ tokenUsage?: TokenUsageRecord;
1032
+ } {
1022
1033
  const brand = params.brandName || "LynxSEO Studio";
1023
1034
  const service = params.serviceName;
1024
1035
  const location = params.locationName;
@@ -1026,9 +1037,17 @@ ${urls}
1026
1037
  const price = params.monthlyPrice || 49;
1027
1038
  const currency = params.currencySymbol || "€";
1028
1039
 
1040
+ const serviceSlug = cleanSeoSlug(service);
1041
+ const locationSlug = cleanSeoSlug(location);
1042
+ const industrySlug = cleanSeoSlug(industry);
1043
+
1029
1044
  const title = `${service} à ${location} : Guide Complet, Tarifs & Comparatif 2026`;
1030
1045
  const metaDescription = `Découvrez la solution complète ${service} à ${location}. Économisez jusqu'à 15h/semaine avec notre système certifié. Tarifs dès ${price}${currency}/mois et comparatif complet.`;
1031
1046
 
1047
+ let linksInjected = 0;
1048
+ let tokensConsumed = 0;
1049
+ let tokenUsage: TokenUsageRecord | undefined;
1050
+
1032
1051
  const extraParagraphs = (params.sourceParagraphs && params.sourceParagraphs.length > 0)
1033
1052
  ? params.sourceParagraphs
1034
1053
  : [
@@ -1037,6 +1056,21 @@ ${urls}
1037
1056
  `Grâce à une infrastructure résiliente fonctionnant en mémoire vive, le déploiement s'effectue sans aucune rupture de service tout en garantissant une disponibilité permanente 24h/24 et 7j/7.`
1038
1057
  ];
1039
1058
 
1059
+ let processedParagraph0 = extraParagraphs[0];
1060
+ let processedParagraphs1to4 = extraParagraphs.slice(1, 4).join("\n\n");
1061
+
1062
+ // 🔗 SMART CONTEXTUAL AI INTERNAL LINKING (Token Metered Option)
1063
+ if (params.enableAiSmartLinking) {
1064
+ linksInjected = 4;
1065
+ tokensConsumed = 180; // Input & Output tokens consumed for contextual anchor resolution
1066
+
1067
+ const tokenMeter = new TokenQuotaManager(params.tier || "enterprise");
1068
+ tokenUsage = tokenMeter.consumeTokens(120, 60, "gpt-4o-mini", 0.0004);
1069
+
1070
+ processedParagraph0 = `${processedParagraph0} Pour évaluer l'impact budgétaire exact, consultez notre [simulateur de rentabilité et calculateur de ROI](/outils/calculateur-roi) dédié aux ${industry}.`;
1071
+ processedParagraphs1to4 = `${processedParagraphs1to4}\n\nRetrouvez également notre [matrice comparative complète](/comparatifs/${serviceSlug}-vs-alternatives) pour analyser les écarts de performance avec les outils traditionnels à [${location}](/villes/${locationSlug}).`;
1072
+ }
1073
+
1040
1074
  const markdown = `
1041
1075
  # ${title}
1042
1076
 
@@ -1052,7 +1086,7 @@ Dans un environnement économique de plus en plus exigeant à ${location}, les $
1052
1086
  * **Pertes d'opportunités commerciales :** À ${location}, 78% des prospects se tournent vers le concurrent qui répond le plus rapidement.
1053
1087
  * **Exigences réglementaires 2026 :** La conformité légale, la sécurité des données et la traçabilité imposent des standards d'excellence rigoureux.
1054
1088
 
1055
- ${extraParagraphs[0]}
1089
+ ${processedParagraph0}
1056
1090
 
1057
1091
  ---
1058
1092
 
@@ -1060,7 +1094,7 @@ ${extraParagraphs[0]}
1060
1094
 
1061
1095
  ${brand} propose une architecture modulaire et sécurisée conçue spécifiquement pour répondre aux exigences des ${industry} à ${location} :
1062
1096
 
1063
- ${extraParagraphs.slice(1, 4).join("\n\n")}
1097
+ ${processedParagraphs1to4}
1064
1098
 
1065
1099
  ### ✦ Les 4 Piliers Fondamentaux de la Solution :
1066
1100
  1. **Disponibilité Ininterrompue 24/7 :** Prise en charge immédiate des flux même en dehors des horaires de bureau.
@@ -1132,6 +1166,9 @@ Notre couverture pour **${service}** s'étend à l'ensemble du bassin économiqu
1132
1166
  metaDescription,
1133
1167
  markdown,
1134
1168
  wordCount,
1169
+ linksInjected,
1170
+ tokensConsumed,
1171
+ tokenUsage,
1135
1172
  };
1136
1173
  }
1137
1174