@intlayer/engine 9.5.9 → 9.5.11

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.
Files changed (303) hide show
  1. package/dist/cjs/cli.cjs +7 -0
  2. package/dist/cjs/docReview/alignBlocks.cjs +53 -36
  3. package/dist/cjs/docReview/alignBlocks.cjs.map +1 -1
  4. package/dist/cjs/docReview/rebuildDocument.cjs +3 -1
  5. package/dist/cjs/docReview/rebuildDocument.cjs.map +1 -1
  6. package/dist/cjs/docReview/reviewReport.cjs.map +1 -1
  7. package/dist/cjs/docReview/segmentDocument.cjs +8 -5
  8. package/dist/cjs/docReview/segmentDocument.cjs.map +1 -1
  9. package/dist/cjs/init/cms.cjs +35 -0
  10. package/dist/cjs/init/cms.cjs.map +1 -1
  11. package/dist/cjs/init/documentationRouter.cjs +141 -0
  12. package/dist/cjs/init/documentationRouter.cjs.map +1 -0
  13. package/dist/cjs/init/frameworkSetup/backend/index.cjs +138 -0
  14. package/dist/cjs/init/frameworkSetup/backend/index.cjs.map +1 -0
  15. package/dist/cjs/init/frameworkSetup/backend/transforms.cjs +223 -0
  16. package/dist/cjs/init/frameworkSetup/backend/transforms.cjs.map +1 -0
  17. package/dist/cjs/init/frameworkSetup/index.cjs +9 -3
  18. package/dist/cjs/init/frameworkSetup/index.cjs.map +1 -1
  19. package/dist/cjs/init/frameworkSetup/localeRouting.cjs +13 -0
  20. package/dist/cjs/init/frameworkSetup/localeRouting.cjs.map +1 -0
  21. package/dist/cjs/init/frameworkSetup/nextAppRouter/index.cjs +34 -7
  22. package/dist/cjs/init/frameworkSetup/nextAppRouter/index.cjs.map +1 -1
  23. package/dist/cjs/init/frameworkSetup/nextAppRouter/templates.cjs +56 -0
  24. package/dist/cjs/init/frameworkSetup/nextAppRouter/templates.cjs.map +1 -1
  25. package/dist/cjs/init/frameworkSetup/nextAppRouter/transforms.cjs +6 -3
  26. package/dist/cjs/init/frameworkSetup/nextAppRouter/transforms.cjs.map +1 -1
  27. package/dist/cjs/init/frameworkSetup/tanstackStart/index.cjs +32 -3
  28. package/dist/cjs/init/frameworkSetup/tanstackStart/index.cjs.map +1 -1
  29. package/dist/cjs/init/frameworkSetup/tanstackStart/templates.cjs +58 -0
  30. package/dist/cjs/init/frameworkSetup/tanstackStart/templates.cjs.map +1 -1
  31. package/dist/cjs/init/frameworkSetup/tanstackStart/transforms.cjs +94 -14
  32. package/dist/cjs/init/frameworkSetup/tanstackStart/transforms.cjs.map +1 -1
  33. package/dist/cjs/init/index.cjs +46 -159
  34. package/dist/cjs/init/index.cjs.map +1 -1
  35. package/dist/cjs/init/utils/configManipulation.cjs +39 -0
  36. package/dist/cjs/init/utils/configManipulation.cjs.map +1 -1
  37. package/dist/cjs/init/utils/index.cjs +10 -0
  38. package/dist/cjs/init/utils/lintConfig.cjs +52 -0
  39. package/dist/cjs/init/utils/lintConfig.cjs.map +1 -0
  40. package/dist/cjs/init/utils/packageManager.cjs +62 -13
  41. package/dist/cjs/init/utils/packageManager.cjs.map +1 -1
  42. package/dist/cjs/init/utils/urlRoutingFramework.cjs +41 -0
  43. package/dist/cjs/init/utils/urlRoutingFramework.cjs.map +1 -0
  44. package/dist/cjs/initConfig/index.cjs +4 -1
  45. package/dist/cjs/initConfig/index.cjs.map +1 -1
  46. package/dist/cjs/installMCP/installMCP.cjs +1 -1
  47. package/dist/cjs/installMCP/installMCP.cjs.map +1 -1
  48. package/dist/cjs/loadDictionaries/loadLocalDictionaries.cjs +3 -1
  49. package/dist/cjs/loadDictionaries/loadLocalDictionaries.cjs.map +1 -1
  50. package/dist/cjs/loadDictionaries/loadRemoteDictionaries.cjs +1 -1
  51. package/dist/cjs/loadDictionaries/loadRemoteDictionaries.cjs.map +1 -1
  52. package/dist/cjs/loadDictionaries/log.cjs +1 -1
  53. package/dist/cjs/loadDictionaries/log.cjs.map +1 -1
  54. package/dist/cjs/loadDictionaries/logTypeScriptErrors.cjs +111 -43
  55. package/dist/cjs/loadDictionaries/logTypeScriptErrors.cjs.map +1 -1
  56. package/dist/cjs/scan/analyzeBundleContent.cjs +26 -12
  57. package/dist/cjs/scan/analyzeBundleContent.cjs.map +1 -1
  58. package/dist/cjs/scan/calculateScore.cjs +4 -1
  59. package/dist/cjs/scan/calculateScore.cjs.map +1 -1
  60. package/dist/cjs/scan/checks.cjs +394 -221
  61. package/dist/cjs/scan/checks.cjs.map +1 -1
  62. package/dist/cjs/scan/detection/checkDetails.cjs +56 -0
  63. package/dist/cjs/scan/detection/checkDetails.cjs.map +1 -0
  64. package/dist/cjs/scan/detection/classifyInternalLinks.cjs +47 -0
  65. package/dist/cjs/scan/detection/classifyInternalLinks.cjs.map +1 -0
  66. package/dist/cjs/scan/detection/detectRoutingStrategy.cjs +143 -0
  67. package/dist/cjs/scan/detection/detectRoutingStrategy.cjs.map +1 -0
  68. package/dist/cjs/scan/detection/detectTechnologies.cjs +89 -0
  69. package/dist/cjs/scan/detection/detectTechnologies.cjs.map +1 -0
  70. package/dist/cjs/scan/detection/index.cjs +36 -0
  71. package/dist/cjs/scan/detection/localeCode.cjs +118 -0
  72. package/dist/cjs/scan/detection/localeCode.cjs.map +1 -0
  73. package/dist/cjs/scan/detection/localizedPages.cjs +48 -0
  74. package/dist/cjs/scan/detection/localizedPages.cjs.map +1 -0
  75. package/dist/cjs/scan/detection/technologySignatures.cjs +564 -0
  76. package/dist/cjs/scan/detection/technologySignatures.cjs.map +1 -0
  77. package/dist/cjs/scan/detection/url.cjs +53 -0
  78. package/dist/cjs/scan/detection/url.cjs.map +1 -0
  79. package/dist/cjs/scan/fetchText.cjs +56 -0
  80. package/dist/cjs/scan/fetchText.cjs.map +1 -0
  81. package/dist/cjs/scan/index.cjs +59 -3
  82. package/dist/cjs/scan/parseHtml.cjs +55 -10
  83. package/dist/cjs/scan/parseHtml.cjs.map +1 -1
  84. package/dist/cjs/scan/robots.cjs +65 -0
  85. package/dist/cjs/scan/robots.cjs.map +1 -0
  86. package/dist/cjs/scan/runScanChecks.cjs +89 -0
  87. package/dist/cjs/scan/runScanChecks.cjs.map +1 -0
  88. package/dist/cjs/scan/scanWebsite.cjs +58 -52
  89. package/dist/cjs/scan/scanWebsite.cjs.map +1 -1
  90. package/dist/cjs/scan/sitemap.cjs +109 -0
  91. package/dist/cjs/scan/sitemap.cjs.map +1 -0
  92. package/dist/cjs/utils/chunkJSON.cjs +24 -9
  93. package/dist/cjs/utils/chunkJSON.cjs.map +1 -1
  94. package/dist/cjs/utils/getChunk.cjs +2 -2
  95. package/dist/cjs/utils/getChunk.cjs.map +1 -1
  96. package/dist/cjs/utils/runParallel/index.cjs +1 -1
  97. package/dist/cjs/utils/runParallel/index.cjs.map +1 -1
  98. package/dist/cjs/utils/runParallel/pidTree.cjs +23 -11
  99. package/dist/cjs/utils/runParallel/pidTree.cjs.map +1 -1
  100. package/dist/cjs/utils/runParallel/ps.cjs +8 -3
  101. package/dist/cjs/utils/runParallel/ps.cjs.map +1 -1
  102. package/dist/cjs/utils/runParallel/runTask.cjs +2 -1
  103. package/dist/cjs/utils/runParallel/runTask.cjs.map +1 -1
  104. package/dist/cjs/utils/runParallel/wmic.cjs +8 -3
  105. package/dist/cjs/utils/runParallel/wmic.cjs.map +1 -1
  106. package/dist/cjs/writeContentDeclaration/detectExportedComponentName.cjs +7 -4
  107. package/dist/cjs/writeContentDeclaration/detectExportedComponentName.cjs.map +1 -1
  108. package/dist/cjs/writeContentDeclaration/writeMarkdownFile.cjs +2 -2
  109. package/dist/cjs/writeContentDeclaration/writeMarkdownFile.cjs.map +1 -1
  110. package/dist/esm/cli.mjs +5 -3
  111. package/dist/esm/docReview/alignBlocks.mjs +53 -36
  112. package/dist/esm/docReview/alignBlocks.mjs.map +1 -1
  113. package/dist/esm/docReview/rebuildDocument.mjs +3 -1
  114. package/dist/esm/docReview/rebuildDocument.mjs.map +1 -1
  115. package/dist/esm/docReview/reviewReport.mjs.map +1 -1
  116. package/dist/esm/docReview/segmentDocument.mjs +8 -5
  117. package/dist/esm/docReview/segmentDocument.mjs.map +1 -1
  118. package/dist/esm/init/cms.mjs +35 -2
  119. package/dist/esm/init/cms.mjs.map +1 -1
  120. package/dist/esm/init/documentationRouter.mjs +139 -0
  121. package/dist/esm/init/documentationRouter.mjs.map +1 -0
  122. package/dist/esm/init/frameworkSetup/backend/index.mjs +130 -0
  123. package/dist/esm/init/frameworkSetup/backend/index.mjs.map +1 -0
  124. package/dist/esm/init/frameworkSetup/backend/transforms.mjs +216 -0
  125. package/dist/esm/init/frameworkSetup/backend/transforms.mjs.map +1 -0
  126. package/dist/esm/init/frameworkSetup/index.mjs +9 -3
  127. package/dist/esm/init/frameworkSetup/index.mjs.map +1 -1
  128. package/dist/esm/init/frameworkSetup/localeRouting.mjs +12 -0
  129. package/dist/esm/init/frameworkSetup/localeRouting.mjs.map +1 -0
  130. package/dist/esm/init/frameworkSetup/nextAppRouter/index.mjs +36 -9
  131. package/dist/esm/init/frameworkSetup/nextAppRouter/index.mjs.map +1 -1
  132. package/dist/esm/init/frameworkSetup/nextAppRouter/templates.mjs +54 -1
  133. package/dist/esm/init/frameworkSetup/nextAppRouter/templates.mjs.map +1 -1
  134. package/dist/esm/init/frameworkSetup/nextAppRouter/transforms.mjs +6 -3
  135. package/dist/esm/init/frameworkSetup/nextAppRouter/transforms.mjs.map +1 -1
  136. package/dist/esm/init/frameworkSetup/tanstackStart/index.mjs +35 -6
  137. package/dist/esm/init/frameworkSetup/tanstackStart/index.mjs.map +1 -1
  138. package/dist/esm/init/frameworkSetup/tanstackStart/templates.mjs +56 -1
  139. package/dist/esm/init/frameworkSetup/tanstackStart/templates.mjs.map +1 -1
  140. package/dist/esm/init/frameworkSetup/tanstackStart/transforms.mjs +94 -15
  141. package/dist/esm/init/frameworkSetup/tanstackStart/transforms.mjs.map +1 -1
  142. package/dist/esm/init/index.mjs +42 -158
  143. package/dist/esm/init/index.mjs.map +1 -1
  144. package/dist/esm/init/utils/configManipulation.mjs +38 -1
  145. package/dist/esm/init/utils/configManipulation.mjs.map +1 -1
  146. package/dist/esm/init/utils/index.mjs +5 -3
  147. package/dist/esm/init/utils/lintConfig.mjs +50 -0
  148. package/dist/esm/init/utils/lintConfig.mjs.map +1 -0
  149. package/dist/esm/init/utils/packageManager.mjs +60 -14
  150. package/dist/esm/init/utils/packageManager.mjs.map +1 -1
  151. package/dist/esm/init/utils/urlRoutingFramework.mjs +40 -0
  152. package/dist/esm/init/utils/urlRoutingFramework.mjs.map +1 -0
  153. package/dist/esm/initConfig/index.mjs +4 -1
  154. package/dist/esm/initConfig/index.mjs.map +1 -1
  155. package/dist/esm/installMCP/installMCP.mjs +1 -1
  156. package/dist/esm/installMCP/installMCP.mjs.map +1 -1
  157. package/dist/esm/loadDictionaries/loadLocalDictionaries.mjs +3 -1
  158. package/dist/esm/loadDictionaries/loadLocalDictionaries.mjs.map +1 -1
  159. package/dist/esm/loadDictionaries/loadRemoteDictionaries.mjs +1 -1
  160. package/dist/esm/loadDictionaries/loadRemoteDictionaries.mjs.map +1 -1
  161. package/dist/esm/loadDictionaries/log.mjs +1 -1
  162. package/dist/esm/loadDictionaries/log.mjs.map +1 -1
  163. package/dist/esm/loadDictionaries/logTypeScriptErrors.mjs +112 -44
  164. package/dist/esm/loadDictionaries/logTypeScriptErrors.mjs.map +1 -1
  165. package/dist/esm/scan/analyzeBundleContent.mjs +26 -12
  166. package/dist/esm/scan/analyzeBundleContent.mjs.map +1 -1
  167. package/dist/esm/scan/calculateScore.mjs +4 -1
  168. package/dist/esm/scan/calculateScore.mjs.map +1 -1
  169. package/dist/esm/scan/checks.mjs +387 -220
  170. package/dist/esm/scan/checks.mjs.map +1 -1
  171. package/dist/esm/scan/detection/checkDetails.mjs +54 -0
  172. package/dist/esm/scan/detection/checkDetails.mjs.map +1 -0
  173. package/dist/esm/scan/detection/classifyInternalLinks.mjs +46 -0
  174. package/dist/esm/scan/detection/classifyInternalLinks.mjs.map +1 -0
  175. package/dist/esm/scan/detection/detectRoutingStrategy.mjs +141 -0
  176. package/dist/esm/scan/detection/detectRoutingStrategy.mjs.map +1 -0
  177. package/dist/esm/scan/detection/detectTechnologies.mjs +87 -0
  178. package/dist/esm/scan/detection/detectTechnologies.mjs.map +1 -0
  179. package/dist/esm/scan/detection/index.mjs +10 -0
  180. package/dist/esm/scan/detection/localeCode.mjs +108 -0
  181. package/dist/esm/scan/detection/localeCode.mjs.map +1 -0
  182. package/dist/esm/scan/detection/localizedPages.mjs +46 -0
  183. package/dist/esm/scan/detection/localizedPages.mjs.map +1 -0
  184. package/dist/esm/scan/detection/technologySignatures.mjs +563 -0
  185. package/dist/esm/scan/detection/technologySignatures.mjs.map +1 -0
  186. package/dist/esm/scan/detection/url.mjs +47 -0
  187. package/dist/esm/scan/detection/url.mjs.map +1 -0
  188. package/dist/esm/scan/fetchText.mjs +55 -0
  189. package/dist/esm/scan/fetchText.mjs.map +1 -0
  190. package/dist/esm/scan/index.mjs +15 -3
  191. package/dist/esm/scan/parseHtml.mjs +52 -11
  192. package/dist/esm/scan/parseHtml.mjs.map +1 -1
  193. package/dist/esm/scan/robots.mjs +63 -0
  194. package/dist/esm/scan/robots.mjs.map +1 -0
  195. package/dist/esm/scan/runScanChecks.mjs +88 -0
  196. package/dist/esm/scan/runScanChecks.mjs.map +1 -0
  197. package/dist/esm/scan/scanWebsite.mjs +59 -53
  198. package/dist/esm/scan/scanWebsite.mjs.map +1 -1
  199. package/dist/esm/scan/sitemap.mjs +105 -0
  200. package/dist/esm/scan/sitemap.mjs.map +1 -0
  201. package/dist/esm/utils/chunkJSON.mjs +24 -9
  202. package/dist/esm/utils/chunkJSON.mjs.map +1 -1
  203. package/dist/esm/utils/getChunk.mjs +2 -2
  204. package/dist/esm/utils/getChunk.mjs.map +1 -1
  205. package/dist/esm/utils/runParallel/index.mjs +1 -1
  206. package/dist/esm/utils/runParallel/index.mjs.map +1 -1
  207. package/dist/esm/utils/runParallel/pidTree.mjs +23 -11
  208. package/dist/esm/utils/runParallel/pidTree.mjs.map +1 -1
  209. package/dist/esm/utils/runParallel/ps.mjs +8 -3
  210. package/dist/esm/utils/runParallel/ps.mjs.map +1 -1
  211. package/dist/esm/utils/runParallel/runTask.mjs +2 -1
  212. package/dist/esm/utils/runParallel/runTask.mjs.map +1 -1
  213. package/dist/esm/utils/runParallel/wmic.mjs +8 -3
  214. package/dist/esm/utils/runParallel/wmic.mjs.map +1 -1
  215. package/dist/esm/writeContentDeclaration/detectExportedComponentName.mjs +7 -4
  216. package/dist/esm/writeContentDeclaration/detectExportedComponentName.mjs.map +1 -1
  217. package/dist/esm/writeContentDeclaration/writeMarkdownFile.mjs +2 -2
  218. package/dist/esm/writeContentDeclaration/writeMarkdownFile.mjs.map +1 -1
  219. package/dist/types/cli.d.ts +5 -3
  220. package/dist/types/docReview/rebuildDocument.d.ts.map +1 -1
  221. package/dist/types/docReview/reviewReport.d.ts.map +1 -1
  222. package/dist/types/docReview/segmentDocument.d.ts.map +1 -1
  223. package/dist/types/formatDictionary.d.ts +2 -2
  224. package/dist/types/init/cms.d.ts +11 -0
  225. package/dist/types/init/cms.d.ts.map +1 -1
  226. package/dist/types/init/documentationRouter.d.ts +64 -0
  227. package/dist/types/init/documentationRouter.d.ts.map +1 -0
  228. package/dist/types/init/frameworkSetup/backend/index.d.ts +16 -0
  229. package/dist/types/init/frameworkSetup/backend/index.d.ts.map +1 -0
  230. package/dist/types/init/frameworkSetup/backend/transforms.d.ts +37 -0
  231. package/dist/types/init/frameworkSetup/backend/transforms.d.ts.map +1 -0
  232. package/dist/types/init/frameworkSetup/index.d.ts.map +1 -1
  233. package/dist/types/init/frameworkSetup/localeRouting.d.ts +11 -0
  234. package/dist/types/init/frameworkSetup/localeRouting.d.ts.map +1 -0
  235. package/dist/types/init/frameworkSetup/nextAppRouter/index.d.ts +5 -5
  236. package/dist/types/init/frameworkSetup/nextAppRouter/index.d.ts.map +1 -1
  237. package/dist/types/init/frameworkSetup/nextAppRouter/templates.d.ts +12 -0
  238. package/dist/types/init/frameworkSetup/nextAppRouter/templates.d.ts.map +1 -1
  239. package/dist/types/init/frameworkSetup/nextAppRouter/transforms.d.ts +10 -1
  240. package/dist/types/init/frameworkSetup/nextAppRouter/transforms.d.ts.map +1 -1
  241. package/dist/types/init/frameworkSetup/tanstackStart/index.d.ts +3 -2
  242. package/dist/types/init/frameworkSetup/tanstackStart/index.d.ts.map +1 -1
  243. package/dist/types/init/frameworkSetup/tanstackStart/templates.d.ts +10 -0
  244. package/dist/types/init/frameworkSetup/tanstackStart/templates.d.ts.map +1 -1
  245. package/dist/types/init/frameworkSetup/tanstackStart/transforms.d.ts +12 -0
  246. package/dist/types/init/frameworkSetup/tanstackStart/transforms.d.ts.map +1 -1
  247. package/dist/types/init/frameworkSetup/types.d.ts +6 -0
  248. package/dist/types/init/frameworkSetup/types.d.ts.map +1 -1
  249. package/dist/types/init/index.d.ts +15 -1
  250. package/dist/types/init/index.d.ts.map +1 -1
  251. package/dist/types/init/utils/configManipulation.d.ts +14 -0
  252. package/dist/types/init/utils/configManipulation.d.ts.map +1 -1
  253. package/dist/types/init/utils/index.d.ts +5 -3
  254. package/dist/types/init/utils/lintConfig.d.ts +28 -0
  255. package/dist/types/init/utils/lintConfig.d.ts.map +1 -0
  256. package/dist/types/init/utils/packageManager.d.ts +29 -6
  257. package/dist/types/init/utils/packageManager.d.ts.map +1 -1
  258. package/dist/types/init/utils/urlRoutingFramework.d.ts +9 -0
  259. package/dist/types/init/utils/urlRoutingFramework.d.ts.map +1 -0
  260. package/dist/types/initConfig/index.d.ts +3 -1
  261. package/dist/types/initConfig/index.d.ts.map +1 -1
  262. package/dist/types/loadDictionaries/logTypeScriptErrors.d.ts +4 -0
  263. package/dist/types/loadDictionaries/logTypeScriptErrors.d.ts.map +1 -1
  264. package/dist/types/scan/analyzeBundleContent.d.ts.map +1 -1
  265. package/dist/types/scan/calculateScore.d.ts +4 -1
  266. package/dist/types/scan/calculateScore.d.ts.map +1 -1
  267. package/dist/types/scan/checks.d.ts +114 -21
  268. package/dist/types/scan/checks.d.ts.map +1 -1
  269. package/dist/types/scan/detection/checkDetails.d.ts +29 -0
  270. package/dist/types/scan/detection/checkDetails.d.ts.map +1 -0
  271. package/dist/types/scan/detection/classifyInternalLinks.d.ts +44 -0
  272. package/dist/types/scan/detection/classifyInternalLinks.d.ts.map +1 -0
  273. package/dist/types/scan/detection/detectRoutingStrategy.d.ts +60 -0
  274. package/dist/types/scan/detection/detectRoutingStrategy.d.ts.map +1 -0
  275. package/dist/types/scan/detection/detectTechnologies.d.ts +60 -0
  276. package/dist/types/scan/detection/detectTechnologies.d.ts.map +1 -0
  277. package/dist/types/scan/detection/index.d.ts +9 -0
  278. package/dist/types/scan/detection/localeCode.d.ts +49 -0
  279. package/dist/types/scan/detection/localeCode.d.ts.map +1 -0
  280. package/dist/types/scan/detection/localizedPages.d.ts +40 -0
  281. package/dist/types/scan/detection/localizedPages.d.ts.map +1 -0
  282. package/dist/types/scan/detection/technologySignatures.d.ts +48 -0
  283. package/dist/types/scan/detection/technologySignatures.d.ts.map +1 -0
  284. package/dist/types/scan/detection/url.d.ts +27 -0
  285. package/dist/types/scan/detection/url.d.ts.map +1 -0
  286. package/dist/types/scan/fetchText.d.ts +30 -0
  287. package/dist/types/scan/fetchText.d.ts.map +1 -0
  288. package/dist/types/scan/index.d.ts +16 -4
  289. package/dist/types/scan/parseHtml.d.ts +17 -0
  290. package/dist/types/scan/parseHtml.d.ts.map +1 -1
  291. package/dist/types/scan/robots.d.ts +23 -0
  292. package/dist/types/scan/robots.d.ts.map +1 -0
  293. package/dist/types/scan/runScanChecks.d.ts +43 -0
  294. package/dist/types/scan/runScanChecks.d.ts.map +1 -0
  295. package/dist/types/scan/scanWebsite.d.ts.map +1 -1
  296. package/dist/types/scan/sitemap.d.ts +49 -0
  297. package/dist/types/scan/sitemap.d.ts.map +1 -0
  298. package/dist/types/scan/types.d.ts +15 -0
  299. package/dist/types/scan/types.d.ts.map +1 -1
  300. package/dist/types/utils/chunkJSON.d.ts.map +1 -1
  301. package/dist/types/utils/runParallel/pidTree.d.ts.map +1 -1
  302. package/dist/types/writeContentDeclaration/writeMarkdownFile.d.ts.map +1 -1
  303. package/package.json +16 -8
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","names":[],"sources":["../../../../src/init/frameworkSetup/types.ts"],"mappings":";;;;;;;YAOY;;EAEV;;EAEA,SAAS;;EAET,gBAAgB;;EAEhB;;;;;;;EAOA,aAAa;;;;;;;YAQH;;EAEV;;;;;EAKA,SAAS,SAAS,oCAAoC;;;;;;EAMtD,QAAQ,SAAS,0BAA0B"}
1
+ {"version":3,"file":"types.d.ts","names":[],"sources":["../../../../src/init/frameworkSetup/types.ts"],"mappings":";;;;;;;YAOY;;EAEV;;EAEA,SAAS;;EAET,gBAAgB;;EAEhB;;;;;;;EAOA,aAAa;;;;;;EAMb;;;;;;;YAQU;;EAEV;;;;;EAKA,SAAS,SAAS,oCAAoC;;;;;;EAMtD,QAAQ,SAAS,0BAA0B"}
@@ -1,4 +1,5 @@
1
1
  import { RoutingMode } from "./utils/configManipulation.js";
