@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":"ps.mjs","names":["os"],"sources":["../../../../src/utils/runParallel/ps.ts"],"sourcesContent":["import * as os from 'node:os';\nimport { run } from './bin';\n\ntype ProcessList = [number, number][]; // [PPID, PID][]\ntype ProcessListCallback = (err: Error | null, list?: ProcessList) => void;\n\n/**\n * Gets the list of all the pids of the system through the ps command.\n * @param callback Callback function with error and process list.\n */\nexport const ps = (callback: ProcessListCallback): void => {\n const args = ['-A', '-o', 'ppid,pid'];\n\n run('ps', args, (err, stdout, code) => {\n if (err) {\n callback(err);\n return;\n }\n if (code !== 0) {\n callback(new Error(`pidtree ps command exited with code ${code}`));\n return;\n }\n\n // Example of stdout\n //\n // PPID PID\n // 1 430\n // 430 432\n // 1 727\n // 1 7166\n\n if (!stdout) {\n callback(new Error('No stdout received from ps command'));\n return;\n }\n\n try {\n const lines = stdout.split(os.EOL);\n\n const list: ProcessList = [];\n for (let i = 1; i < lines.length; i++) {\n const trimmed = lines[i].trim();\n if (!trimmed) continue;\n const parts = trimmed.split(/\\s+/);\n const ppid = parseInt(parts[0], 10); // PPID\n const pid = parseInt(parts[1], 10); // PID\n if (!Number.isNaN(ppid) && !Number.isNaN(pid)) {\n list.push([ppid, pid]);\n }\n }\n\n callback(null, list);\n } catch (error) {\n callback(error instanceof Error ? error : new Error(String(error)));\n }\n });\n};\n"],"mappings":";;;;;;;;AAUA,MAAa,MAAM,aAAwC;CAGzD,IAAI,MAAM;EAFI;EAAM;EAAM;CAEb,IAAI,KAAK,QAAQ,SAAS;EACrC,IAAI,KAAK;GACP,SAAS,GAAG;GACZ;EACF;EACA,IAAI,SAAS,GAAG;GACd,yBAAS,IAAI,MAAM,uCAAuC,MAAM,CAAC;GACjE;EACF;EAUA,IAAI,CAAC,QAAQ;GACX,yBAAS,IAAI,MAAM,oCAAoC,CAAC;GACxD;EACF;EAEA,IAAI;GACF,MAAM,QAAQ,OAAO,MAAMA,KAAG,GAAG;GAEjC,MAAM,OAAoB,CAAC;GAC3B,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;IACrC,MAAM,UAAU,MAAM,EAAE,CAAC,KAAK;IAC9B,IAAI,CAAC,SAAS;IACd,MAAM,QAAQ,QAAQ,MAAM,KAAK;IACjC,MAAM,OAAO,SAAS,MAAM,IAAI,EAAE;IAClC,MAAM,MAAM,SAAS,MAAM,IAAI,EAAE;IACjC,IAAI,CAAC,OAAO,MAAM,IAAI,KAAK,CAAC,OAAO,MAAM,GAAG,GAC1C,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC;GAEzB;GAEA,SAAS,MAAM,IAAI;EACrB,SAAS,OAAO;GACd,SAAS,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;EACpE;CACF,CAAC;AACH"}
1
+ {"version":3,"file":"ps.mjs","names":["os"],"sources":["../../../../src/utils/runParallel/ps.ts"],"sourcesContent":["import * as os from 'node:os';\nimport { run } from './bin';\n\ntype ProcessList = [number, number][]; // [PPID, PID][]\ntype ProcessListCallback = (err: Error | null, list?: ProcessList) => void;\n\n/**\n * Gets the list of all the pids of the system through the ps command.\n * @param callback Callback function with error and process list.\n */\nexport const ps = (callback: ProcessListCallback): void => {\n const args = ['-A', '-o', 'ppid,pid'];\n\n run('ps', args, (err, stdout, code) => {\n if (err) {\n callback(err);\n return;\n }\n if (code !== 0) {\n callback(new Error(`pidtree ps command exited with code ${code}`));\n return;\n }\n\n // Example of stdout\n //\n // PPID PID\n // 1 430\n // 430 432\n // 1 727\n // 1 7166\n\n if (!stdout) {\n callback(new Error('No stdout received from ps command'));\n return;\n }\n\n try {\n const lines = stdout.split(os.EOL);\n\n const list: ProcessList = [];\n for (let i = 1; i < lines.length; i++) {\n const line = lines[i];\n\n if (!line) continue;\n\n const trimmed = line.trim();\n\n if (!trimmed) continue;\n\n const parts = trimmed.split(/\\s+/);\n const p0 = parts[0];\n const p1 = parts[1];\n\n if (!p0 || !p1) continue;\n\n const ppid = parseInt(p0, 10); // PPID\n const pid = parseInt(p1, 10); // PID\n\n if (!Number.isNaN(ppid) && !Number.isNaN(pid)) {\n list.push([ppid, pid]);\n }\n }\n\n callback(null, list);\n } catch (error) {\n callback(error instanceof Error ? error : new Error(String(error)));\n }\n });\n};\n"],"mappings":";;;;;;;;AAUA,MAAa,MAAM,aAAwC;CAGzD,IAAI,MAAM;EAFI;EAAM;EAAM;CAEb,IAAI,KAAK,QAAQ,SAAS;EACrC,IAAI,KAAK;GACP,SAAS,GAAG;GACZ;EACF;EACA,IAAI,SAAS,GAAG;GACd,yBAAS,IAAI,MAAM,uCAAuC,MAAM,CAAC;GACjE;EACF;EAUA,IAAI,CAAC,QAAQ;GACX,yBAAS,IAAI,MAAM,oCAAoC,CAAC;GACxD;EACF;EAEA,IAAI;GACF,MAAM,QAAQ,OAAO,MAAMA,KAAG,GAAG;GAEjC,MAAM,OAAoB,CAAC;GAC3B,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;IACrC,MAAM,OAAO,MAAM;IAEnB,IAAI,CAAC,MAAM;IAEX,MAAM,UAAU,KAAK,KAAK;IAE1B,IAAI,CAAC,SAAS;IAEd,MAAM,QAAQ,QAAQ,MAAM,KAAK;IACjC,MAAM,KAAK,MAAM;IACjB,MAAM,KAAK,MAAM;IAEjB,IAAI,CAAC,MAAM,CAAC,IAAI;IAEhB,MAAM,OAAO,SAAS,IAAI,EAAE;IAC5B,MAAM,MAAM,SAAS,IAAI,EAAE;IAE3B,IAAI,CAAC,OAAO,MAAM,IAAI,KAAK,CAAC,OAAO,MAAM,GAAG,GAC1C,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC;GAEzB;GAEA,SAAS,MAAM,IAAI;EACrB,SAAS,OAAO;GACd,SAAS,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;EACpE;CACF,CAAC;AACH"}
@@ -119,7 +119,8 @@ const runTasks = (tasks, options) => {
119
119
  if (aborted) return;
120
120
  if (options.aggregateOutput) originalOutputStream.write(writer.toString());
121
121
  if (result.code === null && result.signal !== null && result.signal !== void 0) result.code = 128 + convert(result.signal);
122
- results[task.index].code = result.code;
122
+ const taskResult = results[task.index];
123
+ if (taskResult) taskResult.code = result.code;
123
124
  if (result.code) {
124
125
  error = /* @__PURE__ */ new Error(`Task ${result.name} failed with code ${result.code}`);
125
126
  if (!options.continueOnError) {
@@ -1 +1 @@
1
- {"version":3,"file":"runTask.mjs","names":[],"sources":["../../../../src/utils/runParallel/runTask.ts"],"sourcesContent":["//------------------------------------------------------------------------------\n// Requirements\n//------------------------------------------------------------------------------\n\nimport { Writable } from 'node:stream';\n\n//------------------------------------------------------------------------------\n// Helpers\n//------------------------------------------------------------------------------\n\n/**\n * Remove the given value from the array.\n */\nconst remove = <T>(array: T[], x: T): void => {\n const index = array.indexOf(x);\n if (index !== -1) {\n array.splice(index, 1);\n }\n};\n\nconst signals: Record<string, number> = {\n // Signal name mappings to their respective standard numeric codes.\n // See: https://man7.org/linux/man-pages/man7/signal.7.html\n\n SIGABRT: 6, // Abort signal from abort(3)\n SIGALRM: 14, // Timer signal from alarm(2)\n SIGBUS: 10, // Bus error (bad memory access)\n SIGCHLD: 20, // Child stopped or terminated\n SIGCONT: 19, // Continue if stopped\n SIGFPE: 8, // Floating point exception\n SIGHUP: 1, // Hangup detected on controlling terminal or death of controlling process\n SIGILL: 4, // Illegal Instruction\n SIGINT: 2, // Interrupt from keyboard (Ctrl+C)\n SIGKILL: 9, // Kill signal (cannot be caught or ignored)\n SIGPIPE: 13, // Broken pipe: write to pipe with no readers\n SIGQUIT: 3, // Quit from keyboard (Ctrl+\\)\n SIGSEGV: 11, // Invalid memory reference (segmentation fault)\n SIGSTOP: 17, // Stop process (cannot be caught or ignored)\n SIGTERM: 15, // Termination signal\n SIGTRAP: 5, // Trace/breakpoint trap\n SIGTSTP: 18, // Stop typed at tty (Ctrl+Z)\n SIGTTIN: 21, // tty input for background process\n SIGTTOU: 22, // tty output for background process\n SIGUSR1: 30, // User-defined signal 1\n SIGUSR2: 31, // User-defined signal 2\n};\n\n/**\n * Converts a signal name to a number.\n */\nconst convert = (signal: string): number => {\n return signals[signal] || 0;\n};\n\n/**\n * Simple in-memory writable stream\n */\nclass MemoryStream extends Writable {\n private chunks: Buffer[] = [];\n\n _write(\n chunk: Buffer,\n _encoding: string,\n callback: (error?: Error | null) => void\n ): void {\n this.chunks.push(chunk);\n callback();\n }\n\n toString(): string {\n return Buffer.concat(this.chunks).toString('utf8');\n }\n}\n\n//------------------------------------------------------------------------------\n// Types\n//------------------------------------------------------------------------------\n\ninterface TaskResult {\n name: string;\n code: number | null;\n signal?: string | null;\n}\n\ninterface TaskQueueItem {\n name: string;\n index: number;\n}\n\ninterface RunTaskOptions {\n stdout: NodeJS.WritableStream;\n stderr?: NodeJS.WritableStream;\n aggregateOutput?: boolean;\n continueOnError?: boolean;\n race?: boolean;\n maxParallel?: number;\n}\n\ninterface TaskPromise extends Promise<TaskResult> {\n abort?: () => void;\n}\n\n//------------------------------------------------------------------------------\n// Public Interface\n//------------------------------------------------------------------------------\n\n/**\n * Run npm-scripts of given names in parallel.\n *\n * If a npm-script exited with a non-zero code, this aborts other all npm-scripts.\n *\n * Note: This is a simplified version for our use case.\n * The full implementation would require the actual runTask function from npm-run-all.\n */\nexport const runTasks = (\n tasks: string[],\n options: RunTaskOptions\n): Promise<TaskResult[]> => {\n return new Promise((resolve, reject) => {\n if (tasks.length === 0) {\n resolve([]);\n return;\n }\n\n const results: TaskResult[] = tasks.map((task) => ({\n name: task,\n code: undefined as any,\n }));\n const queue: TaskQueueItem[] = tasks.map((task, index) => ({\n name: task,\n index,\n }));\n const promises: TaskPromise[] = [];\n let error: Error | null = null;\n let aborted = false;\n\n /**\n * Done.\n */\n const done = (): void => {\n if (error == null) {\n resolve(results);\n } else {\n reject(error);\n }\n };\n\n /**\n * Aborts all tasks.\n */\n const abort = (): void => {\n if (aborted) {\n return;\n }\n aborted = true;\n\n if (promises.length === 0) {\n done();\n } else {\n for (const p of promises) {\n p.abort?.();\n }\n Promise.all(promises).then(done, reject);\n }\n };\n\n /**\n * Runs a next task.\n */\n const next = (): void => {\n if (aborted) {\n return;\n }\n if (queue.length === 0) {\n if (promises.length === 0) {\n done();\n }\n return;\n }\n\n const originalOutputStream = options.stdout;\n const optionsClone = { ...options };\n const writer = new MemoryStream();\n\n if (options.aggregateOutput) {\n optionsClone.stdout = writer as any;\n }\n\n const task = queue.shift()!;\n\n // Note: This requires the actual runTask implementation from npm-run-all\n // For now, this is a placeholder that would need to be implemented\n const promise = Promise.resolve({\n name: task.name,\n code: 0,\n signal: null,\n }) as TaskPromise;\n\n promises.push(promise);\n promise.then(\n (result) => {\n remove(promises, promise);\n if (aborted) {\n return;\n }\n\n if (options.aggregateOutput) {\n originalOutputStream.write(writer.toString());\n }\n\n // Check if the task failed as a result of a signal, and\n // amend the exit code as a result.\n if (\n result.code === null &&\n result.signal !== null &&\n result.signal !== undefined\n ) {\n // An exit caused by a signal must return a status code\n // of 128 plus the value of the signal code.\n // Ref: https://nodejs.org/api/process.html#process_exit_codes\n result.code = 128 + convert(result.signal);\n }\n\n // Save the result.\n results[task.index].code = result.code;\n\n // Aborts all tasks if it's an error.\n if (result.code) {\n error = new Error(\n `Task ${result.name} failed with code ${result.code}`\n );\n if (!options.continueOnError) {\n abort();\n return;\n }\n }\n\n // Aborts all tasks if options.race is true.\n if (options.race && !result.code) {\n abort();\n return;\n }\n\n // Call the next task.\n next();\n },\n (thisError: Error) => {\n remove(promises, promise);\n if (!options.continueOnError || options.race) {\n error = thisError;\n abort();\n return;\n }\n next();\n }\n );\n };\n\n const max = options.maxParallel;\n const end =\n typeof max === 'number' && max > 0\n ? Math.min(tasks.length, max)\n : tasks.length;\n for (let i = 0; i < end; ++i) {\n next();\n }\n });\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"runTask.mjs","names":[],"sources":["../../../../src/utils/runParallel/runTask.ts"],"sourcesContent":["//------------------------------------------------------------------------------\n// Requirements\n//------------------------------------------------------------------------------\n\nimport { Writable } from 'node:stream';\n\n//------------------------------------------------------------------------------\n// Helpers\n//------------------------------------------------------------------------------\n\n/**\n * Remove the given value from the array.\n */\nconst remove = <T>(array: T[], x: T): void => {\n const index = array.indexOf(x);\n if (index !== -1) {\n array.splice(index, 1);\n }\n};\n\nconst signals: Record<string, number> = {\n // Signal name mappings to their respective standard numeric codes.\n // See: https://man7.org/linux/man-pages/man7/signal.7.html\n\n SIGABRT: 6, // Abort signal from abort(3)\n SIGALRM: 14, // Timer signal from alarm(2)\n SIGBUS: 10, // Bus error (bad memory access)\n SIGCHLD: 20, // Child stopped or terminated\n SIGCONT: 19, // Continue if stopped\n SIGFPE: 8, // Floating point exception\n SIGHUP: 1, // Hangup detected on controlling terminal or death of controlling process\n SIGILL: 4, // Illegal Instruction\n SIGINT: 2, // Interrupt from keyboard (Ctrl+C)\n SIGKILL: 9, // Kill signal (cannot be caught or ignored)\n SIGPIPE: 13, // Broken pipe: write to pipe with no readers\n SIGQUIT: 3, // Quit from keyboard (Ctrl+\\)\n SIGSEGV: 11, // Invalid memory reference (segmentation fault)\n SIGSTOP: 17, // Stop process (cannot be caught or ignored)\n SIGTERM: 15, // Termination signal\n SIGTRAP: 5, // Trace/breakpoint trap\n SIGTSTP: 18, // Stop typed at tty (Ctrl+Z)\n SIGTTIN: 21, // tty input for background process\n SIGTTOU: 22, // tty output for background process\n SIGUSR1: 30, // User-defined signal 1\n SIGUSR2: 31, // User-defined signal 2\n};\n\n/**\n * Converts a signal name to a number.\n */\nconst convert = (signal: string): number => {\n return signals[signal] || 0;\n};\n\n/**\n * Simple in-memory writable stream\n */\nclass MemoryStream extends Writable {\n private chunks: Buffer[] = [];\n\n _write(\n chunk: Buffer,\n _encoding: string,\n callback: (error?: Error | null) => void\n ): void {\n this.chunks.push(chunk);\n callback();\n }\n\n toString(): string {\n return Buffer.concat(this.chunks).toString('utf8');\n }\n}\n\n//------------------------------------------------------------------------------\n// Types\n//------------------------------------------------------------------------------\n\ninterface TaskResult {\n name: string;\n code: number | null;\n signal?: string | null;\n}\n\ninterface TaskQueueItem {\n name: string;\n index: number;\n}\n\ninterface RunTaskOptions {\n stdout: NodeJS.WritableStream;\n stderr?: NodeJS.WritableStream;\n aggregateOutput?: boolean;\n continueOnError?: boolean;\n race?: boolean;\n maxParallel?: number;\n}\n\ninterface TaskPromise extends Promise<TaskResult> {\n abort?: () => void;\n}\n\n//------------------------------------------------------------------------------\n// Public Interface\n//------------------------------------------------------------------------------\n\n/**\n * Run npm-scripts of given names in parallel.\n *\n * If a npm-script exited with a non-zero code, this aborts other all npm-scripts.\n *\n * Note: This is a simplified version for our use case.\n * The full implementation would require the actual runTask function from npm-run-all.\n */\nexport const runTasks = (\n tasks: string[],\n options: RunTaskOptions\n): Promise<TaskResult[]> => {\n return new Promise((resolve, reject) => {\n if (tasks.length === 0) {\n resolve([]);\n return;\n }\n\n const results: TaskResult[] = tasks.map((task) => ({\n name: task,\n code: undefined as any,\n }));\n const queue: TaskQueueItem[] = tasks.map((task, index) => ({\n name: task,\n index,\n }));\n const promises: TaskPromise[] = [];\n let error: Error | null = null;\n let aborted = false;\n\n /**\n * Done.\n */\n const done = (): void => {\n if (error == null) {\n resolve(results);\n } else {\n reject(error);\n }\n };\n\n /**\n * Aborts all tasks.\n */\n const abort = (): void => {\n if (aborted) {\n return;\n }\n aborted = true;\n\n if (promises.length === 0) {\n done();\n } else {\n for (const p of promises) {\n p.abort?.();\n }\n Promise.all(promises).then(done, reject);\n }\n };\n\n /**\n * Runs a next task.\n */\n const next = (): void => {\n if (aborted) {\n return;\n }\n if (queue.length === 0) {\n if (promises.length === 0) {\n done();\n }\n return;\n }\n\n const originalOutputStream = options.stdout;\n const optionsClone = { ...options };\n const writer = new MemoryStream();\n\n if (options.aggregateOutput) {\n optionsClone.stdout = writer as any;\n }\n\n const task = queue.shift()!;\n\n // Note: This requires the actual runTask implementation from npm-run-all\n // For now, this is a placeholder that would need to be implemented\n const promise = Promise.resolve({\n name: task.name,\n code: 0,\n signal: null,\n }) as TaskPromise;\n\n promises.push(promise);\n promise.then(\n (result) => {\n remove(promises, promise);\n if (aborted) {\n return;\n }\n\n if (options.aggregateOutput) {\n originalOutputStream.write(writer.toString());\n }\n\n // Check if the task failed as a result of a signal, and\n // amend the exit code as a result.\n if (\n result.code === null &&\n result.signal !== null &&\n result.signal !== undefined\n ) {\n // An exit caused by a signal must return a status code\n // of 128 plus the value of the signal code.\n // Ref: https://nodejs.org/api/process.html#process_exit_codes\n result.code = 128 + convert(result.signal);\n }\n\n // Save the result.\n const taskResult = results[task.index];\n\n if (taskResult) {\n taskResult.code = result.code;\n }\n\n // Aborts all tasks if it's an error.\n if (result.code) {\n error = new Error(\n `Task ${result.name} failed with code ${result.code}`\n );\n if (!options.continueOnError) {\n abort();\n return;\n }\n }\n\n // Aborts all tasks if options.race is true.\n if (options.race && !result.code) {\n abort();\n return;\n }\n\n // Call the next task.\n next();\n },\n (thisError: Error) => {\n remove(promises, promise);\n if (!options.continueOnError || options.race) {\n error = thisError;\n abort();\n return;\n }\n next();\n }\n );\n };\n\n const max = options.maxParallel;\n const end =\n typeof max === 'number' && max > 0\n ? Math.min(tasks.length, max)\n : tasks.length;\n for (let i = 0; i < end; ++i) {\n next();\n }\n });\n};\n"],"mappings":"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"}
@@ -31,11 +31,16 @@ const wmic = (callback) => {
31
31
  const lines = stdout.split(os$1.EOL);
32
32
  const list = [];
33
33
  for (let i = 1; i < lines.length; i++) {
34
- const trimmed = lines[i].trim();
34
+ const line = lines[i];
35
+ if (!line) continue;
36
+ const trimmed = line.trim();
35
37
  if (!trimmed) continue;
36
38
  const parts = trimmed.split(/\s+/);
37
- const ppid = parseInt(parts[0], 10);
38
- const pid = parseInt(parts[1], 10);
39
+ const p0 = parts[0];
40
+ const p1 = parts[1];
41
+ if (!p0 || !p1) continue;
42
+ const ppid = parseInt(p0, 10);
43
+ const pid = parseInt(p1, 10);
39
44
  if (!Number.isNaN(ppid) && !Number.isNaN(pid)) list.push([ppid, pid]);
40
45
  }
41
46
  callback(null, list);
@@ -1 +1 @@
1
- {"version":3,"file":"wmic.mjs","names":["os"],"sources":["../../../../src/utils/runParallel/wmic.ts"],"sourcesContent":["import type { SpawnOptions } from 'node:child_process';\nimport * as os from 'node:os';\nimport { run } from './bin';\n\ntype ProcessList = [number, number][]; // [PPID, PID][]\ntype ProcessListCallback = (err: Error | null, list?: ProcessList) => void;\n\n/**\n * Gets the list of all the pids of the system through the wmic command.\n * @param callback Callback function with error and process list.\n */\nexport const wmic = (callback: ProcessListCallback): void => {\n const args = ['PROCESS', 'get', 'ParentProcessId,ProcessId'];\n const options: SpawnOptions = {\n windowsHide: true,\n windowsVerbatimArguments: true,\n };\n run('wmic', args, options, (err, stdout, code) => {\n if (err) {\n callback(err);\n return;\n }\n\n if (code !== 0) {\n callback(new Error(`pidtree wmic command exited with code ${code}`));\n return;\n }\n\n // Example of stdout\n //\n // ParentProcessId ProcessId\n // 0 777\n\n if (!stdout) {\n callback(new Error('No stdout received from wmic command'));\n return;\n }\n\n try {\n const lines = stdout.split(os.EOL);\n\n const list: ProcessList = [];\n for (let i = 1; i < lines.length; i++) {\n const trimmed = lines[i].trim();\n if (!trimmed) continue;\n const parts = trimmed.split(/\\s+/);\n const ppid = parseInt(parts[0], 10); // PPID\n const pid = parseInt(parts[1], 10); // PID\n if (!Number.isNaN(ppid) && !Number.isNaN(pid)) {\n list.push([ppid, pid]);\n }\n }\n\n callback(null, list);\n } catch (error) {\n callback(error instanceof Error ? error : new Error(String(error)));\n }\n });\n};\n"],"mappings":";;;;;;;;AAWA,MAAa,QAAQ,aAAwC;CAM3D,IAAI,QAAQ;EALE;EAAW;EAAO;CAKjB,GAAG;EAHhB,aAAa;EACb,0BAA0B;CAEJ,IAAI,KAAK,QAAQ,SAAS;EAChD,IAAI,KAAK;GACP,SAAS,GAAG;GACZ;EACF;EAEA,IAAI,SAAS,GAAG;GACd,yBAAS,IAAI,MAAM,yCAAyC,MAAM,CAAC;GACnE;EACF;EAOA,IAAI,CAAC,QAAQ;GACX,yBAAS,IAAI,MAAM,sCAAsC,CAAC;GAC1D;EACF;EAEA,IAAI;GACF,MAAM,QAAQ,OAAO,MAAMA,KAAG,GAAG;GAEjC,MAAM,OAAoB,CAAC;GAC3B,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;IACrC,MAAM,UAAU,MAAM,EAAE,CAAC,KAAK;IAC9B,IAAI,CAAC,SAAS;IACd,MAAM,QAAQ,QAAQ,MAAM,KAAK;IACjC,MAAM,OAAO,SAAS,MAAM,IAAI,EAAE;IAClC,MAAM,MAAM,SAAS,MAAM,IAAI,EAAE;IACjC,IAAI,CAAC,OAAO,MAAM,IAAI,KAAK,CAAC,OAAO,MAAM,GAAG,GAC1C,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC;GAEzB;GAEA,SAAS,MAAM,IAAI;EACrB,SAAS,OAAO;GACd,SAAS,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;EACpE;CACF,CAAC;AACH"}
1
+ {"version":3,"file":"wmic.mjs","names":["os"],"sources":["../../../../src/utils/runParallel/wmic.ts"],"sourcesContent":["import type { SpawnOptions } from 'node:child_process';\nimport * as os from 'node:os';\nimport { run } from './bin';\n\ntype ProcessList = [number, number][]; // [PPID, PID][]\ntype ProcessListCallback = (err: Error | null, list?: ProcessList) => void;\n\n/**\n * Gets the list of all the pids of the system through the wmic command.\n * @param callback Callback function with error and process list.\n */\nexport const wmic = (callback: ProcessListCallback): void => {\n const args = ['PROCESS', 'get', 'ParentProcessId,ProcessId'];\n const options: SpawnOptions = {\n windowsHide: true,\n windowsVerbatimArguments: true,\n };\n run('wmic', args, options, (err, stdout, code) => {\n if (err) {\n callback(err);\n return;\n }\n\n if (code !== 0) {\n callback(new Error(`pidtree wmic command exited with code ${code}`));\n return;\n }\n\n // Example of stdout\n //\n // ParentProcessId ProcessId\n // 0 777\n\n if (!stdout) {\n callback(new Error('No stdout received from wmic command'));\n return;\n }\n\n try {\n const lines = stdout.split(os.EOL);\n\n const list: ProcessList = [];\n for (let i = 1; i < lines.length; i++) {\n const line = lines[i];\n\n if (!line) continue;\n const trimmed = line.trim();\n\n if (!trimmed) continue;\n\n const parts = trimmed.split(/\\s+/);\n const p0 = parts[0];\n const p1 = parts[1];\n\n if (!p0 || !p1) continue;\n\n const ppid = parseInt(p0, 10); // PPID\n const pid = parseInt(p1, 10); // PID\n\n if (!Number.isNaN(ppid) && !Number.isNaN(pid)) {\n list.push([ppid, pid]);\n }\n }\n\n callback(null, list);\n } catch (error) {\n callback(error instanceof Error ? error : new Error(String(error)));\n }\n });\n};\n"],"mappings":";;;;;;;;AAWA,MAAa,QAAQ,aAAwC;CAM3D,IAAI,QAAQ;EALE;EAAW;EAAO;CAKjB,GAAG;EAHhB,aAAa;EACb,0BAA0B;CAEJ,IAAI,KAAK,QAAQ,SAAS;EAChD,IAAI,KAAK;GACP,SAAS,GAAG;GACZ;EACF;EAEA,IAAI,SAAS,GAAG;GACd,yBAAS,IAAI,MAAM,yCAAyC,MAAM,CAAC;GACnE;EACF;EAOA,IAAI,CAAC,QAAQ;GACX,yBAAS,IAAI,MAAM,sCAAsC,CAAC;GAC1D;EACF;EAEA,IAAI;GACF,MAAM,QAAQ,OAAO,MAAMA,KAAG,GAAG;GAEjC,MAAM,OAAoB,CAAC;GAC3B,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;IACrC,MAAM,OAAO,MAAM;IAEnB,IAAI,CAAC,MAAM;IACX,MAAM,UAAU,KAAK,KAAK;IAE1B,IAAI,CAAC,SAAS;IAEd,MAAM,QAAQ,QAAQ,MAAM,KAAK;IACjC,MAAM,KAAK,MAAM;IACjB,MAAM,KAAK,MAAM;IAEjB,IAAI,CAAC,MAAM,CAAC,IAAI;IAEhB,MAAM,OAAO,SAAS,IAAI,EAAE;IAC5B,MAAM,MAAM,SAAS,IAAI,EAAE;IAE3B,IAAI,CAAC,OAAO,MAAM,IAAI,KAAK,CAAC,OAAO,MAAM,GAAG,GAC1C,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC;GAEzB;GAEA,SAAS,MAAM,IAAI;EACrB,SAAS,OAAO;GACd,SAAS,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;EACpE;CACF,CAAC;AACH"}
@@ -13,12 +13,15 @@ const detectExportedComponentName = (fileText) => {
13
13
  const cjsDefaultVarRegex = /exports\.default\s*=\s*(\w+)/;
14
14
  const namedExportRegex = /export\s+(?:const|function)\s+(\w+)/g;
15
15
  const defaultEsmFnMatch = fileText.match(defaultEsmFnRegex);
16
- if (defaultEsmFnMatch) return defaultEsmFnMatch[1];
16
+ if (defaultEsmFnMatch?.[1]) return defaultEsmFnMatch[1];
17
17
  const defaultEsmVarMatch = fileText.match(defaultEsmVarRegex);
18
- if (defaultEsmVarMatch) return defaultEsmVarMatch[1];
18
+ if (defaultEsmVarMatch?.[1]) return defaultEsmVarMatch[1];
19
19
  const cjsDefaultMatch = fileText.match(cjsDefaultRegex) || fileText.match(cjsDefaultVarRegex);
20
- if (cjsDefaultMatch) return cjsDefaultMatch[1];
21
- for (const match of fileText.matchAll(namedExportRegex)) if (/^[A-Z]/.test(match[1])) return match[1];
20
+ if (cjsDefaultMatch?.[1]) return cjsDefaultMatch[1];
21
+ for (const match of fileText.matchAll(namedExportRegex)) {
22
+ const name = match[1];
23
+ if (name && /^[A-Z]/.test(name)) return name;
24
+ }
22
25
  return null;
23
26
  };
24
27
 
@@ -1 +1 @@
1
- {"version":3,"file":"detectExportedComponentName.mjs","names":[],"sources":["../../../src/writeContentDeclaration/detectExportedComponentName.ts"],"sourcesContent":["/**\n * Attempt to detect an exported React component name in the file text.\n * Looks for patterns like:\n * - export const MyComponent = ...\n * - export function MyComponent(...)\n * - export default function MyComponent(...)\n */\nexport const detectExportedComponentName = (\n fileText: string\n): string | null => {\n // Added regexes for default ESM, default CJS, and named exports\n const defaultEsmFnRegex = /export\\s+default\\s+function\\s+(\\w+)/;\n const defaultEsmVarRegex = /export\\s+default\\s+(\\w+)/;\n const cjsDefaultRegex = /module\\.exports\\s*=\\s*(\\w+)/;\n const cjsDefaultVarRegex = /exports\\.default\\s*=\\s*(\\w+)/;\n const namedExportRegex = /export\\s+(?:const|function)\\s+(\\w+)/g;\n\n // Check for default ESM function or variable\n const defaultEsmFnMatch = fileText.match(defaultEsmFnRegex);\n if (defaultEsmFnMatch) {\n return defaultEsmFnMatch[1];\n }\n\n const defaultEsmVarMatch = fileText.match(defaultEsmVarRegex);\n if (defaultEsmVarMatch) {\n return defaultEsmVarMatch[1];\n }\n\n // Check for default CJS\n const cjsDefaultMatch =\n fileText.match(cjsDefaultRegex) || fileText.match(cjsDefaultVarRegex);\n\n if (cjsDefaultMatch) return cjsDefaultMatch[1];\n\n // Otherwise, look for capitalized named exports\n for (const match of fileText.matchAll(namedExportRegex)) {\n if (/^[A-Z]/.test(match[1])) return match[1];\n }\n\n // If we can’t find it, return null\n return null;\n};\n"],"mappings":";;;;;;;;AAOA,MAAa,+BACX,aACkB;CAElB,MAAM,oBAAoB;CAC1B,MAAM,qBAAqB;CAC3B,MAAM,kBAAkB;CACxB,MAAM,qBAAqB;CAC3B,MAAM,mBAAmB;CAGzB,MAAM,oBAAoB,SAAS,MAAM,iBAAiB;CAC1D,IAAI,mBACF,OAAO,kBAAkB;CAG3B,MAAM,qBAAqB,SAAS,MAAM,kBAAkB;CAC5D,IAAI,oBACF,OAAO,mBAAmB;CAI5B,MAAM,kBACJ,SAAS,MAAM,eAAe,KAAK,SAAS,MAAM,kBAAkB;CAEtE,IAAI,iBAAiB,OAAO,gBAAgB;CAG5C,KAAK,MAAM,SAAS,SAAS,SAAS,gBAAgB,GACpD,IAAI,SAAS,KAAK,MAAM,EAAE,GAAG,OAAO,MAAM;CAI5C,OAAO;AACT"}
1
+ {"version":3,"file":"detectExportedComponentName.mjs","names":[],"sources":["../../../src/writeContentDeclaration/detectExportedComponentName.ts"],"sourcesContent":["/**\n * Attempt to detect an exported React component name in the file text.\n * Looks for patterns like:\n * - export const MyComponent = ...\n * - export function MyComponent(...)\n * - export default function MyComponent(...)\n */\nexport const detectExportedComponentName = (\n fileText: string\n): string | null => {\n // Added regexes for default ESM, default CJS, and named exports\n const defaultEsmFnRegex = /export\\s+default\\s+function\\s+(\\w+)/;\n const defaultEsmVarRegex = /export\\s+default\\s+(\\w+)/;\n const cjsDefaultRegex = /module\\.exports\\s*=\\s*(\\w+)/;\n const cjsDefaultVarRegex = /exports\\.default\\s*=\\s*(\\w+)/;\n const namedExportRegex = /export\\s+(?:const|function)\\s+(\\w+)/g;\n\n // Check for default ESM function or variable\n const defaultEsmFnMatch = fileText.match(defaultEsmFnRegex);\n\n if (defaultEsmFnMatch?.[1]) {\n return defaultEsmFnMatch[1];\n }\n\n const defaultEsmVarMatch = fileText.match(defaultEsmVarRegex);\n if (defaultEsmVarMatch?.[1]) {\n return defaultEsmVarMatch[1];\n }\n\n // Check for default CJS\n const cjsDefaultMatch =\n fileText.match(cjsDefaultRegex) || fileText.match(cjsDefaultVarRegex);\n\n if (cjsDefaultMatch?.[1]) return cjsDefaultMatch[1];\n\n // Otherwise, look for capitalized named exports\n for (const match of fileText.matchAll(namedExportRegex)) {\n const name = match[1];\n if (name && /^[A-Z]/.test(name)) return name;\n }\n\n // If we can’t find it, return null\n return null;\n};\n"],"mappings":";;;;;;;;AAOA,MAAa,+BACX,aACkB;CAElB,MAAM,oBAAoB;CAC1B,MAAM,qBAAqB;CAC3B,MAAM,kBAAkB;CACxB,MAAM,qBAAqB;CAC3B,MAAM,mBAAmB;CAGzB,MAAM,oBAAoB,SAAS,MAAM,iBAAiB;CAE1D,IAAI,oBAAoB,IACtB,OAAO,kBAAkB;CAG3B,MAAM,qBAAqB,SAAS,MAAM,kBAAkB;CAC5D,IAAI,qBAAqB,IACvB,OAAO,mBAAmB;CAI5B,MAAM,kBACJ,SAAS,MAAM,eAAe,KAAK,SAAS,MAAM,kBAAkB;CAEtE,IAAI,kBAAkB,IAAI,OAAO,gBAAgB;CAGjD,KAAK,MAAM,SAAS,SAAS,SAAS,gBAAgB,GAAG;EACvD,MAAM,OAAO,MAAM;EACnB,IAAI,QAAQ,SAAS,KAAK,IAAI,GAAG,OAAO;CAC1C;CAGA,OAAO;AACT"}
@@ -13,9 +13,9 @@ const stringifyYamlFrontmatter = (fields) => Object.entries(fields).filter(([, v
13
13
  const getMarkdownBody = (content) => {
14
14
  const lines = content.split(/\r?\n/);
15
15
  const firstNonEmptyIndex = lines.findIndex((line) => line.trim() !== "");
16
- if (firstNonEmptyIndex === -1 || lines[firstNonEmptyIndex].trim() !== "---") return content;
16
+ if (firstNonEmptyIndex === -1 || lines[firstNonEmptyIndex]?.trim() !== "---") return content;
17
17
  let endIndex = -1;
18
- for (let i = firstNonEmptyIndex + 1; i < lines.length; i++) if (lines[i].trim() === "---") {
18
+ for (let i = firstNonEmptyIndex + 1; i < lines.length; i++) if (lines[i]?.trim() === "---") {
19
19
  endIndex = i;
20
20
  break;
21
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"writeMarkdownFile.mjs","names":[],"sources":["../../../src/writeContentDeclaration/writeMarkdownFile.ts"],"sourcesContent":["import { execSync } from 'node:child_process';\nimport { mkdir, rename, rm, writeFile } from 'node:fs/promises';\nimport { basename, dirname, join } from 'node:path';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport type { Dictionary } from '@intlayer/types/dictionary';\nimport { MARKDOWN } from '@intlayer/types/nodeType';\nimport { detectFormatCommand } from '../detectFormatCommand';\n\nconst stringifyYamlFrontmatter = (fields: Record<string, any>): string =>\n Object.entries(fields)\n .filter(([, value]) => value !== undefined && value !== null)\n .map(([key, value]) => {\n if (Array.isArray(value)) {\n return `${key}:\\n${value.map((item) => ` - ${JSON.stringify(item)}`).join('\\n')}`;\n }\n if (\n typeof value === 'string' &&\n (value.includes(':') || value.includes('\\n') || value.includes('#'))\n ) {\n return `${key}: ${JSON.stringify(value)}`;\n }\n return `${key}: ${value}`;\n })\n .join('\\n');\n\n// Strips YAML frontmatter from a markdown string, returning only the body\nconst getMarkdownBody = (content: string): string => {\n const lines = content.split(/\\r?\\n/);\n const firstNonEmptyIndex = lines.findIndex((line) => line.trim() !== '');\n\n if (firstNonEmptyIndex === -1 || lines[firstNonEmptyIndex].trim() !== '---') {\n return content;\n }\n\n let endIndex = -1;\n for (let i = firstNonEmptyIndex + 1; i < lines.length; i++) {\n if (lines[i].trim() === '---') {\n endIndex = i;\n break;\n }\n }\n\n if (endIndex === -1) return content;\n\n return lines\n .slice(endIndex + 1)\n .join('\\n')\n .trimStart();\n};\n\n// Fields that are auto-generated / internal and must not appear in frontmatter\nconst EXCLUDED_FRONTMATTER_KEYS = new Set<string>([\n 'content',\n '$schema',\n 'filePath',\n 'localId',\n 'localIds',\n 'projectIds',\n]);\n\nexport const writeMarkdownFile = async (\n absoluteFilePath: string,\n dictionary: Dictionary,\n configuration: IntlayerConfig\n): Promise<void> => {\n const content = dictionary.content as any;\n const markdownRaw =\n typeof content === 'object' && content?.nodeType === MARKDOWN\n ? (content[MARKDOWN] ?? '')\n : '';\n // content.markdown now stores the full file (frontmatter + body); extract only the body\n const markdownBody = getMarkdownBody(markdownRaw);\n\n const frontmatterFields = Object.fromEntries(\n Object.entries(dictionary).filter(\n ([k, v]) => !EXCLUDED_FRONTMATTER_KEYS.has(k) && v !== undefined\n )\n );\n\n const frontmatterStr = stringifyYamlFrontmatter(frontmatterFields);\n const fileContent = `---\\n${frontmatterStr}\\n---\\n\\n${markdownBody}`;\n\n const dir = dirname(absoluteFilePath);\n await mkdir(dir, { recursive: true });\n\n const tempDir = configuration.system?.tempDir;\n if (tempDir) await mkdir(tempDir, { recursive: true });\n\n const tempFileName = `${basename(absoluteFilePath)}.${Date.now()}-${Math.random().toString(36).slice(2)}.tmp`;\n const tempPath = tempDir\n ? join(tempDir, tempFileName)\n : `${absoluteFilePath}.${tempFileName}`;\n\n try {\n await writeFile(tempPath, fileContent, 'utf-8');\n await rename(tempPath, absoluteFilePath);\n } catch (error) {\n try {\n await rm(tempPath, { force: true });\n } catch {\n // ignore\n }\n throw error;\n }\n\n const formatCommand = detectFormatCommand(configuration);\n if (formatCommand) {\n try {\n execSync(formatCommand.replace('{{file}}', absoluteFilePath), {\n stdio: 'inherit',\n cwd: configuration.system.baseDir,\n });\n } catch (error) {\n console.error(error);\n }\n }\n};\n"],"mappings":";;;;;;;AAQA,MAAM,4BAA4B,WAChC,OAAO,QAAQ,MAAM,CAAC,CACnB,QAAQ,GAAG,WAAW,UAAU,UAAa,UAAU,IAAI,CAAC,CAC5D,KAAK,CAAC,KAAK,WAAW;CACrB,IAAI,MAAM,QAAQ,KAAK,GACrB,OAAO,GAAG,IAAI,KAAK,MAAM,KAAK,SAAS,OAAO,KAAK,UAAU,IAAI,GAAG,CAAC,CAAC,KAAK,IAAI;CAEjF,IACE,OAAO,UAAU,aAChB,MAAM,SAAS,GAAG,KAAK,MAAM,SAAS,IAAI,KAAK,MAAM,SAAS,GAAG,IAElE,OAAO,GAAG,IAAI,IAAI,KAAK,UAAU,KAAK;CAExC,OAAO,GAAG,IAAI,IAAI;AACpB,CAAC,CAAC,CACD,KAAK,IAAI;AAGd,MAAM,mBAAmB,YAA4B;CACnD,MAAM,QAAQ,QAAQ,MAAM,OAAO;CACnC,MAAM,qBAAqB,MAAM,WAAW,SAAS,KAAK,KAAK,MAAM,EAAE;CAEvE,IAAI,uBAAuB,MAAM,MAAM,mBAAmB,CAAC,KAAK,MAAM,OACpE,OAAO;CAGT,IAAI,WAAW;CACf,KAAK,IAAI,IAAI,qBAAqB,GAAG,IAAI,MAAM,QAAQ,KACrD,IAAI,MAAM,EAAE,CAAC,KAAK,MAAM,OAAO;EAC7B,WAAW;EACX;CACF;CAGF,IAAI,aAAa,IAAI,OAAO;CAE5B,OAAO,MACJ,MAAM,WAAW,CAAC,CAAC,CACnB,KAAK,IAAI,CAAC,CACV,UAAU;AACf;AAGA,MAAM,4CAA4B,IAAI,IAAY;CAChD;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AAED,MAAa,oBAAoB,OAC/B,kBACA,YACA,kBACkB;CAClB,MAAM,UAAU,WAAW;CAC3B,MAAM,cACJ,OAAO,YAAY,YAAY,SAAS,aAAa,WAChD,QAAQ,aAAa,KACtB;CAEN,MAAM,eAAe,gBAAgB,WAAW;CAEhD,MAAM,oBAAoB,OAAO,YAC/B,OAAO,QAAQ,UAAU,CAAC,CAAC,QACxB,CAAC,GAAG,OAAO,CAAC,0BAA0B,IAAI,CAAC,KAAK,MAAM,MACzD,CACF;CAGA,MAAM,cAAc,QADG,yBAAyB,iBACP,EAAE,WAAW;CAEtD,MAAM,MAAM,QAAQ,gBAAgB;CACpC,MAAM,MAAM,KAAK,EAAE,WAAW,KAAK,CAAC;CAEpC,MAAM,UAAU,cAAc,QAAQ;CACtC,IAAI,SAAS,MAAM,MAAM,SAAS,EAAE,WAAW,KAAK,CAAC;CAErD,MAAM,eAAe,GAAG,SAAS,gBAAgB,EAAE,GAAG,KAAK,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE;CACxG,MAAM,WAAW,UACb,KAAK,SAAS,YAAY,IAC1B,GAAG,iBAAiB,GAAG;CAE3B,IAAI;EACF,MAAM,UAAU,UAAU,aAAa,OAAO;EAC9C,MAAM,OAAO,UAAU,gBAAgB;CACzC,SAAS,OAAO;EACd,IAAI;GACF,MAAM,GAAG,UAAU,EAAE,OAAO,KAAK,CAAC;EACpC,QAAQ,CAER;EACA,MAAM;CACR;CAEA,MAAM,gBAAgB,oBAAoB,aAAa;CACvD,IAAI,eACF,IAAI;EACF,SAAS,cAAc,QAAQ,YAAY,gBAAgB,GAAG;GAC5D,OAAO;GACP,KAAK,cAAc,OAAO;EAC5B,CAAC;CACH,SAAS,OAAO;EACd,QAAQ,MAAM,KAAK;CACrB;AAEJ"}
1
+ {"version":3,"file":"writeMarkdownFile.mjs","names":[],"sources":["../../../src/writeContentDeclaration/writeMarkdownFile.ts"],"sourcesContent":["import { execSync } from 'node:child_process';\nimport { mkdir, rename, rm, writeFile } from 'node:fs/promises';\nimport { basename, dirname, join } from 'node:path';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport type { Dictionary } from '@intlayer/types/dictionary';\nimport { MARKDOWN } from '@intlayer/types/nodeType';\nimport { detectFormatCommand } from '../detectFormatCommand';\n\nconst stringifyYamlFrontmatter = (fields: Record<string, any>): string =>\n Object.entries(fields)\n .filter(([, value]) => value !== undefined && value !== null)\n .map(([key, value]) => {\n if (Array.isArray(value)) {\n return `${key}:\\n${value.map((item) => ` - ${JSON.stringify(item)}`).join('\\n')}`;\n }\n if (\n typeof value === 'string' &&\n (value.includes(':') || value.includes('\\n') || value.includes('#'))\n ) {\n return `${key}: ${JSON.stringify(value)}`;\n }\n return `${key}: ${value}`;\n })\n .join('\\n');\n\n// Strips YAML frontmatter from a markdown string, returning only the body\nconst getMarkdownBody = (content: string): string => {\n const lines = content.split(/\\r?\\n/);\n const firstNonEmptyIndex = lines.findIndex((line) => line.trim() !== '');\n\n if (\n firstNonEmptyIndex === -1 ||\n lines[firstNonEmptyIndex]?.trim() !== '---'\n ) {\n return content;\n }\n\n let endIndex = -1;\n for (let i = firstNonEmptyIndex + 1; i < lines.length; i++) {\n if (lines[i]?.trim() === '---') {\n endIndex = i;\n break;\n }\n }\n\n if (endIndex === -1) return content;\n\n return lines\n .slice(endIndex + 1)\n .join('\\n')\n .trimStart();\n};\n\n// Fields that are auto-generated / internal and must not appear in frontmatter\nconst EXCLUDED_FRONTMATTER_KEYS = new Set<string>([\n 'content',\n '$schema',\n 'filePath',\n 'localId',\n 'localIds',\n 'projectIds',\n]);\n\nexport const writeMarkdownFile = async (\n absoluteFilePath: string,\n dictionary: Dictionary,\n configuration: IntlayerConfig\n): Promise<void> => {\n const content = dictionary.content as any;\n const markdownRaw =\n typeof content === 'object' && content?.nodeType === MARKDOWN\n ? (content[MARKDOWN] ?? '')\n : '';\n // content.markdown now stores the full file (frontmatter + body); extract only the body\n const markdownBody = getMarkdownBody(markdownRaw);\n\n const frontmatterFields = Object.fromEntries(\n Object.entries(dictionary).filter(\n ([k, v]) => !EXCLUDED_FRONTMATTER_KEYS.has(k) && v !== undefined\n )\n );\n\n const frontmatterStr = stringifyYamlFrontmatter(frontmatterFields);\n const fileContent = `---\\n${frontmatterStr}\\n---\\n\\n${markdownBody}`;\n\n const dir = dirname(absoluteFilePath);\n await mkdir(dir, { recursive: true });\n\n const tempDir = configuration.system?.tempDir;\n if (tempDir) await mkdir(tempDir, { recursive: true });\n\n const tempFileName = `${basename(absoluteFilePath)}.${Date.now()}-${Math.random().toString(36).slice(2)}.tmp`;\n const tempPath = tempDir\n ? join(tempDir, tempFileName)\n : `${absoluteFilePath}.${tempFileName}`;\n\n try {\n await writeFile(tempPath, fileContent, 'utf-8');\n await rename(tempPath, absoluteFilePath);\n } catch (error) {\n try {\n await rm(tempPath, { force: true });\n } catch {\n // ignore\n }\n throw error;\n }\n\n const formatCommand = detectFormatCommand(configuration);\n if (formatCommand) {\n try {\n execSync(formatCommand.replace('{{file}}', absoluteFilePath), {\n stdio: 'inherit',\n cwd: configuration.system.baseDir,\n });\n } catch (error) {\n console.error(error);\n }\n }\n};\n"],"mappings":";;;;;;;AAQA,MAAM,4BAA4B,WAChC,OAAO,QAAQ,MAAM,CAAC,CACnB,QAAQ,GAAG,WAAW,UAAU,UAAa,UAAU,IAAI,CAAC,CAC5D,KAAK,CAAC,KAAK,WAAW;CACrB,IAAI,MAAM,QAAQ,KAAK,GACrB,OAAO,GAAG,IAAI,KAAK,MAAM,KAAK,SAAS,OAAO,KAAK,UAAU,IAAI,GAAG,CAAC,CAAC,KAAK,IAAI;CAEjF,IACE,OAAO,UAAU,aAChB,MAAM,SAAS,GAAG,KAAK,MAAM,SAAS,IAAI,KAAK,MAAM,SAAS,GAAG,IAElE,OAAO,GAAG,IAAI,IAAI,KAAK,UAAU,KAAK;CAExC,OAAO,GAAG,IAAI,IAAI;AACpB,CAAC,CAAC,CACD,KAAK,IAAI;AAGd,MAAM,mBAAmB,YAA4B;CACnD,MAAM,QAAQ,QAAQ,MAAM,OAAO;CACnC,MAAM,qBAAqB,MAAM,WAAW,SAAS,KAAK,KAAK,MAAM,EAAE;CAEvE,IACE,uBAAuB,MACvB,MAAM,mBAAmB,EAAE,KAAK,MAAM,OAEtC,OAAO;CAGT,IAAI,WAAW;CACf,KAAK,IAAI,IAAI,qBAAqB,GAAG,IAAI,MAAM,QAAQ,KACrD,IAAI,MAAM,EAAE,EAAE,KAAK,MAAM,OAAO;EAC9B,WAAW;EACX;CACF;CAGF,IAAI,aAAa,IAAI,OAAO;CAE5B,OAAO,MACJ,MAAM,WAAW,CAAC,CAAC,CACnB,KAAK,IAAI,CAAC,CACV,UAAU;AACf;AAGA,MAAM,4CAA4B,IAAI,IAAY;CAChD;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AAED,MAAa,oBAAoB,OAC/B,kBACA,YACA,kBACkB;CAClB,MAAM,UAAU,WAAW;CAC3B,MAAM,cACJ,OAAO,YAAY,YAAY,SAAS,aAAa,WAChD,QAAQ,aAAa,KACtB;CAEN,MAAM,eAAe,gBAAgB,WAAW;CAEhD,MAAM,oBAAoB,OAAO,YAC/B,OAAO,QAAQ,UAAU,CAAC,CAAC,QACxB,CAAC,GAAG,OAAO,CAAC,0BAA0B,IAAI,CAAC,KAAK,MAAM,MACzD,CACF;CAGA,MAAM,cAAc,QADG,yBAAyB,iBACP,EAAE,WAAW;CAEtD,MAAM,MAAM,QAAQ,gBAAgB;CACpC,MAAM,MAAM,KAAK,EAAE,WAAW,KAAK,CAAC;CAEpC,MAAM,UAAU,cAAc,QAAQ;CACtC,IAAI,SAAS,MAAM,MAAM,SAAS,EAAE,WAAW,KAAK,CAAC;CAErD,MAAM,eAAe,GAAG,SAAS,gBAAgB,EAAE,GAAG,KAAK,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE;CACxG,MAAM,WAAW,UACb,KAAK,SAAS,YAAY,IAC1B,GAAG,iBAAiB,GAAG;CAE3B,IAAI;EACF,MAAM,UAAU,UAAU,aAAa,OAAO;EAC9C,MAAM,OAAO,UAAU,gBAAgB;CACzC,SAAS,OAAO;EACd,IAAI;GACF,MAAM,GAAG,UAAU,EAAE,OAAO,KAAK,CAAC;EACpC,QAAQ,CAER;EACA,MAAM;CACR;CAEA,MAAM,gBAAgB,oBAAoB,aAAa;CACvD,IAAI,eACF,IAAI;EACF,SAAS,cAAc,QAAQ,YAAY,gBAAgB,GAAG;GAC5D,OAAO;GACP,KAAK,cAAc,OAAO;EAC5B,CAAC;CACH,SAAS,OAAO;EACd,QAAQ,MAAM,KAAK;CACrB;AAEJ"}
@@ -7,12 +7,14 @@ import { writeJSFile } from "./writeContentDeclaration/writeJSFile.js";
7
7
  import "./writeContentDeclaration/index.js";
8
8
  import { detectFormatCommand } from "./detectFormatCommand.js";
9
9
  import { getContentDeclarationFileTemplate } from "./getContentDeclarationFileTemplate/getContentDeclarationFileTemplate.js";
10
- import { COMPAT_I18N_LIBRARIES, CompatI18nLibrary, PackageManager, detectCompatI18nLibraries, detectPackageManager, installPackages } from "./init/utils/packageManager.js";
10
+ import { COMPAT_I18N_LIBRARIES, CompatI18nLibrary, PackageManager, detectCompatI18nLibraries, detectPackageManager, hasLintTooling, installPackages } from "./init/utils/packageManager.js";
11
11
  import { RoutingMode } from "./init/utils/configManipulation.js";
12
12
  import { CmsCredentials, enableEditorInConfig, setupCmsCredentials, writeCmsCredentialsToEnv } from "./init/cms.js";
13
+ import { DocumentationRouter, DocumentationRouterType, getDocumentationUrl } from "./init/documentationRouter.js";
13
14
  import { NEXT_INTLAYER_BABEL_CONFIG_CONTENT } from "./init/utils/nextCompilerBabel.js";
15
+ import { hasUrlRoutingFramework } from "./init/utils/urlRoutingFramework.js";
14
16
  import "./init/utils/index.js";
15
- import { ContentStrategy, InitOptions, getDefaultApplicationURL, initIntlayer } from "./init/index.js";
17
+ import { ContentStrategy, InitOptions, getDefaultApplicationURL, initIntlayer, logInitSuccessMessage } from "./init/index.js";
16
18
  import { UpgradeIntlayerPackagesOptions, UpgradeIntlayerPackagesResult, upgradeIntlayerPackages } from "./init/upgradeIntlayerPackages.js";
17
19
  import { installLSP } from "./installLSP.js";
18
20
  import { PLATFORMS, PLATFORMS_METADATA, Platform, PlatformMetadata, SKILLS, SKILLS_METADATA, Skill, getInitialSkills, installSkills } from "./installSkills/index.js";
@@ -21,4 +23,4 @@ import { listDictionaries, listDictionariesWithStats } from "./listDictionariesP
21
23
  import { DiffMode, ListGitFilesOptions, ListGitLinesOptions, listGitFiles, listGitLines } from "./listGitFiles.js";
22
24
  import { ListProjectsOptions, getGitRootDir, listProjects } from "./listProjects.js";
23
25
  import { logConfigDetails } from "./logConfigDetails.js";
24
- export { COMPAT_I18N_LIBRARIES, type CmsCredentials, type CompatI18nLibrary, ContentStrategy, DictionaryStatus, DiffMode, InitOptions, ListGitFilesOptions, ListGitLinesOptions, ListProjectsOptions, MCPTransport, NEXT_INTLAYER_BABEL_CONFIG_CONTENT, PLATFORMS, PLATFORMS_METADATA, type PackageManager, Platform, PlatformMetadata, type RoutingMode, SKILLS, SKILLS_METADATA, Skill, UpgradeIntlayerPackagesOptions, UpgradeIntlayerPackagesResult, detectCompatI18nLibraries, detectExportedComponentName, detectFormatCommand, detectPackageManager, enableEditorInConfig, getContentDeclarationFileTemplate, getDefaultApplicationURL, getGitRootDir, getInitialSkills, initIntlayer, installLSP, installMCP, installPackages, installSkills, listDictionaries, listDictionariesWithStats, listGitFiles, listGitLines, listProjects, logConfigDetails, prepareIntlayer, setupCmsCredentials, transformJSFile, upgradeIntlayerPackages, writeCmsCredentialsToEnv, writeContentDeclaration, writeJSFile };
26
+ export { COMPAT_I18N_LIBRARIES, type CmsCredentials, type CompatI18nLibrary, ContentStrategy, DictionaryStatus, DiffMode, DocumentationRouter, type DocumentationRouterType, InitOptions, ListGitFilesOptions, ListGitLinesOptions, ListProjectsOptions, MCPTransport, NEXT_INTLAYER_BABEL_CONFIG_CONTENT, PLATFORMS, PLATFORMS_METADATA, type PackageManager, Platform, PlatformMetadata, type RoutingMode, SKILLS, SKILLS_METADATA, Skill, UpgradeIntlayerPackagesOptions, UpgradeIntlayerPackagesResult, detectCompatI18nLibraries, detectExportedComponentName, detectFormatCommand, detectPackageManager, enableEditorInConfig, getContentDeclarationFileTemplate, getDefaultApplicationURL, getDocumentationUrl, getGitRootDir, getInitialSkills, hasLintTooling, hasUrlRoutingFramework, initIntlayer, installLSP, installMCP, installPackages, installSkills, listDictionaries, listDictionariesWithStats, listGitFiles, listGitLines, listProjects, logConfigDetails, logInitSuccessMessage, prepareIntlayer, setupCmsCredentials, transformJSFile, upgradeIntlayerPackages, writeCmsCredentialsToEnv, writeContentDeclaration, writeJSFile };
@@ -1 +1 @@
1
- {"version":3,"file":"rebuildDocument.d.ts","names":[],"sources":["../../../src/docReview/rebuildDocument.ts"],"mappings":";;;;;;YAMY;;EAEV,WAAW;;EAEX;;EAEA;;YAGU;EACV,YAAY;EACZ,cAAc;EACd,MAAM;;YAGI;EACV,kBAAkB;;;;;;;;;;qBAWP,6BAAwB,YAAA,cAAA,QAIlC,iBAAe;;;;;;;;;;qBAmDL,wBAAqB,MAC1B,eAAa,cACL,sBAAoB,kBAChB"}
1
+ {"version":3,"file":"rebuildDocument.d.ts","names":[],"sources":["../../../src/docReview/rebuildDocument.ts"],"mappings":";;;;;;YAMY;;EAEV,WAAW;;EAEX;;EAEA;;YAGU;EACV,YAAY;EACZ,cAAc;EACd,MAAM;;YAGI;EACV,kBAAkB;;;;;;;;;;qBAWP,6BAAwB,YAAA,cAAA,QAIlC,iBAAe;;;;;;;;;;qBAwDL,wBAAqB,MAC1B,eAAa,cACL,sBAAoB,kBAChB"}
@@ -1 +1 @@
1
- {"version":3,"file":"reviewReport.d.ts","names":[],"sources":["../../../src/docReview/reviewReport.ts"],"mappings":";;;;;;;;;YAYY;;YAGA;EACV;EACA;;;;;;;;;YAUU;;EAEV,QAAQ;;EAER,gBAAgB;;EAEhB,kBAAkB;;EAElB;;EAEA;;YAGU;;EAEV;;EAEA;;EAEA;;EAEA;;YAGU;;EAEV,QAAQ;;EAER,SAAS;;YAGC;;EAEV;;EAEA;;;;;;;;;EASA;;;;;;;;;;;;;qBAcW,sBAAiB,UAAA,YAAA,gBAI3B,2BAAyB;;;;;;;;;;;qBAgJf,qBAAkB,QACrB,cAAY;EACR;EAAoB"}
1
+ {"version":3,"file":"reviewReport.d.ts","names":[],"sources":["../../../src/docReview/reviewReport.ts"],"mappings":";;;;;;;;;YAgBY;;YAGA;EACV;EACA;;;;;;;;;YAUU;;EAEV,QAAQ;;EAER,gBAAgB;;EAEhB,kBAAkB;;EAElB;;EAEA;;YAGU;;EAEV;;EAEA;;EAEA;;EAEA;;YAGU;;EAEV,QAAQ;;EAER,SAAS;;YAGC;;EAEV;;EAEA;;;;;;;;;EASA;;;;;;;;;;;;;qBAcW,sBAAiB,UAAA,YAAA,gBAI3B,2BAAyB;;;;;;;;;;;qBA6If,qBAAkB,QACrB,cAAY;EACR;EAAoB"}
@@ -1 +1 @@
1
- {"version":3,"file":"segmentDocument.d.ts","names":[],"sources":["../../../src/docReview/segmentDocument.ts"],"mappings":";;;;;;;;;;;;;;;;qBAoDa,kBAAe,iBAAmB;;;;;;;;;;;;;;;;;;;qBAuIlC,kBAAe,iBAAmB"}
1
+ {"version":3,"file":"segmentDocument.d.ts","names":[],"sources":["../../../src/docReview/segmentDocument.ts"],"mappings":";;;;;;;;;;;;;;;;qBAuDa,kBAAe,iBAAmB;;;;;;;;;;;;;;;;;;;qBAwIlC,kBAAe,iBAAmB"}
@@ -25,7 +25,7 @@ export declare const formatDictionaryOutput: (dictionary: Dictionary, format: Di
25
25
  priority?: number;
26
26
  importMode?: import("@intlayer/types").ImportMode;
27
27
  location?: import("@intlayer/types").DictionaryLocation;
28
- schema: undefined;
28
+ schema?: import("@intlayer/types").SchemaKeys;
29
29
  format: string;
30
30
  content: import("@intlayer/core/messageFormat").JsonValue;
31
31
  } | Dictionary;
@@ -52,7 +52,7 @@ export declare const formatDictionariesOutput: (dictionaries: Dictionary[], form
52
52
  priority?: number;
53
53
  importMode?: import("@intlayer/types").ImportMode;
54
54
  location?: import("@intlayer/types").DictionaryLocation;
55
- schema: undefined;
55
+ schema?: import("@intlayer/types").SchemaKeys;
56
56
  format: string;
57
57
  content: import("@intlayer/core/messageFormat").JsonValue;
58
58
  } | Dictionary)[];
@@ -36,6 +36,17 @@ export declare const enableEditorInConfig: (rootDir: string) => Promise<string |
36
36
  * config file that was updated, or `undefined` when none was found.
37
37
  */
38
38
  export declare const setRoutingModeInConfig: (rootDir: string, mode: RoutingMode) => Promise<string | undefined>;
39
+ /**
40
+ * Sets `routing.enableProxy` in the project's Intlayer configuration file.
41
+ * Returns the config file that was updated, or `undefined` when none was found.
42
+ */
43
+ export declare const setEnableProxyInConfig: (rootDir: string, enableProxy: boolean) => Promise<string | undefined>;
44
+ /**
45
+ * Reduces `routing` in the project's Intlayer configuration file to its
46
+ * `storage` entry. Returns the config file that was updated, or `undefined`
47
+ * when none was found.
48
+ */
49
+ export declare const setRoutingStorageOnlyInConfig: (rootDir: string) => Promise<string | undefined>;
39
50
  /**
40
51
  * Sets `compiler.output` in the project's Intlayer configuration file to the
41
52
  * given `{{variable}}` path template. Returns the config file that was updated,
@@ -1 +1 @@
1
- {"version":3,"file":"cms.d.ts","names":[],"sources":["../../../src/init/cms.ts"],"mappings":";;;;;;qBAea;;YAgBD;EACV;EACA;;;;;;;qBAwBW,cAAW,oBAA4B;;;;;;;qBA0CvC,2BAAwB,mBACpB,UAAA,gBACa,mBAC3B;;;;;;;;qBAmCU,uBAAoB,oBAE9B;;;;;qBAwCU,yBAAsB,iBAClB,MACT,gBACL;;;;;;qBAwBU,4BAAyB,iBACrB,2BAEd;;;;;;qBA4BU,sBAAmB,iBACf,aACF,mBACZ"}
1
+ {"version":3,"file":"cms.d.ts","names":[],"sources":["../../../src/init/cms.ts"],"mappings":";;;;;;qBAiBa;;YAgBD;EACV;EACA;;;;;;;qBAwBW,cAAW,oBAA4B;;;;;;;qBA0CvC,2BAAwB,mBACpB,UAAA,gBACa,mBAC3B;;;;;;;;qBAmCU,uBAAoB,oBAE9B;;;;;qBAwCU,yBAAsB,iBAClB,MACT,gBACL;;;;;qBAuBU,yBAAsB,iBAClB,yBAEd;;;;;;qBA4BU,gCAA6B,oBAEvC;;;;;;qBA2BU,4BAAyB,iBACrB,2BAEd;;;;;;qBA4BU,sBAAmB,iBACf,aACF,mBACZ"}
@@ -0,0 +1,64 @@
1
+ //#region src/init/documentationRouter.d.ts
2
+ /**
3
+ * Documentation URL Constants
4
+ */
5
+ export declare const DocumentationRouter: {
6
+ NextJS: string;
7
+ NextJS_16: string;
8
+ NextJS_15: string;
9
+ NextJS_14: string;
10
+ NextJS_PageRouter: string;
11
+ CRA: string;
12
+ Astro: string;
13
+ Astro_Lit: string;
14
+ Astro_Preact: string;
15
+ Astro_React: string;
16
+ Astro_Solid: string;
17
+ Astro_Svelte: string;
18
+ Astro_Vue: string;
19
+ ViteAndReact: string;
20
+ ViteAndReact_ReactRouterV7: string;
21
+ ViteAndVue: string;
22
+ ViteAndSolid: string;
23
+ ViteAndSvelte: string;
24
+ ViteAndPreact: string;
25
+ ViteAndLit: string;
26
+ ViteAndVanilla: string;
27
+ Vanilla: string;
28
+ TanStackRouter: string;
29
+ TanStackRouterAndSolid: string;
30
+ SolidStart: string;
31
+ Analog: string;
32
+ Remix: string;
33
+ NuxtAndVue: string;
34
+ Angular: string;
35
+ Angular_19: string;
36
+ SvelteKit: string;
37
+ ReactNativeAndExpo: string;
38
+ Lynx: string;
39
+ HTMX: string;
40
+ Storybook: string;
41
+ Express: string;
42
+ NestJS: string;
43
+ Fastify: string;
44
+ Hono: string;
45
+ AdonisJS: string;
46
+ Elysia: string;
47
+ Default: string;
48
+ LSP: string;
49
+ ESLint: string;
50
+ NextIntl: string;
51
+ NextI18Next: string;
52
+ ReactI18Next: string;
53
+ ReactIntl: string;
54
+ VueI18n: string;
55
+ NuxtI18n: string;
56
+ I18next: string;
57
+ };
58
+ export type DocumentationRouterType = typeof DocumentationRouter;
59
+ /**
60
+ * Helper: Detects the environment and returns the doc URL
61
+ */
62
+ export declare const getDocumentationUrl: (packageJson: any) => string;
63
+ //#endregion
64
+ //# sourceMappingURL=documentationRouter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documentationRouter.d.ts","names":[],"sources":["../../../src/init/documentationRouter.ts"],"mappings":";;;;qBAGa;EACX;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EAGA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;;YAGU,iCAAiC;;;;qBAKhC,sBAAmB"}
@@ -0,0 +1,16 @@
1
+ import { FrameworkAdapter } from "../types.js";
2
+ //#region src/init/frameworkSetup/backend/index.d.ts
3
+ /**
4
+ * NestJS on the Express platform. Checked before Express: a Nest app is
5
+ * created by `NestFactory`, not `express()`. Nest on Fastify is left to the
6
+ * guide (its adapter is registered through the Fastify instance).
7
+ */
8
+ export declare const nestJsAdapter: FrameworkAdapter;
9
+ export declare const expressAdapter: FrameworkAdapter;
10
+ export declare const fastifyAdapter: FrameworkAdapter;
11
+ export declare const honoAdapter: FrameworkAdapter;
12
+ export declare const elysiaAdapter: FrameworkAdapter;
13
+ /** Backend adapters, in detection order. */
14
+ export declare const backendAdapters: FrameworkAdapter[];
15
+ //#endregion
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../../../src/init/frameworkSetup/backend/index.ts"],"mappings":";;;;;;;qBAiJa,eAAa;qBAUb,gBAAc;qBASd,gBAAc;qBASd,aAAW;qBASX,eAAa;;qBAUb,iBAAiB"}
@@ -0,0 +1,37 @@
1
+ //#region src/init/frameworkSetup/backend/transforms.d.ts
2
+ /** Result of a backend transform. `code` is unchanged for any non-`registered` status. */
3
+ export type BackendTransformResult = {
4
+ code: string;
5
+ status: 'registered' | 'already' | 'skipped';
6
+ };
7
+ /**
8
+ * Registers `express-intlayer` right after `const app = express()`:
9
+ * `app.use(intlayer());`.
10
+ */
11
+ export declare const registerExpressMiddleware: (code: string) => BackendTransformResult;
12
+ /**
13
+ * Registers `fastify-intlayer` right after `const app = Fastify()`:
14
+ * `app.register(intlayer);`. Not awaited, so it also works in CommonJS and
15
+ * non-async scopes — Fastify queues plugins until `ready`/`listen`.
16
+ */
17
+ export declare const registerFastifyPlugin: (code: string) => BackendTransformResult;
18
+ /**
19
+ * Registers `hono-intlayer` right after `const app = new Hono()`:
20
+ * `app.use("*", intlayer());`. A chained declaration
21
+ * (`new Hono().get(…)`) is skipped: its routes would be registered before the
22
+ * middleware, which Hono runs in registration order.
23
+ */
24
+ export declare const registerHonoMiddleware: (code: string) => BackendTransformResult;
25
+ /**
26
+ * Registers `express-intlayer` on a NestJS (Express platform) app right after
27
+ * `const app = await NestFactory.create(…)`: `app.use(intlayer());`.
28
+ */
29
+ export declare const registerNestJsMiddleware: (code: string) => BackendTransformResult;
30
+ /**
31
+ * Registers `elysia-intlayer` directly on the app constructor:
32
+ * `new Elysia()` → `new Elysia().use(intlayer())`. Works for chained
33
+ * declarations too, and keeps the plugin ahead of every route.
34
+ */
35
+ export declare const registerElysiaPlugin: (code: string) => BackendTransformResult;
36
+ //#endregion
37
+ //# sourceMappingURL=transforms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transforms.d.ts","names":[],"sources":["../../../../../src/init/frameworkSetup/backend/transforms.ts"],"mappings":";;YAoBY;EACV;EACA;;;;;;qBAoMW,4BAAyB,iBAEnC;;;;;;qBAoBU,wBAAqB,iBAAmB;;;;;;;qBAsBxC,yBAAsB,iBAAmB;;;;;qBAmBzC,2BAAwB,iBAElC;;;;;;qBAqBU,uBAAoB,iBAAmB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../../src/init/frameworkSetup/index.ts"],"mappings":";;;;;;;;qBAsBa,iBAAc,SAChB,0BACR"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../../src/init/frameworkSetup/index.ts"],"mappings":";;;;;;;;qBAyBa,iBAAc,SAChB,0BACR"}
@@ -0,0 +1,11 @@
1
+ import { FrameworkSetupContext } from "./types.js";
2
+ //#region src/init/frameworkSetup/localeRouting.d.ts
3
+ /**
4
+ * Whether the locale is carried by a URL path segment (`/fr/about`), which the
5
+ * framework router must declare (`[locale]`, `{-$locale}`, `$locale`…). Only the
6
+ * prefix routing modes do, and only while the proxy is enabled: `no-prefix` and
7
+ * `search-params` resolve the locale from storage/headers/query instead.
8
+ */
9
+ export declare const usesLocalePathSegment: ({ routingMode, enableProxy }: Pick<FrameworkSetupContext, 'routingMode' | 'enableProxy'>) => boolean;
10
+ //#endregion
11
+ //# sourceMappingURL=localeRouting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localeRouting.d.ts","names":[],"sources":["../../../../src/init/frameworkSetup/localeRouting.ts"],"mappings":";;;;;;;;qBAQa,0BAAqB,aAAA,eAG/B,KAAK"}
@@ -1,11 +1,11 @@
1
1
  import { FrameworkAdapter } from "../types.js";
2
2
  //#region src/init/frameworkSetup/nextAppRouter/index.d.ts
3
3
  /**
4
- * Next.js App Router adapter. Scaffolds the locale proxy/middleware, restructures
5
- * the app into a `[locale]` segment, and wraps the layout with the unified
6
- * Intlayer provider — all idempotently and without overwriting recognizable
7
- * user code. Pages are never wrapped: `IntlayerProvider` in the locale layout
8
- * covers them.
4
+ * Next.js App Router adapter. Scaffolds the locale proxy/middleware (when the
5
+ * proxy is enabled), restructures the app into a `[locale]` segment (prefix
6
+ * routing modes only), and wraps the layout with the unified Intlayer provider
7
+ * — all idempotently and without overwriting recognizable user code. Pages are
8
+ * never wrapped: `IntlayerProvider` in the layout covers them.
9
9
  */
10
10
  export declare const nextAppRouterAdapter: FrameworkAdapter;
11
11
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../../../src/init/frameworkSetup/nextAppRouter/index.ts"],"mappings":";;;;;;;;;qBA2Ha,sBAAsB"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../../../src/init/frameworkSetup/nextAppRouter/index.ts"],"mappings":";;;;;;;;;qBAiLa,sBAAsB"}
@@ -26,5 +26,17 @@ export declare const LOCALE_LAYOUT_TEMPLATE_JS = "import { IntlayerProvider } fr
26
26
  */
27
27
  export declare const LOCALE_PAGE_TEMPLATE_TS = "import { type NextPageIntlayer } from \"next-intlayer\";\n\nconst Page: NextPageIntlayer = async ({ params }) => {\n const { locale } = await params;\n\n return (\n <main>\n <h1>{locale}</h1>\n <p>Get started by editing this page.</p>\n </main>\n );\n};\n\nexport default Page;\n";
28
28
  export declare const LOCALE_PAGE_TEMPLATE_JS = "const Page = async ({ params }) => {\n const { locale } = await params;\n\n return (\n <main>\n <h1>{locale}</h1>\n <p>Get started by editing this page.</p>\n </main>\n );\n};\n\nexport default Page;\n";
29
+ /**
30
+ * Root layout (`app/layout.tsx`) for routing modes without a locale path
31
+ * segment (`no-prefix`, `search-params`, or no proxy at all). Owns `<html>` and
32
+ * resolves the locale from the request (cookie / header) via `getLocale()`.
33
+ */
34
+ export declare const UNPREFIXED_ROOT_LAYOUT_TEMPLATE_TS = "import type { PropsWithChildren } from \"react\";\nimport { getHTMLTextDir } from \"intlayer\";\nimport { getLocale, IntlayerProvider } from \"next-intlayer/server\";\n\nconst RootLayout = async ({ children }: PropsWithChildren) => {\n const locale = await getLocale();\n\n return (\n <html lang={locale} dir={getHTMLTextDir(locale)}>\n <body>\n <IntlayerProvider locale={locale}>{children}</IntlayerProvider>\n </body>\n </html>\n );\n};\n\nexport default RootLayout;\n";
35
+ export declare const UNPREFIXED_ROOT_LAYOUT_TEMPLATE_JS = "import { getHTMLTextDir } from \"intlayer\";\nimport { getLocale, IntlayerProvider } from \"next-intlayer/server\";\n\nconst RootLayout = async ({ children }) => {\n const locale = await getLocale();\n\n return (\n <html lang={locale} dir={getHTMLTextDir(locale)}>\n <body>\n <IntlayerProvider locale={locale}>{children}</IntlayerProvider>\n </body>\n </html>\n );\n};\n\nexport default RootLayout;\n";
36
+ /**
37
+ * Home page (`app/page.tsx`) for routing modes without a locale path segment.
38
+ * Identical for TypeScript and JavaScript projects.
39
+ */
40
+ export declare const UNPREFIXED_PAGE_TEMPLATE = "const Page = () => (\n <main>\n <h1>Hello</h1>\n <p>Get started by editing this page.</p>\n </main>\n);\n\nexport default Page;\n";
29
41
  //#endregion
30
42
  //# sourceMappingURL=templates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"templates.d.ts","names":[],"sources":["../../../../../src/init/frameworkSetup/nextAppRouter/templates.ts"],"mappings":";;;;;;;qBAOa;;qBASA;;qBASA;qBAOA;;;;;;;qBAWA;qBAqBA;;;;;;qBAyBA;qBAgBA"}
1
+ {"version":3,"file":"templates.d.ts","names":[],"sources":["../../../../../src/init/frameworkSetup/nextAppRouter/templates.ts"],"mappings":";;;;;;;qBAOa;;qBASA;;qBASA;qBAOA;;;;;;;qBAWA;qBAqBA;;;;;;qBAyBA;qBAgBA;;;;;;qBAmBA;qBAmBA;;;;;qBAsBA"}
@@ -4,6 +4,15 @@ export type TransformResult = {
4
4
  code: string;
5
5
  status: 'wrapped' | 'already' | 'skipped-client' | 'skipped';
6
6
  };
7
+ /** Options of {@link wrapLayoutWithProvider}. */
8
+ export type WrapLayoutOptions = {
9
+ /**
10
+ * Re-export `generateStaticParams` from `next-intlayer`. Only meaningful for a
11
+ * layout under a `[locale]` segment; a root layout of an unprefixed app has
12
+ * no locale param to pre-render. Default: `true`.
13
+ */
14
+ exportStaticParams?: boolean;
15
+ };
7
16
  /**
8
17
  * Wraps the `{children}` of a Next.js App Router **layout** with the unified
9
18
  * `IntlayerProvider`, deriving the locale via `getLocale()`. Safe and
@@ -15,6 +24,6 @@ export type TransformResult = {
15
24
  * pages below the locale layout read locale/variant from it without wrapping
16
25
  * themselves individually (see the removed `wrapPageWithProvider`).
17
26
  */
18
- export declare const wrapLayoutWithProvider: (code: string) => TransformResult;
27
+ export declare const wrapLayoutWithProvider: (code: string, { exportStaticParams }?: WrapLayoutOptions) => TransformResult;
19
28
  //#endregion
20
29
  //# sourceMappingURL=transforms.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transforms.d.ts","names":[],"sources":["../../../../../src/init/frameworkSetup/nextAppRouter/transforms.ts"],"mappings":";;YAWY;EACV;EACA;;;;;;;;;;;;;qBAsLW,yBAAsB,iBAAmB"}
1
+ {"version":3,"file":"transforms.d.ts","names":[],"sources":["../../../../../src/init/frameworkSetup/nextAppRouter/transforms.ts"],"mappings":";;YAWY;EACV;EACA;;;YA6KU;;;;;;EAMV;;;;;;;;;;;;;qBAcW,yBAAsB,gBACrB,uBACmB,sBAC9B"}
@@ -1,8 +1,9 @@
1
1
  import { FrameworkAdapter } from "../types.js";
2
2
  //#region src/init/frameworkSetup/tanstackStart/index.d.ts
3
3
  /**
4
- * TanStack Start adapter. Restructures the file-based routes under a `{-$locale}`
5
- * segment, scaffolds the locale segment route, and wraps the root document with
4
+ * TanStack Start adapter. For prefix routing modes, restructures the file-based
5
+ * routes under a `{-$locale}` / `$locale` segment and scaffolds the locale
6
+ * segment route; for the others, keeps routes in place. Wraps the root document with
6
7
  * the Intlayer provider — all idempotently and without overwriting user code it
7
8
  * cannot confidently transform.
8
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../../../src/init/frameworkSetup/tanstackStart/index.ts"],"mappings":";;;;;;;;qBA4Ea,sBAAsB"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../../../src/init/frameworkSetup/tanstackStart/index.ts"],"mappings":";;;;;;;;;qBAgIa,sBAAsB"}
@@ -22,5 +22,15 @@ export declare const buildLocaleRouteTemplate: (localeSegment: string) => string
22
22
  export declare const buildRootTemplateTs: (localeSegment: string) => string;
23
23
  /** JavaScript counterpart of {@link buildRootTemplateTs}. */
24
24
  export declare const buildRootTemplateJs: (localeSegment: string) => string;
25
+ /**
26
+ * Module-scope server function resolving the request locale from the locale
27
+ * cookie / headers (`Accept-Language` fallback). Shared by the unprefixed root
28
+ * template and the root transform.
29
+ */
30
+ export declare const REQUEST_LOCALE_SERVER_FUNCTION = "const getRequestLocale = createServerFn().handler(() =>\n getLocale({\n getCookie: (name) => getCookie(name, getRequestHeader(\"cookie\")),\n getHeader: (name) => getRequestHeader(name),\n })\n);";
31
+ /** {@link buildUnprefixedRootTemplate} for TypeScript projects. */
32
+ export declare const UNPREFIXED_ROOT_TEMPLATE_TS: string;
33
+ /** {@link buildUnprefixedRootTemplate} for JavaScript projects. */
34
+ export declare const UNPREFIXED_ROOT_TEMPLATE_JS: string;
25
35
  //#endregion
26
36
  //# sourceMappingURL=templates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"templates.d.ts","names":[],"sources":["../../../../../src/init/frameworkSetup/tanstackStart/templates.ts"],"mappings":";;;;;;;;;;;;qBAYa,2BAAwB;;;;;;;;;qBAgCxB,sBAAmB;;qBAkCnB,sBAAmB"}
1
+ {"version":3,"file":"templates.d.ts","names":[],"sources":["../../../../../src/init/frameworkSetup/tanstackStart/templates.ts"],"mappings":";;;;;;;;;;;;qBAYa,2BAAwB;;;;;;;;;qBAgCxB,sBAAmB;;qBAkCnB,sBAAmB;;;;;;qBAqCnB;;qBAmDA;;qBAKA"}
@@ -4,6 +4,18 @@ export type TransformResult = {
4
4
  code: string;
5
5
  status: 'wrapped' | 'already' | 'skipped';
6
6
  };
7
+ /**
8
+ * Wraps the `{children}` of a TanStack Start root document with
9
+ * `IntlayerProvider` for routing modes without a locale path segment. The
10
+ * locale is resolved per request by a server function exposed through the root
11
+ * `loader`, and read with `Route.useLoaderData()`. Safe and idempotent: bails
12
+ * when the provider is already present, when no `<html>` document or
13
+ * `{children}` is found, or when the root route cannot safely take a loader
14
+ * (no `Route` binding, no options object, or an existing `loader`).
15
+ *
16
+ * @param code Source of the project's `__root` document.
17
+ */
18
+ export declare const wrapRootWithRequestLocaleProvider: (code: string) => TransformResult;
7
19
  /**
8
20
  * Wraps the `{children}` of a TanStack Start root document with
9
21
  * `IntlayerProvider`, deriving the locale from the locale segment route params.
@@ -1 +1 @@
1
- {"version":3,"file":"transforms.d.ts","names":[],"sources":["../../../../../src/init/frameworkSetup/tanstackStart/transforms.ts"],"mappings":";;YAkBY;EACV;EACA;;;;;;;;;;;;;qBAoMW,uBAAoB,cACnB,0BAEX"}
1
+ {"version":3,"file":"transforms.d.ts","names":[],"sources":["../../../../../src/init/frameworkSetup/tanstackStart/transforms.ts"],"mappings":";;YAmBY;EACV;EACA;;;;;;;;;;;;;qBA6QW,oCAAiC,iBAE3C;;;;;;;;;;;;qBAsFU,uBAAoB,cACnB,0BAEX"}
@@ -21,6 +21,12 @@ export type FrameworkSetupContext = {
21
21
  * (`prefix-no-default` → `{-$locale}`).
22
22
  */
23
23
  routingMode: RoutingMode;
24
+ /**
25
+ * Whether locale routing goes through the Intlayer proxy (middleware), i.e.
26
+ * the effective `routing.enableProxy`. When `false`, adapters scaffold no
27
+ * proxy file and no locale route segment.
28
+ */
29
+ enableProxy: boolean;
24
30
  };
25
31
  /**
26
32
  * A framework integration adapter. Each adapter knows how to recognize a