gt 2.14.35 → 2.14.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (430) hide show
  1. package/CHANGELOG.md +22 -1
  2. package/dist/api/collectUserEditDiffs.js +112 -155
  3. package/dist/api/collectUserEditDiffs.js.map +1 -0
  4. package/dist/api/downloadFileBatch.js +164 -241
  5. package/dist/api/downloadFileBatch.js.map +1 -0
  6. package/dist/api/saveLocalEdits.js +37 -41
  7. package/dist/api/saveLocalEdits.js.map +1 -0
  8. package/dist/bin/bin-entry.js +17 -7
  9. package/dist/bin/bin-entry.js.map +1 -0
  10. package/dist/bin/bin-main.js +43 -61
  11. package/dist/bin/bin-main.js.map +1 -0
  12. package/dist/cli/base.js +382 -497
  13. package/dist/cli/base.js.map +1 -0
  14. package/dist/cli/commands/download.js +41 -49
  15. package/dist/cli/commands/download.js.map +1 -0
  16. package/dist/cli/commands/enqueue.js +26 -25
  17. package/dist/cli/commands/enqueue.js.map +1 -0
  18. package/dist/cli/commands/setupProject.js +33 -36
  19. package/dist/cli/commands/setupProject.js.map +1 -0
  20. package/dist/cli/commands/stage.js +53 -61
  21. package/dist/cli/commands/stage.js.map +1 -0
  22. package/dist/cli/commands/translate.js +75 -112
  23. package/dist/cli/commands/translate.js.map +1 -0
  24. package/dist/cli/commands/upload.js +185 -213
  25. package/dist/cli/commands/upload.js.map +1 -0
  26. package/dist/cli/commands/utils/validation.js +39 -34
  27. package/dist/cli/commands/utils/validation.js.map +1 -0
  28. package/dist/cli/flags.js +35 -62
  29. package/dist/cli/flags.js.map +1 -0
  30. package/dist/cli/inline.js +112 -137
  31. package/dist/cli/inline.js.map +1 -0
  32. package/dist/cli/next.js +17 -12
  33. package/dist/cli/next.js.map +1 -0
  34. package/dist/cli/node.js +19 -15
  35. package/dist/cli/node.js.map +1 -0
  36. package/dist/cli/python.js +13 -8
  37. package/dist/cli/python.js.map +1 -0
  38. package/dist/cli/react.js +61 -78
  39. package/dist/cli/react.js.map +1 -0
  40. package/dist/config/defaults.js +16 -11
  41. package/dist/config/defaults.js.map +1 -0
  42. package/dist/config/generateSettings.js +167 -269
  43. package/dist/config/generateSettings.js.map +1 -0
  44. package/dist/config/optionPresets.js +78 -96
  45. package/dist/config/optionPresets.js.map +1 -0
  46. package/dist/config/resolveConfig.js +27 -32
  47. package/dist/config/resolveConfig.js.map +1 -0
  48. package/dist/config/utils.js +7 -3
  49. package/dist/config/utils.js.map +1 -0
  50. package/dist/config/validateSettings.js +19 -30
  51. package/dist/config/validateSettings.js.map +1 -0
  52. package/dist/console/colors.js +18 -13
  53. package/dist/console/colors.js.map +1 -0
  54. package/dist/console/displayTranslateSummary.js +40 -37
  55. package/dist/console/displayTranslateSummary.js.map +1 -0
  56. package/dist/console/formatting.js +8 -5
  57. package/dist/console/formatting.js.map +1 -0
  58. package/dist/console/index.d.ts +11 -9
  59. package/dist/console/index.js +53 -50
  60. package/dist/console/index.js.map +1 -0
  61. package/dist/console/inkFields.d.ts +23 -0
  62. package/dist/console/inkFields.js +87 -0
  63. package/dist/console/inkFields.js.map +1 -0
  64. package/dist/console/inkLayout.d.ts +7 -0
  65. package/dist/console/inkLayout.js +139 -0
  66. package/dist/console/inkLayout.js.map +1 -0
  67. package/dist/console/inkLocaleData.d.ts +4 -0
  68. package/dist/console/inkLocaleData.js +32 -0
  69. package/dist/console/inkLocaleData.js.map +1 -0
  70. package/dist/console/inkPrompts.d.ts +8 -0
  71. package/dist/console/inkPrompts.js +496 -0
  72. package/dist/console/inkPrompts.js.map +1 -0
  73. package/dist/console/inkSession.d.ts +3 -0
  74. package/dist/console/inkSession.js +42 -0
  75. package/dist/console/inkSession.js.map +1 -0
  76. package/dist/console/inkTerminal.d.ts +4 -0
  77. package/dist/console/inkTerminal.js +15 -0
  78. package/dist/console/inkTerminal.js.map +1 -0
  79. package/dist/console/inkTypes.d.ts +66 -0
  80. package/dist/console/inkTypes.js +1 -0
  81. package/dist/console/inkUtils.d.ts +24 -0
  82. package/dist/console/inkUtils.js +87 -0
  83. package/dist/console/inkUtils.js.map +1 -0
  84. package/dist/console/logger.js +209 -249
  85. package/dist/console/logger.js.map +1 -0
  86. package/dist/console/logging.d.ts +14 -0
  87. package/dist/console/logging.js +203 -162
  88. package/dist/console/logging.js.map +1 -0
  89. package/dist/console/promptParsing.d.ts +5 -0
  90. package/dist/console/promptParsing.js +28 -0
  91. package/dist/console/promptParsing.js.map +1 -0
  92. package/dist/console/terminalSession.d.ts +5 -0
  93. package/dist/console/terminalSession.js +38 -0
  94. package/dist/console/terminalSession.js.map +1 -0
  95. package/dist/extraction/index.js +3 -2
  96. package/dist/extraction/mapToUpdates.js +19 -18
  97. package/dist/extraction/mapToUpdates.js.map +1 -0
  98. package/dist/extraction/postProcess.js +68 -86
  99. package/dist/extraction/postProcess.js.map +1 -0
  100. package/dist/formats/files/aggregateFiles.js +223 -304
  101. package/dist/formats/files/aggregateFiles.js.map +1 -0
  102. package/dist/formats/files/collectFiles.js +53 -54
  103. package/dist/formats/files/collectFiles.js.map +1 -0
  104. package/dist/formats/files/convertToFileTranslationData.js +21 -19
  105. package/dist/formats/files/convertToFileTranslationData.js.map +1 -0
  106. package/dist/formats/files/fileMapping.js +82 -119
  107. package/dist/formats/files/fileMapping.js.map +1 -0
  108. package/dist/formats/files/preprocess/mdx.js +15 -12
  109. package/dist/formats/files/preprocess/mdx.js.map +1 -0
  110. package/dist/formats/files/preprocess/mintlify.js +15 -13
  111. package/dist/formats/files/preprocess/mintlify.js.map +1 -0
  112. package/dist/formats/files/preprocessContent.js +20 -21
  113. package/dist/formats/files/preprocessContent.js.map +1 -0
  114. package/dist/formats/files/save.js +18 -15
  115. package/dist/formats/files/save.js.map +1 -0
  116. package/dist/formats/files/supportedFiles.js +27 -22
  117. package/dist/formats/files/supportedFiles.js.map +1 -0
  118. package/dist/formats/files/transformFormat.js +93 -100
  119. package/dist/formats/files/transformFormat.js.map +1 -0
  120. package/dist/formats/json/extractJson.js +83 -110
  121. package/dist/formats/json/extractJson.js.map +1 -0
  122. package/dist/formats/json/flattenJson.js +41 -48
  123. package/dist/formats/json/flattenJson.js.map +1 -0
  124. package/dist/formats/json/jsonPath.js +20 -15
  125. package/dist/formats/json/jsonPath.js.map +1 -0
  126. package/dist/formats/json/jsonPointer.js +17 -17
  127. package/dist/formats/json/jsonPointer.js.map +1 -0
  128. package/dist/formats/json/mergeJson.js +230 -371
  129. package/dist/formats/json/mergeJson.js.map +1 -0
  130. package/dist/formats/json/parseJson.js +74 -111
  131. package/dist/formats/json/parseJson.js.map +1 -0
  132. package/dist/formats/json/transformJson.js +53 -61
  133. package/dist/formats/json/transformJson.js.map +1 -0
  134. package/dist/formats/json/utils.js +158 -187
  135. package/dist/formats/json/utils.js.map +1 -0
  136. package/dist/formats/parseKeyedMetadata.js +85 -106
  137. package/dist/formats/parseKeyedMetadata.js.map +1 -0
  138. package/dist/formats/utils.js +13 -23
  139. package/dist/formats/utils.js.map +1 -0
  140. package/dist/formats/yaml/extractYaml.js +32 -31
  141. package/dist/formats/yaml/extractYaml.js.map +1 -0
  142. package/dist/formats/yaml/mergeYaml.js +43 -60
  143. package/dist/formats/yaml/mergeYaml.js.map +1 -0
  144. package/dist/formats/yaml/parseYaml.js +34 -23
  145. package/dist/formats/yaml/parseYaml.js.map +1 -0
  146. package/dist/formats/yaml/utils.js +19 -21
  147. package/dist/formats/yaml/utils.js.map +1 -0
  148. package/dist/fs/clearLocaleDirs.js +82 -114
  149. package/dist/fs/clearLocaleDirs.js.map +1 -0
  150. package/dist/fs/config/downloadedVersions.js +174 -188
  151. package/dist/fs/config/downloadedVersions.js.map +1 -0
  152. package/dist/fs/config/loadConfig.js +12 -8
  153. package/dist/fs/config/loadConfig.js.map +1 -0
  154. package/dist/fs/config/parseFilesConfig.js +166 -227
  155. package/dist/fs/config/parseFilesConfig.js.map +1 -0
  156. package/dist/fs/config/setupConfig.js +43 -52
  157. package/dist/fs/config/setupConfig.js.map +1 -0
  158. package/dist/fs/config/updateConfig.js +44 -56
  159. package/dist/fs/config/updateConfig.js.map +1 -0
  160. package/dist/fs/config/updateVersions.js +27 -28
  161. package/dist/fs/config/updateVersions.js.map +1 -0
  162. package/dist/fs/copyFile.js +33 -37
  163. package/dist/fs/copyFile.js.map +1 -0
  164. package/dist/fs/createLoadTranslationsFile.js +32 -48
  165. package/dist/fs/createLoadTranslationsFile.js.map +1 -0
  166. package/dist/fs/determineFramework/detectPythonLibrary.js +30 -34
  167. package/dist/fs/determineFramework/detectPythonLibrary.js.map +1 -0
  168. package/dist/fs/determineFramework/index.js +46 -64
  169. package/dist/fs/determineFramework/index.js.map +1 -0
  170. package/dist/fs/determineFramework/matchPyprojectDependency.js +65 -78
  171. package/dist/fs/determineFramework/matchPyprojectDependency.js.map +1 -0
  172. package/dist/fs/determineFramework/matchRequirementsTxtDependency.js +21 -19
  173. package/dist/fs/determineFramework/matchRequirementsTxtDependency.js.map +1 -0
  174. package/dist/fs/determineFramework/matchSetupPyDependency.js +60 -81
  175. package/dist/fs/determineFramework/matchSetupPyDependency.js.map +1 -0
  176. package/dist/fs/determineFramework/resolveGtDependency.js +15 -15
  177. package/dist/fs/determineFramework/resolveGtDependency.js.map +1 -0
  178. package/dist/fs/findFilepath.js +63 -78
  179. package/dist/fs/findFilepath.js.map +1 -0
  180. package/dist/fs/loadJSON.js +18 -15
  181. package/dist/fs/loadJSON.js.map +1 -0
  182. package/dist/fs/matchFiles.js +12 -7
  183. package/dist/fs/matchFiles.js.map +1 -0
  184. package/dist/fs/saveJSON.js +10 -6
  185. package/dist/fs/saveJSON.js.map +1 -0
  186. package/dist/fs/utils.js +19 -15
  187. package/dist/fs/utils.js.map +1 -0
  188. package/dist/functions.d.ts +2 -1
  189. package/dist/functions.js +3 -6
  190. package/dist/generated/version.d.ts +1 -1
  191. package/dist/generated/version.js +6 -2
  192. package/dist/generated/version.js.map +1 -0
  193. package/dist/git/branches.js +77 -83
  194. package/dist/git/branches.js.map +1 -0
  195. package/dist/hooks/postProcess.js +97 -114
  196. package/dist/hooks/postProcess.js.map +1 -0
  197. package/dist/index.js +23 -31
  198. package/dist/index.js.map +1 -0
  199. package/dist/locadex/setupFlow.js +11 -8
  200. package/dist/locadex/setupFlow.js.map +1 -0
  201. package/dist/main.js +17 -7
  202. package/dist/main.js.map +1 -0
  203. package/dist/next/config/parseNextConfig.js +32 -51
  204. package/dist/next/config/parseNextConfig.js.map +1 -0
  205. package/dist/next/jsx/utils.js +25 -37
  206. package/dist/next/jsx/utils.js.map +1 -0
  207. package/dist/next/parse/handleInitGT.js +87 -154
  208. package/dist/next/parse/handleInitGT.js.map +1 -0
  209. package/dist/next/parse/wrapContent.js +136 -158
  210. package/dist/next/parse/wrapContent.js.map +1 -0
  211. package/dist/python/parse/createPythonInlineUpdates.js +36 -33
  212. package/dist/python/parse/createPythonInlineUpdates.js.map +1 -0
  213. package/dist/react/config/createESBuildConfig.js +115 -115
  214. package/dist/react/config/createESBuildConfig.js.map +1 -0
  215. package/dist/react/jsx/evaluateJsx.js +90 -124
  216. package/dist/react/jsx/evaluateJsx.js.map +1 -0
  217. package/dist/react/jsx/utils/buildImportMap.js +24 -28
  218. package/dist/react/jsx/utils/buildImportMap.js.map +1 -0
  219. package/dist/react/jsx/utils/constants.js +79 -87
  220. package/dist/react/jsx/utils/constants.js.map +1 -0
  221. package/dist/react/jsx/utils/extractSourceCode.js +36 -37
  222. package/dist/react/jsx/utils/extractSourceCode.js.map +1 -0
  223. package/dist/react/jsx/utils/getCalleeNameFromExpression.js +30 -30
  224. package/dist/react/jsx/utils/getCalleeNameFromExpression.js.map +1 -0
  225. package/dist/react/jsx/utils/getPathsAndAliases.js +70 -105
  226. package/dist/react/jsx/utils/getPathsAndAliases.js.map +1 -0
  227. package/dist/react/jsx/utils/isNumberLiteral.js +13 -11
  228. package/dist/react/jsx/utils/isNumberLiteral.js.map +1 -0
  229. package/dist/react/jsx/utils/jsxParsing/addGTIdentifierToSyntaxTree.js +103 -148
  230. package/dist/react/jsx/utils/jsxParsing/addGTIdentifierToSyntaxTree.js.map +1 -0
  231. package/dist/react/jsx/utils/jsxParsing/autoInsertion.js +305 -389
  232. package/dist/react/jsx/utils/jsxParsing/autoInsertion.js.map +1 -0
  233. package/dist/react/jsx/utils/jsxParsing/handleChildrenWhitespace.js +122 -193
  234. package/dist/react/jsx/utils/jsxParsing/handleChildrenWhitespace.js.map +1 -0
  235. package/dist/react/jsx/utils/jsxParsing/multiplication/findMultiplicationNode.js +50 -64
  236. package/dist/react/jsx/utils/jsxParsing/multiplication/findMultiplicationNode.js.map +1 -0
  237. package/dist/react/jsx/utils/jsxParsing/multiplication/multiplyJsxTree.js +41 -68
  238. package/dist/react/jsx/utils/jsxParsing/multiplication/multiplyJsxTree.js.map +1 -0
  239. package/dist/react/jsx/utils/jsxParsing/parseJsx.js +760 -1107
  240. package/dist/react/jsx/utils/jsxParsing/parseJsx.js.map +1 -0
  241. package/dist/react/jsx/utils/jsxParsing/parseTProps.js +35 -71
  242. package/dist/react/jsx/utils/jsxParsing/parseTProps.js.map +1 -0
  243. package/dist/react/jsx/utils/jsxParsing/removeNullChildrenFields.js +39 -58
  244. package/dist/react/jsx/utils/jsxParsing/removeNullChildrenFields.js.map +1 -0
  245. package/dist/react/jsx/utils/jsxParsing/types.js +10 -24
  246. package/dist/react/jsx/utils/jsxParsing/types.js.map +1 -0
  247. package/dist/react/jsx/utils/mapAttributeName.js +13 -13
  248. package/dist/react/jsx/utils/mapAttributeName.js.map +1 -0
  249. package/dist/react/jsx/utils/parseAst.js +142 -272
  250. package/dist/react/jsx/utils/parseAst.js.map +1 -0
  251. package/dist/react/jsx/utils/parseString.js +726 -1090
  252. package/dist/react/jsx/utils/parseString.js.map +1 -0
  253. package/dist/react/jsx/utils/parseStringFunction.js +274 -401
  254. package/dist/react/jsx/utils/parseStringFunction.js.map +1 -0
  255. package/dist/react/jsx/utils/resolveImportPath.d.ts +1 -1
  256. package/dist/react/jsx/utils/resolveImportPath.js +125 -108
  257. package/dist/react/jsx/utils/resolveImportPath.js.map +1 -0
  258. package/dist/react/jsx/utils/stringParsing/derivation/containsDeriveCall.js +18 -24
  259. package/dist/react/jsx/utils/stringParsing/derivation/containsDeriveCall.js.map +1 -0
  260. package/dist/react/jsx/utils/stringParsing/derivation/handleDerivation.js +412 -579
  261. package/dist/react/jsx/utils/stringParsing/derivation/handleDerivation.js.map +1 -0
  262. package/dist/react/jsx/utils/stringParsing/derivation/index.js +57 -67
  263. package/dist/react/jsx/utils/stringParsing/derivation/index.js.map +1 -0
  264. package/dist/react/jsx/utils/stringParsing/derivation/isDeriveCall.js +26 -36
  265. package/dist/react/jsx/utils/stringParsing/derivation/isDeriveCall.js.map +1 -0
  266. package/dist/react/jsx/utils/stringParsing/processTaggedTemplateCall/handleTaggedTemplateTranslationCall.js +29 -24
  267. package/dist/react/jsx/utils/stringParsing/processTaggedTemplateCall/handleTaggedTemplateTranslationCall.js.map +1 -0
  268. package/dist/react/jsx/utils/stringParsing/processTaggedTemplateCall/index.js +34 -32
  269. package/dist/react/jsx/utils/stringParsing/processTaggedTemplateCall/index.js.map +1 -0
  270. package/dist/react/jsx/utils/stringParsing/processTranslationCall/extractStringEntryMetadata.js +80 -117
  271. package/dist/react/jsx/utils/stringParsing/processTranslationCall/extractStringEntryMetadata.js.map +1 -0
  272. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleDeriveTranslationCall.js +24 -19
  273. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleDeriveTranslationCall.js.map +1 -0
  274. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleInvalidTranslationCall.js +18 -21
  275. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleInvalidTranslationCall.js.map +1 -0
  276. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleLiteralTranslationCall.js +45 -50
  277. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleLiteralTranslationCall.js.map +1 -0
  278. package/dist/react/jsx/utils/stringParsing/processTranslationCall/index.js +54 -59
  279. package/dist/react/jsx/utils/stringParsing/processTranslationCall/index.js.map +1 -0
  280. package/dist/react/jsx/utils/stringParsing/processTranslationCall/routeTranslationCall.js +56 -69
  281. package/dist/react/jsx/utils/stringParsing/processTranslationCall/routeTranslationCall.js.map +1 -0
  282. package/dist/react/jsx/utils/validateStringFunction.js +21 -29
  283. package/dist/react/jsx/utils/validateStringFunction.js.map +1 -0
  284. package/dist/react/jsx/wrapJsx.js +192 -375
  285. package/dist/react/jsx/wrapJsx.js.map +1 -0
  286. package/dist/react/parse/addVitePlugin/index.js +40 -34
  287. package/dist/react/parse/addVitePlugin/index.js.map +1 -0
  288. package/dist/react/parse/addVitePlugin/installCompiler.js +18 -20
  289. package/dist/react/parse/addVitePlugin/installCompiler.js.map +1 -0
  290. package/dist/react/parse/addVitePlugin/updateViteConfig.js +107 -111
  291. package/dist/react/parse/addVitePlugin/updateViteConfig.js.map +1 -0
  292. package/dist/react/parse/addVitePlugin/utils/addCompilerImport.js +23 -26
  293. package/dist/react/parse/addVitePlugin/utils/addCompilerImport.js.map +1 -0
  294. package/dist/react/parse/addVitePlugin/utils/addPluginInvocation.js +29 -43
  295. package/dist/react/parse/addVitePlugin/utils/addPluginInvocation.js.map +1 -0
  296. package/dist/react/parse/addVitePlugin/utils/checkCompilerImport.js +70 -104
  297. package/dist/react/parse/addVitePlugin/utils/checkCompilerImport.js.map +1 -0
  298. package/dist/react/parse/addVitePlugin/utils/checkPluginInvocation.js +23 -29
  299. package/dist/react/parse/addVitePlugin/utils/checkPluginInvocation.js.map +1 -0
  300. package/dist/react/parse/createDictionaryUpdates.js +121 -185
  301. package/dist/react/parse/createDictionaryUpdates.js.map +1 -0
  302. package/dist/react/parse/createInlineUpdates.js +123 -139
  303. package/dist/react/parse/createInlineUpdates.js.map +1 -0
  304. package/dist/react/parse/wrapContent.js +131 -156
  305. package/dist/react/parse/wrapContent.js.map +1 -0
  306. package/dist/react/utils/flattenDictionary.js +55 -70
  307. package/dist/react/utils/flattenDictionary.js.map +1 -0
  308. package/dist/react/utils/getEntryAndMetadata.js +14 -10
  309. package/dist/react/utils/getEntryAndMetadata.js.map +1 -0
  310. package/dist/react/utils/getVariableName.js +36 -33
  311. package/dist/react/utils/getVariableName.js.map +1 -0
  312. package/dist/setup/detectFramework.js +85 -102
  313. package/dist/setup/detectFramework.js.map +1 -0
  314. package/dist/setup/frameworkUtils.js +17 -28
  315. package/dist/setup/frameworkUtils.js.map +1 -0
  316. package/dist/setup/userInput.js +24 -31
  317. package/dist/setup/userInput.js.map +1 -0
  318. package/dist/setup/wizard.js +141 -143
  319. package/dist/setup/wizard.js.map +1 -0
  320. package/dist/state/mintlifyRefMap.js +12 -9
  321. package/dist/state/mintlifyRefMap.js.map +1 -0
  322. package/dist/state/recentDownloads.js +26 -23
  323. package/dist/state/recentDownloads.js.map +1 -0
  324. package/dist/state/translateWarnings.js +17 -8
  325. package/dist/state/translateWarnings.js.map +1 -0
  326. package/dist/translation/parse.js +77 -98
  327. package/dist/translation/parse.js.map +1 -0
  328. package/dist/translation/stage.js +28 -43
  329. package/dist/translation/stage.js.map +1 -0
  330. package/dist/translation/validate.js +68 -91
  331. package/dist/translation/validate.js.map +1 -0
  332. package/dist/types/libraries.js +93 -91
  333. package/dist/types/libraries.js.map +1 -0
  334. package/dist/types/parsing.js +19 -10
  335. package/dist/types/parsing.js.map +1 -0
  336. package/dist/utils/addExplicitAnchorIds.js +270 -389
  337. package/dist/utils/addExplicitAnchorIds.js.map +1 -0
  338. package/dist/utils/calculateTimeoutMs.js +11 -6
  339. package/dist/utils/calculateTimeoutMs.js.map +1 -0
  340. package/dist/utils/constants.js +15 -12
  341. package/dist/utils/constants.js.map +1 -0
  342. package/dist/utils/credentials.js +67 -114
  343. package/dist/utils/credentials.js.map +1 -0
  344. package/dist/utils/fetch.js +22 -20
  345. package/dist/utils/fetch.js.map +1 -0
  346. package/dist/utils/flattenJsonFiles.js +27 -34
  347. package/dist/utils/flattenJsonFiles.js.map +1 -0
  348. package/dist/utils/gitDiff.js +30 -32
  349. package/dist/utils/gitDiff.js.map +1 -0
  350. package/dist/utils/gt.js +7 -2
  351. package/dist/utils/gt.js.map +1 -0
  352. package/dist/utils/hash.js +14 -9
  353. package/dist/utils/hash.js.map +1 -0
  354. package/dist/utils/headers.js +10 -13
  355. package/dist/utils/headers.js.map +1 -0
  356. package/dist/utils/installPackage.js +70 -75
  357. package/dist/utils/installPackage.js.map +1 -0
  358. package/dist/utils/localizeRelativeAssets.js +114 -157
  359. package/dist/utils/localizeRelativeAssets.js.map +1 -0
  360. package/dist/utils/localizeStaticImports.js +229 -371
  361. package/dist/utils/localizeStaticImports.js.map +1 -0
  362. package/dist/utils/localizeStaticUrls.js +241 -424
  363. package/dist/utils/localizeStaticUrls.js.map +1 -0
  364. package/dist/utils/mintlifyTitleFallback.js +64 -72
  365. package/dist/utils/mintlifyTitleFallback.js.map +1 -0
  366. package/dist/utils/monorepoVersionCheck.js +177 -215
  367. package/dist/utils/monorepoVersionCheck.js.map +1 -0
  368. package/dist/utils/packageInfo.js +17 -16
  369. package/dist/utils/packageInfo.js.map +1 -0
  370. package/dist/utils/packageJson.js +51 -66
  371. package/dist/utils/packageJson.js.map +1 -0
  372. package/dist/utils/packageManager.js +237 -260
  373. package/dist/utils/packageManager.js.map +1 -0
  374. package/dist/utils/parse/needsCJS.js +36 -69
  375. package/dist/utils/parse/needsCJS.js.map +1 -0
  376. package/dist/utils/persistPostprocessHashes.js +30 -32
  377. package/dist/utils/persistPostprocessHashes.js.map +1 -0
  378. package/dist/utils/processAnchorIds.js +32 -54
  379. package/dist/utils/processAnchorIds.js.map +1 -0
  380. package/dist/utils/processOpenApi.js +469 -578
  381. package/dist/utils/processOpenApi.js.map +1 -0
  382. package/dist/utils/resolveMintlifyRefs.js +89 -105
  383. package/dist/utils/resolveMintlifyRefs.js.map +1 -0
  384. package/dist/utils/resolvePublish.js +46 -54
  385. package/dist/utils/resolvePublish.js.map +1 -0
  386. package/dist/utils/sanitizeFileContent.js +20 -27
  387. package/dist/utils/sanitizeFileContent.js.map +1 -0
  388. package/dist/utils/sharedStaticAssets.js +248 -366
  389. package/dist/utils/sharedStaticAssets.js.map +1 -0
  390. package/dist/utils/splitMintlifyLanguageRefs.js +208 -282
  391. package/dist/utils/splitMintlifyLanguageRefs.js.map +1 -0
  392. package/dist/utils/validateMdx.js +26 -23
  393. package/dist/utils/validateMdx.js.map +1 -0
  394. package/dist/utils/wrapPlainUrls.js +58 -70
  395. package/dist/utils/wrapPlainUrls.js.map +1 -0
  396. package/dist/workflows/download.js +92 -126
  397. package/dist/workflows/download.js.map +1 -0
  398. package/dist/workflows/enqueue.js +47 -54
  399. package/dist/workflows/enqueue.js.map +1 -0
  400. package/dist/workflows/publish.js +29 -29
  401. package/dist/workflows/publish.js.map +1 -0
  402. package/dist/workflows/setupProject.js +39 -40
  403. package/dist/workflows/setupProject.js.map +1 -0
  404. package/dist/workflows/stage.js +61 -65
  405. package/dist/workflows/stage.js.map +1 -0
  406. package/dist/workflows/steps/BranchStep.js +118 -163
  407. package/dist/workflows/steps/BranchStep.js.map +1 -0
  408. package/dist/workflows/steps/DownloadStep.js +107 -137
  409. package/dist/workflows/steps/DownloadStep.js.map +1 -0
  410. package/dist/workflows/steps/EnqueueStep.js +32 -32
  411. package/dist/workflows/steps/EnqueueStep.js.map +1 -0
  412. package/dist/workflows/steps/PollJobsStep.js +208 -292
  413. package/dist/workflows/steps/PollJobsStep.js.map +1 -0
  414. package/dist/workflows/steps/PublishStep.js +33 -38
  415. package/dist/workflows/steps/PublishStep.js.map +1 -0
  416. package/dist/workflows/steps/SetupStep.js +71 -72
  417. package/dist/workflows/steps/SetupStep.js.map +1 -0
  418. package/dist/workflows/steps/TagStep.js +39 -44
  419. package/dist/workflows/steps/TagStep.js.map +1 -0
  420. package/dist/workflows/steps/UploadSourcesStep.js +108 -140
  421. package/dist/workflows/steps/UploadSourcesStep.js.map +1 -0
  422. package/dist/workflows/steps/UploadTranslationsStep.js +61 -71
  423. package/dist/workflows/steps/UploadTranslationsStep.js.map +1 -0
  424. package/dist/workflows/steps/UserEditDiffsStep.js +32 -34
  425. package/dist/workflows/steps/UserEditDiffsStep.js.map +1 -0
  426. package/dist/workflows/steps/WorkflowStep.js +6 -2
  427. package/dist/workflows/steps/WorkflowStep.js.map +1 -0
  428. package/dist/workflows/upload.js +45 -46
  429. package/dist/workflows/upload.js.map +1 -0
  430. package/package.json +14 -7
