gt 2.14.35 → 2.14.37

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 (430) hide show
  1. package/CHANGELOG.md +22 -1
  2. package/dist/api/collectUserEditDiffs.js +112 -155
  3. package/dist/api/collectUserEditDiffs.js.map +1 -0
  4. package/dist/api/downloadFileBatch.js +164 -241
  5. package/dist/api/downloadFileBatch.js.map +1 -0
  6. package/dist/api/saveLocalEdits.js +37 -41
  7. package/dist/api/saveLocalEdits.js.map +1 -0
  8. package/dist/bin/bin-entry.js +17 -7
  9. package/dist/bin/bin-entry.js.map +1 -0
  10. package/dist/bin/bin-main.js +43 -61
  11. package/dist/bin/bin-main.js.map +1 -0
  12. package/dist/cli/base.js +382 -497
  13. package/dist/cli/base.js.map +1 -0
  14. package/dist/cli/commands/download.js +41 -49
  15. package/dist/cli/commands/download.js.map +1 -0
  16. package/dist/cli/commands/enqueue.js +26 -25
  17. package/dist/cli/commands/enqueue.js.map +1 -0
  18. package/dist/cli/commands/setupProject.js +33 -36
  19. package/dist/cli/commands/setupProject.js.map +1 -0
  20. package/dist/cli/commands/stage.js +53 -61
  21. package/dist/cli/commands/stage.js.map +1 -0
  22. package/dist/cli/commands/translate.js +75 -112
  23. package/dist/cli/commands/translate.js.map +1 -0
  24. package/dist/cli/commands/upload.js +185 -213
  25. package/dist/cli/commands/upload.js.map +1 -0
  26. package/dist/cli/commands/utils/validation.js +39 -34
  27. package/dist/cli/commands/utils/validation.js.map +1 -0
  28. package/dist/cli/flags.js +35 -62
  29. package/dist/cli/flags.js.map +1 -0
  30. package/dist/cli/inline.js +112 -137
  31. package/dist/cli/inline.js.map +1 -0
  32. package/dist/cli/next.js +17 -12
  33. package/dist/cli/next.js.map +1 -0
  34. package/dist/cli/node.js +19 -15
  35. package/dist/cli/node.js.map +1 -0
  36. package/dist/cli/python.js +13 -8
  37. package/dist/cli/python.js.map +1 -0
  38. package/dist/cli/react.js +61 -78
  39. package/dist/cli/react.js.map +1 -0
  40. package/dist/config/defaults.js +16 -11
  41. package/dist/config/defaults.js.map +1 -0
  42. package/dist/config/generateSettings.js +167 -269
  43. package/dist/config/generateSettings.js.map +1 -0
  44. package/dist/config/optionPresets.js +78 -96
  45. package/dist/config/optionPresets.js.map +1 -0
  46. package/dist/config/resolveConfig.js +27 -32
  47. package/dist/config/resolveConfig.js.map +1 -0
  48. package/dist/config/utils.js +7 -3
  49. package/dist/config/utils.js.map +1 -0
  50. package/dist/config/validateSettings.js +19 -30
  51. package/dist/config/validateSettings.js.map +1 -0
  52. package/dist/console/colors.js +18 -13
  53. package/dist/console/colors.js.map +1 -0
  54. package/dist/console/displayTranslateSummary.js +40 -37
  55. package/dist/console/displayTranslateSummary.js.map +1 -0
  56. package/dist/console/formatting.js +8 -5
  57. package/dist/console/formatting.js.map +1 -0
  58. package/dist/console/index.d.ts +11 -9
  59. package/dist/console/index.js +53 -50
  60. package/dist/console/index.js.map +1 -0
  61. package/dist/console/inkFields.d.ts +23 -0
  62. package/dist/console/inkFields.js +87 -0
  63. package/dist/console/inkFields.js.map +1 -0
  64. package/dist/console/inkLayout.d.ts +7 -0
  65. package/dist/console/inkLayout.js +139 -0
  66. package/dist/console/inkLayout.js.map +1 -0
  67. package/dist/console/inkLocaleData.d.ts +4 -0
  68. package/dist/console/inkLocaleData.js +32 -0
  69. package/dist/console/inkLocaleData.js.map +1 -0
  70. package/dist/console/inkPrompts.d.ts +8 -0
  71. package/dist/console/inkPrompts.js +496 -0
  72. package/dist/console/inkPrompts.js.map +1 -0
  73. package/dist/console/inkSession.d.ts +3 -0
  74. package/dist/console/inkSession.js +42 -0
  75. package/dist/console/inkSession.js.map +1 -0
  76. package/dist/console/inkTerminal.d.ts +4 -0
  77. package/dist/console/inkTerminal.js +15 -0
  78. package/dist/console/inkTerminal.js.map +1 -0
  79. package/dist/console/inkTypes.d.ts +66 -0
  80. package/dist/console/inkTypes.js +1 -0
  81. package/dist/console/inkUtils.d.ts +24 -0
  82. package/dist/console/inkUtils.js +87 -0
  83. package/dist/console/inkUtils.js.map +1 -0
  84. package/dist/console/logger.js +209 -249
  85. package/dist/console/logger.js.map +1 -0
  86. package/dist/console/logging.d.ts +14 -0
  87. package/dist/console/logging.js +203 -162
  88. package/dist/console/logging.js.map +1 -0
  89. package/dist/console/promptParsing.d.ts +5 -0
  90. package/dist/console/promptParsing.js +28 -0
  91. package/dist/console/promptParsing.js.map +1 -0
  92. package/dist/console/terminalSession.d.ts +5 -0
  93. package/dist/console/terminalSession.js +38 -0
  94. package/dist/console/terminalSession.js.map +1 -0
  95. package/dist/extraction/index.js +3 -2
  96. package/dist/extraction/mapToUpdates.js +19 -18
  97. package/dist/extraction/mapToUpdates.js.map +1 -0
  98. package/dist/extraction/postProcess.js +68 -86
  99. package/dist/extraction/postProcess.js.map +1 -0
  100. package/dist/formats/files/aggregateFiles.js +223 -304
  101. package/dist/formats/files/aggregateFiles.js.map +1 -0
  102. package/dist/formats/files/collectFiles.js +53 -54
  103. package/dist/formats/files/collectFiles.js.map +1 -0
  104. package/dist/formats/files/convertToFileTranslationData.js +21 -19
  105. package/dist/formats/files/convertToFileTranslationData.js.map +1 -0
  106. package/dist/formats/files/fileMapping.js +82 -119
  107. package/dist/formats/files/fileMapping.js.map +1 -0
  108. package/dist/formats/files/preprocess/mdx.js +15 -12
  109. package/dist/formats/files/preprocess/mdx.js.map +1 -0
  110. package/dist/formats/files/preprocess/mintlify.js +15 -13
  111. package/dist/formats/files/preprocess/mintlify.js.map +1 -0
  112. package/dist/formats/files/preprocessContent.js +20 -21
  113. package/dist/formats/files/preprocessContent.js.map +1 -0
  114. package/dist/formats/files/save.js +18 -15
  115. package/dist/formats/files/save.js.map +1 -0
  116. package/dist/formats/files/supportedFiles.js +27 -22
  117. package/dist/formats/files/supportedFiles.js.map +1 -0
  118. package/dist/formats/files/transformFormat.js +93 -100
  119. package/dist/formats/files/transformFormat.js.map +1 -0
  120. package/dist/formats/json/extractJson.js +83 -110
  121. package/dist/formats/json/extractJson.js.map +1 -0
  122. package/dist/formats/json/flattenJson.js +41 -48
  123. package/dist/formats/json/flattenJson.js.map +1 -0
  124. package/dist/formats/json/jsonPath.js +20 -15
  125. package/dist/formats/json/jsonPath.js.map +1 -0
  126. package/dist/formats/json/jsonPointer.js +17 -17
  127. package/dist/formats/json/jsonPointer.js.map +1 -0
  128. package/dist/formats/json/mergeJson.js +230 -371
  129. package/dist/formats/json/mergeJson.js.map +1 -0
  130. package/dist/formats/json/parseJson.js +74 -111
  131. package/dist/formats/json/parseJson.js.map +1 -0
  132. package/dist/formats/json/transformJson.js +53 -61
  133. package/dist/formats/json/transformJson.js.map +1 -0
  134. package/dist/formats/json/utils.js +158 -187
  135. package/dist/formats/json/utils.js.map +1 -0
  136. package/dist/formats/parseKeyedMetadata.js +85 -106
  137. package/dist/formats/parseKeyedMetadata.js.map +1 -0
  138. package/dist/formats/utils.js +13 -23
  139. package/dist/formats/utils.js.map +1 -0
  140. package/dist/formats/yaml/extractYaml.js +32 -31
  141. package/dist/formats/yaml/extractYaml.js.map +1 -0
  142. package/dist/formats/yaml/mergeYaml.js +43 -60
  143. package/dist/formats/yaml/mergeYaml.js.map +1 -0
  144. package/dist/formats/yaml/parseYaml.js +34 -23
  145. package/dist/formats/yaml/parseYaml.js.map +1 -0
  146. package/dist/formats/yaml/utils.js +19 -21
  147. package/dist/formats/yaml/utils.js.map +1 -0
  148. package/dist/fs/clearLocaleDirs.js +82 -114
  149. package/dist/fs/clearLocaleDirs.js.map +1 -0
  150. package/dist/fs/config/downloadedVersions.js +174 -188
  151. package/dist/fs/config/downloadedVersions.js.map +1 -0
  152. package/dist/fs/config/loadConfig.js +12 -8
  153. package/dist/fs/config/loadConfig.js.map +1 -0
  154. package/dist/fs/config/parseFilesConfig.js +166 -227
  155. package/dist/fs/config/parseFilesConfig.js.map +1 -0
  156. package/dist/fs/config/setupConfig.js +43 -52
  157. package/dist/fs/config/setupConfig.js.map +1 -0
  158. package/dist/fs/config/updateConfig.js +44 -56
  159. package/dist/fs/config/updateConfig.js.map +1 -0
  160. package/dist/fs/config/updateVersions.js +27 -28
  161. package/dist/fs/config/updateVersions.js.map +1 -0
  162. package/dist/fs/copyFile.js +33 -37
  163. package/dist/fs/copyFile.js.map +1 -0
  164. package/dist/fs/createLoadTranslationsFile.js +32 -48
  165. package/dist/fs/createLoadTranslationsFile.js.map +1 -0
  166. package/dist/fs/determineFramework/detectPythonLibrary.js +30 -34
  167. package/dist/fs/determineFramework/detectPythonLibrary.js.map +1 -0
  168. package/dist/fs/determineFramework/index.js +46 -64
  169. package/dist/fs/determineFramework/index.js.map +1 -0
  170. package/dist/fs/determineFramework/matchPyprojectDependency.js +65 -78
  171. package/dist/fs/determineFramework/matchPyprojectDependency.js.map +1 -0
  172. package/dist/fs/determineFramework/matchRequirementsTxtDependency.js +21 -19
  173. package/dist/fs/determineFramework/matchRequirementsTxtDependency.js.map +1 -0
  174. package/dist/fs/determineFramework/matchSetupPyDependency.js +60 -81
  175. package/dist/fs/determineFramework/matchSetupPyDependency.js.map +1 -0
  176. package/dist/fs/determineFramework/resolveGtDependency.js +15 -15
  177. package/dist/fs/determineFramework/resolveGtDependency.js.map +1 -0
  178. package/dist/fs/findFilepath.js +63 -78
  179. package/dist/fs/findFilepath.js.map +1 -0
  180. package/dist/fs/loadJSON.js +18 -15
  181. package/dist/fs/loadJSON.js.map +1 -0
  182. package/dist/fs/matchFiles.js +12 -7
  183. package/dist/fs/matchFiles.js.map +1 -0
  184. package/dist/fs/saveJSON.js +10 -6
  185. package/dist/fs/saveJSON.js.map +1 -0
  186. package/dist/fs/utils.js +19 -15
  187. package/dist/fs/utils.js.map +1 -0
  188. package/dist/functions.d.ts +2 -1
  189. package/dist/functions.js +3 -6
  190. package/dist/generated/version.d.ts +1 -1
  191. package/dist/generated/version.js +6 -2
  192. package/dist/generated/version.js.map +1 -0
  193. package/dist/git/branches.js +77 -83
  194. package/dist/git/branches.js.map +1 -0
  195. package/dist/hooks/postProcess.js +97 -114
  196. package/dist/hooks/postProcess.js.map +1 -0
  197. package/dist/index.js +23 -31
  198. package/dist/index.js.map +1 -0
  199. package/dist/locadex/setupFlow.js +11 -8
  200. package/dist/locadex/setupFlow.js.map +1 -0
  201. package/dist/main.js +17 -7
  202. package/dist/main.js.map +1 -0
  203. package/dist/next/config/parseNextConfig.js +32 -51
  204. package/dist/next/config/parseNextConfig.js.map +1 -0
  205. package/dist/next/jsx/utils.js +25 -37
  206. package/dist/next/jsx/utils.js.map +1 -0
  207. package/dist/next/parse/handleInitGT.js +87 -154
  208. package/dist/next/parse/handleInitGT.js.map +1 -0
  209. package/dist/next/parse/wrapContent.js +136 -158
  210. package/dist/next/parse/wrapContent.js.map +1 -0
  211. package/dist/python/parse/createPythonInlineUpdates.js +36 -33
  212. package/dist/python/parse/createPythonInlineUpdates.js.map +1 -0
  213. package/dist/react/config/createESBuildConfig.js +115 -115
  214. package/dist/react/config/createESBuildConfig.js.map +1 -0
  215. package/dist/react/jsx/evaluateJsx.js +90 -124
  216. package/dist/react/jsx/evaluateJsx.js.map +1 -0
  217. package/dist/react/jsx/utils/buildImportMap.js +24 -28
  218. package/dist/react/jsx/utils/buildImportMap.js.map +1 -0
  219. package/dist/react/jsx/utils/constants.js +79 -87
  220. package/dist/react/jsx/utils/constants.js.map +1 -0
  221. package/dist/react/jsx/utils/extractSourceCode.js +36 -37
  222. package/dist/react/jsx/utils/extractSourceCode.js.map +1 -0
  223. package/dist/react/jsx/utils/getCalleeNameFromExpression.js +30 -30
  224. package/dist/react/jsx/utils/getCalleeNameFromExpression.js.map +1 -0
  225. package/dist/react/jsx/utils/getPathsAndAliases.js +70 -105
  226. package/dist/react/jsx/utils/getPathsAndAliases.js.map +1 -0
  227. package/dist/react/jsx/utils/isNumberLiteral.js +13 -11
  228. package/dist/react/jsx/utils/isNumberLiteral.js.map +1 -0
  229. package/dist/react/jsx/utils/jsxParsing/addGTIdentifierToSyntaxTree.js +103 -148
  230. package/dist/react/jsx/utils/jsxParsing/addGTIdentifierToSyntaxTree.js.map +1 -0
  231. package/dist/react/jsx/utils/jsxParsing/autoInsertion.js +305 -389
  232. package/dist/react/jsx/utils/jsxParsing/autoInsertion.js.map +1 -0
  233. package/dist/react/jsx/utils/jsxParsing/handleChildrenWhitespace.js +122 -193
  234. package/dist/react/jsx/utils/jsxParsing/handleChildrenWhitespace.js.map +1 -0
  235. package/dist/react/jsx/utils/jsxParsing/multiplication/findMultiplicationNode.js +50 -64
  236. package/dist/react/jsx/utils/jsxParsing/multiplication/findMultiplicationNode.js.map +1 -0
  237. package/dist/react/jsx/utils/jsxParsing/multiplication/multiplyJsxTree.js +41 -68
  238. package/dist/react/jsx/utils/jsxParsing/multiplication/multiplyJsxTree.js.map +1 -0
  239. package/dist/react/jsx/utils/jsxParsing/parseJsx.js +760 -1107
  240. package/dist/react/jsx/utils/jsxParsing/parseJsx.js.map +1 -0
  241. package/dist/react/jsx/utils/jsxParsing/parseTProps.js +35 -71
  242. package/dist/react/jsx/utils/jsxParsing/parseTProps.js.map +1 -0
  243. package/dist/react/jsx/utils/jsxParsing/removeNullChildrenFields.js +39 -58
  244. package/dist/react/jsx/utils/jsxParsing/removeNullChildrenFields.js.map +1 -0
  245. package/dist/react/jsx/utils/jsxParsing/types.js +10 -24
  246. package/dist/react/jsx/utils/jsxParsing/types.js.map +1 -0
  247. package/dist/react/jsx/utils/mapAttributeName.js +13 -13
  248. package/dist/react/jsx/utils/mapAttributeName.js.map +1 -0
  249. package/dist/react/jsx/utils/parseAst.js +142 -272
  250. package/dist/react/jsx/utils/parseAst.js.map +1 -0
  251. package/dist/react/jsx/utils/parseString.js +726 -1090
  252. package/dist/react/jsx/utils/parseString.js.map +1 -0
  253. package/dist/react/jsx/utils/parseStringFunction.js +274 -401
  254. package/dist/react/jsx/utils/parseStringFunction.js.map +1 -0
  255. package/dist/react/jsx/utils/resolveImportPath.d.ts +1 -1
  256. package/dist/react/jsx/utils/resolveImportPath.js +125 -108
  257. package/dist/react/jsx/utils/resolveImportPath.js.map +1 -0
  258. package/dist/react/jsx/utils/stringParsing/derivation/containsDeriveCall.js +18 -24
  259. package/dist/react/jsx/utils/stringParsing/derivation/containsDeriveCall.js.map +1 -0
  260. package/dist/react/jsx/utils/stringParsing/derivation/handleDerivation.js +412 -579
  261. package/dist/react/jsx/utils/stringParsing/derivation/handleDerivation.js.map +1 -0
  262. package/dist/react/jsx/utils/stringParsing/derivation/index.js +57 -67
  263. package/dist/react/jsx/utils/stringParsing/derivation/index.js.map +1 -0
  264. package/dist/react/jsx/utils/stringParsing/derivation/isDeriveCall.js +26 -36
  265. package/dist/react/jsx/utils/stringParsing/derivation/isDeriveCall.js.map +1 -0
  266. package/dist/react/jsx/utils/stringParsing/processTaggedTemplateCall/handleTaggedTemplateTranslationCall.js +29 -24
  267. package/dist/react/jsx/utils/stringParsing/processTaggedTemplateCall/handleTaggedTemplateTranslationCall.js.map +1 -0
  268. package/dist/react/jsx/utils/stringParsing/processTaggedTemplateCall/index.js +34 -32
  269. package/dist/react/jsx/utils/stringParsing/processTaggedTemplateCall/index.js.map +1 -0
  270. package/dist/react/jsx/utils/stringParsing/processTranslationCall/extractStringEntryMetadata.js +80 -117
  271. package/dist/react/jsx/utils/stringParsing/processTranslationCall/extractStringEntryMetadata.js.map +1 -0
  272. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleDeriveTranslationCall.js +24 -19
  273. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleDeriveTranslationCall.js.map +1 -0
  274. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleInvalidTranslationCall.js +18 -21
  275. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleInvalidTranslationCall.js.map +1 -0
  276. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleLiteralTranslationCall.js +45 -50
  277. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleLiteralTranslationCall.js.map +1 -0
  278. package/dist/react/jsx/utils/stringParsing/processTranslationCall/index.js +54 -59
  279. package/dist/react/jsx/utils/stringParsing/processTranslationCall/index.js.map +1 -0
  280. package/dist/react/jsx/utils/stringParsing/processTranslationCall/routeTranslationCall.js +56 -69
  281. package/dist/react/jsx/utils/stringParsing/processTranslationCall/routeTranslationCall.js.map +1 -0
  282. package/dist/react/jsx/utils/validateStringFunction.js +21 -29
  283. package/dist/react/jsx/utils/validateStringFunction.js.map +1 -0
  284. package/dist/react/jsx/wrapJsx.js +192 -375
  285. package/dist/react/jsx/wrapJsx.js.map +1 -0
  286. package/dist/react/parse/addVitePlugin/index.js +40 -34
  287. package/dist/react/parse/addVitePlugin/index.js.map +1 -0
  288. package/dist/react/parse/addVitePlugin/installCompiler.js +18 -20
  289. package/dist/react/parse/addVitePlugin/installCompiler.js.map +1 -0
  290. package/dist/react/parse/addVitePlugin/updateViteConfig.js +107 -111
  291. package/dist/react/parse/addVitePlugin/updateViteConfig.js.map +1 -0
  292. package/dist/react/parse/addVitePlugin/utils/addCompilerImport.js +23 -26
  293. package/dist/react/parse/addVitePlugin/utils/addCompilerImport.js.map +1 -0
  294. package/dist/react/parse/addVitePlugin/utils/addPluginInvocation.js +29 -43
  295. package/dist/react/parse/addVitePlugin/utils/addPluginInvocation.js.map +1 -0
  296. package/dist/react/parse/addVitePlugin/utils/checkCompilerImport.js +70 -104
  297. package/dist/react/parse/addVitePlugin/utils/checkCompilerImport.js.map +1 -0
  298. package/dist/react/parse/addVitePlugin/utils/checkPluginInvocation.js +23 -29
  299. package/dist/react/parse/addVitePlugin/utils/checkPluginInvocation.js.map +1 -0
  300. package/dist/react/parse/createDictionaryUpdates.js +121 -185
  301. package/dist/react/parse/createDictionaryUpdates.js.map +1 -0
  302. package/dist/react/parse/createInlineUpdates.js +123 -139
  303. package/dist/react/parse/createInlineUpdates.js.map +1 -0
  304. package/dist/react/parse/wrapContent.js +131 -156
  305. package/dist/react/parse/wrapContent.js.map +1 -0
  306. package/dist/react/utils/flattenDictionary.js +55 -70
  307. package/dist/react/utils/flattenDictionary.js.map +1 -0
  308. package/dist/react/utils/getEntryAndMetadata.js +14 -10
  309. package/dist/react/utils/getEntryAndMetadata.js.map +1 -0
  310. package/dist/react/utils/getVariableName.js +36 -33
  311. package/dist/react/utils/getVariableName.js.map +1 -0
  312. package/dist/setup/detectFramework.js +85 -102
  313. package/dist/setup/detectFramework.js.map +1 -0
  314. package/dist/setup/frameworkUtils.js +17 -28
  315. package/dist/setup/frameworkUtils.js.map +1 -0
  316. package/dist/setup/userInput.js +24 -31
  317. package/dist/setup/userInput.js.map +1 -0
  318. package/dist/setup/wizard.js +141 -143
  319. package/dist/setup/wizard.js.map +1 -0
  320. package/dist/state/mintlifyRefMap.js +12 -9
  321. package/dist/state/mintlifyRefMap.js.map +1 -0
  322. package/dist/state/recentDownloads.js +26 -23
  323. package/dist/state/recentDownloads.js.map +1 -0
  324. package/dist/state/translateWarnings.js +17 -8
  325. package/dist/state/translateWarnings.js.map +1 -0
  326. package/dist/translation/parse.js +77 -98
  327. package/dist/translation/parse.js.map +1 -0
  328. package/dist/translation/stage.js +28 -43
  329. package/dist/translation/stage.js.map +1 -0
  330. package/dist/translation/validate.js +68 -91
  331. package/dist/translation/validate.js.map +1 -0
  332. package/dist/types/libraries.js +93 -91
  333. package/dist/types/libraries.js.map +1 -0
  334. package/dist/types/parsing.js +19 -10
  335. package/dist/types/parsing.js.map +1 -0
  336. package/dist/utils/addExplicitAnchorIds.js +270 -389
  337. package/dist/utils/addExplicitAnchorIds.js.map +1 -0
  338. package/dist/utils/calculateTimeoutMs.js +11 -6
  339. package/dist/utils/calculateTimeoutMs.js.map +1 -0
  340. package/dist/utils/constants.js +15 -12
  341. package/dist/utils/constants.js.map +1 -0
  342. package/dist/utils/credentials.js +67 -114
  343. package/dist/utils/credentials.js.map +1 -0
  344. package/dist/utils/fetch.js +22 -20
  345. package/dist/utils/fetch.js.map +1 -0
  346. package/dist/utils/flattenJsonFiles.js +27 -34
  347. package/dist/utils/flattenJsonFiles.js.map +1 -0
  348. package/dist/utils/gitDiff.js +30 -32
  349. package/dist/utils/gitDiff.js.map +1 -0
  350. package/dist/utils/gt.js +7 -2
  351. package/dist/utils/gt.js.map +1 -0
  352. package/dist/utils/hash.js +14 -9
  353. package/dist/utils/hash.js.map +1 -0
  354. package/dist/utils/headers.js +10 -13
  355. package/dist/utils/headers.js.map +1 -0
  356. package/dist/utils/installPackage.js +70 -75
  357. package/dist/utils/installPackage.js.map +1 -0
  358. package/dist/utils/localizeRelativeAssets.js +114 -157
  359. package/dist/utils/localizeRelativeAssets.js.map +1 -0
  360. package/dist/utils/localizeStaticImports.js +229 -371
  361. package/dist/utils/localizeStaticImports.js.map +1 -0
  362. package/dist/utils/localizeStaticUrls.js +241 -424
  363. package/dist/utils/localizeStaticUrls.js.map +1 -0
  364. package/dist/utils/mintlifyTitleFallback.js +64 -72
  365. package/dist/utils/mintlifyTitleFallback.js.map +1 -0
  366. package/dist/utils/monorepoVersionCheck.js +177 -215
  367. package/dist/utils/monorepoVersionCheck.js.map +1 -0
  368. package/dist/utils/packageInfo.js +17 -16
  369. package/dist/utils/packageInfo.js.map +1 -0
  370. package/dist/utils/packageJson.js +51 -66
  371. package/dist/utils/packageJson.js.map +1 -0
  372. package/dist/utils/packageManager.js +237 -260
  373. package/dist/utils/packageManager.js.map +1 -0
  374. package/dist/utils/parse/needsCJS.js +36 -69
  375. package/dist/utils/parse/needsCJS.js.map +1 -0
  376. package/dist/utils/persistPostprocessHashes.js +30 -32
  377. package/dist/utils/persistPostprocessHashes.js.map +1 -0
  378. package/dist/utils/processAnchorIds.js +32 -54
  379. package/dist/utils/processAnchorIds.js.map +1 -0
  380. package/dist/utils/processOpenApi.js +469 -578
  381. package/dist/utils/processOpenApi.js.map +1 -0
  382. package/dist/utils/resolveMintlifyRefs.js +89 -105
  383. package/dist/utils/resolveMintlifyRefs.js.map +1 -0
  384. package/dist/utils/resolvePublish.js +46 -54
  385. package/dist/utils/resolvePublish.js.map +1 -0
  386. package/dist/utils/sanitizeFileContent.js +20 -27
  387. package/dist/utils/sanitizeFileContent.js.map +1 -0
  388. package/dist/utils/sharedStaticAssets.js +248 -366
  389. package/dist/utils/sharedStaticAssets.js.map +1 -0
  390. package/dist/utils/splitMintlifyLanguageRefs.js +208 -282
  391. package/dist/utils/splitMintlifyLanguageRefs.js.map +1 -0
  392. package/dist/utils/validateMdx.js +26 -23
  393. package/dist/utils/validateMdx.js.map +1 -0
  394. package/dist/utils/wrapPlainUrls.js +58 -70
  395. package/dist/utils/wrapPlainUrls.js.map +1 -0
  396. package/dist/workflows/download.js +92 -126
  397. package/dist/workflows/download.js.map +1 -0
  398. package/dist/workflows/enqueue.js +47 -54
  399. package/dist/workflows/enqueue.js.map +1 -0
  400. package/dist/workflows/publish.js +29 -29
  401. package/dist/workflows/publish.js.map +1 -0
  402. package/dist/workflows/setupProject.js +39 -40
  403. package/dist/workflows/setupProject.js.map +1 -0
  404. package/dist/workflows/stage.js +61 -65
  405. package/dist/workflows/stage.js.map +1 -0
  406. package/dist/workflows/steps/BranchStep.js +118 -163
  407. package/dist/workflows/steps/BranchStep.js.map +1 -0
  408. package/dist/workflows/steps/DownloadStep.js +107 -137
  409. package/dist/workflows/steps/DownloadStep.js.map +1 -0
  410. package/dist/workflows/steps/EnqueueStep.js +32 -32
  411. package/dist/workflows/steps/EnqueueStep.js.map +1 -0
  412. package/dist/workflows/steps/PollJobsStep.js +208 -292
  413. package/dist/workflows/steps/PollJobsStep.js.map +1 -0
  414. package/dist/workflows/steps/PublishStep.js +33 -38
  415. package/dist/workflows/steps/PublishStep.js.map +1 -0
  416. package/dist/workflows/steps/SetupStep.js +71 -72
  417. package/dist/workflows/steps/SetupStep.js.map +1 -0
  418. package/dist/workflows/steps/TagStep.js +39 -44
  419. package/dist/workflows/steps/TagStep.js.map +1 -0
  420. package/dist/workflows/steps/UploadSourcesStep.js +108 -140
  421. package/dist/workflows/steps/UploadSourcesStep.js.map +1 -0
  422. package/dist/workflows/steps/UploadTranslationsStep.js +61 -71
  423. package/dist/workflows/steps/UploadTranslationsStep.js.map +1 -0
  424. package/dist/workflows/steps/UserEditDiffsStep.js +32 -34
  425. package/dist/workflows/steps/UserEditDiffsStep.js.map +1 -0
  426. package/dist/workflows/steps/WorkflowStep.js +6 -2
  427. package/dist/workflows/steps/WorkflowStep.js.map +1 -0
  428. package/dist/workflows/upload.js +45 -46
  429. package/dist/workflows/upload.js.map +1 -0
  430. package/package.json +14 -7
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # gtx-cli
2
2
 