2
+ import { DocumentationRouter, DocumentationRouterType, getDocumentationUrl } from "./documentationRouter.js";
2
3
  import "./utils/index.js";
3
4
  //#region src/init/index.d.ts
4
5
  /**
@@ -43,6 +44,8 @@ export type InitOptions = {
43
44
  * enabled.
44
45
  */
45
46
  noFrameworkSetup?: boolean;
47
+ /** Skip logging the final success message and documentation link. */
48
+ skipFinalMessage?: boolean;
46
49
  /**
47
50
  * Version to install the missing Intlayer packages at (typically the running
48
51
  * CLI version). Already declared Intlayer packages are upgraded to the latest
@@ -55,6 +58,13 @@ export type InitOptions = {
55
58
  * (`prefix-no-default`) is kept.
56
59
  */
57
60
  routingMode?: RoutingMode;
61
+ /**
62
+ * Whether the app routes by locale through the Intlayer proxy (middleware).
63
+ * Written to `routing.enableProxy` in the configuration file and drives the
64
+ * framework scaffolding: `false` skips the proxy file and any locale route
65
+ * segment. When omitted, the configured value is kept (unset means enabled).
66
+ */
67
+ enableProxy?: boolean;
58
68
  /**
59
69
  * Content organization strategy chosen by the interactive init prompt. Drives
60
70
  * the `compiler.output` template (`centralized`) or the injection of the
@@ -66,6 +76,10 @@ export type InitOptions = {
66
76
  /**
67
77
  * MAIN LOGIC
68
78
  */
