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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localizeStaticImports.js","names":["fs","path"],"sources":["../../src/utils/localizeStaticImports.ts"],"sourcesContent":["import * as fs from 'fs';\nimport * as path from 'path';\nimport type {\n AdditionalOptions,\n StaticLocalizationSettings,\n} from '../types/index.js';\nimport { createFileMapping } from '../formats/files/fileMapping.js';\nimport micromatch from 'micromatch';\nimport { unified } from 'unified';\nimport remarkParse from 'remark-parse';\nimport remarkMdx from 'remark-mdx';\nimport remarkFrontmatter from 'remark-frontmatter';\nimport { visit } from 'unist-util-visit';\nimport type { Root } from 'mdast';\nimport type { MdxjsEsm } from 'mdast-util-mdxjs-esm';\n\nconst { isMatch } = micromatch;\n\nexport type StaticImportSettings = StaticLocalizationSettings;\n\n/**\n * Localizes static imports in content files.\n * Currently only supported for md and mdx files. (/docs/ -> /[locale]/docs/)\n * @param settings - The settings object containing the project configuration.\n * @returns void\n *\n * @TODO This is an experimental feature, and only works in very specific cases. This needs to be improved before\n * it can be enabled by default.\n *\n * Before this becomes a non-experimental feature, we need to:\n * - Support more file types\n * - Support more complex paths\n */\nexport default async function localizeStaticImports(\n settings: StaticImportSettings,\n includeFiles?: Set<string>\n) {\n if (\n !settings.files ||\n (Object.keys(settings.files.placeholderPaths).length === 1 &&\n settings.files.placeholderPaths.gt)\n ) {\n return;\n }\n const { resolvedPaths: sourceFiles } = settings.files;\n\n const fileMapping = createFileMapping(\n sourceFiles,\n settings.files.placeholderPaths,\n settings.files.transformPaths ?? {},\n settings.files.transformFormats ?? {},\n settings.locales,\n settings.defaultLocale\n );\n\n // Process all file types at once with a single call\n const processPromises = [];\n\n // First, process default locale files (from source files)\n // This is needed because they might not be in the fileMapping if they're not being translated\n if (!fileMapping[settings.defaultLocale] && !includeFiles) {\n const defaultLocaleFiles: string[] = [];\n\n // Collect all .md and .mdx files from sourceFiles\n if (sourceFiles.md) {\n defaultLocaleFiles.push(...sourceFiles.md);\n }\n if (sourceFiles.mdx) {\n defaultLocaleFiles.push(...sourceFiles.mdx);\n }\n\n if (defaultLocaleFiles.length > 0) {\n const defaultPromise = Promise.all(\n defaultLocaleFiles.map(async (filePath: string) => {\n // Check if file exists before processing\n if (!fs.existsSync(filePath)) {\n return;\n }\n // Get file content\n const fileContent = await fs.promises.readFile(filePath, 'utf8');\n // Localize the file using default locale\n const localizedFile = localizeStaticImportsForFile(\n fileContent,\n settings.defaultLocale,\n settings.defaultLocale, // Process as default locale\n settings.options?.docsHideDefaultLocaleImport || false,\n settings.options?.docsImportPattern,\n settings.options?.excludeStaticImports,\n filePath,\n settings.options\n );\n // Write the localized file back to the same path\n await fs.promises.writeFile(filePath, localizedFile);\n })\n );\n processPromises.push(defaultPromise);\n }\n }\n\n // Then process all other locales from fileMapping\n const mappingPromises = Object.entries(fileMapping).map(\n async ([locale, filesMap]) => {\n // Get all files that are md or mdx\n const targetFiles = Object.values(filesMap).filter(\n (p) =>\n (p.endsWith('.md') || p.endsWith('.mdx')) &&\n (!includeFiles || includeFiles.has(p))\n );\n\n // Replace the placeholder path with the target path\n await Promise.all(\n targetFiles.map(async (filePath) => {\n // Check if file exists before processing\n if (!fs.existsSync(filePath)) {\n return;\n }\n // Get file content\n const fileContent = await fs.promises.readFile(filePath, 'utf8');\n // Localize the file\n const localizedFile = localizeStaticImportsForFile(\n fileContent,\n settings.defaultLocale,\n locale,\n settings.options?.docsHideDefaultLocaleImport || false,\n settings.options?.docsImportPattern,\n settings.options?.excludeStaticImports,\n filePath,\n settings.options\n );\n // Write the localized file to the target path\n await fs.promises.writeFile(filePath, localizedFile);\n })\n );\n }\n );\n processPromises.push(...mappingPromises);\n\n await Promise.all(processPromises);\n}\n\ninterface ImportTransformResult {\n content: string;\n hasChanges: boolean;\n transformedImports: Array<{\n originalPath: string;\n newPath: string;\n }>;\n}\n\n/**\n * Determines if an import path should be processed based on pattern matching\n */\nfunction shouldProcessImportPath(\n importPath: string,\n patternHead: string,\n targetLocale: string,\n defaultLocale: string\n): boolean {\n const patternWithoutSlash = patternHead.replace(/\\/$/, '');\n\n if (targetLocale === defaultLocale) {\n // For default locale processing, check if path contains the pattern\n return importPath.includes(patternWithoutSlash);\n } else {\n // For non-default locales, check if path starts with pattern\n return importPath.includes(patternWithoutSlash);\n }\n}\n\n/**\n * Checks if an import path should be excluded based on exclusion patterns\n */\nfunction isImportPathExcluded(\n importPath: string,\n exclude: string[],\n defaultLocale: string\n): boolean {\n const excludePatterns = exclude.map((p) =>\n p.replace(/\\[locale\\]/g, defaultLocale)\n );\n return excludePatterns.some((pattern) => isMatch(importPath, pattern));\n}\n\n/**\n * Transforms import path for default locale processing\n */\nfunction transformDefaultLocaleImportPath(\n fullPath: string,\n patternHead: string,\n defaultLocale: string,\n hideDefaultLocale: boolean\n): string | null {\n if (hideDefaultLocale) {\n // Remove locale from imports that have it: '/snippets/en/file.mdx' -> '/snippets/file.mdx'\n if (fullPath.includes(`/${defaultLocale}/`)) {\n return fullPath.replace(`/${defaultLocale}/`, '/');\n } else if (fullPath.endsWith(`/${defaultLocale}`)) {\n return fullPath.replace(`/${defaultLocale}`, '');\n }\n return null; // Path doesn't have default locale\n } else {\n // Add locale to imports that don't have it: '/snippets/file.mdx' -> '/snippets/en/file.mdx'\n if (\n fullPath.includes(`/${defaultLocale}/`) ||\n fullPath.endsWith(`/${defaultLocale}`)\n ) {\n return null; // Already has default locale\n }\n\n if (fullPath.startsWith(patternHead)) {\n const pathAfterHead = fullPath.slice(patternHead.length);\n if (pathAfterHead) {\n return `${patternHead}${defaultLocale}/${pathAfterHead}`;\n } else {\n return `${patternHead.replace(/\\/$/, '')}/${defaultLocale}`;\n }\n }\n return null; // Path doesn't match pattern\n }\n}\n\n/**\n * Transforms import path for non-default locale processing with hideDefaultLocale=true\n */\nfunction transformNonDefaultLocaleImportPathWithHidden(\n fullPath: string,\n patternHead: string,\n targetLocale: string,\n defaultLocale: string\n): string | null {\n // Check if already localized\n if (\n fullPath.startsWith(`${patternHead}${targetLocale}/`) ||\n fullPath === `${patternHead}${targetLocale}`\n ) {\n return null;\n }\n\n // Replace default locale with target locale\n const expectedPathWithDefaultLocale = `${patternHead}${defaultLocale}`;\n if (\n fullPath.startsWith(`${expectedPathWithDefaultLocale}/`) ||\n fullPath === expectedPathWithDefaultLocale\n ) {\n return fullPath.replace(\n `${patternHead}${defaultLocale}`,\n `${patternHead}${targetLocale}`\n );\n }\n\n // Handle exact pattern match\n if (fullPath === patternHead.replace(/\\/$/, '')) {\n return `${patternHead.replace(/\\/$/, '')}/${targetLocale}`;\n }\n\n // Add target locale to path without any locale\n const pathAfterHead = fullPath.slice(patternHead.length);\n return pathAfterHead\n ? `${patternHead}${targetLocale}/${pathAfterHead}`\n : `${patternHead}${targetLocale}`;\n}\n\n/**\n * Transforms import path for non-default locale processing with hideDefaultLocale=false\n */\nfunction transformNonDefaultLocaleImportPath(\n fullPath: string,\n patternHead: string,\n targetLocale: string,\n defaultLocale: string\n): string | null {\n // If already localized to target, skip\n const expectedPathWithTarget = `${patternHead}${targetLocale}`;\n if (\n fullPath.startsWith(`${expectedPathWithTarget}/`) ||\n fullPath === expectedPathWithTarget\n ) {\n return null;\n }\n const expectedPathWithLocale = `${patternHead}${defaultLocale}`;\n\n if (\n fullPath.startsWith(`${expectedPathWithLocale}/`) ||\n fullPath === expectedPathWithLocale\n ) {\n // Replace existing default locale with target locale\n return fullPath.replace(\n `${patternHead}${defaultLocale}`,\n `${patternHead}${targetLocale}`\n );\n } else if (fullPath.startsWith(patternHead)) {\n // Add target locale to path that doesn't have any locale\n const pathAfterHead = fullPath.slice(patternHead.length);\n if (pathAfterHead) {\n return `${patternHead}${targetLocale}/${pathAfterHead}`;\n } else {\n return `${patternHead.replace(/\\/$/, '')}/${targetLocale}`;\n }\n }\n\n return null; // Path doesn't match pattern\n}\n\n/**\n * Main import path transformation function that delegates to specific scenarios\n */\nfunction transformImportPath(\n fullPath: string,\n patternHead: string,\n targetLocale: string,\n defaultLocale: string,\n hideDefaultLocale: boolean,\n currentFilePath?: string,\n projectRoot: string = process.cwd(), // fallback if not provided\n rewrites?: Array<{ match: string; replace: string }>\n): string | null {\n // Apply explicit rewrites first (e.g., Docusaurus @site/docs -> @site/i18n/[locale]/...)\n if (rewrites && rewrites.length > 0) {\n const localeMap: Record<string, string> = {\n '[locale]': targetLocale,\n '[defaultLocale]': defaultLocale,\n };\n\n for (const { match, replace } of rewrites) {\n const resolvedMatch = match.replace(\n /\\[locale\\]|\\[defaultLocale\\]/g,\n (token) => localeMap[token] || token\n );\n if (fullPath.startsWith(resolvedMatch)) {\n const remainder = fullPath.slice(resolvedMatch.length);\n const resolvedReplace = replace.replace(\n /\\[locale\\]|\\[defaultLocale\\]/g,\n (token) => localeMap[token] || token\n );\n let newPath: string;\n if (resolvedReplace.endsWith('/')) {\n newPath = `${resolvedReplace}${remainder.replace(/^\\//, '')}`;\n } else if (remainder.startsWith('/')) {\n newPath = `${resolvedReplace}${remainder}`;\n } else {\n newPath = `${resolvedReplace}/${remainder}`;\n }\n return newPath;\n }\n }\n }\n\n let newPath: string | null;\n\n if (targetLocale === defaultLocale) {\n newPath = transformDefaultLocaleImportPath(\n fullPath,\n patternHead,\n defaultLocale,\n hideDefaultLocale\n );\n } else if (hideDefaultLocale) {\n newPath = transformNonDefaultLocaleImportPathWithHidden(\n fullPath,\n patternHead,\n targetLocale,\n defaultLocale\n );\n } else {\n newPath = transformNonDefaultLocaleImportPath(\n fullPath,\n patternHead,\n targetLocale,\n defaultLocale\n );\n }\n\n if (!newPath) return null;\n\n if (currentFilePath) {\n let resolvedPath: string;\n if (newPath.startsWith('/')) {\n // Interpret as project-root relative\n resolvedPath = path.join(projectRoot, newPath.replace(/^\\//, ''));\n } else {\n // Relative to current file\n const currentDir = path.dirname(currentFilePath);\n resolvedPath = path.resolve(currentDir, newPath);\n }\n\n if (!fs.existsSync(resolvedPath)) {\n return null;\n }\n }\n\n return newPath;\n}\n\n/**\n * AST-based transformation for MDX files using remark-mdx\n */\nfunction transformMdxImports(\n mdxContent: string,\n defaultLocale: string,\n targetLocale: string,\n hideDefaultLocale: boolean,\n pattern: string = '/[locale]',\n exclude: string[] = [],\n currentFilePath?: string,\n options?: AdditionalOptions\n): ImportTransformResult {\n const transformedImports: Array<{ originalPath: string; newPath: string }> =\n [];\n\n // Don't auto-prefix relative patterns that start with . or ..\n if (!pattern.startsWith('/') && !pattern.startsWith('.')) {\n pattern = '/' + pattern;\n }\n\n const patternHead = pattern.split('[locale]')[0];\n\n // Quick check: if the file doesn't contain the pattern, skip expensive AST parsing\n // For default locale processing, we also need to check if content might need adjustment\n if (targetLocale === defaultLocale) {\n // For default locale files, we always need to check as we're looking for either:\n // - paths without locale (when hideDefaultLocale=false)\n // - paths with default locale (when hideDefaultLocale=true)\n const patternWithoutSlash = patternHead.replace(/\\/$/, '');\n if (!mdxContent.includes(patternWithoutSlash)) {\n return {\n content: mdxContent,\n hasChanges: false,\n transformedImports: [],\n };\n }\n } else {\n // For non-default locales, use the original logic\n if (!mdxContent.includes(patternHead.replace(/\\/$/, ''))) {\n return {\n content: mdxContent,\n hasChanges: false,\n transformedImports: [],\n };\n }\n }\n\n // Parse the MDX content into an AST\n let processedAst: Root;\n try {\n const parseProcessor = unified()\n .use(remarkParse)\n .use(remarkFrontmatter, ['yaml', 'toml'])\n .use(remarkMdx);\n\n const ast = parseProcessor.parse(mdxContent);\n processedAst = parseProcessor.runSync(ast) as Root;\n } catch {\n return transformImportsStringFallback(\n mdxContent,\n defaultLocale,\n targetLocale,\n hideDefaultLocale,\n pattern,\n exclude,\n currentFilePath,\n options\n );\n }\n\n let content = mdxContent;\n\n // Visit only mdxjsEsm nodes (import/export statements) to collect replacements\n visit(processedAst, 'mdxjsEsm', (node: MdxjsEsm) => {\n if (node.value && node.value.includes(patternHead.replace(/\\/$/, ''))) {\n // Find import lines that need transformation\n const lines = node.value.split('\\n');\n\n lines.forEach((line: string) => {\n // Only process import lines that match our pattern\n if (!line.trim().startsWith('import ')) {\n return;\n }\n\n // Check if this line should be processed\n if (\n !shouldProcessImportPath(\n line,\n patternHead,\n targetLocale,\n defaultLocale\n )\n ) {\n return;\n }\n\n // Extract the path from the import statement\n const quotes = ['\"', \"'\", '`'];\n\n for (const quote of quotes) {\n // Try both with and without trailing slash\n let startPattern = `${quote}${patternHead}`;\n let startIndex = line.indexOf(startPattern);\n\n // If pattern has trailing slash but path doesn't, try without slash\n if (startIndex === -1 && patternHead.endsWith('/')) {\n const patternWithoutSlash = patternHead.slice(0, -1);\n startPattern = `${quote}${patternWithoutSlash}`;\n startIndex = line.indexOf(startPattern);\n }\n\n if (startIndex === -1) continue;\n\n const pathStart = startIndex + 1; // After the quote\n const pathEnd = line.indexOf(quote, pathStart);\n\n if (pathEnd === -1) continue;\n\n const fullPath = line.slice(pathStart, pathEnd);\n\n // Transform the import path\n const newPath = transformImportPath(\n fullPath,\n patternHead,\n targetLocale,\n defaultLocale,\n hideDefaultLocale,\n currentFilePath,\n process.cwd(),\n options?.docsImportRewrites\n );\n\n if (!newPath) {\n continue; // No transformation needed\n }\n\n // Check exclusions\n if (isImportPathExcluded(fullPath, exclude, defaultLocale)) {\n continue;\n }\n\n // Apply the transformation to the original content\n // Simply replace the import path with the new path\n content = content.replace(\n `${quote}${fullPath}${quote}`,\n `${quote}${newPath}${quote}`\n );\n transformedImports.push({ originalPath: fullPath, newPath });\n break;\n }\n });\n }\n });\n\n return {\n content,\n hasChanges: transformedImports.length > 0,\n transformedImports,\n };\n}\n\n/**\n * String-based fallback for import localization when MDX parsing fails (e.g., on .md files)\n */\nfunction transformImportsStringFallback(\n mdxContent: string,\n defaultLocale: string,\n targetLocale: string,\n hideDefaultLocale: boolean,\n pattern: string = '/[locale]',\n exclude: string[] = [],\n currentFilePath?: string,\n options?: AdditionalOptions\n): ImportTransformResult {\n const transformedImports: Array<{ originalPath: string; newPath: string }> =\n [];\n\n if (!pattern.startsWith('/') && !pattern.startsWith('.')) {\n pattern = '/' + pattern;\n }\n const patternHead = pattern.split('[locale]')[0];\n\n let content = mdxContent;\n const importRegex = /import\\s+[^'\"]*['\"]([^'\"]+)['\"]\\s*;?/g;\n let match: RegExpExecArray | null;\n\n while ((match = importRegex.exec(mdxContent)) !== null) {\n const fullMatch = match[0];\n const importPath = match[1];\n\n if (\n !shouldProcessImportPath(\n importPath,\n patternHead,\n targetLocale,\n defaultLocale\n )\n ) {\n continue;\n }\n\n if (isImportPathExcluded(importPath, exclude, defaultLocale)) {\n continue;\n }\n\n const newPath = transformImportPath(\n importPath,\n patternHead,\n targetLocale,\n defaultLocale,\n hideDefaultLocale,\n currentFilePath,\n process.cwd(),\n options?.docsImportRewrites\n );\n\n if (!newPath) continue;\n\n const updatedImport = fullMatch.replace(importPath, newPath);\n content = content.replace(fullMatch, updatedImport);\n transformedImports.push({ originalPath: importPath, newPath });\n }\n\n return {\n content,\n hasChanges: transformedImports.length > 0,\n transformedImports,\n };\n}\n\n/**\n * AST-based transformation for MDX files only\n */\nfunction localizeStaticImportsForFile(\n file: string,\n defaultLocale: string,\n targetLocale: string,\n hideDefaultLocale: boolean,\n pattern: string = '/[locale]', // eg /docs/[locale] or /[locale]\n exclude: string[] = [],\n currentFilePath?: string,\n options?: AdditionalOptions\n): string {\n // For MDX files, use AST-based transformation\n const result = transformMdxImports(\n file,\n defaultLocale,\n targetLocale,\n hideDefaultLocale,\n pattern,\n exclude,\n currentFilePath,\n options\n );\n return result.content;\n}\n"],"mappings":"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"}