gtx-cli 2.6.31 → 2.7.0

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 (348) hide show
  1. package/CHANGELOG.md +4 -1261
  2. package/README.md +12 -3
  3. package/dist/bin/bin-entry.js +2 -1
  4. package/dist/config/generateSettings.d.ts +1 -9
  5. package/dist/config/generateSettings.js +1 -214
  6. package/dist/config/resolveConfig.d.ts +1 -4
  7. package/dist/config/resolveConfig.js +1 -33
  8. package/dist/fs/config/setupConfig.d.ts +1 -17
  9. package/dist/fs/config/setupConfig.js +1 -50
  10. package/dist/fs/matchFiles.d.ts +1 -1
  11. package/dist/fs/matchFiles.js +1 -8
  12. package/dist/functions.d.ts +1 -7
  13. package/dist/functions.js +1 -6
  14. package/dist/index.d.ts +1 -4
  15. package/dist/index.js +1 -27
  16. package/dist/main.js +2 -2
  17. package/dist/next/parse/handleInitGT.d.ts +1 -7
  18. package/dist/next/parse/handleInitGT.js +1 -157
  19. package/dist/next/parse/wrapContent.d.ts +1 -12
  20. package/dist/next/parse/wrapContent.js +1 -164
  21. package/dist/react/parse/wrapContent.d.ts +1 -12
  22. package/dist/react/parse/wrapContent.js +1 -162
  23. package/dist/types/index.d.ts +1 -243
  24. package/dist/types/index.js +1 -1
  25. package/dist/utils/installPackage.d.ts +1 -3
  26. package/dist/utils/installPackage.js +1 -77
  27. package/dist/utils/packageInfo.d.ts +1 -3
  28. package/dist/utils/packageInfo.js +1 -17
  29. package/dist/utils/packageJson.d.ts +1 -6
  30. package/dist/utils/packageJson.js +1 -68
  31. package/dist/utils/packageManager.d.ts +1 -28
  32. package/dist/utils/packageManager.js +1 -269
  33. package/package.json +11 -97
  34. package/dist/api/collectUserEditDiffs.d.ts +0 -9
  35. package/dist/api/collectUserEditDiffs.js +0 -159
  36. package/dist/api/downloadFileBatch.d.ts +0 -23
  37. package/dist/api/downloadFileBatch.js +0 -190
  38. package/dist/api/saveLocalEdits.d.ts +0 -6
  39. package/dist/api/saveLocalEdits.js +0 -38
  40. package/dist/cli/base.d.ts +0 -59
  41. package/dist/cli/base.js +0 -529
  42. package/dist/cli/commands/download.d.ts +0 -8
  43. package/dist/cli/commands/download.js +0 -51
  44. package/dist/cli/commands/enqueue.d.ts +0 -9
  45. package/dist/cli/commands/enqueue.js +0 -27
  46. package/dist/cli/commands/setupProject.d.ts +0 -7
  47. package/dist/cli/commands/setupProject.js +0 -37
  48. package/dist/cli/commands/stage.d.ts +0 -9
  49. package/dist/cli/commands/stage.js +0 -59
  50. package/dist/cli/commands/translate.d.ts +0 -7
  51. package/dist/cli/commands/translate.js +0 -70
  52. package/dist/cli/commands/upload.d.ts +0 -13
  53. package/dist/cli/commands/upload.js +0 -142
  54. package/dist/cli/commands/utils/validation.d.ts +0 -13
  55. package/dist/cli/commands/utils/validation.js +0 -38
  56. package/dist/cli/flags.d.ts +0 -15
  57. package/dist/cli/flags.js +0 -70
  58. package/dist/cli/inline.d.ts +0 -17
  59. package/dist/cli/inline.js +0 -135
  60. package/dist/cli/next.d.ts +0 -10
  61. package/dist/cli/next.js +0 -12
  62. package/dist/cli/node.d.ts +0 -10
  63. package/dist/cli/node.js +0 -9
  64. package/dist/cli/react.d.ts +0 -12
  65. package/dist/cli/react.js +0 -72
  66. package/dist/config/optionPresets.d.ts +0 -3
  67. package/dist/config/optionPresets.js +0 -65
  68. package/dist/config/utils.d.ts +0 -2
  69. package/dist/config/utils.js +0 -4
  70. package/dist/config/validateSettings.d.ts +0 -3
  71. package/dist/config/validateSettings.js +0 -32
  72. package/dist/console/colors.d.ts +0 -6
  73. package/dist/console/colors.js +0 -19
  74. package/dist/console/displayTranslateSummary.d.ts +0 -1
  75. package/dist/console/displayTranslateSummary.js +0 -42
  76. package/dist/console/formatting.d.ts +0 -1
  77. package/dist/console/formatting.js +0 -7
  78. package/dist/console/index.d.ts +0 -34
  79. package/dist/console/index.js +0 -46
  80. package/dist/console/logger.d.ts +0 -35
  81. package/dist/console/logger.js +0 -250
  82. package/dist/console/logging.d.ts +0 -52
  83. package/dist/console/logging.js +0 -175
  84. package/dist/formats/files/aggregateFiles.d.ts +0 -4
  85. package/dist/formats/files/aggregateFiles.js +0 -156
  86. package/dist/formats/files/collectFiles.d.ts +0 -6
  87. package/dist/formats/files/collectFiles.js +0 -49
  88. package/dist/formats/files/convertToFileTranslationData.d.ts +0 -15
  89. package/dist/formats/files/convertToFileTranslationData.js +0 -21
  90. package/dist/formats/files/fileMapping.d.ts +0 -11
  91. package/dist/formats/files/fileMapping.js +0 -115
  92. package/dist/formats/files/preprocess/mdx.d.ts +0 -6
  93. package/dist/formats/files/preprocess/mdx.js +0 -14
  94. package/dist/formats/files/preprocess/mintlify.d.ts +0 -5
  95. package/dist/formats/files/preprocess/mintlify.js +0 -15
  96. package/dist/formats/files/preprocessContent.d.ts +0 -8
  97. package/dist/formats/files/preprocessContent.js +0 -23
  98. package/dist/formats/files/save.d.ts +0 -5
  99. package/dist/formats/files/save.js +0 -17
  100. package/dist/formats/files/supportedFiles.d.ts +0 -11
  101. package/dist/formats/files/supportedFiles.js +0 -20
  102. package/dist/formats/json/extractJson.d.ts +0 -15
  103. package/dist/formats/json/extractJson.js +0 -101
  104. package/dist/formats/json/flattenJson.d.ts +0 -14
  105. package/dist/formats/json/flattenJson.js +0 -64
  106. package/dist/formats/json/mergeJson.d.ts +0 -13
  107. package/dist/formats/json/mergeJson.js +0 -367
  108. package/dist/formats/json/parseJson.d.ts +0 -2
  109. package/dist/formats/json/parseJson.js +0 -109
  110. package/dist/formats/json/utils.d.ts +0 -47
  111. package/dist/formats/json/utils.js +0 -150
  112. package/dist/formats/utils.d.ts +0 -2
  113. package/dist/formats/utils.js +0 -24
  114. package/dist/formats/yaml/mergeYaml.d.ts +0 -5
  115. package/dist/formats/yaml/mergeYaml.js +0 -61
  116. package/dist/formats/yaml/parseYaml.d.ts +0 -5
  117. package/dist/formats/yaml/parseYaml.js +0 -24
  118. package/dist/formats/yaml/utils.d.ts +0 -2
  119. package/dist/formats/yaml/utils.js +0 -23
  120. package/dist/fs/clearLocaleDirs.d.ts +0 -8
  121. package/dist/fs/clearLocaleDirs.js +0 -126
  122. package/dist/fs/config/downloadedVersions.d.ts +0 -21
  123. package/dist/fs/config/downloadedVersions.js +0 -50
  124. package/dist/fs/config/loadConfig.d.ts +0 -1
  125. package/dist/fs/config/loadConfig.js +0 -9
  126. package/dist/fs/config/parseFilesConfig.d.ts +0 -27
  127. package/dist/fs/config/parseFilesConfig.js +0 -150
  128. package/dist/fs/config/updateConfig.d.ts +0 -21
  129. package/dist/fs/config/updateConfig.js +0 -57
  130. package/dist/fs/config/updateVersions.d.ts +0 -11
  131. package/dist/fs/config/updateVersions.js +0 -30
  132. package/dist/fs/copyFile.d.ts +0 -7
  133. package/dist/fs/copyFile.js +0 -39
  134. package/dist/fs/createLoadTranslationsFile.d.ts +0 -1
  135. package/dist/fs/createLoadTranslationsFile.js +0 -49
  136. package/dist/fs/determineFramework.d.ts +0 -5
  137. package/dist/fs/determineFramework.js +0 -53
  138. package/dist/fs/findFilepath.d.ts +0 -36
  139. package/dist/fs/findFilepath.js +0 -90
  140. package/dist/fs/index.d.ts +0 -1
  141. package/dist/fs/index.js +0 -1
  142. package/dist/fs/loadJSON.d.ts +0 -6
  143. package/dist/fs/loadJSON.js +0 -17
  144. package/dist/fs/saveJSON.d.ts +0 -1
  145. package/dist/fs/saveJSON.js +0 -7
  146. package/dist/fs/utils.d.ts +0 -1
  147. package/dist/fs/utils.js +0 -16
  148. package/dist/generated/version.d.ts +0 -1
  149. package/dist/generated/version.js +0 -2
  150. package/dist/git/branches.d.ts +0 -7
  151. package/dist/git/branches.js +0 -88
  152. package/dist/hooks/postProcess.d.ts +0 -4
  153. package/dist/hooks/postProcess.js +0 -110
  154. package/dist/locadex/setupFlow.d.ts +0 -2
  155. package/dist/locadex/setupFlow.js +0 -9
  156. package/dist/next/config/parseNextConfig.d.ts +0 -10
  157. package/dist/next/config/parseNextConfig.js +0 -53
  158. package/dist/next/jsx/utils.d.ts +0 -7
  159. package/dist/next/jsx/utils.js +0 -42
  160. package/dist/react/config/createESBuildConfig.d.ts +0 -2
  161. package/dist/react/config/createESBuildConfig.js +0 -119
  162. package/dist/react/jsx/evaluateJsx.d.ts +0 -24
  163. package/dist/react/jsx/evaluateJsx.js +0 -123
  164. package/dist/react/jsx/utils/buildImportMap.d.ts +0 -9
  165. package/dist/react/jsx/utils/buildImportMap.js +0 -30
  166. package/dist/react/jsx/utils/constants.d.ts +0 -15
  167. package/dist/react/jsx/utils/constants.js +0 -49
  168. package/dist/react/jsx/utils/getCalleeNameFromExpression.d.ts +0 -9
  169. package/dist/react/jsx/utils/getCalleeNameFromExpression.js +0 -32
  170. package/dist/react/jsx/utils/getPathsAndAliases.d.ts +0 -21
  171. package/dist/react/jsx/utils/getPathsAndAliases.js +0 -91
  172. package/dist/react/jsx/utils/isNumberLiteral.d.ts +0 -7
  173. package/dist/react/jsx/utils/isNumberLiteral.js +0 -13
  174. package/dist/react/jsx/utils/jsxParsing/addGTIdentifierToSyntaxTree.d.ts +0 -9
  175. package/dist/react/jsx/utils/jsxParsing/addGTIdentifierToSyntaxTree.js +0 -138
  176. package/dist/react/jsx/utils/jsxParsing/handleChildrenWhitespace.d.ts +0 -6
  177. package/dist/react/jsx/utils/jsxParsing/handleChildrenWhitespace.js +0 -197
  178. package/dist/react/jsx/utils/jsxParsing/multiplication/findMultiplicationNode.d.ts +0 -13
  179. package/dist/react/jsx/utils/jsxParsing/multiplication/findMultiplicationNode.js +0 -42
  180. package/dist/react/jsx/utils/jsxParsing/multiplication/multiplyJsxTree.d.ts +0 -5
  181. package/dist/react/jsx/utils/jsxParsing/multiplication/multiplyJsxTree.js +0 -69
  182. package/dist/react/jsx/utils/jsxParsing/parseJsx.d.ts +0 -33
  183. package/dist/react/jsx/utils/jsxParsing/parseJsx.js +0 -918
  184. package/dist/react/jsx/utils/jsxParsing/parseTProps.d.ts +0 -8
  185. package/dist/react/jsx/utils/jsxParsing/parseTProps.js +0 -65
  186. package/dist/react/jsx/utils/jsxParsing/removeNullChildrenFields.d.ts +0 -2
  187. package/dist/react/jsx/utils/jsxParsing/removeNullChildrenFields.js +0 -61
  188. package/dist/react/jsx/utils/jsxParsing/types.d.ts +0 -48
  189. package/dist/react/jsx/utils/jsxParsing/types.js +0 -34
  190. package/dist/react/jsx/utils/mapAttributeName.d.ts +0 -11
  191. package/dist/react/jsx/utils/mapAttributeName.js +0 -12
  192. package/dist/react/jsx/utils/parseAst.d.ts +0 -31
  193. package/dist/react/jsx/utils/parseAst.js +0 -278
  194. package/dist/react/jsx/utils/parseDeclareStatic.d.ts +0 -15
  195. package/dist/react/jsx/utils/parseDeclareStatic.js +0 -540
  196. package/dist/react/jsx/utils/parseString.d.ts +0 -25
  197. package/dist/react/jsx/utils/parseString.js +0 -540
  198. package/dist/react/jsx/utils/parseStringFunction.d.ts +0 -30
  199. package/dist/react/jsx/utils/parseStringFunction.js +0 -348
  200. package/dist/react/jsx/utils/resolveImportPath.d.ts +0 -11
  201. package/dist/react/jsx/utils/resolveImportPath.js +0 -111
  202. package/dist/react/jsx/utils/stringParsing/processTranslationCall/extractStringEntryMetadata.d.ts +0 -29
  203. package/dist/react/jsx/utils/stringParsing/processTranslationCall/extractStringEntryMetadata.js +0 -86
  204. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleInvalidTranslationCall.d.ts +0 -14
  205. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleInvalidTranslationCall.js +0 -24
  206. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleLiteralTranslationCall.d.ts +0 -19
  207. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleLiteralTranslationCall.js +0 -31
  208. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleStaticTranslationCall.d.ts +0 -22
  209. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleStaticTranslationCall.js +0 -51
  210. package/dist/react/jsx/utils/stringParsing/processTranslationCall/index.d.ts +0 -18
  211. package/dist/react/jsx/utils/stringParsing/processTranslationCall/index.js +0 -39
  212. package/dist/react/jsx/utils/stringParsing/processTranslationCall/routeTranslationCall.d.ts +0 -24
  213. package/dist/react/jsx/utils/stringParsing/processTranslationCall/routeTranslationCall.js +0 -68
  214. package/dist/react/jsx/utils/stringParsing/types.d.ts +0 -41
  215. package/dist/react/jsx/utils/stringParsing/types.js +0 -1
  216. package/dist/react/jsx/utils/types.d.ts +0 -14
  217. package/dist/react/jsx/utils/types.js +0 -1
  218. package/dist/react/jsx/utils/validateStringFunction.d.ts +0 -7
  219. package/dist/react/jsx/utils/validateStringFunction.js +0 -31
  220. package/dist/react/jsx/wrapJsx.d.ts +0 -51
  221. package/dist/react/jsx/wrapJsx.js +0 -387
  222. package/dist/react/parse/addVitePlugin/index.d.ts +0 -22
  223. package/dist/react/parse/addVitePlugin/index.js +0 -41
  224. package/dist/react/parse/addVitePlugin/installCompiler.d.ts +0 -8
  225. package/dist/react/parse/addVitePlugin/installCompiler.js +0 -22
  226. package/dist/react/parse/addVitePlugin/updateViteConfig.d.ts +0 -19
  227. package/dist/react/parse/addVitePlugin/updateViteConfig.js +0 -120
  228. package/dist/react/parse/addVitePlugin/utils/addCompilerImport.d.ts +0 -9
  229. package/dist/react/parse/addVitePlugin/utils/addCompilerImport.js +0 -34
  230. package/dist/react/parse/addVitePlugin/utils/addPluginInvocation.d.ts +0 -11
  231. package/dist/react/parse/addVitePlugin/utils/addPluginInvocation.js +0 -48
  232. package/dist/react/parse/addVitePlugin/utils/checkCompilerImport.d.ts +0 -15
  233. package/dist/react/parse/addVitePlugin/utils/checkCompilerImport.js +0 -113
  234. package/dist/react/parse/addVitePlugin/utils/checkPluginInvocation.d.ts +0 -12
  235. package/dist/react/parse/addVitePlugin/utils/checkPluginInvocation.js +0 -32
  236. package/dist/react/parse/createDictionaryUpdates.d.ts +0 -3
  237. package/dist/react/parse/createDictionaryUpdates.js +0 -187
  238. package/dist/react/parse/createInlineUpdates.d.ts +0 -13
  239. package/dist/react/parse/createInlineUpdates.js +0 -161
  240. package/dist/react/utils/flattenDictionary.d.ts +0 -20
  241. package/dist/react/utils/flattenDictionary.js +0 -75
  242. package/dist/react/utils/getEntryAndMetadata.d.ts +0 -5
  243. package/dist/react/utils/getEntryAndMetadata.js +0 -11
  244. package/dist/react/utils/getVariableName.d.ts +0 -25
  245. package/dist/react/utils/getVariableName.js +0 -37
  246. package/dist/setup/agentInstructions.d.ts +0 -24
  247. package/dist/setup/agentInstructions.js +0 -138
  248. package/dist/setup/detectFramework.d.ts +0 -31
  249. package/dist/setup/detectFramework.js +0 -106
  250. package/dist/setup/frameworkUtils.d.ts +0 -3
  251. package/dist/setup/frameworkUtils.js +0 -30
  252. package/dist/setup/instructions/base.md +0 -29
  253. package/dist/setup/instructions/gt-next.md +0 -107
  254. package/dist/setup/instructions/gt-react.md +0 -98
  255. package/dist/setup/userInput.d.ts +0 -4
  256. package/dist/setup/userInput.js +0 -32
  257. package/dist/setup/wizard.d.ts +0 -3
  258. package/dist/setup/wizard.js +0 -147
  259. package/dist/state/recentDownloads.d.ts +0 -12
  260. package/dist/state/recentDownloads.js +0 -18
  261. package/dist/state/translateWarnings.d.ts +0 -10
  262. package/dist/state/translateWarnings.js +0 -13
  263. package/dist/translation/parse.d.ts +0 -17
  264. package/dist/translation/parse.js +0 -77
  265. package/dist/translation/stage.d.ts +0 -3
  266. package/dist/translation/stage.js +0 -44
  267. package/dist/translation/validate.d.ts +0 -14
  268. package/dist/translation/validate.js +0 -100
  269. package/dist/types/branch.d.ts +0 -14
  270. package/dist/types/branch.js +0 -1
  271. package/dist/types/data/json.d.ts +0 -6
  272. package/dist/types/data/json.js +0 -1
  273. package/dist/types/data.d.ts +0 -37
  274. package/dist/types/data.js +0 -1
  275. package/dist/types/files.d.ts +0 -8
  276. package/dist/types/files.js +0 -1
  277. package/dist/types/libraries.d.ts +0 -31
  278. package/dist/types/libraries.js +0 -72
  279. package/dist/types/parsing.d.ts +0 -3
  280. package/dist/types/parsing.js +0 -1
  281. package/dist/utils/addExplicitAnchorIds.d.ts +0 -24
  282. package/dist/utils/addExplicitAnchorIds.js +0 -416
  283. package/dist/utils/constants.d.ts +0 -5
  284. package/dist/utils/constants.js +0 -6
  285. package/dist/utils/credentials.d.ts +0 -12
  286. package/dist/utils/credentials.js +0 -120
  287. package/dist/utils/flattenJsonFiles.d.ts +0 -2
  288. package/dist/utils/flattenJsonFiles.js +0 -36
  289. package/dist/utils/gitDiff.d.ts +0 -8
  290. package/dist/utils/gitDiff.js +0 -34
  291. package/dist/utils/gt.d.ts +0 -2
  292. package/dist/utils/gt.js +0 -2
  293. package/dist/utils/hash.d.ts +0 -6
  294. package/dist/utils/hash.js +0 -11
  295. package/dist/utils/headers.d.ts +0 -1
  296. package/dist/utils/headers.js +0 -14
  297. package/dist/utils/localizeRelativeAssets.d.ts +0 -8
  298. package/dist/utils/localizeRelativeAssets.js +0 -166
  299. package/dist/utils/localizeStaticImports.d.ts +0 -15
  300. package/dist/utils/localizeStaticImports.js +0 -397
  301. package/dist/utils/localizeStaticUrls.d.ts +0 -19
  302. package/dist/utils/localizeStaticUrls.js +0 -450
  303. package/dist/utils/mintlifyTitleFallback.d.ts +0 -6
  304. package/dist/utils/mintlifyTitleFallback.js +0 -80
  305. package/dist/utils/parse/needsCJS.d.ts +0 -20
  306. package/dist/utils/parse/needsCJS.js +0 -72
  307. package/dist/utils/persistPostprocessHashes.d.ts +0 -12
  308. package/dist/utils/persistPostprocessHashes.js +0 -39
  309. package/dist/utils/processAnchorIds.d.ts +0 -6
  310. package/dist/utils/processAnchorIds.js +0 -56
  311. package/dist/utils/processOpenApi.d.ts +0 -8
  312. package/dist/utils/processOpenApi.js +0 -651
  313. package/dist/utils/sanitizeFileContent.d.ts +0 -6
  314. package/dist/utils/sanitizeFileContent.js +0 -29
  315. package/dist/utils/sharedStaticAssets.d.ts +0 -9
  316. package/dist/utils/sharedStaticAssets.js +0 -384
  317. package/dist/utils/validateMdx.d.ts +0 -10
  318. package/dist/utils/validateMdx.js +0 -25
  319. package/dist/utils/wrapPlainUrls.d.ts +0 -8
  320. package/dist/utils/wrapPlainUrls.js +0 -72
  321. package/dist/workflows/download.d.ts +0 -32
  322. package/dist/workflows/download.js +0 -131
  323. package/dist/workflows/enqueue.d.ts +0 -17
  324. package/dist/workflows/enqueue.js +0 -59
  325. package/dist/workflows/setupProject.d.ts +0 -13
  326. package/dist/workflows/setupProject.js +0 -48
  327. package/dist/workflows/stage.d.ts +0 -18
  328. package/dist/workflows/stage.js +0 -59
  329. package/dist/workflows/steps/BranchStep.d.ts +0 -13
  330. package/dist/workflows/steps/BranchStep.js +0 -161
  331. package/dist/workflows/steps/DownloadStep.d.ts +0 -19
  332. package/dist/workflows/steps/DownloadStep.js +0 -131
  333. package/dist/workflows/steps/EnqueueStep.d.ts +0 -15
  334. package/dist/workflows/steps/EnqueueStep.js +0 -33
  335. package/dist/workflows/steps/PollJobsStep.d.ts +0 -31
  336. package/dist/workflows/steps/PollJobsStep.js +0 -288
  337. package/dist/workflows/steps/SetupStep.d.ts +0 -16
  338. package/dist/workflows/steps/SetupStep.js +0 -72
  339. package/dist/workflows/steps/UploadSourcesStep.d.ts +0 -27
  340. package/dist/workflows/steps/UploadSourcesStep.js +0 -131
  341. package/dist/workflows/steps/UploadTranslationsStep.d.ts +0 -22
  342. package/dist/workflows/steps/UploadTranslationsStep.js +0 -71
  343. package/dist/workflows/steps/UserEditDiffsStep.d.ts +0 -11
  344. package/dist/workflows/steps/UserEditDiffsStep.js +0 -30
  345. package/dist/workflows/steps/WorkflowStep.d.ts +0 -4
  346. package/dist/workflows/steps/WorkflowStep.js +0 -2
  347. package/dist/workflows/upload.d.ts +0 -15
  348. package/dist/workflows/upload.js +0 -47