69
- export declare const initIntlayer: (rootDir: string, options?: InitOptions) => Promise<void>;
79
+ export declare const initIntlayer: (rootDir: string, options?: InitOptions) => Promise<{
80
+ guideUrl: string;
81
+ }>;
82
+ export declare const logInitSuccessMessage: (guideUrl: string) => void;
70
83
  //#endregion
84
+ export { DocumentationRouter, type DocumentationRouterType, getDocumentationUrl };
71
85
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/init/index.ts"],"mappings":";;;;;;;;;qBA6Oa,2BAAwB,cACrB;;;;;;;;;;YAsBJ;;;;YAQA;EACV;;EAEA;;;;;EAKA;;EAEA;;EAEA;;EAEA;;;;;;;EAOA;;;;;;EAMA;;;;;;EAMA,cAAc;;;;;;;EAOd,kBAAkB;;;;;qBAMP,eAAY,iBAAyB,UAAY,gBAAW"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/init/index.ts"],"mappings":";;;;;;;;;;qBA6Ea,2BAAwB,cACrB;;;;;;;;;;YAsBJ;;;;YAQA;EACV;;EAEA;;;;;EAKA;;EAEA;;EAEA;;EAEA;;;;;;;EAOA;;EAEA;;;;;;EAMA;;;;;;EAMA,cAAc;;;;;;;EAOd;;;;;;;EAOA,kBAAkB;;;;;qBAMP,eAAY,iBAAyB,UAAY,gBAAW;;;qBA6kC5D,wBAAqB"}
@@ -11,6 +11,20 @@ export type RoutingMode = RoutingConfig['mode'];
11
11
  * TypeScript recast parser.
