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
@@ -0,0 +1,66 @@
1
+ import type { ReactNode } from 'react';
2
+ export type PromptOption<T> = {
3
+ value: T;
4
+ label: string;
5
+ hint?: string;
6
+ };
7
+ export type PromptResult<T> = {
8
+ value?: T;
9
+ cancelled: boolean;
10
+ };
11
+ export type TextPromptProps = {
12
+ message: string;
13
+ defaultValue?: string;
14
+ validate?: (value: string) => boolean | string;
15
+ onComplete: (result: PromptResult<string>) => void;
16
+ };
17
+ export type LocaleOption = {
18
+ code: string;
19
+ label: string;
20
+ name: string;
21
+ nativeName: string;
22
+ searchable: string;
23
+ };
24
+ export type LocalePromptProps = {
25
+ message: string;
26
+ defaultValue?: string;
27
+ onComplete: (result: PromptResult<string>) => void;
28
+ };
29
+ export type LocaleMultiPromptProps = {
30
+ message: string;
31
+ defaultValue?: string[];
32
+ required: boolean;
33
+ onComplete: (result: PromptResult<string[]>) => void;
34
+ };
35
+ export type GlobPromptProps = {
36
+ label: string;
37
+ message?: string;
38
+ defaultValue?: string;
39
+ onComplete: (result: PromptResult<string>) => void;
40
+ };
41
+ export type EditableTextPromptProps = TextPromptProps & {
42
+ footer?: string;
43
+ placeholder?: string;
44
+ };
45
+ export type SelectPromptProps<T> = {
46
+ message: string;
47
+ options: Array<PromptOption<T>>;
48
+ defaultValue?: T;
49
+ onComplete: (result: PromptResult<T>) => void;
50
+ };
51
+ export type MultiSelectPromptProps<T extends string> = {
52
+ message: string;
53
+ options: Array<PromptOption<T>>;
54
+ required: boolean;
55
+ onComplete: (result: PromptResult<Array<T>>) => void;
56
+ };
57
+ export type ConfirmPromptProps = {
58
+ message: string;
59
+ defaultValue?: boolean;
60
+ onComplete: (result: PromptResult<boolean>) => void;
61
+ };
62
+ export type PromptFrameProps = {
63
+ message: string;
64
+ children: ReactNode;
65
+ footer: string;
66
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,24 @@
1
+ import type { PromptResult } from './inkTypes.js';
2
+ import { stripAnsi } from './logging.js';
3
+ export { stripAnsi };
4
+ export declare const CANCELLED: PromptResult<never>;
5
+ export declare const SELECTED_TAG_ROW_INDEX = -1;
6
+ export declare function normalizedMessage(message: string): string;
7
+ export declare function wrapText(text: string, width: number): string[];
8
+ export declare function complete<T>(result: PromptResult<T>, onComplete: (result: PromptResult<T>) => void): void;
9
+ export declare function getContentWidth(columns: number): number;
10
+ export declare function getInputWidth(columns: number): number;
11
+ export declare function getOptionWidth(columns: number): number;
12
+ export declare function getVisibleCount(rows: number, reservedRows: number): number;
13
+ export declare function previousIndex(index: number, length: number): number;
14
+ export declare function nextIndex(index: number, length: number): number;
15
+ export declare function truncate(value: string, width: number): string;
16
+ export declare function getScrollWindow<T>({ items, index, visibleCount, }: {
17
+ items: T[];
18
+ index: number;
19
+ visibleCount: number;
20
+ }): {
21
+ start: number;
22
+ visibleItems: T[];
23
+ };
24
+ export declare function getSafeIndex(index: number, length: number): number;
@@ -0,0 +1,87 @@
1
+ import { stripAnsi } from "./logging.js";
2
+ //#region src/console/inkUtils.ts
3
+ const MIN_CONTENT_WIDTH = 20;
4
+ const MAX_CONTENT_WIDTH = 96;
5
+ const INPUT_HORIZONTAL_PADDING = 4;
6
+ const MAX_VISIBLE_LOCALES = 7;
7
+ const CANCELLED = { cancelled: true };
8
+ const SELECTED_TAG_ROW_INDEX = -1;
9
+ function normalizedMessage(message) {
10
+ return stripAnsi(message).trim();
11
+ }
12
+ function wrapText(text, width) {
13
+ const safeWidth = Math.max(1, width);
14
+ const lines = [];
15
+ for (const paragraph of text.split("\n")) {
16
+ const words = paragraph.trim().split(/\s+/).filter(Boolean);
17
+ let currentLine = "";
18
+ if (words.length === 0) {
19
+ lines.push("");
20
+ continue;
21
+ }
22
+ for (const word of words) {
23
+ if (word.length > safeWidth) {
24
+ if (currentLine) {
25
+ lines.push(currentLine);
26
+ currentLine = "";
27
+ }
28
+ for (let index = 0; index < word.length; index += safeWidth) lines.push(word.slice(index, index + safeWidth));
29
+ continue;
30
+ }
31
+ const nextLine = currentLine ? `${currentLine} ${word}` : word;
32
+ if (nextLine.length > safeWidth) {
33
+ lines.push(currentLine);
34
+ currentLine = word;
35
+ } else currentLine = nextLine;
36
+ }
37
+ if (currentLine) lines.push(currentLine);
38
+ }
39
+ return lines;
40
+ }
41
+ function complete(result, onComplete) {
42
+ onComplete(result);
43
+ }
44
+ function getContentWidth(columns) {
45
+ return Math.min(Math.max(MIN_CONTENT_WIDTH, columns - 4), MAX_CONTENT_WIDTH);
46
+ }
47
+ function getInputWidth(columns) {
48
+ return Math.max(MIN_CONTENT_WIDTH, getContentWidth(columns) - INPUT_HORIZONTAL_PADDING);
49
+ }
50
+ function getOptionWidth(columns) {
51
+ return Math.max(MIN_CONTENT_WIDTH, getContentWidth(columns) - 2);
52
+ }
53
+ function getVisibleCount(rows, reservedRows) {
54
+ return Math.min(MAX_VISIBLE_LOCALES, Math.max(1, rows - reservedRows));
55
+ }
56
+ function previousIndex(index, length) {
57
+ if (length === 0) return 0;
58
+ return index === 0 ? length - 1 : index - 1;
59
+ }
60
+ function nextIndex(index, length) {
61
+ if (length === 0) return 0;
62
+ return (index + 1) % length;
63
+ }
64
+ function truncate(value, width) {
65
+ if (value.length <= width) return value;
66
+ if (width <= 1) return value.slice(0, width);
67
+ if (width <= 3) return ".".repeat(width);
68
+ return `${value.slice(0, width - 3)}...`;
69
+ }
70
+ function getScrollWindow({ items, index, visibleCount }) {
71
+ const safeVisibleCount = Math.max(1, visibleCount);
72
+ const half = Math.floor(safeVisibleCount / 2);
73
+ const start = Math.min(Math.max(0, index - half), Math.max(0, items.length - safeVisibleCount));
74
+ const end = start + safeVisibleCount;
75
+ return {
76
+ start,
77
+ visibleItems: items.slice(start, end)
78
+ };
79
+ }
80
+ function getSafeIndex(index, length) {
81
+ if (length === 0) return 0;
82
+ return Math.max(0, Math.min(index, length - 1));
83
+ }
84
+ //#endregion
85
+ export { CANCELLED, SELECTED_TAG_ROW_INDEX, complete, getContentWidth, getInputWidth, getOptionWidth, getSafeIndex, getScrollWindow, getVisibleCount, nextIndex, normalizedMessage, previousIndex, stripAnsi, truncate, wrapText };
86
+
87
+ //# sourceMappingURL=inkUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inkUtils.js","names":[],"sources":["../../src/console/inkUtils.ts"],"sourcesContent":["import type { PromptResult } from './inkTypes.js';\nimport { stripAnsi } from './logging.js';\nexport { stripAnsi };\n\nconst MIN_CONTENT_WIDTH = 20;\nconst MAX_CONTENT_WIDTH = 96;\nconst INPUT_HORIZONTAL_PADDING = 4;\nconst MAX_VISIBLE_LOCALES = 7;\n\nexport const CANCELLED: PromptResult<never> = { cancelled: true };\nexport const SELECTED_TAG_ROW_INDEX = -1;\n\nexport function normalizedMessage(message: string): string {\n return stripAnsi(message).trim();\n}\n\nexport function wrapText(text: string, width: number) {\n const safeWidth = Math.max(1, width);\n const lines: string[] = [];\n\n for (const paragraph of text.split('\\n')) {\n const words = paragraph.trim().split(/\\s+/).filter(Boolean);\n let currentLine = '';\n\n if (words.length === 0) {\n lines.push('');\n continue;\n }\n\n for (const word of words) {\n if (word.length > safeWidth) {\n if (currentLine) {\n lines.push(currentLine);\n currentLine = '';\n }\n for (let index = 0; index < word.length; index += safeWidth) {\n lines.push(word.slice(index, index + safeWidth));\n }\n continue;\n }\n\n const nextLine = currentLine ? `${currentLine} ${word}` : word;\n if (nextLine.length > safeWidth) {\n lines.push(currentLine);\n currentLine = word;\n } else {\n currentLine = nextLine;\n }\n }\n\n if (currentLine) lines.push(currentLine);\n }\n\n return lines;\n}\n\nexport function complete<T>(\n result: PromptResult<T>,\n onComplete: (result: PromptResult<T>) => void\n) {\n onComplete(result);\n}\n\nexport function getContentWidth(columns: number) {\n return Math.min(Math.max(MIN_CONTENT_WIDTH, columns - 4), MAX_CONTENT_WIDTH);\n}\n\nexport function getInputWidth(columns: number) {\n return Math.max(\n MIN_CONTENT_WIDTH,\n getContentWidth(columns) - INPUT_HORIZONTAL_PADDING\n );\n}\n\nexport function getOptionWidth(columns: number) {\n return Math.max(MIN_CONTENT_WIDTH, getContentWidth(columns) - 2);\n}\n\nexport function getVisibleCount(rows: number, reservedRows: number) {\n return Math.min(MAX_VISIBLE_LOCALES, Math.max(1, rows - reservedRows));\n}\n\nexport function previousIndex(index: number, length: number) {\n if (length === 0) return 0;\n return index === 0 ? length - 1 : index - 1;\n}\n\nexport function nextIndex(index: number, length: number) {\n if (length === 0) return 0;\n return (index + 1) % length;\n}\n\nexport function truncate(value: string, width: number) {\n if (value.length <= width) return value;\n if (width <= 1) return value.slice(0, width);\n if (width <= 3) return '.'.repeat(width);\n return `${value.slice(0, width - 3)}...`;\n}\n\nexport function getScrollWindow<T>({\n items,\n index,\n visibleCount,\n}: {\n items: T[];\n index: number;\n visibleCount: number;\n}) {\n const safeVisibleCount = Math.max(1, visibleCount);\n const half = Math.floor(safeVisibleCount / 2);\n const start = Math.min(\n Math.max(0, index - half),\n Math.max(0, items.length - safeVisibleCount)\n );\n const end = start + safeVisibleCount;\n return {\n start,\n visibleItems: items.slice(start, end),\n };\n}\n\nexport function getSafeIndex(index: number, length: number) {\n if (length === 0) return 0;\n return Math.max(0, Math.min(index, length - 1));\n}\n"],"mappings":";;AAIA,MAAM,oBAAoB;AAC1B,MAAM,oBAAoB;AAC1B,MAAM,2BAA2B;AACjC,MAAM,sBAAsB;AAE5B,MAAa,YAAiC,EAAE,WAAW,MAAM;AACjE,MAAa,yBAAyB;AAEtC,SAAgB,kBAAkB,SAAyB;AACzD,QAAO,UAAU,QAAQ,CAAC,MAAM;;AAGlC,SAAgB,SAAS,MAAc,OAAe;CACpD,MAAM,YAAY,KAAK,IAAI,GAAG,MAAM;CACpC,MAAM,QAAkB,EAAE;AAE1B,MAAK,MAAM,aAAa,KAAK,MAAM,KAAK,EAAE;EACxC,MAAM,QAAQ,UAAU,MAAM,CAAC,MAAM,MAAM,CAAC,OAAO,QAAQ;EAC3D,IAAI,cAAc;AAElB,MAAI,MAAM,WAAW,GAAG;AACtB,SAAM,KAAK,GAAG;AACd;;AAGF,OAAK,MAAM,QAAQ,OAAO;AACxB,OAAI,KAAK,SAAS,WAAW;AAC3B,QAAI,aAAa;AACf,WAAM,KAAK,YAAY;AACvB,mBAAc;;AAEhB,SAAK,IAAI,QAAQ,GAAG,QAAQ,KAAK,QAAQ,SAAS,UAChD,OAAM,KAAK,KAAK,MAAM,OAAO,QAAQ,UAAU,CAAC;AAElD;;GAGF,MAAM,WAAW,cAAc,GAAG,YAAY,GAAG,SAAS;AAC1D,OAAI,SAAS,SAAS,WAAW;AAC/B,UAAM,KAAK,YAAY;AACvB,kBAAc;SAEd,eAAc;;AAIlB,MAAI,YAAa,OAAM,KAAK,YAAY;;AAG1C,QAAO;;AAGT,SAAgB,SACd,QACA,YACA;AACA,YAAW,OAAO;;AAGpB,SAAgB,gBAAgB,SAAiB;AAC/C,QAAO,KAAK,IAAI,KAAK,IAAI,mBAAmB,UAAU,EAAE,EAAE,kBAAkB;;AAG9E,SAAgB,cAAc,SAAiB;AAC7C,QAAO,KAAK,IACV,mBACA,gBAAgB,QAAQ,GAAG,yBAC5B;;AAGH,SAAgB,eAAe,SAAiB;AAC9C,QAAO,KAAK,IAAI,mBAAmB,gBAAgB,QAAQ,GAAG,EAAE;;AAGlE,SAAgB,gBAAgB,MAAc,cAAsB;AAClE,QAAO,KAAK,IAAI,qBAAqB,KAAK,IAAI,GAAG,OAAO,aAAa,CAAC;;AAGxE,SAAgB,cAAc,OAAe,QAAgB;AAC3D,KAAI,WAAW,EAAG,QAAO;AACzB,QAAO,UAAU,IAAI,SAAS,IAAI,QAAQ;;AAG5C,SAAgB,UAAU,OAAe,QAAgB;AACvD,KAAI,WAAW,EAAG,QAAO;AACzB,SAAQ,QAAQ,KAAK;;AAGvB,SAAgB,SAAS,OAAe,OAAe;AACrD,KAAI,MAAM,UAAU,MAAO,QAAO;AAClC,KAAI,SAAS,EAAG,QAAO,MAAM,MAAM,GAAG,MAAM;AAC5C,KAAI,SAAS,EAAG,QAAO,IAAI,OAAO,MAAM;AACxC,QAAO,GAAG,MAAM,MAAM,GAAG,QAAQ,EAAE,CAAC;;AAGtC,SAAgB,gBAAmB,EACjC,OACA,OACA,gBAKC;CACD,MAAM,mBAAmB,KAAK,IAAI,GAAG,aAAa;CAClD,MAAM,OAAO,KAAK,MAAM,mBAAmB,EAAE;CAC7C,MAAM,QAAQ,KAAK,IACjB,KAAK,IAAI,GAAG,QAAQ,KAAK,EACzB,KAAK,IAAI,GAAG,MAAM,SAAS,iBAAiB,CAC7C;CACD,MAAM,MAAM,QAAQ;AACpB,QAAO;EACL;EACA,cAAc,MAAM,MAAM,OAAO,IAAI;EACtC;;AAGH,SAAgB,aAAa,OAAe,QAAgB;AAC1D,KAAI,WAAW,EAAG,QAAO;AACzB,QAAO,KAAK,IAAI,GAAG,KAAK,IAAI,OAAO,SAAS,EAAE,CAAC"}
@@ -1,250 +1,210 @@
1
- import chalk from 'chalk';
2
- import { randomUUID } from 'node:crypto';
3
- import { pino, destination } from 'pino';
4
- import { log as clackLog, spinner, progress, intro, outro, } from '@clack/prompts';
5
- // Mock spinner that logs to console instead of updating terminal UI
6
- class MockSpinner {
7
- currentMessage = '';
8
- logger;
9
- isCancelled = false;
10
- constructor(logger) {
11
- this.logger = logger;
12
- }
13
- start(message) {
14
- if (message) {
15
- this.currentMessage = message;
16
- this.logger.info(`[Spinner] ${message}`);
17
- }
18
- }
19
- stop(message) {
20
- const msg = message || this.currentMessage;
21
- if (msg) {
22
- this.logger.info(`[Spinner] ${msg}`);
23
- }
24
- this.currentMessage = '';
25
- }
26
- message(message) {
27
- if (message) {
28
- this.currentMessage = message;
29
- this.logger.info(`[Spinner] ${message}`);
30
- }
31
- }
1
+ import { endTerminalSession } from "./terminalSession.js";
2
+ import { intro, log, outro, progress, spinner } from "@clack/prompts";
3
+ import chalk from "chalk";
4
+ import { randomUUID } from "node:crypto";
5
+ import { destination, pino } from "pino";
6
+ //#region src/console/logger.ts
7
+ function wrapTerminalSessionAware(target) {
8
+ const start = target.start.bind(target);
9
+ const stop = target.stop.bind(target);
10
+ const message = target.message.bind(target);
11
+ target.start = (msg) => {
12
+ endTerminalSession();
13
+ return start(msg);
14
+ };
15
+ target.stop = (msg, code) => {
16
+ endTerminalSession();
17
+ return stop(msg, code);
18
+ };
19
+ target.message = (msg) => {
20
+ endTerminalSession();
21
+ return message(msg);
22
+ };
23
+ if ("advance" in target) {
24
+ const advance = target.advance.bind(target);
25
+ target.advance = (amount, msg) => {
26
+ endTerminalSession();
27
+ return advance(amount, msg);
28
+ };
29
+ }
30
+ return target;
32
31
  }
33
- // Mock progress bar that logs to console instead of updating terminal UI
34
- class MockProgress {
35
- max;
36
- current = 0;
37
- logger;
38
- isCancelled = false;
39
- constructor(max, logger) {
40
- this.max = max;
41
- this.logger = logger;
42
- }
43
- start(message) {
44
- const msg = message || 'Starting progress';
45
- this.logger.info(`[Progress] ${msg} (0/${this.max})`);
46
- }
47
- stop(message) {
48
- const msg = message || 'Complete';
49
- this.logger.info(`[Progress] ${msg} (${this.current}/${this.max})`);
50
- }
51
- message(message) {
52
- if (message) {
53
- this.logger.info(`[Progress] ${message} (${this.current}/${this.max})`);
54
- }
55
- }
56
- advance(amount, message) {
57
- this.current += amount;
58
- const msg = message || 'Progress';
59
- this.logger.info(`[Progress] ${msg} (${this.current}/${this.max})`);
60
- }
61
- }
62
- /**
63
- * GT_LOG_FORMAT: default | json.
64
- * - If default, logs will be pretty-printed using @clack/prompts.
65
- * - If json, logs will be written in JSON format to the console.
66
- * GT_LOG_FILE: If specified, logs will be written to the file.
67
- * GT_LOG_LEVEL: The level of logs to write. If not specified, defaults to 'info'.
68
- * - Valid levels: debug, info, warn, error.
69
- */
70
- class Logger {
71
- static instance;
72
- pinoLogger = null;
73
- fileLogger = null;
74
- logFormat;
75
- constructor() {
76
- // Read configuration from environment variables
77
- const format = (process.env.GT_LOG_FORMAT || 'default').toLowerCase();
78
- const logFile = process.env.GT_LOG_FILE;
79
- const logLevel = process.env.GT_LOG_LEVEL || 'info';
80
- if (format !== 'default' && format !== 'json') {
81
- console.error('Invalid log format');
82
- process.exit(1);
83
- }
84
- if (logLevel !== 'debug' &&
85
- logLevel !== 'info' &&
86
- logLevel !== 'warn' &&
87
- logLevel !== 'error') {
88
- console.error('Invalid log level');
89
- process.exit(1);
90
- }
91
- this.logFormat = format;
92
- // Console output (stdout) - only for JSON format
93
- // For 'default' format, we use @clack/prompts directly
94
- if (format === 'json') {
95
- this.pinoLogger = pino({
96
- level: logLevel,
97
- mixin: () => ({
98
- logId: randomUUID(),
99
- }),
100
- }, destination(1));
101
- }
102
- // File output (if specified) - always JSON format
103
- if (logFile) {
104
- this.fileLogger = pino({
105
- level: logLevel,
106
- mixin: () => ({
107
- logId: randomUUID(),
108
- }),
109
- }, destination(logFile));
110
- }
111
- }
112
- static getInstance() {
113
- if (!Logger.instance) {
114
- Logger.instance = new Logger();
115
- }
116
- return Logger.instance;
117
- }
118
- // Standard logging methods
119
- trace(message) {
120
- if (this.logFormat === 'default') {
121
- // @clack/prompts doesn't have trace, use message
122
- clackLog.message(message, { symbol: chalk.dim('•') });
123
- }
124
- else {
125
- this.pinoLogger?.trace(message);
126
- }
127
- this.fileLogger?.trace(message);
128
- }
129
- debug(message) {
130
- if (this.logFormat === 'default') {
131
- // @clack/prompts doesn't have debug, use message
132
- clackLog.message(message, { symbol: chalk.dim('◆') });
133
- }
134
- else {
135
- this.pinoLogger?.debug(message);
136
- }
137
- this.fileLogger?.debug(message);
138
- }
139
- info(message) {
140
- if (this.logFormat === 'default') {
141
- clackLog.info(message);
142
- }
143
- else {
144
- this.pinoLogger?.info(message);
145
- }
146
- this.fileLogger?.info(message);
147
- }
148
- warn(message) {
149
- if (this.logFormat === 'default') {
150
- clackLog.warn(message);
151
- }
152
- else {
153
- this.pinoLogger?.warn(message);
154
- }
155
- this.fileLogger?.warn(message);
156
- }
157
- error(message) {
158
- if (this.logFormat === 'default') {
159
- clackLog.error(message);
160
- }
161
- else {
162
- this.pinoLogger?.error(message);
163
- }
164
- this.fileLogger?.error(message);
165
- }
166
- fatal(message) {
167
- if (this.logFormat === 'default') {
168
- clackLog.error(message); // @clack/prompts doesn't have fatal, use error
169
- }
170
- else {
171
- this.pinoLogger?.fatal(message);
172
- }
173
- this.fileLogger?.fatal(message);
174
- }
175
- silent(message) {
176
- // Silent doesn't log to console, only to file
177
- this.fileLogger?.silent(message);
178
- }
179
- // @clack/prompts specific methods (for 'default' format)
180
- success(message) {
181
- if (this.logFormat === 'default') {
182
- clackLog.success(message);
183
- }
184
- else {
185
- this.pinoLogger?.info(message); // Map to info for non-default formats
186
- }
187
- this.fileLogger?.info(message);
188
- }
189
- step(message) {
190
- if (this.logFormat === 'default') {
191
- clackLog.step(message);
192
- }
193
- else {
194
- this.pinoLogger?.info(message); // Map to info for non-default formats
195
- }
196
- this.fileLogger?.info(message);
197
- }
198
- message(message, symbol) {
199
- if (this.logFormat === 'default') {
200
- clackLog.message(message, symbol ? { symbol } : undefined);
201
- }
202
- else {
203
- this.pinoLogger?.info(message); // Map to info for non-default formats
204
- }
205
- this.fileLogger?.info(message);
206
- }
207
- // Spinner functionality
208
- createSpinner(indicator = 'timer') {
209
- if (this.logFormat === 'default') {
210
- return spinner({ indicator });
211
- }
212
- else {
213
- return new MockSpinner(this);
214
- }
215
- }
216
- // Progress bar functionality
217
- createProgressBar(total) {
218
- if (this.logFormat === 'default') {
219
- return progress({ max: total });
220
- }
221
- else {
222
- return new MockProgress(total, this);
223
- }
224
- }
225
- // Command start/end markers
226
- startCommand(message) {
227
- if (this.logFormat === 'default') {
228
- intro(chalk.cyan(message));
229
- }
230
- else {
231
- this.info(`╭─ ${message}`);
232
- }
233
- this.fileLogger?.info(`[START] ${message}`);
234
- }
235
- endCommand(message) {
236
- if (this.logFormat === 'default') {
237
- outro(chalk.cyan(message));
238
- }
239
- else {
240
- this.info(`╰─ ${message}`);
241
- }
242
- this.fileLogger?.info(`[END] ${message}`);
243
- }
244
- // Flush logs to ensure they're written before process exit
245
- flush() {
246
- this.pinoLogger?.flush();
247
- this.fileLogger?.flush();
248
- }
249
- }
250
- export const logger = Logger.getInstance();
32
+ var MockSpinner = class {
33
+ currentMessage = "";
34
+ logger;
35
+ isCancelled = false;
36
+ constructor(logger) {
37
+ this.logger = logger;
38
+ }
39
+ start(message) {
40
+ if (message) {
41
+ this.currentMessage = message;
42
+ this.logger.info(`[Spinner] ${message}`);
43
+ }
44
+ }
45
+ stop(message) {
46
+ const msg = message || this.currentMessage;
47
+ if (msg) this.logger.info(`[Spinner] ${msg}`);
48
+ this.currentMessage = "";
49
+ }
50
+ message(message) {
51
+ if (message) {
52
+ this.currentMessage = message;
53
+ this.logger.info(`[Spinner] ${message}`);
54
+ }
55
+ }
56
+ };
57
+ var MockProgress = class {
58
+ max;
59
+ current = 0;
60
+ logger;
61
+ isCancelled = false;
62
+ constructor(max, logger) {
63
+ this.max = max;
64
+ this.logger = logger;
65
+ }
66
+ start(message) {
67
+ const msg = message || "Starting progress";
68
+ this.logger.info(`[Progress] ${msg} (0/${this.max})`);
69
+ }
70
+ stop(message) {
71
+ const msg = message || "Complete";
72
+ this.logger.info(`[Progress] ${msg} (${this.current}/${this.max})`);
73
+ }
74
+ message(message) {
75
+ if (message) this.logger.info(`[Progress] ${message} (${this.current}/${this.max})`);
76
+ }
77
+ advance(amount, message) {
78
+ this.current += amount;
79
+ const msg = message || "Progress";
80
+ this.logger.info(`[Progress] ${msg} (${this.current}/${this.max})`);
81
+ }
82
+ };
83
+ const logger = class Logger {
84
+ static instance;
85
+ pinoLogger = null;
86
+ fileLogger = null;
87
+ logFormat;
88
+ constructor() {
89
+ const format = (process.env.GT_LOG_FORMAT || "default").toLowerCase();
90
+ const logFile = process.env.GT_LOG_FILE;
91
+ const logLevel = process.env.GT_LOG_LEVEL || "info";
92
+ if (format !== "default" && format !== "json") {
93
+ console.error("Invalid log format");
94
+ process.exit(1);
95
+ }
96
+ if (logLevel !== "debug" && logLevel !== "info" && logLevel !== "warn" && logLevel !== "error") {
97
+ console.error("Invalid log level");
98
+ process.exit(1);
99
+ }
100
+ this.logFormat = format;
101
+ if (format === "json") this.pinoLogger = pino({
102
+ level: logLevel,
103
+ mixin: () => ({ logId: randomUUID() })
104
+ }, destination(1));
105
+ if (logFile) this.fileLogger = pino({
106
+ level: logLevel,
107
+ mixin: () => ({ logId: randomUUID() })
108
+ }, destination(logFile));
109
+ }
110
+ static getInstance() {
111
+ if (!Logger.instance) Logger.instance = new Logger();
112
+ return Logger.instance;
113
+ }
114
+ trace(message) {
115
+ if (this.logFormat === "default") {
116
+ endTerminalSession();
117
+ log.message(message, { symbol: chalk.dim("•") });
118
+ } else this.pinoLogger?.trace(message);
119
+ this.fileLogger?.trace(message);
120
+ }
121
+ debug(message) {
122
+ if (this.logFormat === "default") {
123
+ endTerminalSession();
124
+ log.message(message, { symbol: chalk.dim("◆") });
125
+ } else this.pinoLogger?.debug(message);
126
+ this.fileLogger?.debug(message);
127
+ }
128
+ info(message) {
129
+ if (this.logFormat === "default") {
130
+ endTerminalSession();
131
+ log.info(message);
132
+ } else this.pinoLogger?.info(message);
133
+ this.fileLogger?.info(message);
134
+ }
135
+ warn(message) {
136
+ if (this.logFormat === "default") {
137
+ endTerminalSession();
138
+ log.warn(message);
139
+ } else this.pinoLogger?.warn(message);
140
+ this.fileLogger?.warn(message);
141
+ }
142
+ error(message) {
143
+ if (this.logFormat === "default") {
144
+ endTerminalSession();
145
+ log.error(message);
146
+ } else this.pinoLogger?.error(message);
147
+ this.fileLogger?.error(message);
148
+ }
149
+ fatal(message) {
150
+ if (this.logFormat === "default") {
151
+ endTerminalSession();
152
+ log.error(message);
153
+ } else this.pinoLogger?.fatal(message);
154
+ this.fileLogger?.fatal(message);
155
+ }
156
+ silent(message) {
157
+ this.fileLogger?.silent(message);
158
+ }
159
+ success(message) {
160
+ if (this.logFormat === "default") {
161
+ endTerminalSession();
162
+ log.success(message);
163
+ } else this.pinoLogger?.info(message);
164
+ this.fileLogger?.info(message);
165
+ }
166
+ step(message) {
167
+ if (this.logFormat === "default") {
168
+ endTerminalSession();
169
+ log.step(message);
170
+ } else this.pinoLogger?.info(message);
171
+ this.fileLogger?.info(message);
172
+ }
173
+ message(message, symbol) {
174
+ if (this.logFormat === "default") {
175
+ endTerminalSession();
176
+ log.message(message, symbol ? { symbol } : void 0);
177
+ } else this.pinoLogger?.info(message);
178
+ this.fileLogger?.info(message);
179
+ }
180
+ createSpinner(indicator = "timer") {
181
+ if (this.logFormat === "default") return wrapTerminalSessionAware(spinner({ indicator }));
182
+ else return new MockSpinner(this);
183
+ }
184
+ createProgressBar(total) {
185
+ if (this.logFormat === "default") return wrapTerminalSessionAware(progress({ max: total }));
186
+ else return new MockProgress(total, this);
187
+ }
188
+ startCommand(message) {
189
+ if (this.logFormat === "default") {
190
+ endTerminalSession();
191
+ intro(chalk.cyan(message));
192
+ } else this.info(`╭─ ${message}`);
193
+ this.fileLogger?.info(`[START] ${message}`);
194
+ }
195
+ endCommand(message) {
196
+ if (this.logFormat === "default") {
197
+ endTerminalSession();
198
+ outro(chalk.cyan(message));
199
+ } else this.info(`╰─ ${message}`);
200
+ this.fileLogger?.info(`[END] ${message}`);
201
+ }
202
+ flush() {
203
+ this.pinoLogger?.flush();
204
+ this.fileLogger?.flush();
205
+ }
206
+ }.getInstance();
207
+ //#endregion
208
+ export { logger };
209
+
210
+ //# sourceMappingURL=logger.js.map