@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.
- package/dist/cjs/cli.cjs +7 -0
- package/dist/cjs/docReview/alignBlocks.cjs +53 -36
- package/dist/cjs/docReview/alignBlocks.cjs.map +1 -1
- package/dist/cjs/docReview/rebuildDocument.cjs +3 -1
- package/dist/cjs/docReview/rebuildDocument.cjs.map +1 -1
- package/dist/cjs/docReview/reviewReport.cjs.map +1 -1
- package/dist/cjs/docReview/segmentDocument.cjs +8 -5
- package/dist/cjs/docReview/segmentDocument.cjs.map +1 -1
- package/dist/cjs/init/cms.cjs +35 -0
- package/dist/cjs/init/cms.cjs.map +1 -1
- package/dist/cjs/init/documentationRouter.cjs +141 -0
- package/dist/cjs/init/documentationRouter.cjs.map +1 -0
- package/dist/cjs/init/frameworkSetup/backend/index.cjs +138 -0
- package/dist/cjs/init/frameworkSetup/backend/index.cjs.map +1 -0
- package/dist/cjs/init/frameworkSetup/backend/transforms.cjs +223 -0
- package/dist/cjs/init/frameworkSetup/backend/transforms.cjs.map +1 -0
- package/dist/cjs/init/frameworkSetup/index.cjs +9 -3
- package/dist/cjs/init/frameworkSetup/index.cjs.map +1 -1
- package/dist/cjs/init/frameworkSetup/localeRouting.cjs +13 -0
- package/dist/cjs/init/frameworkSetup/localeRouting.cjs.map +1 -0
- package/dist/cjs/init/frameworkSetup/nextAppRouter/index.cjs +34 -7
- package/dist/cjs/init/frameworkSetup/nextAppRouter/index.cjs.map +1 -1
- package/dist/cjs/init/frameworkSetup/nextAppRouter/templates.cjs +56 -0
- package/dist/cjs/init/frameworkSetup/nextAppRouter/templates.cjs.map +1 -1
- package/dist/cjs/init/frameworkSetup/nextAppRouter/transforms.cjs +6 -3
- package/dist/cjs/init/frameworkSetup/nextAppRouter/transforms.cjs.map +1 -1
- package/dist/cjs/init/frameworkSetup/tanstackStart/index.cjs +32 -3
- package/dist/cjs/init/frameworkSetup/tanstackStart/index.cjs.map +1 -1
- package/dist/cjs/init/frameworkSetup/tanstackStart/templates.cjs +58 -0
- package/dist/cjs/init/frameworkSetup/tanstackStart/templates.cjs.map +1 -1
- package/dist/cjs/init/frameworkSetup/tanstackStart/transforms.cjs +94 -14
- package/dist/cjs/init/frameworkSetup/tanstackStart/transforms.cjs.map +1 -1
- package/dist/cjs/init/index.cjs +46 -159
- package/dist/cjs/init/index.cjs.map +1 -1
- package/dist/cjs/init/utils/configManipulation.cjs +39 -0
- package/dist/cjs/init/utils/configManipulation.cjs.map +1 -1
- package/dist/cjs/init/utils/index.cjs +10 -0
- package/dist/cjs/init/utils/lintConfig.cjs +52 -0
- package/dist/cjs/init/utils/lintConfig.cjs.map +1 -0
- package/dist/cjs/init/utils/packageManager.cjs +62 -13
- package/dist/cjs/init/utils/packageManager.cjs.map +1 -1
- package/dist/cjs/init/utils/urlRoutingFramework.cjs +41 -0
- package/dist/cjs/init/utils/urlRoutingFramework.cjs.map +1 -0
- package/dist/cjs/initConfig/index.cjs +4 -1
- package/dist/cjs/initConfig/index.cjs.map +1 -1
- package/dist/cjs/installMCP/installMCP.cjs +1 -1
- package/dist/cjs/installMCP/installMCP.cjs.map +1 -1
- package/dist/cjs/loadDictionaries/loadLocalDictionaries.cjs +3 -1
- package/dist/cjs/loadDictionaries/loadLocalDictionaries.cjs.map +1 -1
- package/dist/cjs/loadDictionaries/loadRemoteDictionaries.cjs +1 -1
- package/dist/cjs/loadDictionaries/loadRemoteDictionaries.cjs.map +1 -1
- package/dist/cjs/loadDictionaries/log.cjs +1 -1
- package/dist/cjs/loadDictionaries/log.cjs.map +1 -1
- package/dist/cjs/loadDictionaries/logTypeScriptErrors.cjs +111 -43
- package/dist/cjs/loadDictionaries/logTypeScriptErrors.cjs.map +1 -1
- package/dist/cjs/scan/analyzeBundleContent.cjs +26 -12
- package/dist/cjs/scan/analyzeBundleContent.cjs.map +1 -1
- package/dist/cjs/scan/calculateScore.cjs +4 -1
- package/dist/cjs/scan/calculateScore.cjs.map +1 -1
- package/dist/cjs/scan/checks.cjs +394 -221
- package/dist/cjs/scan/checks.cjs.map +1 -1
- package/dist/cjs/scan/detection/checkDetails.cjs +56 -0
- package/dist/cjs/scan/detection/checkDetails.cjs.map +1 -0
- package/dist/cjs/scan/detection/classifyInternalLinks.cjs +47 -0
- package/dist/cjs/scan/detection/classifyInternalLinks.cjs.map +1 -0
- package/dist/cjs/scan/detection/detectRoutingStrategy.cjs +143 -0
- package/dist/cjs/scan/detection/detectRoutingStrategy.cjs.map +1 -0
- package/dist/cjs/scan/detection/detectTechnologies.cjs +89 -0
- package/dist/cjs/scan/detection/detectTechnologies.cjs.map +1 -0
- package/dist/cjs/scan/detection/index.cjs +36 -0
- package/dist/cjs/scan/detection/localeCode.cjs +118 -0
- package/dist/cjs/scan/detection/localeCode.cjs.map +1 -0
- package/dist/cjs/scan/detection/localizedPages.cjs +48 -0
- package/dist/cjs/scan/detection/localizedPages.cjs.map +1 -0
- package/dist/cjs/scan/detection/technologySignatures.cjs +564 -0
- package/dist/cjs/scan/detection/technologySignatures.cjs.map +1 -0
- package/dist/cjs/scan/detection/url.cjs +53 -0
- package/dist/cjs/scan/detection/url.cjs.map +1 -0
- package/dist/cjs/scan/fetchText.cjs +56 -0
- package/dist/cjs/scan/fetchText.cjs.map +1 -0
- package/dist/cjs/scan/index.cjs +59 -3
- package/dist/cjs/scan/parseHtml.cjs +55 -10
- package/dist/cjs/scan/parseHtml.cjs.map +1 -1
- package/dist/cjs/scan/robots.cjs +65 -0
- package/dist/cjs/scan/robots.cjs.map +1 -0
- package/dist/cjs/scan/runScanChecks.cjs +89 -0
- package/dist/cjs/scan/runScanChecks.cjs.map +1 -0
- package/dist/cjs/scan/scanWebsite.cjs +58 -52
- package/dist/cjs/scan/scanWebsite.cjs.map +1 -1
- package/dist/cjs/scan/sitemap.cjs +109 -0
- package/dist/cjs/scan/sitemap.cjs.map +1 -0
- package/dist/cjs/utils/chunkJSON.cjs +24 -9
- package/dist/cjs/utils/chunkJSON.cjs.map +1 -1
- package/dist/cjs/utils/getChunk.cjs +2 -2
- package/dist/cjs/utils/getChunk.cjs.map +1 -1
- package/dist/cjs/utils/runParallel/index.cjs +1 -1
- package/dist/cjs/utils/runParallel/index.cjs.map +1 -1
- package/dist/cjs/utils/runParallel/pidTree.cjs +23 -11
- package/dist/cjs/utils/runParallel/pidTree.cjs.map +1 -1
- package/dist/cjs/utils/runParallel/ps.cjs +8 -3
- package/dist/cjs/utils/runParallel/ps.cjs.map +1 -1
- package/dist/cjs/utils/runParallel/runTask.cjs +2 -1
- package/dist/cjs/utils/runParallel/runTask.cjs.map +1 -1
- package/dist/cjs/utils/runParallel/wmic.cjs +8 -3
- package/dist/cjs/utils/runParallel/wmic.cjs.map +1 -1
- package/dist/cjs/writeContentDeclaration/detectExportedComponentName.cjs +7 -4
- package/dist/cjs/writeContentDeclaration/detectExportedComponentName.cjs.map +1 -1
- package/dist/cjs/writeContentDeclaration/writeMarkdownFile.cjs +2 -2
- package/dist/cjs/writeContentDeclaration/writeMarkdownFile.cjs.map +1 -1
- package/dist/esm/cli.mjs +5 -3
- package/dist/esm/docReview/alignBlocks.mjs +53 -36
- package/dist/esm/docReview/alignBlocks.mjs.map +1 -1
- package/dist/esm/docReview/rebuildDocument.mjs +3 -1
- package/dist/esm/docReview/rebuildDocument.mjs.map +1 -1
- package/dist/esm/docReview/reviewReport.mjs.map +1 -1
- package/dist/esm/docReview/segmentDocument.mjs +8 -5
- package/dist/esm/docReview/segmentDocument.mjs.map +1 -1
- package/dist/esm/init/cms.mjs +35 -2
- package/dist/esm/init/cms.mjs.map +1 -1
- package/dist/esm/init/documentationRouter.mjs +139 -0
- package/dist/esm/init/documentationRouter.mjs.map +1 -0
- package/dist/esm/init/frameworkSetup/backend/index.mjs +130 -0
- package/dist/esm/init/frameworkSetup/backend/index.mjs.map +1 -0
- package/dist/esm/init/frameworkSetup/backend/transforms.mjs +216 -0
- package/dist/esm/init/frameworkSetup/backend/transforms.mjs.map +1 -0
- package/dist/esm/init/frameworkSetup/index.mjs +9 -3
- package/dist/esm/init/frameworkSetup/index.mjs.map +1 -1
- package/dist/esm/init/frameworkSetup/localeRouting.mjs +12 -0
- package/dist/esm/init/frameworkSetup/localeRouting.mjs.map +1 -0
- package/dist/esm/init/frameworkSetup/nextAppRouter/index.mjs +36 -9
- package/dist/esm/init/frameworkSetup/nextAppRouter/index.mjs.map +1 -1
- package/dist/esm/init/frameworkSetup/nextAppRouter/templates.mjs +54 -1
- package/dist/esm/init/frameworkSetup/nextAppRouter/templates.mjs.map +1 -1
- package/dist/esm/init/frameworkSetup/nextAppRouter/transforms.mjs +6 -3
- package/dist/esm/init/frameworkSetup/nextAppRouter/transforms.mjs.map +1 -1
- package/dist/esm/init/frameworkSetup/tanstackStart/index.mjs +35 -6
- package/dist/esm/init/frameworkSetup/tanstackStart/index.mjs.map +1 -1
- package/dist/esm/init/frameworkSetup/tanstackStart/templates.mjs +56 -1
- package/dist/esm/init/frameworkSetup/tanstackStart/templates.mjs.map +1 -1
- package/dist/esm/init/frameworkSetup/tanstackStart/transforms.mjs +94 -15
- package/dist/esm/init/frameworkSetup/tanstackStart/transforms.mjs.map +1 -1
- package/dist/esm/init/index.mjs +42 -158
- package/dist/esm/init/index.mjs.map +1 -1
- package/dist/esm/init/utils/configManipulation.mjs +38 -1
- package/dist/esm/init/utils/configManipulation.mjs.map +1 -1
- package/dist/esm/init/utils/index.mjs +5 -3
- package/dist/esm/init/utils/lintConfig.mjs +50 -0
- package/dist/esm/init/utils/lintConfig.mjs.map +1 -0
- package/dist/esm/init/utils/packageManager.mjs +60 -14
- package/dist/esm/init/utils/packageManager.mjs.map +1 -1
- package/dist/esm/init/utils/urlRoutingFramework.mjs +40 -0
- package/dist/esm/init/utils/urlRoutingFramework.mjs.map +1 -0
- package/dist/esm/initConfig/index.mjs +4 -1
- package/dist/esm/initConfig/index.mjs.map +1 -1
- package/dist/esm/installMCP/installMCP.mjs +1 -1
- package/dist/esm/installMCP/installMCP.mjs.map +1 -1
- package/dist/esm/loadDictionaries/loadLocalDictionaries.mjs +3 -1
- package/dist/esm/loadDictionaries/loadLocalDictionaries.mjs.map +1 -1
- package/dist/esm/loadDictionaries/loadRemoteDictionaries.mjs +1 -1
- package/dist/esm/loadDictionaries/loadRemoteDictionaries.mjs.map +1 -1
- package/dist/esm/loadDictionaries/log.mjs +1 -1
- package/dist/esm/loadDictionaries/log.mjs.map +1 -1
- package/dist/esm/loadDictionaries/logTypeScriptErrors.mjs +112 -44
- package/dist/esm/loadDictionaries/logTypeScriptErrors.mjs.map +1 -1
- package/dist/esm/scan/analyzeBundleContent.mjs +26 -12
- package/dist/esm/scan/analyzeBundleContent.mjs.map +1 -1
- package/dist/esm/scan/calculateScore.mjs +4 -1
- package/dist/esm/scan/calculateScore.mjs.map +1 -1
- package/dist/esm/scan/checks.mjs +387 -220
- package/dist/esm/scan/checks.mjs.map +1 -1
- package/dist/esm/scan/detection/checkDetails.mjs +54 -0
- package/dist/esm/scan/detection/checkDetails.mjs.map +1 -0
- package/dist/esm/scan/detection/classifyInternalLinks.mjs +46 -0
- package/dist/esm/scan/detection/classifyInternalLinks.mjs.map +1 -0
- package/dist/esm/scan/detection/detectRoutingStrategy.mjs +141 -0
- package/dist/esm/scan/detection/detectRoutingStrategy.mjs.map +1 -0
- package/dist/esm/scan/detection/detectTechnologies.mjs +87 -0
- package/dist/esm/scan/detection/detectTechnologies.mjs.map +1 -0
- package/dist/esm/scan/detection/index.mjs +10 -0
- package/dist/esm/scan/detection/localeCode.mjs +108 -0
- package/dist/esm/scan/detection/localeCode.mjs.map +1 -0
- package/dist/esm/scan/detection/localizedPages.mjs +46 -0
- package/dist/esm/scan/detection/localizedPages.mjs.map +1 -0
- package/dist/esm/scan/detection/technologySignatures.mjs +563 -0
- package/dist/esm/scan/detection/technologySignatures.mjs.map +1 -0
- package/dist/esm/scan/detection/url.mjs +47 -0
- package/dist/esm/scan/detection/url.mjs.map +1 -0
- package/dist/esm/scan/fetchText.mjs +55 -0
- package/dist/esm/scan/fetchText.mjs.map +1 -0
- package/dist/esm/scan/index.mjs +15 -3
- package/dist/esm/scan/parseHtml.mjs +52 -11
- package/dist/esm/scan/parseHtml.mjs.map +1 -1
- package/dist/esm/scan/robots.mjs +63 -0
- package/dist/esm/scan/robots.mjs.map +1 -0
- package/dist/esm/scan/runScanChecks.mjs +88 -0
- package/dist/esm/scan/runScanChecks.mjs.map +1 -0
- package/dist/esm/scan/scanWebsite.mjs +59 -53
- package/dist/esm/scan/scanWebsite.mjs.map +1 -1
- package/dist/esm/scan/sitemap.mjs +105 -0
- package/dist/esm/scan/sitemap.mjs.map +1 -0
- package/dist/esm/utils/chunkJSON.mjs +24 -9
- package/dist/esm/utils/chunkJSON.mjs.map +1 -1
- package/dist/esm/utils/getChunk.mjs +2 -2
- package/dist/esm/utils/getChunk.mjs.map +1 -1
- package/dist/esm/utils/runParallel/index.mjs +1 -1
- package/dist/esm/utils/runParallel/index.mjs.map +1 -1
- package/dist/esm/utils/runParallel/pidTree.mjs +23 -11
- package/dist/esm/utils/runParallel/pidTree.mjs.map +1 -1
- package/dist/esm/utils/runParallel/ps.mjs +8 -3
- package/dist/esm/utils/runParallel/ps.mjs.map +1 -1
- package/dist/esm/utils/runParallel/runTask.mjs +2 -1
- package/dist/esm/utils/runParallel/runTask.mjs.map +1 -1
- package/dist/esm/utils/runParallel/wmic.mjs +8 -3
- package/dist/esm/utils/runParallel/wmic.mjs.map +1 -1
- package/dist/esm/writeContentDeclaration/detectExportedComponentName.mjs +7 -4
- package/dist/esm/writeContentDeclaration/detectExportedComponentName.mjs.map +1 -1
- package/dist/esm/writeContentDeclaration/writeMarkdownFile.mjs +2 -2
- package/dist/esm/writeContentDeclaration/writeMarkdownFile.mjs.map +1 -1
- package/dist/types/cli.d.ts +5 -3
- package/dist/types/docReview/rebuildDocument.d.ts.map +1 -1
- package/dist/types/docReview/reviewReport.d.ts.map +1 -1
- package/dist/types/docReview/segmentDocument.d.ts.map +1 -1
- package/dist/types/formatDictionary.d.ts +2 -2
- package/dist/types/init/cms.d.ts +11 -0
- package/dist/types/init/cms.d.ts.map +1 -1
- package/dist/types/init/documentationRouter.d.ts +64 -0
- package/dist/types/init/documentationRouter.d.ts.map +1 -0
- package/dist/types/init/frameworkSetup/backend/index.d.ts +16 -0
- package/dist/types/init/frameworkSetup/backend/index.d.ts.map +1 -0
- package/dist/types/init/frameworkSetup/backend/transforms.d.ts +37 -0
- package/dist/types/init/frameworkSetup/backend/transforms.d.ts.map +1 -0
- package/dist/types/init/frameworkSetup/index.d.ts.map +1 -1
- package/dist/types/init/frameworkSetup/localeRouting.d.ts +11 -0
- package/dist/types/init/frameworkSetup/localeRouting.d.ts.map +1 -0
- package/dist/types/init/frameworkSetup/nextAppRouter/index.d.ts +5 -5
- package/dist/types/init/frameworkSetup/nextAppRouter/index.d.ts.map +1 -1
- package/dist/types/init/frameworkSetup/nextAppRouter/templates.d.ts +12 -0
- package/dist/types/init/frameworkSetup/nextAppRouter/templates.d.ts.map +1 -1
- package/dist/types/init/frameworkSetup/nextAppRouter/transforms.d.ts +10 -1
- package/dist/types/init/frameworkSetup/nextAppRouter/transforms.d.ts.map +1 -1
- package/dist/types/init/frameworkSetup/tanstackStart/index.d.ts +3 -2
- package/dist/types/init/frameworkSetup/tanstackStart/index.d.ts.map +1 -1
- package/dist/types/init/frameworkSetup/tanstackStart/templates.d.ts +10 -0
- package/dist/types/init/frameworkSetup/tanstackStart/templates.d.ts.map +1 -1
- package/dist/types/init/frameworkSetup/tanstackStart/transforms.d.ts +12 -0
- package/dist/types/init/frameworkSetup/tanstackStart/transforms.d.ts.map +1 -1
- package/dist/types/init/frameworkSetup/types.d.ts +6 -0
- package/dist/types/init/frameworkSetup/types.d.ts.map +1 -1
- package/dist/types/init/index.d.ts +15 -1
- package/dist/types/init/index.d.ts.map +1 -1
- package/dist/types/init/utils/configManipulation.d.ts +14 -0
- package/dist/types/init/utils/configManipulation.d.ts.map +1 -1
- package/dist/types/init/utils/index.d.ts +5 -3
- package/dist/types/init/utils/lintConfig.d.ts +28 -0
- package/dist/types/init/utils/lintConfig.d.ts.map +1 -0
- package/dist/types/init/utils/packageManager.d.ts +29 -6
- package/dist/types/init/utils/packageManager.d.ts.map +1 -1
- package/dist/types/init/utils/urlRoutingFramework.d.ts +9 -0
- package/dist/types/init/utils/urlRoutingFramework.d.ts.map +1 -0
- package/dist/types/initConfig/index.d.ts +3 -1
- package/dist/types/initConfig/index.d.ts.map +1 -1
- package/dist/types/loadDictionaries/logTypeScriptErrors.d.ts +4 -0
- package/dist/types/loadDictionaries/logTypeScriptErrors.d.ts.map +1 -1
- package/dist/types/scan/analyzeBundleContent.d.ts.map +1 -1
- package/dist/types/scan/calculateScore.d.ts +4 -1
- package/dist/types/scan/calculateScore.d.ts.map +1 -1
- package/dist/types/scan/checks.d.ts +114 -21
- package/dist/types/scan/checks.d.ts.map +1 -1
- package/dist/types/scan/detection/checkDetails.d.ts +29 -0
- package/dist/types/scan/detection/checkDetails.d.ts.map +1 -0
- package/dist/types/scan/detection/classifyInternalLinks.d.ts +44 -0
- package/dist/types/scan/detection/classifyInternalLinks.d.ts.map +1 -0
- package/dist/types/scan/detection/detectRoutingStrategy.d.ts +60 -0
- package/dist/types/scan/detection/detectRoutingStrategy.d.ts.map +1 -0
- package/dist/types/scan/detection/detectTechnologies.d.ts +60 -0
- package/dist/types/scan/detection/detectTechnologies.d.ts.map +1 -0
- package/dist/types/scan/detection/index.d.ts +9 -0
- package/dist/types/scan/detection/localeCode.d.ts +49 -0
- package/dist/types/scan/detection/localeCode.d.ts.map +1 -0
- package/dist/types/scan/detection/localizedPages.d.ts +40 -0
- package/dist/types/scan/detection/localizedPages.d.ts.map +1 -0
- package/dist/types/scan/detection/technologySignatures.d.ts +48 -0
- package/dist/types/scan/detection/technologySignatures.d.ts.map +1 -0
- package/dist/types/scan/detection/url.d.ts +27 -0
- package/dist/types/scan/detection/url.d.ts.map +1 -0
- package/dist/types/scan/fetchText.d.ts +30 -0
- package/dist/types/scan/fetchText.d.ts.map +1 -0
- package/dist/types/scan/index.d.ts +16 -4
- package/dist/types/scan/parseHtml.d.ts +17 -0
- package/dist/types/scan/parseHtml.d.ts.map +1 -1
- package/dist/types/scan/robots.d.ts +23 -0
- package/dist/types/scan/robots.d.ts.map +1 -0
- package/dist/types/scan/runScanChecks.d.ts +43 -0
- package/dist/types/scan/runScanChecks.d.ts.map +1 -0
- package/dist/types/scan/scanWebsite.d.ts.map +1 -1
- package/dist/types/scan/sitemap.d.ts +49 -0
- package/dist/types/scan/sitemap.d.ts.map +1 -0
- package/dist/types/scan/types.d.ts +15 -0
- package/dist/types/scan/types.d.ts.map +1 -1
- package/dist/types/utils/chunkJSON.d.ts.map +1 -1
- package/dist/types/utils/runParallel/pidTree.d.ts.map +1 -1
- package/dist/types/writeContentDeclaration/writeMarkdownFile.d.ts.map +1 -1
- 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;;;;;;;
|
|
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<
|
|
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":"
|
|
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;;;;;;;;;
|
|
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
|
|
171
|
-
*
|
|
194
|
+
* True when the project already lints with a linter the Intlayer rules can
|
|
195
|
+
* plug into: oxlint, or ESLint 9+.
|
|
172
196
|
*
|
|
173
|
-
*
|
|
174
|
-
*
|
|
175
|
-
*
|
|
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":";;
|
|
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<
|
|
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
|
|
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":"
|
|
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":";;;;;;;;;;;
|
|
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
|
|
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 {
|
|
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
|
-
*
|
|
8
|
-
*
|
|
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
|
|
11
|
-
|
|
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
|
-
*
|
|
17
|
-
*
|
|
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
|
|
106
|
+
export declare const checkBundleContent: (chunks: BundleChunkInput[], html: string, currentLocale: string | undefined, targetUrl: string, totalPageSize: number, emit: EmitScanEvent) => BundleContentAnalysis | undefined;
|
|
20
107
|
/**
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
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
|
|
117
|
+
export declare const checkRobots: (origin: string, localizedUrls: string[], fetchOptions: ScanFetchOptions, emit: EmitScanEvent) => Promise<string[]>;
|
|
26
118
|
/**
|
|
27
|
-
*
|
|
28
|
-
*
|
|
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
|
|
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":"
|
|
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"}
|