@@ -1,144 +1,128 @@
1
- import fs from 'node:fs';
2
- import { parse } from '@babel/parser';
3
- import { parseTranslationComponent } from '../jsx/utils/jsxParsing/parseJsx.js';
4
- import { parseStrings } from '../jsx/utils/parseStringFunction.js';
5
- import { logger } from '../../console/logger.js';
6
- import { matchFiles } from '../../fs/matchFiles.js';
7
- import { DEFAULT_SRC_PATTERNS } from '../../config/generateSettings.js';
8
- import { resolveAutoderive } from '../../types/parsing.js';
9
- import { getPathsAndAliases } from '../jsx/utils/getPathsAndAliases.js';
10
- import { GT_LIBRARIES_UPSTREAM, REACT_LIBRARIES, } from '../../types/libraries.js';
11
- import { calculateHashes, dedupeUpdates, linkDeriveUpdates, } from '../../extraction/postProcess.js';
12
- import { ensureTAndVarImported, autoInsertJsxComponents, } from '../jsx/utils/jsxParsing/autoInsertion.js';
13
- import { INTERNAL_TRANSLATION_COMPONENT } from '../jsx/utils/constants.js';
14
- import traverseModule from '@babel/traverse';
1
+ import { logger } from "../../console/logger.js";
2
+ import "../jsx/utils/constants.js";
3
+ import { getPathsAndAliases } from "../jsx/utils/getPathsAndAliases.js";
4
+ import { autoInsertJsxComponents, ensureTAndVarImported } from "../jsx/utils/jsxParsing/autoInsertion.js";
5
+ import { GT_LIBRARIES_UPSTREAM, REACT_LIBRARIES } from "../../types/libraries.js";
6
+ import { parseTranslationComponent } from "../jsx/utils/jsxParsing/parseJsx.js";
7
+ import { parseStrings } from "../jsx/utils/parseStringFunction.js";
8
+ import { matchFiles } from "../../fs/matchFiles.js";
9
+ import { DEFAULT_SRC_PATTERNS } from "../../config/generateSettings.js";
10
+ import { resolveAutoderive } from "../../types/parsing.js";
11
+ import { calculateHashes, dedupeUpdates, linkDeriveUpdates } from "../../extraction/postProcess.js";
12
+ import fs from "node:fs";
13
+ import { parse } from "@babel/parser";
14
+ import traverseModule from "@babel/traverse";
15
+ //#region src/react/parse/createInlineUpdates.ts
15
16
  const traverse = traverseModule.default || traverseModule;
