gtx-cli 2.6.29 → 2.6.30-alpha.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 (340) hide show
  1. package/README.md +12 -3
  2. package/dist/bin/bin-entry.js +2 -1
  3. package/dist/functions.d.ts +1 -7
  4. package/dist/functions.js +1 -6
  5. package/dist/index.d.ts +1 -4
  6. package/dist/index.js +1 -27
  7. package/dist/main.js +2 -2
  8. package/package.json +9 -60
  9. package/CHANGELOG.md +0 -1255
  10. package/dist/api/collectUserEditDiffs.d.ts +0 -9
  11. package/dist/api/collectUserEditDiffs.js +0 -159
  12. package/dist/api/downloadFileBatch.d.ts +0 -23
  13. package/dist/api/downloadFileBatch.js +0 -190
  14. package/dist/api/saveLocalEdits.d.ts +0 -6
  15. package/dist/api/saveLocalEdits.js +0 -38
  16. package/dist/cli/base.d.ts +0 -59
  17. package/dist/cli/base.js +0 -529
  18. package/dist/cli/commands/download.d.ts +0 -8
  19. package/dist/cli/commands/download.js +0 -51
  20. package/dist/cli/commands/enqueue.d.ts +0 -9
  21. package/dist/cli/commands/enqueue.js +0 -27
  22. package/dist/cli/commands/setupProject.d.ts +0 -7
  23. package/dist/cli/commands/setupProject.js +0 -37
  24. package/dist/cli/commands/stage.d.ts +0 -9
  25. package/dist/cli/commands/stage.js +0 -59
  26. package/dist/cli/commands/translate.d.ts +0 -7
  27. package/dist/cli/commands/translate.js +0 -70
  28. package/dist/cli/commands/upload.d.ts +0 -13
  29. package/dist/cli/commands/upload.js +0 -142
  30. package/dist/cli/commands/utils/validation.d.ts +0 -13
  31. package/dist/cli/commands/utils/validation.js +0 -38
  32. package/dist/cli/flags.d.ts +0 -15
  33. package/dist/cli/flags.js +0 -70
  34. package/dist/cli/inline.d.ts +0 -17
  35. package/dist/cli/inline.js +0 -135
  36. package/dist/cli/next.d.ts +0 -10
  37. package/dist/cli/next.js +0 -12
  38. package/dist/cli/node.d.ts +0 -10
  39. package/dist/cli/node.js +0 -9
  40. package/dist/cli/react.d.ts +0 -12
  41. package/dist/cli/react.js +0 -72
  42. package/dist/config/generateSettings.d.ts +0 -9
  43. package/dist/config/generateSettings.js +0 -214
  44. package/dist/config/optionPresets.d.ts +0 -3
  45. package/dist/config/optionPresets.js +0 -65
  46. package/dist/config/resolveConfig.d.ts +0 -4
  47. package/dist/config/resolveConfig.js +0 -33
  48. package/dist/config/utils.d.ts +0 -2
  49. package/dist/config/utils.js +0 -4
  50. package/dist/config/validateSettings.d.ts +0 -3
  51. package/dist/config/validateSettings.js +0 -32
  52. package/dist/console/colors.d.ts +0 -6
  53. package/dist/console/colors.js +0 -19
  54. package/dist/console/displayTranslateSummary.d.ts +0 -1
  55. package/dist/console/displayTranslateSummary.js +0 -42
  56. package/dist/console/formatting.d.ts +0 -1
  57. package/dist/console/formatting.js +0 -7
  58. package/dist/console/index.d.ts +0 -33
  59. package/dist/console/index.js +0 -44
  60. package/dist/console/logger.d.ts +0 -35
  61. package/dist/console/logger.js +0 -250
  62. package/dist/console/logging.d.ts +0 -52
  63. package/dist/console/logging.js +0 -175
  64. package/dist/formats/files/aggregateFiles.d.ts +0 -4
  65. package/dist/formats/files/aggregateFiles.js +0 -173
  66. package/dist/formats/files/collectFiles.d.ts +0 -6
  67. package/dist/formats/files/collectFiles.js +0 -49
  68. package/dist/formats/files/convertToFileTranslationData.d.ts +0 -15
  69. package/dist/formats/files/convertToFileTranslationData.js +0 -21
  70. package/dist/formats/files/fileMapping.d.ts +0 -11
  71. package/dist/formats/files/fileMapping.js +0 -115
  72. package/dist/formats/files/save.d.ts +0 -5
  73. package/dist/formats/files/save.js +0 -17
  74. package/dist/formats/files/supportedFiles.d.ts +0 -11
  75. package/dist/formats/files/supportedFiles.js +0 -20
  76. package/dist/formats/json/extractJson.d.ts +0 -15
  77. package/dist/formats/json/extractJson.js +0 -101
  78. package/dist/formats/json/flattenJson.d.ts +0 -14
  79. package/dist/formats/json/flattenJson.js +0 -64
  80. package/dist/formats/json/mergeJson.d.ts +0 -13
  81. package/dist/formats/json/mergeJson.js +0 -367
  82. package/dist/formats/json/parseJson.d.ts +0 -2
  83. package/dist/formats/json/parseJson.js +0 -109
  84. package/dist/formats/json/utils.d.ts +0 -47
  85. package/dist/formats/json/utils.js +0 -150
  86. package/dist/formats/utils.d.ts +0 -2
  87. package/dist/formats/utils.js +0 -24
  88. package/dist/formats/yaml/mergeYaml.d.ts +0 -5
  89. package/dist/formats/yaml/mergeYaml.js +0 -61
  90. package/dist/formats/yaml/parseYaml.d.ts +0 -5
  91. package/dist/formats/yaml/parseYaml.js +0 -24
  92. package/dist/formats/yaml/utils.d.ts +0 -2
  93. package/dist/formats/yaml/utils.js +0 -23
  94. package/dist/fs/clearLocaleDirs.d.ts +0 -8
  95. package/dist/fs/clearLocaleDirs.js +0 -126
  96. package/dist/fs/config/downloadedVersions.d.ts +0 -21
  97. package/dist/fs/config/downloadedVersions.js +0 -50
  98. package/dist/fs/config/loadConfig.d.ts +0 -1
  99. package/dist/fs/config/loadConfig.js +0 -9
  100. package/dist/fs/config/parseFilesConfig.d.ts +0 -27
  101. package/dist/fs/config/parseFilesConfig.js +0 -150
  102. package/dist/fs/config/setupConfig.d.ts +0 -17
  103. package/dist/fs/config/setupConfig.js +0 -50
  104. package/dist/fs/config/updateConfig.d.ts +0 -21
  105. package/dist/fs/config/updateConfig.js +0 -57
  106. package/dist/fs/config/updateVersions.d.ts +0 -11
  107. package/dist/fs/config/updateVersions.js +0 -30
  108. package/dist/fs/copyFile.d.ts +0 -7
  109. package/dist/fs/copyFile.js +0 -39
  110. package/dist/fs/createLoadTranslationsFile.d.ts +0 -1
  111. package/dist/fs/createLoadTranslationsFile.js +0 -49
  112. package/dist/fs/determineFramework.d.ts +0 -5
  113. package/dist/fs/determineFramework.js +0 -53
  114. package/dist/fs/findFilepath.d.ts +0 -36
  115. package/dist/fs/findFilepath.js +0 -90
  116. package/dist/fs/index.d.ts +0 -1
  117. package/dist/fs/index.js +0 -1
  118. package/dist/fs/loadJSON.d.ts +0 -6
  119. package/dist/fs/loadJSON.js +0 -17
  120. package/dist/fs/matchFiles.d.ts +0 -1
  121. package/dist/fs/matchFiles.js +0 -8
  122. package/dist/fs/saveJSON.d.ts +0 -1
  123. package/dist/fs/saveJSON.js +0 -7
  124. package/dist/fs/utils.d.ts +0 -1
  125. package/dist/fs/utils.js +0 -16
  126. package/dist/generated/version.d.ts +0 -1
  127. package/dist/generated/version.js +0 -2
  128. package/dist/git/branches.d.ts +0 -7
  129. package/dist/git/branches.js +0 -88
  130. package/dist/hooks/postProcess.d.ts +0 -4
  131. package/dist/hooks/postProcess.js +0 -110
  132. package/dist/locadex/setupFlow.d.ts +0 -2
  133. package/dist/locadex/setupFlow.js +0 -9
  134. package/dist/next/config/parseNextConfig.d.ts +0 -10
  135. package/dist/next/config/parseNextConfig.js +0 -53
  136. package/dist/next/jsx/utils.d.ts +0 -7
  137. package/dist/next/jsx/utils.js +0 -42
  138. package/dist/next/parse/handleInitGT.d.ts +0 -7
  139. package/dist/next/parse/handleInitGT.js +0 -157
  140. package/dist/next/parse/wrapContent.d.ts +0 -12
  141. package/dist/next/parse/wrapContent.js +0 -164
  142. package/dist/react/config/createESBuildConfig.d.ts +0 -2
  143. package/dist/react/config/createESBuildConfig.js +0 -119
  144. package/dist/react/jsx/evaluateJsx.d.ts +0 -24
  145. package/dist/react/jsx/evaluateJsx.js +0 -123
  146. package/dist/react/jsx/utils/buildImportMap.d.ts +0 -9
  147. package/dist/react/jsx/utils/buildImportMap.js +0 -30
  148. package/dist/react/jsx/utils/constants.d.ts +0 -13
  149. package/dist/react/jsx/utils/constants.js +0 -46
  150. package/dist/react/jsx/utils/getCalleeNameFromExpression.d.ts +0 -9
  151. package/dist/react/jsx/utils/getCalleeNameFromExpression.js +0 -32
  152. package/dist/react/jsx/utils/getPathsAndAliases.d.ts +0 -21
  153. package/dist/react/jsx/utils/getPathsAndAliases.js +0 -91
  154. package/dist/react/jsx/utils/isNumberLiteral.d.ts +0 -7
  155. package/dist/react/jsx/utils/isNumberLiteral.js +0 -13
  156. package/dist/react/jsx/utils/jsxParsing/addGTIdentifierToSyntaxTree.d.ts +0 -9
  157. package/dist/react/jsx/utils/jsxParsing/addGTIdentifierToSyntaxTree.js +0 -135
  158. package/dist/react/jsx/utils/jsxParsing/handleChildrenWhitespace.d.ts +0 -6
  159. package/dist/react/jsx/utils/jsxParsing/handleChildrenWhitespace.js +0 -197
  160. package/dist/react/jsx/utils/jsxParsing/multiplication/findMultiplicationNode.d.ts +0 -13
  161. package/dist/react/jsx/utils/jsxParsing/multiplication/findMultiplicationNode.js +0 -42
  162. package/dist/react/jsx/utils/jsxParsing/multiplication/multiplyJsxTree.d.ts +0 -5
  163. package/dist/react/jsx/utils/jsxParsing/multiplication/multiplyJsxTree.js +0 -69
  164. package/dist/react/jsx/utils/jsxParsing/parseJsx.d.ts +0 -33
  165. package/dist/react/jsx/utils/jsxParsing/parseJsx.js +0 -912
  166. package/dist/react/jsx/utils/jsxParsing/parseTProps.d.ts +0 -8
  167. package/dist/react/jsx/utils/jsxParsing/parseTProps.js +0 -65
  168. package/dist/react/jsx/utils/jsxParsing/removeNullChildrenFields.d.ts +0 -2
  169. package/dist/react/jsx/utils/jsxParsing/removeNullChildrenFields.js +0 -61
  170. package/dist/react/jsx/utils/jsxParsing/types.d.ts +0 -48
  171. package/dist/react/jsx/utils/jsxParsing/types.js +0 -34
  172. package/dist/react/jsx/utils/mapAttributeName.d.ts +0 -11
  173. package/dist/react/jsx/utils/mapAttributeName.js +0 -12
  174. package/dist/react/jsx/utils/parseAst.d.ts +0 -31
  175. package/dist/react/jsx/utils/parseAst.js +0 -278
  176. package/dist/react/jsx/utils/parseDeclareStatic.d.ts +0 -15
  177. package/dist/react/jsx/utils/parseDeclareStatic.js +0 -540
  178. package/dist/react/jsx/utils/parseString.d.ts +0 -25
  179. package/dist/react/jsx/utils/parseString.js +0 -540
  180. package/dist/react/jsx/utils/parseStringFunction.d.ts +0 -30
  181. package/dist/react/jsx/utils/parseStringFunction.js +0 -348
  182. package/dist/react/jsx/utils/resolveImportPath.d.ts +0 -11
  183. package/dist/react/jsx/utils/resolveImportPath.js +0 -111
  184. package/dist/react/jsx/utils/stringParsing/processTranslationCall/extractStringEntryMetadata.d.ts +0 -29
  185. package/dist/react/jsx/utils/stringParsing/processTranslationCall/extractStringEntryMetadata.js +0 -86
  186. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleInvalidTranslationCall.d.ts +0 -14
  187. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleInvalidTranslationCall.js +0 -24
  188. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleLiteralTranslationCall.d.ts +0 -19
  189. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleLiteralTranslationCall.js +0 -31
  190. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleStaticTranslationCall.d.ts +0 -22
  191. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleStaticTranslationCall.js +0 -51
  192. package/dist/react/jsx/utils/stringParsing/processTranslationCall/index.d.ts +0 -18
  193. package/dist/react/jsx/utils/stringParsing/processTranslationCall/index.js +0 -39
  194. package/dist/react/jsx/utils/stringParsing/processTranslationCall/routeTranslationCall.d.ts +0 -24
  195. package/dist/react/jsx/utils/stringParsing/processTranslationCall/routeTranslationCall.js +0 -68
  196. package/dist/react/jsx/utils/stringParsing/types.d.ts +0 -41
  197. package/dist/react/jsx/utils/stringParsing/types.js +0 -1
  198. package/dist/react/jsx/utils/types.d.ts +0 -14
  199. package/dist/react/jsx/utils/types.js +0 -1
  200. package/dist/react/jsx/utils/validateStringFunction.d.ts +0 -7
  201. package/dist/react/jsx/utils/validateStringFunction.js +0 -31
  202. package/dist/react/jsx/wrapJsx.d.ts +0 -51
  203. package/dist/react/jsx/wrapJsx.js +0 -387
  204. package/dist/react/parse/addVitePlugin/index.d.ts +0 -22
  205. package/dist/react/parse/addVitePlugin/index.js +0 -41
  206. package/dist/react/parse/addVitePlugin/installCompiler.d.ts +0 -8
  207. package/dist/react/parse/addVitePlugin/installCompiler.js +0 -22
  208. package/dist/react/parse/addVitePlugin/updateViteConfig.d.ts +0 -19
  209. package/dist/react/parse/addVitePlugin/updateViteConfig.js +0 -120
  210. package/dist/react/parse/addVitePlugin/utils/addCompilerImport.d.ts +0 -9
  211. package/dist/react/parse/addVitePlugin/utils/addCompilerImport.js +0 -34
  212. package/dist/react/parse/addVitePlugin/utils/addPluginInvocation.d.ts +0 -11
  213. package/dist/react/parse/addVitePlugin/utils/addPluginInvocation.js +0 -48
  214. package/dist/react/parse/addVitePlugin/utils/checkCompilerImport.d.ts +0 -15
  215. package/dist/react/parse/addVitePlugin/utils/checkCompilerImport.js +0 -113
  216. package/dist/react/parse/addVitePlugin/utils/checkPluginInvocation.d.ts +0 -12
  217. package/dist/react/parse/addVitePlugin/utils/checkPluginInvocation.js +0 -32
  218. package/dist/react/parse/createDictionaryUpdates.d.ts +0 -3
  219. package/dist/react/parse/createDictionaryUpdates.js +0 -187
  220. package/dist/react/parse/createInlineUpdates.d.ts +0 -13
  221. package/dist/react/parse/createInlineUpdates.js +0 -161
  222. package/dist/react/parse/wrapContent.d.ts +0 -12
  223. package/dist/react/parse/wrapContent.js +0 -162
  224. package/dist/react/utils/flattenDictionary.d.ts +0 -20
  225. package/dist/react/utils/flattenDictionary.js +0 -75
  226. package/dist/react/utils/getEntryAndMetadata.d.ts +0 -5
  227. package/dist/react/utils/getEntryAndMetadata.js +0 -11
  228. package/dist/react/utils/getVariableName.d.ts +0 -25
  229. package/dist/react/utils/getVariableName.js +0 -37
  230. package/dist/setup/agentInstructions.d.ts +0 -24
  231. package/dist/setup/agentInstructions.js +0 -138
  232. package/dist/setup/detectFramework.d.ts +0 -31
  233. package/dist/setup/detectFramework.js +0 -106
  234. package/dist/setup/frameworkUtils.d.ts +0 -3
  235. package/dist/setup/frameworkUtils.js +0 -30
  236. package/dist/setup/instructions/base.md +0 -29
  237. package/dist/setup/instructions/gt-next.md +0 -107
  238. package/dist/setup/instructions/gt-react.md +0 -98
  239. package/dist/setup/userInput.d.ts +0 -4
  240. package/dist/setup/userInput.js +0 -32
  241. package/dist/setup/wizard.d.ts +0 -3
  242. package/dist/setup/wizard.js +0 -147
  243. package/dist/state/recentDownloads.d.ts +0 -12
  244. package/dist/state/recentDownloads.js +0 -18
  245. package/dist/state/translateWarnings.d.ts +0 -10
  246. package/dist/state/translateWarnings.js +0 -13
  247. package/dist/translation/parse.d.ts +0 -17
  248. package/dist/translation/parse.js +0 -77
  249. package/dist/translation/stage.d.ts +0 -3
  250. package/dist/translation/stage.js +0 -44
  251. package/dist/translation/validate.d.ts +0 -14
  252. package/dist/translation/validate.js +0 -100
  253. package/dist/types/branch.d.ts +0 -14
  254. package/dist/types/branch.js +0 -1
  255. package/dist/types/data/json.d.ts +0 -6
  256. package/dist/types/data/json.js +0 -1
  257. package/dist/types/data.d.ts +0 -37
  258. package/dist/types/data.js +0 -1
  259. package/dist/types/files.d.ts +0 -8
  260. package/dist/types/files.js +0 -1
  261. package/dist/types/index.d.ts +0 -243
  262. package/dist/types/index.js +0 -1
  263. package/dist/types/libraries.d.ts +0 -31
  264. package/dist/types/libraries.js +0 -72
  265. package/dist/types/parsing.d.ts +0 -3
  266. package/dist/types/parsing.js +0 -1
  267. package/dist/utils/addExplicitAnchorIds.d.ts +0 -24
  268. package/dist/utils/addExplicitAnchorIds.js +0 -416
  269. package/dist/utils/constants.d.ts +0 -5
  270. package/dist/utils/constants.js +0 -6
  271. package/dist/utils/credentials.d.ts +0 -12
  272. package/dist/utils/credentials.js +0 -120
  273. package/dist/utils/flattenJsonFiles.d.ts +0 -2
  274. package/dist/utils/flattenJsonFiles.js +0 -36
  275. package/dist/utils/gitDiff.d.ts +0 -8
  276. package/dist/utils/gitDiff.js +0 -34
  277. package/dist/utils/gt.d.ts +0 -2
  278. package/dist/utils/gt.js +0 -2
  279. package/dist/utils/hash.d.ts +0 -6
  280. package/dist/utils/hash.js +0 -11
  281. package/dist/utils/headers.d.ts +0 -1
  282. package/dist/utils/headers.js +0 -14
  283. package/dist/utils/installPackage.d.ts +0 -3
  284. package/dist/utils/installPackage.js +0 -77
  285. package/dist/utils/localizeRelativeAssets.d.ts +0 -8
  286. package/dist/utils/localizeRelativeAssets.js +0 -166
  287. package/dist/utils/localizeStaticImports.d.ts +0 -15
  288. package/dist/utils/localizeStaticImports.js +0 -397
  289. package/dist/utils/localizeStaticUrls.d.ts +0 -19
  290. package/dist/utils/localizeStaticUrls.js +0 -450
  291. package/dist/utils/mintlifyTitleFallback.d.ts +0 -6
  292. package/dist/utils/mintlifyTitleFallback.js +0 -80
  293. package/dist/utils/packageInfo.d.ts +0 -3
  294. package/dist/utils/packageInfo.js +0 -17
  295. package/dist/utils/packageJson.d.ts +0 -6
  296. package/dist/utils/packageJson.js +0 -68
  297. package/dist/utils/packageManager.d.ts +0 -28
  298. package/dist/utils/packageManager.js +0 -269
  299. package/dist/utils/parse/needsCJS.d.ts +0 -20
  300. package/dist/utils/parse/needsCJS.js +0 -72
  301. package/dist/utils/persistPostprocessHashes.d.ts +0 -12
  302. package/dist/utils/persistPostprocessHashes.js +0 -39
  303. package/dist/utils/processAnchorIds.d.ts +0 -6
  304. package/dist/utils/processAnchorIds.js +0 -56
  305. package/dist/utils/processOpenApi.d.ts +0 -8
  306. package/dist/utils/processOpenApi.js +0 -651
  307. package/dist/utils/sanitizeFileContent.d.ts +0 -6
  308. package/dist/utils/sanitizeFileContent.js +0 -29
  309. package/dist/utils/sharedStaticAssets.d.ts +0 -9
  310. package/dist/utils/sharedStaticAssets.js +0 -384
  311. package/dist/utils/validateMdx.d.ts +0 -10
  312. package/dist/utils/validateMdx.js +0 -25
  313. package/dist/workflows/download.d.ts +0 -32
  314. package/dist/workflows/download.js +0 -127
  315. package/dist/workflows/enqueue.d.ts +0 -17
  316. package/dist/workflows/enqueue.js +0 -59
  317. package/dist/workflows/setupProject.d.ts +0 -13
  318. package/dist/workflows/setupProject.js +0 -48
  319. package/dist/workflows/stage.d.ts +0 -18
  320. package/dist/workflows/stage.js +0 -59
  321. package/dist/workflows/steps/BranchStep.d.ts +0 -13
  322. package/dist/workflows/steps/BranchStep.js +0 -161
  323. package/dist/workflows/steps/DownloadStep.d.ts +0 -19
  324. package/dist/workflows/steps/DownloadStep.js +0 -131
  325. package/dist/workflows/steps/EnqueueStep.d.ts +0 -15
  326. package/dist/workflows/steps/EnqueueStep.js +0 -33
  327. package/dist/workflows/steps/PollJobsStep.d.ts +0 -31
  328. package/dist/workflows/steps/PollJobsStep.js +0 -288
  329. package/dist/workflows/steps/SetupStep.d.ts +0 -16
  330. package/dist/workflows/steps/SetupStep.js +0 -72
  331. package/dist/workflows/steps/UploadSourcesStep.d.ts +0 -27
  332. package/dist/workflows/steps/UploadSourcesStep.js +0 -131
  333. package/dist/workflows/steps/UploadTranslationsStep.d.ts +0 -22
  334. package/dist/workflows/steps/UploadTranslationsStep.js +0 -71
  335. package/dist/workflows/steps/UserEditDiffsStep.d.ts +0 -11
  336. package/dist/workflows/steps/UserEditDiffsStep.js +0 -30
  337. package/dist/workflows/steps/WorkflowStep.d.ts +0 -4
  338. package/dist/workflows/steps/WorkflowStep.js +0 -2
  339. package/dist/workflows/upload.d.ts +0 -15
  340. package/dist/workflows/upload.js +0 -47
