@intlayer/chokidar 8.4.4 → 8.4.6

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 (497) hide show
  1. package/dist/cjs/_virtual/_rolldown/runtime.cjs +29 -0
  2. package/dist/cjs/_virtual/_utils_asset.cjs +98 -0
  3. package/dist/cjs/build.cjs +58 -1
  4. package/dist/cjs/buildIntlayerDictionary/buildIntlayerDictionary.cjs +62 -1
  5. package/dist/cjs/buildIntlayerDictionary/buildIntlayerDictionary.cjs.map +1 -1
  6. package/dist/cjs/buildIntlayerDictionary/index.cjs +6 -1
  7. package/dist/cjs/buildIntlayerDictionary/processContentDeclaration.cjs +26 -1
  8. package/dist/cjs/buildIntlayerDictionary/processContentDeclaration.cjs.map +1 -1
  9. package/dist/cjs/buildIntlayerDictionary/writeDynamicDictionary.cjs +107 -5
  10. package/dist/cjs/buildIntlayerDictionary/writeDynamicDictionary.cjs.map +1 -1
  11. package/dist/cjs/buildIntlayerDictionary/writeFetchDictionary.cjs +80 -3
  12. package/dist/cjs/buildIntlayerDictionary/writeFetchDictionary.cjs.map +1 -1
  13. package/dist/cjs/buildIntlayerDictionary/writeMergedDictionary.cjs +46 -1
  14. package/dist/cjs/buildIntlayerDictionary/writeMergedDictionary.cjs.map +1 -1
  15. package/dist/cjs/buildIntlayerDictionary/writeRemoteDictionary.cjs +50 -1
  16. package/dist/cjs/buildIntlayerDictionary/writeRemoteDictionary.cjs.map +1 -1
  17. package/dist/cjs/buildIntlayerDictionary/writeUnmergedDictionary.cjs +59 -1
  18. package/dist/cjs/buildIntlayerDictionary/writeUnmergedDictionary.cjs.map +1 -1
  19. package/dist/cjs/cleanOutputDir.cjs +30 -1
  20. package/dist/cjs/cleanOutputDir.cjs.map +1 -1
  21. package/dist/cjs/cleanRemovedContentDeclaration.cjs +97 -1
  22. package/dist/cjs/cleanRemovedContentDeclaration.cjs.map +1 -1
  23. package/dist/cjs/cli.cjs +35 -1
  24. package/dist/cjs/createDictionaryEntryPoint/createDictionaryEntryPoint.cjs +70 -1
  25. package/dist/cjs/createDictionaryEntryPoint/createDictionaryEntryPoint.cjs.map +1 -1
  26. package/dist/cjs/createDictionaryEntryPoint/generateDictionaryListContent.cjs +42 -7
  27. package/dist/cjs/createDictionaryEntryPoint/generateDictionaryListContent.cjs.map +1 -1
  28. package/dist/cjs/createDictionaryEntryPoint/getBuiltDictionariesPath.cjs +23 -1
  29. package/dist/cjs/createDictionaryEntryPoint/getBuiltDictionariesPath.cjs.map +1 -1
  30. package/dist/cjs/createDictionaryEntryPoint/getBuiltDynamicDictionariesPath.cjs +24 -1
  31. package/dist/cjs/createDictionaryEntryPoint/getBuiltDynamicDictionariesPath.cjs.map +1 -1
  32. package/dist/cjs/createDictionaryEntryPoint/getBuiltFetchDictionariesPath.cjs +24 -1
  33. package/dist/cjs/createDictionaryEntryPoint/getBuiltFetchDictionariesPath.cjs.map +1 -1
  34. package/dist/cjs/createDictionaryEntryPoint/getBuiltRemoteDictionariesPath.cjs +23 -1
  35. package/dist/cjs/createDictionaryEntryPoint/getBuiltRemoteDictionariesPath.cjs.map +1 -1
  36. package/dist/cjs/createDictionaryEntryPoint/getBuiltUnmergedDictionariesPath.cjs +23 -1
  37. package/dist/cjs/createDictionaryEntryPoint/getBuiltUnmergedDictionariesPath.cjs.map +1 -1
  38. package/dist/cjs/createDictionaryEntryPoint/index.cjs +16 -1
  39. package/dist/cjs/createType/createModuleAugmentation.cjs +112 -9
  40. package/dist/cjs/createType/createModuleAugmentation.cjs.map +1 -1
  41. package/dist/cjs/createType/createType.cjs +29 -1
  42. package/dist/cjs/createType/createType.cjs.map +1 -1
  43. package/dist/cjs/createType/index.cjs +8 -1
  44. package/dist/cjs/detectFormatCommand.cjs +32 -1
  45. package/dist/cjs/detectFormatCommand.cjs.map +1 -1
  46. package/dist/cjs/fetchDistantDictionaries.cjs +51 -1
  47. package/dist/cjs/fetchDistantDictionaries.cjs.map +1 -1
  48. package/dist/cjs/filterInvalidDictionaries.cjs +52 -1
  49. package/dist/cjs/filterInvalidDictionaries.cjs.map +1 -1
  50. package/dist/cjs/formatDictionary.cjs +49 -1
  51. package/dist/cjs/formatDictionary.cjs.map +1 -1
  52. package/dist/cjs/getContentDeclarationFileTemplate/getContentDeclarationFileTemplate.cjs +61 -7
  53. package/dist/cjs/getContentDeclarationFileTemplate/getContentDeclarationFileTemplate.cjs.map +1 -1
  54. package/dist/cjs/getContentDeclarationFileTemplate/index.cjs +4 -1
  55. package/dist/cjs/handleAdditionalContentDeclarationFile.cjs +34 -1
  56. package/dist/cjs/handleAdditionalContentDeclarationFile.cjs.map +1 -1
  57. package/dist/cjs/handleContentDeclarationFileChange.cjs +49 -1
  58. package/dist/cjs/handleContentDeclarationFileChange.cjs.map +1 -1
  59. package/dist/cjs/handleContentDeclarationFileMoved.cjs +24 -1
  60. package/dist/cjs/handleContentDeclarationFileMoved.cjs.map +1 -1
  61. package/dist/cjs/handleUnlinkedContentDeclarationFile.cjs +37 -1
  62. package/dist/cjs/handleUnlinkedContentDeclarationFile.cjs.map +1 -1
  63. package/dist/cjs/init/index.cjs +284 -1
  64. package/dist/cjs/init/index.cjs.map +1 -1
  65. package/dist/cjs/init/utils/configManipulation.cjs +111 -1
  66. package/dist/cjs/init/utils/configManipulation.cjs.map +1 -1
  67. package/dist/cjs/init/utils/fileSystem.cjs +39 -1
  68. package/dist/cjs/init/utils/fileSystem.cjs.map +1 -1
  69. package/dist/cjs/init/utils/index.cjs +14 -1
  70. package/dist/cjs/init/utils/jsonParser.cjs +42 -3
  71. package/dist/cjs/init/utils/jsonParser.cjs.map +1 -1
  72. package/dist/cjs/init/utils/tsConfig.cjs +18 -1
  73. package/dist/cjs/init/utils/tsConfig.cjs.map +1 -1
  74. package/dist/cjs/initConfig/index.cjs +39 -1
  75. package/dist/cjs/initConfig/index.cjs.map +1 -1
  76. package/dist/cjs/installMCP/installMCP.cjs +50 -1
  77. package/dist/cjs/installMCP/installMCP.cjs.map +1 -1
  78. package/dist/cjs/installSkills/index.cjs +303 -1
  79. package/dist/cjs/installSkills/index.cjs.map +1 -1
  80. package/dist/cjs/listDictionariesPath.cjs +42 -1
  81. package/dist/cjs/listDictionariesPath.cjs.map +1 -1
  82. package/dist/cjs/listGitFiles.cjs +105 -5
  83. package/dist/cjs/listGitFiles.cjs.map +1 -1
  84. package/dist/cjs/listProjects.cjs +47 -1
  85. package/dist/cjs/listProjects.cjs.map +1 -1
  86. package/dist/cjs/loadDictionaries/getIntlayerBundle.cjs +68 -1
  87. package/dist/cjs/loadDictionaries/getIntlayerBundle.cjs.map +1 -1
  88. package/dist/cjs/loadDictionaries/index.cjs +14 -1
  89. package/dist/cjs/loadDictionaries/loadContentDeclaration.cjs +93 -2
  90. package/dist/cjs/loadDictionaries/loadContentDeclaration.cjs.map +1 -1
  91. package/dist/cjs/loadDictionaries/loadDictionaries.cjs +127 -1
  92. package/dist/cjs/loadDictionaries/loadDictionaries.cjs.map +1 -1
  93. package/dist/cjs/loadDictionaries/loadLocalDictionaries.cjs +27 -1
  94. package/dist/cjs/loadDictionaries/loadLocalDictionaries.cjs.map +1 -1
  95. package/dist/cjs/loadDictionaries/loadRemoteDictionaries.cjs +61 -1
  96. package/dist/cjs/loadDictionaries/loadRemoteDictionaries.cjs.map +1 -1
  97. package/dist/cjs/loadDictionaries/log.cjs +138 -3
  98. package/dist/cjs/loadDictionaries/log.cjs.map +1 -1
  99. package/dist/cjs/loadDictionaries/logTypeScriptErrors.cjs +63 -2
  100. package/dist/cjs/loadDictionaries/logTypeScriptErrors.cjs.map +1 -1
  101. package/dist/cjs/logConfigDetails.cjs +39 -2
  102. package/dist/cjs/logConfigDetails.cjs.map +1 -1
  103. package/dist/cjs/prepareIntlayer.cjs +103 -1
  104. package/dist/cjs/prepareIntlayer.cjs.map +1 -1
  105. package/dist/cjs/reduceDictionaryContent/applyMask.cjs +30 -1
  106. package/dist/cjs/reduceDictionaryContent/applyMask.cjs.map +1 -1
  107. package/dist/cjs/reduceDictionaryContent/reduceDictionaryContent.cjs +12 -1
  108. package/dist/cjs/reduceDictionaryContent/reduceDictionaryContent.cjs.map +1 -1
  109. package/dist/cjs/utils/autoDecorateContent.cjs +89 -1
  110. package/dist/cjs/utils/autoDecorateContent.cjs.map +1 -1
  111. package/dist/cjs/utils/buildComponentFilesList.cjs +67 -1
  112. package/dist/cjs/utils/buildComponentFilesList.cjs.map +1 -1
  113. package/dist/cjs/utils/buildFilesList.cjs +83 -1
  114. package/dist/cjs/utils/buildFilesList.cjs.map +1 -1
  115. package/dist/cjs/utils/chunkJSON.cjs +336 -1
  116. package/dist/cjs/utils/chunkJSON.cjs.map +1 -1
  117. package/dist/cjs/utils/formatter.cjs +18 -1
  118. package/dist/cjs/utils/formatter.cjs.map +1 -1
  119. package/dist/cjs/utils/getChunk.cjs +34 -1
  120. package/dist/cjs/utils/getChunk.cjs.map +1 -1
  121. package/dist/cjs/utils/getContentExtension.cjs +29 -1
  122. package/dist/cjs/utils/getContentExtension.cjs.map +1 -1
  123. package/dist/cjs/utils/getFormatFromExtension.cjs +34 -1
  124. package/dist/cjs/utils/getFormatFromExtension.cjs.map +1 -1
  125. package/dist/cjs/utils/getPathHash.cjs +10 -1
  126. package/dist/cjs/utils/getPathHash.cjs.map +1 -1
  127. package/dist/cjs/utils/index.cjs +49 -1
  128. package/dist/cjs/utils/mergeChunks.cjs +28 -1
  129. package/dist/cjs/utils/mergeChunks.cjs.map +1 -1
  130. package/dist/cjs/utils/pLimit.cjs +128 -1
  131. package/dist/cjs/utils/pLimit.cjs.map +1 -1
  132. package/dist/cjs/utils/parallelize.cjs +11 -1
  133. package/dist/cjs/utils/parallelize.cjs.map +1 -1
  134. package/dist/cjs/utils/parallelizeGlobal.cjs +29 -1
  135. package/dist/cjs/utils/parallelizeGlobal.cjs.map +1 -1
  136. package/dist/cjs/utils/reduceObjectFormat.cjs +31 -1
  137. package/dist/cjs/utils/reduceObjectFormat.cjs.map +1 -1
  138. package/dist/cjs/utils/resolveObjectPromises.cjs +21 -1
  139. package/dist/cjs/utils/resolveObjectPromises.cjs.map +1 -1
  140. package/dist/cjs/utils/resolveRelativePath.cjs +21 -1
  141. package/dist/cjs/utils/resolveRelativePath.cjs.map +1 -1
  142. package/dist/cjs/utils/runOnce.cjs +95 -1
  143. package/dist/cjs/utils/runOnce.cjs.map +1 -1
  144. package/dist/cjs/utils/runParallel/bin.cjs +54 -1
  145. package/dist/cjs/utils/runParallel/bin.cjs.map +1 -1
  146. package/dist/cjs/utils/runParallel/bootstrap.cjs +24 -1
  147. package/dist/cjs/utils/runParallel/bootstrap.cjs.map +1 -1
  148. package/dist/cjs/utils/runParallel/index.cjs +115 -1
  149. package/dist/cjs/utils/runParallel/index.cjs.map +1 -1
  150. package/dist/cjs/utils/runParallel/pidTree.cjs +145 -1
  151. package/dist/cjs/utils/runParallel/pidTree.cjs.map +1 -1
  152. package/dist/cjs/utils/runParallel/ps.cjs +49 -1
  153. package/dist/cjs/utils/runParallel/ps.cjs.map +1 -1
  154. package/dist/cjs/utils/runParallel/runTask.cjs +154 -1
  155. package/dist/cjs/utils/runParallel/runTask.cjs.map +1 -1
  156. package/dist/cjs/utils/runParallel/spawnPosix.cjs +59 -1
  157. package/dist/cjs/utils/runParallel/spawnPosix.cjs.map +1 -1
  158. package/dist/cjs/utils/runParallel/spawnWin32.cjs +43 -1
  159. package/dist/cjs/utils/runParallel/spawnWin32.cjs.map +1 -1
  160. package/dist/cjs/utils/runParallel/wmic.cjs +52 -1
  161. package/dist/cjs/utils/runParallel/wmic.cjs.map +1 -1
  162. package/dist/cjs/utils/sortAlphabetically.cjs +7 -1
  163. package/dist/cjs/utils/sortAlphabetically.cjs.map +1 -1
  164. package/dist/cjs/utils/splitTextByLine.cjs +11 -1
  165. package/dist/cjs/utils/splitTextByLine.cjs.map +1 -1
  166. package/dist/cjs/utils/verifyIdenticObjectFormat.cjs +60 -1
  167. package/dist/cjs/utils/verifyIdenticObjectFormat.cjs.map +1 -1
  168. package/dist/cjs/watcher.cjs +120 -1
  169. package/dist/cjs/watcher.cjs.map +1 -1
  170. package/dist/cjs/writeConfiguration/index.cjs +42 -1
  171. package/dist/cjs/writeConfiguration/index.cjs.map +1 -1
  172. package/dist/cjs/writeContentDeclaration/detectExportedComponentName.cjs +28 -1
  173. package/dist/cjs/writeContentDeclaration/detectExportedComponentName.cjs.map +1 -1
  174. package/dist/cjs/writeContentDeclaration/index.cjs +10 -1
  175. package/dist/cjs/writeContentDeclaration/processContentDeclarationContent.cjs +94 -1
  176. package/dist/cjs/writeContentDeclaration/processContentDeclarationContent.cjs.map +1 -1
  177. package/dist/cjs/writeContentDeclaration/transformJSFile.cjs +412 -3
  178. package/dist/cjs/writeContentDeclaration/transformJSFile.cjs.map +1 -1
  179. package/dist/cjs/writeContentDeclaration/transformJSONFile.cjs +127 -2
  180. package/dist/cjs/writeContentDeclaration/transformJSONFile.cjs.map +1 -1
  181. package/dist/cjs/writeContentDeclaration/writeContentDeclaration.cjs +148 -1
  182. package/dist/cjs/writeContentDeclaration/writeContentDeclaration.cjs.map +1 -1
  183. package/dist/cjs/writeContentDeclaration/writeJSFile.cjs +92 -1
  184. package/dist/cjs/writeContentDeclaration/writeJSFile.cjs.map +1 -1
  185. package/dist/cjs/writeFileIfChanged.cjs +50 -1
  186. package/dist/cjs/writeFileIfChanged.cjs.map +1 -1
  187. package/dist/cjs/writeJsonIfChanged.cjs +17 -1
  188. package/dist/cjs/writeJsonIfChanged.cjs.map +1 -1
  189. package/dist/esm/_virtual/_rolldown/runtime.mjs +8 -0
  190. package/dist/esm/_virtual/_utils_asset.mjs +97 -0
  191. package/dist/esm/build.mjs +25 -1
  192. package/dist/esm/buildIntlayerDictionary/buildIntlayerDictionary.mjs +60 -1
  193. package/dist/esm/buildIntlayerDictionary/buildIntlayerDictionary.mjs.map +1 -1
  194. package/dist/esm/buildIntlayerDictionary/index.mjs +4 -1
  195. package/dist/esm/buildIntlayerDictionary/processContentDeclaration.mjs +24 -1
  196. package/dist/esm/buildIntlayerDictionary/processContentDeclaration.mjs.map +1 -1
  197. package/dist/esm/buildIntlayerDictionary/writeDynamicDictionary.mjs +102 -5
  198. package/dist/esm/buildIntlayerDictionary/writeDynamicDictionary.mjs.map +1 -1
  199. package/dist/esm/buildIntlayerDictionary/writeFetchDictionary.mjs +76 -3
  200. package/dist/esm/buildIntlayerDictionary/writeFetchDictionary.mjs.map +1 -1
  201. package/dist/esm/buildIntlayerDictionary/writeMergedDictionary.mjs +44 -1
  202. package/dist/esm/buildIntlayerDictionary/writeMergedDictionary.mjs.map +1 -1
  203. package/dist/esm/buildIntlayerDictionary/writeRemoteDictionary.mjs +48 -1
  204. package/dist/esm/buildIntlayerDictionary/writeRemoteDictionary.mjs.map +1 -1
  205. package/dist/esm/buildIntlayerDictionary/writeUnmergedDictionary.mjs +56 -1
  206. package/dist/esm/buildIntlayerDictionary/writeUnmergedDictionary.mjs.map +1 -1
  207. package/dist/esm/cleanOutputDir.mjs +28 -1
  208. package/dist/esm/cleanOutputDir.mjs.map +1 -1
  209. package/dist/esm/cleanRemovedContentDeclaration.mjs +94 -1
  210. package/dist/esm/cleanRemovedContentDeclaration.mjs.map +1 -1
  211. package/dist/esm/cli.mjs +15 -1
  212. package/dist/esm/createDictionaryEntryPoint/createDictionaryEntryPoint.mjs +68 -1
  213. package/dist/esm/createDictionaryEntryPoint/createDictionaryEntryPoint.mjs.map +1 -1
  214. package/dist/esm/createDictionaryEntryPoint/generateDictionaryListContent.mjs +40 -7
  215. package/dist/esm/createDictionaryEntryPoint/generateDictionaryListContent.mjs.map +1 -1
  216. package/dist/esm/createDictionaryEntryPoint/getBuiltDictionariesPath.mjs +20 -1
  217. package/dist/esm/createDictionaryEntryPoint/getBuiltDictionariesPath.mjs.map +1 -1
  218. package/dist/esm/createDictionaryEntryPoint/getBuiltDynamicDictionariesPath.mjs +21 -1
  219. package/dist/esm/createDictionaryEntryPoint/getBuiltDynamicDictionariesPath.mjs.map +1 -1
  220. package/dist/esm/createDictionaryEntryPoint/getBuiltFetchDictionariesPath.mjs +21 -1
  221. package/dist/esm/createDictionaryEntryPoint/getBuiltFetchDictionariesPath.mjs.map +1 -1
  222. package/dist/esm/createDictionaryEntryPoint/getBuiltRemoteDictionariesPath.mjs +20 -1
  223. package/dist/esm/createDictionaryEntryPoint/getBuiltRemoteDictionariesPath.mjs.map +1 -1
  224. package/dist/esm/createDictionaryEntryPoint/getBuiltUnmergedDictionariesPath.mjs +20 -1
  225. package/dist/esm/createDictionaryEntryPoint/getBuiltUnmergedDictionariesPath.mjs.map +1 -1
  226. package/dist/esm/createDictionaryEntryPoint/index.mjs +9 -1
  227. package/dist/esm/createType/createModuleAugmentation.mjs +108 -9
  228. package/dist/esm/createType/createModuleAugmentation.mjs.map +1 -1
  229. package/dist/esm/createType/createType.mjs +26 -1
  230. package/dist/esm/createType/createType.mjs.map +1 -1
  231. package/dist/esm/createType/index.mjs +4 -1
  232. package/dist/esm/detectFormatCommand.mjs +30 -1
  233. package/dist/esm/detectFormatCommand.mjs.map +1 -1
  234. package/dist/esm/fetchDistantDictionaries.mjs +49 -1
  235. package/dist/esm/fetchDistantDictionaries.mjs.map +1 -1
  236. package/dist/esm/filterInvalidDictionaries.mjs +48 -1
  237. package/dist/esm/filterInvalidDictionaries.mjs.map +1 -1
  238. package/dist/esm/formatDictionary.mjs +44 -1
  239. package/dist/esm/formatDictionary.mjs.map +1 -1
  240. package/dist/esm/getContentDeclarationFileTemplate/getContentDeclarationFileTemplate.mjs +59 -7
  241. package/dist/esm/getContentDeclarationFileTemplate/getContentDeclarationFileTemplate.mjs.map +1 -1
  242. package/dist/esm/getContentDeclarationFileTemplate/index.mjs +3 -1
  243. package/dist/esm/handleAdditionalContentDeclarationFile.mjs +32 -1
  244. package/dist/esm/handleAdditionalContentDeclarationFile.mjs.map +1 -1
  245. package/dist/esm/handleContentDeclarationFileChange.mjs +47 -1
  246. package/dist/esm/handleContentDeclarationFileChange.mjs.map +1 -1
  247. package/dist/esm/handleContentDeclarationFileMoved.mjs +22 -1
  248. package/dist/esm/handleContentDeclarationFileMoved.mjs.map +1 -1
  249. package/dist/esm/handleUnlinkedContentDeclarationFile.mjs +35 -1
  250. package/dist/esm/handleUnlinkedContentDeclarationFile.mjs.map +1 -1
  251. package/dist/esm/init/index.mjs +281 -1
  252. package/dist/esm/init/index.mjs.map +1 -1
  253. package/dist/esm/init/utils/configManipulation.mjs +108 -1
  254. package/dist/esm/init/utils/configManipulation.mjs.map +1 -1
  255. package/dist/esm/init/utils/fileSystem.mjs +34 -1
  256. package/dist/esm/init/utils/fileSystem.mjs.map +1 -1
  257. package/dist/esm/init/utils/index.mjs +6 -1
  258. package/dist/esm/init/utils/jsonParser.mjs +40 -3
  259. package/dist/esm/init/utils/jsonParser.mjs.map +1 -1
  260. package/dist/esm/init/utils/tsConfig.mjs +16 -1
  261. package/dist/esm/init/utils/tsConfig.mjs.map +1 -1
  262. package/dist/esm/initConfig/index.mjs +37 -1
  263. package/dist/esm/initConfig/index.mjs.map +1 -1
  264. package/dist/esm/installMCP/installMCP.mjs +46 -1
  265. package/dist/esm/installMCP/installMCP.mjs.map +1 -1
  266. package/dist/esm/installSkills/index.mjs +295 -1
  267. package/dist/esm/installSkills/index.mjs.map +1 -1
  268. package/dist/esm/listDictionariesPath.mjs +38 -1
  269. package/dist/esm/listDictionariesPath.mjs.map +1 -1
  270. package/dist/esm/listGitFiles.mjs +100 -5
  271. package/dist/esm/listGitFiles.mjs.map +1 -1
  272. package/dist/esm/listProjects.mjs +43 -1
  273. package/dist/esm/listProjects.mjs.map +1 -1
  274. package/dist/esm/loadDictionaries/getIntlayerBundle.mjs +67 -1
  275. package/dist/esm/loadDictionaries/getIntlayerBundle.mjs.map +1 -1
  276. package/dist/esm/loadDictionaries/index.mjs +6 -1
  277. package/dist/esm/loadDictionaries/loadContentDeclaration.mjs +88 -2
  278. package/dist/esm/loadDictionaries/loadContentDeclaration.mjs.map +1 -1
  279. package/dist/esm/loadDictionaries/loadDictionaries.mjs +124 -1
  280. package/dist/esm/loadDictionaries/loadDictionaries.mjs.map +1 -1
  281. package/dist/esm/loadDictionaries/loadLocalDictionaries.mjs +25 -1
  282. package/dist/esm/loadDictionaries/loadLocalDictionaries.mjs.map +1 -1
  283. package/dist/esm/loadDictionaries/loadRemoteDictionaries.mjs +58 -1
  284. package/dist/esm/loadDictionaries/loadRemoteDictionaries.mjs.map +1 -1
  285. package/dist/esm/loadDictionaries/log.mjs +134 -3
  286. package/dist/esm/loadDictionaries/log.mjs.map +1 -1
  287. package/dist/esm/loadDictionaries/logTypeScriptErrors.mjs +61 -2
  288. package/dist/esm/loadDictionaries/logTypeScriptErrors.mjs.map +1 -1
  289. package/dist/esm/logConfigDetails.mjs +36 -2
  290. package/dist/esm/logConfigDetails.mjs.map +1 -1
  291. package/dist/esm/prepareIntlayer.mjs +99 -1
  292. package/dist/esm/prepareIntlayer.mjs.map +1 -1
  293. package/dist/esm/reduceDictionaryContent/applyMask.mjs +28 -1
  294. package/dist/esm/reduceDictionaryContent/applyMask.mjs.map +1 -1
  295. package/dist/esm/reduceDictionaryContent/reduceDictionaryContent.mjs +10 -1
  296. package/dist/esm/reduceDictionaryContent/reduceDictionaryContent.mjs.map +1 -1
  297. package/dist/esm/utils/autoDecorateContent.mjs +86 -1
  298. package/dist/esm/utils/autoDecorateContent.mjs.map +1 -1
  299. package/dist/esm/utils/buildComponentFilesList.mjs +64 -1
  300. package/dist/esm/utils/buildComponentFilesList.mjs.map +1 -1
  301. package/dist/esm/utils/buildFilesList.mjs +79 -1
  302. package/dist/esm/utils/buildFilesList.mjs.map +1 -1
  303. package/dist/esm/utils/chunkJSON.mjs +333 -1
  304. package/dist/esm/utils/chunkJSON.mjs.map +1 -1
  305. package/dist/esm/utils/formatter.mjs +13 -1
  306. package/dist/esm/utils/formatter.mjs.map +1 -1
  307. package/dist/esm/utils/getChunk.mjs +33 -1
  308. package/dist/esm/utils/getChunk.mjs.map +1 -1
  309. package/dist/esm/utils/getContentExtension.mjs +27 -1
  310. package/dist/esm/utils/getContentExtension.mjs.map +1 -1
  311. package/dist/esm/utils/getFormatFromExtension.mjs +31 -1
  312. package/dist/esm/utils/getFormatFromExtension.mjs.map +1 -1
  313. package/dist/esm/utils/getPathHash.mjs +7 -1
  314. package/dist/esm/utils/getPathHash.mjs.map +1 -1
  315. package/dist/esm/utils/index.mjs +22 -1
  316. package/dist/esm/utils/mergeChunks.mjs +26 -1
  317. package/dist/esm/utils/mergeChunks.mjs.map +1 -1
  318. package/dist/esm/utils/pLimit.mjs +125 -1
  319. package/dist/esm/utils/pLimit.mjs.map +1 -1
  320. package/dist/esm/utils/parallelize.mjs +10 -1
  321. package/dist/esm/utils/parallelize.mjs.map +1 -1
  322. package/dist/esm/utils/parallelizeGlobal.mjs +26 -1
  323. package/dist/esm/utils/parallelizeGlobal.mjs.map +1 -1
  324. package/dist/esm/utils/reduceObjectFormat.mjs +29 -1
  325. package/dist/esm/utils/reduceObjectFormat.mjs.map +1 -1
  326. package/dist/esm/utils/resolveObjectPromises.mjs +19 -1
  327. package/dist/esm/utils/resolveObjectPromises.mjs.map +1 -1
  328. package/dist/esm/utils/resolveRelativePath.mjs +19 -1
  329. package/dist/esm/utils/resolveRelativePath.mjs.map +1 -1
  330. package/dist/esm/utils/runOnce.mjs +92 -1
  331. package/dist/esm/utils/runOnce.mjs.map +1 -1
  332. package/dist/esm/utils/runParallel/bin.mjs +52 -1
  333. package/dist/esm/utils/runParallel/bin.mjs.map +1 -1
  334. package/dist/esm/utils/runParallel/bootstrap.mjs +22 -1
  335. package/dist/esm/utils/runParallel/bootstrap.mjs.map +1 -1
  336. package/dist/esm/utils/runParallel/index.mjs +113 -1
  337. package/dist/esm/utils/runParallel/index.mjs.map +1 -1
  338. package/dist/esm/utils/runParallel/pidTree.mjs +142 -1
  339. package/dist/esm/utils/runParallel/pidTree.mjs.map +1 -1
  340. package/dist/esm/utils/runParallel/ps.mjs +46 -1
  341. package/dist/esm/utils/runParallel/ps.mjs.map +1 -1
  342. package/dist/esm/utils/runParallel/runTask.mjs +152 -1
  343. package/dist/esm/utils/runParallel/runTask.mjs.map +1 -1
  344. package/dist/esm/utils/runParallel/spawnPosix.mjs +57 -1
  345. package/dist/esm/utils/runParallel/spawnPosix.mjs.map +1 -1
  346. package/dist/esm/utils/runParallel/spawnWin32.mjs +41 -1
  347. package/dist/esm/utils/runParallel/spawnWin32.mjs.map +1 -1
  348. package/dist/esm/utils/runParallel/wmic.mjs +49 -1
  349. package/dist/esm/utils/runParallel/wmic.mjs.map +1 -1
  350. package/dist/esm/utils/sortAlphabetically.mjs +5 -1
  351. package/dist/esm/utils/sortAlphabetically.mjs.map +1 -1
  352. package/dist/esm/utils/splitTextByLine.mjs +9 -1
  353. package/dist/esm/utils/splitTextByLine.mjs.map +1 -1
  354. package/dist/esm/utils/verifyIdenticObjectFormat.mjs +58 -1
  355. package/dist/esm/utils/verifyIdenticObjectFormat.mjs.map +1 -1
  356. package/dist/esm/watcher.mjs +117 -1
  357. package/dist/esm/watcher.mjs.map +1 -1
  358. package/dist/esm/writeConfiguration/index.mjs +39 -1
  359. package/dist/esm/writeConfiguration/index.mjs.map +1 -1
  360. package/dist/esm/writeContentDeclaration/detectExportedComponentName.mjs +26 -1
  361. package/dist/esm/writeContentDeclaration/detectExportedComponentName.mjs.map +1 -1
  362. package/dist/esm/writeContentDeclaration/index.mjs +6 -1
  363. package/dist/esm/writeContentDeclaration/processContentDeclarationContent.mjs +91 -1
  364. package/dist/esm/writeContentDeclaration/processContentDeclarationContent.mjs.map +1 -1
  365. package/dist/esm/writeContentDeclaration/transformJSFile.mjs +407 -3
  366. package/dist/esm/writeContentDeclaration/transformJSFile.mjs.map +1 -1
  367. package/dist/esm/writeContentDeclaration/transformJSONFile.mjs +124 -2
  368. package/dist/esm/writeContentDeclaration/transformJSONFile.mjs.map +1 -1
  369. package/dist/esm/writeContentDeclaration/writeContentDeclaration.mjs +146 -1
  370. package/dist/esm/writeContentDeclaration/writeContentDeclaration.mjs.map +1 -1
  371. package/dist/esm/writeContentDeclaration/writeJSFile.mjs +90 -1
  372. package/dist/esm/writeContentDeclaration/writeJSFile.mjs.map +1 -1
  373. package/dist/esm/writeFileIfChanged.mjs +48 -1
  374. package/dist/esm/writeFileIfChanged.mjs.map +1 -1
  375. package/dist/esm/writeJsonIfChanged.mjs +16 -1
  376. package/dist/esm/writeJsonIfChanged.mjs.map +1 -1
  377. package/dist/types/build.d.ts +20 -20
  378. package/dist/types/buildIntlayerDictionary/buildIntlayerDictionary.d.ts +25 -2
  379. package/dist/types/buildIntlayerDictionary/buildIntlayerDictionary.d.ts.map +1 -0
  380. package/dist/types/buildIntlayerDictionary/index.d.ts +2 -2
  381. package/dist/types/buildIntlayerDictionary/processContentDeclaration.d.ts +11 -2
  382. package/dist/types/buildIntlayerDictionary/processContentDeclaration.d.ts.map +1 -0
  383. package/dist/types/buildIntlayerDictionary/writeDynamicDictionary.d.ts +49 -2
  384. package/dist/types/buildIntlayerDictionary/writeDynamicDictionary.d.ts.map +1 -0
  385. package/dist/types/buildIntlayerDictionary/writeFetchDictionary.d.ts +1 -1
  386. package/dist/types/buildIntlayerDictionary/writeFetchDictionary.d.ts.map +1 -1
  387. package/dist/types/buildIntlayerDictionary/writeMergedDictionary.d.ts +30 -2
  388. package/dist/types/buildIntlayerDictionary/writeMergedDictionary.d.ts.map +1 -0
  389. package/dist/types/buildIntlayerDictionary/writeUnmergedDictionary.d.ts +34 -2
  390. package/dist/types/buildIntlayerDictionary/writeUnmergedDictionary.d.ts.map +1 -0
  391. package/dist/types/cli.d.ts +6 -6
  392. package/dist/types/createDictionaryEntryPoint/createDictionaryEntryPoint.d.ts +14 -2
  393. package/dist/types/createDictionaryEntryPoint/createDictionaryEntryPoint.d.ts.map +1 -0
  394. package/dist/types/createDictionaryEntryPoint/generateDictionaryListContent.d.ts +10 -2
  395. package/dist/types/createDictionaryEntryPoint/generateDictionaryListContent.d.ts.map +1 -0
  396. package/dist/types/createDictionaryEntryPoint/getBuiltDictionariesPath.d.ts +10 -2
  397. package/dist/types/createDictionaryEntryPoint/getBuiltDictionariesPath.d.ts.map +1 -0
  398. package/dist/types/createDictionaryEntryPoint/getBuiltDynamicDictionariesPath.d.ts +10 -2
  399. package/dist/types/createDictionaryEntryPoint/getBuiltDynamicDictionariesPath.d.ts.map +1 -0
  400. package/dist/types/createDictionaryEntryPoint/getBuiltFetchDictionariesPath.d.ts +10 -2
  401. package/dist/types/createDictionaryEntryPoint/getBuiltFetchDictionariesPath.d.ts.map +1 -0
  402. package/dist/types/createDictionaryEntryPoint/getBuiltRemoteDictionariesPath.d.ts +10 -2
  403. package/dist/types/createDictionaryEntryPoint/getBuiltRemoteDictionariesPath.d.ts.map +1 -0
  404. package/dist/types/createDictionaryEntryPoint/getBuiltUnmergedDictionariesPath.d.ts +10 -2
  405. package/dist/types/createDictionaryEntryPoint/getBuiltUnmergedDictionariesPath.d.ts.map +1 -0
  406. package/dist/types/createDictionaryEntryPoint/index.d.ts +7 -7
  407. package/dist/types/createType/createModuleAugmentation.d.ts +9 -2
  408. package/dist/types/createType/createModuleAugmentation.d.ts.map +1 -0
  409. package/dist/types/createType/createType.d.ts +12 -2
  410. package/dist/types/createType/createType.d.ts.map +1 -0
  411. package/dist/types/createType/index.d.ts +2 -2
  412. package/dist/types/fetchDistantDictionaries.d.ts +1 -1
  413. package/dist/types/fetchDistantDictionaries.d.ts.map +1 -1
  414. package/dist/types/getContentDeclarationFileTemplate/getContentDeclarationFileTemplate.d.ts +7 -2
  415. package/dist/types/getContentDeclarationFileTemplate/getContentDeclarationFileTemplate.d.ts.map +1 -0
  416. package/dist/types/getContentDeclarationFileTemplate/index.d.ts +1 -1
  417. package/dist/types/loadDictionaries/index.d.ts +4 -4
  418. package/dist/types/loadDictionaries/loadContentDeclaration.d.ts +12 -2
  419. package/dist/types/loadDictionaries/loadContentDeclaration.d.ts.map +1 -0
  420. package/dist/types/loadDictionaries/loadDictionaries.d.ts +23 -2
  421. package/dist/types/loadDictionaries/loadDictionaries.d.ts.map +1 -0
  422. package/dist/types/loadDictionaries/loadLocalDictionaries.d.ts +8 -2
  423. package/dist/types/loadDictionaries/loadLocalDictionaries.d.ts.map +1 -0
  424. package/dist/types/loadDictionaries/loadRemoteDictionaries.d.ts +15 -2
  425. package/dist/types/loadDictionaries/loadRemoteDictionaries.d.ts.map +1 -0
  426. package/dist/types/loadDictionaries/log.d.ts +1 -1
  427. package/dist/types/utils/getFormatFromExtension.d.ts +8 -2
  428. package/dist/types/utils/getFormatFromExtension.d.ts.map +1 -0
  429. package/dist/types/utils/index.d.ts +1 -1
  430. package/dist/types/writeConfiguration/index.d.ts.map +1 -1
  431. package/dist/types/writeContentDeclaration/detectExportedComponentName.d.ts +12 -2
  432. package/dist/types/writeContentDeclaration/detectExportedComponentName.d.ts.map +1 -0
  433. package/dist/types/writeContentDeclaration/dictionaryStatus.d.ts +5 -2
  434. package/dist/types/writeContentDeclaration/dictionaryStatus.d.ts.map +1 -0
  435. package/dist/types/writeContentDeclaration/index.d.ts +5 -5
  436. package/dist/types/writeContentDeclaration/processContentDeclarationContent.d.ts.map +1 -1
  437. package/dist/types/writeContentDeclaration/transformJSFile.d.ts +11 -2
  438. package/dist/types/writeContentDeclaration/transformJSFile.d.ts.map +1 -0
  439. package/dist/types/writeContentDeclaration/writeContentDeclaration.d.ts +19 -2
  440. package/dist/types/writeContentDeclaration/writeContentDeclaration.d.ts.map +1 -0
  441. package/dist/types/writeContentDeclaration/writeJSFile.d.ts +14 -2
  442. package/dist/types/writeContentDeclaration/writeJSFile.d.ts.map +1 -0
  443. package/package.json +8 -8
  444. package/dist/cjs/_utils_asset-SJVy1xMD.cjs +0 -2
  445. package/dist/cjs/chunk-Bmb41Sf3.cjs +0 -1
  446. package/dist/esm/_utils_asset-4w8dPH9r.mjs +0 -2
  447. package/dist/esm/chunk-DDgYwkfe.mjs +0 -1
  448. package/dist/types/buildIntlayerDictionary-C-LWgPIL.d.ts +0 -25
  449. package/dist/types/buildIntlayerDictionary-C-LWgPIL.d.ts.map +0 -1
  450. package/dist/types/createDictionaryEntryPoint-Bc5lHSiY.d.ts +0 -14
  451. package/dist/types/createDictionaryEntryPoint-Bc5lHSiY.d.ts.map +0 -1
  452. package/dist/types/createModuleAugmentation-D1eIVnjg.d.ts +0 -9
  453. package/dist/types/createModuleAugmentation-D1eIVnjg.d.ts.map +0 -1
  454. package/dist/types/createType--rDwdg2t.d.ts +0 -12
  455. package/dist/types/createType--rDwdg2t.d.ts.map +0 -1
  456. package/dist/types/detectExportedComponentName-DVXsp_FG.d.ts +0 -12
  457. package/dist/types/detectExportedComponentName-DVXsp_FG.d.ts.map +0 -1
  458. package/dist/types/dictionaryStatus-DPVO37qe.d.ts +0 -5
  459. package/dist/types/dictionaryStatus-DPVO37qe.d.ts.map +0 -1
  460. package/dist/types/generateDictionaryListContent-DAtHG6SR.d.ts +0 -10
  461. package/dist/types/generateDictionaryListContent-DAtHG6SR.d.ts.map +0 -1
  462. package/dist/types/getBuiltDictionariesPath-C4it65a1.d.ts +0 -10
  463. package/dist/types/getBuiltDictionariesPath-C4it65a1.d.ts.map +0 -1
  464. package/dist/types/getBuiltDynamicDictionariesPath-Cj9EWnjT.d.ts +0 -10
  465. package/dist/types/getBuiltDynamicDictionariesPath-Cj9EWnjT.d.ts.map +0 -1
  466. package/dist/types/getBuiltFetchDictionariesPath-1JleRhT3.d.ts +0 -10
  467. package/dist/types/getBuiltFetchDictionariesPath-1JleRhT3.d.ts.map +0 -1
  468. package/dist/types/getBuiltRemoteDictionariesPath-DHOmqNCr.d.ts +0 -10
  469. package/dist/types/getBuiltRemoteDictionariesPath-DHOmqNCr.d.ts.map +0 -1
  470. package/dist/types/getBuiltUnmergedDictionariesPath-GUmmLxTB.d.ts +0 -10
  471. package/dist/types/getBuiltUnmergedDictionariesPath-GUmmLxTB.d.ts.map +0 -1
  472. package/dist/types/getContentDeclarationFileTemplate-Dz3rnFy9.d.ts +0 -7
  473. package/dist/types/getContentDeclarationFileTemplate-Dz3rnFy9.d.ts.map +0 -1
  474. package/dist/types/getFormatFromExtension-SdXYWfPx.d.ts +0 -8
  475. package/dist/types/getFormatFromExtension-SdXYWfPx.d.ts.map +0 -1
  476. package/dist/types/loadContentDeclaration-CBMS4vkA.d.ts +0 -12
  477. package/dist/types/loadContentDeclaration-CBMS4vkA.d.ts.map +0 -1
  478. package/dist/types/loadDictionaries-BIqHwtYE.d.ts +0 -23
  479. package/dist/types/loadDictionaries-BIqHwtYE.d.ts.map +0 -1
  480. package/dist/types/loadLocalDictionaries-CNmVaw0c.d.ts +0 -8
  481. package/dist/types/loadLocalDictionaries-CNmVaw0c.d.ts.map +0 -1
  482. package/dist/types/loadRemoteDictionaries-MoITTb7W.d.ts +0 -15
  483. package/dist/types/loadRemoteDictionaries-MoITTb7W.d.ts.map +0 -1
  484. package/dist/types/processContentDeclaration-CAvrHaIT.d.ts +0 -11
  485. package/dist/types/processContentDeclaration-CAvrHaIT.d.ts.map +0 -1
  486. package/dist/types/transformJSFile-Cg0LkeLb.d.ts +0 -11
  487. package/dist/types/transformJSFile-Cg0LkeLb.d.ts.map +0 -1
  488. package/dist/types/writeContentDeclaration-XdGxj0KP.d.ts +0 -19
  489. package/dist/types/writeContentDeclaration-XdGxj0KP.d.ts.map +0 -1
  490. package/dist/types/writeDynamicDictionary-BE0mF2zZ.d.ts +0 -49
  491. package/dist/types/writeDynamicDictionary-BE0mF2zZ.d.ts.map +0 -1
  492. package/dist/types/writeJSFile-kK95jzg_.d.ts +0 -14
  493. package/dist/types/writeJSFile-kK95jzg_.d.ts.map +0 -1
  494. package/dist/types/writeMergedDictionary-CMeghcRI.d.ts +0 -30
  495. package/dist/types/writeMergedDictionary-CMeghcRI.d.ts.map +0 -1
  496. package/dist/types/writeUnmergedDictionary-Cxx51isz.d.ts +0 -34
  497. package/dist/types/writeUnmergedDictionary-Cxx51isz.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["ANSIColors","exists","x","readFileFromRoot","writeFileToRoot","v","parseJSONWithComments","ensureDirectory","findTsConfigFiles","initConfig","updateViteConfig","updateNextConfig"],"sources":["../../../src/init/index.ts"],"sourcesContent":["import { join } from 'node:path';\nimport * as ANSIColors from '@intlayer/config/colors';\nimport { colorize, colorizePath, logger, v, x } from '@intlayer/config/logger';\nimport { getConfiguration } from '@intlayer/config/node';\n\nimport { getAlias } from '@intlayer/config/utils';\nimport { initConfig } from '../initConfig';\nimport {\n ensureDirectory,\n exists,\n findTsConfigFiles,\n parseJSONWithComments,\n readFileFromRoot,\n updateNextConfig,\n updateViteConfig,\n writeFileToRoot,\n} from './utils';\n\n/**\n * Documentation URL Constants\n */\nconst DocumentationRouter = {\n NextJS: 'https://intlayer.org/doc/environment/nextjs.md',\n NextJS_15: 'https://intlayer.org/doc/environment/nextjs/15.md',\n NextJS_14: 'https://intlayer.org/doc/environment/nextjs/14.md',\n CRA: 'https://intlayer.org/doc/environment/create-react-app.md',\n Astro: 'https://intlayer.org/doc/environment/astro.md',\n ViteAndReact: 'https://intlayer.org/doc/environment/vite-and-react.md',\n ViteAndReact_ReactRouterV7:\n 'https://intlayer.org/doc/environment/vite-and-react/react-router-v7.md',\n ViteAndReact_ReactRouterV7_FSRoutes:\n 'https://intlayer.org/doc/environment/vite-and-react/react-router-v7-fs-routes.md',\n ViteAndVue: 'https://intlayer.org/doc/environment/vite-and-vue.md',\n ViteAndSolid: 'https://intlayer.org/doc/environment/vite-and-solid.md',\n ViteAndSvelte: 'https://intlayer.org/doc/environment/vite-and-svelte.md',\n ViteAndPreact: 'https://intlayer.org/doc/environment/vite-and-preact.md',\n TanStackRouter: 'https://intlayer.org/doc/environment/tanstack.md',\n NuxtAndVue: 'https://intlayer.org/doc/environment/nuxt-and-vue.md',\n Angular: 'https://intlayer.org/doc/environment/angular.md',\n SvelteKit: 'https://intlayer.org/doc/environment/sveltekit.md',\n ReactNativeAndExpo:\n 'https://intlayer.org/doc/environment/react-native-and-expo.md',\n Lynx: 'https://intlayer.org/doc/environment/lynx-and-react.md',\n Express: 'https://intlayer.org/doc/environment/express.md',\n NestJS: 'https://intlayer.org/doc/environment/nestjs.md',\n Fastify: 'https://intlayer.org/doc/environment/fastify.md',\n Default: 'https://intlayer.org/doc/get-started',\n\n // Check for competitors libs\n NextIntl: 'https://intlayer.org/blog/intlayer-with-next-intl.md',\n ReactI18Next: 'https://intlayer.org/blog/intlayer-with-react-i18next.md',\n ReactIntl: 'https://intlayer.org/blog/intlayer-with-react-intl.md',\n NextI18Next: 'https://intlayer.org/blog/intlayer-with-next-i18next.md',\n VueI18n: 'https://intlayer.org/blog/intlayer-with-vue-i18n.md',\n};\n\n/**\n * Helper: Detects the environment and returns the doc URL\n */\nconst getDocumentationUrl = (packageJson: any): string => {\n const deps = {\n ...packageJson.dependencies,\n ...packageJson.devDependencies,\n };\n\n /**\n * Helper to check if a version string matches a specific major version\n * Matches: \"15\", \"^15.0.0\", \"~15.2\", \"15.0.0-beta\"\n */\n const isVersion = (versionString: string, major: number): boolean => {\n if (!versionString || typeof versionString !== 'string') return false;\n const regex = new RegExp(`^[\\\\^~]?${major}(?:\\\\.|$)`);\n return regex.test(versionString);\n };\n\n // Mobile / Cross-platform\n if (deps['@lynx-js/react'] || deps['@lynx-js/core']) {\n return DocumentationRouter.Lynx;\n }\n if (deps['react-native'] || deps.expo) {\n return DocumentationRouter.ReactNativeAndExpo;\n }\n\n // Meta-frameworks (Next, Nuxt, Astro, SvelteKit)\n if (deps.next) {\n const version = deps.next;\n\n if (isVersion(version, 14)) {\n return DocumentationRouter.NextJS_14;\n }\n\n if (isVersion(version, 15)) {\n return DocumentationRouter.NextJS_15;\n }\n\n return DocumentationRouter.NextJS;\n }\n\n if (deps.nuxt) return DocumentationRouter.NuxtAndVue;\n if (deps.astro) return DocumentationRouter.Astro;\n if (deps['@sveltejs/kit']) return DocumentationRouter.SvelteKit;\n\n // Routers (TanStack & React Router v7)\n if (deps['@tanstack/react-router']) {\n return DocumentationRouter.TanStackRouter;\n }\n\n // Check for React Router v7\n const reactRouterVersion = deps['react-router'];\n if (reactRouterVersion && typeof reactRouterVersion === 'string') {\n // Distinguish between standard v7 and v7 with FS routes\n if (deps['@react-router/fs-routes']) {\n return DocumentationRouter.ViteAndReact_ReactRouterV7_FSRoutes;\n }\n\n // Use Regex to ensure it is v7\n if (isVersion(reactRouterVersion, 7)) {\n return DocumentationRouter.ViteAndReact_ReactRouterV7;\n }\n }\n\n // Vite Ecosystem (General)\n if (deps.vite) {\n if (deps.vue) return DocumentationRouter.ViteAndVue;\n if (deps['solid-js']) return DocumentationRouter.ViteAndSolid;\n if (deps.svelte) return DocumentationRouter.ViteAndSvelte;\n if (deps.preact) return DocumentationRouter.ViteAndPreact;\n\n // Default to React if Vite is present but specific other frameworks aren't found\n return DocumentationRouter.ViteAndReact;\n }\n\n // Other Web Frameworks\n if (deps['react-scripts']) return DocumentationRouter.CRA;\n if (deps['@angular/core']) return DocumentationRouter.Angular;\n\n // Backend\n if (deps['@nestjs/core']) return DocumentationRouter.NestJS;\n if (deps.express) return DocumentationRouter.Express;\n if (deps.fastify) return DocumentationRouter.Fastify;\n\n // Competitor Libs (Migration Guides)\n // We check these last as specific environment setup is usually higher priority,\n // but if no specific framework logic matched (or as a fallback), we guide to migration.\n if (deps['next-intl']) return DocumentationRouter.NextIntl;\n if (deps['react-i18next'] || deps.i18next)\n return DocumentationRouter.ReactI18Next;\n if (deps['react-intl']) return DocumentationRouter.ReactIntl;\n if (deps['next-i18next']) return DocumentationRouter.NextI18Next;\n if (deps['vue-i18n']) return DocumentationRouter.VueI18n;\n\n return DocumentationRouter.Default;\n};\n\n/**\n * MAIN LOGIC\n */\nexport const initIntlayer = async (rootDir: string) => {\n logger(colorize('Checking Intlayer configuration...', ANSIColors.CYAN));\n\n // READ PACKAGE.JSON\n const packageJsonPath = 'package.json';\n if (!(await exists(rootDir, packageJsonPath))) {\n logger(\n `${x} No ${colorizePath('package.json')} found. Please run this script from the project root.`,\n { level: 'error' }\n );\n process.exit(1);\n }\n\n const packageJsonContent = await readFileFromRoot(rootDir, packageJsonPath);\n let packageJson: Record<string, any>;\n try {\n packageJson = JSON.parse(packageJsonContent);\n } catch {\n logger(`${x} Could not parse ${colorizePath('package.json')}.`, {\n level: 'error',\n });\n process.exit(1);\n }\n\n // Determine the correct documentation URL based on dependencies\n const guideUrl = getDocumentationUrl(packageJson);\n\n // CHECK .GITIGNORE\n const gitignorePath = '.gitignore';\n if (await exists(rootDir, gitignorePath)) {\n const gitignoreContent = await readFileFromRoot(rootDir, gitignorePath);\n\n if (!gitignoreContent.includes('intlayer')) {\n const newContent = `${gitignoreContent}\\n# Intlayer\\n.intlayer\\n`;\n await writeFileToRoot(rootDir, gitignorePath, newContent);\n logger(\n `${v} Added ${colorizePath('.intlayer')} to ${colorizePath(gitignorePath)}`\n );\n } else {\n logger(`${v} ${colorizePath(gitignorePath)} already includes .intlayer`);\n }\n }\n\n // CHECK VS CODE EXTENSION RECOMMENDATIONS\n const vscodeDir = '.vscode';\n const extensionsJsonPath = join(vscodeDir, 'extensions.json');\n const extensionId = 'intlayer.intlayer-vs-code-extension';\n\n try {\n let extensionsConfig: { recommendations: string[] } = {\n recommendations: [],\n };\n\n if (await exists(rootDir, extensionsJsonPath)) {\n const content = await readFileFromRoot(rootDir, extensionsJsonPath);\n extensionsConfig = parseJSONWithComments(content);\n } else {\n await ensureDirectory(rootDir, vscodeDir);\n }\n\n if (!extensionsConfig.recommendations) {\n extensionsConfig.recommendations = [];\n }\n\n if (!extensionsConfig.recommendations.includes(extensionId)) {\n extensionsConfig.recommendations.push(extensionId);\n await writeFileToRoot(\n rootDir,\n extensionsJsonPath,\n JSON.stringify(extensionsConfig, null, 2)\n );\n logger(\n `${v} Added ${colorize(extensionId, ANSIColors.MAGENTA)} to ${colorizePath(extensionsJsonPath)}`\n );\n } else {\n logger(\n `${v} ${colorizePath(extensionsJsonPath)} already includes ${colorize(extensionId, ANSIColors.MAGENTA)}`\n );\n }\n } catch {\n logger(\n `${x} Could not update ${colorizePath(extensionsJsonPath)}. You may need to add ${colorize(extensionId, ANSIColors.MAGENTA)} manually.`,\n { level: 'warn' }\n );\n }\n\n // CHECK TSCONFIGS\n const tsConfigFiles = await findTsConfigFiles(rootDir);\n let hasTsConfig = false;\n\n for (const fileName of tsConfigFiles) {\n if (await exists(rootDir, fileName)) {\n hasTsConfig = true;\n try {\n const fileContent = await readFileFromRoot(rootDir, fileName);\n const config = parseJSONWithComments(fileContent);\n const typeDefinition = '.intlayer/**/*.ts';\n\n let updated = false;\n\n if (!config.include) {\n // Skip if no include array (solution-style)\n } else if (\n Array.isArray(config.include) &&\n !(config.include as string[]).some((pattern: string) =>\n pattern.includes('.intlayer')\n )\n ) {\n config.include.push(typeDefinition);\n updated = true;\n } else if (config.include.includes(typeDefinition)) {\n logger(\n `${v} ${colorizePath(fileName)} already includes intlayer types`\n );\n }\n\n if (updated) {\n await writeFileToRoot(\n rootDir,\n fileName,\n JSON.stringify(config, null, 2)\n );\n logger(\n `${v} Updated ${colorizePath(fileName)} to include intlayer types`\n );\n }\n } catch {\n logger(\n `${x} Could not parse or update ${colorizePath(fileName)}. You may need to add ${colorizePath('.intlayer/types/**/*.ts')} manually.`,\n { level: 'warn' }\n );\n }\n }\n }\n\n // INITIALIZE CONFIG FILE\n const format = hasTsConfig ? 'intlayer.config.ts' : 'intlayer.config.mjs';\n await initConfig(format, rootDir);\n\n let hasAliasConfiguration = false;\n\n // CHECK VITE CONFIG\n const viteConfigs = ['vite.config.ts', 'vite.config.js', 'vite.config.mjs'];\n\n for (const file of viteConfigs) {\n if (await exists(rootDir, file)) {\n hasAliasConfiguration = true;\n const content = await readFileFromRoot(rootDir, file);\n\n if (!content.includes('vite-intlayer')) {\n const extension = file.split('.').pop()!;\n const updatedContent = updateViteConfig(content, extension);\n await writeFileToRoot(rootDir, file, updatedContent);\n logger(`${v} Updated ${colorizePath(file)} to include Intlayer plugin`);\n }\n break;\n }\n }\n\n // CHECK NEXT CONFIG\n const nextConfigs = ['next.config.js', 'next.config.mjs', 'next.config.ts'];\n let isNextJsProject = false;\n\n for (const file of nextConfigs) {\n if (await exists(rootDir, file)) {\n isNextJsProject = true;\n hasAliasConfiguration = true;\n const content = await readFileFromRoot(rootDir, file);\n\n if (!content.includes('next-intlayer')) {\n const extension = file.split('.').pop()!;\n const updatedContent = updateNextConfig(content, extension);\n await writeFileToRoot(rootDir, file, updatedContent);\n logger(`${v} Updated ${colorizePath(file)} to include Intlayer plugin`);\n }\n break;\n }\n }\n\n // UPDATE PACKAGE.JSON DEV SCRIPT FOR NEXT.JS >= 16\n if (isNextJsProject) {\n const nextVersion =\n packageJson.dependencies?.next || packageJson.devDependencies?.next;\n\n const isVersionGreaterOrEqual = (\n versionString: string,\n major: number\n ): boolean => {\n if (!versionString || typeof versionString !== 'string') return false;\n const match = versionString.match(/^[^\\d]*(\\d+)/);\n\n if (!match) return false;\n const majorVersion = parseInt(match[1], 10);\n return majorVersion >= major;\n };\n\n if (nextVersion && isVersionGreaterOrEqual(nextVersion, 16)) {\n const devScript = packageJson.scripts?.dev;\n const expectedScript = \"intlayer watch --with 'bun run --bun next dev'\";\n\n if (\n devScript &&\n devScript !== expectedScript &&\n devScript.includes('next dev')\n ) {\n packageJson.scripts.dev = expectedScript;\n\n await writeFileToRoot(\n rootDir,\n packageJsonPath,\n JSON.stringify(packageJson, null, 2)\n );\n\n logger(\n `${v} Updated ${colorizePath('package.json')} dev script for Next.js >= 16`\n );\n }\n }\n }\n\n // CHECK WEBPACK CONFIG\n const webpackConfigs = [\n 'webpack.config.js',\n 'webpack.config.ts',\n 'webpack.config.mjs',\n 'webpack.config.cjs',\n ];\n\n for (const file of webpackConfigs) {\n if (await exists(rootDir, file)) {\n hasAliasConfiguration = true;\n logger(\n `${v} Found ${colorizePath(\n file\n )}. Make sure to configure aliases manually or use the Intlayer Webpack plugin.`\n );\n break;\n }\n }\n\n if (!hasAliasConfiguration) {\n const configuration = getConfiguration({ baseDir: rootDir });\n const aliases = getAlias({ configuration });\n\n if (hasTsConfig && tsConfigFiles.length > 0) {\n const tsConfigPath =\n tsConfigFiles.find((f) => f === 'tsconfig.json') || tsConfigFiles[0];\n const tsConfigContent = await readFileFromRoot(rootDir, tsConfigPath);\n const config = parseJSONWithComments(tsConfigContent);\n\n config.compilerOptions ??= {};\n config.compilerOptions.paths ??= {};\n\n let updated = false;\n\n Object.entries(aliases).forEach(([alias, path]) => {\n if (!config.compilerOptions.paths[alias]) {\n config.compilerOptions.paths[alias] = [path];\n updated = true;\n }\n });\n\n if (updated) {\n await writeFileToRoot(\n rootDir,\n tsConfigPath,\n JSON.stringify(config, null, 2)\n );\n\n logger(\n `${v} Updated ${colorizePath(\n tsConfigPath\n )} to include Intlayer aliases`\n );\n }\n } else {\n const jsConfigPath = 'jsconfig.json';\n\n if (await exists(rootDir, jsConfigPath)) {\n const jsConfigContent = await readFileFromRoot(rootDir, jsConfigPath);\n const config = parseJSONWithComments(jsConfigContent);\n\n config.compilerOptions ??= {};\n config.compilerOptions.paths ??= {};\n\n let updated = false;\n\n Object.entries(aliases).forEach(([alias, path]) => {\n if (!config.compilerOptions.paths[alias]) {\n config.compilerOptions.paths[alias] = [path];\n updated = true;\n }\n });\n\n if (updated) {\n await writeFileToRoot(\n rootDir,\n jsConfigPath,\n JSON.stringify(config, null, 2)\n );\n logger(\n `${v} Updated ${colorizePath(\n jsConfigPath\n )} to include Intlayer aliases`\n );\n }\n } else {\n packageJson.imports ??= {};\n\n let updated = false;\n\n Object.entries(aliases).forEach(([alias, path]) => {\n const importAlias = alias.replace('@', '#');\n const importPath = path.startsWith('.') ? path : `./${path}`;\n\n if (!packageJson.imports[importAlias]) {\n packageJson.imports[importAlias] = importPath;\n updated = true;\n }\n });\n\n if (updated) {\n await writeFileToRoot(\n rootDir,\n packageJsonPath,\n JSON.stringify(packageJson, null, 2)\n );\n logger(\n `${v} Updated ${colorizePath(\n packageJsonPath\n )} to include Intlayer imports`\n );\n }\n }\n }\n }\n\n // FINAL SUCCESS MESSAGE\n logger(`${v} ${colorize('Intlayer init setup complete.', ANSIColors.GREEN)}`);\n logger([\n colorize('Next →', ANSIColors.MAGENTA),\n colorize(\n `Follow the instructions in the documentation to complete the setup:`,\n ANSIColors.GREY_LIGHT\n ),\n colorizePath(guideUrl),\n ]);\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":["ANSIColors","exists","x","readFileFromRoot","writeFileToRoot","v","parseJSONWithComments","ensureDirectory","findTsConfigFiles","initConfig","updateViteConfig","updateNextConfig"],"sources":["../../../src/init/index.ts"],"sourcesContent":["import { join } from 'node:path';\nimport * as ANSIColors from '@intlayer/config/colors';\nimport { colorize, colorizePath, logger, v, x } from '@intlayer/config/logger';\nimport { getConfiguration } from '@intlayer/config/node';\n\nimport { getAlias } from '@intlayer/config/utils';\nimport { initConfig } from '../initConfig';\nimport {\n ensureDirectory,\n exists,\n findTsConfigFiles,\n parseJSONWithComments,\n readFileFromRoot,\n updateNextConfig,\n updateViteConfig,\n writeFileToRoot,\n} from './utils';\n\n/**\n * Documentation URL Constants\n */\nconst DocumentationRouter = {\n NextJS: 'https://intlayer.org/doc/environment/nextjs.md',\n NextJS_15: 'https://intlayer.org/doc/environment/nextjs/15.md',\n NextJS_14: 'https://intlayer.org/doc/environment/nextjs/14.md',\n CRA: 'https://intlayer.org/doc/environment/create-react-app.md',\n Astro: 'https://intlayer.org/doc/environment/astro.md',\n ViteAndReact: 'https://intlayer.org/doc/environment/vite-and-react.md',\n ViteAndReact_ReactRouterV7:\n 'https://intlayer.org/doc/environment/vite-and-react/react-router-v7.md',\n ViteAndReact_ReactRouterV7_FSRoutes:\n 'https://intlayer.org/doc/environment/vite-and-react/react-router-v7-fs-routes.md',\n ViteAndVue: 'https://intlayer.org/doc/environment/vite-and-vue.md',\n ViteAndSolid: 'https://intlayer.org/doc/environment/vite-and-solid.md',\n ViteAndSvelte: 'https://intlayer.org/doc/environment/vite-and-svelte.md',\n ViteAndPreact: 'https://intlayer.org/doc/environment/vite-and-preact.md',\n TanStackRouter: 'https://intlayer.org/doc/environment/tanstack.md',\n NuxtAndVue: 'https://intlayer.org/doc/environment/nuxt-and-vue.md',\n Angular: 'https://intlayer.org/doc/environment/angular.md',\n SvelteKit: 'https://intlayer.org/doc/environment/sveltekit.md',\n ReactNativeAndExpo:\n 'https://intlayer.org/doc/environment/react-native-and-expo.md',\n Lynx: 'https://intlayer.org/doc/environment/lynx-and-react.md',\n Express: 'https://intlayer.org/doc/environment/express.md',\n NestJS: 'https://intlayer.org/doc/environment/nestjs.md',\n Fastify: 'https://intlayer.org/doc/environment/fastify.md',\n Default: 'https://intlayer.org/doc/get-started',\n\n // Check for competitors libs\n NextIntl: 'https://intlayer.org/blog/intlayer-with-next-intl.md',\n ReactI18Next: 'https://intlayer.org/blog/intlayer-with-react-i18next.md',\n ReactIntl: 'https://intlayer.org/blog/intlayer-with-react-intl.md',\n NextI18Next: 'https://intlayer.org/blog/intlayer-with-next-i18next.md',\n VueI18n: 'https://intlayer.org/blog/intlayer-with-vue-i18n.md',\n};\n\n/**\n * Helper: Detects the environment and returns the doc URL\n */\nconst getDocumentationUrl = (packageJson: any): string => {\n const deps = {\n ...packageJson.dependencies,\n ...packageJson.devDependencies,\n };\n\n /**\n * Helper to check if a version string matches a specific major version\n * Matches: \"15\", \"^15.0.0\", \"~15.2\", \"15.0.0-beta\"\n */\n const isVersion = (versionString: string, major: number): boolean => {\n if (!versionString || typeof versionString !== 'string') return false;\n const regex = new RegExp(`^[\\\\^~]?${major}(?:\\\\.|$)`);\n return regex.test(versionString);\n };\n\n // Mobile / Cross-platform\n if (deps['@lynx-js/react'] || deps['@lynx-js/core']) {\n return DocumentationRouter.Lynx;\n }\n if (deps['react-native'] || deps.expo) {\n return DocumentationRouter.ReactNativeAndExpo;\n }\n\n // Meta-frameworks (Next, Nuxt, Astro, SvelteKit)\n if (deps.next) {\n const version = deps.next;\n\n if (isVersion(version, 14)) {\n return DocumentationRouter.NextJS_14;\n }\n\n if (isVersion(version, 15)) {\n return DocumentationRouter.NextJS_15;\n }\n\n return DocumentationRouter.NextJS;\n }\n\n if (deps.nuxt) return DocumentationRouter.NuxtAndVue;\n if (deps.astro) return DocumentationRouter.Astro;\n if (deps['@sveltejs/kit']) return DocumentationRouter.SvelteKit;\n\n // Routers (TanStack & React Router v7)\n if (deps['@tanstack/react-router']) {\n return DocumentationRouter.TanStackRouter;\n }\n\n // Check for React Router v7\n const reactRouterVersion = deps['react-router'];\n if (reactRouterVersion && typeof reactRouterVersion === 'string') {\n // Distinguish between standard v7 and v7 with FS routes\n if (deps['@react-router/fs-routes']) {\n return DocumentationRouter.ViteAndReact_ReactRouterV7_FSRoutes;\n }\n\n // Use Regex to ensure it is v7\n if (isVersion(reactRouterVersion, 7)) {\n return DocumentationRouter.ViteAndReact_ReactRouterV7;\n }\n }\n\n // Vite Ecosystem (General)\n if (deps.vite) {\n if (deps.vue) return DocumentationRouter.ViteAndVue;\n if (deps['solid-js']) return DocumentationRouter.ViteAndSolid;\n if (deps.svelte) return DocumentationRouter.ViteAndSvelte;\n if (deps.preact) return DocumentationRouter.ViteAndPreact;\n\n // Default to React if Vite is present but specific other frameworks aren't found\n return DocumentationRouter.ViteAndReact;\n }\n\n // Other Web Frameworks\n if (deps['react-scripts']) return DocumentationRouter.CRA;\n if (deps['@angular/core']) return DocumentationRouter.Angular;\n\n // Backend\n if (deps['@nestjs/core']) return DocumentationRouter.NestJS;\n if (deps.express) return DocumentationRouter.Express;\n if (deps.fastify) return DocumentationRouter.Fastify;\n\n // Competitor Libs (Migration Guides)\n // We check these last as specific environment setup is usually higher priority,\n // but if no specific framework logic matched (or as a fallback), we guide to migration.\n if (deps['next-intl']) return DocumentationRouter.NextIntl;\n if (deps['react-i18next'] || deps.i18next)\n return DocumentationRouter.ReactI18Next;\n if (deps['react-intl']) return DocumentationRouter.ReactIntl;\n if (deps['next-i18next']) return DocumentationRouter.NextI18Next;\n if (deps['vue-i18n']) return DocumentationRouter.VueI18n;\n\n return DocumentationRouter.Default;\n};\n\n/**\n * MAIN LOGIC\n */\nexport const initIntlayer = async (rootDir: string) => {\n logger(colorize('Checking Intlayer configuration...', ANSIColors.CYAN));\n\n // READ PACKAGE.JSON\n const packageJsonPath = 'package.json';\n if (!(await exists(rootDir, packageJsonPath))) {\n logger(\n `${x} No ${colorizePath('package.json')} found. Please run this script from the project root.`,\n { level: 'error' }\n );\n process.exit(1);\n }\n\n const packageJsonContent = await readFileFromRoot(rootDir, packageJsonPath);\n let packageJson: Record<string, any>;\n try {\n packageJson = JSON.parse(packageJsonContent);\n } catch {\n logger(`${x} Could not parse ${colorizePath('package.json')}.`, {\n level: 'error',\n });\n process.exit(1);\n }\n\n // Determine the correct documentation URL based on dependencies\n const guideUrl = getDocumentationUrl(packageJson);\n\n // CHECK .GITIGNORE\n const gitignorePath = '.gitignore';\n if (await exists(rootDir, gitignorePath)) {\n const gitignoreContent = await readFileFromRoot(rootDir, gitignorePath);\n\n if (!gitignoreContent.includes('intlayer')) {\n const newContent = `${gitignoreContent}\\n# Intlayer\\n.intlayer\\n`;\n await writeFileToRoot(rootDir, gitignorePath, newContent);\n logger(\n `${v} Added ${colorizePath('.intlayer')} to ${colorizePath(gitignorePath)}`\n );\n } else {\n logger(`${v} ${colorizePath(gitignorePath)} already includes .intlayer`);\n }\n }\n\n // CHECK VS CODE EXTENSION RECOMMENDATIONS\n const vscodeDir = '.vscode';\n const extensionsJsonPath = join(vscodeDir, 'extensions.json');\n const extensionId = 'intlayer.intlayer-vs-code-extension';\n\n try {\n let extensionsConfig: { recommendations: string[] } = {\n recommendations: [],\n };\n\n if (await exists(rootDir, extensionsJsonPath)) {\n const content = await readFileFromRoot(rootDir, extensionsJsonPath);\n extensionsConfig = parseJSONWithComments(content);\n } else {\n await ensureDirectory(rootDir, vscodeDir);\n }\n\n if (!extensionsConfig.recommendations) {\n extensionsConfig.recommendations = [];\n }\n\n if (!extensionsConfig.recommendations.includes(extensionId)) {\n extensionsConfig.recommendations.push(extensionId);\n await writeFileToRoot(\n rootDir,\n extensionsJsonPath,\n JSON.stringify(extensionsConfig, null, 2)\n );\n logger(\n `${v} Added ${colorize(extensionId, ANSIColors.MAGENTA)} to ${colorizePath(extensionsJsonPath)}`\n );\n } else {\n logger(\n `${v} ${colorizePath(extensionsJsonPath)} already includes ${colorize(extensionId, ANSIColors.MAGENTA)}`\n );\n }\n } catch {\n logger(\n `${x} Could not update ${colorizePath(extensionsJsonPath)}. You may need to add ${colorize(extensionId, ANSIColors.MAGENTA)} manually.`,\n { level: 'warn' }\n );\n }\n\n // CHECK TSCONFIGS\n const tsConfigFiles = await findTsConfigFiles(rootDir);\n let hasTsConfig = false;\n\n for (const fileName of tsConfigFiles) {\n if (await exists(rootDir, fileName)) {\n hasTsConfig = true;\n try {\n const fileContent = await readFileFromRoot(rootDir, fileName);\n const config = parseJSONWithComments(fileContent);\n const typeDefinition = '.intlayer/**/*.ts';\n\n let updated = false;\n\n if (!config.include) {\n // Skip if no include array (solution-style)\n } else if (\n Array.isArray(config.include) &&\n !(config.include as string[]).some((pattern: string) =>\n pattern.includes('.intlayer')\n )\n ) {\n config.include.push(typeDefinition);\n updated = true;\n } else if (config.include.includes(typeDefinition)) {\n logger(\n `${v} ${colorizePath(fileName)} already includes intlayer types`\n );\n }\n\n if (updated) {\n await writeFileToRoot(\n rootDir,\n fileName,\n JSON.stringify(config, null, 2)\n );\n logger(\n `${v} Updated ${colorizePath(fileName)} to include intlayer types`\n );\n }\n } catch {\n logger(\n `${x} Could not parse or update ${colorizePath(fileName)}. You may need to add ${colorizePath('.intlayer/types/**/*.ts')} manually.`,\n { level: 'warn' }\n );\n }\n }\n }\n\n // INITIALIZE CONFIG FILE\n const format = hasTsConfig ? 'intlayer.config.ts' : 'intlayer.config.mjs';\n await initConfig(format, rootDir);\n\n let hasAliasConfiguration = false;\n\n // CHECK VITE CONFIG\n const viteConfigs = ['vite.config.ts', 'vite.config.js', 'vite.config.mjs'];\n\n for (const file of viteConfigs) {\n if (await exists(rootDir, file)) {\n hasAliasConfiguration = true;\n const content = await readFileFromRoot(rootDir, file);\n\n if (!content.includes('vite-intlayer')) {\n const extension = file.split('.').pop()!;\n const updatedContent = updateViteConfig(content, extension);\n await writeFileToRoot(rootDir, file, updatedContent);\n logger(`${v} Updated ${colorizePath(file)} to include Intlayer plugin`);\n }\n break;\n }\n }\n\n // CHECK NEXT CONFIG\n const nextConfigs = ['next.config.js', 'next.config.mjs', 'next.config.ts'];\n let isNextJsProject = false;\n\n for (const file of nextConfigs) {\n if (await exists(rootDir, file)) {\n isNextJsProject = true;\n hasAliasConfiguration = true;\n const content = await readFileFromRoot(rootDir, file);\n\n if (!content.includes('next-intlayer')) {\n const extension = file.split('.').pop()!;\n const updatedContent = updateNextConfig(content, extension);\n await writeFileToRoot(rootDir, file, updatedContent);\n logger(`${v} Updated ${colorizePath(file)} to include Intlayer plugin`);\n }\n break;\n }\n }\n\n // UPDATE PACKAGE.JSON DEV SCRIPT FOR NEXT.JS >= 16\n if (isNextJsProject) {\n const nextVersion =\n packageJson.dependencies?.next || packageJson.devDependencies?.next;\n\n const isVersionGreaterOrEqual = (\n versionString: string,\n major: number\n ): boolean => {\n if (!versionString || typeof versionString !== 'string') return false;\n const match = versionString.match(/^[^\\d]*(\\d+)/);\n\n if (!match) return false;\n const majorVersion = parseInt(match[1], 10);\n return majorVersion >= major;\n };\n\n if (nextVersion && isVersionGreaterOrEqual(nextVersion, 16)) {\n const devScript = packageJson.scripts?.dev;\n const expectedScript = \"intlayer watch --with 'bun run --bun next dev'\";\n\n if (\n devScript &&\n devScript !== expectedScript &&\n devScript.includes('next dev')\n ) {\n packageJson.scripts.dev = expectedScript;\n\n await writeFileToRoot(\n rootDir,\n packageJsonPath,\n JSON.stringify(packageJson, null, 2)\n );\n\n logger(\n `${v} Updated ${colorizePath('package.json')} dev script for Next.js >= 16`\n );\n }\n }\n }\n\n // CHECK WEBPACK CONFIG\n const webpackConfigs = [\n 'webpack.config.js',\n 'webpack.config.ts',\n 'webpack.config.mjs',\n 'webpack.config.cjs',\n ];\n\n for (const file of webpackConfigs) {\n if (await exists(rootDir, file)) {\n hasAliasConfiguration = true;\n logger(\n `${v} Found ${colorizePath(\n file\n )}. Make sure to configure aliases manually or use the Intlayer Webpack plugin.`\n );\n break;\n }\n }\n\n if (!hasAliasConfiguration) {\n const configuration = getConfiguration({ baseDir: rootDir });\n const aliases = getAlias({ configuration });\n\n if (hasTsConfig && tsConfigFiles.length > 0) {\n const tsConfigPath =\n tsConfigFiles.find((f) => f === 'tsconfig.json') || tsConfigFiles[0];\n const tsConfigContent = await readFileFromRoot(rootDir, tsConfigPath);\n const config = parseJSONWithComments(tsConfigContent);\n\n config.compilerOptions ??= {};\n config.compilerOptions.paths ??= {};\n\n let updated = false;\n\n Object.entries(aliases).forEach(([alias, path]) => {\n if (!config.compilerOptions.paths[alias]) {\n config.compilerOptions.paths[alias] = [path];\n updated = true;\n }\n });\n\n if (updated) {\n await writeFileToRoot(\n rootDir,\n tsConfigPath,\n JSON.stringify(config, null, 2)\n );\n\n logger(\n `${v} Updated ${colorizePath(\n tsConfigPath\n )} to include Intlayer aliases`\n );\n }\n } else {\n const jsConfigPath = 'jsconfig.json';\n\n if (await exists(rootDir, jsConfigPath)) {\n const jsConfigContent = await readFileFromRoot(rootDir, jsConfigPath);\n const config = parseJSONWithComments(jsConfigContent);\n\n config.compilerOptions ??= {};\n config.compilerOptions.paths ??= {};\n\n let updated = false;\n\n Object.entries(aliases).forEach(([alias, path]) => {\n if (!config.compilerOptions.paths[alias]) {\n config.compilerOptions.paths[alias] = [path];\n updated = true;\n }\n });\n\n if (updated) {\n await writeFileToRoot(\n rootDir,\n jsConfigPath,\n JSON.stringify(config, null, 2)\n );\n logger(\n `${v} Updated ${colorizePath(\n jsConfigPath\n )} to include Intlayer aliases`\n );\n }\n } else {\n packageJson.imports ??= {};\n\n let updated = false;\n\n Object.entries(aliases).forEach(([alias, path]) => {\n const importAlias = alias.replace('@', '#');\n const importPath = path.startsWith('.') ? path : `./${path}`;\n\n if (!packageJson.imports[importAlias]) {\n packageJson.imports[importAlias] = importPath;\n updated = true;\n }\n });\n\n if (updated) {\n await writeFileToRoot(\n rootDir,\n packageJsonPath,\n JSON.stringify(packageJson, null, 2)\n );\n logger(\n `${v} Updated ${colorizePath(\n packageJsonPath\n )} to include Intlayer imports`\n );\n }\n }\n }\n }\n\n // FINAL SUCCESS MESSAGE\n logger(`${v} ${colorize('Intlayer init setup complete.', ANSIColors.GREEN)}`);\n logger([\n colorize('Next →', ANSIColors.MAGENTA),\n colorize(\n `Follow the instructions in the documentation to complete the setup:`,\n ANSIColors.GREY_LIGHT\n ),\n colorizePath(guideUrl),\n ]);\n};\n"],"mappings":"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"}
