gt 2.14.35 → 2.14.36

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 (429) hide show
  1. package/CHANGELOG.md +16 -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.js +104 -108
  256. package/dist/react/jsx/utils/resolveImportPath.js.map +1 -0
  257. package/dist/react/jsx/utils/stringParsing/derivation/containsDeriveCall.js +18 -24
  258. package/dist/react/jsx/utils/stringParsing/derivation/containsDeriveCall.js.map +1 -0
  259. package/dist/react/jsx/utils/stringParsing/derivation/handleDerivation.js +412 -579
  260. package/dist/react/jsx/utils/stringParsing/derivation/handleDerivation.js.map +1 -0
  261. package/dist/react/jsx/utils/stringParsing/derivation/index.js +57 -67
  262. package/dist/react/jsx/utils/stringParsing/derivation/index.js.map +1 -0
  263. package/dist/react/jsx/utils/stringParsing/derivation/isDeriveCall.js +26 -36
  264. package/dist/react/jsx/utils/stringParsing/derivation/isDeriveCall.js.map +1 -0
  265. package/dist/react/jsx/utils/stringParsing/processTaggedTemplateCall/handleTaggedTemplateTranslationCall.js +29 -24
  266. package/dist/react/jsx/utils/stringParsing/processTaggedTemplateCall/handleTaggedTemplateTranslationCall.js.map +1 -0
  267. package/dist/react/jsx/utils/stringParsing/processTaggedTemplateCall/index.js +34 -32
  268. package/dist/react/jsx/utils/stringParsing/processTaggedTemplateCall/index.js.map +1 -0
  269. package/dist/react/jsx/utils/stringParsing/processTranslationCall/extractStringEntryMetadata.js +80 -117
  270. package/dist/react/jsx/utils/stringParsing/processTranslationCall/extractStringEntryMetadata.js.map +1 -0
  271. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleDeriveTranslationCall.js +24 -19
  272. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleDeriveTranslationCall.js.map +1 -0
  273. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleInvalidTranslationCall.js +18 -21
  274. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleInvalidTranslationCall.js.map +1 -0
  275. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleLiteralTranslationCall.js +45 -50
  276. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleLiteralTranslationCall.js.map +1 -0
  277. package/dist/react/jsx/utils/stringParsing/processTranslationCall/index.js +54 -59
  278. package/dist/react/jsx/utils/stringParsing/processTranslationCall/index.js.map +1 -0
  279. package/dist/react/jsx/utils/stringParsing/processTranslationCall/routeTranslationCall.js +56 -69
  280. package/dist/react/jsx/utils/stringParsing/processTranslationCall/routeTranslationCall.js.map +1 -0
  281. package/dist/react/jsx/utils/validateStringFunction.js +21 -29
  282. package/dist/react/jsx/utils/validateStringFunction.js.map +1 -0
  283. package/dist/react/jsx/wrapJsx.js +192 -375
  284. package/dist/react/jsx/wrapJsx.js.map +1 -0
  285. package/dist/react/parse/addVitePlugin/index.js +40 -34
  286. package/dist/react/parse/addVitePlugin/index.js.map +1 -0
  287. package/dist/react/parse/addVitePlugin/installCompiler.js +18 -20
  288. package/dist/react/parse/addVitePlugin/installCompiler.js.map +1 -0
  289. package/dist/react/parse/addVitePlugin/updateViteConfig.js +107 -111
  290. package/dist/react/parse/addVitePlugin/updateViteConfig.js.map +1 -0
  291. package/dist/react/parse/addVitePlugin/utils/addCompilerImport.js +23 -26
  292. package/dist/react/parse/addVitePlugin/utils/addCompilerImport.js.map +1 -0
  293. package/dist/react/parse/addVitePlugin/utils/addPluginInvocation.js +29 -43
  294. package/dist/react/parse/addVitePlugin/utils/addPluginInvocation.js.map +1 -0
  295. package/dist/react/parse/addVitePlugin/utils/checkCompilerImport.js +70 -104
  296. package/dist/react/parse/addVitePlugin/utils/checkCompilerImport.js.map +1 -0
  297. package/dist/react/parse/addVitePlugin/utils/checkPluginInvocation.js +23 -29
  298. package/dist/react/parse/addVitePlugin/utils/checkPluginInvocation.js.map +1 -0
  299. package/dist/react/parse/createDictionaryUpdates.js +121 -185
  300. package/dist/react/parse/createDictionaryUpdates.js.map +1 -0
  301. package/dist/react/parse/createInlineUpdates.js +123 -139
  302. package/dist/react/parse/createInlineUpdates.js.map +1 -0
  303. package/dist/react/parse/wrapContent.js +131 -156
  304. package/dist/react/parse/wrapContent.js.map +1 -0
  305. package/dist/react/utils/flattenDictionary.js +55 -70
  306. package/dist/react/utils/flattenDictionary.js.map +1 -0
  307. package/dist/react/utils/getEntryAndMetadata.js +14 -10
  308. package/dist/react/utils/getEntryAndMetadata.js.map +1 -0
  309. package/dist/react/utils/getVariableName.js +36 -33
  310. package/dist/react/utils/getVariableName.js.map +1 -0
  311. package/dist/setup/detectFramework.js +85 -102
  312. package/dist/setup/detectFramework.js.map +1 -0
  313. package/dist/setup/frameworkUtils.js +17 -28
  314. package/dist/setup/frameworkUtils.js.map +1 -0
  315. package/dist/setup/userInput.js +24 -31
  316. package/dist/setup/userInput.js.map +1 -0
  317. package/dist/setup/wizard.js +141 -143
  318. package/dist/setup/wizard.js.map +1 -0
  319. package/dist/state/mintlifyRefMap.js +12 -9
  320. package/dist/state/mintlifyRefMap.js.map +1 -0
  321. package/dist/state/recentDownloads.js +26 -23
  322. package/dist/state/recentDownloads.js.map +1 -0
  323. package/dist/state/translateWarnings.js +17 -8
  324. package/dist/state/translateWarnings.js.map +1 -0
  325. package/dist/translation/parse.js +77 -98
  326. package/dist/translation/parse.js.map +1 -0
  327. package/dist/translation/stage.js +28 -43
  328. package/dist/translation/stage.js.map +1 -0
  329. package/dist/translation/validate.js +68 -91
  330. package/dist/translation/validate.js.map +1 -0
  331. package/dist/types/libraries.js +93 -91
  332. package/dist/types/libraries.js.map +1 -0
  333. package/dist/types/parsing.js +19 -10
  334. package/dist/types/parsing.js.map +1 -0
  335. package/dist/utils/addExplicitAnchorIds.js +270 -389
  336. package/dist/utils/addExplicitAnchorIds.js.map +1 -0
  337. package/dist/utils/calculateTimeoutMs.js +11 -6
  338. package/dist/utils/calculateTimeoutMs.js.map +1 -0
  339. package/dist/utils/constants.js +15 -12
  340. package/dist/utils/constants.js.map +1 -0
  341. package/dist/utils/credentials.js +67 -114
  342. package/dist/utils/credentials.js.map +1 -0
  343. package/dist/utils/fetch.js +22 -20
  344. package/dist/utils/fetch.js.map +1 -0
  345. package/dist/utils/flattenJsonFiles.js +27 -34
  346. package/dist/utils/flattenJsonFiles.js.map +1 -0
  347. package/dist/utils/gitDiff.js +30 -32
  348. package/dist/utils/gitDiff.js.map +1 -0
  349. package/dist/utils/gt.js +7 -2
  350. package/dist/utils/gt.js.map +1 -0
  351. package/dist/utils/hash.js +14 -9
  352. package/dist/utils/hash.js.map +1 -0
  353. package/dist/utils/headers.js +10 -13
  354. package/dist/utils/headers.js.map +1 -0
  355. package/dist/utils/installPackage.js +70 -75
  356. package/dist/utils/installPackage.js.map +1 -0
  357. package/dist/utils/localizeRelativeAssets.js +114 -157
  358. package/dist/utils/localizeRelativeAssets.js.map +1 -0
  359. package/dist/utils/localizeStaticImports.js +229 -371
  360. package/dist/utils/localizeStaticImports.js.map +1 -0
  361. package/dist/utils/localizeStaticUrls.js +241 -424
  362. package/dist/utils/localizeStaticUrls.js.map +1 -0
  363. package/dist/utils/mintlifyTitleFallback.js +64 -72
  364. package/dist/utils/mintlifyTitleFallback.js.map +1 -0
  365. package/dist/utils/monorepoVersionCheck.js +177 -215
  366. package/dist/utils/monorepoVersionCheck.js.map +1 -0
  367. package/dist/utils/packageInfo.js +17 -16
  368. package/dist/utils/packageInfo.js.map +1 -0
  369. package/dist/utils/packageJson.js +51 -66
  370. package/dist/utils/packageJson.js.map +1 -0
  371. package/dist/utils/packageManager.js +237 -260
  372. package/dist/utils/packageManager.js.map +1 -0
  373. package/dist/utils/parse/needsCJS.js +36 -69
  374. package/dist/utils/parse/needsCJS.js.map +1 -0
  375. package/dist/utils/persistPostprocessHashes.js +30 -32
  376. package/dist/utils/persistPostprocessHashes.js.map +1 -0
  377. package/dist/utils/processAnchorIds.js +32 -54
  378. package/dist/utils/processAnchorIds.js.map +1 -0
  379. package/dist/utils/processOpenApi.js +469 -578
  380. package/dist/utils/processOpenApi.js.map +1 -0
  381. package/dist/utils/resolveMintlifyRefs.js +89 -105
  382. package/dist/utils/resolveMintlifyRefs.js.map +1 -0
  383. package/dist/utils/resolvePublish.js +46 -54
  384. package/dist/utils/resolvePublish.js.map +1 -0
  385. package/dist/utils/sanitizeFileContent.js +20 -27
  386. package/dist/utils/sanitizeFileContent.js.map +1 -0
  387. package/dist/utils/sharedStaticAssets.js +248 -366
  388. package/dist/utils/sharedStaticAssets.js.map +1 -0
  389. package/dist/utils/splitMintlifyLanguageRefs.js +208 -282
  390. package/dist/utils/splitMintlifyLanguageRefs.js.map +1 -0
  391. package/dist/utils/validateMdx.js +26 -23
  392. package/dist/utils/validateMdx.js.map +1 -0
  393. package/dist/utils/wrapPlainUrls.js +58 -70
  394. package/dist/utils/wrapPlainUrls.js.map +1 -0
  395. package/dist/workflows/download.js +92 -126
  396. package/dist/workflows/download.js.map +1 -0
  397. package/dist/workflows/enqueue.js +47 -54
  398. package/dist/workflows/enqueue.js.map +1 -0
  399. package/dist/workflows/publish.js +29 -29
  400. package/dist/workflows/publish.js.map +1 -0
  401. package/dist/workflows/setupProject.js +39 -40
  402. package/dist/workflows/setupProject.js.map +1 -0
  403. package/dist/workflows/stage.js +61 -65
  404. package/dist/workflows/stage.js.map +1 -0
  405. package/dist/workflows/steps/BranchStep.js +118 -163
  406. package/dist/workflows/steps/BranchStep.js.map +1 -0
  407. package/dist/workflows/steps/DownloadStep.js +107 -137
  408. package/dist/workflows/steps/DownloadStep.js.map +1 -0
  409. package/dist/workflows/steps/EnqueueStep.js +32 -32
  410. package/dist/workflows/steps/EnqueueStep.js.map +1 -0
  411. package/dist/workflows/steps/PollJobsStep.js +208 -292
  412. package/dist/workflows/steps/PollJobsStep.js.map +1 -0
  413. package/dist/workflows/steps/PublishStep.js +33 -38
  414. package/dist/workflows/steps/PublishStep.js.map +1 -0
  415. package/dist/workflows/steps/SetupStep.js +71 -72
  416. package/dist/workflows/steps/SetupStep.js.map +1 -0
  417. package/dist/workflows/steps/TagStep.js +39 -44
  418. package/dist/workflows/steps/TagStep.js.map +1 -0
  419. package/dist/workflows/steps/UploadSourcesStep.js +108 -140
  420. package/dist/workflows/steps/UploadSourcesStep.js.map +1 -0
  421. package/dist/workflows/steps/UploadTranslationsStep.js +61 -71
  422. package/dist/workflows/steps/UploadTranslationsStep.js.map +1 -0
  423. package/dist/workflows/steps/UserEditDiffsStep.js +32 -34
  424. package/dist/workflows/steps/UserEditDiffsStep.js.map +1 -0
  425. package/dist/workflows/steps/WorkflowStep.js +6 -2
  426. package/dist/workflows/steps/WorkflowStep.js.map +1 -0
  427. package/dist/workflows/upload.js +45 -46
  428. package/dist/workflows/upload.js.map +1 -0
  429. package/package.json +14 -7