@@ -1,91 +0,0 @@
1
- import traverseModule from '@babel/traverse';
2
- import { GT_TRANSLATION_FUNCS, INLINE_TRANSLATION_HOOK, INLINE_TRANSLATION_HOOK_ASYNC, INLINE_MESSAGE_HOOK, INLINE_MESSAGE_HOOK_ASYNC, MSG_REGISTRATION_FUNCTION, TRANSLATION_COMPONENT, } from '../../jsx/utils/constants.js';
3
- import { extractImportName } from './parseAst.js';
4
- // Handle CommonJS/ESM interop
5
- const traverse = traverseModule.default || traverseModule;
6
- /**
7
- * Constructs tracking for gt related variables of interest
8
- * inlineTranslationPaths: these are string-related translation functions
9
- * translationComponentPaths: these are just <T> components
10
- * importAliases: any other GT related imports
11
- */
12
- export function getPathsAndAliases(ast, pkgs) {
13
- // First pass: collect imports and process translation functions
14
- const importAliases = {};
15
- const inlineTranslationPaths = [];
16
- const translationComponentPaths = [];
17
- traverse(ast, {
18
- ImportDeclaration(path) {
19
- if (pkgs.some((pkg) => path.node.source.value.startsWith(pkg))) {
20
- const importName = extractImportName(path.node, pkgs, GT_TRANSLATION_FUNCS);
21
- for (const name of importName) {
22
- if (name.original === INLINE_TRANSLATION_HOOK ||
23
- name.original === INLINE_TRANSLATION_HOOK_ASYNC ||
24
- name.original === INLINE_MESSAGE_HOOK ||
25
- name.original === INLINE_MESSAGE_HOOK_ASYNC ||
26
- name.original === MSG_REGISTRATION_FUNCTION) {
27
- inlineTranslationPaths.push({
28
- localName: name.local,
29
- path,
30
- originalName: name.original,
31
- });
32
- }
33
- else if (name.original === TRANSLATION_COMPONENT) {
34
- translationComponentPaths.push({
35
- localName: name.local,
36
- path,
37
- originalName: name.original,
38
- });
39
- }
40
- else {
41
- importAliases[name.local] = name.original;
42
- }
43
- }
44
- }
45
- },
46
- VariableDeclarator(path) {
47
- // Check if the init is a require call
48
- if (path.node.init?.type === 'CallExpression' &&
49
- path.node.init.callee.type === 'Identifier' &&
50
- path.node.init.callee.name === 'require') {
51
- // Check if it's requiring our package
52
- const args = path.node.init.arguments;
53
- if (args.length === 1 &&
54
- args[0].type === 'StringLiteral' &&
55
- pkgs.some((pkg) => args[0].value.startsWith(pkg))) {
56
- const parentPath = path.parentPath;
57
- if (parentPath.isVariableDeclaration()) {
58
- const importName = extractImportName(parentPath.node, pkgs, GT_TRANSLATION_FUNCS);
59
- for (const name of importName) {
60
- if (name.original === INLINE_TRANSLATION_HOOK ||
61
- name.original === INLINE_TRANSLATION_HOOK_ASYNC ||
62
- name.original === INLINE_MESSAGE_HOOK ||
63
- name.original === INLINE_MESSAGE_HOOK_ASYNC) {
64
- inlineTranslationPaths.push({
65
- localName: name.local,
66
- path: parentPath,
67
- originalName: name.original,
68
- });
69
- }
70
- else if (name.original === TRANSLATION_COMPONENT) {
71
- translationComponentPaths.push({
72
- localName: name.local,
73
- path: parentPath,
74
- originalName: name.original,
75
- });
76
- }
77
- else {
78
- importAliases[name.local] = name.original;
79
- }
80
- }
81
- }
82
- }
83
- }
84
- },
85
- });
86
- return {
87
- importAliases,
88
- inlineTranslationPaths,
89
- translationComponentPaths,
90
- };
91
- }
@@ -1,7 +0,0 @@
1
- import * as t from '@babel/types';
2
- /**
3
- * Given an expression, return true if it is a number literal
4
- * @param expr - The expression to check
5
- * @returns True if the expression is a number literal, false otherwise
6
- */
7
- export declare function isNumberLiteral(expr: t.Expression): boolean;
@@ -1,13 +0,0 @@
1
- import * as t from '@babel/types';
2
- /**
3
- * Given an expression, return true if it is a number literal
4
- * @param expr - The expression to check
5
- * @returns True if the expression is a number literal, false otherwise
6
- */
7
- export function isNumberLiteral(expr) {
8
- if (t.isUnaryExpression(expr)) {
9
- return (isNumberLiteral(expr.argument) &&
10
- (expr.operator === '-' || expr.operator === '+'));
11
- }
12
- return t.isNumericLiteral(expr);
13
- }
@@ -1,9 +0,0 @@
1
- import { JsxChildren } from 'generaltranslation/types';
2
- import { MultipliedTreeNode } from './types.js';
3
- /**
4
- * Add GT Identifier and minify the tree (recreates addGTIdentifier and writeChildrenAsObjects)
5
- * @param tree - The tree to add GT identifiers to
6
- * @param startingIndex - The starting index for GT IDs
7
- * @returns The tree with GT identifiers added
8
- */
9
- export default function addGTIdentifierToSyntaxTree(tree: MultipliedTreeNode, startingIndex?: number): JsxChildren;
@@ -1,135 +0,0 @@
1
- import { HTML_CONTENT_PROPS, } from 'generaltranslation/types';
2
- import { defaultVariableNames, getVariableName, minifyVariableType, } from '../../../utils/getVariableName.js';
3
- import { isAcceptedPluralForm } from 'generaltranslation/internal';
4
- /**
5
- * Construct the data-_gt prop
6
- * @param type - The type of the element
7
- * @param props - The props of the element
8
- * @param id - The id of the element
9
- * @returns The data-_gt prop
10
- */
11
- function constructGTProp(type, props, id) {
12
- // Add translatable HTML content props
13
- const generaltranslation = Object.entries(HTML_CONTENT_PROPS).reduce((acc, [minifiedName, fullName]) => {
14
- if (props[fullName]) {
15
- acc[minifiedName] = props[fullName];
16
- }
17
- return acc;
18
- }, {});
19
- // Plural
20
- if (type === 'Plural') {
21
- const pluralBranches = Object.entries(props).reduce((acc, [branchName, branch]) => {
22
- if (isAcceptedPluralForm(branchName)) {
23
- acc[branchName] = addGTIdentifierToSyntaxTree(branch, id);
24
- }
25
- return acc;
26
- }, {});
27
- // Add plural branches to the generaltranslation
28
- if (Object.keys(pluralBranches).length) {
29
- generaltranslation.t = 'p';
30
- generaltranslation.b = pluralBranches;
31
- }
32
- // Branch
33
- }
34
- else if (type === 'Branch') {
35
- // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars
36
- const { children, branch, ...branches } = props;
37
- const resultBranches = Object.entries(branches).reduce((acc, [branchName, branch]) => {
38
- acc[branchName] = addGTIdentifierToSyntaxTree(branch, id);
39
- return acc;
40
- }, {});
41
- // Add branches to the generaltranslation
42
- if (Object.keys(resultBranches).length) {
43
- generaltranslation.t = 'b';
44
- generaltranslation.b = resultBranches;
45
- }
46
- }
47
- return Object.keys(generaltranslation).length
48
- ? generaltranslation
49
- : undefined;
50
- }
51
- /**
52
- * Add GT Identifier and minify the tree (recreates addGTIdentifier and writeChildrenAsObjects)
53
- * @param tree - The tree to add GT identifiers to
54
- * @param startingIndex - The starting index for GT IDs
55
- * @returns The tree with GT identifiers added
56
- */
57
- export default function addGTIdentifierToSyntaxTree(tree, startingIndex = 0) {
58
- // Edge case: boolean or null, just return the tree
59
- if (typeof tree === 'boolean' || tree === null) {
60
- return tree;
61
- }
62
- // Object to keep track of the current index for GT IDs
63
- const indexObject = { index: startingIndex };
64
- /**
65
- * Handle a single child
66
- * @param child - The child to handle
67
- * @returns The handled child
68
- */
69
- const handleSingleChild = (child) => {
70
- // Handle JSX elements
71
- if (child && typeof child === 'object') {
72
- let { type } = child;
73
- const { props } = child;
74
- indexObject.index += 1;
75
- // Handle fragments
76
- if (type === 'React.Fragment') {
77
- type = '';
78
- }
79
- // Variables
80
- if (Object.keys(defaultVariableNames).includes(type)) {
81
- const variableType = minifyVariableType(type);
82
- const variableName = getVariableName(props, type, indexObject.index);
83
- return {
84
- i: indexObject.index,
85
- k: variableName,
86
- v: variableType,
87
- };
88
- }
89
- // Construct the data-_gt prop
90
- const generaltranslation = constructGTProp(type, (props || {}), indexObject.index);
91
- // Save current index and recurse
92
- const currentIndex = indexObject.index;
93
- const children = handleChildren(props?.children === undefined ? null : props?.children);
94
- // Enforce boolean rendering behavior
95
- // <T>{true}</T> -> true <- this is a boolean value, not a string
96
- // <T>{false}</T> -> nothing
97
- let includeChildren = true;
98
- if (typeof children === 'boolean') {
99
- // So, technically JsxChildren do include boolean values, but the type is incorrect
100
- includeChildren = children !== false;
101
- }
102
- // Return the result
103
- return {
104
- t: type || `C${currentIndex}`,
105
- i: currentIndex,
106
- ...(includeChildren && { c: children }),
107
- ...(generaltranslation && { d: generaltranslation }),
108
- };
109
- }
110
- if (typeof child === 'number') {
111
- return child.toString();
112
- }
113
- return child;
114
- };
115
- /**
116
- * Handle children
117
- * @param children - The children to handle
118
- * @returns The handled children
119
- */
120
- const handleChildren = (children) => {
121
- return Array.isArray(children)
122
- ? children.map(handleSingleChild).filter((child) => {
123
- // Enforce boolean rendering behavior
124
- // <T>{true}{false}{null}</T> -> []
125
- if (typeof child === 'boolean' ||
126
- child === null ||
127
- child === undefined) {
128
- return false;
129
- }
130
- return true;
131
- })
132
- : handleSingleChild(children);
133
- };
134
- return handleChildren(tree);
135
- }
@@ -1,6 +0,0 @@
1
- import { JsxTree, MultiplicationNode, WhitespaceJsxTreeResult, WhitespaceMultiplicationNode } from './types.js';
2
- export declare function trimJsxStringChild(child: string): string;
3
- export declare function handleChildrenWhitespace(currentTree: MultiplicationNode['branches'], parentNodeType: 'multiplication'): (WhitespaceJsxTreeResult | WhitespaceMultiplicationNode)[];
4
- export declare function handleChildrenWhitespace(currentTree: MultiplicationNode['branches'], parentNodeType?: 'element' | 'expression' | undefined): WhitespaceJsxTreeResult | WhitespaceMultiplicationNode | (WhitespaceJsxTreeResult | WhitespaceMultiplicationNode)[];
5
- export declare function handleChildrenWhitespace(currentTree: MultiplicationNode | JsxTree, parentNodeType?: 'multiplication' | 'element' | 'expression' | undefined): null | WhitespaceJsxTreeResult | WhitespaceMultiplicationNode;
6
- export declare function handleChildrenWhitespace(currentTree: JsxTree | JsxTree[]): null | WhitespaceJsxTreeResult | WhitespaceJsxTreeResult[];
@@ -1,197 +0,0 @@
1
- import { isAcceptedPluralForm } from 'generaltranslation/internal';
2
- import { isElementNode, isExpressionNode, isMultiplicationNode, } from './types.js';
3
- // JSX whitespace characters (space, tab, newline, carriage return)
4
- // Does NOT include non-breaking space (U+00A0) which should be preserved
5
- const isJsxWhitespace = (char) => {
6
- return char === ' ' || char === '\t' || char === '\n' || char === '\r';
7
- };
8
- const trimJsxWhitespace = (str, side = 'both') => {
9
- let start = 0;
10
- let end = str.length;
11
- if (side === 'start' || side === 'both') {
12
- while (start < end && isJsxWhitespace(str[start])) {
13
- start++;
14
- }
15
- }
16
- if (side === 'end' || side === 'both') {
17
- while (end > start && isJsxWhitespace(str[end - 1])) {
18
- end--;
19
- }
20
- }
21
- return str.slice(start, end);
22
- };
23
- const hasNonJsxWhitespace = (str) => {
24
- for (const char of str) {
25
- if (!isJsxWhitespace(char))
26
- return true;
27
- }
28
- return false;
29
- };
30
- export function trimJsxStringChild(child) {
31
- if (!child.includes('\n') && !child.includes('\r')) {
32
- return child;
33
- }
34
- // Normalize line endings to \n for consistency across platforms
35
- let result = child.replace(/\r\n|\r/g, '\n');
36
- // Collapse multiple spaces/tabs into a single space (but not nbsp)
37
- result = result.replace(/[\t ]+/g, ' ');
38
- let newResult = '';
39
- let newline = false;
40
- for (const char of result) {
41
- if (char === '\n') {
42
- if (hasNonJsxWhitespace(newResult))
43
- newResult += ' ';
44
- else
45
- newResult = '';
46
- newline = true;
47
- continue;
48
- }
49
- if (!newline) {
50
- newResult += char;
51
- continue;
52
- }
53
- if (isJsxWhitespace(char))
54
- continue;
55
- newResult += char;
56
- newline = false;
57
- }
58
- if (newline)
59
- newResult = trimJsxWhitespace(newResult, 'end');
60
- result = newResult;
61
- // Collapse multiple spaces/tabs into a single space (but not nbsp)
62
- result = result.replace(/[\t ]+/g, ' ');
63
- return result;
64
- }
65
- /**
66
- * Handles whitespace in children of a JSX element, and strips elements
67
- * @param currentTree - The current tree to handle
68
- * @returns The processed tree with whitespace handled
69
- *
70
- * For unresolved functions, we just make it so that Static has no children
71
- *
72
- * The typing was so much worse before this. Don't come for me. All I did was enforce the typing.
73
- */
74
- export function handleChildrenWhitespace(currentTree, parentNodeType = undefined) {
75
- if (Array.isArray(currentTree)) {
76
- const childrenTypes = currentTree.map((child) => {
77
- if (typeof child === 'string')
78
- return 'text';
79
- if (isExpressionNode(child))
80
- return 'expression';
81
- if (isElementNode(child))
82
- return 'element';
83
- if (isMultiplicationNode(child))
84
- return 'multiplication';
85
- return 'other';
86
- });
87
- const newChildren = [];
88
- currentTree.forEach((child, index) => {
89
- switch (childrenTypes[index]) {
90
- case 'text':
91
- const textNode = child;
92
- if (parentNodeType === 'multiplication') {
93
- // This should be treated like a new tree (no parent here b/c its a new tree)
94
- const result = handleChildrenWhitespace(textNode);
95
- if (result)
96
- newChildren.push(result);
97
- }
98
- else {
99
- const string = trimJsxStringChild(textNode);
100
- if (string)
101
- newChildren.push(string);
102
- }
103
- break;
104
- case 'expression':
105
- // Strip expressions
106
- const result = child.result;
107
- if (isMultiplicationNode(result)) {
108
- newChildren.push(handleChildrenWhitespace(result));
109
- }
110
- else if (typeof result === 'string') {
111
- newChildren.push(result);
112
- }
113
- else {
114
- // other case
115
- newChildren.push(result);
116
- }
117
- break;
118
- case 'element':
119
- const newElement = handleChildrenWhitespace(child);
120
- newChildren.push(newElement);
121
- break;
122
- case 'multiplication':
123
- newChildren.push({
124
- nodeType: 'multiplication',
125
- branches: handleChildrenWhitespace(child.branches, 'multiplication'),
126
- });
127
- break;
128
- case 'other':
129
- // Return number or boolean or null
130
- newChildren.push(child);
131
- break;
132
- }
133
- });
134
- if (parentNodeType === 'multiplication') {
135
- // Return the branches as an array
136
- return newChildren;
137
- }
138
- return newChildren.length === 1 ? newChildren[0] : newChildren;
139
- }
140
- else if (isElementNode(currentTree)) {
141
- // Process all props recursively
142
- // What if there is a different component sharing the same name?
143
- const elementIsPlural = currentTree.type === 'Plural';
144
- const elementIsBranch = currentTree.type === 'Branch';
145
- const processedProps = !currentTree.props
146
- ? undefined
147
- : Object.fromEntries(Object.entries(currentTree.props).map(([key, value]) => {
148
- let shouldProcess = false;
149
- // Process children
150
- if (key === 'children')
151
- shouldProcess = true;
152
- // Process plural children
153
- if (elementIsPlural && isAcceptedPluralForm(key))
154
- shouldProcess = true;
155
- // Process branch children
156
- if (elementIsBranch && key !== 'branch')
157
- shouldProcess = true;
158
- // Do not process raw strings
159
- if (typeof value === 'string' && key !== 'children')
160
- shouldProcess = false;
161
- // Process props
162
- if (!shouldProcess) {
163
- return [key, value];
164
- }
165
- return [key, handleChildrenWhitespace(value)];
166
- }));
167
- return {
168
- nodeType: 'element',
169
- type: currentTree.type,
170
- ...(processedProps ? { props: processedProps } : {}),
171
- };
172
- }
173
- else if (isExpressionNode(currentTree)) {
174
- // Strip expression
175
- const result = currentTree.result;
176
- if (isMultiplicationNode(result)) {
177
- return handleChildrenWhitespace(result);
178
- }
179
- else if (typeof result === 'string') {
180
- return result;
181
- }
182
- else {
183
- return result;
184
- }
185
- }
186
- else if (isMultiplicationNode(currentTree)) {
187
- return {
188
- nodeType: 'multiplication',
189
- branches: handleChildrenWhitespace(currentTree.branches, 'multiplication'),
190
- };
191
- }
192
- else if (typeof currentTree === 'string') {
193
- return trimJsxStringChild(currentTree);
194
- }
195
- // null or number or boolean
196
- return currentTree;
197
- }
@@ -1,13 +0,0 @@
1
- import { WhitespaceJsxTreeResult, WhitespaceMultiplicationNode } from '../types.js';
2
- export type MultiplicationNodeResult = {
3
- parent: any | undefined;
4
- key: string | undefined;
5
- node: WhitespaceMultiplicationNode;
6
- };
7
- /**
8
- * Finds the immediate multiplication node from the given root (eg no nested multiplication nodes)
9
- * TODO: I am sure there is some optimization to be done here
10
- *
11
- * Maybe there is an optimization here with caching used paths btwn calls
12
- */
13
- export declare function findMultiplicationNode(root: WhitespaceJsxTreeResult | WhitespaceMultiplicationNode | (WhitespaceJsxTreeResult | WhitespaceMultiplicationNode)[]): MultiplicationNodeResult | undefined;
@@ -1,42 +0,0 @@
1
- import { isWhitespaceMultiplicationNode, isWhitespaceJsxTree, } from '../types.js';
2
- /**
3
- * Finds the immediate multiplication node from the given root (eg no nested multiplication nodes)
4
- * TODO: I am sure there is some optimization to be done here
5
- *
6
- * Maybe there is an optimization here with caching used paths btwn calls
7
- */
8
- export function findMultiplicationNode(root) {
9
- // Entry point
10
- return handleChildren(root, undefined, undefined);
11
- // Helper function to handle children
12
- function handleChildren(curr, parent, key) {
13
- if (Array.isArray(curr)) {
14
- for (const [index, child] of Object.entries(curr)) {
15
- const result = handleChild(child, curr, index);
16
- if (result)
17
- return result;
18
- }
19
- return undefined;
20
- }
21
- else {
22
- return handleChild(curr, parent, key);
23
- }
24
- }
25
- // Helper function to handle a single child
26
- function handleChild(curr, parent, key) {
27
- if (isWhitespaceMultiplicationNode(curr)) {
28
- return { parent, key, node: curr };
29
- }
30
- else if (isWhitespaceJsxTree(curr)) {
31
- if (curr.props?.children) {
32
- return handleChildren(curr.props.children, curr.props, 'children');
33
- }
34
- else {
35
- return undefined;
36
- }
37
- }
38
- else {
39
- return undefined;
40
- }
41
- }
42
- }
@@ -1,5 +0,0 @@
1
- import { MultipliedTreeNode, WhitespaceJsxTreeResult } from '../types.js';
2
- /**
3
- * Given a JSX tree, multiply the static function nodes
4
- */
5
- export declare function multiplyJsxTree(tree: WhitespaceJsxTreeResult | WhitespaceJsxTreeResult[]): MultipliedTreeNode[];
@@ -1,69 +0,0 @@
1
- import { findMultiplicationNode } from './findMultiplicationNode.js';
2
- /**
3
- * Given a JSX tree, multiply the static function nodes
4
- */
5
- export function multiplyJsxTree(tree) {
6
- if (!Array.isArray(tree)) {
7
- return multiplyBranches([tree]);
8
- }
9
- else {
10
- // when tree is an array, this is just sibbling elements within the <T>, so we need to treat them as a single branch
11
- const wrapperElement = {
12
- nodeType: 'element',
13
- type: 'T',
14
- props: {
15
- children: tree,
16
- },
17
- };
18
- // Multiply the wrapper element
19
- const multipliedBranches = multiplyBranches([
20
- wrapperElement,
21
- ]);
22
- // Unwrap the branches
23
- return multipliedBranches.map((branch) => branch.props.children);
24
- }
25
- }
26
- /**
27
- * Given a list of branches, multiply recursively (DFS)
28
- * @param branches
29
- */
30
- function multiplyBranches(branches) {
31
- // Queue of branches to process
32
- const branchQueue = branches;
33
- // Finalized branches
34
- const newBranches = [];
35
- // Process branches until exhausted
36
- while (branchQueue.length) {
37
- // Pop the next branch
38
- const branch = branchQueue.shift();
39
- // Get closest multiplication node
40
- const currentNode = findMultiplicationNode(branch);
41
- // No multiplication nodes, just add the branch to the final list
42
- if (!currentNode) {
43
- newBranches.push(branch);
44
- continue;
45
- }
46
- const { node, parent, key } = currentNode;
47
- // Recursive call
48
- const subBranches = multiplyBranches(node.branches);
49
- // For every sub branch, create a new cloned branch
50
- for (const subBranch of subBranches) {
51
- // Placeholder for the new branch
52
- let newBranch = undefined;
53
- // Create a clone of the original with the sub branch swapped in
54
- if (parent === undefined || key === undefined) {
55
- // This means the subBranch directly replaces the branch itself
56
- newBranches.push(subBranch);
57
- }
58
- else {
59
- // Replace the multiplication node with the sub branch
60
- parent[key] = subBranch;
61
- // eslint-disable-next-line no-undef
62
- newBranch = structuredClone(branch);
63
- // Add the new branch to the list
64
- branchQueue.push(newBranch);
65
- }
66
- }
67
- }
68
- return newBranches;
69
- }
@@ -1,33 +0,0 @@
1
- import { Updates } from '../../../../types/index.js';
2
- import { ParsingConfigOptions } from '../../../../types/parsing.js';
3
- import traverseModule from '@babel/traverse';
4
- import { GTLibrary } from '../../../../types/libraries.js';
5
- /**
6
- * Immutable configuration options for parsing.
7
- */
8
- type ConfigOptions = {
9
- parsingOptions: ParsingConfigOptions;
10
- importAliases: Record<string, string>;
11
- pkgs: GTLibrary[];
12
- file: string;
13
- };
14
- /**
15
- * Collectors for errors, warnings, and unwrapped expressions.
16
- */
17
- type OutputCollector = {
18
- errors: string[];
19
- warnings: Set<string>;
20
- unwrappedExpressions: string[];
21
- };
22
- /**
23
- * Entry point for JSX parsing
24
- */
25
- export declare function parseTranslationComponent({ originalName, localName, path, updates, config, output, }: {
26
- originalName: string;
27
- localName: string;
28
- path: traverseModule.NodePath<traverseModule.Node>;
29
- updates: Updates;
30
- config: ConfigOptions;
31
- output: OutputCollector;
32
- }): void;
33
- export {};