@@ -1,2 +1,112 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../chunk-Bmb41Sf3.cjs`);let t=require(`recast`);t=e.t(t);const n=t.types.builders,r=t.types.namedTypes,i=(e,n)=>{let i=!1;return t.visit(e,{visitImportDeclaration(e){return e.node.source.value===n&&(i=!0),!1},visitCallExpression(e){let{callee:t,arguments:a}=e.node;return r.Identifier.check(t)&&t.name===`require`&&a[0]&&r.StringLiteral.check(a[0])&&a[0].value===n&&(i=!0),!1}}),i},a=(e,t,r,a)=>{if(i(e,a))return;let o=t?n.variableDeclaration(`const`,[n.variableDeclarator(n.objectPattern([n.objectProperty.from({key:n.identifier(r),value:n.identifier(r),shorthand:!0})]),n.callExpression(n.identifier(`require`),[n.stringLiteral(a)]))]):n.importDeclaration([n.importSpecifier(n.identifier(r))],n.stringLiteral(a));e.program.body.unshift(o)},o=(e,i)=>{let o=t.parse(e,{parser:require(`recast/parsers/typescript`)});a(o,i===`cjs`||e.includes(`module.exports`)&&!e.includes(`import `),`intlayer`,`vite-intlayer`);let s=e=>{if(!e||e.type!==`ObjectExpression`&&!r.ObjectExpression.check(e))return;let t=e.properties.find(e=>!e||!e.key?!1:(e.key.name||e.key.value)===`plugins`);t||(t=n.property(`init`,n.identifier(`plugins`),n.arrayExpression([])),e.properties.push(t));let i=t.value;i&&(i.type===`ArrayExpression`||r.ArrayExpression.check(i))&&(i.elements.some(e=>{let t=e?.callee;if(!t)return!1;let n=t.name||t.id?.name;return n===`intlayer`||n===`il`})||i.elements.push(n.callExpression(n.identifier(`intlayer`),[])))};return t.visit(o,{visitExportDefaultDeclaration(e){let t=e.node.declaration;if(r.ObjectExpression.check(t))s(t);else if(r.CallExpression.check(t)&&r.Identifier.check(t.callee)&&t.callee.name===`defineConfig`)r.ObjectExpression.check(t.arguments[0])&&s(t.arguments[0]);else if(r.Identifier.check(t)){let e=t.name;o.program.body.forEach(t=>{r.VariableDeclaration.check(t)&&t.declarations.forEach(t=>{r.VariableDeclarator.check(t)&&r.Identifier.check(t.id)&&t.id.name===e&&r.ObjectExpression.check(t.init)&&s(t.init)})})}return!1},visitAssignmentExpression(e){let{left:n,right:i}=e.node;return r.MemberExpression.check(n)&&t.print(n).code===`module.exports`&&(r.ObjectExpression.check(i)?s(i):r.CallExpression.check(i)&&r.Identifier.check(i.callee)&&i.callee.name===`defineConfig`&&r.ObjectExpression.check(i.arguments[0])&&s(i.arguments[0])),!1}}),t.print(o).code},s=(e,i)=>{let o=t.parse(e,{parser:require(`recast/parsers/typescript`)});return a(o,i===`cjs`||e.includes(`module.exports`),`withIntlayer`,`next-intlayer/server`),t.visit(o,{visitExportDefaultDeclaration(e){let t=e.node.declaration;return r.Expression.check(t)&&!(r.CallExpression.check(t)&&r.Identifier.check(t.callee)&&t.callee.name===`withIntlayer`)&&e.get(`declaration`).replace(n.callExpression(n.identifier(`withIntlayer`),[t])),!1},visitAssignmentExpression(e){let{left:i,right:a}=e.node;return r.MemberExpression.check(i)&&t.print(i).code===`module.exports`&&!(r.CallExpression.check(a)&&r.Identifier.check(a.callee)&&a.callee.name===`withIntlayer`)&&e.get(`right`).replace(n.callExpression(n.identifier(`withIntlayer`),[a])),!1}}),t.print(o).code};exports.updateNextConfig=s,exports.updateViteConfig=o;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
3
+ let recast = require("recast");
4
+ recast = require_runtime.__toESM(recast);
5
+
6
+ //#region src/init/utils/configManipulation.ts
7
+ const b = recast.types.builders;
8
+ const n = recast.types.namedTypes;
9
+ /**
10
+ * Checks if a module is already imported or required.
11
+ */
12
+ const isModuleImported = (ast, moduleName) => {
13
+ let found = false;
14
+ recast.visit(ast, {
15
+ visitImportDeclaration(path) {
16
+ if (path.node.source.value === moduleName) found = true;
17
+ return false;
18
+ },
19
+ visitCallExpression(path) {
20
+ const { callee, arguments: args } = path.node;
21
+ if (n.Identifier.check(callee) && callee.name === "require" && args[0] && n.StringLiteral.check(args[0]) && args[0].value === moduleName) found = true;
22
+ return false;
23
+ }
24
+ });
25
+ return found;
26
+ };
27
+ /**
28
+ * Injects import/require at the top of the file.
29
+ */
30
+ const injectImport = (ast, isCJS, importName, source) => {
31
+ if (isModuleImported(ast, source)) return;
32
+ const declaration = isCJS ? b.variableDeclaration("const", [b.variableDeclarator(b.objectPattern([b.objectProperty.from({
33
+ key: b.identifier(importName),
34
+ value: b.identifier(importName),
35
+ shorthand: true
36
+ })]), b.callExpression(b.identifier("require"), [b.stringLiteral(source)]))]) : b.importDeclaration([b.importSpecifier(b.identifier(importName))], b.stringLiteral(source));
37
+ ast.program.body.unshift(declaration);
38
+ };
39
+ const updateViteConfig = (content, extension) => {
40
+ const ast = recast.parse(content, { parser: require("recast/parsers/typescript") });
41
+ injectImport(ast, extension === "cjs" || content.includes("module.exports") && !content.includes("import "), "intlayer", "vite-intlayer");
42
+ const updateConfigObject = (objExpr) => {
43
+ if (!objExpr || objExpr.type !== "ObjectExpression" && !n.ObjectExpression.check(objExpr)) return;
44
+ let pluginsProp = objExpr.properties.find((p) => {
45
+ if (!p || !p.key) return false;
46
+ return (p.key.name || p.key.value) === "plugins";
47
+ });
48
+ if (!pluginsProp) {
49
+ pluginsProp = b.property("init", b.identifier("plugins"), b.arrayExpression([]));
50
+ objExpr.properties.push(pluginsProp);
51
+ }
52
+ const pluginsValue = pluginsProp.value;
53
+ if (pluginsValue && (pluginsValue.type === "ArrayExpression" || n.ArrayExpression.check(pluginsValue))) {
54
+ if (!pluginsValue.elements.some((el) => {
55
+ const callee = el?.callee;
56
+ if (!callee) return false;
57
+ const name = callee.name || callee.id?.name;
58
+ return name === "intlayer" || name === "il";
59
+ })) pluginsValue.elements.push(b.callExpression(b.identifier("intlayer"), []));
60
+ }
61
+ };
62
+ recast.visit(ast, {
63
+ visitExportDefaultDeclaration(path) {
64
+ const decl = path.node.declaration;
65
+ if (n.ObjectExpression.check(decl)) updateConfigObject(decl);
66
+ else if (n.CallExpression.check(decl) && n.Identifier.check(decl.callee) && decl.callee.name === "defineConfig") {
67
+ if (n.ObjectExpression.check(decl.arguments[0])) updateConfigObject(decl.arguments[0]);
68
+ } else if (n.Identifier.check(decl)) {
69
+ const name = decl.name;
70
+ ast.program.body.forEach((stmt) => {
71
+ if (n.VariableDeclaration.check(stmt)) stmt.declarations.forEach((vdecl) => {
72
+ if (n.VariableDeclarator.check(vdecl) && n.Identifier.check(vdecl.id) && vdecl.id.name === name && n.ObjectExpression.check(vdecl.init)) updateConfigObject(vdecl.init);
73
+ });
74
+ });
75
+ }
76
+ return false;
77
+ },
78
+ visitAssignmentExpression(path) {
79
+ const { left, right } = path.node;
80
+ if (n.MemberExpression.check(left) && recast.print(left).code === "module.exports") {
81
+ if (n.ObjectExpression.check(right)) updateConfigObject(right);
82
+ else if (n.CallExpression.check(right) && n.Identifier.check(right.callee) && right.callee.name === "defineConfig") {
83
+ if (n.ObjectExpression.check(right.arguments[0])) updateConfigObject(right.arguments[0]);
84
+ }
85
+ }
86
+ return false;
87
+ }
88
+ });
89
+ return recast.print(ast).code;
90
+ };
91
+ const updateNextConfig = (content, extension) => {
92
+ const ast = recast.parse(content, { parser: require("recast/parsers/typescript") });
93
+ injectImport(ast, extension === "cjs" || content.includes("module.exports"), "withIntlayer", "next-intlayer/server");
94
+ recast.visit(ast, {
95
+ visitExportDefaultDeclaration(path) {
96
+ const declaration = path.node.declaration;
97
+ if (n.Expression.check(declaration) && !(n.CallExpression.check(declaration) && n.Identifier.check(declaration.callee) && declaration.callee.name === "withIntlayer")) path.get("declaration").replace(b.callExpression(b.identifier("withIntlayer"), [declaration]));
98
+ return false;
99
+ },
100
+ visitAssignmentExpression(path) {
101
+ const { left, right } = path.node;
102
+ if (n.MemberExpression.check(left) && recast.print(left).code === "module.exports" && !(n.CallExpression.check(right) && n.Identifier.check(right.callee) && right.callee.name === "withIntlayer")) path.get("right").replace(b.callExpression(b.identifier("withIntlayer"), [right]));
103
+ return false;
104
+ }
105
+ });
106
+ return recast.print(ast).code;
107
+ };
108
+
109
+ //#endregion
110
+ exports.updateNextConfig = updateNextConfig;
111
+ exports.updateViteConfig = updateViteConfig;
2
112
  //# sourceMappingURL=configManipulation.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"configManipulation.cjs","names":[],"sources":["../../../../src/init/utils/configManipulation.ts"],"sourcesContent":["import * as recast from 'recast';\n\nconst b = recast.types.builders;\nconst n = recast.types.namedTypes;\n\n/**\n * Checks if a module is already imported or required.\n */\nconst isModuleImported = (ast: any, moduleName: string): boolean => {\n let found = false;\n recast.visit(ast, {\n visitImportDeclaration(path) {\n if (path.node.source.value === moduleName) {\n found = true;\n }\n return false;\n },\n visitCallExpression(path) {\n const { callee, arguments: args } = path.node;\n\n if (\n n.Identifier.check(callee) &&\n callee.name === 'require' &&\n args[0] &&\n n.StringLiteral.check(args[0]) &&\n args[0].value === moduleName\n ) {\n found = true;\n }\n return false;\n },\n });\n return found;\n};\n\n/**\n * Injects import/require at the top of the file.\n */\nconst injectImport = (\n ast: any,\n isCJS: boolean,\n importName: string,\n source: string\n) => {\n if (isModuleImported(ast, source)) return;\n\n const declaration = isCJS\n ? b.variableDeclaration('const', [\n b.variableDeclarator(\n b.objectPattern([\n b.objectProperty.from({\n key: b.identifier(importName),\n value: b.identifier(importName),\n shorthand: true,\n }),\n ]),\n b.callExpression(b.identifier('require'), [b.stringLiteral(source)])\n ),\n ])\n : b.importDeclaration(\n [b.importSpecifier(b.identifier(importName))],\n b.stringLiteral(source)\n );\n\n ast.program.body.unshift(declaration);\n};\n\nexport const updateViteConfig = (\n content: string,\n extension: string\n): string => {\n const ast = recast.parse(content, {\n parser: require('recast/parsers/typescript'),\n });\n const isCJSFile =\n extension === 'cjs' ||\n (content.includes('module.exports') && !content.includes('import '));\n\n injectImport(ast, isCJSFile, 'intlayer', 'vite-intlayer');\n\n const updateConfigObject = (objExpr: any) => {\n if (\n !objExpr ||\n (objExpr.type !== 'ObjectExpression' &&\n !n.ObjectExpression.check(objExpr))\n )\n return;\n\n let pluginsProp = objExpr.properties.find((p: any) => {\n if (!p || !p.key) return false;\n const keyName = p.key.name || p.key.value;\n return keyName === 'plugins';\n }) as any;\n\n if (!pluginsProp) {\n pluginsProp = b.property(\n 'init',\n b.identifier('plugins'),\n b.arrayExpression([])\n );\n objExpr.properties.push(pluginsProp);\n }\n\n const pluginsValue = pluginsProp.value;\n\n if (\n pluginsValue &&\n (pluginsValue.type === 'ArrayExpression' ||\n n.ArrayExpression.check(pluginsValue))\n ) {\n const hasPlugin = pluginsValue.elements.some((el: any) => {\n const callee = el?.callee;\n\n if (!callee) return false;\n const name = callee.name || callee.id?.name;\n return name === 'intlayer' || name === 'il';\n });\n\n if (!hasPlugin) {\n pluginsValue.elements.push(\n b.callExpression(b.identifier('intlayer'), [])\n );\n }\n }\n };\n\n recast.visit(ast, {\n visitExportDefaultDeclaration(path) {\n const decl = path.node.declaration;\n\n if (n.ObjectExpression.check(decl)) {\n updateConfigObject(decl);\n } else if (\n n.CallExpression.check(decl) &&\n n.Identifier.check(decl.callee) &&\n decl.callee.name === 'defineConfig'\n ) {\n if (n.ObjectExpression.check(decl.arguments[0])) {\n updateConfigObject(decl.arguments[0]);\n }\n } else if (n.Identifier.check(decl)) {\n const name = decl.name;\n ast.program.body.forEach((stmt: any) => {\n if (n.VariableDeclaration.check(stmt)) {\n stmt.declarations.forEach((vdecl: any) => {\n if (\n n.VariableDeclarator.check(vdecl) &&\n n.Identifier.check(vdecl.id) &&\n vdecl.id.name === name &&\n n.ObjectExpression.check(vdecl.init)\n ) {\n updateConfigObject(vdecl.init);\n }\n });\n }\n });\n }\n return false;\n },\n visitAssignmentExpression(path) {\n const { left, right } = path.node;\n\n if (\n n.MemberExpression.check(left) &&\n recast.print(left).code === 'module.exports'\n ) {\n if (n.ObjectExpression.check(right)) {\n updateConfigObject(right);\n } else if (\n n.CallExpression.check(right) &&\n n.Identifier.check(right.callee) &&\n right.callee.name === 'defineConfig'\n ) {\n if (n.ObjectExpression.check(right.arguments[0])) {\n updateConfigObject(right.arguments[0]);\n }\n }\n }\n return false;\n },\n });\n\n return recast.print(ast).code;\n};\n\nexport const updateNextConfig = (\n content: string,\n extension: string\n): string => {\n const ast = recast.parse(content, {\n parser: require('recast/parsers/typescript'),\n });\n const isCJSFile = extension === 'cjs' || content.includes('module.exports');\n\n injectImport(ast, isCJSFile, 'withIntlayer', 'next-intlayer/server');\n\n recast.visit(ast, {\n visitExportDefaultDeclaration(path) {\n const declaration = path.node.declaration;\n if (\n n.Expression.check(declaration) &&\n !(\n n.CallExpression.check(declaration) &&\n n.Identifier.check(declaration.callee) &&\n declaration.callee.name === 'withIntlayer'\n )\n ) {\n path\n .get('declaration')\n .replace(\n b.callExpression(b.identifier('withIntlayer'), [declaration as any])\n );\n }\n return false;\n },\n visitAssignmentExpression(path) {\n const { left, right } = path.node;\n\n if (\n n.MemberExpression.check(left) &&\n recast.print(left).code === 'module.exports' &&\n !(\n n.CallExpression.check(right) &&\n n.Identifier.check(right.callee) &&\n right.callee.name === 'withIntlayer'\n )\n ) {\n path\n .get('right')\n .replace(b.callExpression(b.identifier('withIntlayer'), [right]));\n }\n return false;\n },\n });\n\n return recast.print(ast).code;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"configManipulation.cjs","names":[],"sources":["../../../../src/init/utils/configManipulation.ts"],"sourcesContent":["import * as recast from 'recast';\n\nconst b = recast.types.builders;\nconst n = recast.types.namedTypes;\n\n/**\n * Checks if a module is already imported or required.\n */\nconst isModuleImported = (ast: any, moduleName: string): boolean => {\n let found = false;\n recast.visit(ast, {\n visitImportDeclaration(path) {\n if (path.node.source.value === moduleName) {\n found = true;\n }\n return false;\n },\n visitCallExpression(path) {\n const { callee, arguments: args } = path.node;\n\n if (\n n.Identifier.check(callee) &&\n callee.name === 'require' &&\n args[0] &&\n n.StringLiteral.check(args[0]) &&\n args[0].value === moduleName\n ) {\n found = true;\n }\n return false;\n },\n });\n return found;\n};\n\n/**\n * Injects import/require at the top of the file.\n */\nconst injectImport = (\n ast: any,\n isCJS: boolean,\n importName: string,\n source: string\n) => {\n if (isModuleImported(ast, source)) return;\n\n const declaration = isCJS\n ? b.variableDeclaration('const', [\n b.variableDeclarator(\n b.objectPattern([\n b.objectProperty.from({\n key: b.identifier(importName),\n value: b.identifier(importName),\n shorthand: true,\n }),\n ]),\n b.callExpression(b.identifier('require'), [b.stringLiteral(source)])\n ),\n ])\n : b.importDeclaration(\n [b.importSpecifier(b.identifier(importName))],\n b.stringLiteral(source)\n );\n\n ast.program.body.unshift(declaration);\n};\n\nexport const updateViteConfig = (\n content: string,\n extension: string\n): string => {\n const ast = recast.parse(content, {\n parser: require('recast/parsers/typescript'),\n });\n const isCJSFile =\n extension === 'cjs' ||\n (content.includes('module.exports') && !content.includes('import '));\n\n injectImport(ast, isCJSFile, 'intlayer', 'vite-intlayer');\n\n const updateConfigObject = (objExpr: any) => {\n if (\n !objExpr ||\n (objExpr.type !== 'ObjectExpression' &&\n !n.ObjectExpression.check(objExpr))\n )\n return;\n\n let pluginsProp = objExpr.properties.find((p: any) => {\n if (!p || !p.key) return false;\n const keyName = p.key.name || p.key.value;\n return keyName === 'plugins';\n }) as any;\n\n if (!pluginsProp) {\n pluginsProp = b.property(\n 'init',\n b.identifier('plugins'),\n b.arrayExpression([])\n );\n objExpr.properties.push(pluginsProp);\n }\n\n const pluginsValue = pluginsProp.value;\n\n if (\n pluginsValue &&\n (pluginsValue.type === 'ArrayExpression' ||\n n.ArrayExpression.check(pluginsValue))\n ) {\n const hasPlugin = pluginsValue.elements.some((el: any) => {\n const callee = el?.callee;\n\n if (!callee) return false;\n const name = callee.name || callee.id?.name;\n return name === 'intlayer' || name === 'il';\n });\n\n if (!hasPlugin) {\n pluginsValue.elements.push(\n b.callExpression(b.identifier('intlayer'), [])\n );\n }\n }\n };\n\n recast.visit(ast, {\n visitExportDefaultDeclaration(path) {\n const decl = path.node.declaration;\n\n if (n.ObjectExpression.check(decl)) {\n updateConfigObject(decl);\n } else if (\n n.CallExpression.check(decl) &&\n n.Identifier.check(decl.callee) &&\n decl.callee.name === 'defineConfig'\n ) {\n if (n.ObjectExpression.check(decl.arguments[0])) {\n updateConfigObject(decl.arguments[0]);\n }\n } else if (n.Identifier.check(decl)) {\n const name = decl.name;\n ast.program.body.forEach((stmt: any) => {\n if (n.VariableDeclaration.check(stmt)) {\n stmt.declarations.forEach((vdecl: any) => {\n if (\n n.VariableDeclarator.check(vdecl) &&\n n.Identifier.check(vdecl.id) &&\n vdecl.id.name === name &&\n n.ObjectExpression.check(vdecl.init)\n ) {\n updateConfigObject(vdecl.init);\n }\n });\n }\n });\n }\n return false;\n },\n visitAssignmentExpression(path) {\n const { left, right } = path.node;\n\n if (\n n.MemberExpression.check(left) &&\n recast.print(left).code === 'module.exports'\n ) {\n if (n.ObjectExpression.check(right)) {\n updateConfigObject(right);\n } else if (\n n.CallExpression.check(right) &&\n n.Identifier.check(right.callee) &&\n right.callee.name === 'defineConfig'\n ) {\n if (n.ObjectExpression.check(right.arguments[0])) {\n updateConfigObject(right.arguments[0]);\n }\n }\n }\n return false;\n },\n });\n\n return recast.print(ast).code;\n};\n\nexport const updateNextConfig = (\n content: string,\n extension: string\n): string => {\n const ast = recast.parse(content, {\n parser: require('recast/parsers/typescript'),\n });\n const isCJSFile = extension === 'cjs' || content.includes('module.exports');\n\n injectImport(ast, isCJSFile, 'withIntlayer', 'next-intlayer/server');\n\n recast.visit(ast, {\n visitExportDefaultDeclaration(path) {\n const declaration = path.node.declaration;\n if (\n n.Expression.check(declaration) &&\n !(\n n.CallExpression.check(declaration) &&\n n.Identifier.check(declaration.callee) &&\n declaration.callee.name === 'withIntlayer'\n )\n ) {\n path\n .get('declaration')\n .replace(\n b.callExpression(b.identifier('withIntlayer'), [declaration as any])\n );\n }\n return false;\n },\n visitAssignmentExpression(path) {\n const { left, right } = path.node;\n\n if (\n n.MemberExpression.check(left) &&\n recast.print(left).code === 'module.exports' &&\n !(\n n.CallExpression.check(right) &&\n n.Identifier.check(right.callee) &&\n right.callee.name === 'withIntlayer'\n )\n ) {\n path\n .get('right')\n .replace(b.callExpression(b.identifier('withIntlayer'), [right]));\n }\n return false;\n },\n });\n\n return recast.print(ast).code;\n};\n"],"mappings":"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"}
@@ -1,2 +1,40 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../../chunk-Bmb41Sf3.cjs`);let e=require(`node:fs/promises`),t=require(`node:path`);const n=async(n,r)=>{try{return await(0,e.access)((0,t.join)(n,r)),!0}catch{return!1}},r=async(n,r)=>await(0,e.readFile)((0,t.join)(n,r),`utf8`),i=async(n,r,i)=>await(0,e.writeFile)((0,t.join)(n,r),i,`utf8`),a=async(n,r)=>{try{await(0,e.mkdir)((0,t.join)(n,r),{recursive:!0})}catch{}};exports.ensureDirectory=a,exports.exists=n,exports.readFileFromRoot=r,exports.writeFileToRoot=i;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
3
+ let node_fs_promises = require("node:fs/promises");
4
+ let node_path = require("node:path");
5
+
6
+ //#region src/init/utils/fileSystem.ts
7
+ /**
8
+ * Helper to check if a file exists
9
+ */
10
+ const exists = async (rootDir, filePath) => {
11
+ try {
12
+ await (0, node_fs_promises.access)((0, node_path.join)(rootDir, filePath));
13
+ return true;
14
+ } catch {
15
+ return false;
16
+ }
17
+ };
18
+ /**
19
+ * Helper to read a file
20
+ */
21
+ const readFileFromRoot = async (rootDir, filePath) => await (0, node_fs_promises.readFile)((0, node_path.join)(rootDir, filePath), "utf8");
22
+ /**
23
+ * Helper to write a file
24
+ */
25
+ const writeFileToRoot = async (rootDir, filePath, content) => await (0, node_fs_promises.writeFile)((0, node_path.join)(rootDir, filePath), content, "utf8");
26
+ /**
27
+ * Helper to ensure a directory exists
28
+ */
29
+ const ensureDirectory = async (rootDir, dirPath) => {
30
+ try {
31
+ await (0, node_fs_promises.mkdir)((0, node_path.join)(rootDir, dirPath), { recursive: true });
32
+ } catch {}
33
+ };
34
+
35
+ //#endregion
36
+ exports.ensureDirectory = ensureDirectory;
37
+ exports.exists = exists;
38
+ exports.readFileFromRoot = readFileFromRoot;
39
+ exports.writeFileToRoot = writeFileToRoot;
2
40
  //# sourceMappingURL=fileSystem.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"fileSystem.cjs","names":[],"sources":["../../../../src/init/utils/fileSystem.ts"],"sourcesContent":["import { access, mkdir, readFile, writeFile } from 'node:fs/promises';\nimport { join } from 'node:path';\n\n/**\n * Helper to check if a file exists\n */\nexport const exists = async (rootDir: string, filePath: string) => {\n try {\n await access(join(rootDir, filePath));\n return true;\n } catch {\n return false;\n }\n};\n\n/**\n * Helper to read a file\n */\nexport const readFileFromRoot = async (rootDir: string, filePath: string) =>\n await readFile(join(rootDir, filePath), 'utf8');\n\n/**\n * Helper to write a file\n */\nexport const writeFileToRoot = async (\n rootDir: string,\n filePath: string,\n content: string\n) => await writeFile(join(rootDir, filePath), content, 'utf8');\n\n/**\n * Helper to ensure a directory exists\n */\nexport const ensureDirectory = async (rootDir: string, dirPath: string) => {\n try {\n await mkdir(join(rootDir, dirPath), { recursive: true });\n } catch {\n // Directory already exists or could not be created\n }\n};\n"],"mappings":"gKAMA,MAAa,EAAS,MAAO,EAAiB,IAAqB,CACjE,GAAI,CAEF,OADA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,MAAkB,EAAS,EAAS,CAAC,CAC9B,QACD,CACN,MAAO,KAOE,EAAmB,MAAO,EAAiB,IACtD,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,MAAoB,EAAS,EAAS,CAAE,OAAO,CAKpC,EAAkB,MAC7B,EACA,EACA,IACG,MAAA,EAAA,EAAA,YAAA,EAAA,EAAA,MAAqB,EAAS,EAAS,CAAE,EAAS,OAAO,CAKjD,EAAkB,MAAO,EAAiB,IAAoB,CACzE,GAAI,CACF,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,MAAiB,EAAS,EAAQ,CAAE,CAAE,UAAW,GAAM,CAAC,MAClD"}
