gtx-cli 2.6.29 → 2.6.30-alpha.0

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 (340) hide show
  1. package/README.md +12 -3
  2. package/dist/bin/bin-entry.js +2 -1
  3. package/dist/functions.d.ts +1 -7
  4. package/dist/functions.js +1 -6
  5. package/dist/index.d.ts +1 -4
  6. package/dist/index.js +1 -27
  7. package/dist/main.js +2 -2
  8. package/package.json +9 -60
  9. package/CHANGELOG.md +0 -1255
  10. package/dist/api/collectUserEditDiffs.d.ts +0 -9
  11. package/dist/api/collectUserEditDiffs.js +0 -159
  12. package/dist/api/downloadFileBatch.d.ts +0 -23
  13. package/dist/api/downloadFileBatch.js +0 -190
  14. package/dist/api/saveLocalEdits.d.ts +0 -6
  15. package/dist/api/saveLocalEdits.js +0 -38
  16. package/dist/cli/base.d.ts +0 -59
  17. package/dist/cli/base.js +0 -529
  18. package/dist/cli/commands/download.d.ts +0 -8
  19. package/dist/cli/commands/download.js +0 -51
  20. package/dist/cli/commands/enqueue.d.ts +0 -9
  21. package/dist/cli/commands/enqueue.js +0 -27
  22. package/dist/cli/commands/setupProject.d.ts +0 -7
  23. package/dist/cli/commands/setupProject.js +0 -37
  24. package/dist/cli/commands/stage.d.ts +0 -9
  25. package/dist/cli/commands/stage.js +0 -59
  26. package/dist/cli/commands/translate.d.ts +0 -7
  27. package/dist/cli/commands/translate.js +0 -70
  28. package/dist/cli/commands/upload.d.ts +0 -13
  29. package/dist/cli/commands/upload.js +0 -142
  30. package/dist/cli/commands/utils/validation.d.ts +0 -13
  31. package/dist/cli/commands/utils/validation.js +0 -38
  32. package/dist/cli/flags.d.ts +0 -15
  33. package/dist/cli/flags.js +0 -70
  34. package/dist/cli/inline.d.ts +0 -17
  35. package/dist/cli/inline.js +0 -135
  36. package/dist/cli/next.d.ts +0 -10
  37. package/dist/cli/next.js +0 -12
  38. package/dist/cli/node.d.ts +0 -10
  39. package/dist/cli/node.js +0 -9
  40. package/dist/cli/react.d.ts +0 -12
  41. package/dist/cli/react.js +0 -72
  42. package/dist/config/generateSettings.d.ts +0 -9
  43. package/dist/config/generateSettings.js +0 -214
  44. package/dist/config/optionPresets.d.ts +0 -3
  45. package/dist/config/optionPresets.js +0 -65
  46. package/dist/config/resolveConfig.d.ts +0 -4
  47. package/dist/config/resolveConfig.js +0 -33
  48. package/dist/config/utils.d.ts +0 -2
  49. package/dist/config/utils.js +0 -4
  50. package/dist/config/validateSettings.d.ts +0 -3
  51. package/dist/config/validateSettings.js +0 -32
  52. package/dist/console/colors.d.ts +0 -6
  53. package/dist/console/colors.js +0 -19
  54. package/dist/console/displayTranslateSummary.d.ts +0 -1
  55. package/dist/console/displayTranslateSummary.js +0 -42
  56. package/dist/console/formatting.d.ts +0 -1
  57. package/dist/console/formatting.js +0 -7
  58. package/dist/console/index.d.ts +0 -33
  59. package/dist/console/index.js +0 -44
  60. package/dist/console/logger.d.ts +0 -35
  61. package/dist/console/logger.js +0 -250
  62. package/dist/console/logging.d.ts +0 -52
  63. package/dist/console/logging.js +0 -175
  64. package/dist/formats/files/aggregateFiles.d.ts +0 -4
  65. package/dist/formats/files/aggregateFiles.js +0 -173
  66. package/dist/formats/files/collectFiles.d.ts +0 -6
  67. package/dist/formats/files/collectFiles.js +0 -49
  68. package/dist/formats/files/convertToFileTranslationData.d.ts +0 -15
  69. package/dist/formats/files/convertToFileTranslationData.js +0 -21
  70. package/dist/formats/files/fileMapping.d.ts +0 -11
  71. package/dist/formats/files/fileMapping.js +0 -115
  72. package/dist/formats/files/save.d.ts +0 -5
  73. package/dist/formats/files/save.js +0 -17
  74. package/dist/formats/files/supportedFiles.d.ts +0 -11
  75. package/dist/formats/files/supportedFiles.js +0 -20
  76. package/dist/formats/json/extractJson.d.ts +0 -15
  77. package/dist/formats/json/extractJson.js +0 -101
  78. package/dist/formats/json/flattenJson.d.ts +0 -14
  79. package/dist/formats/json/flattenJson.js +0 -64
  80. package/dist/formats/json/mergeJson.d.ts +0 -13
  81. package/dist/formats/json/mergeJson.js +0 -367
  82. package/dist/formats/json/parseJson.d.ts +0 -2
  83. package/dist/formats/json/parseJson.js +0 -109
  84. package/dist/formats/json/utils.d.ts +0 -47
  85. package/dist/formats/json/utils.js +0 -150
  86. package/dist/formats/utils.d.ts +0 -2
  87. package/dist/formats/utils.js +0 -24
  88. package/dist/formats/yaml/mergeYaml.d.ts +0 -5
  89. package/dist/formats/yaml/mergeYaml.js +0 -61
  90. package/dist/formats/yaml/parseYaml.d.ts +0 -5
  91. package/dist/formats/yaml/parseYaml.js +0 -24
  92. package/dist/formats/yaml/utils.d.ts +0 -2
  93. package/dist/formats/yaml/utils.js +0 -23
  94. package/dist/fs/clearLocaleDirs.d.ts +0 -8
  95. package/dist/fs/clearLocaleDirs.js +0 -126
  96. package/dist/fs/config/downloadedVersions.d.ts +0 -21
  97. package/dist/fs/config/downloadedVersions.js +0 -50
  98. package/dist/fs/config/loadConfig.d.ts +0 -1
  99. package/dist/fs/config/loadConfig.js +0 -9
  100. package/dist/fs/config/parseFilesConfig.d.ts +0 -27
  101. package/dist/fs/config/parseFilesConfig.js +0 -150
  102. package/dist/fs/config/setupConfig.d.ts +0 -17
  103. package/dist/fs/config/setupConfig.js +0 -50
  104. package/dist/fs/config/updateConfig.d.ts +0 -21
  105. package/dist/fs/config/updateConfig.js +0 -57
  106. package/dist/fs/config/updateVersions.d.ts +0 -11
  107. package/dist/fs/config/updateVersions.js +0 -30
  108. package/dist/fs/copyFile.d.ts +0 -7
  109. package/dist/fs/copyFile.js +0 -39
  110. package/dist/fs/createLoadTranslationsFile.d.ts +0 -1
  111. package/dist/fs/createLoadTranslationsFile.js +0 -49
  112. package/dist/fs/determineFramework.d.ts +0 -5
  113. package/dist/fs/determineFramework.js +0 -53
  114. package/dist/fs/findFilepath.d.ts +0 -36
  115. package/dist/fs/findFilepath.js +0 -90
  116. package/dist/fs/index.d.ts +0 -1
  117. package/dist/fs/index.js +0 -1
  118. package/dist/fs/loadJSON.d.ts +0 -6
  119. package/dist/fs/loadJSON.js +0 -17
  120. package/dist/fs/matchFiles.d.ts +0 -1
  121. package/dist/fs/matchFiles.js +0 -8
  122. package/dist/fs/saveJSON.d.ts +0 -1
  123. package/dist/fs/saveJSON.js +0 -7
  124. package/dist/fs/utils.d.ts +0 -1
  125. package/dist/fs/utils.js +0 -16
  126. package/dist/generated/version.d.ts +0 -1
  127. package/dist/generated/version.js +0 -2
  128. package/dist/git/branches.d.ts +0 -7
  129. package/dist/git/branches.js +0 -88
  130. package/dist/hooks/postProcess.d.ts +0 -4
  131. package/dist/hooks/postProcess.js +0 -110
  132. package/dist/locadex/setupFlow.d.ts +0 -2
  133. package/dist/locadex/setupFlow.js +0 -9
  134. package/dist/next/config/parseNextConfig.d.ts +0 -10
  135. package/dist/next/config/parseNextConfig.js +0 -53
  136. package/dist/next/jsx/utils.d.ts +0 -7
  137. package/dist/next/jsx/utils.js +0 -42
  138. package/dist/next/parse/handleInitGT.d.ts +0 -7
  139. package/dist/next/parse/handleInitGT.js +0 -157
  140. package/dist/next/parse/wrapContent.d.ts +0 -12
  141. package/dist/next/parse/wrapContent.js +0 -164
  142. package/dist/react/config/createESBuildConfig.d.ts +0 -2
  143. package/dist/react/config/createESBuildConfig.js +0 -119
  144. package/dist/react/jsx/evaluateJsx.d.ts +0 -24
  145. package/dist/react/jsx/evaluateJsx.js +0 -123
  146. package/dist/react/jsx/utils/buildImportMap.d.ts +0 -9
  147. package/dist/react/jsx/utils/buildImportMap.js +0 -30
  148. package/dist/react/jsx/utils/constants.d.ts +0 -13
  149. package/dist/react/jsx/utils/constants.js +0 -46
  150. package/dist/react/jsx/utils/getCalleeNameFromExpression.d.ts +0 -9
  151. package/dist/react/jsx/utils/getCalleeNameFromExpression.js +0 -32
  152. package/dist/react/jsx/utils/getPathsAndAliases.d.ts +0 -21
  153. package/dist/react/jsx/utils/getPathsAndAliases.js +0 -91
  154. package/dist/react/jsx/utils/isNumberLiteral.d.ts +0 -7
  155. package/dist/react/jsx/utils/isNumberLiteral.js +0 -13
  156. package/dist/react/jsx/utils/jsxParsing/addGTIdentifierToSyntaxTree.d.ts +0 -9
  157. package/dist/react/jsx/utils/jsxParsing/addGTIdentifierToSyntaxTree.js +0 -135
  158. package/dist/react/jsx/utils/jsxParsing/handleChildrenWhitespace.d.ts +0 -6
  159. package/dist/react/jsx/utils/jsxParsing/handleChildrenWhitespace.js +0 -197
  160. package/dist/react/jsx/utils/jsxParsing/multiplication/findMultiplicationNode.d.ts +0 -13
  161. package/dist/react/jsx/utils/jsxParsing/multiplication/findMultiplicationNode.js +0 -42
  162. package/dist/react/jsx/utils/jsxParsing/multiplication/multiplyJsxTree.d.ts +0 -5
  163. package/dist/react/jsx/utils/jsxParsing/multiplication/multiplyJsxTree.js +0 -69
  164. package/dist/react/jsx/utils/jsxParsing/parseJsx.d.ts +0 -33
  165. package/dist/react/jsx/utils/jsxParsing/parseJsx.js +0 -912
  166. package/dist/react/jsx/utils/jsxParsing/parseTProps.d.ts +0 -8
  167. package/dist/react/jsx/utils/jsxParsing/parseTProps.js +0 -65
  168. package/dist/react/jsx/utils/jsxParsing/removeNullChildrenFields.d.ts +0 -2
  169. package/dist/react/jsx/utils/jsxParsing/removeNullChildrenFields.js +0 -61
  170. package/dist/react/jsx/utils/jsxParsing/types.d.ts +0 -48
  171. package/dist/react/jsx/utils/jsxParsing/types.js +0 -34
  172. package/dist/react/jsx/utils/mapAttributeName.d.ts +0 -11
  173. package/dist/react/jsx/utils/mapAttributeName.js +0 -12
  174. package/dist/react/jsx/utils/parseAst.d.ts +0 -31
  175. package/dist/react/jsx/utils/parseAst.js +0 -278
  176. package/dist/react/jsx/utils/parseDeclareStatic.d.ts +0 -15
  177. package/dist/react/jsx/utils/parseDeclareStatic.js +0 -540
  178. package/dist/react/jsx/utils/parseString.d.ts +0 -25
  179. package/dist/react/jsx/utils/parseString.js +0 -540
  180. package/dist/react/jsx/utils/parseStringFunction.d.ts +0 -30
  181. package/dist/react/jsx/utils/parseStringFunction.js +0 -348
  182. package/dist/react/jsx/utils/resolveImportPath.d.ts +0 -11
  183. package/dist/react/jsx/utils/resolveImportPath.js +0 -111
  184. package/dist/react/jsx/utils/stringParsing/processTranslationCall/extractStringEntryMetadata.d.ts +0 -29
  185. package/dist/react/jsx/utils/stringParsing/processTranslationCall/extractStringEntryMetadata.js +0 -86
  186. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleInvalidTranslationCall.d.ts +0 -14
  187. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleInvalidTranslationCall.js +0 -24
  188. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleLiteralTranslationCall.d.ts +0 -19
  189. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleLiteralTranslationCall.js +0 -31
  190. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleStaticTranslationCall.d.ts +0 -22
  191. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleStaticTranslationCall.js +0 -51
  192. package/dist/react/jsx/utils/stringParsing/processTranslationCall/index.d.ts +0 -18
  193. package/dist/react/jsx/utils/stringParsing/processTranslationCall/index.js +0 -39
  194. package/dist/react/jsx/utils/stringParsing/processTranslationCall/routeTranslationCall.d.ts +0 -24
  195. package/dist/react/jsx/utils/stringParsing/processTranslationCall/routeTranslationCall.js +0 -68
  196. package/dist/react/jsx/utils/stringParsing/types.d.ts +0 -41
  197. package/dist/react/jsx/utils/stringParsing/types.js +0 -1
  198. package/dist/react/jsx/utils/types.d.ts +0 -14
  199. package/dist/react/jsx/utils/types.js +0 -1
  200. package/dist/react/jsx/utils/validateStringFunction.d.ts +0 -7
  201. package/dist/react/jsx/utils/validateStringFunction.js +0 -31
  202. package/dist/react/jsx/wrapJsx.d.ts +0 -51
  203. package/dist/react/jsx/wrapJsx.js +0 -387
  204. package/dist/react/parse/addVitePlugin/index.d.ts +0 -22
  205. package/dist/react/parse/addVitePlugin/index.js +0 -41
  206. package/dist/react/parse/addVitePlugin/installCompiler.d.ts +0 -8
  207. package/dist/react/parse/addVitePlugin/installCompiler.js +0 -22
  208. package/dist/react/parse/addVitePlugin/updateViteConfig.d.ts +0 -19
  209. package/dist/react/parse/addVitePlugin/updateViteConfig.js +0 -120
  210. package/dist/react/parse/addVitePlugin/utils/addCompilerImport.d.ts +0 -9
  211. package/dist/react/parse/addVitePlugin/utils/addCompilerImport.js +0 -34
  212. package/dist/react/parse/addVitePlugin/utils/addPluginInvocation.d.ts +0 -11
  213. package/dist/react/parse/addVitePlugin/utils/addPluginInvocation.js +0 -48
  214. package/dist/react/parse/addVitePlugin/utils/checkCompilerImport.d.ts +0 -15
  215. package/dist/react/parse/addVitePlugin/utils/checkCompilerImport.js +0 -113
  216. package/dist/react/parse/addVitePlugin/utils/checkPluginInvocation.d.ts +0 -12
  217. package/dist/react/parse/addVitePlugin/utils/checkPluginInvocation.js +0 -32
  218. package/dist/react/parse/createDictionaryUpdates.d.ts +0 -3
  219. package/dist/react/parse/createDictionaryUpdates.js +0 -187
  220. package/dist/react/parse/createInlineUpdates.d.ts +0 -13
  221. package/dist/react/parse/createInlineUpdates.js +0 -161
  222. package/dist/react/parse/wrapContent.d.ts +0 -12
  223. package/dist/react/parse/wrapContent.js +0 -162
  224. package/dist/react/utils/flattenDictionary.d.ts +0 -20
  225. package/dist/react/utils/flattenDictionary.js +0 -75
  226. package/dist/react/utils/getEntryAndMetadata.d.ts +0 -5
  227. package/dist/react/utils/getEntryAndMetadata.js +0 -11
  228. package/dist/react/utils/getVariableName.d.ts +0 -25
  229. package/dist/react/utils/getVariableName.js +0 -37
  230. package/dist/setup/agentInstructions.d.ts +0 -24
  231. package/dist/setup/agentInstructions.js +0 -138
  232. package/dist/setup/detectFramework.d.ts +0 -31
  233. package/dist/setup/detectFramework.js +0 -106
  234. package/dist/setup/frameworkUtils.d.ts +0 -3
  235. package/dist/setup/frameworkUtils.js +0 -30
  236. package/dist/setup/instructions/base.md +0 -29
  237. package/dist/setup/instructions/gt-next.md +0 -107
  238. package/dist/setup/instructions/gt-react.md +0 -98
  239. package/dist/setup/userInput.d.ts +0 -4
  240. package/dist/setup/userInput.js +0 -32
  241. package/dist/setup/wizard.d.ts +0 -3
  242. package/dist/setup/wizard.js +0 -147
  243. package/dist/state/recentDownloads.d.ts +0 -12
  244. package/dist/state/recentDownloads.js +0 -18
  245. package/dist/state/translateWarnings.d.ts +0 -10
  246. package/dist/state/translateWarnings.js +0 -13
  247. package/dist/translation/parse.d.ts +0 -17
  248. package/dist/translation/parse.js +0 -77
  249. package/dist/translation/stage.d.ts +0 -3
  250. package/dist/translation/stage.js +0 -44
  251. package/dist/translation/validate.d.ts +0 -14
  252. package/dist/translation/validate.js +0 -100
  253. package/dist/types/branch.d.ts +0 -14
  254. package/dist/types/branch.js +0 -1
  255. package/dist/types/data/json.d.ts +0 -6
  256. package/dist/types/data/json.js +0 -1
  257. package/dist/types/data.d.ts +0 -37
  258. package/dist/types/data.js +0 -1
  259. package/dist/types/files.d.ts +0 -8
  260. package/dist/types/files.js +0 -1
  261. package/dist/types/index.d.ts +0 -243
  262. package/dist/types/index.js +0 -1
  263. package/dist/types/libraries.d.ts +0 -31
  264. package/dist/types/libraries.js +0 -72
  265. package/dist/types/parsing.d.ts +0 -3
  266. package/dist/types/parsing.js +0 -1
  267. package/dist/utils/addExplicitAnchorIds.d.ts +0 -24
  268. package/dist/utils/addExplicitAnchorIds.js +0 -416
  269. package/dist/utils/constants.d.ts +0 -5
  270. package/dist/utils/constants.js +0 -6
  271. package/dist/utils/credentials.d.ts +0 -12
  272. package/dist/utils/credentials.js +0 -120
  273. package/dist/utils/flattenJsonFiles.d.ts +0 -2
  274. package/dist/utils/flattenJsonFiles.js +0 -36
  275. package/dist/utils/gitDiff.d.ts +0 -8
  276. package/dist/utils/gitDiff.js +0 -34
  277. package/dist/utils/gt.d.ts +0 -2
  278. package/dist/utils/gt.js +0 -2
  279. package/dist/utils/hash.d.ts +0 -6
  280. package/dist/utils/hash.js +0 -11
  281. package/dist/utils/headers.d.ts +0 -1
  282. package/dist/utils/headers.js +0 -14
  283. package/dist/utils/installPackage.d.ts +0 -3
  284. package/dist/utils/installPackage.js +0 -77
  285. package/dist/utils/localizeRelativeAssets.d.ts +0 -8
  286. package/dist/utils/localizeRelativeAssets.js +0 -166
  287. package/dist/utils/localizeStaticImports.d.ts +0 -15
  288. package/dist/utils/localizeStaticImports.js +0 -397
  289. package/dist/utils/localizeStaticUrls.d.ts +0 -19
  290. package/dist/utils/localizeStaticUrls.js +0 -450
  291. package/dist/utils/mintlifyTitleFallback.d.ts +0 -6
  292. package/dist/utils/mintlifyTitleFallback.js +0 -80
  293. package/dist/utils/packageInfo.d.ts +0 -3
  294. package/dist/utils/packageInfo.js +0 -17
  295. package/dist/utils/packageJson.d.ts +0 -6
  296. package/dist/utils/packageJson.js +0 -68
  297. package/dist/utils/packageManager.d.ts +0 -28
  298. package/dist/utils/packageManager.js +0 -269
  299. package/dist/utils/parse/needsCJS.d.ts +0 -20
  300. package/dist/utils/parse/needsCJS.js +0 -72
  301. package/dist/utils/persistPostprocessHashes.d.ts +0 -12
  302. package/dist/utils/persistPostprocessHashes.js +0 -39
  303. package/dist/utils/processAnchorIds.d.ts +0 -6
  304. package/dist/utils/processAnchorIds.js +0 -56
  305. package/dist/utils/processOpenApi.d.ts +0 -8
  306. package/dist/utils/processOpenApi.js +0 -651
  307. package/dist/utils/sanitizeFileContent.d.ts +0 -6
  308. package/dist/utils/sanitizeFileContent.js +0 -29
  309. package/dist/utils/sharedStaticAssets.d.ts +0 -9
  310. package/dist/utils/sharedStaticAssets.js +0 -384
  311. package/dist/utils/validateMdx.d.ts +0 -10
  312. package/dist/utils/validateMdx.js +0 -25
  313. package/dist/workflows/download.d.ts +0 -32
  314. package/dist/workflows/download.js +0 -127
  315. package/dist/workflows/enqueue.d.ts +0 -17
  316. package/dist/workflows/enqueue.js +0 -59
  317. package/dist/workflows/setupProject.d.ts +0 -13
  318. package/dist/workflows/setupProject.js +0 -48
  319. package/dist/workflows/stage.d.ts +0 -18
  320. package/dist/workflows/stage.js +0 -59
  321. package/dist/workflows/steps/BranchStep.d.ts +0 -13
  322. package/dist/workflows/steps/BranchStep.js +0 -161
  323. package/dist/workflows/steps/DownloadStep.d.ts +0 -19
  324. package/dist/workflows/steps/DownloadStep.js +0 -131
  325. package/dist/workflows/steps/EnqueueStep.d.ts +0 -15
  326. package/dist/workflows/steps/EnqueueStep.js +0 -33
  327. package/dist/workflows/steps/PollJobsStep.d.ts +0 -31
  328. package/dist/workflows/steps/PollJobsStep.js +0 -288
  329. package/dist/workflows/steps/SetupStep.d.ts +0 -16
  330. package/dist/workflows/steps/SetupStep.js +0 -72
  331. package/dist/workflows/steps/UploadSourcesStep.d.ts +0 -27
  332. package/dist/workflows/steps/UploadSourcesStep.js +0 -131
  333. package/dist/workflows/steps/UploadTranslationsStep.d.ts +0 -22
  334. package/dist/workflows/steps/UploadTranslationsStep.js +0 -71
  335. package/dist/workflows/steps/UserEditDiffsStep.d.ts +0 -11
  336. package/dist/workflows/steps/UserEditDiffsStep.js +0 -30
  337. package/dist/workflows/steps/WorkflowStep.d.ts +0 -4
  338. package/dist/workflows/steps/WorkflowStep.js +0 -2
  339. package/dist/workflows/upload.d.ts +0 -15
  340. package/dist/workflows/upload.js +0 -47