12
12
  */
13
13
  export declare const setIntlayerConfigRoutingMode: (content: string, extension: string, mode: RoutingMode) => string;
14
+ /**
15
+ * Sets `routing.enableProxy` in an Intlayer configuration file. Idempotent and
16
+ * comment-preserving: an existing property only has its value swapped. Supports
17
+ * `.ts`, `.mjs`, `.js`, `.cjs` and `.json` configs.
18
+ */
19
+ export declare const setIntlayerConfigEnableProxy: (content: string, extension: string, enableProxy: boolean) => string;
20
+ /**
21
+ * Reduces `routing` in an Intlayer configuration file to its `storage` entry,
22
+ * for projects without URL routing (backend-only, React Native…) where the
23
+ * routing mode and the locale proxy have no effect. An existing `storage`
24
+ * value is kept; otherwise `['cookie', 'header']` is written. JSON configs are
25
+ * returned unchanged.
26
+ */
27
+ export declare const setIntlayerConfigRoutingStorageOnly: (content: string, extension: string) => string;
14
28
  /**
15
29
  * Sets `compiler.output` in an Intlayer configuration file to the given path
16
30
  * template (the `{{variable}}` string form, e.g.
@@ -1 +1 @@
1
- {"version":3,"file":"configManipulation.d.ts","names":[],"sources":["../../../../src/init/utils/configManipulation.ts"],"mappings":";;;;YAYY,cAAc;;;;;;;;qBA0Fb,+BAA4B,iBACxB,mBACE,MACX;;;;;;;;;qBA0CK,kCAA+B,iBAC3B,mBACE;;;;;;;;;qBA0CN,6BAA0B;;;;;;;;qBA+Q1B,wBAAqB;qBAIrB,mBAAgB,iBACZ;qBAoBJ,oBAAiB,iBACb;qBAoBJ,mBAAgB,iBACZ;;;;;;;;;;;;;qBA2EJ,oBAAiB,iBACb;;;;;;;qBA2EJ,yBAAsB;qBAgBtB,mBAAgB;;;;;qBA6DhB,6BAA0B,iBACtB;;;;;;qBA8BJ,kCAA+B,iBAC3B,mBACE,cACH;;;;;;;;;;qBAiCH,sCAAmC,iBAC/B,oBACG,2BACO;;;;;qBAqGd,mCAAgC,iBAC5B;;;;;qBAcJ,gCAA6B;;;;;qBA+D7B,iCAA8B,iBAC1B;;;;;;;qBAgBJ,8BAA2B,iBACvB;;;;;;qBAgQJ,qCAAkC,iBAC9B,mBACE,YACL"}
1
+ {"version":3,"file":"configManipulation.d.ts","names":[],"sources":["../../../../src/init/utils/configManipulation.ts"],"mappings":";;;;YAYY,cAAc;;;;;;;;qBA0Fb,+BAA4B,iBACxB,mBACE,MACX;;;;;;qBAuCK,+BAA4B,iBACxB,mBACE;;;;;;;;qBA+CN,sCAAmC,iBAC/B;;;;;;;;;qBAgDJ,kCAA+B,iBAC3B,mBACE;;;;;;;;;qBA0CN,6BAA0B;;;;;;;;qBA+Q1B,wBAAqB;qBAIrB,mBAAgB,iBACZ;qBAoBJ,oBAAiB,iBACb;qBAoBJ,mBAAgB,iBACZ;;;;;;;;;;;;;qBA2EJ,oBAAiB,iBACb;;;;;;;qBA2EJ,yBAAsB;qBAgBtB,mBAAgB;;;;;qBA6DhB,6BAA0B,iBACtB;;;;;;qBA8BJ,kCAA+B,iBAC3B,mBACE,cACH;;;;;;;;;;qBAiCH,sCAAmC,iBAC/B,oBACG,2BACO;;;;;qBAqGd,mCAAgC,iBAC5B;;;;;qBAcJ,gCAA6B;;;;;qBA+D7B,iCAA8B,iBAC1B;;;;;;;qBAgBJ,8BAA2B,iBACvB;;;;;;qBAgQJ,qCAAkC,iBAC9B,mBACE,YACL"}
@@ -1,12 +1,14 @@
1
- import { COMPAT_I18N_LIBRARIES, COMPAT_PACKAGE_REPLACEMENTS, CompatI18nLibrary, CompatSyncConfig, CompatVitePluginConfig, DetectMissingPackagesOptions, IntlayerPackageAnalysis, PackageManager, detectCompatI18nLibraries, detectMissingIntlayerPackages, detectPackageManager, findLockFileDir, hasLintTooling, installPackages, isIntlayerPackageName, moveCompatPackagesToDevDependencies, normalizeVersion, runPackageInstall } from "./packageManager.js";
2
- import { RoutingMode, enableIntlayerEditorConfig, getMetroConfigTemplate, hasIntlayerVitePlugin, replaceViteConfigPluginImportSource, setIntlayerConfigCompilerOutput, setIntlayerConfigRoutingMode, updateAstroConfig, updateIntlayerConfigWithSyncPlugin, updateMetroConfig, updateNextConfig, updateNextConfigForNextI18next, updateNextConfigForNextIntl, updateNextConfigForNextTranslate, updateNuxtConfig, updateNuxtConfigForNuxtjsI18n, updateViteConfig, updateViteConfigForCompatPlugin, updateViteConfigForVueI18n } from "./configManipulation.js";
1
+ import { COMPAT_I18N_LIBRARIES, COMPAT_PACKAGE_REPLACEMENTS, CompatI18nLibrary, CompatSyncConfig, CompatVitePluginConfig, DetectMissingPackagesOptions, IntlayerPackageAnalysis, MINIMUM_ESLINT_MAJOR, PENDING_COMPAT_ADAPTERS, PackageManager, detectCompatI18nLibraries, detectMissingIntlayerPackages, detectPackageManager, findLockFileDir, hasLegacyEslint, hasLintTooling, installPackages, isIntlayerPackageName, moveCompatPackagesToDevDependencies, normalizeVersion, runPackageInstall } from "./packageManager.js";
2
+ import { RoutingMode, enableIntlayerEditorConfig, getMetroConfigTemplate, hasIntlayerVitePlugin, replaceViteConfigPluginImportSource, setIntlayerConfigCompilerOutput, setIntlayerConfigEnableProxy, setIntlayerConfigRoutingMode, setIntlayerConfigRoutingStorageOnly, updateAstroConfig, updateIntlayerConfigWithSyncPlugin, updateMetroConfig, updateNextConfig, updateNextConfigForNextI18next, updateNextConfigForNextIntl, updateNextConfigForNextTranslate, updateNuxtConfig, updateNuxtConfigForNuxtjsI18n, updateViteConfig, updateViteConfigForCompatPlugin, updateViteConfigForVueI18n } from "./configManipulation.js";
3
3
  import { ensureNamedImport, firstInsertIndex, isModuleScopeBinding } from "./astImports.js";
4
4
  import { BACKEND_INTLAYER_PACKAGES, ResolveDevScriptParams, resolveDevScript } from "./devScript.js";
5
5
  import { JsonLocalePattern, JsonLocalePatternType, LinguiCatalogPattern, NextIntlMessagesPattern, detectJsonLocalePattern, detectLinguiCatalogPattern, detectNextIntlMessagesPattern, ensureDirectory, exists, readFileFromRoot, writeFileToRoot } from "./fileSystem.js";
6
6
  import { GITHUB_FILL_WORKFLOW_PATH, GITHUB_TEST_WORKFLOW_PATH, GithubWorkflowFile, GithubWorkflowsContext, GithubWorkflowsOptions, getGithubWorkflows, resolveGithubWorkflowsContext } from "./githubActions.js";
7
7
  import { IntlayerDependency, IntlayerDependencyUpgrade, PackageJsonIntlayerDependencies, fetchLatestPackageVersion, findPackageJsonFiles, getIntlayerDependencies, getIntlayerDependencyUpgrades, listIntlayerDependencies, toRange, writeIntlayerDependencyUpgrades } from "./intlayerDependencies.js";
8
8
  import { parseJSONWithComments } from "./jsonParser.js";
9
+ import { LINT_PLUGIN_PACKAGE_NAME, OxlintConfig, addIntlayerRulesToOxlintConfig } from "./lintConfig.js";
9
10
  import { NEXT_INTLAYER_BABEL_CONFIG_CONTENT, setupNextCompilerBabelConfig } from "./nextCompilerBabel.js";
10
11
  import { findTsConfigFiles } from "./tsConfig.js";
12
+ import { hasUrlRoutingFramework } from "./urlRoutingFramework.js";
11
13
  import { isVersionAtLeast } from "./version.js";
12
- export { BACKEND_INTLAYER_PACKAGES, COMPAT_I18N_LIBRARIES, COMPAT_PACKAGE_REPLACEMENTS, CompatI18nLibrary, CompatSyncConfig, CompatVitePluginConfig, DetectMissingPackagesOptions, GITHUB_FILL_WORKFLOW_PATH, GITHUB_TEST_WORKFLOW_PATH, GithubWorkflowFile, GithubWorkflowsContext, GithubWorkflowsOptions, IntlayerDependency, IntlayerDependencyUpgrade, IntlayerPackageAnalysis, JsonLocalePattern, JsonLocalePatternType, LinguiCatalogPattern, NEXT_INTLAYER_BABEL_CONFIG_CONTENT, NextIntlMessagesPattern, PackageJsonIntlayerDependencies, PackageManager, ResolveDevScriptParams, RoutingMode, detectCompatI18nLibraries, detectJsonLocalePattern, detectLinguiCatalogPattern, detectMissingIntlayerPackages, detectNextIntlMessagesPattern, detectPackageManager, enableIntlayerEditorConfig, ensureDirectory, ensureNamedImport, exists, fetchLatestPackageVersion, findLockFileDir, findPackageJsonFiles, findTsConfigFiles, firstInsertIndex, getGithubWorkflows, getIntlayerDependencies, getIntlayerDependencyUpgrades, getMetroConfigTemplate, hasIntlayerVitePlugin, hasLintTooling, installPackages, isIntlayerPackageName, isModuleScopeBinding, isVersionAtLeast, listIntlayerDependencies, moveCompatPackagesToDevDependencies, normalizeVersion, parseJSONWithComments, readFileFromRoot, replaceViteConfigPluginImportSource, resolveDevScript, resolveGithubWorkflowsContext, runPackageInstall, setIntlayerConfigCompilerOutput, setIntlayerConfigRoutingMode, setupNextCompilerBabelConfig, toRange, updateAstroConfig, updateIntlayerConfigWithSyncPlugin, updateMetroConfig, updateNextConfig, updateNextConfigForNextI18next, updateNextConfigForNextIntl, updateNextConfigForNextTranslate, updateNuxtConfig, updateNuxtConfigForNuxtjsI18n, updateViteConfig, updateViteConfigForCompatPlugin, updateViteConfigForVueI18n, writeFileToRoot, writeIntlayerDependencyUpgrades };
14
+ export { BACKEND_INTLAYER_PACKAGES, COMPAT_I18N_LIBRARIES, COMPAT_PACKAGE_REPLACEMENTS, CompatI18nLibrary, CompatSyncConfig, CompatVitePluginConfig, DetectMissingPackagesOptions, GITHUB_FILL_WORKFLOW_PATH, GITHUB_TEST_WORKFLOW_PATH, GithubWorkflowFile, GithubWorkflowsContext, GithubWorkflowsOptions, IntlayerDependency, IntlayerDependencyUpgrade, IntlayerPackageAnalysis, JsonLocalePattern, JsonLocalePatternType, LINT_PLUGIN_PACKAGE_NAME, LinguiCatalogPattern, MINIMUM_ESLINT_MAJOR, NEXT_INTLAYER_BABEL_CONFIG_CONTENT, NextIntlMessagesPattern, OxlintConfig, PENDING_COMPAT_ADAPTERS, PackageJsonIntlayerDependencies, PackageManager, ResolveDevScriptParams, RoutingMode, addIntlayerRulesToOxlintConfig, detectCompatI18nLibraries, detectJsonLocalePattern, detectLinguiCatalogPattern, detectMissingIntlayerPackages, detectNextIntlMessagesPattern, detectPackageManager, enableIntlayerEditorConfig, ensureDirectory, ensureNamedImport, exists, fetchLatestPackageVersion, findLockFileDir, findPackageJsonFiles, findTsConfigFiles, firstInsertIndex, getGithubWorkflows, getIntlayerDependencies, getIntlayerDependencyUpgrades, getMetroConfigTemplate, hasIntlayerVitePlugin, hasLegacyEslint, hasLintTooling, hasUrlRoutingFramework, installPackages, isIntlayerPackageName, isModuleScopeBinding, isVersionAtLeast, listIntlayerDependencies, moveCompatPackagesToDevDependencies, normalizeVersion, parseJSONWithComments, readFileFromRoot, replaceViteConfigPluginImportSource, resolveDevScript, resolveGithubWorkflowsContext, runPackageInstall, setIntlayerConfigCompilerOutput, setIntlayerConfigEnableProxy, setIntlayerConfigRoutingMode, setIntlayerConfigRoutingStorageOnly, setupNextCompilerBabelConfig, toRange, updateAstroConfig, updateIntlayerConfigWithSyncPlugin, updateMetroConfig, updateNextConfig, updateNextConfigForNextI18next, updateNextConfigForNextIntl, updateNextConfigForNextTranslate, updateNuxtConfig, updateNuxtConfigForNuxtjsI18n, updateViteConfig, updateViteConfigForCompatPlugin, updateViteConfigForVueI18n, writeFileToRoot, writeIntlayerDependencyUpgrades };
@@ -0,0 +1,28 @@
1
+ //#region src/init/utils/lintConfig.d.ts
2
+ /**
3
+ * The Intlayer lint setup, as `intlayer init` writes it into `.oxlintrc.json`.
4
+ *
5
+ * Declared locally on purpose: `@intlayer/engine` is installed by every Intlayer
6
+ * user, so it must not depend on a lint plugin to write a handful of strings
7
+ * into a JSON file. oxlint resolves a plugin's *rules* but not its shipped
8
+ * *configs*, so the preset cannot be referenced by name there either.
9
+ *
10
+ * Mirrors the `recommended` preset of `eslint-plugin-intlayer`; keep in sync
11
+ * when a rule is enabled by default there.
12
+ */
13
+ export declare const LINT_PLUGIN_PACKAGE_NAME = "eslint-plugin-intlayer";
14
+ /** The `.oxlintrc.json` fields init reads and writes. */
15
+ export type OxlintConfig = {
16
+ jsPlugins?: string[];
17
+ rules?: Record<string, unknown>;
18
+ ignorePatterns?: string[];
19
+ };
20
+ /**
21
+ * Adds the Intlayer plugin, the `recommended` rules and the generated-output
22
+ * ignore to an oxlint config, in place. Rules the user already set are kept.
23
+ *
24
+ * @returns Whether anything was added.
25
+ */
26
+ export declare const addIntlayerRulesToOxlintConfig: (oxlintConfig: OxlintConfig) => boolean;
27
+ //#endregion
28
+ //# sourceMappingURL=lintConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lintConfig.d.ts","names":[],"sources":["../../../../src/init/utils/lintConfig.ts"],"mappings":";;;;;;;;;;;;qBAWa;;YAaD;EACV;EACA,QAAQ;EACR;;;;;;;;qBASW,iCAA8B,cAC3B"}
@@ -83,7 +83,20 @@ export type IntlayerPackageAnalysis = {
83
83
  * library requires alias injection.
84
84
  */
85
85
  compatVitePluginConfig: CompatVitePluginConfig | undefined;
86
+ /**
87
+ * Compat adapters the project would need but that are not published yet
88
+ * (see {@link PENDING_COMPAT_ADAPTERS}). The original library is kept as is;
89
+ * only its catalogs are synced.
90
+ */
91
+ pendingCompatAdapters: string[];
86
92
  };