package/README.md CHANGED
@@ -14,12 +14,21 @@
14
14
 
15
15
  # gtx-cli
16
16
 
17
+ > **Deprecated:** This package has been renamed to [`gt`](https://www.npmjs.com/package/gt). Please use `gt` instead. This package is a backward-compatibility wrapper and will continue to work, but all future development happens in `gt`.
18
+
17
19
  Command-line tool for General Translation's i18n platform.
18
20
 
21
+ ## Migration
22
+
23
+ ```bash
24
+ npm uninstall gtx-cli
25
+ npm install gt --save-dev
26
+ ```
27
+
19
28
  ## Installation
20
29
 
21
30
  ```bash
22
- npm install gtx-cli --save-dev
31
+ npm install gt --save-dev
23
32
  ```
24
33
 
25
34
  ## Quick Start
@@ -27,13 +36,13 @@ npm install gtx-cli --save-dev
27
36
  Set up your project:
28
37
 
29
38
  ```bash
30
- npx gtx-cli init
39
+ npx gt init
31
40
  ```
32
41
 
33
42
  Generate translations:
34
43
 
35
44
  ```bash
36
- npx gtx-cli translate
45
+ npx gt translate
37
46
  ```
38
47
 
39
48
  See the [full documentation](https://generaltranslation.com/docs/cli) for guides and API reference.
@@ -1,9 +1,10 @@
1
1
  // Entry point for binaries
2
- import { main } from '../index.js';
2
+ import { main } from 'gt';
3
3
  import dotenv from 'dotenv';
4
4
  import { program } from 'commander';
5
5
  dotenv.config({ path: '.env' });
6
6
  dotenv.config({ path: '.env.local', override: true });
7
7
  dotenv.config({ path: '.env.production', override: true });
8
8
  main(program);
9
+ program.name('gtx-cli');
9
10
  program.parse();
@@ -1,9 +1 @@
1
- import { Settings } from '../types/index.js';
2
- export declare const DEFAULT_SRC_PATTERNS: string[];
3
- /**
4
- * Generates settings from any
5
- * @param flags - The CLI flags to generate settings from
6
- * @param cwd - The current working directory
7
- * @returns The generated settings
8
- */
9
- export declare function generateSettings(flags: Record<string, any>, cwd?: string): Promise<Settings>;
1
+ export * from 'gt/config/generateSettings';
@@ -1,214 +1 @@
1
- import { displayProjectId, exitSync, logErrorAndExit, warnApiKeyInConfig, } from '../console/logging.js';
2
- import { loadConfig } from '../fs/config/loadConfig.js';
3
- import { defaultBaseUrl, libraryDefaultLocale, } from 'generaltranslation/internal';
4
- import fs from 'node:fs';
5
- import { createOrUpdateConfig } from '../fs/config/setupConfig.js';
6
- import { resolveFiles } from '../fs/config/parseFilesConfig.js';
7
- import { validateSettings } from './validateSettings.js';
8
- import { DEFAULT_GIT_REMOTE_NAME, GT_DASHBOARD_URL, } from '../utils/constants.js';
9
- import { resolveProjectId } from '../fs/utils.js';
10
- import path from 'node:path';
11
- import chalk from 'chalk';
12
- import { resolveConfig } from './resolveConfig.js';
13
- import { gt } from '../utils/gt.js';
14
- import { generatePreset } from './optionPresets.js';
15
- export const DEFAULT_SRC_PATTERNS = [
16
- 'src/**/*.{js,jsx,ts,tsx}',
17
- 'app/**/*.{js,jsx,ts,tsx}',
18
- 'pages/**/*.{js,jsx,ts,tsx}',
19
- 'components/**/*.{js,jsx,ts,tsx}',
20
- ];
21
- /**
22
- * Generates settings from any
23
- * @param flags - The CLI flags to generate settings from
24
- * @param cwd - The current working directory
25
- * @returns The generated settings
26
- */
27
- export async function generateSettings(flags, cwd = process.cwd()) {
28
- // Load config file
29
- let gtConfig = {};
30
- if (flags.config && !flags.config.endsWith('.json')) {
31
- flags.config = `${flags.config}.json`;
32
- }
33
- if (flags.config) {
34
- gtConfig = loadConfig(flags.config);
35
- }
36
- else {
37
- const config = resolveConfig(cwd);
38
- if (config) {
39
- gtConfig = config.config;
40
- flags.config = config.path;
41
- }
42
- else {
43
- gtConfig = {};
44
- }
45
- }
46
- // Warn if apiKey is present in gt.config.json
47
- if (gtConfig.apiKey) {
48
- warnApiKeyInConfig(flags.config);
49
- exitSync(1);
50
- }
51
- const projectIdEnv = resolveProjectId();
52
- // Resolve mismatched projectIds
53
- if (gtConfig.projectId &&
54
- flags.projectId &&
55
- gtConfig.projectId !== flags.projectId) {
56
- logErrorAndExit(`Project ID mismatch between ${chalk.green(gtConfig.projectId)} and ${chalk.green(flags.projectId)}! Please use the same projectId in all configs.`);
57
- }
58
- else if (gtConfig.projectId &&
59
- projectIdEnv &&
60
- gtConfig.projectId !== projectIdEnv) {
61
- logErrorAndExit(`Project ID mismatch between ${chalk.green(gtConfig.projectId)} and ${chalk.green(projectIdEnv)}! Please use the same projectId in all configs.`);
62
- }
63
- if (flags.options?.docsUrlPattern &&
64
- !flags.options?.docsUrlPattern.includes('[locale]')) {
65
- logErrorAndExit('Failed to localize static urls: URL pattern must include "[locale]" to denote the location of the locale');
66
- }
67
- if (flags.options?.docsImportPattern &&
68
- !flags.options?.docsImportPattern.includes('[locale]')) {
69
- logErrorAndExit('Failed to localize static imports: Import pattern must include "[locale]" to denote the location of the locale');
70
- }
71
- if (flags.options?.copyFiles) {
72
- for (const file of flags.options.copyFiles) {
73
- if (!file.includes('[locale]')) {
74
- logErrorAndExit('Failed to copy files: File path must include "[locale]" to denote the location of the locale');
75
- }
76
- }
77
- }
78
- // merge options
79
- const mergedOptions = { ...gtConfig, ...flags };
80
- // Add defaultLocale if not provided
81
- mergedOptions.defaultLocale =
82
- mergedOptions.defaultLocale || libraryDefaultLocale;
83
- // merge locales
84
- mergedOptions.locales = Array.from(new Set([...(gtConfig.locales || []), ...(flags.locales || [])]));
85
- // Separate defaultLocale from locales
86
- mergedOptions.locales = mergedOptions.locales.filter((locale) => locale !== mergedOptions.defaultLocale);
87
- // Add apiKey if not provided
88
- mergedOptions.apiKey = mergedOptions.apiKey || process.env.GT_API_KEY;
89
- // Add projectId if not provided
90
- mergedOptions.projectId = mergedOptions.projectId || resolveProjectId();
91
- // Add baseUrl if not provided
92
- mergedOptions.baseUrl = mergedOptions.baseUrl || defaultBaseUrl;
93
- // Add dashboardUrl if not provided
94
- mergedOptions.dashboardUrl = mergedOptions.dashboardUrl || GT_DASHBOARD_URL;
95
- // Add locales if not provided
96
- mergedOptions.locales = mergedOptions.locales || [];
97
- // Add default config file name if not provided
98
- mergedOptions.config =
99
- mergedOptions.config || path.join(cwd, 'gt.config.json');
100
- // Display projectId if present
101
- if (mergedOptions.projectId)
102
- displayProjectId(mergedOptions.projectId);
103
- // Add stageTranslations if not provided
104
- // For human review, always stage the project
105
- mergedOptions.stageTranslations = mergedOptions.stageTranslations ?? false;
106
- // Add publish if not provided
107
- mergedOptions.publish = (gtConfig.publish || flags.publish) ?? false;
108
- // Populate src if not provided
109
- mergedOptions.src = mergedOptions.src || DEFAULT_SRC_PATTERNS;
110
- // Resolve all glob patterns in the files object
111
- const compositePatterns = [
112
- ...Object.entries(mergedOptions.options?.jsonSchema || {}),
113
- ]
114
- .filter(([, schema]) => schema.composite)
115
- .map(([key]) => key);
116
- mergedOptions.files = mergedOptions.files
117
- ? resolveFiles(mergedOptions.files, mergedOptions.defaultLocale, mergedOptions.locales, cwd, compositePatterns)
118
- : { resolvedPaths: {}, placeholderPaths: {}, transformPaths: {} };
119
- mergedOptions.options = {
120
- ...(mergedOptions.options || {}),
121
- mintlify: {
122
- ...(mergedOptions.options?.mintlify || {}),
123
- inferTitleFromFilename: gtConfig.options?.mintlify?.inferTitleFromFilename ||
124
- mergedOptions.options?.mintlify?.inferTitleFromFilename,
125
- },
126
- experimentalLocalizeStaticImports: gtConfig.options?.experimentalLocalizeStaticImports ||
127
- flags.experimentalLocalizeStaticImports,
128
- experimentalLocalizeStaticUrls: gtConfig.options?.experimentalLocalizeStaticUrls ||
129
- flags.experimentalLocalizeStaticUrls,
130
- experimentalLocalizeRelativeAssets: gtConfig.options?.experimentalLocalizeRelativeAssets ||
131
- flags.experimentalLocalizeRelativeAssets,
132
- experimentalHideDefaultLocale: gtConfig.options?.experimentalHideDefaultLocale ||
133
- flags.experimentalHideDefaultLocale,
134
- experimentalFlattenJsonFiles: gtConfig.options?.experimentalFlattenJsonFiles ||
135
- flags.experimentalFlattenJsonFiles,
136
- experimentalClearLocaleDirs: gtConfig.options?.experimentalClearLocaleDirs ||
137
- flags.experimentalClearLocaleDirs,
138
- clearLocaleDirsExclude: gtConfig.options?.clearLocaleDirsExclude || flags.clearLocaleDirsExclude,
139
- };
140
- // Add additional options if provided
141
- if (mergedOptions.options) {
142
- if (mergedOptions.options.jsonSchema) {
143
- for (const fileGlob of Object.keys(mergedOptions.options.jsonSchema)) {
144
- const jsonSchema = mergedOptions.options.jsonSchema[fileGlob];
145
- if (jsonSchema.preset) {
146
- mergedOptions.options.jsonSchema[fileGlob] = {
147
- ...generatePreset(jsonSchema.preset, 'json'),
148
- ...jsonSchema,
149
- };
150
- }
151
- }
152
- }
153
- if (mergedOptions.options.yamlSchema) {
154
- for (const fileGlob of Object.keys(mergedOptions.options.yamlSchema)) {
155
- const yamlSchema = mergedOptions.options.yamlSchema[fileGlob];
156
- if (yamlSchema.preset) {
157
- mergedOptions.options.yamlSchema[fileGlob] = {
158
- ...generatePreset(yamlSchema.preset, 'yaml'),
159
- ...yamlSchema,
160
- };
161
- }
162
- }
163
- }
164
- }
165
- // Add parsing options if not provided
166
- mergedOptions.parsingOptions = mergedOptions.parsingOptions || {};
167
- mergedOptions.parsingOptions.conditionNames = mergedOptions.parsingOptions
168
- .conditionNames || [
169
- 'development',
170
- 'browser',
171
- 'module',
172
- 'import',
173
- 'require',
174
- 'default',
175
- ];
176
- // Add branch options if not provided
177
- const branchOptions = mergedOptions.branchOptions || {};
178
- // If --branch is set, enable branching
179
- branchOptions.enabled =
180
- flags.enableBranching ??
181
- gtConfig.branchOptions?.enabled ??
182
- (flags.branch ? true : false);
183
- branchOptions.currentBranch =
184
- flags.branch ?? gtConfig.branchOptions?.currentBranch ?? undefined;
185
- branchOptions.autoDetectBranches = flags.disableBranchDetection
186
- ? false
187
- : (gtConfig.branchOptions?.autoDetectBranches ?? true);
188
- branchOptions.remoteName =
189
- flags.remoteName ??
190
- gtConfig.branchOptions?.remoteName ??
191
- DEFAULT_GIT_REMOTE_NAME;
192
- mergedOptions.branchOptions = branchOptions;
193
- // if there's no existing config file, creates one
194
- // does not include the API key to avoid exposing it
195
- if (!fs.existsSync(mergedOptions.config)) {
196
- await createOrUpdateConfig(mergedOptions.config, {
197
- projectId: mergedOptions.projectId,
198
- defaultLocale: mergedOptions.defaultLocale,
199
- locales: mergedOptions.locales?.length > 0 ? mergedOptions.locales : undefined,
200
- framework: mergedOptions.framework,
201
- });
202
- }
203
- mergedOptions.configDirectory = path.join(cwd, '.gt');
204
- validateSettings(mergedOptions);
205
- // Set up GT instance
206
- gt.setConfig({
207
- projectId: mergedOptions.projectId,
208
- apiKey: mergedOptions.apiKey,
209
- baseUrl: mergedOptions.baseUrl,
210
- sourceLocale: mergedOptions.defaultLocale,
211
- customMapping: mergedOptions.customMapping,
212
- });
213
- return mergedOptions;
214
- }
1
+ export * from 'gt/config/generateSettings';
@@ -1,4 +1 @@
1
- export declare function resolveConfig(cwd: string): {
2
- path: string;
3
- config: Record<string, any>;
4
- } | null;
1
+ export * from 'gt/config/resolveConfig';
@@ -1,33 +1 @@
1
- import fs from 'node:fs';
2
- import path from 'node:path';
3
- import { loadConfig } from '../fs/config/loadConfig.js';
4
- export function resolveConfig(cwd) {
5
- const configFilepath = 'gt.config.json';
6
- if (fs.existsSync(path.join(cwd, configFilepath))) {
7
- return {
8
- path: path.join(cwd, configFilepath),
9
- config: loadConfig(path.join(cwd, configFilepath)),
10
- };
11
- }
12
- if (fs.existsSync(path.join(cwd, 'src/gt.config.json'))) {
13
- return {
14
- path: path.join(cwd, 'src/gt.config.json'),
15
- config: loadConfig(path.join(cwd, 'src/gt.config.json')),
16
- };
17
- }
18
- // Support config under .gt for parity with .locadex
19
- if (fs.existsSync(path.join(cwd, '.gt/gt.config.json'))) {
20
- return {
21
- path: path.join(cwd, '.gt/gt.config.json'),
22
- config: loadConfig(path.join(cwd, '.gt/gt.config.json')),
23
- };
24
- }
25
- // Backward compatibility: support legacy .locadex directory
26
- if (fs.existsSync(path.join(cwd, '.locadex/gt.config.json'))) {
27
- return {
28
- path: path.join(cwd, '.locadex/gt.config.json'),
29
- config: loadConfig(path.join(cwd, '.locadex/gt.config.json')),
30
- };
31
- }
32
- return null;
33
- }
1
+ export * from 'gt/config/resolveConfig';
@@ -1,17 +1 @@
1
- import { FilesOptions, SupportedFrameworks } from '../../types/index.js';
2
- /**
3
- * Checks if the config file exists.
4
- * If yes, make sure make sure projectId is correct
5
- * If not, creates a new JSON file at the given filepath and writes the provided config object to it.
6
- * @param {string} configFilepath - The path to the config file.
7
- * @param {Record<string, any>} configObject - The config object to write if the file does not exist.
8
- */
9
- export declare function createOrUpdateConfig(configFilepath: string, options: {
10
- projectId?: string;
11
- defaultLocale?: string;
12
- locales?: string[];
13
- files?: FilesOptions;
14
- framework?: SupportedFrameworks;
15
- baseUrl?: string;
16
- publish?: boolean;
17
- }): Promise<string>;
1
+ export * from 'gt/fs/config/setupConfig';
@@ -1,50 +1 @@
1
- import fs from 'node:fs';
2
- import { displayCreatedConfigFile } from '../../console/logging.js';
3
- import { logger } from '../../console/logger.js';
4
- import { GT_CONFIG_SCHEMA_URL } from '../../utils/constants.js';
5
- /**
6
- * Checks if the config file exists.
7
- * If yes, make sure make sure projectId is correct
8
- * If not, creates a new JSON file at the given filepath and writes the provided config object to it.
9
- * @param {string} configFilepath - The path to the config file.
10
- * @param {Record<string, any>} configObject - The config object to write if the file does not exist.
11
- */
12
- export async function createOrUpdateConfig(configFilepath, options) {
13
- // Filter out empty string values from the config object
14
- const newContent = {
15
- ...(options.projectId && { projectId: options.projectId }),
16
- ...(options.defaultLocale && { defaultLocale: options.defaultLocale }),
17
- ...(options.files && { files: options.files }),
18
- ...(options.framework && { framework: options.framework }),
19
- ...(options.baseUrl && { baseUrl: options.baseUrl }),
20
- ...(options.publish && { publish: options.publish }),
21
- };
22
- try {
23
- // if file exists
24
- let oldContent = {};
25
- if (fs.existsSync(configFilepath)) {
26
- oldContent = JSON.parse(await fs.promises.readFile(configFilepath, 'utf-8'));
27
- }
28
- // merge old and new content
29
- const mergedContent = {
30
- $schema: GT_CONFIG_SCHEMA_URL,
31
- ...oldContent,
32
- ...newContent,
33
- };
34
- // Add locales to mergedContent if they exist
35
- if (options.locales) {
36
- mergedContent.locales = mergedContent.locales
37
- ? [...new Set([...mergedContent.locales, ...options.locales])]
38
- : options.locales;
39
- }
40
- // write to file
41
- const mergedJsonContent = JSON.stringify(mergedContent, null, 2);
42
- await fs.promises.writeFile(configFilepath, mergedJsonContent, 'utf-8');
43
- // show update in console
44
- displayCreatedConfigFile(configFilepath);
45
- }
46
- catch (error) {
47
- logger.error(`An error occurred while updating ${configFilepath}: ${error}`);
48
- }
49
- return configFilepath;
50
- }
1
+ export * from 'gt/fs/config/setupConfig';
@@ -1 +1 @@
1
- export declare function matchFiles(cwd: string, patterns: string[]): string[];
1
+ export * from 'gt/fs/matchFiles';
@@ -1,8 +1 @@
1
- import fg from 'fast-glob';
2
- export function matchFiles(cwd, patterns) {
3
- return fg.sync(patterns, {
4
- cwd,
5
- absolute: true,
6
- onlyFiles: true,
7
- });
8
- }
1
+ export * from 'gt/fs/matchFiles';
@@ -1,7 +1 @@
1
- /**
2
- * This file serves as an entrypoint for programmatically invoking CLI commands.
3
- * Import from 'gtx-cli/functions' to access these APIs.
4
- */
5
- export { getValidateJson } from './translation/validate.js';
6
- export type { ValidationResult, ValidationMessage, ValidationLevel, } from './translation/validate.js';
7
- export { Libraries, GTLibrary, InlineLibrary, ReactLibrary, GT_LIBRARIES, INLINE_LIBRARIES, REACT_LIBRARIES, GT_LIBRARIES_UPSTREAM, } from './types/libraries.js';
1
+ export * from 'gt/functions';
package/dist/functions.js CHANGED
@@ -1,6 +1 @@
1
- /**
2
- * This file serves as an entrypoint for programmatically invoking CLI commands.
3
- * Import from 'gtx-cli/functions' to access these APIs.
4
- */
5
- export { getValidateJson } from './translation/validate.js';
6
- export { Libraries, GT_LIBRARIES, INLINE_LIBRARIES, REACT_LIBRARIES, GT_LIBRARIES_UPSTREAM, } from './types/libraries.js';
1
+ export * from 'gt/functions';
package/dist/index.d.ts CHANGED
@@ -1,4 +1 @@
1
- import { BaseCLI } from './cli/base.js';
2
- import { Command } from 'commander';
3
- export declare function main(program: Command): void;
4
- export { BaseCLI };
1
+ export * from 'gt';
package/dist/index.js CHANGED
@@ -1,27 +1 @@
1
- import { BaseCLI } from './cli/base.js';
2
- import { NextCLI } from './cli/next.js';
3
- import { ReactCLI } from './cli/react.js';
4
- import { determineLibrary } from './fs/determineFramework.js';
5
- import { NodeCLI } from './cli/node.js';
6
- import { Libraries } from './types/libraries.js';
7
- export function main(program) {
8
- program.name('gtx-cli');
9
- const { library, additionalModules } = determineLibrary();
10
- let cli;
11
- if (library === Libraries.GT_NEXT) {
12
- cli = new NextCLI(program, library, additionalModules);
13
- }
14
- else if (library === Libraries.GT_REACT ||
15
- library === Libraries.GT_REACT_NATIVE) {
16
- cli = new ReactCLI(program, library, additionalModules);
17
- }
18
- else if (library === Libraries.GT_NODE) {
19
- cli = new NodeCLI(program, library, additionalModules);
20
- }
21
- else {
22
- cli = new BaseCLI(program, library, additionalModules);
23
- }
24
- cli.init();
25
- cli.execute();
26
- }
27
- export { BaseCLI };
1
+ export * from 'gt';
package/dist/main.js CHANGED
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
- // Non-binary router - directly runs main.ts
3
- import { main } from './index.js';
2
+ import { main } from 'gt';
4
3
  import dotenv from 'dotenv';
5
4
  import { program } from 'commander';
6
5
  dotenv.config({ path: '.env' });
7
6
  dotenv.config({ path: '.env.local', override: true });
8
7
  dotenv.config({ path: '.env.production', override: true });
9
8
  main(program);
9
+ program.name('gtx-cli');
10
10
  program.parse();
@@ -1,7 +1 @@
1
- export declare function handleInitGT(filepath: string, errors: string[], warnings: string[], filesUpdated: string[], packageJson?: {
2
- type?: string;
3
- }, tsconfigJson?: {
4
- compilerOptions?: {
5
- module?: string;
6
- };
7
- }): Promise<void>;
1
+ export * from 'gt/next/parse/handleInitGT';
@@ -1,157 +1 @@
1
- import fs from 'node:fs';
2
- import { parse } from '@babel/parser';
3
- import generateModule from '@babel/generator';
4
- import traverseModule from '@babel/traverse';
5
- // Handle CommonJS/ESM interop
6
- const traverse = traverseModule.default || traverseModule;
7
- const generate = generateModule.default || generateModule;
8
- import * as t from '@babel/types';
9
- import { logger } from '../../console/logger.js';
10
- import { needsCJS } from '../../utils/parse/needsCJS.js';
11
- export async function handleInitGT(filepath, errors, warnings, filesUpdated, packageJson, tsconfigJson) {
12
- const code = await fs.promises.readFile(filepath, 'utf8');
13
- let ast;
14
- try {
15
- ast = parse(code, {
16
- sourceType: 'module',
17
- plugins: ['jsx', 'typescript'],
18
- tokens: true,
19
- createParenthesizedExpressions: true,
20
- });
21
- // Get cjs or esm
22
- const cjsEnabled = needsCJS({
23
- ast,
24
- warnings,
25
- filepath,
26
- packageJson,
27
- tsconfigJson,
28
- });
29
- // Check if withGTConfig or initGT is already imported/required
30
- let hasGTConfig = false;
31
- let hasInitGT = false;
32
- traverse(ast, {
33
- ImportDeclaration(path) {
34
- if (path.node.source.value === 'gt-next/config') {
35
- path.node.specifiers.forEach((spec) => {
36
- if (t.isImportSpecifier(spec)) {
37
- if (spec.local.name === 'withGTConfig')
38
- hasGTConfig = true;
39
- if (spec.local.name === 'initGT')
40
- hasInitGT = true;
41
- }
42
- });
43
- }
44
- },
45
- VariableDeclaration(path) {
46
- path.node.declarations.forEach((dec) => {
47
- if (t.isVariableDeclarator(dec)) {
48
- // Handle destructuring: const { withGTConfig } = require('gt-next/config')
49
- if (t.isCallExpression(dec.init) &&
50
- t.isIdentifier(dec.init.callee, { name: 'require' }) &&
51
- t.isStringLiteral(dec.init.arguments[0], {
52
- value: 'gt-next/config',
53
- })) {
54
- // Handle simple assignment: const withGTConfig = require(...)
55
- if (t.isIdentifier(dec.id, { name: 'withGTConfig' }))
56
- hasGTConfig = true;
57
- if (t.isIdentifier(dec.id, { name: 'initGT' }))
58
- hasInitGT = true;
59
- // Handle destructuring: const { withGTConfig } = require(...)
60
- if (t.isObjectPattern(dec.id)) {
61
- dec.id.properties.forEach((prop) => {
62
- if (t.isObjectProperty(prop) &&
63
- t.isIdentifier(prop.key) &&
64
- t.isIdentifier(prop.value)) {
65
- if (prop.key.name === 'withGTConfig')
66
- hasGTConfig = true;
67
- if (prop.key.name === 'initGT')
68
- hasInitGT = true;
69
- }
70
- });
71
- }
72
- }
73
- // Handle member access: const withGTConfig = require('gt-next/config').withGTConfig
74
- else if (t.isMemberExpression(dec.init) &&
75
- t.isCallExpression(dec.init.object) &&
76
- t.isIdentifier(dec.init.object.callee, { name: 'require' }) &&
77
- t.isStringLiteral(dec.init.object.arguments[0], {
78
- value: 'gt-next/config',
79
- })) {
80
- if (t.isIdentifier(dec.id, { name: 'withGTConfig' }) &&
81
- t.isIdentifier(dec.init.property, { name: 'withGTConfig' })) {
82
- hasGTConfig = true;
83
- }
84
- if (t.isIdentifier(dec.id, { name: 'initGT' }) &&
85
- t.isIdentifier(dec.init.property, { name: 'initGT' })) {
86
- hasInitGT = true;
87
- }
88
- }
89
- }
90
- });
91
- },
92
- });
93
- // Return early if either withGTConfig or initGT is already present
94
- if (hasGTConfig || hasInitGT) {
95
- return;
96
- }
97
- ast.program.body.unshift(cjsEnabled
98
- ? t.variableDeclaration('const', [
99
- t.variableDeclarator(t.identifier('withGTConfig'), t.memberExpression(t.callExpression(t.identifier('require'), [
100
- t.stringLiteral('gt-next/config'),
101
- ]), t.identifier('withGTConfig'))),
102
- ])
103
- : t.importDeclaration([
104
- t.importSpecifier(t.identifier('withGTConfig'), t.identifier('withGTConfig')),
105
- ], t.stringLiteral('gt-next/config')));
106
- // Find and transform the default export
107
- traverse(ast, {
108
- ExportDefaultDeclaration(path) {
109
- const oldExport = path.node.declaration;
110
- let exportExpression;
111
- if (t.isFunctionDeclaration(oldExport)) {
112
- exportExpression = t.functionExpression(oldExport.id, oldExport.params, oldExport.body, oldExport.generator, oldExport.async);
113
- }
114
- else if (t.isClassDeclaration(oldExport)) {
115
- exportExpression = t.classExpression(oldExport.id, oldExport.superClass, oldExport.body, oldExport.decorators);
116
- }
117
- else if (t.isTSDeclareFunction(oldExport)) {
118
- // For TypeScript declare functions, create an empty function expression
119
- // since declare functions don't have a runtime implementation
120
- warnings.push(`Found TypeScript declare function in ${filepath}. Converting to empty function.`);
121
- exportExpression = t.functionExpression(oldExport.id, oldExport.params, t.blockStatement([]), false, false);
122
- }
123
- else {
124
- exportExpression = oldExport;
125
- }
126
- // Validate that we have a valid Next.js config export
127
- if (!t.isObjectExpression(exportExpression) &&
128
- !t.isFunctionExpression(exportExpression) &&
129
- !t.isArrowFunctionExpression(exportExpression)) {
130
- warnings.push(`Unexpected export type in ${filepath}. Next.js config should export an object or a function returning an object.`);
131
- }
132
- path.node.declaration = t.callExpression(t.identifier('withGTConfig'), [
133
- exportExpression,
134
- t.objectExpression([]),
135
- ]);
136
- },
137
- });
138
- // Generate the modified code
139
- const output = generate(ast, {
140
- retainLines: true,
141
- retainFunctionParens: true,
142
- comments: true,
143
- compact: 'auto',
144
- }, code);
145
- // Post-process the output to fix import spacing
146
- let processedCode = output.code;
147
- // Add newline after the comment only
148
- processedCode = processedCode.replace(/((?:import\s*{\s*withGTConfig\s*}\s*from|const\s*{\s*withGTConfig\s*}\s*=\s*require)\s*['"]gt-next\/config['"];?)/, '$1\n');
149
- // Write the modified code back to the file
150
- await fs.promises.writeFile(filepath, processedCode);
151
- filesUpdated.push(filepath);
152
- }
153
- catch (error) {
154
- logger.error(`Error parsing file ${filepath}: ${error}`);
155
- errors.push(`Failed to parse ${filepath}: ${error}`);
156
- }
157
- }
1
+ export * from 'gt/next/parse/handleInitGT';
@@ -1,12 +1 @@
1
- import { WrapOptions } from '../../types/index.js';
2
- import { Libraries } from '../../types/libraries.js';
3
- /**
4
- * Wraps all JSX elements in the src directory with a <T> tag, with unique ids.
5
- * - Ignores pure strings
6
- *
7
- * @param options - The options object
8
- * @returns An object containing the updates and errors
9
- */
10
- export declare function wrapContentNext(options: WrapOptions, pkg: `${typeof Libraries.GT_NEXT}`, errors: string[], warnings: string[]): Promise<{
11
- filesUpdated: string[];
12
- }>;
1
+ export * from 'gt/next/parse/wrapContent';