@@ -1,256 +1,218 @@
1
- import fs from 'node:fs';
2
- import path from 'node:path';
3
- import fg from 'fast-glob';
4
- import chalk from 'chalk';
5
- import { logger } from '../console/logger.js';
6
- import { Libraries } from '../types/libraries.js';
7
- import { resolveConfig } from '../config/resolveConfig.js';
8
- const SYNCED_VERSION_GROUPS = [
9
- {
10
- packages: [Libraries.GT_REACT, Libraries.GT_REACT_NATIVE],
11
- minVersion: '10.19.1',
12
- },
13
- ];
1
+ import { logger } from "../console/logger.js";
2
+ import "../types/libraries.js";
3
+ import { resolveConfig } from "../config/resolveConfig.js";
4
+ import chalk from "chalk";
5
+ import path from "node:path";
6
+ import fs from "node:fs";
7
+ import fg from "fast-glob";
8
+ //#region src/utils/monorepoVersionCheck.ts
9
+ const SYNCED_VERSION_GROUPS = [{
10
+ packages: ["gt-react", "gt-react-native"],
11
+ minVersion: "10.19.1"
12
+ }];
14
13
  const LOCKFILES = [
15
- 'pnpm-lock.yaml',
16
- 'package-lock.json',
17
- 'yarn.lock',
18
- 'bun.lock',
19
- 'bun.lockb',
20
- 'deno.lock',
14
+ "pnpm-lock.yaml",
15
+ "package-lock.json",
16
+ "yarn.lock",
17
+ "bun.lock",
18
+ "bun.lockb",
19
+ "deno.lock"
21
20
  ];