93
+ /**
94
+ * Compat adapters that live in `compat-comming/` and are not published to npm
95
+ * yet. Installing one fails the whole install command, so init keeps the
96
+ * original library, skips the adapter and its bundler / framework wiring, and
97
+ * only syncs the catalogs. Remove an entry once its package is released.
98
+ */
99
+ export declare const PENDING_COMPAT_ADAPTERS: ReadonlySet<string>;
87
100
  /**
88
101
  * Detects the package manager in use by checking for lock files in the
89
102
  * project root, then the `packageManager` field of its `package.json`. Falls
@@ -166,14 +179,24 @@ export declare const moveCompatPackagesToDevDependencies: (packageJson: Record<s
166
179
  * @param dependencies - Merged dependencies of the target project.
167
180
  */
168
181
  export declare const detectCompatI18nLibraries: (dependencies: Record<string, string>) => string[];
182
+ /** Lowest ESLint major `eslint-plugin-intlayer` supports (flat config). */
183
+ export declare const MINIMUM_ESLINT_MAJOR = 9;
184
+ /**
185
+ * True when the project pins ESLint below {@link MINIMUM_ESLINT_MAJOR}.
186
+ * Installing the plugin there fails on its `eslint` peer range (and takes the
187
+ * whole install command down with it). Ranges without a version number
188
+ * (`latest`, `*`, `catalog:`) are assumed current.
189
+ *
190
+ * @param dependencies - Merged dependencies of the target project.
191
+ */
192
+ export declare const hasLegacyEslint: (dependencies: Record<string, string>) => boolean;
169
193
  /**
170
- * True when the project already lints, and so has something to plug the
171
- * Intlayer lint rules into.
194
+ * True when the project already lints with a linter the Intlayer rules can
195
+ * plug into: oxlint, or ESLint 9+.
172
196
  *
173
- * `eslint-plugin-intlayer` loads in both ESLint and oxlint, so either linter is
174
- * enough. Shared with the init flow so that installing the plugin and wiring up
175
- * its configuration are gated on exactly the same condition — a project that
176
- * does not lint is left alone entirely.
197
+ * Shared with the init flow so that installing the plugin and wiring up its
198
+ * configuration are gated on exactly the same condition — a project that does
199
+ * not lint, or lints with ESLint 8, is left alone.
177
200
  *
178
201
  * @param dependencies - Merged dependencies of the target project.
179
202
  */