@@ -1,173 +0,0 @@
1
- import { logger } from '../../console/logger.js';
2
- import { recordWarning } from '../../state/translateWarnings.js';
3
- import { getRelative, readFile } from '../../fs/findFilepath.js';
4
- import { SUPPORTED_FILE_EXTENSIONS } from './supportedFiles.js';
5
- import sanitizeFileContent from '../../utils/sanitizeFileContent.js';
6
- import { parseJson } from '../json/parseJson.js';
7
- import parseYaml from '../yaml/parseYaml.js';
8
- import YAML from 'yaml';
9
- import { determineLibrary } from '../../fs/determineFramework.js';
10
- import { isValidMdx } from '../../utils/validateMdx.js';
11
- import { hashStringSync } from '../../utils/hash.js';
12
- import { applyMintlifyTitleFallback } from '../../utils/mintlifyTitleFallback.js';
13
- export const SUPPORTED_DATA_FORMATS = ['JSX', 'ICU', 'I18NEXT'];
14
- export async function aggregateFiles(settings) {
15
- // Aggregate all files to translate
16
- const allFiles = [];
17
- if (!settings.files ||
18
- (Object.keys(settings.files.placeholderPaths).length === 1 &&
19
- settings.files.placeholderPaths.gt)) {
20
- return allFiles;
21
- }
22
- const { resolvedPaths: filePaths } = settings.files;
23
- const skipValidation = settings.options?.skipFileValidation;
24
- // Process JSON files
25
- if (filePaths.json) {
26
- const { library, additionalModules } = determineLibrary();
27
- // Determine dataFormat for JSONs
28
- let dataFormat;
29
- if (library === 'next-intl') {
30
- dataFormat = 'ICU';
31
- }
32
- else if (library === 'i18next') {
33
- if (additionalModules.includes('i18next-icu')) {
34
- dataFormat = 'ICU';
35
- }
36
- else {
37
- dataFormat = 'I18NEXT';
38
- }
39
- }
40
- else {
41
- dataFormat = 'STRING';
42
- }
43
- const jsonFiles = filePaths.json
44
- .map((filePath) => {
45
- const content = readFile(filePath);
46
- const relativePath = getRelative(filePath);
47
- // Pre-validate JSON parseability
48
- if (!skipValidation?.json) {
49
- try {
50
- JSON.parse(content);
51
- }
52
- catch (e) {
53
- logger.warn(`Skipping ${relativePath}: JSON file is not parsable`);
54
- recordWarning('skipped_file', relativePath, 'JSON file is not parsable');
55
- return null;
56
- }
57
- }
58
- const parsedJson = parseJson(content, filePath, settings.options || {}, settings.defaultLocale);
59
- return {
60
- fileId: hashStringSync(relativePath),
61
- versionId: hashStringSync(parsedJson),
62
- content: parsedJson,
63
- fileName: relativePath,
64
- fileFormat: 'JSON',
65
- dataFormat,
66
- locale: settings.defaultLocale,
67
- };
68
- })
69
- .filter((file) => {
70
- if (!file)
71
- return false;
72
- if (typeof file.content !== 'string' || !file.content.trim()) {
73
- logger.warn(`Skipping ${file.fileName}: JSON file is empty`);
74
- recordWarning('skipped_file', file.fileName, 'JSON file is empty');
75
- return false;
76
- }
77
- return true;
78
- });
79
- allFiles.push(...jsonFiles.filter((file) => file !== null));
80
- }
81
- // Process YAML files
82
- if (filePaths.yaml) {
83
- const yamlFiles = filePaths.yaml
84
- .map((filePath) => {
85
- const content = readFile(filePath);
86
- const relativePath = getRelative(filePath);
87
- // Pre-validate YAML parseability
88
- if (!skipValidation?.yaml) {
89
- try {
90
- YAML.parse(content);
91
- }
92
- catch (e) {
93
- logger.warn(`Skipping ${relativePath}: YAML file is not parsable`);
94
- recordWarning('skipped_file', relativePath, 'YAML file is not parsable');
95
- return null;
96
- }
97
- }
98
- const { content: parsedYaml, fileFormat } = parseYaml(content, filePath, settings.options || {});
99
- return {
100
- content: parsedYaml,
101
- fileName: relativePath,
102
- fileFormat,
103
- fileId: hashStringSync(relativePath),
104
- versionId: hashStringSync(parsedYaml),
105
- locale: settings.defaultLocale,
106
- };
107
- })
108
- .filter((file) => {
109
- if (!file || typeof file.content !== 'string' || !file.content.trim()) {
110
- logger.warn(`Skipping ${file?.fileName ?? 'unknown'}: YAML file is empty`);
111
- recordWarning('skipped_file', file?.fileName ?? 'unknown', 'YAML file is empty');
112
- return false;
113
- }
114
- return true;
115
- });
116
- allFiles.push(...yamlFiles.filter((file) => file !== null));
117
- }
118
- for (const fileType of SUPPORTED_FILE_EXTENSIONS) {
119
- if (fileType === 'json' || fileType === 'yaml')
120
- continue;
121
- if (filePaths[fileType]) {
122
- const files = filePaths[fileType]
123
- .map((filePath) => {
124
- const content = readFile(filePath);
125
- const relativePath = getRelative(filePath);
126
- if (fileType === 'mdx') {
127
- if (!skipValidation?.mdx) {
128
- const validation = isValidMdx(content, filePath);
129
- if (!validation.isValid) {
130
- logger.warn(`Skipping ${relativePath}: MDX file is not AST parsable${validation.error ? `: ${validation.error}` : ''}`);
131
- recordWarning('skipped_file', relativePath, `MDX file is not AST parsable${validation.error ? `: ${validation.error}` : ''}`);
132
- return null;
133
- }
134
- }
135
- }
136
- let processedContent = content;
137
- let addedMintlifyTitle = false;
138
- if (fileType === 'mdx' &&
139
- settings.options?.mintlify?.inferTitleFromFilename) {
140
- const result = applyMintlifyTitleFallback(processedContent, relativePath, settings.defaultLocale);
141
- processedContent = result.content;
142
- addedMintlifyTitle = result.addedTitle;
143
- }
144
- const sanitizedContent = sanitizeFileContent(processedContent);
145
- // Always hash original content for versionId
146
- const computedVersionId = hashStringSync(content);
147
- return {
148
- content: sanitizedContent,
149
- fileName: relativePath,
150
- fileFormat: fileType.toUpperCase(),
151
- fileId: hashStringSync(relativePath),
152
- versionId: computedVersionId,
153
- locale: settings.defaultLocale,
154
- };
155
- })
156
- .filter((file) => {
157
- if (!file ||
158
- typeof file.content !== 'string' ||
159
- !file.content.trim()) {
160
- logger.warn(`Skipping ${file?.fileName ?? 'unknown'}: File is empty after sanitization`);
161
- recordWarning('skipped_file', file?.fileName ?? 'unknown', 'File is empty after sanitization');
162
- return false;
163
- }
164
- return true;
165
- });
166
- allFiles.push(...files.filter((file) => file !== null));
167
- }
168
- }
169
- if (allFiles.length === 0 && !settings.publish) {
170
- logger.error('No files to translate were found. Please check your configuration and try again.');
171
- }
172
- return allFiles;
173
- }
@@ -1,6 +0,0 @@
1
- import { Settings, SupportedLibraries, TranslateFlags } from '../../types/index.js';
2
- import type { FileToUpload } from 'generaltranslation/types';
3
- export declare function collectFiles(options: TranslateFlags, settings: Settings, library: SupportedLibraries): Promise<{
4
- files: FileToUpload[];
5
- reactComponents: number;
6
- }>;
@@ -1,49 +0,0 @@
1
- import { logErrorAndExit } from '../../console/logging.js';
2
- import { invalidConfigurationError } from '../../console/index.js';
3
- import { aggregateFiles } from './aggregateFiles.js';
4
- import { aggregateInlineTranslations } from '../../translation/stage.js';
5
- import { hashStringSync } from '../../utils/hash.js';
6
- import { TEMPLATE_FILE_NAME, TEMPLATE_FILE_ID } from '../../utils/constants.js';
7
- import { isInlineLibrary } from '../../types/libraries.js';
8
- export async function collectFiles(options, settings, library) {
9
- // Aggregate files
10
- const allFiles = await aggregateFiles(settings);
11
- // Parse for React components
12
- let reactComponents = 0;
13
- if (isInlineLibrary(library)) {
14
- const updates = await aggregateInlineTranslations(options, settings, library);
15
- if (updates.length > 0) {
16
- if (!settings.publish && !settings.files?.placeholderPaths.gt) {
17
- logErrorAndExit(invalidConfigurationError);
18
- }
19
- // Convert updates to a file object
20
- const fileData = {};
21
- const fileMetadata = {};
22
- // Convert updates to the proper data format
23
- for (const update of updates) {
24
- const { source, metadata, dataFormat } = update;
25
- metadata.dataFormat = dataFormat; // add the data format to the metadata
26
- const { hash, id } = metadata;
27
- if (id) {
28
- fileData[id] = source;
29
- fileMetadata[id] = metadata;
30
- }
31
- else {
32
- fileData[hash] = source;
33
- fileMetadata[hash] = metadata;
34
- }
35
- }
36
- reactComponents = updates.length;
37
- allFiles.push({
38
- fileName: TEMPLATE_FILE_NAME,
39
- content: JSON.stringify(fileData),
40
- fileFormat: 'GTJSON',
41
- formatMetadata: fileMetadata,
42
- fileId: TEMPLATE_FILE_ID,
43
- versionId: hashStringSync(JSON.stringify(Object.keys(fileData).sort())),
44
- locale: settings.defaultLocale,
45
- });
46
- }
47
- }
48
- return { files: allFiles, reactComponents };
49
- }
@@ -1,15 +0,0 @@
1
- import { FileToUpload } from 'generaltranslation/types';
2
- import { FileTranslationData } from '../../workflows/download.js';
3
- /**
4
- * Convert files to a file version data object
5
- * @param files - The files to get the version data for
6
- * @returns The version data for each file
7
- *
8
- * @example
9
- * const { allFiles } = await collectFiles(options, settings, library);
10
- * if (allFiles.length > 0) {
11
- * const fileVersionData = getFileVersionData(allFiles);
12
- * console.log(fileVersionData);
13
- * }
14
- */
15
- export declare function convertToFileTranslationData(files: FileToUpload[]): FileTranslationData;
@@ -1,21 +0,0 @@
1
- /**
2
- * Convert files to a file version data object
3
- * @param files - The files to get the version data for
4
- * @returns The version data for each file
5
- *
6
- * @example
7
- * const { allFiles } = await collectFiles(options, settings, library);
8
- * if (allFiles.length > 0) {
9
- * const fileVersionData = getFileVersionData(allFiles);
10
- * console.log(fileVersionData);
11
- * }
12
- */
13
- export function convertToFileTranslationData(files) {
14
- return Object.fromEntries(files.map((file) => [
15
- file.fileId,
16
- {
17
- versionId: file.versionId,
18
- fileName: file.fileName,
19
- },
20
- ]));
21
- }
@@ -1,11 +0,0 @@
1
- import { ResolvedFiles, TransformFiles } from '../../types/index.js';
2
- import { FileMapping } from '../../types/files.js';
3
- /**
4
- * Creates a mapping between source files and their translated counterparts for each locale
5
- * @param filePaths - Resolved file paths for different file types
6
- * @param placeholderPaths - Placeholder paths for translated files
7
- * @param transformPaths - Transform paths for file naming
8
- * @param locales - List of locales to create a mapping for
9
- * @returns A mapping between source files and their translated counterparts for each locale, in the form of relative paths
10
- */
11
- export declare function createFileMapping(filePaths: ResolvedFiles, placeholderPaths: ResolvedFiles, transformPaths: TransformFiles, targetLocales: string[], defaultLocale: string): FileMapping;
@@ -1,115 +0,0 @@
1
- import { SUPPORTED_FILE_EXTENSIONS } from '../files/supportedFiles.js';
2
- import { resolveLocaleFiles } from '../../fs/config/parseFilesConfig.js';
3
- import path from 'node:path';
4
- import { getRelative } from '../../fs/findFilepath.js';
5
- import { getLocaleProperties } from 'generaltranslation';
6
- import { replaceLocalePlaceholders } from '../utils.js';
7
- import { TEMPLATE_FILE_NAME } from '../../utils/constants.js';
8
- /**
9
- * Creates a mapping between source files and their translated counterparts for each locale
10
- * @param filePaths - Resolved file paths for different file types
11
- * @param placeholderPaths - Placeholder paths for translated files
12
- * @param transformPaths - Transform paths for file naming
13
- * @param locales - List of locales to create a mapping for
14
- * @returns A mapping between source files and their translated counterparts for each locale, in the form of relative paths
15
- */
16
- export function createFileMapping(filePaths, placeholderPaths, transformPaths, targetLocales, defaultLocale) {
17
- const fileMapping = {};
18
- for (const locale of targetLocales) {
19
- const translatedPaths = resolveLocaleFiles(placeholderPaths, locale);
20
- const localeMapping = {};
21
- // Process each file type
22
- // Start with GTJSON Template files
23
- if (translatedPaths.gt) {
24
- const filepath = translatedPaths.gt;
25
- localeMapping[TEMPLATE_FILE_NAME] = filepath;
26
- }
27
- for (const typeIndex of SUPPORTED_FILE_EXTENSIONS) {
28
- if (!filePaths[typeIndex] || !translatedPaths[typeIndex])
29
- continue;
30
- const sourcePaths = filePaths[typeIndex];
31
- let translatedFiles = translatedPaths[typeIndex];
32
- if (!translatedFiles)
33
- continue;
34
- const transformPath = transformPaths[typeIndex];
35
- if (transformPath) {
36
- if (typeof transformPath === 'string') {
37
- translatedFiles = translatedFiles.map((filePath) => {
38
- const directory = path.dirname(filePath);
39
- const fileName = path.basename(filePath);
40
- const baseName = fileName.split('.')[0];
41
- const transformedFileName = transformPath
42
- .replace('*', baseName)
43
- .replace('[locale]', locale);
44
- return path.join(directory, transformedFileName);
45
- });
46
- }
47
- else if (Array.isArray(transformPath)) {
48
- // transformPath is an array of TransformOption objects
49
- const targetLocaleProperties = getLocaleProperties(locale);
50
- const defaultLocaleProperties = getLocaleProperties(defaultLocale);
51
- translatedFiles = translatedFiles.map((filePath) => {
52
- const relativePath = getRelative(filePath);
53
- // Try each transform in order until one matches
54
- for (const transform of transformPath) {
55
- if (!transform.replace || typeof transform.replace !== 'string') {
56
- continue;
57
- }
58
- // Replace all locale property placeholders in the replace string
59
- const replaceString = replaceLocalePlaceholders(transform.replace, targetLocaleProperties);
60
- if (transform.match && typeof transform.match === 'string') {
61
- // Replace locale placeholders in the match string using defaultLocale properties
62
- let matchString = transform.match;
63
- matchString = replaceLocalePlaceholders(matchString, defaultLocaleProperties);
64
- const regex = new RegExp(matchString);
65
- if (regex.test(relativePath)) {
66
- // This transform matches, apply it and break
67
- const transformedPath = relativePath.replace(new RegExp(matchString, 'g'), replaceString);
68
- return path.resolve(transformedPath);
69
- }
70
- }
71
- else {
72
- // No match provided: treat as a direct replacement (override)
73
- return path.resolve(replaceString);
74
- }
75
- }
76
- // If no transforms matched, return the original path
77
- return filePath;
78
- });
79
- }
80
- else {
81
- // transformPath is an object
82
- const targetLocaleProperties = getLocaleProperties(locale);
83
- const defaultLocaleProperties = getLocaleProperties(defaultLocale);
84
- if (!transformPath.replace ||
85
- typeof transformPath.replace !== 'string') {
86
- continue;
87
- }
88
- // Replace all locale property placeholders
89
- const replaceString = replaceLocalePlaceholders(transformPath.replace, targetLocaleProperties);
90
- translatedFiles = translatedFiles.map((filePath) => {
91
- let relativePath = getRelative(filePath);
92
- if (transformPath.match &&
93
- typeof transformPath.match === 'string') {
94
- // Replace locale placeholders in the match string using defaultLocale properties
95
- let matchString = transformPath.match;
96
- matchString = replaceLocalePlaceholders(matchString, defaultLocaleProperties);
97
- relativePath = relativePath.replace(new RegExp(matchString, 'g'), replaceString);
98
- }
99
- else {
100
- relativePath = replaceString;
101
- }
102
- return path.resolve(relativePath);
103
- });
104
- }
105
- }
106
- for (let i = 0; i < sourcePaths.length; i++) {
107
- const sourceFile = getRelative(sourcePaths[i]);
108
- const translatedFile = getRelative(translatedFiles[i]);
109
- localeMapping[sourceFile] = translatedFile;
110
- }
111
- }
112
- fileMapping[locale] = localeMapping;
113
- }
114
- return fileMapping;
115
- }
@@ -1,5 +0,0 @@
1
- import { DataFormat } from '../../types/data.js';
2
- /**
3
- * Saves translated MDX/MD file content to the appropriate location
4
- */
5
- export declare function saveTranslatedFile(translatedContent: string, outputDir: string, fileName: string, dataFormat: DataFormat, locales: string[]): Promise<void>;
@@ -1,17 +0,0 @@
1
- import fs from 'fs/promises';
2
- import path from 'node:path';
3
- import { logger } from '../../console/logger.js';
4
- /**
5
- * Saves translated MDX/MD file content to the appropriate location
6
- */
7
- export async function saveTranslatedFile(translatedContent, outputDir, fileName, dataFormat, locales) {
8
- // Create locale-specific directories if they don't exist
9
- for (const locale of locales) {
10
- const localeDir = path.join(outputDir, locale);
11
- await fs.mkdir(localeDir, { recursive: true });
12
- // Save the translated file with the appropriate extension
13
- const outputPath = path.join(localeDir, fileName);
14
- await fs.writeFile(outputPath, translatedContent);
15
- logger.success(`Saved translated ${dataFormat} file to: ${outputPath}`);
16
- }
17
- }
@@ -1,11 +0,0 @@
1
- export declare const SUPPORTED_FILE_EXTENSIONS: readonly ["json", "mdx", "md", "ts", "js", "yaml", "html", "txt"];
2
- export declare const FILE_EXT_TO_EXT_LABEL: {
3
- json: string;
4
- mdx: string;
5
- md: string;
6
- ts: string;
7
- js: string;
8
- yaml: string;
9
- html: string;
10
- txt: string;
11
- };
@@ -1,20 +0,0 @@
1
- export const SUPPORTED_FILE_EXTENSIONS = [
2
- 'json',
3
- 'mdx',
4
- 'md',
5
- 'ts',
6
- 'js',
7
- 'yaml',
8
- 'html',
9
- 'txt',
10
- ];
11
- export const FILE_EXT_TO_EXT_LABEL = {
12
- json: 'JSON',
13
- mdx: 'MDX',
14
- md: 'Markdown',
15
- ts: 'TypeScript',
16
- js: 'JavaScript',
17
- yaml: 'YAML',
18
- html: 'HTML',
19
- txt: 'Text',
20
- };
@@ -1,15 +0,0 @@
1
- import { AdditionalOptions } from '../../types/index.js';
2
- /**
3
- * Extracts translated values from a full JSON file back into composite JSON format.
4
- * This is the inverse of mergeJson - it takes a merged/reconstructed JSON file
5
- * and extracts the values for a specific locale into the composite structure
6
- * that the server expects.
7
- *
8
- * @param localContent - The full JSON content from the user's local file
9
- * @param inputPath - The path to the file (used for matching jsonSchema)
10
- * @param options - Additional options containing jsonSchema config
11
- * @param targetLocale - The locale to extract values for
12
- * @param defaultLocale - The default/source locale
13
- * @returns The composite JSON string, or null if no extraction needed
14
- */
15
- export declare function extractJson(localContent: string, inputPath: string, options: AdditionalOptions, targetLocale: string, defaultLocale: string): string | null;
@@ -1,101 +0,0 @@
1
- import { logger } from '../../console/logger.js';
2
- import { findMatchingItemArray, findMatchingItemObject, generateSourceObjectPointers, validateJsonSchema, } from './utils.js';
3
- import { flattenJsonWithStringFilter } from './flattenJson.js';
4
- import { gt } from '../../utils/gt.js';
5
- /**
6
- * Extracts translated values from a full JSON file back into composite JSON format.
7
- * This is the inverse of mergeJson - it takes a merged/reconstructed JSON file
8
- * and extracts the values for a specific locale into the composite structure
9
- * that the server expects.
10
- *
11
- * @param localContent - The full JSON content from the user's local file
12
- * @param inputPath - The path to the file (used for matching jsonSchema)
13
- * @param options - Additional options containing jsonSchema config
14
- * @param targetLocale - The locale to extract values for
15
- * @param defaultLocale - The default/source locale
16
- * @returns The composite JSON string, or null if no extraction needed
17
- */
18
- export function extractJson(localContent, inputPath, options, targetLocale, defaultLocale) {
19
- const jsonSchema = validateJsonSchema(options, inputPath);
20
- if (!jsonSchema) {
21
- // No schema
22
- return null;
23
- }
24
- let localJson;
25
- try {
26
- localJson = JSON.parse(localContent);
27
- }
28
- catch {
29
- logger.error(`Invalid JSON file: ${inputPath}`);
30
- return null;
31
- }
32
- const useCanonicalLocaleKeys = options?.experimentalCanonicalLocaleKeys ?? false;
33
- const canonicalTargetLocale = useCanonicalLocaleKeys
34
- ? gt.resolveCanonicalLocale(targetLocale)
35
- : targetLocale;
36
- const canonicalDefaultLocale = useCanonicalLocaleKeys
37
- ? gt.resolveCanonicalLocale(defaultLocale)
38
- : defaultLocale;
39
- // Handle include-style schemas (simple path-based extraction)
40
- if (jsonSchema.include) {
41
- const extracted = flattenJsonWithStringFilter(localJson, jsonSchema.include);
42
- return JSON.stringify(extracted, null, 2);
43
- }
44
- if (!jsonSchema.composite) {
45
- logger.error('No include or composite property found in JSON schema');
46
- return null;
47
- }
48
- // Handle composite schemas
49
- const compositeResult = {};
50
- // Generate source object pointers from the local JSON
51
- const sourceObjectPointers = generateSourceObjectPointers(jsonSchema.composite, localJson);
52
- for (const [sourceObjectPointer, { sourceObjectValue, sourceObjectOptions },] of Object.entries(sourceObjectPointers)) {
53
- if (sourceObjectOptions.type === 'array') {
54
- if (!Array.isArray(sourceObjectValue)) {
55
- logger.warn(`Source object value is not an array at path: ${sourceObjectPointer}`);
56
- continue;
57
- }
58
- // Find the matching items for the target locale
59
- const matchingTargetLocaleItems = findMatchingItemArray(canonicalTargetLocale, sourceObjectOptions, sourceObjectPointer, sourceObjectValue);
60
- if (!Object.keys(matchingTargetLocaleItems).length) {
61
- logger.warn(`No matching items found for locale ${targetLocale} at path: ${sourceObjectPointer}`);
62
- continue;
63
- }
64
- // Also find default locale items
65
- const matchingDefaultLocaleItems = findMatchingItemArray(canonicalDefaultLocale, sourceObjectOptions, sourceObjectPointer, sourceObjectValue);
66
- const defaultKeys = Object.keys(matchingDefaultLocaleItems);
67
- const targetEntries = Object.entries(matchingTargetLocaleItems);
68
- // Initialize the nested structure for this source object pointer
69
- if (!compositeResult[sourceObjectPointer]) {
70
- compositeResult[sourceObjectPointer] = {};
71
- }
72
- // For each target item, use the default locale's key position
73
- for (let i = 0; i < targetEntries.length; i++) {
74
- const [, { sourceItem }] = targetEntries[i];
75
- // Extract values at the include paths
76
- const extractedValues = flattenJsonWithStringFilter(sourceItem, sourceObjectOptions.include);
77
- // Use default locale key
78
- const outputKey = i < defaultKeys.length ? defaultKeys[i] : targetEntries[i][0];
79
- compositeResult[sourceObjectPointer][outputKey] = extractedValues;
80
- }
81
- }
82
- else {
83
- // Object type
84
- if (typeof sourceObjectValue !== 'object' || sourceObjectValue === null) {
85
- logger.warn(`Source object value is not an object at path: ${sourceObjectPointer}`);
86
- continue;
87
- }
88
- // Find the matching item for the target locale
89
- const matchingTargetItem = findMatchingItemObject(canonicalTargetLocale, sourceObjectPointer, sourceObjectOptions, sourceObjectValue);
90
- if (!matchingTargetItem.sourceItem) {
91
- logger.warn(`No matching item found for locale ${targetLocale} at path: ${sourceObjectPointer}`);
92
- continue;
93
- }
94
- // Extract values at the include paths
95
- const extractedValues = flattenJsonWithStringFilter(matchingTargetItem.sourceItem, sourceObjectOptions.include);
96
- // Store the extracted values
97
- compositeResult[sourceObjectPointer] = extractedValues;
98
- }
99
- }
100
- return JSON.stringify(compositeResult, null, 2);
101
- }
@@ -1,14 +0,0 @@
1
- /**
2
- * Flattens a JSON object according to a list of JSON paths.
3
- * @param json - The JSON object to flatten
4
- * @param jsonPaths - The list of JSON paths to flatten
5
- * @returns A mapping of json pointers to their values
6
- */
7
- export declare function flattenJson(json: any, jsonPaths: string[]): Record<string, any>;
8
- /**
9
- * Flattens a JSON object according to a list of JSON paths, only including strings
10
- * @param json - The JSON object to flatten
11
- * @param jsonPaths - The list of JSON paths to flatten
12
- * @returns A mapping of json pointers to their values
13
- */
14
- export declare function flattenJsonWithStringFilter(json: any, jsonPaths: string[]): Record<string, any>;
@@ -1,64 +0,0 @@
1
- import { JSONPath } from 'jsonpath-plus';
2
- import { logger } from '../../console/logger.js';
3
- /**
4
- * Flattens a JSON object according to a list of JSON paths.
5
- * @param json - The JSON object to flatten
6
- * @param jsonPaths - The list of JSON paths to flatten
7
- * @returns A mapping of json pointers to their values
8
- */
9
- export function flattenJson(json, jsonPaths) {
10
- const extractedJson = {};
11
- for (const jsonPath of jsonPaths) {
12
- try {
13
- const results = JSONPath({
14
- json,
15
- path: jsonPath,
16
- resultType: 'all',
17
- flatten: true,
18
- wrap: true,
19
- });
20
- if (!results || results.length === 0) {
21
- continue;
22
- }
23
- results.forEach((result) => {
24
- extractedJson[result.pointer] = result.value;
25
- });
26
- }
27
- catch (error) {
28
- logger.error(`Error with JSONPath pattern: ${jsonPath}`);
29
- }
30
- }
31
- return extractedJson;
32
- }
33
- /**
34
- * Flattens a JSON object according to a list of JSON paths, only including strings
35
- * @param json - The JSON object to flatten
36
- * @param jsonPaths - The list of JSON paths to flatten
37
- * @returns A mapping of json pointers to their values
38
- */
39
- export function flattenJsonWithStringFilter(json, jsonPaths) {
40
- const extractedJson = {};
41
- for (const jsonPath of jsonPaths) {
42
- try {
43
- const results = JSONPath({
44
- json,
45
- path: jsonPath,
46
- resultType: 'all',
47
- flatten: true,
48
- wrap: true,
49
- });
50
- if (!results || results.length === 0) {
51
- continue;
52
- }
53
- results.forEach((result) => {
54
- if (typeof result.value === 'string') {
55
- extractedJson[result.pointer] = result.value;
56
- }
57
- });
58
- }
59
- catch {
60
- logger.error(`Error with JSONPath pattern: ${jsonPath}`);
61
- }
62
- }
63
- return extractedJson;
64
- }