22
21
  /**
23
- * Walk up from startDir to find the monorepo root by looking for a lockfile.
24
- */
22
+ * Walk up from startDir to find the monorepo root by looking for a lockfile.
23
+ */
25
24
  function findMonorepoRoot(startDir) {
26
- let dir = startDir;
27
- while (true) {
28
- if (LOCKFILES.some((lf) => fs.existsSync(path.join(dir, lf)))) {
29
- return dir;
30
- }
31
- const parent = path.dirname(dir);
32
- if (parent === dir)
33
- return null;
34
- dir = parent;
35
- }
25
+ let dir = startDir;
26
+ while (true) {
27
+ if (LOCKFILES.some((lf) => fs.existsSync(path.join(dir, lf)))) return dir;
28
+ const parent = path.dirname(dir);
29
+ if (parent === dir) return null;
30
+ dir = parent;
31
+ }
36
32
  }
37
33
  /**
38
- * Scan for all directories containing package.json under the root.
39
- */
34
+ * Scan for all directories containing package.json under the root.
35
+ */
40
36
  function scanForPackageDirs(rootDir) {
41
- const matches = fg.sync('**/package.json', {
42
- cwd: rootDir,
43
- absolute: true,
44
- onlyFiles: true,
45
- ignore: ['**/node_modules/**'],
46
- });
47
- return matches.map((m) => path.dirname(m)).filter((dir) => dir !== rootDir);
37
+ return fg.sync("**/package.json", {
38
+ cwd: rootDir,
39
+ absolute: true,
40
+ onlyFiles: true,
41
+ ignore: ["**/node_modules/**"]
42
+ }).map((m) => path.dirname(m)).filter((dir) => dir !== rootDir);
48
43
  }
49
44
  /**
50
- * Creates a cached reader for workspace package.json files.
51
- * Cache is scoped to a single check invocation to avoid stale data.
52
- */
45
+ * Creates a cached reader for workspace package.json files.
46
+ * Cache is scoped to a single check invocation to avoid stale data.
47
+ */
53
48
  function createPackageJsonReader() {
54
- const cache = new Map();
55
- return (workspaceDir) => {
56
- if (cache.has(workspaceDir))
57
- return cache.get(workspaceDir) ?? null;
58
- const pkgPath = path.join(workspaceDir, 'package.json');
59
- if (!fs.existsSync(pkgPath)) {
60
- cache.set(workspaceDir, null);
61
- return null;
62
- }
63
- try {
64
- const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
65
- cache.set(workspaceDir, pkg);
66
- return pkg;
67
- }
68
- catch {
69
- cache.set(workspaceDir, null);
70
- return null;
71
- }
72
- };
49
+ const cache = /* @__PURE__ */ new Map();
50
+ return (workspaceDir) => {
51
+ if (cache.has(workspaceDir)) return cache.get(workspaceDir) ?? null;
52
+ const pkgPath = path.join(workspaceDir, "package.json");
53
+ if (!fs.existsSync(pkgPath)) {
54
+ cache.set(workspaceDir, null);
55
+ return null;
56
+ }
57
+ try {
58
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8"));
59
+ cache.set(workspaceDir, pkg);
60
+ return pkg;
61
+ } catch {
62
+ cache.set(workspaceDir, null);
63
+ return null;
64
+ }
65
+ };
73
66
  }
74
67
  /**
75
- * Check if a version specifier is a real semver version
76
- */
68
+ * Check if a version specifier is a real semver version
69
+ */
77
70
  function isSemverSpecifier(version) {
78
- return /^[\^~>=<*]?\d/.test(version);
71
+ return /^[\^~>=<*]?\d/.test(version);
79
72
  }
80
73
  /**
81
- * Get the declared version specifier for a GT package from a workspace's package.json.
82
- * Returns null if the package is not found or uses a non-semver protocol
83
- * (e.g. workspace:*, link:, file:, etc.)
84
- */
74
+ * Get the declared version specifier for a GT package from a workspace's package.json.
75
+ * Returns null if the package is not found or uses a non-semver protocol
76
+ * (e.g. workspace:*, link:, file:, etc.)
77
+ */
85
78
  function getDeclaredVersion(packageName, workspaceDir, readPkgJson) {
86
- const pkg = readPkgJson(workspaceDir);
87
- if (!pkg)
88
- return null;
89
- const deps = { ...pkg.dependencies, ...pkg.devDependencies };
90
- const version = deps[packageName];
91
- if (!version || !isSemverSpecifier(version))
92
- return null;
93
- return version;
79
+ const pkg = readPkgJson(workspaceDir);
80
+ if (!pkg) return null;
81
+ const version = {
82
+ ...pkg.dependencies,
83
+ ...pkg.devDependencies
84
+ }[packageName];
85
+ if (!version || !isSemverSpecifier(version)) return null;
86
+ return version;
94
87
  }