@@ -1 +1 @@
1
- {"version":3,"file":"packageManager.d.ts","names":[],"sources":["../../../../src/init/utils/packageManager.ts"],"mappings":";;YAKY;;;;;YAMA;;;;;;;EAOV;;;;;EAKA;;;;;EAKA;;;;;;;;;;;;;;;EAeA;;;;;;;YAQU;;EAEV;;EAEA;;;;;;;;EAQA;;IAEE;;IAEA;;;;YAKQ;;EAEV;;EAEA;;EAEA;;;;;;EAMA,kBAAkB;;;;;;EAMlB,wBAAwB;;;;;;;qBA8Cb,uBAAoB,oBAAsB;;;;;;qBAY1C,kBAAe;;;;;;;YA2ChB;;;;;;EAMV;;;;;;EAMA,eAAe;;;;EAIf,kBAAkB;;;YAIR;;EAEV;;;;;;EAMA;;;;;EAKA,cAAc;;;;;;;;qBASH,gCAAgC;;;;;qBA+GhC,6BAA6B;;;;;;;;qBAc7B,sCAAmC,aACjC;;;;;;;;;;qBA8BF,4BAAyB,cACtB;;;;;;;;;;;;qBAiBH,iBAAc,cAAkB;qBAGhC,gCAA6B,iBACvB,wBAAsB,UAC9B,iCACR;;;;;qBA4VU,kBAAe,iBACX,oBACG,gBACF,gBAAc;;;;;;;;;;qBAgBnB,wBAAqB;;;;;;;;qBAarB,mBAAgB;;;;;;qBAahB,oBAAiB,iBACb,gBACC"}
1
+ {"version":3,"file":"packageManager.d.ts","names":[],"sources":["../../../../src/init/utils/packageManager.ts"],"mappings":";;YAMY;;;;;YAMA;;;;;;;EAOV;;;;;EAKA;;;;;EAKA;;;;;;;;;;;;;;;EAeA;;;;;;;YAQU;;EAEV;;EAEA;;;;;;;;EAQA;;IAEE;;IAEA;;;;YAKQ;;EAEV;;EAEA;;EAEA;;;;;;EAMA,kBAAkB;;;;;;EAMlB,wBAAwB;;;;;;EAMxB;;;;;;;;qBASW,yBAAyB;;;;;;qBAiDzB,uBAAoB,oBAAsB;;;;;;qBAY1C,kBAAe;;;;;;;YA2ChB;;;;;;EAMV;;;;;;EAMA,eAAe;;;;EAIf,kBAAkB;;;YAIR;;EAEV;;;;;;EAMA;;;;;EAKA,cAAc;;;;;;;;qBASH,gCAAgC;;;;;qBA+GhC,6BAA6B;;;;;;;;qBAc7B,sCAAmC,aACjC;;;;;;;;;;qBA8BF,4BAAyB,cACtB;;qBAOH;;;;;;;;;qBAUA,kBAAe,cACZ;;;;;;;;;;;qBAiBH,iBAAc,cAAkB;qBAIhC,gCAA6B,iBACvB,wBAAsB,UAC9B,iCACR;;;;;qBAyZU,kBAAe,iBACX,oBACG,gBACF,gBAAc;;;;;;;;;;qBAgBnB,wBAAqB;;;;;;;;qBAarB,mBAAgB;;;;;;qBAahB,oBAAiB,iBACb,gBACC"}
@@ -0,0 +1,9 @@
1
+ //#region src/init/utils/urlRoutingFramework.d.ts
2
+ /**
3
+ * Returns true when the project is a web frontend for which locale routing is
4
+ * meaningful. React Native / Expo apps are excluded (no URL routing), as are
5
+ * backend-only and plain Node projects.
6
+ */
7
+ export declare const hasUrlRoutingFramework: (dependencies: Record<string, string>) => boolean;
8
+ //#endregion
9
+ //# sourceMappingURL=urlRoutingFramework.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urlRoutingFramework.d.ts","names":[],"sources":["../../../../src/init/utils/urlRoutingFramework.ts"],"mappings":";;;;;;qBAgCa,yBAAsB,cACnB"}
@@ -13,7 +13,9 @@ export type InitConfigOptions = {
13
13
  /**
14
14
  * Initialize the Intlayer configuration file. No-ops when a configuration file
15
15
  * already exists at `baseDir`.
16
+ *
17
+ * @returns `true` when the file was created, `false` when one already existed.
16
18
  */
17
- export declare const initConfig: (format: (typeof configurationFilesCandidates)[number], baseDir: string, options?: InitConfigOptions) => Promise<void>;
19
+ export declare const initConfig: (format: (typeof configurationFilesCandidates)[number], baseDir: string, options?: InitConfigOptions) => Promise<boolean>;
18
20
  //#endregion
19
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/initConfig/index.ts"],"mappings":";;;YA6BY;;EAEV;;;;;EAKA;;;;;;qBAOW,aAAU,gBACL,uCAAqC,iBACtC,UACL,sBAAiB"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/initConfig/index.ts"],"mappings":";;;YA6BY;;EAEV;;;;;EAKA;;;;;;;;qBASW,aAAU,gBACL,uCAAqC,iBACtC,UACL,sBACT"}
@@ -1,5 +1,9 @@
1
1
  import { IntlayerConfig } from "@intlayer/types/config";
2
2
  //#region src/loadDictionaries/logTypeScriptErrors.d.ts
3
+ /**
4
+ * Type-checks content declaration files and logs errors as warnings.
5
+ * Supports both the classic (`typescript` <= 6) and native (>= 7) compilers.
6
+ */
3
7
  export declare const logTypeScriptErrors: (filePaths: string[], configuration: IntlayerConfig) => Promise<void>;
4
8
  //#endregion
5
9
  //# sourceMappingURL=logTypeScriptErrors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logTypeScriptErrors.d.ts","names":[],"sources":["../../../src/loadDictionaries/logTypeScriptErrors.ts"],"mappings":";;qBAIa,sBAAmB,qBACX,eACJ,mBAAc"}
1
+ {"version":3,"file":"logTypeScriptErrors.d.ts","names":[],"sources":["../../../src/loadDictionaries/logTypeScriptErrors.ts"],"mappings":";;;;;;qBAsRa,sBAAmB,qBACX,eACJ,mBACd"}
@@ -1 +1 @@
1
- {"version":3,"file":"analyzeBundleContent.d.ts","names":[],"sources":["../../../src/scan/analyzeBundleContent.ts"],"mappings":";;;;;;;;;;;qBA6Ka,uBAAoB,QACvB,oBAAkB,qBACP,uBACE,0BAEpB"}
1
+ {"version":3,"file":"analyzeBundleContent.d.ts","names":[],"sources":["../../../src/scan/analyzeBundleContent.ts"],"mappings":";;;;;;;;;;;qBAkNa,uBAAoB,QACvB,oBAAkB,qBACP,uBACE,0BAEpB"}
@@ -37,10 +37,13 @@ export declare const scoreRecord: {
37
37
  readonly url_htmlDir: 3;
38
38
  readonly url_hasCanonical: 10;
39
39
  readonly url_hreflang: 9;
40
+ readonly url_hreflangReciprocal: 8;
40
41
  readonly url_hasLocalizedLinks: 8;
41
42
  readonly url_hasXDefault: 7;
42
43
  readonly url_allAnchorsLocalized: 6;
43
- readonly url_currentLocale: 3;
44
+ readonly url_hasLangSelector: 6;
45
+ readonly url_currentLocale: 5;
46
+ readonly url_ogLocale: 3;
44
47
  readonly url_unusedBundleContent: 8;
45
48
  };
46
49
  /** Identifier of a scorable check (without the URL suffix). */
@@ -1 +1 @@
1
- {"version":3,"file":"calculateScore.d.ts","names":[],"sources":["../../../src/scan/calculateScore.ts"],"mappings":";;;;;;;;;;YAUY;;EAEV;;EAEA;;;;;;;;;YAUU;EACV;EACA;;;qBAgBW;WACX;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;YAIU,8BAA8B;;;;;;;;;;qBAW7B,cAAW,OAAW,OAAK,OAAS,kBAAgB;;;;;;;qBAyBpD,iBAAc,OAAW"}
1
+ {"version":3,"file":"calculateScore.d.ts","names":[],"sources":["../../../src/scan/calculateScore.ts"],"mappings":";;;;;;;;;;YAUY;;EAEV;;EAEA;;;;;;;;;YAUU;EACV;EACA;;;qBAgBW;WACX;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;YAIU,8BAA8B;;;;;;;;;;qBAW7B,cAAW,OAAW,OAAK,OAAS,kBAAgB;;;;;;;qBAyBpD,iBAAc,OAAW"}
@@ -1,36 +1,129 @@
1
+ import { RoutingDetection } from "./detection/detectRoutingStrategy.js";
1
2
  import { BundleChunkInput, BundleContentAnalysis, ScanEvent } from "./types.js";
2
- import { Anchor } from "./parseHtml.js";
3
+ import { ScanFetchOptions } from "./fetchText.js";
4
+ import { Anchor, HreflangLink } from "./parseHtml.js";
3
5
  //#region src/scan/checks.d.ts
6
+ /** Receives every check result as soon as it is produced. */
7
+ export type EmitScanEvent = (event: ScanEvent) => void;
8
+ /** Signals of the scanned page shared by the page-level checks. */
9
+ export type PageSignals = {
10
+ targetUrl: string;
11
+ langTag?: string;
12
+ dirTag?: string;
13
+ ogLocale?: string;
14
+ /** `og:locale:alternate` values. */
15
+ ogLocaleAlternates?: string[];
16
+ /** Raw `href` of the canonical link (`''` when present but empty). */
17
+ canonicalHref?: string;
18
+ hreflangs: HreflangLink[];
19
+ anchors: Anchor[];
20
+ routing: RoutingDetection;
21
+ /** Locale of the page: from its URL when possible, else `<html lang>`. */
22
+ pageLocale?: string;
23
+ };
4
24
  /** Format a byte count as a human-readable size. */
5
25
  export declare const formatSize: (bytes: number) => string;