16
- export async function createInlineUpdates(pkg, validate, filePatterns, parsingFlags, parsingOptions) {
17
- const updates = [];
18
- const errors = [];
19
- const warnings = new Set();
20
- const pkgs = getUpstreamPackages(pkg);
21
- const autoderive = resolveAutoderive(parsingFlags.autoderive);
22
- // Use the provided app directory or default to the current directory
23
- const files = matchFiles(process.cwd(), filePatterns || DEFAULT_SRC_PATTERNS);
24
- for (const file of files) {
25
- const code = await fs.promises.readFile(file, 'utf8');
26
- let ast;
27
- try {
28
- ast = parse(code, {
29
- sourceType: 'module',
30
- plugins: ['jsx', 'typescript'],
31
- });
32
- }
33
- catch (error) {
34
- logger.error(`Error parsing file ${file}: ${error}`);
35
- continue;
36
- }
37
- // First pass: collect imports and process translation functions
38
- const { importAliases, inlineTranslationPaths, translationComponentPaths } = getPathsAndAliases(ast, pkgs);
39
- // Process translation functions asynchronously
40
- for (const { localName: name, originalName, path, } of inlineTranslationPaths) {
41
- parseStrings(name, originalName, path, {
42
- parsingOptions,
43
- file,
44
- ignoreInlineMetadata: false,
45
- ignoreDynamicContent: false,
46
- ignoreInvalidIcu: false,
47
- ignoreInlineListContent: false,
48
- includeSourceCodeContext: parsingFlags.includeSourceCodeContext,
49
- ignoreTaggedTemplates: false,
50
- ignoreGlobalTaggedTemplates: false,
51
- // User configurable, otherwise default to AUTO
52
- autoderiveMethod: autoderive.strings ? 'AUTO' : 'DISABLED',
53
- }, { updates, errors, warnings });
54
- }
55
- // Parse <T> components — PASS 1: user-written T
56
- if (REACT_LIBRARIES.includes(pkg)) {
57
- for (const { localName, path } of translationComponentPaths) {
58
- parseTranslationComponent({
59
- originalName: localName,
60
- localName,
61
- path,
62
- updates,
63
- config: {
64
- importAliases,
65
- parsingOptions,
66
- pkgs,
67
- file,
68
- includeSourceCodeContext: parsingFlags.includeSourceCodeContext,
69
- autoderive: autoderive.jsx,
70
- },
71
- output: {
72
- errors,
73
- warnings,
74
- unwrappedExpressions: [],
75
- },
76
- });
77
- }
78
- // PASS 2: Auto-inject GtInternalTranslateJsx and GtInternalVar and extract (flag-gated)
79
- if (parsingFlags.enableAutoJsxInjection) {
80
- // Add translation component names to importAliases so autoInsertJsxComponents
81
- // recognizes user T as hands-off (getPathsAndAliases separates them out)
82
- for (const { localName, originalName } of translationComponentPaths) {
83
- importAliases[localName] = originalName;
84
- }
85
- // Ensure GtInternalTranslateJsx and GtInternalVar are imported in the AST
86
- ensureTAndVarImported(ast, importAliases);
87
- // Insert T/Var into the AST
88
- autoInsertJsxComponents(ast, importAliases);
89
- // Refresh scope to pick up new T references
90
- traverse(ast, {
91
- Program(programPath) {
92
- programPath.scope.crawl();
93
- },
94
- });
95
- // Re-collect with updated AST
96
- const refreshed = getPathsAndAliases(ast, pkgs);
97
- // Add translation component names to refreshed aliases so parseJsx
98
- // can recognize GtInternalTranslateJsx inside Derive for transparent unwrap
99
- for (const { localName: tLocalName, originalName: tOrigName, } of refreshed.translationComponentPaths) {
100
- refreshed.importAliases[tLocalName] = tOrigName;
101
- }
102
- // Extract only from auto-injected GtInternalTranslateJsx — never re-extract user T
103
- for (const { localName, path, originalName, } of refreshed.translationComponentPaths) {
104
- if (originalName !== INTERNAL_TRANSLATION_COMPONENT)
105
- continue;
106
- parseTranslationComponent({
107
- originalName: localName,
108
- localName,
109
- path,
110
- updates,
111
- config: {
112
- importAliases: refreshed.importAliases,
113
- parsingOptions,
114
- pkgs,
115
- file,
116
- includeSourceCodeContext: parsingFlags.includeSourceCodeContext,
117
- enableAutoJsxInjection: true,
118
- autoderive: autoderive.jsx,
119
- },
120
- output: {
121
- errors,
122
- warnings,
123
- unwrappedExpressions: [],
124
- },
125
- });
126
- }
127
- }
128
- }
129
- }
130
- // Post processing steps:
131
- await calculateHashes(updates);
132
- dedupeUpdates(updates);
133
- linkDeriveUpdates(updates);
134
- return { updates, errors, warnings: [...warnings] };
17
+ async function createInlineUpdates(pkg, validate, filePatterns, parsingFlags, parsingOptions) {
18
+ const updates = [];
19
+ const errors = [];
20
+ const warnings = /* @__PURE__ */ new Set();
21
+ const pkgs = getUpstreamPackages(pkg);
22
+ const autoderive = resolveAutoderive(parsingFlags.autoderive);
23
+ const files = matchFiles(process.cwd(), filePatterns || DEFAULT_SRC_PATTERNS);
24
+ for (const file of files) {
25
+ const code = await fs.promises.readFile(file, "utf8");
26
+ let ast;
27
+ try {
28
+ ast = parse(code, {
29
+ sourceType: "module",
30
+ plugins: ["jsx", "typescript"]
31
+ });
32
+ } catch (error) {
33
+ logger.error(`Error parsing file ${file}: ${error}`);
34
+ continue;
35
+ }
36
+ const { importAliases, inlineTranslationPaths, translationComponentPaths } = getPathsAndAliases(ast, pkgs);
37
+ for (const { localName: name, originalName, path } of inlineTranslationPaths) parseStrings(name, originalName, path, {
38
+ parsingOptions,
39
+ file,
40
+ ignoreInlineMetadata: false,
41
+ ignoreDynamicContent: false,
42
+ ignoreInvalidIcu: false,
43
+ ignoreInlineListContent: false,
44
+ includeSourceCodeContext: parsingFlags.includeSourceCodeContext,
45
+ ignoreTaggedTemplates: false,
46
+ ignoreGlobalTaggedTemplates: false,
47
+ autoderiveMethod: autoderive.strings ? "AUTO" : "DISABLED"
48
+ }, {
49
+ updates,
50
+ errors,
51
+ warnings
52
+ });
53
+ if (REACT_LIBRARIES.includes(pkg)) {
54
+ for (const { localName, path } of translationComponentPaths) parseTranslationComponent({
55
+ originalName: localName,
56
+ localName,
57
+ path,
58
+ updates,
59
+ config: {
60
+ importAliases,
61
+ parsingOptions,
62
+ pkgs,
63
+ file,
64
+ includeSourceCodeContext: parsingFlags.includeSourceCodeContext,
65
+ autoderive: autoderive.jsx
66
+ },
67
+ output: {
68
+ errors,
69
+ warnings,
70
+ unwrappedExpressions: []
71
+ }
72
+ });
73
+ if (parsingFlags.enableAutoJsxInjection) {
74
+ for (const { localName, originalName } of translationComponentPaths) importAliases[localName] = originalName;
75
+ ensureTAndVarImported(ast, importAliases);
76
+ autoInsertJsxComponents(ast, importAliases);
77
+ traverse(ast, { Program(programPath) {
78
+ programPath.scope.crawl();
79
+ } });
80
+ const refreshed = getPathsAndAliases(ast, pkgs);
81
+ for (const { localName: tLocalName, originalName: tOrigName } of refreshed.translationComponentPaths) refreshed.importAliases[tLocalName] = tOrigName;
82
+ for (const { localName, path, originalName } of refreshed.translationComponentPaths) {
83
+ if (originalName !== "GtInternalTranslateJsx") continue;
84
+ parseTranslationComponent({
85
+ originalName: localName,
86
+ localName,
87
+ path,
88
+ updates,
89
+ config: {
90
+ importAliases: refreshed.importAliases,
91
+ parsingOptions,
92
+ pkgs,
93
+ file,
94
+ includeSourceCodeContext: parsingFlags.includeSourceCodeContext,
95
+ enableAutoJsxInjection: true,
96
+ autoderive: autoderive.jsx
97
+ },
98
+ output: {
99
+ errors,
100
+ warnings,
101
+ unwrappedExpressions: []
102
+ }
103
+ });
104
+ }
105
+ }
106
+ }
107
+ }
108
+ await calculateHashes(updates);
109
+ dedupeUpdates(updates);
110
+ linkDeriveUpdates(updates);
111
+ return {
112
+ updates,
113
+ errors,
114
+ warnings: [...warnings]
115
+ };
135
116
  }
136
117
  /**
137
- * Given a package name, return the upstream packages that it depends on
138
- * @param pkg - The package name
139
- * @returns The upstream packages that the package depends on
140
- */
118
+ * Given a package name, return the upstream packages that it depends on
119
+ * @param pkg - The package name
120
+ * @returns The upstream packages that the package depends on
121
+ */
141
122
  function getUpstreamPackages(pkg) {
142
- return GT_LIBRARIES_UPSTREAM[pkg];
123
+ return GT_LIBRARIES_UPSTREAM[pkg];
143
124
  }
144
- export { dedupeUpdates as _test_dedupeUpdates };
125
+ //#endregion
126
+ export { dedupeUpdates as _test_dedupeUpdates, createInlineUpdates };
127
+
128
+ //# sourceMappingURL=createInlineUpdates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createInlineUpdates.js","names":[],"sources":["../../../src/react/parse/createInlineUpdates.ts"],"sourcesContent":["import fs from 'node:fs';\nimport { Updates } from '../../types/index.js';\n\nimport { parse } from '@babel/parser';\nimport { parseTranslationComponent } from '../jsx/utils/jsxParsing/parseJsx.js';\nimport { parseStrings } from '../jsx/utils/parseStringFunction.js';\nimport { logger } from '../../console/logger.js';\nimport { matchFiles } from '../../fs/matchFiles.js';\nimport { DEFAULT_SRC_PATTERNS } from '../../config/generateSettings.js';\nimport type {\n ParsingConfigOptions,\n GTParsingFlags,\n} from '../../types/parsing.js';\nimport { resolveAutoderive } from '../../types/parsing.js';\nimport { getPathsAndAliases } from '../jsx/utils/getPathsAndAliases.js';\nimport {\n GTLibrary,\n GT_LIBRARIES_UPSTREAM,\n REACT_LIBRARIES,\n ReactLibrary,\n} from '../../types/libraries.js';\nimport {\n calculateHashes,\n dedupeUpdates,\n linkDeriveUpdates,\n} from '../../extraction/postProcess.js';\nimport {\n ensureTAndVarImported,\n autoInsertJsxComponents,\n} from '../jsx/utils/jsxParsing/autoInsertion.js';\nimport { INTERNAL_TRANSLATION_COMPONENT } from '../jsx/utils/constants.js';\nimport traverseModule from '@babel/traverse';\nconst traverse = traverseModule.default || traverseModule;\n\nexport async function createInlineUpdates(\n pkg: GTLibrary,\n validate: boolean,\n filePatterns: string[] | undefined,\n parsingFlags: GTParsingFlags,\n parsingOptions: ParsingConfigOptions\n): Promise<{ updates: Updates; errors: string[]; warnings: string[] }> {\n const updates: Updates = [];\n\n const errors: string[] = [];\n const warnings: Set<string> = new Set();\n\n const pkgs = getUpstreamPackages(pkg);\n\n const autoderive = resolveAutoderive(parsingFlags.autoderive);\n\n // Use the provided app directory or default to the current directory\n const files = matchFiles(process.cwd(), filePatterns || DEFAULT_SRC_PATTERNS);\n\n for (const file of files) {\n const code = await fs.promises.readFile(file, 'utf8');\n let ast;\n try {\n ast = parse(code, {\n sourceType: 'module',\n plugins: ['jsx', 'typescript'],\n });\n } catch (error) {\n logger.error(`Error parsing file ${file}: ${error}`);\n continue;\n }\n\n // First pass: collect imports and process translation functions\n const { importAliases, inlineTranslationPaths, translationComponentPaths } =\n getPathsAndAliases(ast, pkgs);\n\n // Process translation functions asynchronously\n for (const {\n localName: name,\n originalName,\n path,\n } of inlineTranslationPaths) {\n parseStrings(\n name,\n originalName,\n path,\n {\n parsingOptions,\n file,\n ignoreInlineMetadata: false,\n ignoreDynamicContent: false,\n ignoreInvalidIcu: false,\n ignoreInlineListContent: false,\n includeSourceCodeContext: parsingFlags.includeSourceCodeContext,\n ignoreTaggedTemplates: false,\n ignoreGlobalTaggedTemplates: false,\n // User configurable, otherwise default to AUTO\n autoderiveMethod: autoderive.strings ? 'AUTO' : 'DISABLED',\n },\n { updates, errors, warnings }\n );\n }\n\n // Parse <T> components — PASS 1: user-written T\n if (REACT_LIBRARIES.includes(pkg as ReactLibrary)) {\n for (const { localName, path } of translationComponentPaths) {\n parseTranslationComponent({\n originalName: localName,\n localName,\n path,\n updates,\n config: {\n importAliases,\n parsingOptions,\n pkgs,\n file,\n includeSourceCodeContext: parsingFlags.includeSourceCodeContext,\n autoderive: autoderive.jsx,\n },\n output: {\n errors,\n warnings,\n unwrappedExpressions: [],\n },\n });\n }\n\n // PASS 2: Auto-inject GtInternalTranslateJsx and GtInternalVar and extract (flag-gated)\n if (parsingFlags.enableAutoJsxInjection) {\n // Add translation component names to importAliases so autoInsertJsxComponents\n // recognizes user T as hands-off (getPathsAndAliases separates them out)\n for (const { localName, originalName } of translationComponentPaths) {\n importAliases[localName] = originalName;\n }\n\n // Ensure GtInternalTranslateJsx and GtInternalVar are imported in the AST\n ensureTAndVarImported(ast, importAliases);\n\n // Insert T/Var into the AST\n autoInsertJsxComponents(ast, importAliases);\n\n // Refresh scope to pick up new T references\n traverse(ast, {\n Program(programPath) {\n programPath.scope.crawl();\n },\n });\n\n // Re-collect with updated AST\n const refreshed = getPathsAndAliases(ast, pkgs);\n\n // Add translation component names to refreshed aliases so parseJsx\n // can recognize GtInternalTranslateJsx inside Derive for transparent unwrap\n for (const {\n localName: tLocalName,\n originalName: tOrigName,\n } of refreshed.translationComponentPaths) {\n refreshed.importAliases[tLocalName] = tOrigName;\n }\n\n // Extract only from auto-injected GtInternalTranslateJsx — never re-extract user T\n for (const {\n localName,\n path,\n originalName,\n } of refreshed.translationComponentPaths) {\n if (originalName !== INTERNAL_TRANSLATION_COMPONENT) continue;\n parseTranslationComponent({\n originalName: localName,\n localName,\n path,\n updates,\n config: {\n importAliases: refreshed.importAliases,\n parsingOptions,\n pkgs,\n file,\n includeSourceCodeContext: parsingFlags.includeSourceCodeContext,\n enableAutoJsxInjection: true,\n autoderive: autoderive.jsx,\n },\n output: {\n errors,\n warnings,\n unwrappedExpressions: [],\n },\n });\n }\n }\n }\n }\n\n // Post processing steps:\n await calculateHashes(updates);\n dedupeUpdates(updates);\n linkDeriveUpdates(updates);\n\n return { updates, errors, warnings: [...warnings] };\n}\n\n/**\n * Given a package name, return the upstream packages that it depends on\n * @param pkg - The package name\n * @returns The upstream packages that the package depends on\n */\nfunction getUpstreamPackages(pkg: GTLibrary): GTLibrary[] {\n return GT_LIBRARIES_UPSTREAM[pkg];\n}\n\nexport { dedupeUpdates as _test_dedupeUpdates };\n"],"mappings":";;;;;;;;;;;;;;;AAgCA,MAAM,WAAW,eAAe,WAAW;AAE3C,eAAsB,oBACpB,KACA,UACA,cACA,cACA,gBACqE;CACrE,MAAM,UAAmB,EAAE;CAE3B,MAAM,SAAmB,EAAE;CAC3B,MAAM,2BAAwB,IAAI,KAAK;CAEvC,MAAM,OAAO,oBAAoB,IAAI;CAErC,MAAM,aAAa,kBAAkB,aAAa,WAAW;CAG7D,MAAM,QAAQ,WAAW,QAAQ,KAAK,EAAE,gBAAgB,qBAAqB;AAE7E,MAAK,MAAM,QAAQ,OAAO;EACxB,MAAM,OAAO,MAAM,GAAG,SAAS,SAAS,MAAM,OAAO;EACrD,IAAI;AACJ,MAAI;AACF,SAAM,MAAM,MAAM;IAChB,YAAY;IACZ,SAAS,CAAC,OAAO,aAAa;IAC/B,CAAC;WACK,OAAO;AACd,UAAO,MAAM,sBAAsB,KAAK,IAAI,QAAQ;AACpD;;EAIF,MAAM,EAAE,eAAe,wBAAwB,8BAC7C,mBAAmB,KAAK,KAAK;AAG/B,OAAK,MAAM,EACT,WAAW,MACX,cACA,UACG,uBACH,cACE,MACA,cACA,MACA;GACE;GACA;GACA,sBAAsB;GACtB,sBAAsB;GACtB,kBAAkB;GAClB,yBAAyB;GACzB,0BAA0B,aAAa;GACvC,uBAAuB;GACvB,6BAA6B;GAE7B,kBAAkB,WAAW,UAAU,SAAS;GACjD,EACD;GAAE;GAAS;GAAQ;GAAU,CAC9B;AAIH,MAAI,gBAAgB,SAAS,IAAoB,EAAE;AACjD,QAAK,MAAM,EAAE,WAAW,UAAU,0BAChC,2BAA0B;IACxB,cAAc;IACd;IACA;IACA;IACA,QAAQ;KACN;KACA;KACA;KACA;KACA,0BAA0B,aAAa;KACvC,YAAY,WAAW;KACxB;IACD,QAAQ;KACN;KACA;KACA,sBAAsB,EAAE;KACzB;IACF,CAAC;AAIJ,OAAI,aAAa,wBAAwB;AAGvC,SAAK,MAAM,EAAE,WAAW,kBAAkB,0BACxC,eAAc,aAAa;AAI7B,0BAAsB,KAAK,cAAc;AAGzC,4BAAwB,KAAK,cAAc;AAG3C,aAAS,KAAK,EACZ,QAAQ,aAAa;AACnB,iBAAY,MAAM,OAAO;OAE5B,CAAC;IAGF,MAAM,YAAY,mBAAmB,KAAK,KAAK;AAI/C,SAAK,MAAM,EACT,WAAW,YACX,cAAc,eACX,UAAU,0BACb,WAAU,cAAc,cAAc;AAIxC,SAAK,MAAM,EACT,WACA,MACA,kBACG,UAAU,2BAA2B;AACxC,SAAI,iBAAA,yBAAiD;AACrD,+BAA0B;MACxB,cAAc;MACd;MACA;MACA;MACA,QAAQ;OACN,eAAe,UAAU;OACzB;OACA;OACA;OACA,0BAA0B,aAAa;OACvC,wBAAwB;OACxB,YAAY,WAAW;OACxB;MACD,QAAQ;OACN;OACA;OACA,sBAAsB,EAAE;OACzB;MACF,CAAC;;;;;AAOV,OAAM,gBAAgB,QAAQ;AAC9B,eAAc,QAAQ;AACtB,mBAAkB,QAAQ;AAE1B,QAAO;EAAE;EAAS;EAAQ,UAAU,CAAC,GAAG,SAAS;EAAE;;;;;;;AAQrD,SAAS,oBAAoB,KAA6B;AACxD,QAAO,sBAAsB"}
@@ -1,162 +1,137 @@
1
- import fs from 'node:fs';
2
- import path from 'node:path';
3
- import * as t from '@babel/types';
4
- import { parse } from '@babel/parser';
5
- import traverseModule from '@babel/traverse';
6
- import generateModule from '@babel/generator';
7
- // Handle CommonJS/ESM interop
1
+ import { getRelativePath } from "../../fs/findFilepath.js";
2
+ import { isMeaningful } from "../jsx/evaluateJsx.js";
3
+ import { createImports, generateImportMap } from "../jsx/utils/parseAst.js";
4
+ import "../../types/libraries.js";
5
+ import { matchFiles } from "../../fs/matchFiles.js";
6
+ import { DEFAULT_SRC_PATTERNS } from "../../config/generateSettings.js";
7
+ import { handleJsxElement } from "../jsx/wrapJsx.js";
8
+ import path from "node:path";
9
+ import fs from "node:fs";
10
+ import * as t from "@babel/types";
11
+ import { parse } from "@babel/parser";
12
+ import generateModule from "@babel/generator";
13
+ import traverseModule from "@babel/traverse";
14
+ //#region src/react/parse/wrapContent.ts
8
15
  const traverse = traverseModule.default || traverseModule;
9
16
  const generate = generateModule.default || generateModule;
10
- import { isMeaningful } from '../jsx/evaluateJsx.js';
11
- import { handleJsxElement } from '../jsx/wrapJsx.js';
12
- import { getRelativePath } from '../../fs/findFilepath.js';
13
- import { generateImportMap, createImports, } from '../jsx/utils/parseAst.js';
14
- import { DEFAULT_SRC_PATTERNS } from '../../config/generateSettings.js';
15
- import { matchFiles } from '../../fs/matchFiles.js';
16
- import { Libraries } from '../../types/libraries.js';
17
17
  const IMPORT_MAP = {
18
- T: { name: 'T', source: Libraries.GT_REACT },
19
- Var: { name: 'Var', source: Libraries.GT_REACT },
20
- GTT: { name: 'T', source: Libraries.GT_REACT },
21
- GTVar: { name: 'Var', source: Libraries.GT_REACT },
22
- GTProvider: { name: 'GTProvider', source: Libraries.GT_REACT },
18
+ T: {
19
+ name: "T",
20
+ source: "gt-react"
21
+ },
22
+ Var: {
23
+ name: "Var",
24
+ source: "gt-react"
25
+ },
26
+ GTT: {
27
+ name: "T",
28
+ source: "gt-react"
29
+ },
30
+ GTVar: {
31
+ name: "Var",
32
+ source: "gt-react"
33
+ },
34
+ GTProvider: {
35
+ name: "GTProvider",
36
+ source: "gt-react"
37
+ }
23
38
  };
24
39
  /**
25
- * Wraps all JSX elements in the src directory with a <T> tag, with unique ids.
26
- * - Ignores pure strings
27
- *
28
- * @param options - The options object
29
- * @returns An object containing the updates and errors
30
- */
31
- export async function wrapContentReact(options, pkg, framework, errors, warnings) {
32
- const filePatterns = options.src || DEFAULT_SRC_PATTERNS;
33
- const files = matchFiles(process.cwd(), filePatterns);
34
- const filesUpdated = [];
35
- for (const file of files) {
36
- const baseFileName = path.basename(file);
37
- const configPath = path.relative(path.dirname(file), path.resolve(process.cwd(), options.config));
38
- // Ensure the path starts with ./ or ../
39
- const normalizedConfigPath = configPath.startsWith('.')
40
- ? configPath
41
- : './' + configPath;
42
- const code = await fs.promises.readFile(file, 'utf8');
43
- // Create relative path from src directory and remove extension
44
- const relativePath = getRelativePath(file, process.cwd());
45
- let ast;
46
- try {
47
- ast = parse(code, {
48
- sourceType: 'module',
49
- plugins: ['jsx', 'typescript'],
50
- tokens: true,
51
- createParenthesizedExpressions: true,
52
- });
53
- }
54
- catch (error) {
55
- errors.push(`Error:Failed to parse ${file}: ${error}`);
56
- continue;
57
- }
58
- let modified = false;
59
- const usedImports = [];
60
- const { importAlias, initialImports } = generateImportMap(ast, pkg);
61
- // If the file already has a T import, skip processing it
62
- if (initialImports.includes(IMPORT_MAP.T.name)) {
63
- continue;
64
- }
65
- let globalId = 0;
66
- traverse(ast, {
67
- JSXElement(path) {
68
- if (framework === 'next-pages' &&
69
- options.addGTProvider &&
70
- (baseFileName === '_app.tsx' || baseFileName === '_app.jsx')) {
71
- // Check if this is the Component element with pageProps
72
- const isComponentWithPageProps = t.isJSXElement(path.node) &&
73
- t.isJSXIdentifier(path.node.openingElement.name) &&
74
- path.node.openingElement.name.name === 'Component' &&
75
- path.node.openingElement.attributes.some((attr) => t.isJSXSpreadAttribute(attr) &&
76
- t.isIdentifier(attr.argument) &&
77
- attr.argument.name === 'pageProps');
78
- if (!isComponentWithPageProps) {
79
- return;
80
- }
81
- // Check if GTProvider already exists in the ancestors
82
- let hasGTProvider = false;
83
- let currentPath = path;
84
- while (currentPath.parentPath) {
85
- if (t.isJSXElement(currentPath.node) &&
86
- t.isJSXIdentifier(currentPath.node.openingElement.name) &&
87
- currentPath.node.openingElement.name.name === 'GTProvider') {
88
- hasGTProvider = true;
89
- break;
90
- }
91
- currentPath = currentPath.parentPath;
92
- }
93
- if (!hasGTProvider) {
94
- // Wrap the Component element with GTProvider
95
- const gtProviderJsx = t.jsxElement(t.jsxOpeningElement(t.jsxIdentifier('GTProvider'), [t.jsxSpreadAttribute(t.identifier('gtConfig'))], false), t.jsxClosingElement(t.jsxIdentifier('GTProvider')), [path.node]);
96
- path.replaceWith(gtProviderJsx);
97
- usedImports.push('GTProvider');
98
- usedImports.push({
99
- local: 'gtConfig',
100
- imported: 'default',
101
- source: normalizedConfigPath,
102
- });
103
- modified = true;
104
- path.skip();
105
- return;
106
- }
107
- }
108
- // Check if this JSX element has any JSX element ancestors
109
- if (t.isJSXElement(path.parentPath?.node) ||
110
- t.isJSXExpressionContainer(path.parentPath?.node)) {
111
- // If we're nested inside JSX, skip processing this node
112
- return;
113
- }
114
- // At this point, we're only processing top-level JSX elements
115
- const opts = {
116
- ...importAlias,
117
- idPrefix: relativePath,
118
- idCount: globalId,
119
- usedImports,
120
- modified: false,
121
- createIds: !options.disableIds,
122
- warnings,
123
- file,
124
- };
125
- const wrapped = handleJsxElement(path.node, opts, isMeaningful);
126
- path.replaceWith(wrapped.node);
127
- // Update global counters
128
- modified = modified || opts.modified;
129
- globalId = opts.idCount;
130
- },
131
- });
132
- if (!modified)
133
- continue;
134
- const needsImport = usedImports.filter((imp) => typeof imp === 'string'
135
- ? !initialImports.includes(imp)
136
- : !initialImports.includes(imp.local));
137
- if (needsImport.length > 0) {
138
- createImports(ast, needsImport, IMPORT_MAP);
139
- }
140
- try {
141
- const output = generate(ast, {
142
- retainLines: true,
143
- retainFunctionParens: true,
144
- comments: true,
145
- compact: 'auto',
146
- }, code);
147
- // Post-process the output to fix import spacing
148
- let processedCode = output.code;
149
- if (needsImport.length > 0) {
150
- // Add newline after the comment only
151
- processedCode = processedCode.replace(/((?:import\s*{\s*(?:T|GTT|Var|GTVar|GTProvider|getLocale)(?:\s*,\s*(?:T|GTT|Var|GTVar|GTProvider|getLocale))*\s*}\s*from|const\s*{\s*(?:T|GTT|Var|GTVar|GTProvider|getLocale)(?:\s*,\s*(?:T|GTT|Var|GTVar|GTProvider|getLocale))*\s*}\s*=\s*require)\s*['"]gt-(?:next|react)(?:\/server)?['"];?)/, '\n$1\n');
152
- }
153
- // Write the modified code back to the file
154
- await fs.promises.writeFile(file, processedCode);
155
- filesUpdated.push(file);
156
- }
157
- catch (error) {
158
- errors.push(`Error: Failed to write ${file}: ${error}`);
159
- }
160
- }
161
- return { filesUpdated };
40
+ * Wraps all JSX elements in the src directory with a <T> tag, with unique ids.
41
+ * - Ignores pure strings
42
+ *
43
+ * @param options - The options object
44
+ * @returns An object containing the updates and errors
45
+ */
46
+ async function wrapContentReact(options, pkg, framework, errors, warnings) {
47
+ const filePatterns = options.src || DEFAULT_SRC_PATTERNS;
48
+ const files = matchFiles(process.cwd(), filePatterns);
49
+ const filesUpdated = [];
50
+ for (const file of files) {
51
+ const baseFileName = path.basename(file);
52
+ const configPath = path.relative(path.dirname(file), path.resolve(process.cwd(), options.config));
53
+ const normalizedConfigPath = configPath.startsWith(".") ? configPath : "./" + configPath;
54
+ const code = await fs.promises.readFile(file, "utf8");
55
+ const relativePath = getRelativePath(file, process.cwd());
56
+ let ast;
57
+ try {
58
+ ast = parse(code, {
59
+ sourceType: "module",
60
+ plugins: ["jsx", "typescript"],
61
+ tokens: true,
62
+ createParenthesizedExpressions: true
63
+ });
64
+ } catch (error) {
65
+ errors.push(`Error:Failed to parse ${file}: ${error}`);
66
+ continue;
67
+ }
68
+ let modified = false;
69
+ const usedImports = [];
70
+ const { importAlias, initialImports } = generateImportMap(ast, pkg);
71
+ if (initialImports.includes(IMPORT_MAP.T.name)) continue;
72
+ let globalId = 0;
73
+ traverse(ast, { JSXElement(path) {
74
+ if (framework === "next-pages" && options.addGTProvider && (baseFileName === "_app.tsx" || baseFileName === "_app.jsx")) {
75
+ if (!(t.isJSXElement(path.node) && t.isJSXIdentifier(path.node.openingElement.name) && path.node.openingElement.name.name === "Component" && path.node.openingElement.attributes.some((attr) => t.isJSXSpreadAttribute(attr) && t.isIdentifier(attr.argument) && attr.argument.name === "pageProps"))) return;
76
+ let hasGTProvider = false;
77
+ let currentPath = path;
78
+ while (currentPath.parentPath) {
79
+ if (t.isJSXElement(currentPath.node) && t.isJSXIdentifier(currentPath.node.openingElement.name) && currentPath.node.openingElement.name.name === "GTProvider") {
80
+ hasGTProvider = true;
81
+ break;
82
+ }
83
+ currentPath = currentPath.parentPath;
84
+ }
85
+ if (!hasGTProvider) {
86
+ const gtProviderJsx = t.jsxElement(t.jsxOpeningElement(t.jsxIdentifier("GTProvider"), [t.jsxSpreadAttribute(t.identifier("gtConfig"))], false), t.jsxClosingElement(t.jsxIdentifier("GTProvider")), [path.node]);
87
+ path.replaceWith(gtProviderJsx);
88
+ usedImports.push("GTProvider");
89
+ usedImports.push({
90
+ local: "gtConfig",
91
+ imported: "default",
92
+ source: normalizedConfigPath
93
+ });
94
+ modified = true;
95
+ path.skip();
96
+ return;
97
+ }
98
+ }
99
+ if (t.isJSXElement(path.parentPath?.node) || t.isJSXExpressionContainer(path.parentPath?.node)) return;
100
+ const opts = {
101
+ ...importAlias,
102
+ idPrefix: relativePath,
103
+ idCount: globalId,
104
+ usedImports,
105
+ modified: false,
106
+ createIds: !options.disableIds,
107
+ warnings,
108
+ file
109
+ };
110
+ const wrapped = handleJsxElement(path.node, opts, isMeaningful);
111
+ path.replaceWith(wrapped.node);
112
+ modified = modified || opts.modified;
113
+ globalId = opts.idCount;
114
+ } });
115
+ if (!modified) continue;
116
+ const needsImport = usedImports.filter((imp) => typeof imp === "string" ? !initialImports.includes(imp) : !initialImports.includes(imp.local));
117
+ if (needsImport.length > 0) createImports(ast, needsImport, IMPORT_MAP);
118
+ try {
119
+ let processedCode = generate(ast, {
120
+ retainLines: true,
121
+ retainFunctionParens: true,
122
+ comments: true,
123
+ compact: "auto"
124
+ }, code).code;
125
+ if (needsImport.length > 0) processedCode = processedCode.replace(/((?:import\s*{\s*(?:T|GTT|Var|GTVar|GTProvider|getLocale)(?:\s*,\s*(?:T|GTT|Var|GTVar|GTProvider|getLocale))*\s*}\s*from|const\s*{\s*(?:T|GTT|Var|GTVar|GTProvider|getLocale)(?:\s*,\s*(?:T|GTT|Var|GTVar|GTProvider|getLocale))*\s*}\s*=\s*require)\s*['"]gt-(?:next|react)(?:\/server)?['"];?)/, "\n$1\n");
126
+ await fs.promises.writeFile(file, processedCode);
127
+ filesUpdated.push(file);
128
+ } catch (error) {
129
+ errors.push(`Error: Failed to write ${file}: ${error}`);
130
+ }
131
+ }
132
+ return { filesUpdated };
162
133
  }
134
+ //#endregion
135
+ export { wrapContentReact };
136
+
137
+ //# sourceMappingURL=wrapContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapContent.js","names":[],"sources":["../../../src/react/parse/wrapContent.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\nimport { SupportedFrameworks, WrapOptions } from '../../types/index.js';\nimport * as t from '@babel/types';\nimport { parse } from '@babel/parser';\nimport traverseModule from '@babel/traverse';\nimport generateModule from '@babel/generator';\nimport { NodePath } from '@babel/traverse';\n\n// Handle CommonJS/ESM interop\nconst traverse = traverseModule.default || traverseModule;\nconst generate = generateModule.default || generateModule;\nimport { isMeaningful } from '../jsx/evaluateJsx.js';\nimport { handleJsxElement } from '../jsx/wrapJsx.js';\nimport { getRelativePath } from '../../fs/findFilepath.js';\nimport {\n generateImportMap,\n createImports,\n ImportItem,\n} from '../jsx/utils/parseAst.js';\nimport { DEFAULT_SRC_PATTERNS } from '../../config/generateSettings.js';\nimport { matchFiles } from '../../fs/matchFiles.js';\nimport { Libraries } from '../../types/libraries.js';\n\nconst IMPORT_MAP = {\n T: { name: 'T', source: Libraries.GT_REACT },\n Var: { name: 'Var', source: Libraries.GT_REACT },\n GTT: { name: 'T', source: Libraries.GT_REACT },\n GTVar: { name: 'Var', source: Libraries.GT_REACT },\n GTProvider: { name: 'GTProvider', source: Libraries.GT_REACT },\n};\n\n/**\n * Wraps all JSX elements in the src directory with a <T> tag, with unique ids.\n * - Ignores pure strings\n *\n * @param options - The options object\n * @returns An object containing the updates and errors\n */\nexport async function wrapContentReact(\n options: WrapOptions,\n pkg: `${typeof Libraries.GT_REACT}`,\n framework: SupportedFrameworks,\n errors: string[],\n warnings: string[]\n): Promise<{ filesUpdated: string[] }> {\n const filePatterns = options.src || DEFAULT_SRC_PATTERNS;\n\n const files = matchFiles(process.cwd(), filePatterns);\n const filesUpdated = [];\n\n for (const file of files) {\n const baseFileName = path.basename(file);\n const configPath = path.relative(\n path.dirname(file),\n path.resolve(process.cwd(), options.config)\n );\n\n // Ensure the path starts with ./ or ../\n const normalizedConfigPath = configPath.startsWith('.')\n ? configPath\n : './' + configPath;\n\n const code = await fs.promises.readFile(file, 'utf8');\n\n // Create relative path from src directory and remove extension\n const relativePath = getRelativePath(file, process.cwd());\n\n let ast;\n try {\n ast = parse(code, {\n sourceType: 'module',\n plugins: ['jsx', 'typescript'],\n tokens: true,\n createParenthesizedExpressions: true,\n });\n } catch (error) {\n errors.push(`Error:Failed to parse ${file}: ${error}`);\n continue;\n }\n\n let modified = false;\n const usedImports: ImportItem[] = [];\n\n const { importAlias, initialImports } = generateImportMap(ast, pkg);\n\n // If the file already has a T import, skip processing it\n if (initialImports.includes(IMPORT_MAP.T.name)) {\n continue;\n }\n\n let globalId = 0;\n traverse(ast, {\n JSXElement(path) {\n if (\n framework === 'next-pages' &&\n options.addGTProvider &&\n (baseFileName === '_app.tsx' || baseFileName === '_app.jsx')\n ) {\n // Check if this is the Component element with pageProps\n const isComponentWithPageProps =\n t.isJSXElement(path.node) &&\n t.isJSXIdentifier(path.node.openingElement.name) &&\n path.node.openingElement.name.name === 'Component' &&\n path.node.openingElement.attributes.some(\n (attr) =>\n t.isJSXSpreadAttribute(attr) &&\n t.isIdentifier(attr.argument) &&\n attr.argument.name === 'pageProps'\n );\n\n if (!isComponentWithPageProps) {\n return;\n }\n\n // Check if GTProvider already exists in the ancestors\n let hasGTProvider = false;\n let currentPath: NodePath = path;\n\n while (currentPath.parentPath) {\n if (\n t.isJSXElement(currentPath.node) &&\n t.isJSXIdentifier(currentPath.node.openingElement.name) &&\n currentPath.node.openingElement.name.name === 'GTProvider'\n ) {\n hasGTProvider = true;\n break;\n }\n currentPath = currentPath.parentPath;\n }\n\n if (!hasGTProvider) {\n // Wrap the Component element with GTProvider\n const gtProviderJsx = t.jsxElement(\n t.jsxOpeningElement(\n t.jsxIdentifier('GTProvider'),\n [t.jsxSpreadAttribute(t.identifier('gtConfig'))],\n false\n ),\n t.jsxClosingElement(t.jsxIdentifier('GTProvider')),\n [path.node]\n );\n\n path.replaceWith(gtProviderJsx);\n usedImports.push('GTProvider');\n usedImports.push({\n local: 'gtConfig',\n imported: 'default',\n source: normalizedConfigPath,\n });\n modified = true;\n path.skip();\n return;\n }\n }\n\n // Check if this JSX element has any JSX element ancestors\n if (\n t.isJSXElement(path.parentPath?.node) ||\n t.isJSXExpressionContainer(path.parentPath?.node)\n ) {\n // If we're nested inside JSX, skip processing this node\n return;\n }\n\n // At this point, we're only processing top-level JSX elements\n const opts = {\n ...importAlias,\n idPrefix: relativePath,\n idCount: globalId,\n usedImports,\n modified: false,\n createIds: !options.disableIds,\n warnings,\n file,\n };\n const wrapped = handleJsxElement(path.node, opts, isMeaningful);\n path.replaceWith(wrapped.node);\n\n // Update global counters\n modified = modified || opts.modified;\n globalId = opts.idCount;\n },\n });\n if (!modified) continue;\n\n const needsImport = usedImports.filter((imp) =>\n typeof imp === 'string'\n ? !initialImports.includes(imp)\n : !initialImports.includes(imp.local)\n );\n\n if (needsImport.length > 0) {\n createImports(ast, needsImport, IMPORT_MAP);\n }\n\n try {\n const output = generate(\n ast,\n {\n retainLines: true,\n retainFunctionParens: true,\n comments: true,\n compact: 'auto',\n },\n code\n );\n\n // Post-process the output to fix import spacing\n let processedCode = output.code;\n if (needsImport.length > 0) {\n // Add newline after the comment only\n processedCode = processedCode.replace(\n /((?:import\\s*{\\s*(?:T|GTT|Var|GTVar|GTProvider|getLocale)(?:\\s*,\\s*(?:T|GTT|Var|GTVar|GTProvider|getLocale))*\\s*}\\s*from|const\\s*{\\s*(?:T|GTT|Var|GTVar|GTProvider|getLocale)(?:\\s*,\\s*(?:T|GTT|Var|GTVar|GTProvider|getLocale))*\\s*}\\s*=\\s*require)\\s*['\"]gt-(?:next|react)(?:\\/server)?['\"];?)/,\n '\\n$1\\n'\n );\n }\n\n // Write the modified code back to the file\n await fs.promises.writeFile(file, processedCode);\n filesUpdated.push(file);\n } catch (error) {\n errors.push(`Error: Failed to write ${file}: ${error}`);\n }\n }\n\n return { filesUpdated };\n}\n"],"mappings":";;;;;;;;;;;;;;AAUA,MAAM,WAAW,eAAe,WAAW;AAC3C,MAAM,WAAW,eAAe,WAAW;AAa3C,MAAM,aAAa;CACjB,GAAG;EAAE,MAAM;EAAK,QAAA;EAA4B;CAC5C,KAAK;EAAE,MAAM;EAAO,QAAA;EAA4B;CAChD,KAAK;EAAE,MAAM;EAAK,QAAA;EAA4B;CAC9C,OAAO;EAAE,MAAM;EAAO,QAAA;EAA4B;CAClD,YAAY;EAAE,MAAM;EAAc,QAAA;EAA4B;CAC/D;;;;;;;;AASD,eAAsB,iBACpB,SACA,KACA,WACA,QACA,UACqC;CACrC,MAAM,eAAe,QAAQ,OAAO;CAEpC,MAAM,QAAQ,WAAW,QAAQ,KAAK,EAAE,aAAa;CACrD,MAAM,eAAe,EAAE;AAEvB,MAAK,MAAM,QAAQ,OAAO;EACxB,MAAM,eAAe,KAAK,SAAS,KAAK;EACxC,MAAM,aAAa,KAAK,SACtB,KAAK,QAAQ,KAAK,EAClB,KAAK,QAAQ,QAAQ,KAAK,EAAE,QAAQ,OAAO,CAC5C;EAGD,MAAM,uBAAuB,WAAW,WAAW,IAAI,GACnD,aACA,OAAO;EAEX,MAAM,OAAO,MAAM,GAAG,SAAS,SAAS,MAAM,OAAO;EAGrD,MAAM,eAAe,gBAAgB,MAAM,QAAQ,KAAK,CAAC;EAEzD,IAAI;AACJ,MAAI;AACF,SAAM,MAAM,MAAM;IAChB,YAAY;IACZ,SAAS,CAAC,OAAO,aAAa;IAC9B,QAAQ;IACR,gCAAgC;IACjC,CAAC;WACK,OAAO;AACd,UAAO,KAAK,yBAAyB,KAAK,IAAI,QAAQ;AACtD;;EAGF,IAAI,WAAW;EACf,MAAM,cAA4B,EAAE;EAEpC,MAAM,EAAE,aAAa,mBAAmB,kBAAkB,KAAK,IAAI;AAGnE,MAAI,eAAe,SAAS,WAAW,EAAE,KAAK,CAC5C;EAGF,IAAI,WAAW;AACf,WAAS,KAAK,EACZ,WAAW,MAAM;AACf,OACE,cAAc,gBACd,QAAQ,kBACP,iBAAiB,cAAc,iBAAiB,aACjD;AAaA,QAAI,EAVF,EAAE,aAAa,KAAK,KAAK,IACzB,EAAE,gBAAgB,KAAK,KAAK,eAAe,KAAK,IAChD,KAAK,KAAK,eAAe,KAAK,SAAS,eACvC,KAAK,KAAK,eAAe,WAAW,MACjC,SACC,EAAE,qBAAqB,KAAK,IAC5B,EAAE,aAAa,KAAK,SAAS,IAC7B,KAAK,SAAS,SAAS,YAC1B,EAGD;IAIF,IAAI,gBAAgB;IACpB,IAAI,cAAwB;AAE5B,WAAO,YAAY,YAAY;AAC7B,SACE,EAAE,aAAa,YAAY,KAAK,IAChC,EAAE,gBAAgB,YAAY,KAAK,eAAe,KAAK,IACvD,YAAY,KAAK,eAAe,KAAK,SAAS,cAC9C;AACA,sBAAgB;AAChB;;AAEF,mBAAc,YAAY;;AAG5B,QAAI,CAAC,eAAe;KAElB,MAAM,gBAAgB,EAAE,WACtB,EAAE,kBACA,EAAE,cAAc,aAAa,EAC7B,CAAC,EAAE,mBAAmB,EAAE,WAAW,WAAW,CAAC,CAAC,EAChD,MACD,EACD,EAAE,kBAAkB,EAAE,cAAc,aAAa,CAAC,EAClD,CAAC,KAAK,KAAK,CACZ;AAED,UAAK,YAAY,cAAc;AAC/B,iBAAY,KAAK,aAAa;AAC9B,iBAAY,KAAK;MACf,OAAO;MACP,UAAU;MACV,QAAQ;MACT,CAAC;AACF,gBAAW;AACX,UAAK,MAAM;AACX;;;AAKJ,OACE,EAAE,aAAa,KAAK,YAAY,KAAK,IACrC,EAAE,yBAAyB,KAAK,YAAY,KAAK,CAGjD;GAIF,MAAM,OAAO;IACX,GAAG;IACH,UAAU;IACV,SAAS;IACT;IACA,UAAU;IACV,WAAW,CAAC,QAAQ;IACpB;IACA;IACD;GACD,MAAM,UAAU,iBAAiB,KAAK,MAAM,MAAM,aAAa;AAC/D,QAAK,YAAY,QAAQ,KAAK;AAG9B,cAAW,YAAY,KAAK;AAC5B,cAAW,KAAK;KAEnB,CAAC;AACF,MAAI,CAAC,SAAU;EAEf,MAAM,cAAc,YAAY,QAAQ,QACtC,OAAO,QAAQ,WACX,CAAC,eAAe,SAAS,IAAI,GAC7B,CAAC,eAAe,SAAS,IAAI,MAAM,CACxC;AAED,MAAI,YAAY,SAAS,EACvB,eAAc,KAAK,aAAa,WAAW;AAG7C,MAAI;GAaF,IAAI,gBAZW,SACb,KACA;IACE,aAAa;IACb,sBAAsB;IACtB,UAAU;IACV,SAAS;IACV,EACD,KAIwB,CAAC;AAC3B,OAAI,YAAY,SAAS,EAEvB,iBAAgB,cAAc,QAC5B,oSACA,SACD;AAIH,SAAM,GAAG,SAAS,UAAU,MAAM,cAAc;AAChD,gBAAa,KAAK,KAAK;WAChB,OAAO;AACd,UAAO,KAAK,0BAA0B,KAAK,IAAI,QAAQ;;;AAI3D,QAAO,EAAE,cAAc"}