95
88
  /**
96
- * Scan all packages for mismatched GT package version specifiers.
97
- * Compares the declared versions in each package.json directly.
98
- */
89
+ * Scan all packages for mismatched GT package version specifiers.
90
+ * Compares the declared versions in each package.json directly.
91
+ */
99
92
  function findVersionMismatches(workspaceDirs, readPkgJson, libraries) {
100
- // Map: packageName -> Map<versionSpecifier, workspaceNames[]>
101
- const packageVersions = new Map();
102
- for (const wsDir of workspaceDirs) {
103
- const wsName = getWorkspaceName(wsDir, readPkgJson);
104
- for (const pkg of libraries) {
105
- const version = getDeclaredVersion(pkg, wsDir, readPkgJson);
106
- if (!version)
107
- continue;
108
- if (!packageVersions.has(pkg)) {
109
- packageVersions.set(pkg, new Map());
110
- }
111
- const versionMap = packageVersions.get(pkg);
112
- if (!versionMap.has(version)) {
113
- versionMap.set(version, []);
114
- }
115
- versionMap.get(version).push(wsName);
116
- }
117
- }
118
- const mismatches = [];
119
- for (const [packageName, versionMap] of packageVersions) {
120
- if (versionMap.size > 1) {
121
- mismatches.push({
122
- packageName,
123
- versions: getSortedVersionInfo(versionMap),
124
- });
125
- }
126
- }
127
- return [
128
- ...mismatches,
129
- ...findSyncedPackageVersionMismatches(packageVersions, libraries),
130
- ];
93
+ const packageVersions = /* @__PURE__ */ new Map();
94
+ for (const wsDir of workspaceDirs) {
95
+ const wsName = getWorkspaceName(wsDir, readPkgJson);
96
+ for (const pkg of libraries) {
97
+ const version = getDeclaredVersion(pkg, wsDir, readPkgJson);
98
+ if (!version) continue;
99
+ if (!packageVersions.has(pkg)) packageVersions.set(pkg, /* @__PURE__ */ new Map());
100
+ const versionMap = packageVersions.get(pkg);
101
+ if (!versionMap.has(version)) versionMap.set(version, []);
102
+ versionMap.get(version).push(wsName);
103
+ }
104
+ }
105
+ const mismatches = [];
106
+ for (const [packageName, versionMap] of packageVersions) if (versionMap.size > 1) mismatches.push({
107
+ packageName,
108
+ versions: getSortedVersionInfo(versionMap)
109
+ });
110
+ return [...mismatches, ...findSyncedPackageVersionMismatches(packageVersions, libraries)];
131
111
  }
132
112
  /**
133
- * Find mismatches between package names that must stay on the same version.
134
- */
113
+ * Find mismatches between package names that must stay on the same version.
114
+ */
135
115
  function findSyncedPackageVersionMismatches(packageVersions, libraries) {
136
- const enabledLibraries = new Set(libraries);
137
- const mismatches = [];
138
- for (const group of SYNCED_VERSION_GROUPS) {
139
- const enabledGroupPackages = group.packages.filter((pkg) => enabledLibraries.has(pkg));
140
- if (enabledGroupPackages.length <= 1)
141
- continue;
142
- const presentGroupPackages = enabledGroupPackages.filter((pkg) => packageVersions.has(pkg));
143
- if (presentGroupPackages.length <= 1)
144
- continue;
145
- const versionMap = new Map();
146
- for (const packageName of presentGroupPackages) {
147
- const packageVersionMap = packageVersions.get(packageName);
148
- for (const [version, workspaces] of packageVersionMap) {
149
- const locations = versionMap.get(version) ?? [];
150
- locations.push(...workspaces.map((workspace) => `${packageName} in ${workspace}`));
151
- versionMap.set(version, locations);
152
- }
153
- }
154
- if (versionMap.size > 1 &&
155
- shouldCheckSyncedVersionGroup(group, versionMap)) {
156
- mismatches.push({
157
- packageName: presentGroupPackages.join(' / '),
158
- versions: getSortedVersionInfo(versionMap),
159
- });
160
- }
161
- }
162
- return mismatches;
116
+ const enabledLibraries = new Set(libraries);
117
+ const mismatches = [];
118
+ for (const group of SYNCED_VERSION_GROUPS) {
119
+ const enabledGroupPackages = group.packages.filter((pkg) => enabledLibraries.has(pkg));
120
+ if (enabledGroupPackages.length <= 1) continue;
121
+ const presentGroupPackages = enabledGroupPackages.filter((pkg) => packageVersions.has(pkg));
122
+ if (presentGroupPackages.length <= 1) continue;
123
+ const versionMap = /* @__PURE__ */ new Map();
124
+ for (const packageName of presentGroupPackages) {
125
+ const packageVersionMap = packageVersions.get(packageName);
126
+ for (const [version, workspaces] of packageVersionMap) {
127
+ const locations = versionMap.get(version) ?? [];
128
+ locations.push(...workspaces.map((workspace) => `${packageName} in ${workspace}`));
129
+ versionMap.set(version, locations);
130
+ }
131
+ }
132
+ if (versionMap.size > 1 && shouldCheckSyncedVersionGroup(group, versionMap)) mismatches.push({
133
+ packageName: presentGroupPackages.join(" / "),
134
+ versions: getSortedVersionInfo(versionMap)
135
+ });
136
+ }
137
+ return mismatches;
163
138
  }
164
139
  function shouldCheckSyncedVersionGroup(group, versionMap) {
165
- const { minVersion } = group;
166
- if (!minVersion)
167
- return true;
168
- return [...versionMap.keys()].some((version) => isVersionAtLeast(version, minVersion));
140
+ const { minVersion } = group;
141
+ if (!minVersion) return true;
142
+ return [...versionMap.keys()].some((version) => isVersionAtLeast(version, minVersion));
169
143
  }