1
+ {"version":3,"file":"fileSystem.cjs","names":[],"sources":["../../../../src/init/utils/fileSystem.ts"],"sourcesContent":["import { access, mkdir, readFile, writeFile } from 'node:fs/promises';\nimport { join } from 'node:path';\n\n/**\n * Helper to check if a file exists\n */\nexport const exists = async (rootDir: string, filePath: string) => {\n try {\n await access(join(rootDir, filePath));\n return true;\n } catch {\n return false;\n }\n};\n\n/**\n * Helper to read a file\n */\nexport const readFileFromRoot = async (rootDir: string, filePath: string) =>\n await readFile(join(rootDir, filePath), 'utf8');\n\n/**\n * Helper to write a file\n */\nexport const writeFileToRoot = async (\n rootDir: string,\n filePath: string,\n content: string\n) => await writeFile(join(rootDir, filePath), content, 'utf8');\n\n/**\n * Helper to ensure a directory exists\n */\nexport const ensureDirectory = async (rootDir: string, dirPath: string) => {\n try {\n await mkdir(join(rootDir, dirPath), { recursive: true });\n } catch {\n // Directory already exists or could not be created\n }\n};\n"],"mappings":";;;;;;;;;AAMA,MAAa,SAAS,OAAO,SAAiB,aAAqB;AACjE,KAAI;AACF,yDAAkB,SAAS,SAAS,CAAC;AACrC,SAAO;SACD;AACN,SAAO;;;;;;AAOX,MAAa,mBAAmB,OAAO,SAAiB,aACtD,yDAAoB,SAAS,SAAS,EAAE,OAAO;;;;AAKjD,MAAa,kBAAkB,OAC7B,SACA,UACA,YACG,0DAAqB,SAAS,SAAS,EAAE,SAAS,OAAO;;;;AAK9D,MAAa,kBAAkB,OAAO,SAAiB,YAAoB;AACzE,KAAI;AACF,wDAAiB,SAAS,QAAQ,EAAE,EAAE,WAAW,MAAM,CAAC;SAClD"}
@@ -1 +1,14 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./configManipulation.cjs`),t=require(`./fileSystem.cjs`),n=require(`./jsonParser.cjs`),r=require(`./tsConfig.cjs`);exports.ensureDirectory=t.ensureDirectory,exports.exists=t.exists,exports.findTsConfigFiles=r.findTsConfigFiles,exports.parseJSONWithComments=n.parseJSONWithComments,exports.readFileFromRoot=t.readFileFromRoot,exports.updateNextConfig=e.updateNextConfig,exports.updateViteConfig=e.updateViteConfig,exports.writeFileToRoot=t.writeFileToRoot;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_init_utils_configManipulation = require('./configManipulation.cjs');
3
+ const require_init_utils_fileSystem = require('./fileSystem.cjs');
4
+ const require_init_utils_jsonParser = require('./jsonParser.cjs');
5
+ const require_init_utils_tsConfig = require('./tsConfig.cjs');
6
+
7
+ exports.ensureDirectory = require_init_utils_fileSystem.ensureDirectory;
8
+ exports.exists = require_init_utils_fileSystem.exists;
9
+ exports.findTsConfigFiles = require_init_utils_tsConfig.findTsConfigFiles;
10
+ exports.parseJSONWithComments = require_init_utils_jsonParser.parseJSONWithComments;
11
+ exports.readFileFromRoot = require_init_utils_fileSystem.readFileFromRoot;
12
+ exports.updateNextConfig = require_init_utils_configManipulation.updateNextConfig;
13
+ exports.updateViteConfig = require_init_utils_configManipulation.updateViteConfig;
14
+ exports.writeFileToRoot = require_init_utils_fileSystem.writeFileToRoot;
@@ -1,4 +1,43 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=e=>{try{return JSON.parse(e)}catch{}let t=e.split(`
2
- `).map(e=>{let t=!1,n=``;for(let r=0;r<e.length;r++){let i=e[r],a=e[r+1];if(i===`"`&&(r===0||e[r-1]!==`\\`)){t=!t,n+=i;continue}if(t){n+=i;continue}if(i===`/`&&a===`/`)break;if(i===`/`&&a===`*`){let t=e.indexOf(`*/`,r+2);if(t!==-1){r=t+1;continue}}n+=i}return n});return JSON.parse(t.join(`
3
- `))};exports.parseJSONWithComments=e;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+
3
+ //#region src/init/utils/jsonParser.ts
4
+ /**
5
+ * Helper to parse JSON that may contain comments (tsconfig allows comments)
6
+ */
7
+ const parseJSONWithComments = (jsonString) => {
8
+ try {
9
+ return JSON.parse(jsonString);
10
+ } catch {}
11
+ const cleanedLines = jsonString.split("\n").map((line) => {
12
+ let inString = false;
13
+ let result = "";
14
+ for (let i = 0; i < line.length; i++) {
15
+ const char = line[i];
16
+ const nextChar = line[i + 1];
17
+ if (char === "\"" && (i === 0 || line[i - 1] !== "\\")) {
18
+ inString = !inString;
19
+ result += char;
20
+ continue;
21
+ }
22
+ if (inString) {
23
+ result += char;
24
+ continue;
25
+ }
26
+ if (char === "/" && nextChar === "/") break;
27
+ if (char === "/" && nextChar === "*") {
28
+ const endIndex = line.indexOf("*/", i + 2);
29
+ if (endIndex !== -1) {
30
+ i = endIndex + 1;
31
+ continue;
32
+ }
33
+ }
34
+ result += char;
35
+ }
36
+ return result;
37
+ });
38
+ return JSON.parse(cleanedLines.join("\n"));
39
+ };
40
+
41
+ //#endregion
42
+ exports.parseJSONWithComments = parseJSONWithComments;
4
43
  //# sourceMappingURL=jsonParser.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"jsonParser.cjs","names":[],"sources":["../../../../src/init/utils/jsonParser.ts"],"sourcesContent":["/**\n * Helper to parse JSON that may contain comments (tsconfig allows comments)\n */\nexport const parseJSONWithComments = (jsonString: string) => {\n // First, try parsing as-is (most tsconfig files don't have comments)\n try {\n return JSON.parse(jsonString);\n } catch {\n // If that fails, try stripping comments\n // Note: This simple approach removes comments line by line to avoid\n // matching glob patterns like /* and */ that appear in paths\n }\n\n // Process line by line to safely remove comments\n const lines = jsonString.split('\\n');\n const cleanedLines = lines.map((line) => {\n // Track if we're inside a string\n let inString = false;\n let result = '';\n\n for (let i = 0; i < line.length; i++) {\n const char = line[i];\n const nextChar = line[i + 1];\n\n // Handle string boundaries (accounting for escaped quotes)\n if (char === '\"' && (i === 0 || line[i - 1] !== '\\\\')) {\n inString = !inString;\n result += char;\n continue;\n }\n\n // If we're inside a string, keep the character\n if (inString) {\n result += char;\n continue;\n }\n\n // Check for single-line comment outside of strings\n if (char === '/' && nextChar === '/') {\n // Rest of line is a comment, stop here\n break;\n }\n\n // Check for multi-line comment start (/* ... */)\n // For simplicity, we only handle single-line /* */ comments here\n if (char === '/' && nextChar === '*') {\n const endIndex = line.indexOf('*/', i + 2);\n if (endIndex !== -1) {\n // Skip the comment\n i = endIndex + 1;\n continue;\n }\n }\n\n result += char;\n }\n\n return result;\n });\n\n return JSON.parse(cleanedLines.join('\\n'));\n};\n"],"mappings":"mEAGA,MAAa,EAAyB,GAAuB,CAE3D,GAAI,CACF,OAAO,KAAK,MAAM,EAAW,MACvB,EAQR,IAAM,EADQ,EAAW,MAAM;EAAK,CACT,IAAK,GAAS,CAEvC,IAAI,EAAW,GACX,EAAS,GAEb,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,OAAQ,IAAK,CACpC,IAAM,EAAO,EAAK,GACZ,EAAW,EAAK,EAAI,GAG1B,GAAI,IAAS,MAAQ,IAAM,GAAK,EAAK,EAAI,KAAO,MAAO,CACrD,EAAW,CAAC,EACZ,GAAU,EACV,SAIF,GAAI,EAAU,CACZ,GAAU,EACV,SAIF,GAAI,IAAS,KAAO,IAAa,IAE/B,MAKF,GAAI,IAAS,KAAO,IAAa,IAAK,CACpC,IAAM,EAAW,EAAK,QAAQ,KAAM,EAAI,EAAE,CAC1C,GAAI,IAAa,GAAI,CAEnB,EAAI,EAAW,EACf,UAIJ,GAAU,EAGZ,OAAO,GACP,CAEF,OAAO,KAAK,MAAM,EAAa,KAAK;EAAK,CAAC"}
1
+ {"version":3,"file":"jsonParser.cjs","names":[],"sources":["../../../../src/init/utils/jsonParser.ts"],"sourcesContent":["/**\n * Helper to parse JSON that may contain comments (tsconfig allows comments)\n */\nexport const parseJSONWithComments = (jsonString: string) => {\n // First, try parsing as-is (most tsconfig files don't have comments)\n try {\n return JSON.parse(jsonString);\n } catch {\n // If that fails, try stripping comments\n // Note: This simple approach removes comments line by line to avoid\n // matching glob patterns like /* and */ that appear in paths\n }\n\n // Process line by line to safely remove comments\n const lines = jsonString.split('\\n');\n const cleanedLines = lines.map((line) => {\n // Track if we're inside a string\n let inString = false;\n let result = '';\n\n for (let i = 0; i < line.length; i++) {\n const char = line[i];\n const nextChar = line[i + 1];\n\n // Handle string boundaries (accounting for escaped quotes)\n if (char === '\"' && (i === 0 || line[i - 1] !== '\\\\')) {\n inString = !inString;\n result += char;\n continue;\n }\n\n // If we're inside a string, keep the character\n if (inString) {\n result += char;\n continue;\n }\n\n // Check for single-line comment outside of strings\n if (char === '/' && nextChar === '/') {\n // Rest of line is a comment, stop here\n break;\n }\n\n // Check for multi-line comment start (/* ... */)\n // For simplicity, we only handle single-line /* */ comments here\n if (char === '/' && nextChar === '*') {\n const endIndex = line.indexOf('*/', i + 2);\n if (endIndex !== -1) {\n // Skip the comment\n i = endIndex + 1;\n continue;\n }\n }\n\n result += char;\n }\n\n return result;\n });\n\n return JSON.parse(cleanedLines.join('\\n'));\n};\n"],"mappings":";;;;;;AAGA,MAAa,yBAAyB,eAAuB;AAE3D,KAAI;AACF,SAAO,KAAK,MAAM,WAAW;SACvB;CAQR,MAAM,eADQ,WAAW,MAAM,KAAK,CACT,KAAK,SAAS;EAEvC,IAAI,WAAW;EACf,IAAI,SAAS;AAEb,OAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;GACpC,MAAM,OAAO,KAAK;GAClB,MAAM,WAAW,KAAK,IAAI;AAG1B,OAAI,SAAS,SAAQ,MAAM,KAAK,KAAK,IAAI,OAAO,OAAO;AACrD,eAAW,CAAC;AACZ,cAAU;AACV;;AAIF,OAAI,UAAU;AACZ,cAAU;AACV;;AAIF,OAAI,SAAS,OAAO,aAAa,IAE/B;AAKF,OAAI,SAAS,OAAO,aAAa,KAAK;IACpC,MAAM,WAAW,KAAK,QAAQ,MAAM,IAAI,EAAE;AAC1C,QAAI,aAAa,IAAI;AAEnB,SAAI,WAAW;AACf;;;AAIJ,aAAU;;AAGZ,SAAO;GACP;AAEF,QAAO,KAAK,MAAM,aAAa,KAAK,KAAK,CAAC"}
@@ -1,2 +1,19 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../../chunk-Bmb41Sf3.cjs`);let e=require(`node:fs/promises`);const t=async t=>{try{return(await(0,e.readdir)(t)).filter(e=>e===`tsconfig.json`||/^tsconfig\..+\.json$/.test(e))}catch{return[]}};exports.findTsConfigFiles=t;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
3
+ let node_fs_promises = require("node:fs/promises");
4
+
5
+ //#region src/init/utils/tsConfig.ts
6
+ /**
7
+ * Helper to find all tsconfig files (tsconfig.json, tsconfig.*.json)
8
+ */
9
+ const findTsConfigFiles = async (rootDir) => {
10
+ try {
11
+ return (await (0, node_fs_promises.readdir)(rootDir)).filter((file) => file === "tsconfig.json" || /^tsconfig\..+\.json$/.test(file));
12
+ } catch {
13
+ return [];
14
+ }
15
+ };
16
+
17
+ //#endregion
18
+ exports.findTsConfigFiles = findTsConfigFiles;
2
19
  //# sourceMappingURL=tsConfig.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tsConfig.cjs","names":[],"sources":["../../../../src/init/utils/tsConfig.ts"],"sourcesContent":["import { readdir } from 'node:fs/promises';\n\n/**\n * Helper to find all tsconfig files (tsconfig.json, tsconfig.*.json)\n */\nexport const findTsConfigFiles = async (rootDir: string): Promise<string[]> => {\n try {\n const files = await readdir(rootDir);\n\n return files.filter(\n (file) => file === 'tsconfig.json' || /^tsconfig\\..+\\.json$/.test(file)\n );\n } catch {\n return [];\n }\n};\n"],"mappings":"yIAKA,MAAa,EAAoB,KAAO,IAAuC,CAC7E,GAAI,CAGF,OAFc,MAAA,EAAA,EAAA,SAAc,EAAQ,EAEvB,OACV,GAAS,IAAS,iBAAmB,uBAAuB,KAAK,EAAK,CACxE,MACK,CACN,MAAO,EAAE"}