3
+ ## 2.14.37
4
+
5
+ ### Patch Changes
6
+
7
+ - [#1425](https://github.com/generaltranslation/gt/pull/1425) [`a5e6975`](https://github.com/generaltranslation/gt/commit/a5e697561776466763ee1d6cae1f4b905eed581d) Thanks [@ErnestM1234](https://github.com/ErnestM1234)! - Resolve TypeScript path aliases that point to directory index barrel files during CLI extraction.
8
+
9
+ ## 2.14.36
10
+
11
+ ### Patch Changes
12
+
13
+ - [#1363](https://github.com/generaltranslation/gt/pull/1363) [`6a0e55b`](https://github.com/generaltranslation/gt/commit/6a0e55b6787b8e05f6c1fef7796e1b8b68f6d87b) Thanks [@bgub](https://github.com/bgub)! - Add an Ink-powered full-screen setup wizard for interactive CLI prompts.
14
+
15
+ - [#1419](https://github.com/generaltranslation/gt/pull/1419) [`a877a2a`](https://github.com/generaltranslation/gt/commit/a877a2a5bd5ca47b199c6caf53a6d60d96e3a300) Thanks [@bgub](https://github.com/bgub)! - Improve diagnostic messages and package-local diagnostic formatting.
16
+
17
+ - [#1423](https://github.com/generaltranslation/gt/pull/1423) [`347cb48`](https://github.com/generaltranslation/gt/commit/347cb4844bba2007c7942f3f0e6a2ede4a1aa73e) Thanks [@ErnestM1234](https://github.com/ErnestM1234)! - Suppress unnecessary project detection warnings for file-only translations.
18
+
19
+ - Updated dependencies [[`bb3624e`](https://github.com/generaltranslation/gt/commit/bb3624e58546c334c04370a1f5a262238bd040fa), [`a877a2a`](https://github.com/generaltranslation/gt/commit/a877a2a5bd5ca47b199c6caf53a6d60d96e3a300)]:
20
+ - @generaltranslation/format@0.1.1
21
+ - generaltranslation@8.2.15
22
+ - @generaltranslation/python-extractor@0.2.21
23
+ - @generaltranslation/supported-locales@2.0.73
24
+
3
25
  ## 2.14.35
4
26
 
5
27
  ### Patch Changes
@@ -1083,7 +1105,6 @@
1083
1105
  https://generaltranslation.com/blog/generaltranslation_v8
1084
1106
 
1085
1107
  Please update the following packages to the latest version:
1086
-
1087
1108
  - generaltranslation: `7.9.1` or later
1088
1109
  - gtx-cli: `2.4.15` or later
1089
1110
  - gt-sanity: `1.0.11` or later
@@ -1,159 +1,116 @@
1
- import * as fs from 'node:fs';
2
- import * as path from 'node:path';
3
- import { readLockfile, } from '../fs/config/downloadedVersions.js';
4
- import { createFileMapping } from '../formats/files/fileMapping.js';
5
- import { getGitUnifiedDiff } from '../utils/gitDiff.js';
6
- import { gt } from '../utils/gt.js';
7
- import os from 'node:os';
8
- import { randomUUID } from 'node:crypto';
9
- import { hashStringSync } from '../utils/hash.js';
10
- import { extractJson } from '../formats/json/extractJson.js';
11
- import { extractYaml } from '../formats/yaml/extractYaml.js';
1
+ import { hashStringSync } from "../utils/hash.js";
2
+ import { gt } from "../utils/gt.js";
3
+ import { extractJson } from "../formats/json/extractJson.js";
4
+ import { createFileMapping } from "../formats/files/fileMapping.js";
5
+ import { readLockfile } from "../fs/config/downloadedVersions.js";
6
+ import { getGitUnifiedDiff } from "../utils/gitDiff.js";
7
+ import { extractYaml } from "../formats/yaml/extractYaml.js";
8
+ import { randomUUID } from "node:crypto";
9
+ import * as path$1 from "node:path";
10
+ import * as fs$1 from "node:fs";
11
+ import os from "node:os";
12
+ //#region src/api/collectUserEditDiffs.ts
12
13
  const findLatestDownloadedVersion = (entryMap, fileId, locale) => {
13
- const entry = entryMap.get(fileId);
14
- if (!entry)
15
- return null;
16
- const translation = entry.translations[locale];
17
- if (!translation)
18
- return null;
19
- return { versionId: entry.versionId, entry: translation };
14
+ const entry = entryMap.get(fileId);
15
+ if (!entry) return null;
16
+ const translation = entry.translations[locale];
17
+ if (!translation) return null;
18
+ return {
19
+ versionId: entry.versionId,
20
+ entry: translation
21
+ };
20
22
  };
21
23
  /**
22
- * Collects local user edits by diffing the latest downloaded server translation version
23
- * against the current local translation file, and submits the diffs upstream.
24
- *
25
- * Must run before enqueueing new translations so rules are available to the generator.
26
- */
27
- export async function collectAndSendUserEditDiffs(files, settings) {
28
- if (!settings.files)
29
- return false;
30
- const { resolvedPaths, placeholderPaths, transformPaths, transformFormats } = settings.files;
31
- const fileMapping = createFileMapping(resolvedPaths, placeholderPaths, transformPaths, transformFormats, settings.locales, settings.defaultLocale);
32
- const { entryMap } = readLockfile(settings);
33
- const tempDir = path.join(os.tmpdir(), randomUUID());
34
- if (!fs.existsSync(tempDir))
35
- fs.mkdirSync(tempDir, { recursive: true });
36
- const candidates = [];
37
- for (const uploadedFile of files) {
38
- for (const locale of settings.locales) {
39
- const outputPath = fileMapping[locale]?.[uploadedFile.fileName] ?? null;
40
- if (!outputPath)
41
- continue;
42
- if (!fs.existsSync(outputPath))
43
- continue;
44
- const latestDownloaded = findLatestDownloadedVersion(entryMap, uploadedFile.fileId, locale);
45
- if (!latestDownloaded)
46
- continue;
47
- const downloadedVersion = latestDownloaded.entry;
48
- // Skip if local file matches the last postprocessed content hash
49
- if (downloadedVersion.postProcessHash) {
50
- try {
51
- const localContent = await fs.promises.readFile(outputPath, 'utf8');
52
- const localHash = hashStringSync(localContent);
53
- if (localHash === downloadedVersion.postProcessHash) {
54
- continue;
55
- }
56
- }
57
- catch {
58
- // If hash check fails, fall through to diff
59
- }
60
- }
61
- candidates.push({
62
- branchId: uploadedFile.branchId,
63
- fileName: uploadedFile.fileName,
64
- fileId: uploadedFile.fileId,
65
- versionId: latestDownloaded.versionId,
66
- locale: locale,
67
- outputPath,
68
- });
69
- }
70
- }
71
- const collectedDiffs = [];
72
- if (candidates.length > 0) {
73
- const fileQueryData = candidates.map((c) => ({
74
- versionId: c.versionId,
75
- locale: c.locale,
76
- fileId: c.fileId,
77
- branchId: c.branchId,
78
- }));
79
- // Single batched check to obtain translation IDs
80
- const checkResponse = await gt.queryFileData({
81
- translatedFiles: fileQueryData,
82
- });
83
- const translatedFiles = checkResponse.translatedFiles?.filter((t) => t.completedAt) ?? [];
84
- const serverContentByKey = new Map();
85
- try {
86
- const resp = await gt.downloadFileBatch(translatedFiles.map((file) => ({
87
- branchId: file.branchId,
88
- fileId: file.fileId,
89
- locale: file.locale,
90
- versionId: file.versionId,
91
- })));
92
- const files = resp?.files || [];
93
- for (const f of files) {
94
- serverContentByKey.set(`${f.branchId}:${f.fileId}:${f.versionId}:${f.locale}`, f.data);
95
- }
96
- }
97
- catch {
98
- // Ignore chunk failures; proceed with what we have
99
- }
100
- // Compute diffs using fetched server contents
101
- for (const c of candidates) {
102
- const key = `${c.branchId}:${c.fileId}:${c.versionId}:${c.locale}`;
103
- const serverContent = serverContentByKey.get(key);
104
- if (!serverContent)
105
- continue;
106
- try {
107
- const safeName = Buffer.from(`${c.branchId}:${c.fileId}:${c.versionId}:${c.locale}`)
108
- .toString('base64')
109
- .replace(/=+$/g, '');
110
- const tempServerFile = path.join(tempDir, `${safeName}.server`);
111
- await fs.promises.writeFile(tempServerFile, serverContent, 'utf8');
112
- const diff = await getGitUnifiedDiff(tempServerFile, c.outputPath);
113
- try {
114
- await fs.promises.unlink(tempServerFile);
115
- }
116
- catch {
117
- // Ignore cleanup errors for temporary comparison files.
118
- }
119
- if (diff && diff.trim().length > 0) {
120
- const rawLocalContent = await fs.promises.readFile(c.outputPath, 'utf8');
121
- // For JSON files with jsonSchema config, extract to composite format
122
- let localContent = rawLocalContent;
123
- if (c.fileName.endsWith('.json') &&
124
- settings.options?.jsonSchema &&
125
- c.locale !== settings.defaultLocale) {
126
- const extractedContent = extractJson(rawLocalContent, c.fileName, settings.options, c.locale, settings.defaultLocale);
127
- if (extractedContent) {
128
- localContent = extractedContent;
129
- }
130
- }
131
- else if ((c.fileName.endsWith('.yaml') || c.fileName.endsWith('.yml')) &&
132
- settings.options?.yamlSchema &&
133
- c.locale !== settings.defaultLocale) {
134
- const extractedContent = extractYaml(rawLocalContent, c.fileName, settings.options);
135
- if (extractedContent) {
136
- localContent = extractedContent;
137
- }
138
- }
139
- collectedDiffs.push({
140
- fileName: c.fileName,
141
- locale: c.locale,
142
- diff,
143
- branchId: c.branchId,
144
- versionId: c.versionId,
145
- fileId: c.fileId,
146
- localContent,
147
- });
148
- }
149
- }
150
- catch {
151
- // Ignore failures for this file
152
- }
153
- }
154
- }
155
- if (collectedDiffs.length > 0) {
156
- await gt.submitUserEditDiffs({ diffs: collectedDiffs });
157
- }
158
- return collectedDiffs.length > 0;
24
+ * Collects local user edits by diffing the latest downloaded server translation version
25
+ * against the current local translation file, and submits the diffs upstream.
26
+ *
27
+ * Must run before enqueueing new translations so rules are available to the generator.
28
+ */
29
+ async function collectAndSendUserEditDiffs(files, settings) {
30
+ if (!settings.files) return false;
31
+ const { resolvedPaths, placeholderPaths, transformPaths, transformFormats } = settings.files;
32
+ const fileMapping = createFileMapping(resolvedPaths, placeholderPaths, transformPaths, transformFormats, settings.locales, settings.defaultLocale);
33
+ const { entryMap } = readLockfile(settings);
34
+ const tempDir = path$1.join(os.tmpdir(), randomUUID());
35
+ if (!fs$1.existsSync(tempDir)) fs$1.mkdirSync(tempDir, { recursive: true });
36
+ const candidates = [];
37
+ for (const uploadedFile of files) for (const locale of settings.locales) {
38
+ const outputPath = fileMapping[locale]?.[uploadedFile.fileName] ?? null;
39
+ if (!outputPath) continue;
40
+ if (!fs$1.existsSync(outputPath)) continue;
41
+ const latestDownloaded = findLatestDownloadedVersion(entryMap, uploadedFile.fileId, locale);
42
+ if (!latestDownloaded) continue;
43
+ const downloadedVersion = latestDownloaded.entry;
44
+ if (downloadedVersion.postProcessHash) try {
45
+ if (hashStringSync(await fs$1.promises.readFile(outputPath, "utf8")) === downloadedVersion.postProcessHash) continue;
46
+ } catch {}
47
+ candidates.push({
48
+ branchId: uploadedFile.branchId,
49
+ fileName: uploadedFile.fileName,
50
+ fileId: uploadedFile.fileId,
51
+ versionId: latestDownloaded.versionId,
52
+ locale,
53
+ outputPath
54
+ });
55
+ }
56
+ const collectedDiffs = [];
57
+ if (candidates.length > 0) {
58
+ const fileQueryData = candidates.map((c) => ({
59
+ versionId: c.versionId,
60
+ locale: c.locale,
61
+ fileId: c.fileId,
62
+ branchId: c.branchId
63
+ }));
64
+ const translatedFiles = (await gt.queryFileData({ translatedFiles: fileQueryData })).translatedFiles?.filter((t) => t.completedAt) ?? [];
65
+ const serverContentByKey = /* @__PURE__ */ new Map();
66
+ try {
67
+ const files = (await gt.downloadFileBatch(translatedFiles.map((file) => ({
68
+ branchId: file.branchId,
69
+ fileId: file.fileId,
70
+ locale: file.locale,
71
+ versionId: file.versionId
72
+ }))))?.files || [];
73
+ for (const f of files) serverContentByKey.set(`${f.branchId}:${f.fileId}:${f.versionId}:${f.locale}`, f.data);
74
+ } catch {}
75
+ for (const c of candidates) {
76
+ const key = `${c.branchId}:${c.fileId}:${c.versionId}:${c.locale}`;
77
+ const serverContent = serverContentByKey.get(key);
78
+ if (!serverContent) continue;
79
+ try {
80
+ const safeName = Buffer.from(`${c.branchId}:${c.fileId}:${c.versionId}:${c.locale}`).toString("base64").replace(/=+$/g, "");
81
+ const tempServerFile = path$1.join(tempDir, `${safeName}.server`);
82
+ await fs$1.promises.writeFile(tempServerFile, serverContent, "utf8");
83
+ const diff = await getGitUnifiedDiff(tempServerFile, c.outputPath);
84
+ try {
85
+ await fs$1.promises.unlink(tempServerFile);
86
+ } catch {}
87
+ if (diff && diff.trim().length > 0) {
88
+ const rawLocalContent = await fs$1.promises.readFile(c.outputPath, "utf8");
89
+ let localContent = rawLocalContent;
90
+ if (c.fileName.endsWith(".json") && settings.options?.jsonSchema && c.locale !== settings.defaultLocale) {
91
+ const extractedContent = extractJson(rawLocalContent, c.fileName, settings.options, c.locale, settings.defaultLocale);
92
+ if (extractedContent) localContent = extractedContent;
93
+ } else if ((c.fileName.endsWith(".yaml") || c.fileName.endsWith(".yml")) && settings.options?.yamlSchema && c.locale !== settings.defaultLocale) {
94
+ const extractedContent = extractYaml(rawLocalContent, c.fileName, settings.options);
95
+ if (extractedContent) localContent = extractedContent;
96
+ }
97
+ collectedDiffs.push({
98
+ fileName: c.fileName,
99
+ locale: c.locale,
100
+ diff,
101
+ branchId: c.branchId,
102
+ versionId: c.versionId,
103
+ fileId: c.fileId,
104
+ localContent
105
+ });
106
+ }
107
+ } catch {}
108
+ }
109
+ }
110
+ if (collectedDiffs.length > 0) await gt.submitUserEditDiffs({ diffs: collectedDiffs });
111
+ return collectedDiffs.length > 0;
159
112
  }
113
+ //#endregion
114
+ export { collectAndSendUserEditDiffs };
115
+
116
+ //# sourceMappingURL=collectUserEditDiffs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collectUserEditDiffs.js","names":["path","fs"],"sources":["../../src/api/collectUserEditDiffs.ts"],"sourcesContent":["import * as fs from 'node:fs';\nimport * as path from 'node:path';\nimport {\n readLockfile,\n EntryMap,\n DownloadedTranslation,\n} from '../fs/config/downloadedVersions.js';\nimport { Settings } from '../types/index.js';\nimport { createFileMapping } from '../formats/files/fileMapping.js';\nimport { getGitUnifiedDiff } from '../utils/gitDiff.js';\nimport { gt } from '../utils/gt.js';\nimport { FileReference, SubmitUserEditDiff } from 'generaltranslation/types';\nimport os from 'node:os';\nimport { randomUUID } from 'node:crypto';\nimport { hashStringSync } from '../utils/hash.js';\nimport { extractJson } from '../formats/json/extractJson.js';\nimport { extractYaml } from '../formats/yaml/extractYaml.js';\n\ntype LatestDownloadedVersion = {\n versionId: string;\n entry: DownloadedTranslation;\n};\n\nconst findLatestDownloadedVersion = (\n entryMap: EntryMap,\n fileId: string,\n locale: string\n): LatestDownloadedVersion | null => {\n const entry = entryMap.get(fileId);\n if (!entry) return null;\n\n const translation = entry.translations[locale];\n if (!translation) return null;\n\n return { versionId: entry.versionId, entry: translation };\n};\n\n/**\n * Collects local user edits by diffing the latest downloaded server translation version\n * against the current local translation file, and submits the diffs upstream.\n *\n * Must run before enqueueing new translations so rules are available to the generator.\n */\nexport async function collectAndSendUserEditDiffs(\n files: FileReference[],\n settings: Settings\n): Promise<boolean> {\n if (!settings.files) return false;\n\n const { resolvedPaths, placeholderPaths, transformPaths, transformFormats } =\n settings.files;\n const fileMapping = createFileMapping(\n resolvedPaths,\n placeholderPaths,\n transformPaths,\n transformFormats,\n settings.locales,\n settings.defaultLocale\n );\n\n const { entryMap } = readLockfile(settings);\n\n const tempDir = path.join(os.tmpdir(), randomUUID());\n if (!fs.existsSync(tempDir)) fs.mkdirSync(tempDir, { recursive: true });\n\n // Build candidates for diff and batch-fetch server contents\n type DiffCandidate = {\n branchId: string;\n fileName: string;\n fileId: string;\n versionId: string;\n locale: string; // resolved\n outputPath: string;\n };\n const candidates: DiffCandidate[] = [];\n\n for (const uploadedFile of files) {\n for (const locale of settings.locales) {\n const outputPath = fileMapping[locale]?.[uploadedFile.fileName] ?? null;\n if (!outputPath) continue;\n if (!fs.existsSync(outputPath)) continue;\n\n const latestDownloaded = findLatestDownloadedVersion(\n entryMap,\n uploadedFile.fileId,\n locale\n );\n\n if (!latestDownloaded) continue;\n const downloadedVersion = latestDownloaded.entry;\n\n // Skip if local file matches the last postprocessed content hash\n if (downloadedVersion.postProcessHash) {\n try {\n const localContent = await fs.promises.readFile(outputPath, 'utf8');\n const localHash = hashStringSync(localContent);\n if (localHash === downloadedVersion.postProcessHash) {\n continue;\n }\n } catch {\n // If hash check fails, fall through to diff\n }\n }\n\n candidates.push({\n branchId: uploadedFile.branchId,\n fileName: uploadedFile.fileName,\n fileId: uploadedFile.fileId,\n versionId: latestDownloaded.versionId,\n locale: locale,\n outputPath,\n });\n }\n }\n\n const collectedDiffs: SubmitUserEditDiff[] = [];\n\n if (candidates.length > 0) {\n const fileQueryData = candidates.map((c) => ({\n versionId: c.versionId,\n locale: c.locale,\n fileId: c.fileId,\n branchId: c.branchId,\n }));\n\n // Single batched check to obtain translation IDs\n const checkResponse = await gt.queryFileData({\n translatedFiles: fileQueryData,\n });\n const translatedFiles =\n checkResponse.translatedFiles?.filter((t) => t.completedAt) ?? [];\n\n const serverContentByKey = new Map<string, string>();\n try {\n const resp = await gt.downloadFileBatch(\n translatedFiles.map((file) => ({\n branchId: file.branchId,\n fileId: file.fileId,\n locale: file.locale,\n versionId: file.versionId,\n }))\n );\n const files = resp?.files || [];\n for (const f of files) {\n serverContentByKey.set(\n `${f.branchId}:${f.fileId}:${f.versionId}:${f.locale}`,\n f.data\n );\n }\n } catch {\n // Ignore chunk failures; proceed with what we have\n }\n\n // Compute diffs using fetched server contents\n for (const c of candidates) {\n const key = `${c.branchId}:${c.fileId}:${c.versionId}:${c.locale}`;\n const serverContent = serverContentByKey.get(key);\n if (!serverContent) continue;\n\n try {\n const safeName = Buffer.from(\n `${c.branchId}:${c.fileId}:${c.versionId}:${c.locale}`\n )\n .toString('base64')\n .replace(/=+$/g, '');\n const tempServerFile = path.join(tempDir, `${safeName}.server`);\n await fs.promises.writeFile(tempServerFile, serverContent, 'utf8');\n\n const diff = await getGitUnifiedDiff(tempServerFile, c.outputPath);\n try {\n await fs.promises.unlink(tempServerFile);\n } catch {\n // Ignore cleanup errors for temporary comparison files.\n }\n\n if (diff && diff.trim().length > 0) {\n const rawLocalContent = await fs.promises.readFile(\n c.outputPath,\n 'utf8'\n );\n\n // For JSON files with jsonSchema config, extract to composite format\n let localContent = rawLocalContent;\n if (\n c.fileName.endsWith('.json') &&\n settings.options?.jsonSchema &&\n c.locale !== settings.defaultLocale\n ) {\n const extractedContent = extractJson(\n rawLocalContent,\n c.fileName,\n settings.options,\n c.locale,\n settings.defaultLocale\n );\n if (extractedContent) {\n localContent = extractedContent;\n }\n } else if (\n (c.fileName.endsWith('.yaml') || c.fileName.endsWith('.yml')) &&\n settings.options?.yamlSchema &&\n c.locale !== settings.defaultLocale\n ) {\n const extractedContent = extractYaml(\n rawLocalContent,\n c.fileName,\n settings.options\n );\n if (extractedContent) {\n localContent = extractedContent;\n }\n }\n\n collectedDiffs.push({\n fileName: c.fileName,\n locale: c.locale,\n diff,\n branchId: c.branchId,\n versionId: c.versionId,\n fileId: c.fileId,\n localContent,\n } satisfies SubmitUserEditDiff);\n }\n } catch {\n // Ignore failures for this file\n }\n }\n }\n\n if (collectedDiffs.length > 0) {\n await gt.submitUserEditDiffs({ diffs: collectedDiffs });\n }\n\n return collectedDiffs.length > 0;\n}\n"],"mappings":"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"}