26
+ /** `url_htmlLang`: `<html lang>` is present and a valid BCP 47 tag. */
27
+ export declare const checkHtmlLang: ({ targetUrl, langTag }: PageSignals, emit: EmitScanEvent) => void;
28
+ /**
29
+ * `url_htmlDir`: the text direction matches the language. `dir` is only
30
+ * required for right-to-left languages, `ltr` being the browser default.
31
+ */
32
+ export declare const checkHtmlDir: ({ targetUrl, langTag, dirTag }: PageSignals, emit: EmitScanEvent) => void;
33
+ /**
34
+ * `url_currentLocale`: the locale announced by `<html lang>`, the URL and the
35
+ * self hreflang entry agree.
36
+ */
37
+ export declare const checkLocaleConsistency: ({ targetUrl, langTag, hreflangs, routing }: PageSignals, emit: EmitScanEvent) => void;
38
+ /**
39
+ * `url_ogLocale`: `og:locale` is set, uses the Open Graph `language_TERRITORY`
40
+ * format (`en_GB`, not `en` nor `en-GB`) and matches `<html lang>`.
41
+ * `og:locale:alternate` values must use the same format.
42
+ */
43
+ export declare const checkOgLocale: ({ targetUrl, ogLocale, ogLocaleAlternates, langTag }: PageSignals, emit: EmitScanEvent) => void;
44
+ /**
45
+ * `url_hasCanonical`: a canonical link exists and does not point to another
46
+ * locale version (which would de-index the current one).
47
+ */
48
+ export declare const checkCanonical: ({ targetUrl, canonicalHref, hreflangs, routing, pageLocale }: PageSignals, emit: EmitScanEvent) => void;
49
+ /**
50
+ * `url_hreflang`: hreflang tags exist, use valid codes and absolute URLs, have
51
+ * no duplicates, and include a self reference.
52
+ */
53
+ export declare const checkHreflang: ({ targetUrl, hreflangs, canonicalHref }: PageSignals, emit: EmitScanEvent) => void;
54
+ /** `url_hasXDefault`: an `x-default` hreflang is declared. */
55
+ export declare const checkXDefault: ({ targetUrl, hreflangs }: PageSignals, emit: EmitScanEvent) => void;
56
+ /**
57
+ * `url_hreflangReciprocal`: every alternate answers with a 200, is not
58
+ * redirected, links back to this page and declares the expected language.
59
+ * Search engines ignore hreflang pairs without a return link.
60
+ */
61
+ export declare const checkHreflangReciprocity: ({ targetUrl, hreflangs, canonicalHref }: PageSignals, fetchOptions: ScanFetchOptions, emit: EmitScanEvent) => Promise<void>;
6
62
  /**
7
- * Check the `<html>` element attributes (`lang`, `dir`) and the resulting
8
- * current-locale signal. Returns the detected language tag.
63
+ * Link checks, interpreted through the detected routing strategy (so an
64
+ * unprefixed link is correct on the default locale of a `prefix-no-default`
65
+ * site, and `?lang=` links are understood on `search-params` sites):
66
+ *
67
+ * - `url_hasLocalizedLinks`: internal links keep the page locale
68
+ * - `url_allAnchorsLocalized`: no internal link loses or switches the locale
69
+ * - `url_hasLangSelector`: crawlable links to the other locale versions exist
9
70
  */