170
144
  function isVersionAtLeast(version, minVersion) {
171
- const parsedVersion = parseSemverVersion(version);
172
- const parsedMinVersion = parseSemverVersion(minVersion);
173
- if (!parsedVersion || !parsedMinVersion)
174
- return true;
175
- return compareSemverVersions(parsedVersion, parsedMinVersion) >= 0;
145
+ const parsedVersion = parseSemverVersion(version);
146
+ const parsedMinVersion = parseSemverVersion(minVersion);
147
+ if (!parsedVersion || !parsedMinVersion) return true;
148
+ return compareSemverVersions(parsedVersion, parsedMinVersion) >= 0;
176
149
  }
177
150
  function parseSemverVersion(version) {
178
- const match = version
179
- .trim()
180
- .match(/^[\^~<>=\s]*(\d+)(?:\.(\d+))?(?:\.(\d+))?/);
181
- if (!match)
182
- return null;
183
- return {
184
- major: Number(match[1]),
185
- minor: Number(match[2] ?? 0),
186
- patch: Number(match[3] ?? 0),
187
- };
151
+ const match = version.trim().match(/^[\^~<>=\s]*(\d+)(?:\.(\d+))?(?:\.(\d+))?/);
152
+ if (!match) return null;
153
+ return {
154
+ major: Number(match[1]),
155
+ minor: Number(match[2] ?? 0),
156
+ patch: Number(match[3] ?? 0)
157
+ };
188
158
  }
189
159
  function compareSemverVersions(a, b) {
190
- if (a.major !== b.major)
191
- return a.major - b.major;
192
- if (a.minor !== b.minor)
193
- return a.minor - b.minor;
194
- return a.patch - b.patch;
160
+ if (a.major !== b.major) return a.major - b.major;
161
+ if (a.minor !== b.minor) return a.minor - b.minor;
162
+ return a.patch - b.patch;
195
163
  }
196
164
  function getSortedVersionInfo(versionMap) {
197
- const versions = [];
198
- for (const [version, workspaces] of versionMap) {
199
- versions.push({ version, workspaces });
200
- }
201
- // Sort by version descending so the latest appears first
202
- versions.sort((a, b) => b.version.localeCompare(a.version, undefined, { numeric: true }));
203
- return versions;
165
+ const versions = [];
166
+ for (const [version, workspaces] of versionMap) versions.push({
167
+ version,
168
+ workspaces
169
+ });
170
+ versions.sort((a, b) => b.version.localeCompare(a.version, void 0, { numeric: true }));
171
+ return versions;
204
172
  }
205
173
  /**
206
- * Get a human-readable name for a workspace directory.
207
- */
174
+ * Get a human-readable name for a workspace directory.
175
+ */
208
176
  function getWorkspaceName(wsDir, readPkgJson) {
209
- const pkg = readPkgJson(wsDir);
210
- return pkg?.name ?? path.basename(wsDir);
177
+ return readPkgJson(wsDir)?.name ?? path.basename(wsDir);
211
178
  }
212
179
  /**
213
- * Format version mismatches into a human-readable error message.
214
- */
180
+ * Format version mismatches into a human-readable error message.
181
+ */
215
182
  function formatMismatchError(mismatches) {
216
- const lines = [
217
- chalk.red.bold('Mismatched GT package versions detected across your monorepo!'),
218
- '',
219
- chalk.yellow('Please update all workspaces to use the same version of each GT package, then reinstall.'),
220
- '',
221
- ];
222
- for (const mismatch of mismatches) {
223
- lines.push(chalk.white.bold(` ${mismatch.packageName}:`));
224
- for (const { version, workspaces } of mismatch.versions) {
225
- lines.push(` ${chalk.cyan(version)} ${chalk.dim('←')} ${workspaces.join(', ')}`);
226
- }
227
- lines.push('');
228
- }
229
- lines.push(chalk.dim('To skip this check, use --skip-version-check or set "skipVersionCheck": true in gt.config.json.\n'));
230
- return lines.join('\n');
183
+ const lines = [
184
+ chalk.red.bold("Mismatched GT package versions detected across your monorepo!"),
185
+ "",
186
+ chalk.yellow("Please update all workspaces to use the same version of each GT package, then reinstall."),
187
+ ""
188
+ ];
189
+ for (const mismatch of mismatches) {
190
+ lines.push(chalk.white.bold(` ${mismatch.packageName}:`));
191
+ for (const { version, workspaces } of mismatch.versions) lines.push(` ${chalk.cyan(version)} ${chalk.dim("←")} ${workspaces.join(", ")}`);
192
+ lines.push("");
193
+ }
194
+ lines.push(chalk.dim("To skip this check, use --skip-version-check or set \"skipVersionCheck\": true in gt.config.json.\n"));
195
+ return lines.join("\n");
231
196
  }