1
+ {"version":3,"file":"tsConfig.cjs","names":[],"sources":["../../../../src/init/utils/tsConfig.ts"],"sourcesContent":["import { readdir } from 'node:fs/promises';\n\n/**\n * Helper to find all tsconfig files (tsconfig.json, tsconfig.*.json)\n */\nexport const findTsConfigFiles = async (rootDir: string): Promise<string[]> => {\n try {\n const files = await readdir(rootDir);\n\n return files.filter(\n (file) => file === 'tsconfig.json' || /^tsconfig\\..+\\.json$/.test(file)\n );\n } catch {\n return [];\n }\n};\n"],"mappings":";;;;;;;;AAKA,MAAa,oBAAoB,OAAO,YAAuC;AAC7E,KAAI;AAGF,UAFc,oCAAc,QAAQ,EAEvB,QACV,SAAS,SAAS,mBAAmB,uBAAuB,KAAK,KAAK,CACxE;SACK;AACN,SAAO,EAAE"}
@@ -1,2 +1,40 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../chunk-Bmb41Sf3.cjs`);const e=require(`../_utils_asset-SJVy1xMD.cjs`);let t=require(`node:fs/promises`),n=require(`node:path`),r=require(`@intlayer/config/logger`),i=require(`@intlayer/config/node`);const a=process.cwd(),o=async(e,r)=>await(0,t.writeFile)((0,n.join)(a,e),r,`utf8`),s=e=>{switch(e){case`ts`:return`./templates/ts.txt`;case`cjs`:return`./templates/cjs.txt`;case`mjs`:return`./templates/mjs.txt`;case`js`:return`./templates/mjs.txt`;case`json`:return`./templates/json.txt`;default:return`./templates/ts.txt`}},c=async(t,a)=>{let{configurationFilePath:c}=(0,i.searchConfigurationFile)(a);if(c){(0,r.logger)(`${r.v} ${(0,r.colorizePath)((0,n.relative)(a,c))} already exists`);return}await o(t,e.t(s(t.split(`.`).pop()))),(0,r.logger)(`${r.v} Created ${(0,r.colorizePath)(t)}`)};exports.initConfig=c;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
3
+ const require__utils_asset = require('../_virtual/_utils_asset.cjs');
4
+ let node_fs_promises = require("node:fs/promises");
5
+ let node_path = require("node:path");
6
+ let _intlayer_config_logger = require("@intlayer/config/logger");
7
+ let _intlayer_config_node = require("@intlayer/config/node");
8
+
9
+ //#region src/initConfig/index.ts
10
+ /**
11
+ * UTILITIES
12
+ */
13
+ const rootDir = process.cwd();
14
+ const writeFileToRoot = async (filePath, content) => await (0, node_fs_promises.writeFile)((0, node_path.join)(rootDir, filePath), content, "utf8");
15
+ const getTemplatePath = (format) => {
16
+ switch (format) {
17
+ case "ts": return "./templates/ts.txt";
18
+ case "cjs": return "./templates/cjs.txt";
19
+ case "mjs": return "./templates/mjs.txt";
20
+ case "js": return "./templates/mjs.txt";
21
+ case "json": return "./templates/json.txt";
22
+ default: return "./templates/ts.txt";
23
+ }
24
+ };
25
+ /**
26
+ * Initialize the Intlayer configuration file
27
+ */
28
+ const initConfig = async (format, baseDir) => {
29
+ const { configurationFilePath } = (0, _intlayer_config_node.searchConfigurationFile)(baseDir);
30
+ if (configurationFilePath) {
31
+ (0, _intlayer_config_logger.logger)(`${_intlayer_config_logger.v} ${(0, _intlayer_config_logger.colorizePath)((0, node_path.relative)(baseDir, configurationFilePath))} already exists`);
32
+ return;
33
+ }
34
+ await writeFileToRoot(format, require__utils_asset.readAsset(getTemplatePath(format.split(".").pop())));
35
+ (0, _intlayer_config_logger.logger)(`${_intlayer_config_logger.v} Created ${(0, _intlayer_config_logger.colorizePath)(format)}`);
36
+ };
37
+
38
+ //#endregion
39
+ exports.initConfig = initConfig;
2
40
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["v","readAsset"],"sources":["../../../src/initConfig/index.ts"],"sourcesContent":["import { writeFile } from 'node:fs/promises';\nimport { join, relative } from 'node:path';\nimport { readAsset } from 'utils:asset';\nimport { colorizePath, logger, v } from '@intlayer/config/logger';\nimport {\n type configurationFilesCandidates,\n searchConfigurationFile,\n} from '@intlayer/config/node';\n\n/**\n * UTILITIES\n */\nconst rootDir = process.cwd();\n\n// Helper to write a file\nconst writeFileToRoot = async (filePath: string, content: string) =>\n await writeFile(join(rootDir, filePath), content, 'utf8');\n\ntype ConfigFormat = 'ts' | 'cjs' | 'mjs' | 'js' | 'json';\n\nconst getTemplatePath = (format: ConfigFormat) => {\n switch (format) {\n case 'ts':\n return './templates/ts.txt';\n case 'cjs':\n return './templates/cjs.txt';\n case 'mjs':\n return './templates/mjs.txt';\n case 'js':\n return './templates/mjs.txt';\n case 'json':\n return './templates/json.txt';\n default:\n return './templates/ts.txt';\n }\n};\n\n/**\n * Initialize the Intlayer configuration file\n */\nexport const initConfig = async (\n format: (typeof configurationFilesCandidates)[number],\n baseDir: string\n) => {\n // Search for configuration file\n const { configurationFilePath } = searchConfigurationFile(baseDir);\n\n // return if the configuration file is found\n if (configurationFilePath) {\n const relativePath = relative(baseDir, configurationFilePath);\n logger(`${v} ${colorizePath(relativePath)} already exists`);\n return;\n }\n\n // Extract the format from the filename (e.g. 'intlayer.config.ts' -> 'ts')\n const extension = format.split('.').pop() as ConfigFormat;\n\n const templatePath = getTemplatePath(extension);\n const configContent = readAsset(templatePath);\n\n await writeFileToRoot(format, configContent);\n logger(`${v} Created ${colorizePath(format)}`);\n};\n"],"mappings":"qRAYA,MAAM,EAAU,QAAQ,KAAK,CAGvB,EAAkB,MAAO,EAAkB,IAC/C,MAAA,EAAA,EAAA,YAAA,EAAA,EAAA,MAAqB,EAAS,EAAS,CAAE,EAAS,OAAO,CAIrD,EAAmB,GAAyB,CAChD,OAAQ,EAAR,CACE,IAAK,KACH,MAAO,qBACT,IAAK,MACH,MAAO,sBACT,IAAK,MACH,MAAO,sBACT,IAAK,KACH,MAAO,sBACT,IAAK,OACH,MAAO,uBACT,QACE,MAAO,uBAOA,EAAa,MACxB,EACA,IACG,CAEH,GAAM,CAAE,0BAAA,EAAA,EAAA,yBAAkD,EAAQ,CAGlE,GAAI,EAAuB,EAEzB,EAAA,EAAA,QAAO,GAAGA,EAAAA,EAAE,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,UADkB,EAAS,EAAsB,CACpB,CAAC,iBAAiB,CAC3D,OASF,MAAM,EAAgB,EAFAC,EAAAA,EADD,EAFH,EAAO,MAAM,IAAI,CAAC,KAAK,CAEM,CACF,CAED,EAC5C,EAAA,EAAA,QAAO,GAAGD,EAAAA,EAAE,YAAA,EAAA,EAAA,cAAwB,EAAO,GAAG"}
1
+ {"version":3,"file":"index.cjs","names":["v","readAsset"],"sources":["../../../src/initConfig/index.ts"],"sourcesContent":["import { writeFile } from 'node:fs/promises';\nimport { join, relative } from 'node:path';\nimport { readAsset } from 'utils:asset';\nimport { colorizePath, logger, v } from '@intlayer/config/logger';\nimport {\n type configurationFilesCandidates,\n searchConfigurationFile,\n} from '@intlayer/config/node';\n\n/**\n * UTILITIES\n */\nconst rootDir = process.cwd();\n\n// Helper to write a file\nconst writeFileToRoot = async (filePath: string, content: string) =>\n await writeFile(join(rootDir, filePath), content, 'utf8');\n\ntype ConfigFormat = 'ts' | 'cjs' | 'mjs' | 'js' | 'json';\n\nconst getTemplatePath = (format: ConfigFormat) => {\n switch (format) {\n case 'ts':\n return './templates/ts.txt';\n case 'cjs':\n return './templates/cjs.txt';\n case 'mjs':\n return './templates/mjs.txt';\n case 'js':\n return './templates/mjs.txt';\n case 'json':\n return './templates/json.txt';\n default:\n return './templates/ts.txt';\n }\n};\n\n/**\n * Initialize the Intlayer configuration file\n */\nexport const initConfig = async (\n format: (typeof configurationFilesCandidates)[number],\n baseDir: string\n) => {\n // Search for configuration file\n const { configurationFilePath } = searchConfigurationFile(baseDir);\n\n // return if the configuration file is found\n if (configurationFilePath) {\n const relativePath = relative(baseDir, configurationFilePath);\n logger(`${v} ${colorizePath(relativePath)} already exists`);\n return;\n }\n\n // Extract the format from the filename (e.g. 'intlayer.config.ts' -> 'ts')\n const extension = format.split('.').pop() as ConfigFormat;\n\n const templatePath = getTemplatePath(extension);\n const configContent = readAsset(templatePath);\n\n await writeFileToRoot(format, configContent);\n logger(`${v} Created ${colorizePath(format)}`);\n};\n"],"mappings":";;;;;;;;;;;;AAYA,MAAM,UAAU,QAAQ,KAAK;AAG7B,MAAM,kBAAkB,OAAO,UAAkB,YAC/C,0DAAqB,SAAS,SAAS,EAAE,SAAS,OAAO;AAI3D,MAAM,mBAAmB,WAAyB;AAChD,SAAQ,QAAR;EACE,KAAK,KACH,QAAO;EACT,KAAK,MACH,QAAO;EACT,KAAK,MACH,QAAO;EACT,KAAK,KACH,QAAO;EACT,KAAK,OACH,QAAO;EACT,QACE,QAAO;;;;;;AAOb,MAAa,aAAa,OACxB,QACA,YACG;CAEH,MAAM,EAAE,6EAAkD,QAAQ;AAGlE,KAAI,uBAAuB;AAEzB,sCAAO,GAAGA,0BAAE,qEADkB,SAAS,sBAAsB,CACpB,CAAC,iBAAiB;AAC3D;;AASF,OAAM,gBAAgB,QAFAC,+BADD,gBAFH,OAAO,MAAM,IAAI,CAAC,KAAK,CAEM,CACF,CAED;AAC5C,qCAAO,GAAGD,0BAAE,qDAAwB,OAAO,GAAG"}
@@ -1,2 +1,51 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../chunk-Bmb41Sf3.cjs`),t=require(`../installSkills/index.cjs`);let n=require(`node:path`);n=e.t(n);let r=require(`node:fs`),i=require(`node:os`);i=e.t(i);const a=process.platform===`win32`?n.default.join(process.env.APPDATA||``,`Claude`,`claude_desktop_config.json`):n.default.join(i.default.homedir(),`Library`,`Application Support`,`Claude`,`claude_desktop_config.json`),o=async(e,i,o)=>{let s,c=`mcpServers`;if(i===`Claude`)s=a;else{let r=n.default.dirname(t.PLATFORMS_METADATA[i].dir);s=n.default.join(e,r,`mcp.json`),i===`VSCode`&&(c=`servers`)}await r.promises.mkdir(n.default.dirname(s),{recursive:!0});let l={};try{let e=await r.promises.readFile(s,`utf-8`);l=JSON.parse(e)}catch{}if(l[c]||(l[c]={}),o===`stdio`){let e={command:`npx`,args:[`-y`,`@intlayer/mcp`]};i===`VSCode`&&(e.type=`stdio`),l[c].intlayer=e}else{let e={url:`https://mcp.intlayer.org`};i===`VSCode`?e.type=`sse`:e.transport=`sse`,l[c].intlayer=e}return await r.promises.writeFile(s,JSON.stringify(l,null,2),`utf-8`),`MCP server configuration updated in ${s}`};exports.installMCP=o;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
3
+ const require_installSkills_index = require('../installSkills/index.cjs');
4
+ let node_path = require("node:path");
5
+ node_path = require_runtime.__toESM(node_path);
6
+ let node_fs = require("node:fs");
7
+ let node_os = require("node:os");
8
+ node_os = require_runtime.__toESM(node_os);
9
+
10
+ //#region src/installMCP/installMCP.ts
11
+ const MCP_CONFIG_FILENAME = "mcp.json";
12
+ const CLAUDE_DESKTOP_CONFIG_PATH = process.platform === "win32" ? node_path.default.join(process.env.APPDATA || "", "Claude", "claude_desktop_config.json") : node_path.default.join(node_os.default.homedir(), "Library", "Application Support", "Claude", "claude_desktop_config.json");
13
+ /**
14
+ * Installs the Intlayer MCP server configuration for a specific platform.
15
+ */
16
+ const installMCP = async (projectRoot, platform, transport) => {
17
+ let configPath;
18
+ let configKey = "mcpServers";
19
+ if (platform === "Claude") configPath = CLAUDE_DESKTOP_CONFIG_PATH;
20
+ else {
21
+ const relativeDir = node_path.default.dirname(require_installSkills_index.PLATFORMS_METADATA[platform].dir);
22
+ configPath = node_path.default.join(projectRoot, relativeDir, MCP_CONFIG_FILENAME);
23
+ if (platform === "VSCode") configKey = "servers";
24
+ }
25
+ await node_fs.promises.mkdir(node_path.default.dirname(configPath), { recursive: true });
26
+ let config = {};
27
+ try {
28
+ const content = await node_fs.promises.readFile(configPath, "utf-8");
29
+ config = JSON.parse(content);
30
+ } catch {}
31
+ if (!config[configKey]) config[configKey] = {};
32
+ if (transport === "stdio") {
33
+ const mcpConfig = {
34
+ command: "npx",
35
+ args: ["-y", "@intlayer/mcp"]
36
+ };
37
+ if (platform === "VSCode") mcpConfig.type = "stdio";
38
+ config[configKey].intlayer = mcpConfig;
39
+ } else {
40
+ const mcpConfig = { url: "https://mcp.intlayer.org" };
41
+ if (platform === "VSCode") mcpConfig.type = "sse";
42
+ else mcpConfig.transport = "sse";
43
+ config[configKey].intlayer = mcpConfig;
44
+ }
45
+ await node_fs.promises.writeFile(configPath, JSON.stringify(config, null, 2), "utf-8");
46
+ return `MCP server configuration updated in ${configPath}`;
47
+ };
48
+
49
+ //#endregion
50
+ exports.installMCP = installMCP;
2
51
  //# sourceMappingURL=installMCP.cjs.map