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
@@ -1,17 +0,0 @@
1
- import { Settings, TranslateFlags } from '../types/index.js';
2
- import { EnqueueFilesResult, FileToUpload } from 'generaltranslation/types';
3
- /**
4
- * Enqueues translations for a given set of files
5
- * - Only enqueues uploaded files
6
- * - Don't have to worry about double enqueuing files because dedupe on API side
7
- *
8
- * @param {FileTranslationData} fileVersionData - The file version data
9
- * @param {TranslateFlags} options - The options for the enqueue operation
10
- * @param {Settings} settings - The settings for the enqueue operation
11
- * @returns {Promise<EnqueueFilesResult>} The enqueue result
12
- */
13
- export declare function runEnqueueWorkflow({ files, options, settings, }: {
14
- files: FileToUpload[];
15
- options: TranslateFlags;
16
- settings: Settings;
17
- }): Promise<EnqueueFilesResult>;
@@ -1,59 +0,0 @@
1
- import { logCollectedFiles, logErrorAndExit } from '../console/logging.js';
2
- import { gt } from '../utils/gt.js';
3
- import { EnqueueStep } from './steps/EnqueueStep.js';
4
- import { BranchStep } from './steps/BranchStep.js';
5
- import { logger } from '../console/logger.js';
6
- /**
7
- * Enqueues translations for a given set of files
8
- * - Only enqueues uploaded files
9
- * - Don't have to worry about double enqueuing files because dedupe on API side
10
- *
11
- * @param {FileTranslationData} fileVersionData - The file version data
12
- * @param {TranslateFlags} options - The options for the enqueue operation
13
- * @param {Settings} settings - The settings for the enqueue operation
14
- * @returns {Promise<EnqueueFilesResult>} The enqueue result
15
- */
16
- export async function runEnqueueWorkflow({ files, options, settings, }) {
17
- try {
18
- // Log files to be enqueued
19
- logCollectedFiles(files);
20
- logger.debug('Files: ' + JSON.stringify(files, null, 2));
21
- // Create workflow with steps
22
- const branchStep = new BranchStep(gt, settings);
23
- // const queryFileDataStep = new QueryFileDataStep(gt);
24
- const enqueueStep = new EnqueueStep(gt, settings, options.force);
25
- // (1) run the branch step
26
- const branchData = await branchStep.run();
27
- await branchStep.wait();
28
- if (!branchData) {
29
- return logErrorAndExit('Failed to resolve git branch information.');
30
- }
31
- logger.debug('Branch data: ' + JSON.stringify(branchData, null, 2));
32
- // (2) Enqueue the files
33
- const enqueueResult = await enqueueStep.run(files.map((files) => ({
34
- branchId: branchData.currentBranch.id,
35
- ...files,
36
- })));
37
- await enqueueStep.wait();
38
- logger.debug('Enqueue result: ' + JSON.stringify(enqueueResult, null, 2));
39
- logEnqueueResult(enqueueResult, files);
40
- return enqueueResult;
41
- }
42
- catch (error) {
43
- return logErrorAndExit('Failed to enqueue translations. ' + error);
44
- }
45
- }
46
- // ----- Helper functions ----- //
47
- /**
48
- * Logs the enqueue result
49
- * @param enqueueResult - The enqueue result
50
- * @returns void
51
- */
52
- function logEnqueueResult(enqueueResult, files) {
53
- if (Object.keys(enqueueResult.jobData).length === 0) {
54
- logger.success(`All ${files.length} files already translated. 0 files enqueued.`);
55
- }
56
- else {
57
- logger.success(enqueueResult.message);
58
- }
59
- }
@@ -1,13 +0,0 @@
1
- import { Settings, TranslateFlags } from '../types/index.js';
2
- import { FileToUpload } from 'generaltranslation/types';
3
- import { BranchData } from '../types/branch.js';
4
- /**
5
- * Sets up a project by uploading files running the setup step
6
- * @param files - Array of file objects to upload
7
- * @param options - The options for the API call
8
- * @param settings - Settings configuration
9
- * @returns The branch data
10
- */
11
- export declare function runSetupProjectWorkflow(files: FileToUpload[], options: TranslateFlags, settings: Settings): Promise<{
12
- branchData: BranchData;
13
- }>;
@@ -1,48 +0,0 @@
1
- import { logErrorAndExit } from '../console/logging.js';
2
- import { gt } from '../utils/gt.js';
3
- import { UploadSourcesStep } from './steps/UploadSourcesStep.js';
4
- import { SetupStep } from './steps/SetupStep.js';
5
- import { BranchStep } from './steps/BranchStep.js';
6
- import { logCollectedFiles } from '../console/logging.js';
7
- /**
8
- * Helper: Calculate timeout with validation
9
- */
10
- function calculateTimeout(timeout) {
11
- const value = timeout !== undefined ? Number(timeout) : 600;
12
- return (Number.isFinite(value) ? value : 600) * 1000;
13
- }
14
- /**
15
- * Sets up a project by uploading files running the setup step
16
- * @param files - Array of file objects to upload
17
- * @param options - The options for the API call
18
- * @param settings - Settings configuration
19
- * @returns The branch data
20
- */
21
- export async function runSetupProjectWorkflow(files, options, settings) {
22
- try {
23
- // Log files to be translated
24
- logCollectedFiles(files);
25
- // Calculate timeout for setup step
26
- const timeoutMs = calculateTimeout(options.timeout);
27
- // Create workflow with steps
28
- const branchStep = new BranchStep(gt, settings);
29
- const uploadStep = new UploadSourcesStep(gt, settings);
30
- const setupStep = new SetupStep(gt, settings, timeoutMs);
31
- // first run the branch step
32
- const branchData = await branchStep.run();
33
- await branchStep.wait();
34
- if (!branchData) {
35
- return logErrorAndExit('Failed to resolve git branch information.');
36
- }
37
- // then run the upload step
38
- const uploadedFiles = await uploadStep.run({ files, branchData });
39
- await uploadStep.wait();
40
- // then run the setup step
41
- await setupStep.run(uploadedFiles, options.force ?? false);
42
- await setupStep.wait();
43
- return { branchData };
44
- }
45
- catch (error) {
46
- return logErrorAndExit('Failed to run project setup. ' + error);
47
- }
48
- }
@@ -1,18 +0,0 @@
1
- import { Settings, TranslateFlags } from '../types/index.js';
2
- import { EnqueueFilesResult, FileToUpload } from 'generaltranslation/types';
3
- import { BranchData } from '../types/branch.js';
4
- /**
5
- * Sends multiple files for translation to the API using a workflow pattern
6
- * @param files - Array of file objects to translate
7
- * @param options - The options for the API call
8
- * @param settings - Settings configuration
9
- * @returns The translated content or version ID
10
- */
11
- export declare function runStageFilesWorkflow({ files, options, settings, }: {
12
- files: FileToUpload[];
13
- options: TranslateFlags;
14
- settings: Settings;
15
- }): Promise<{
16
- branchData: BranchData;
17
- enqueueResult: EnqueueFilesResult;
18
- }>;
@@ -1,59 +0,0 @@
1
- import { logCollectedFiles, logErrorAndExit } from '../console/logging.js';
2
- import { gt } from '../utils/gt.js';
3
- import { UploadSourcesStep } from './steps/UploadSourcesStep.js';
4
- import { SetupStep } from './steps/SetupStep.js';
5
- import { EnqueueStep } from './steps/EnqueueStep.js';
6
- import { BranchStep } from './steps/BranchStep.js';
7
- import { UserEditDiffsStep } from './steps/UserEditDiffsStep.js';
8
- /**
9
- * Helper: Calculate timeout with validation
10
- */
11
- function calculateTimeout(timeout) {
12
- const value = timeout !== undefined ? Number(timeout) : 600;
13
- return (Number.isFinite(value) ? value : 600) * 1000;
14
- }
15
- /**
16
- * Sends multiple files for translation to the API using a workflow pattern
17
- * @param files - Array of file objects to translate
18
- * @param options - The options for the API call
19
- * @param settings - Settings configuration
20
- * @returns The translated content or version ID
21
- */
22
- export async function runStageFilesWorkflow({ files, options, settings, }) {
23
- try {
24
- // Log files to be translated
25
- logCollectedFiles(files);
26
- // Calculate timeout for setup step
27
- const timeoutMs = calculateTimeout(options.timeout);
28
- // Create workflow with steps
29
- const branchStep = new BranchStep(gt, settings);
30
- const uploadStep = new UploadSourcesStep(gt, settings);
31
- const userEditDiffsStep = new UserEditDiffsStep(settings);
32
- const setupStep = new SetupStep(gt, settings, timeoutMs);
33
- const enqueueStep = new EnqueueStep(gt, settings, options.force);
34
- // first run the branch step
35
- const branchData = await branchStep.run();
36
- await branchStep.wait();
37
- if (!branchData) {
38
- return logErrorAndExit('Failed to resolve git branch information.');
39
- }
40
- // then run the upload step
41
- const uploadedFiles = await uploadStep.run({ files, branchData });
42
- await uploadStep.wait();
43
- // optionally run the user edit diffs step
44
- if (options?.saveLocal) {
45
- await userEditDiffsStep.run(uploadedFiles);
46
- await userEditDiffsStep.wait();
47
- }
48
- // then run the setup step
49
- await setupStep.run(uploadedFiles);
50
- await setupStep.wait();
51
- // then run the enqueue step
52
- const enqueueResult = await enqueueStep.run(uploadedFiles);
53
- await enqueueStep.wait();
54
- return { branchData, enqueueResult };
55
- }
56
- catch (error) {
57
- return logErrorAndExit('Failed to send files for translation. ' + error);
58
- }
59
- }
@@ -1,13 +0,0 @@
1
- import { WorkflowStep } from './WorkflowStep.js';
2
- import { GT } from 'generaltranslation';
3
- import { Settings } from '../../types/index.js';
4
- import { BranchData } from '../../types/branch.js';
5
- export declare class BranchStep extends WorkflowStep<null, BranchData | null> {
6
- private spinner;
7
- private branchData;
8
- private settings;
9
- private gt;
10
- constructor(gt: GT, settings: Settings);
11
- run(): Promise<BranchData | null>;
12
- wait(): Promise<void>;
13
- }
@@ -1,161 +0,0 @@
1
- import { WorkflowStep } from './WorkflowStep.js';
2
- import { logErrorAndExit } from '../../console/logging.js';
3
- import { logger } from '../../console/logger.js';
4
- import chalk from 'chalk';
5
- import { getCurrentBranch, getIncomingBranches, getCheckedOutBranches, } from '../../git/branches.js';
6
- import { ApiError } from 'generaltranslation/errors';
7
- // Step 1: Resolve the current branch id & update API with branch information
8
- export class BranchStep extends WorkflowStep {
9
- spinner = logger.createSpinner('dots');
10
- branchData;
11
- settings;
12
- gt;
13
- constructor(gt, settings) {
14
- super();
15
- this.gt = gt;
16
- this.settings = settings;
17
- this.branchData = {
18
- currentBranch: {
19
- id: '',
20
- name: '',
21
- },
22
- incomingBranch: null,
23
- checkedOutBranch: null,
24
- };
25
- }
26
- async run() {
27
- this.spinner.start(`Resolving branch information...`);
28
- // First get some info about the branches we're working with
29
- let current = null;
30
- let incoming = [];
31
- let checkedOut = [];
32
- let useDefaultBranch = true;
33
- let detectedDefaultBranchName = 'main';
34
- let autoDetectFailed = !this.settings.branchOptions.autoDetectBranches;
35
- if (this.settings.branchOptions.enabled &&
36
- this.settings.branchOptions.autoDetectBranches) {
37
- const [currentResult, incomingResult, checkedOutResult] = await Promise.all([
38
- getCurrentBranch(this.settings.branchOptions.remoteName),
39
- getIncomingBranches(this.settings.branchOptions.remoteName),
40
- getCheckedOutBranches(this.settings.branchOptions.remoteName),
41
- ]);
42
- current = currentResult;
43
- incoming = incomingResult;
44
- checkedOut = checkedOutResult;
45
- if (currentResult) {
46
- detectedDefaultBranchName = currentResult.defaultBranchName;
47
- }
48
- // Try env var detection if git commands failed (e.g. Vercel)
49
- if (!currentResult) {
50
- autoDetectFailed = true;
51
- const vercelBranch = process.env.VERCEL_GIT_COMMIT_REF;
52
- if (vercelBranch) {
53
- current = { currentBranchName: vercelBranch, defaultBranch: false };
54
- }
55
- }
56
- // If detection succeeded, use the detected branch; otherwise fall back to default
57
- if (current) {
58
- useDefaultBranch = false;
59
- }
60
- }
61
- if (this.settings.branchOptions.enabled &&
62
- this.settings.branchOptions.currentBranch) {
63
- current = {
64
- currentBranchName: this.settings.branchOptions.currentBranch,
65
- defaultBranch: current?.defaultBranch ?? false, // we have no way of knowing if this is the default branch without using the auto-detection logic
66
- };
67
- useDefaultBranch = false;
68
- }
69
- const branchData = await this.gt.queryBranchData({
70
- branchNames: [
71
- ...(current ? [current.currentBranchName] : []),
72
- ...incoming,
73
- ...checkedOut,
74
- ],
75
- });
76
- if (useDefaultBranch) {
77
- if (autoDetectFailed) {
78
- logger.warn('Branch auto-detection failed. Falling back to the default branch. Use --branch to specify a branch manually.');
79
- }
80
- if (!branchData.defaultBranch) {
81
- const createBranchResult = await this.gt.createBranch({
82
- branchName: detectedDefaultBranchName,
83
- defaultBranch: true,
84
- });
85
- this.branchData.currentBranch = createBranchResult.branch;
86
- }
87
- else {
88
- this.branchData.currentBranch = branchData.defaultBranch;
89
- }
90
- }
91
- else {
92
- if (!current) {
93
- return logErrorAndExit('Failed to determine the current branch. Please specify a custom branch or enable automatic branch detection.');
94
- }
95
- const currentBranch = branchData.branches.find((b) => b.name === current.currentBranchName);
96
- if (!currentBranch) {
97
- try {
98
- const createBranchResult = await this.gt.createBranch({
99
- branchName: current.currentBranchName,
100
- defaultBranch: current.defaultBranch,
101
- });
102
- this.branchData.currentBranch = createBranchResult.branch;
103
- }
104
- catch (error) {
105
- if (error instanceof ApiError && error.code === 403) {
106
- logger.warn('To enable translation branching, please upgrade your plan. Falling back to default branch.');
107
- // retry with default branch
108
- try {
109
- const createBranchResult = await this.gt.createBranch({
110
- branchName: detectedDefaultBranchName,
111
- defaultBranch: true,
112
- });
113
- this.branchData.currentBranch = createBranchResult.branch;
114
- }
115
- catch { }
116
- }
117
- }
118
- }
119
- else {
120
- this.branchData.currentBranch = currentBranch;
121
- }
122
- }
123
- if (this.branchData.currentBranch.id === '') {
124
- return logErrorAndExit('Something went wrong while resolving branch information. Please try again.');
125
- }
126
- // Now set the incoming and checked out branches (first one that exists)
127
- this.branchData.incomingBranch =
128
- incoming
129
- .map((b) => {
130
- const branch = branchData.branches.find((bb) => bb.name === b);
131
- if (branch) {
132
- return branch;
133
- }
134
- else {
135
- return null;
136
- }
137
- })
138
- .filter((b) => b !== null)[0] ?? null;
139
- this.branchData.checkedOutBranch =
140
- checkedOut
141
- .map((b) => {
142
- const branch = branchData.branches.find((bb) => bb.name === b);
143
- if (branch) {
144
- return branch;
145
- }
146
- else {
147
- return null;
148
- }
149
- })
150
- .filter((b) => b !== null)[0] ?? null;
151
- // ALWAYS fallback to default branch for checked out branch (to avoid retranslation)
152
- if (!this.branchData.checkedOutBranch && branchData.defaultBranch) {
153
- this.branchData.checkedOutBranch = branchData.defaultBranch;
154
- }
155
- this.spinner.stop(chalk.green('Branch information resolved successfully'));
156
- return this.branchData;
157
- }
158
- async wait() {
159
- return;
160
- }
161
- }
@@ -1,19 +0,0 @@
1
- import { WorkflowStep } from './WorkflowStep.js';
2
- import { GT } from 'generaltranslation';
3
- import { Settings } from '../../types/index.js';
4
- import { FileStatusTracker } from './PollJobsStep.js';
5
- export type DownloadTranslationsInput = {
6
- fileTracker: FileStatusTracker;
7
- resolveOutputPath: (sourcePath: string, locale: string) => string | null;
8
- forceDownload?: boolean;
9
- };
10
- export declare class DownloadTranslationsStep extends WorkflowStep<DownloadTranslationsInput, boolean> {
11
- private gt;
12
- private settings;
13
- private spinner;
14
- constructor(gt: GT, settings: Settings);
15
- run({ fileTracker, resolveOutputPath, forceDownload, }: DownloadTranslationsInput): Promise<boolean>;
16
- private downloadFiles;
17
- private downloadFilesWithRetry;
18
- wait(): Promise<void>;
19
- }
@@ -1,131 +0,0 @@
1
- import chalk from 'chalk';
2
- import { WorkflowStep } from './WorkflowStep.js';
3
- import { logger } from '../../console/logger.js';
4
- import { downloadFileBatch, } from '../../api/downloadFileBatch.js';
5
- import { recordWarning } from '../../state/translateWarnings.js';
6
- export class DownloadTranslationsStep extends WorkflowStep {
7
- gt;
8
- settings;
9
- spinner = null;
10
- constructor(gt, settings) {
11
- super();
12
- this.gt = gt;
13
- this.settings = settings;
14
- }
15
- async run({ fileTracker, resolveOutputPath, forceDownload, }) {
16
- this.spinner = logger.createProgressBar(fileTracker.completed.size);
17
- this.spinner.start('Downloading files...');
18
- // Download ready files
19
- const success = await this.downloadFiles(fileTracker, resolveOutputPath, forceDownload);
20
- if (success) {
21
- this.spinner.stop(chalk.green('Downloaded files successfully'));
22
- }
23
- else {
24
- this.spinner.stop(chalk.red('Failed to download files'));
25
- }
26
- return success;
27
- }
28
- async downloadFiles(fileTracker, resolveOutputPath, forceDownload) {
29
- try {
30
- // Only download files that are marked as completed
31
- const currentQueryData = Array.from(fileTracker.completed.values());
32
- // If no files to download, we're done
33
- if (currentQueryData.length === 0) {
34
- return true;
35
- }
36
- // Check for translations
37
- const responseData = await this.gt.queryFileData({
38
- translatedFiles: currentQueryData.map((item) => ({
39
- fileId: item.fileId,
40
- versionId: item.versionId,
41
- branchId: item.branchId,
42
- locale: item.locale,
43
- })),
44
- });
45
- const translatedFiles = responseData.translatedFiles || [];
46
- // Filter for ready translations
47
- const readyTranslations = translatedFiles.filter((file) => file.completedAt !== null);
48
- // Prepare batch download data
49
- const batchFiles = readyTranslations
50
- .map((translation) => {
51
- const fileKey = `${translation.branchId}:${translation.fileId}:${translation.versionId}:${translation.locale}`;
52
- const fileProperties = fileTracker.completed.get(fileKey);
53
- if (!fileProperties) {
54
- return null;
55
- }
56
- const outputPath = resolveOutputPath(fileProperties.fileName, translation.locale);
57
- // Skip downloading GTJSON files that are not in the files configuration
58
- if (outputPath === null) {
59
- fileTracker.completed.delete(fileKey);
60
- fileTracker.skipped.set(fileKey, fileProperties);
61
- return null;
62
- }
63
- return {
64
- branchId: translation.branchId,
65
- fileId: translation.fileId,
66
- versionId: translation.versionId,
67
- locale: translation.locale,
68
- inputPath: fileProperties.fileName,
69
- outputPath,
70
- };
71
- })
72
- .filter((file) => file !== null);
73
- if (batchFiles.length > 0) {
74
- const batchResult = await this.downloadFilesWithRetry(fileTracker, batchFiles, forceDownload);
75
- this.spinner?.stop(chalk.green(`Downloaded ${batchResult.successful.length} files${batchResult.skipped.length > 0 ? `, skipped ${batchResult.skipped.length} files` : ''}`));
76
- if (batchResult.failed.length > 0) {
77
- logger.warn(`Failed to download ${batchResult.failed.length} files: ${batchResult.failed.map((f) => f.inputPath).join('\n')}`);
78
- for (const f of batchResult.failed) {
79
- recordWarning('failed_download', f.inputPath, `Failed to download for locale ${f.locale}`);
80
- }
81
- }
82
- }
83
- else {
84
- this.spinner?.stop(chalk.green('No files to download'));
85
- }
86
- return true;
87
- }
88
- catch (error) {
89
- this.spinner?.stop(chalk.red('An error occurred while downloading translations'));
90
- logger.error(chalk.red('Error: ') + error);
91
- return false;
92
- }
93
- }
94
- async downloadFilesWithRetry(fileTracker, files, forceDownload, maxRetries = 3, initialDelay = 1000) {
95
- let remainingFiles = files;
96
- let allSuccessful = [];
97
- let retryCount = 0;
98
- let allSkipped = [];
99
- while (remainingFiles.length > 0 && retryCount <= maxRetries) {
100
- const batchResult = await downloadFileBatch(fileTracker, remainingFiles, this.settings, forceDownload);
101
- allSuccessful = [...allSuccessful, ...batchResult.successful];
102
- allSkipped = [...allSkipped, ...batchResult.skipped];
103
- this.spinner?.advance(batchResult.successful.length +
104
- batchResult.skipped.length +
105
- batchResult.failed.length);
106
- // If no failures or we've exhausted retries, we're done
107
- if (batchResult.failed.length === 0 || retryCount === maxRetries) {
108
- return {
109
- successful: allSuccessful,
110
- failed: batchResult.failed,
111
- skipped: allSkipped,
112
- };
113
- }
114
- // Calculate exponential backoff delay
115
- const delay = initialDelay * Math.pow(2, retryCount);
116
- logger.error(chalk.yellow(`Retrying ${batchResult.failed.length} failed file(s) in ${delay}ms (attempt ${retryCount + 1}/${maxRetries})...`));
117
- // Wait before retrying
118
- await new Promise((resolve) => setTimeout(resolve, delay));
119
- remainingFiles = batchResult.failed;
120
- retryCount++;
121
- }
122
- return {
123
- successful: allSuccessful,
124
- failed: remainingFiles,
125
- skipped: allSkipped,
126
- };
127
- }
128
- async wait() {
129
- return;
130
- }
131
- }
@@ -1,15 +0,0 @@
1
- import type { EnqueueFilesResult } from 'generaltranslation/types';
2
- import { WorkflowStep } from './WorkflowStep.js';
3
- import { GT } from 'generaltranslation';
4
- import { Settings } from '../../types/index.js';
5
- import type { FileReference } from 'generaltranslation/types';
6
- export declare class EnqueueStep extends WorkflowStep<FileReference[], EnqueueFilesResult> {
7
- private gt;
8
- private settings;
9
- private force?;
10
- private spinner;
11
- private result;
12
- constructor(gt: GT, settings: Settings, force?: boolean | undefined);
13
- run(files: FileReference[]): Promise<EnqueueFilesResult>;
14
- wait(): Promise<void>;
15
- }
@@ -1,33 +0,0 @@
1
- import { WorkflowStep } from './WorkflowStep.js';
2
- import { logger } from '../../console/logger.js';
3
- import chalk from 'chalk';
4
- export class EnqueueStep extends WorkflowStep {
5
- gt;
6
- settings;
7
- force;
8
- spinner = logger.createSpinner('dots');
9
- result = null;
10
- constructor(gt, settings, force) {
11
- super();
12
- this.gt = gt;
13
- this.settings = settings;
14
- this.force = force;
15
- }
16
- async run(files) {
17
- this.spinner.start('Enqueuing translations...');
18
- this.result = await this.gt.enqueueFiles(files, {
19
- sourceLocale: this.settings.defaultLocale,
20
- targetLocales: this.settings.locales,
21
- publish: this.settings.publish,
22
- requireApproval: this.settings.stageTranslations,
23
- modelProvider: this.settings.modelProvider,
24
- force: this.force,
25
- });
26
- return this.result;
27
- }
28
- async wait() {
29
- if (this.result) {
30
- this.spinner.stop(chalk.green('Translations enqueued successfully'));
31
- }
32
- }
33
- }
@@ -1,31 +0,0 @@
1
- import { WorkflowStep } from './WorkflowStep.js';
2
- import { GT } from 'generaltranslation';
3
- import { EnqueueFilesResult } from 'generaltranslation/types';
4
- import type { FileProperties } from '../../types/files.js';
5
- export type PollJobsInput = {
6
- fileTracker: FileStatusTracker;
7
- fileQueryData: FileProperties[];
8
- jobData: EnqueueFilesResult;
9
- timeoutDuration: number;
10
- forceRetranslation?: boolean;
11
- };
12
- export type FileStatusTracker = {
13
- completed: Map<string, FileProperties>;
14
- inProgress: Map<string, FileProperties>;
15
- failed: Map<string, FileProperties>;
16
- skipped: Map<string, FileProperties>;
17
- };
18
- export type PollJobsOutput = {
19
- success: boolean;
20
- fileTracker: FileStatusTracker;
21
- };
22
- export declare class PollTranslationJobsStep extends WorkflowStep<PollJobsInput, PollJobsOutput> {
23
- private gt;
24
- private spinner;
25
- private previousProgress;
26
- constructor(gt: GT);
27
- run({ fileTracker, fileQueryData, jobData, timeoutDuration, forceRetranslation, }: PollJobsInput): Promise<PollJobsOutput>;
28
- private updateSpinner;
29
- private generateStatusSuffixText;
30
- wait(): Promise<void>;
31
- }