232
197
  /**
233
- * Run the monorepo version consistency check.
234
- * If mismatched GT package versions are found, logs an error and exits with code 1.
235
- * Silently returns if not in a monorepo or if all versions are consistent.
236
- * Can be skipped via the --skip-version-check flag or "skipVersionCheck": true in gt.config.json.
237
- */
238
- export function checkMonorepoVersionConsistency(libraries) {
239
- const cwd = process.cwd();
240
- // Check if skipped via config
241
- const resolved = resolveConfig(cwd);
242
- if (resolved?.config?.skipVersionCheck)
243
- return;
244
- const rootDir = findMonorepoRoot(cwd);
245
- if (!rootDir)
246
- return; // No lockfile found — nothing to check
247
- const workspaceDirs = scanForPackageDirs(rootDir);
248
- if (workspaceDirs.length <= 1)
249
- return; // Single package — no mismatches possible
250
- const readPkgJson = createPackageJsonReader();
251
- const mismatches = findVersionMismatches(workspaceDirs, readPkgJson, libraries);
252
- if (mismatches.length === 0)
253
- return; // All consistent
254
- logger.error(formatMismatchError(mismatches));
255
- process.exit(1);
198
+ * Run the monorepo version consistency check.
199
+ * If mismatched GT package versions are found, logs an error and exits with code 1.
200
+ * Silently returns if not in a monorepo or if all versions are consistent.
201
+ * Can be skipped via the --skip-version-check flag or "skipVersionCheck": true in gt.config.json.
202
+ */
203
+ function checkMonorepoVersionConsistency(libraries) {
204
+ const cwd = process.cwd();
205
+ if (resolveConfig(cwd)?.config?.skipVersionCheck) return;
206
+ const rootDir = findMonorepoRoot(cwd);
207
+ if (!rootDir) return;
208
+ const workspaceDirs = scanForPackageDirs(rootDir);
209
+ if (workspaceDirs.length <= 1) return;
210
+ const mismatches = findVersionMismatches(workspaceDirs, createPackageJsonReader(), libraries);
211
+ if (mismatches.length === 0) return;
212
+ logger.error(formatMismatchError(mismatches));
213
+ process.exit(1);
256
214
  }
215
+ //#endregion
216
+ export { checkMonorepoVersionConsistency };
217
+
218
+ //# sourceMappingURL=monorepoVersionCheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monorepoVersionCheck.js","names":[],"sources":["../../src/utils/monorepoVersionCheck.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\nimport fg from 'fast-glob';\nimport chalk from 'chalk';\nimport { logger } from '../console/logger.js';\nimport { Libraries, type GTLibrary } from '../types/libraries.js';\nimport { resolveConfig } from '../config/resolveConfig.js';\n\ninterface PackageJson {\n name?: string;\n version?: string;\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n}\n\ninterface VersionInfo {\n version: string;\n workspaces: string[];\n}\n\ninterface VersionMismatch {\n packageName: string;\n versions: VersionInfo[];\n}\n\ntype PackageJsonReader = (workspaceDir: string) => PackageJson | null;\n\ninterface SyncedVersionGroup {\n packages: readonly GTLibrary[];\n minVersion?: string;\n}\n\nconst SYNCED_VERSION_GROUPS: readonly SyncedVersionGroup[] = [\n {\n packages: [Libraries.GT_REACT, Libraries.GT_REACT_NATIVE],\n minVersion: '10.19.1',\n },\n];\n\nconst LOCKFILES = [\n 'pnpm-lock.yaml',\n 'package-lock.json',\n 'yarn.lock',\n 'bun.lock',\n 'bun.lockb',\n 'deno.lock',\n];\n\n/**\n * Walk up from startDir to find the monorepo root by looking for a lockfile.\n */\nfunction findMonorepoRoot(startDir: string): string | null {\n let dir = startDir;\n while (true) {\n if (LOCKFILES.some((lf) => fs.existsSync(path.join(dir, lf)))) {\n return dir;\n }\n\n const parent = path.dirname(dir);\n if (parent === dir) return null;\n dir = parent;\n }\n}\n\n/**\n * Scan for all directories containing package.json under the root.\n */\nfunction scanForPackageDirs(rootDir: string): string[] {\n const matches = fg.sync('**/package.json', {\n cwd: rootDir,\n absolute: true,\n onlyFiles: true,\n ignore: ['**/node_modules/**'],\n });\n\n return matches.map((m) => path.dirname(m)).filter((dir) => dir !== rootDir);\n}\n\n/**\n * Creates a cached reader for workspace package.json files.\n * Cache is scoped to a single check invocation to avoid stale data.\n */\nfunction createPackageJsonReader(): PackageJsonReader {\n const cache = new Map<string, PackageJson | null>();\n return (workspaceDir: string) => {\n if (cache.has(workspaceDir)) return cache.get(workspaceDir) ?? null;\n const pkgPath = path.join(workspaceDir, 'package.json');\n if (!fs.existsSync(pkgPath)) {\n cache.set(workspaceDir, null);\n return null;\n }\n try {\n const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8')) as PackageJson;\n cache.set(workspaceDir, pkg);\n return pkg;\n } catch {\n cache.set(workspaceDir, null);\n return null;\n }\n };\n}\n\n/**\n * Check if a version specifier is a real semver version\n */\nfunction isSemverSpecifier(version: string): boolean {\n return /^[\\^~>=<*]?\\d/.test(version);\n}\n\n/**\n * Get the declared version specifier for a GT package from a workspace's package.json.\n * Returns null if the package is not found or uses a non-semver protocol\n * (e.g. workspace:*, link:, file:, etc.)\n */\nfunction getDeclaredVersion(\n packageName: string,\n workspaceDir: string,\n readPkgJson: PackageJsonReader\n): string | null {\n const pkg = readPkgJson(workspaceDir);\n if (!pkg) return null;\n const deps = { ...pkg.dependencies, ...pkg.devDependencies };\n const version = deps[packageName];\n if (!version || !isSemverSpecifier(version)) return null;\n return version;\n}\n\n/**\n * Scan all packages for mismatched GT package version specifiers.\n * Compares the declared versions in each package.json directly.\n */\nfunction findVersionMismatches(\n workspaceDirs: string[],\n readPkgJson: PackageJsonReader,\n libraries: readonly GTLibrary[]\n): VersionMismatch[] {\n // Map: packageName -> Map<versionSpecifier, workspaceNames[]>\n const packageVersions = new Map<string, Map<string, string[]>>();\n\n for (const wsDir of workspaceDirs) {\n const wsName = getWorkspaceName(wsDir, readPkgJson);\n\n for (const pkg of libraries) {\n const version = getDeclaredVersion(pkg, wsDir, readPkgJson);\n if (!version) continue;\n\n if (!packageVersions.has(pkg)) {\n packageVersions.set(pkg, new Map());\n }\n const versionMap = packageVersions.get(pkg)!;\n if (!versionMap.has(version)) {\n versionMap.set(version, []);\n }\n versionMap.get(version)!.push(wsName);\n }\n }\n\n const mismatches: VersionMismatch[] = [];\n for (const [packageName, versionMap] of packageVersions) {\n if (versionMap.size > 1) {\n mismatches.push({\n packageName,\n versions: getSortedVersionInfo(versionMap),\n });\n }\n }\n\n return [\n ...mismatches,\n ...findSyncedPackageVersionMismatches(packageVersions, libraries),\n ];\n}\n\n/**\n * Find mismatches between package names that must stay on the same version.\n */\nfunction findSyncedPackageVersionMismatches(\n packageVersions: Map<string, Map<string, string[]>>,\n libraries: readonly GTLibrary[]\n): VersionMismatch[] {\n const enabledLibraries = new Set(libraries);\n const mismatches: VersionMismatch[] = [];\n\n for (const group of SYNCED_VERSION_GROUPS) {\n const enabledGroupPackages = group.packages.filter((pkg) =>\n enabledLibraries.has(pkg)\n );\n if (enabledGroupPackages.length <= 1) continue;\n\n const presentGroupPackages = enabledGroupPackages.filter((pkg) =>\n packageVersions.has(pkg)\n );\n if (presentGroupPackages.length <= 1) continue;\n\n const versionMap = new Map<string, string[]>();\n for (const packageName of presentGroupPackages) {\n const packageVersionMap = packageVersions.get(packageName)!;\n\n for (const [version, workspaces] of packageVersionMap) {\n const locations = versionMap.get(version) ?? [];\n locations.push(\n ...workspaces.map((workspace) => `${packageName} in ${workspace}`)\n );\n versionMap.set(version, locations);\n }\n }\n\n if (\n versionMap.size > 1 &&\n shouldCheckSyncedVersionGroup(group, versionMap)\n ) {\n mismatches.push({\n packageName: presentGroupPackages.join(' / '),\n versions: getSortedVersionInfo(versionMap),\n });\n }\n }\n\n return mismatches;\n}\n\nfunction shouldCheckSyncedVersionGroup(\n group: SyncedVersionGroup,\n versionMap: Map<string, string[]>\n): boolean {\n const { minVersion } = group;\n if (!minVersion) return true;\n\n return [...versionMap.keys()].some((version) =>\n isVersionAtLeast(version, minVersion)\n );\n}\n\nfunction isVersionAtLeast(version: string, minVersion: string): boolean {\n const parsedVersion = parseSemverVersion(version);\n const parsedMinVersion = parseSemverVersion(minVersion);\n if (!parsedVersion || !parsedMinVersion) return true;\n\n return compareSemverVersions(parsedVersion, parsedMinVersion) >= 0;\n}\n\nfunction parseSemverVersion(\n version: string\n): { major: number; minor: number; patch: number } | null {\n const match = version\n .trim()\n .match(/^[\\^~<>=\\s]*(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?/);\n if (!match) return null;\n\n return {\n major: Number(match[1]),\n minor: Number(match[2] ?? 0),\n patch: Number(match[3] ?? 0),\n };\n}\n\nfunction compareSemverVersions(\n a: { major: number; minor: number; patch: number },\n b: { major: number; minor: number; patch: number }\n): number {\n if (a.major !== b.major) return a.major - b.major;\n if (a.minor !== b.minor) return a.minor - b.minor;\n return a.patch - b.patch;\n}\n\nfunction getSortedVersionInfo(\n versionMap: Map<string, string[]>\n): VersionInfo[] {\n const versions: VersionInfo[] = [];\n for (const [version, workspaces] of versionMap) {\n versions.push({ version, workspaces });\n }\n // Sort by version descending so the latest appears first\n versions.sort((a, b) =>\n b.version.localeCompare(a.version, undefined, { numeric: true })\n );\n return versions;\n}\n\n/**\n * Get a human-readable name for a workspace directory.\n */\nfunction getWorkspaceName(\n wsDir: string,\n readPkgJson: PackageJsonReader\n): string {\n const pkg = readPkgJson(wsDir);\n return pkg?.name ?? path.basename(wsDir);\n}\n\n/**\n * Format version mismatches into a human-readable error message.\n */\nfunction formatMismatchError(mismatches: VersionMismatch[]): string {\n const lines: string[] = [\n chalk.red.bold(\n 'Mismatched GT package versions detected across your monorepo!'\n ),\n '',\n chalk.yellow(\n 'Please update all workspaces to use the same version of each GT package, then reinstall.'\n ),\n '',\n ];\n\n for (const mismatch of mismatches) {\n lines.push(chalk.white.bold(` ${mismatch.packageName}:`));\n for (const { version, workspaces } of mismatch.versions) {\n lines.push(\n ` ${chalk.cyan(version)} ${chalk.dim('←')} ${workspaces.join(', ')}`\n );\n }\n lines.push('');\n }\n\n lines.push(\n chalk.dim(\n 'To skip this check, use --skip-version-check or set \"skipVersionCheck\": true in gt.config.json.\\n'\n )\n );\n\n return lines.join('\\n');\n}\n\n/**\n * Run the monorepo version consistency check.\n * If mismatched GT package versions are found, logs an error and exits with code 1.\n * Silently returns if not in a monorepo or if all versions are consistent.\n * Can be skipped via the --skip-version-check flag or \"skipVersionCheck\": true in gt.config.json.\n */\nexport function checkMonorepoVersionConsistency(\n libraries: readonly GTLibrary[]\n): void {\n const cwd = process.cwd();\n\n // Check if skipped via config\n const resolved = resolveConfig(cwd);\n if (resolved?.config?.skipVersionCheck) return;\n\n const rootDir = findMonorepoRoot(cwd);\n if (!rootDir) return; // No lockfile found — nothing to check\n\n const workspaceDirs = scanForPackageDirs(rootDir);\n if (workspaceDirs.length <= 1) return; // Single package — no mismatches possible\n\n const readPkgJson = createPackageJsonReader();\n const mismatches = findVersionMismatches(\n workspaceDirs,\n readPkgJson,\n libraries\n );\n if (mismatches.length === 0) return; // All consistent\n\n logger.error(formatMismatchError(mismatches));\n process.exit(1);\n}\n"],"mappings":"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"}
@@ -1,17 +1,18 @@
1
- import { execSync } from 'child_process';
2
- export async function getPackageInfo(packageName) {
3
- try {
4
- const output = execSync(`npm list -g ${packageName}`, {
5
- encoding: 'utf8',
6
- stdio: 'pipe',
7
- });
8
- const match = output.match(new RegExp(`${packageName}@([\\d\\.\\w-]+)`));
9
- if (match && match[1]) {
10
- return { version: match[1] };
11
- }
12
- return undefined;
13
- }
14
- catch {
15
- return undefined;
16
- }
1
+ import { execSync } from "child_process";
2
+ //#region src/utils/packageInfo.ts
3
+ async function getPackageInfo(packageName) {
4
+ try {
5
+ const match = execSync(`npm list -g ${packageName}`, {
6
+ encoding: "utf8",
7
+ stdio: "pipe"
8
+ }).match(new RegExp(`${packageName}@([\\d\\.\\w-]+)`));
9
+ if (match && match[1]) return { version: match[1] };
10
+ return;
11
+ } catch {
12
+ return;
13
+ }
17
14
  }
15
+ //#endregion
16
+ export { getPackageInfo };
17
+
18
+ //# sourceMappingURL=packageInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packageInfo.js","names":[],"sources":["../../src/utils/packageInfo.ts"],"sourcesContent":["import { execSync } from 'child_process';\n\nexport async function getPackageInfo(packageName: string): Promise<\n | {\n version: string;\n }\n | undefined\n> {\n try {\n const output = execSync(`npm list -g ${packageName}`, {\n encoding: 'utf8',\n stdio: 'pipe',\n });\n\n const match = output.match(new RegExp(`${packageName}@([\\\\d\\\\.\\\\w-]+)`));\n if (match && match[1]) {\n return { version: match[1] };\n }\n\n return undefined;\n } catch {\n return undefined;\n }\n}\n"],"mappings":";;AAEA,eAAsB,eAAe,aAKnC;AACA,KAAI;EAMF,MAAM,QALS,SAAS,eAAe,eAAe;GACpD,UAAU;GACV,OAAO;GACR,CAEmB,CAAC,MAAM,IAAI,OAAO,GAAG,YAAY,kBAAkB,CAAC;AACxE,MAAI,SAAS,MAAM,GACjB,QAAO,EAAE,SAAS,MAAM,IAAI;AAG9B;SACM;AACN"}
@@ -1,72 +1,57 @@
1
- import { logger } from '../console/logger.js';
2
- import chalk from 'chalk';
3
- import path from 'node:path';
4
- import fs from 'node:fs';
5
- import { exitSync } from '../console/logging.js';
6
- import { PACKAGE_VERSION } from '../generated/version.js';
7
- // search for package.json such that we can run init in non-js projects
8
- export async function searchForPackageJson(cwd = process.cwd()) {
9
- // Get the current working directory (where the CLI is being run)
10
- const packageJsonPath = path.join(cwd, 'package.json');
11
- // Check if package.json exists
12
- if (!fs.existsSync(packageJsonPath)) {
13
- return null;
14
- }
15
- try {
16
- return JSON.parse(await fs.promises.readFile(packageJsonPath, 'utf8'));
17
- }
18
- catch {
19
- return null;
20
- }
1
+ import { logger } from "../console/logger.js";
2
+ import { PACKAGE_VERSION } from "../generated/version.js";
3
+ import { exitSync } from "../console/logging.js";
4
+ import chalk from "chalk";
5
+ import path from "node:path";
6
+ import fs from "node:fs";
7
+ //#region src/utils/packageJson.ts
8
+ async function searchForPackageJson(cwd = process.cwd()) {
9
+ const packageJsonPath = path.join(cwd, "package.json");
10
+ if (!fs.existsSync(packageJsonPath)) return null;
11
+ try {
12
+ return JSON.parse(await fs.promises.readFile(packageJsonPath, "utf8"));
13
+ } catch {
14
+ return null;
15
+ }
21
16
  }
22
- export async function getPackageJson(cwd = process.cwd()) {
23
- const packageJsonPath = path.join(cwd, 'package.json');
24
- // Check if package.json exists
25
- if (!fs.existsSync(packageJsonPath)) {
26
- return null;
27
- }
28
- try {
29
- return JSON.parse(await fs.promises.readFile(packageJsonPath, 'utf8'));
30
- }
31
- catch {
32
- return null;
33
- }
17
+ async function getPackageJson(cwd = process.cwd()) {
18
+ const packageJsonPath = path.join(cwd, "package.json");
19
+ if (!fs.existsSync(packageJsonPath)) return null;
20
+ try {
21
+ return JSON.parse(await fs.promises.readFile(packageJsonPath, "utf8"));
22
+ } catch {
23
+ return null;
24
+ }
34
25
  }
35
- export function getCLIVersion() {
36
- return PACKAGE_VERSION;
26
+ function getCLIVersion() {
27
+ return PACKAGE_VERSION;
37
28
  }
38
- export async function updatePackageJson(packageJson, cwd = process.cwd()) {
39
- try {
40
- await fs.promises.writeFile(path.join(cwd, 'package.json'), JSON.stringify(packageJson, null, 2));
41
- }
42
- catch (error) {
43
- logger.error(chalk.red('Error updating package.json: ' + String(error)));
44
- exitSync(1);
45
- }
29
+ async function updatePackageJson(packageJson, cwd = process.cwd()) {
30
+ try {
31
+ await fs.promises.writeFile(path.join(cwd, "package.json"), JSON.stringify(packageJson, null, 2));
32
+ } catch (error) {
33
+ logger.error(chalk.red("Error updating package.json: " + String(error)));
34
+ exitSync(1);
35
+ }
46
36
  }
47
- // check if a package is installed in the package.json file
48
- export function isPackageInstalled(packageName, packageJson, asDevDependency = false, checkBoth = false) {
49
- const devDependencies = packageJson.devDependencies ?? {};
50
- const prodDependencies = packageJson.dependencies ?? {};
51
- const dependencies = checkBoth
52
- ? {
53
- ...devDependencies,
54
- ...prodDependencies,
55
- }
56
- : asDevDependency
57
- ? devDependencies
58
- : prodDependencies;
59
- if (!dependencies) {
60
- return false;
61
- }
62
- return dependencies[packageName] !== undefined;
37
+ function isPackageInstalled(packageName, packageJson, asDevDependency = false, checkBoth = false) {
38
+ const devDependencies = packageJson.devDependencies ?? {};
39
+ const prodDependencies = packageJson.dependencies ?? {};
40
+ const dependencies = checkBoth ? {
41
+ ...devDependencies,
42
+ ...prodDependencies
43
+ } : asDevDependency ? devDependencies : prodDependencies;
44
+ if (!dependencies) return false;
45
+ return dependencies[packageName] !== void 0;
63
46
  }
64
- export function getPackageVersion(packageName, packageJson) {
65
- const devDependencies = packageJson.devDependencies ?? {};
66
- const prodDependencies = packageJson.dependencies ?? {};
67
- const dependencies = {
68
- ...prodDependencies,
69
- ...devDependencies,
70
- };
71
- return dependencies[packageName] ?? undefined;
47
+ function getPackageVersion(packageName, packageJson) {
48
+ const devDependencies = packageJson.devDependencies ?? {};
49
+ return {
50
+ ...packageJson.dependencies ?? {},
51
+ ...devDependencies
52
+ }[packageName] ?? void 0;
72
53
  }
54
+ //#endregion
55
+ export { getCLIVersion, getPackageJson, getPackageVersion, isPackageInstalled, searchForPackageJson, updatePackageJson };
56
+
57
+ //# sourceMappingURL=packageJson.js.map