10
- export declare const checkHtmlAttributes: (html: string, targetUrl: string, events: ScanEvent[]) => {
11
- langTag: string | undefined;
71
+ export declare const checkInternalLinks: (signals: PageSignals, emit: EmitScanEvent) => void;
72
+ /** Human-readable version of a {@link BundleContentAnalysis}, for display. */
73
+ export declare const formatBundleAnalysis: (analysis: BundleContentAnalysis) => {
74
+ currentLocale: string;
75
+ totalPageSize: string;
76
+ renderedContentSize: string;
77
+ contentSize: string;
78
+ totalLocaleSize: string;
79
+ totalUnusedLocaleSize: string;
80
+ unusedPercentOfLocale: string;
81
+ mainBundleChunks: {
82
+ filename: string;
83
+ url: string;
84
+ fileSize: string;
85
+ totalLocaleSize: string;
86
+ usedLocaleSize: string;
87
+ unusedLocaleSize: string;
88
+ dictionariesFound: number;
89
+ unusedPercent: string;
90
+ }[];
91
+ lazyBundleChunks: {
92
+ filename: string;
93
+ url: string;
94
+ fileSize: string;
95
+ totalLocaleSize: string;
96
+ usedLocaleSize: string;
97
+ unusedLocaleSize: string;
98
+ dictionariesFound: number;
99
+ unusedPercent: string;
100
+ }[];
12
101
  };
13
- /** Check the presence of a canonical link. */
14
- export declare const checkCanonical: (html: string, targetUrl: string, events: ScanEvent[]) => void;
15
102
  /**
16
- * Check the page's hreflang structure and collect discovered locales into
17
- * `localesSet`.
103
+ * `url_unusedBundleContent`: share of other-locale translations shipped in the
104
+ * eagerly loaded bundles. Returns the raw analysis for reporting.
18
105
  */
19
- export declare const checkLinguisticStructure: (html: string, targetUrl: string, localesSet: Set<string>, events: ScanEvent[]) => void;
106
+ export declare const checkBundleContent: (chunks: BundleChunkInput[], html: string, currentLocale: string | undefined, targetUrl: string, totalPageSize: number, emit: EmitScanEvent) => BundleContentAnalysis | undefined;
20
107
  /**
21
- * Check whether internal links carry a locale segment, mirroring the hosted
22
- * audit's URL-structure analysis but operating on parsed anchors instead of a
23
- * live DOM.
108
+ * Fetch `robots.txt` and check that neither the site nor its localized URLs
109
+ * are blocked for Googlebot.
110
+ *
111
+ * - `robots_robotsPresent`
112
+ * - `robots_noLocalizedUrlsForgotten`
113
+ *
114
+ * @param localizedUrls - URLs of every locale version (hreflang alternates).
115
+ * @returns The sitemaps declared in `robots.txt`.
24
116
  */
25
- export declare const checkUrlStructure: (anchors: Anchor[], origin: string, targetUrl: string, events: ScanEvent[]) => void;
117
+ export declare const checkRobots: (origin: string, localizedUrls: string[], fetchOptions: ScanFetchOptions, emit: EmitScanEvent) => Promise<string[]>;
26
118
  /**
27
- * Analyze the JavaScript bundles for unused locale content and emit the
28
- * corresponding event. Returns the analysis so callers can report on it.
119
+ * Read the sitemaps (declared in `robots.txt`, else the default locations,
120
+ * following sitemap indexes) and check their locale coverage.
121
+ *
122
+ * - `sitemap_sitemapPresent`
123
+ * - `sitemap_noLocalizedUrlsForgotten`: every locale is listed, and entries
124
+ * declaring alternates declare all of them
125
+ * - `sitemap_hasAlternates` / `sitemap_hasXDefault`
29
126
  */
30
- export declare const checkBundleContent: (chunks: BundleChunkInput[], html: string, currentLocale: string | undefined, targetUrl: string, totalPageSize: number, events: ScanEvent[]) => BundleContentAnalysis | undefined;
31
- /** Fetch and check `robots.txt`, emitting robots-related events. */
32
- export declare const checkRobots: (origin: string, discoveredLocales: Set<string>, userAgent: string, events: ScanEvent[]) => Promise<void>;
33
- /** Fetch and check `sitemap.xml`, emitting sitemap-related events. */
34
- export declare const checkSitemap: (origin: string, discoveredLocales: Set<string>, userAgent: string, events: ScanEvent[]) => Promise<void>;
127
+ export declare const checkSitemap: (origin: string, declaredSitemapUrls: string[], routing: RoutingDetection, fetchOptions: ScanFetchOptions, emit: EmitScanEvent) => Promise<void>;
35
128
  //#endregion
36
129
  //# sourceMappingURL=checks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"checks.d.ts","names":[],"sources":["../../../src/scan/checks.ts"],"mappings":";;;;qBAgBa,aAAU;;;;;qBAUV,sBAAmB,cAClB,mBACK,QACT;EACL;;;qBAmCQ,iBAAc,cACb,mBACK,QACT;;;;;qBAcG,2BAAwB,cACvB,mBACK,YACL,aAAW,QACf;;;;;;qBAwCG,oBAAiB,SACnB,UAAQ,gBACH,mBACG,QACT;;;;;qBAwEG,qBAAkB,QACrB,oBAAkB,cACd,mCACqB,mBAChB,uBACI,QACb,gBACP;;qBA0CU,cAAW,gBACR,mBACK,aAAW,mBACb,QACT,gBACP;;qBA0DU,eAAY,gBACT,mBACK,aAAW,mBACb,QACT,gBACP"}
1
+ {"version":3,"file":"checks.d.ts","names":[],"sources":["../../../src/scan/checks.ts"],"mappings":";;;;;;YAkCY,iBAAiB,OAAO;;YAGxB;EACV;EACA;EACA;EACA;;EAEA;;EAEA;EACA,WAAW;EACX,SAAS;EACT,SAAS;;EAET;;;qBAWW,aAAU;;qBAgCV,kBAAa,WAAA,WACA,aAAW,MAC7B;;;;;qBAqBK,iBAAY,WAAA,SAAA,UACS,aAAW,MACrC;;;;;qBAuCK,2BAAsB,WAAA,SAAA,WAAA,WACW,aAAW,MACjD;;;;;;qBA4DK,kBAAa,WAAA,UAAA,oBAAA,WACmC,aAAW,MAChE;;;;;qBAmEK,mBAAc,WAAA,eAAA,WAAA,SAAA,cACqC,aAAW,MACnE;;;;;qBAgDK,kBAAa,WAAA,WAAA,iBACiB,aAAW,MAC9C;;qBAgFK,kBAAa,WAAA,aACE,aAAW,MAC/B;;;;;;qBA4EK,6BAAwB,WAAA,WAAA,iBACM,aAAW,cACtC,kBAAgB,MACxB,kBACL;;;;;;;;;;qBAkFU,qBAAkB,SACpB,aAAW,MACd;;qBAwFK,uBAAoB,UAAc;EAC7C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;;;;;;;;EACA;;;;;;;;;;;;;;;qBAOW,qBAAkB,QACrB,oBAAkB,cACd,mCACqB,mBAChB,uBACI,MACf,kBACL;;;;;;;;;;;qBAoDU,cAAW,gBACR,yBACS,cACT,kBAAgB,MACxB,kBACL;;;;;;;;;;qBAwDU,eAAY,gBACT,+BACe,SACpB,kBAAgB,cACX,kBAAgB,MACxB,kBACL"}
@@ -0,0 +1,29 @@
1
+ //#region src/scan/detection/checkDetails.d.ts
2
+ /** Details of a scan check, split for display. */
3
+ export type CheckDetailParts = {
4
+ /** Explanation of the check result. */
5
+ message?: string;
6
+ /** Offending `<a>` elements, as HTML source. */
7
+ links: string[];
8
+ /** Other listed items: issues, hreflang alternates, URLs… */
9
+ items: string[];
10
+ };
11
+ /**
12
+ * Split the details attached to a scan check into its message, the listed
13
+ * links (HTML source) and the other listed items. Shapes without any of them
14
+ * (bundle summaries, hreflang lists…) return empty lists.
15
+ *
16
+ * @param details - The `success` / `warning` / `error` payload of a check.
17
+ */
18
+ export declare const splitCheckDetails: (details: unknown) => CheckDetailParts;
19
+ /**
20
+ * Turn the details attached to a scan check into short printable lines: its
21
+ * message, then the listed issues / links / URLs. Shared by the CLI report and
22
+ * the Chrome extension popup.
23
+ *
24
+ * @param details - The `success` / `warning` / `error` payload of a check.
25
+ * @returns The message first, then one line per listed item.
26
+ */
27
+ export declare const getCheckDetailLines: (details: unknown) => string[];
28
+ //#endregion
29
+ //# sourceMappingURL=checkDetails.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkDetails.d.ts","names":[],"sources":["../../../../src/scan/detection/checkDetails.ts"],"mappings":";;YACY;;EAEV;;EAEA;;EAEA;;;;;;;;;qBAUW,oBAAiB,qBAAuB;;;;;;;;;qBAkCxC,sBAAmB"}
@@ -0,0 +1,44 @@
1
+ import { RoutingDetection } from "./detectRoutingStrategy.js";
2
+ //#region src/scan/detection/classifyInternalLinks.d.ts
3
+ /** A page anchor, as parsed from HTML or read from a live DOM. */
4
+ export type LinkAnchor = {
5
+ href: string;
6
+ text: string;
7
+ /** `hreflang` attribute, set on language-switcher links. */
8
+ hreflang?: string;
9
+ };
10
+ /** Input of {@link classifyInternalLinks}. */
11
+ export type LinkClassificationInput<Anchor extends LinkAnchor> = {
12
+ /** Absolute URL of the page holding the anchors. */
13
+ targetUrl: string;
14
+ anchors: Anchor[];
15
+ hreflangs: {
16
+ hreflang: string;
17
+ href: string;
18
+ }[];
19
+ routing: RoutingDetection;
20
+ /** Locale of the page. */
21
+ pageLocale?: string;
22
+ };
23
+ /** Internal anchors of a page, grouped by the locale they lead to. */
24
+ export type LinkClassification<Anchor extends LinkAnchor> = {
25
+ /** Internal page links, language-switcher links excluded. */
26
+ internalLinks: Anchor[];
27
+ /** Internal links keeping the page locale. */
28
+ sameLocaleLinks: Anchor[];
29
+ /** Internal links leading to another locale. */
30
+ otherLocaleLinks: Anchor[];
31
+ /** Internal links whose URL carries no locale. */
32
+ unlocalizedLinks: Anchor[];
33
+ /** Links to the other locale versions (hreflang alternates). */
34
+ switcherLinks: Anchor[];
35
+ };
36
+ /**
37
+ * Group the internal anchors of a page by the locale they lead to, reading
38
+ * each URL through the detected routing strategy (so unprefixed links count as
39
+ * the default locale on a `prefix-no-default` site, and `?lang=` is understood
40
+ * on a `search-params` site).
41
+ */
42
+ export declare const classifyInternalLinks: <Anchor extends LinkAnchor>({ targetUrl, anchors, hreflangs, routing, pageLocale }: LinkClassificationInput<Anchor>) => LinkClassification<Anchor>;
43
+ //#endregion
44
+ //# sourceMappingURL=classifyInternalLinks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classifyInternalLinks.d.ts","names":[],"sources":["../../../../src/scan/detection/classifyInternalLinks.ts"],"mappings":";;;YAKY;EACV;EACA;;EAEA;;;YAIU,wBAAwB,eAAe;;EAEjD;EACA,SAAS;EACT;IAAa;IAAkB;;EAC/B,SAAS;;EAET;;;YAIU,mBAAmB,eAAe;;EAE5C,eAAe;;EAEf,iBAAiB;;EAEjB,kBAAkB;;EAElB,kBAAkB;;EAElB,eAAe;;;;;;;;qBAYJ,wBAAyB,eAAe,cAAU,WAAA,SAAA,WAAA,SAAA,cAM5D,wBAAwB,YAAU,mBAAmB"}
@@ -0,0 +1,60 @@
1
+ //#region src/scan/detection/detectRoutingStrategy.d.ts
2
+ /**
3
+ * How a website exposes its locales in URLs. Mirrors Intlayer's
4
+ * `routing.mode` values, plus the domain-based strategies.
5
+ *
6
+ * - `prefix-all`: every locale is prefixed (`/en/about`, `/fr/about`)
7
+ * - `prefix-no-default`: the default locale is not prefixed (`/about`, `/fr/about`)
8
+ * - `search-params`: the locale is a query parameter (`/about?lang=fr`)
9
+ * - `subdomain`: the locale is a subdomain (`fr.example.com`)
10
+ * - `domain`: one domain per locale (`example.fr`, `example.de`)
11
+ * - `no-prefix`: a single URL serves every locale (cookie / header based)
12
+ * - `unknown`: not enough signals to decide
13
+ */
14
+ export type RoutingStrategy = 'prefix-all' | 'prefix-no-default' | 'search-params' | 'subdomain' | 'domain' | 'no-prefix' | 'unknown';
15
+ /** Result of {@link detectRoutingStrategy}. */
16
+ export type RoutingDetection = {
17
+ strategy: RoutingStrategy;
18
+ /**
19
+ * `high` when inferred from the hreflang alternates, `low` when guessed from
20
+ * the scanned URL alone.
21
+ */
22
+ confidence: 'high' | 'low';
23
+ /** Locales known to the site (hreflang values, else the page `lang`). */
24
+ locales: string[];
25
+ /** Locale served without any marker (`prefix-no-default`, `search-params`…). */
26
+ defaultLocale?: string;
27
+ /** Query parameter carrying the locale, for `search-params`. */
28
+ searchParamName?: string;
29
+ /** Hostname → locale map, for `subdomain` / `domain`. */
30
+ hostLocales?: Record<string, string>;
31
+ /** Locale of the scanned page according to its URL alone. */
32
+ urlLocale?: string;
33
+ /** Human-readable explanation of the decision. */
34
+ evidence: string;
35
+ };
36
+ /** Input of {@link detectRoutingStrategy}. */
37
+ export type RoutingDetectionInput = {
38
+ /** Absolute URL of the scanned page. */
39
+ pageUrl: string;
40
+ /** Value of `<html lang>`, when present. */
41
+ htmlLang?: string;
42
+ /** `<link rel="alternate" hreflang>` entries of the page. */
43
+ hreflangs: {
44
+ hreflang: string;
45
+ href: string;
46
+ }[];
47
+ };
48
+ /** Locale of a URL according to an already-detected routing strategy. */
49
+ export declare const getUrlLocale: (url: string, routing: RoutingDetection) => string | undefined;
50
+ /**
51
+ * Detect how the site encodes the locale in its URLs (path prefix, query
52
+ * parameter, subdomain, domain or nothing).
53
+ *
54
+ * The hreflang alternates are the most reliable signal: each one pairs a
55
+ * locale with its URL, so the shared pattern reveals the strategy. Without
56
+ * alternates the scanned URL alone is used, with `confidence: 'low'`.
57
+ */
58
+ export declare const detectRoutingStrategy: ({ pageUrl, htmlLang, hreflangs }: RoutingDetectionInput) => RoutingDetection;
59
+ //#endregion
60
+ //# sourceMappingURL=detectRoutingStrategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detectRoutingStrategy.d.ts","names":[],"sources":["../../../../src/scan/detection/detectRoutingStrategy.ts"],"mappings":";;;;;;;;;;;;;YAoBY;;YAUA;EACV,UAAU;;;;;EAKV;;EAEA;;EAEA;;EAEA;;EAEA,cAAc;;EAEd;;EAEA;;;YAIU;;EAEV;;EAEA;;EAEA;IAAa;IAAkB;;;;qBAMpB,eAAY,aACZ,SACF;;;;;;;;;qBA+ME,0BAAqB,SAAA,UAAA,aAI/B,0BAAwB"}