gtx-cli 2.6.31 → 2.7.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.
- package/CHANGELOG.md +4 -1261
- package/README.md +12 -3
- package/dist/bin/bin-entry.js +2 -1
- package/dist/config/generateSettings.d.ts +1 -9
- package/dist/config/generateSettings.js +1 -214
- package/dist/config/resolveConfig.d.ts +1 -4
- package/dist/config/resolveConfig.js +1 -33
- package/dist/fs/config/setupConfig.d.ts +1 -17
- package/dist/fs/config/setupConfig.js +1 -50
- package/dist/fs/matchFiles.d.ts +1 -1
- package/dist/fs/matchFiles.js +1 -8
- package/dist/functions.d.ts +1 -7
- package/dist/functions.js +1 -6
- package/dist/index.d.ts +1 -4
- package/dist/index.js +1 -27
- package/dist/main.js +2 -2
- package/dist/next/parse/handleInitGT.d.ts +1 -7
- package/dist/next/parse/handleInitGT.js +1 -157
- package/dist/next/parse/wrapContent.d.ts +1 -12
- package/dist/next/parse/wrapContent.js +1 -164
- package/dist/react/parse/wrapContent.d.ts +1 -12
- package/dist/react/parse/wrapContent.js +1 -162
- package/dist/types/index.d.ts +1 -243
- package/dist/types/index.js +1 -1
- package/dist/utils/installPackage.d.ts +1 -3
- package/dist/utils/installPackage.js +1 -77
- package/dist/utils/packageInfo.d.ts +1 -3
- package/dist/utils/packageInfo.js +1 -17
- package/dist/utils/packageJson.d.ts +1 -6
- package/dist/utils/packageJson.js +1 -68
- package/dist/utils/packageManager.d.ts +1 -28
- package/dist/utils/packageManager.js +1 -269
- package/package.json +11 -97
- package/dist/api/collectUserEditDiffs.d.ts +0 -9
- package/dist/api/collectUserEditDiffs.js +0 -159
- package/dist/api/downloadFileBatch.d.ts +0 -23
- package/dist/api/downloadFileBatch.js +0 -190
- package/dist/api/saveLocalEdits.d.ts +0 -6
- package/dist/api/saveLocalEdits.js +0 -38
- package/dist/cli/base.d.ts +0 -59
- package/dist/cli/base.js +0 -529
- package/dist/cli/commands/download.d.ts +0 -8
- package/dist/cli/commands/download.js +0 -51
- package/dist/cli/commands/enqueue.d.ts +0 -9
- package/dist/cli/commands/enqueue.js +0 -27
- package/dist/cli/commands/setupProject.d.ts +0 -7
- package/dist/cli/commands/setupProject.js +0 -37
- package/dist/cli/commands/stage.d.ts +0 -9
- package/dist/cli/commands/stage.js +0 -59
- package/dist/cli/commands/translate.d.ts +0 -7
- package/dist/cli/commands/translate.js +0 -70
- package/dist/cli/commands/upload.d.ts +0 -13
- package/dist/cli/commands/upload.js +0 -142
- package/dist/cli/commands/utils/validation.d.ts +0 -13
- package/dist/cli/commands/utils/validation.js +0 -38
- package/dist/cli/flags.d.ts +0 -15
- package/dist/cli/flags.js +0 -70
- package/dist/cli/inline.d.ts +0 -17
- package/dist/cli/inline.js +0 -135
- package/dist/cli/next.d.ts +0 -10
- package/dist/cli/next.js +0 -12
- package/dist/cli/node.d.ts +0 -10
- package/dist/cli/node.js +0 -9
- package/dist/cli/react.d.ts +0 -12
- package/dist/cli/react.js +0 -72
- package/dist/config/optionPresets.d.ts +0 -3
- package/dist/config/optionPresets.js +0 -65
- package/dist/config/utils.d.ts +0 -2
- package/dist/config/utils.js +0 -4
- package/dist/config/validateSettings.d.ts +0 -3
- package/dist/config/validateSettings.js +0 -32
- package/dist/console/colors.d.ts +0 -6
- package/dist/console/colors.js +0 -19
- package/dist/console/displayTranslateSummary.d.ts +0 -1
- package/dist/console/displayTranslateSummary.js +0 -42
- package/dist/console/formatting.d.ts +0 -1
- package/dist/console/formatting.js +0 -7
- package/dist/console/index.d.ts +0 -34
- package/dist/console/index.js +0 -46
- package/dist/console/logger.d.ts +0 -35
- package/dist/console/logger.js +0 -250
- package/dist/console/logging.d.ts +0 -52
- package/dist/console/logging.js +0 -175
- package/dist/formats/files/aggregateFiles.d.ts +0 -4
- package/dist/formats/files/aggregateFiles.js +0 -156
- package/dist/formats/files/collectFiles.d.ts +0 -6
- package/dist/formats/files/collectFiles.js +0 -49
- package/dist/formats/files/convertToFileTranslationData.d.ts +0 -15
- package/dist/formats/files/convertToFileTranslationData.js +0 -21
- package/dist/formats/files/fileMapping.d.ts +0 -11
- package/dist/formats/files/fileMapping.js +0 -115
- package/dist/formats/files/preprocess/mdx.d.ts +0 -6
- package/dist/formats/files/preprocess/mdx.js +0 -14
- package/dist/formats/files/preprocess/mintlify.d.ts +0 -5
- package/dist/formats/files/preprocess/mintlify.js +0 -15
- package/dist/formats/files/preprocessContent.d.ts +0 -8
- package/dist/formats/files/preprocessContent.js +0 -23
- package/dist/formats/files/save.d.ts +0 -5
- package/dist/formats/files/save.js +0 -17
- package/dist/formats/files/supportedFiles.d.ts +0 -11
- package/dist/formats/files/supportedFiles.js +0 -20
- package/dist/formats/json/extractJson.d.ts +0 -15
- package/dist/formats/json/extractJson.js +0 -101
- package/dist/formats/json/flattenJson.d.ts +0 -14
- package/dist/formats/json/flattenJson.js +0 -64
- package/dist/formats/json/mergeJson.d.ts +0 -13
- package/dist/formats/json/mergeJson.js +0 -367
- package/dist/formats/json/parseJson.d.ts +0 -2
- package/dist/formats/json/parseJson.js +0 -109
- package/dist/formats/json/utils.d.ts +0 -47
- package/dist/formats/json/utils.js +0 -150
- package/dist/formats/utils.d.ts +0 -2
- package/dist/formats/utils.js +0 -24
- package/dist/formats/yaml/mergeYaml.d.ts +0 -5
- package/dist/formats/yaml/mergeYaml.js +0 -61
- package/dist/formats/yaml/parseYaml.d.ts +0 -5
- package/dist/formats/yaml/parseYaml.js +0 -24
- package/dist/formats/yaml/utils.d.ts +0 -2
- package/dist/formats/yaml/utils.js +0 -23
- package/dist/fs/clearLocaleDirs.d.ts +0 -8
- package/dist/fs/clearLocaleDirs.js +0 -126
- package/dist/fs/config/downloadedVersions.d.ts +0 -21
- package/dist/fs/config/downloadedVersions.js +0 -50
- package/dist/fs/config/loadConfig.d.ts +0 -1
- package/dist/fs/config/loadConfig.js +0 -9
- package/dist/fs/config/parseFilesConfig.d.ts +0 -27
- package/dist/fs/config/parseFilesConfig.js +0 -150
- package/dist/fs/config/updateConfig.d.ts +0 -21
- package/dist/fs/config/updateConfig.js +0 -57
- package/dist/fs/config/updateVersions.d.ts +0 -11
- package/dist/fs/config/updateVersions.js +0 -30
- package/dist/fs/copyFile.d.ts +0 -7
- package/dist/fs/copyFile.js +0 -39
- package/dist/fs/createLoadTranslationsFile.d.ts +0 -1
- package/dist/fs/createLoadTranslationsFile.js +0 -49
- package/dist/fs/determineFramework.d.ts +0 -5
- package/dist/fs/determineFramework.js +0 -53
- package/dist/fs/findFilepath.d.ts +0 -36
- package/dist/fs/findFilepath.js +0 -90
- package/dist/fs/index.d.ts +0 -1
- package/dist/fs/index.js +0 -1
- package/dist/fs/loadJSON.d.ts +0 -6
- package/dist/fs/loadJSON.js +0 -17
- package/dist/fs/saveJSON.d.ts +0 -1
- package/dist/fs/saveJSON.js +0 -7
- package/dist/fs/utils.d.ts +0 -1
- package/dist/fs/utils.js +0 -16
- package/dist/generated/version.d.ts +0 -1
- package/dist/generated/version.js +0 -2
- package/dist/git/branches.d.ts +0 -7
- package/dist/git/branches.js +0 -88
- package/dist/hooks/postProcess.d.ts +0 -4
- package/dist/hooks/postProcess.js +0 -110
- package/dist/locadex/setupFlow.d.ts +0 -2
- package/dist/locadex/setupFlow.js +0 -9
- package/dist/next/config/parseNextConfig.d.ts +0 -10
- package/dist/next/config/parseNextConfig.js +0 -53
- package/dist/next/jsx/utils.d.ts +0 -7
- package/dist/next/jsx/utils.js +0 -42
- package/dist/react/config/createESBuildConfig.d.ts +0 -2
- package/dist/react/config/createESBuildConfig.js +0 -119
- package/dist/react/jsx/evaluateJsx.d.ts +0 -24
- package/dist/react/jsx/evaluateJsx.js +0 -123
- package/dist/react/jsx/utils/buildImportMap.d.ts +0 -9
- package/dist/react/jsx/utils/buildImportMap.js +0 -30
- package/dist/react/jsx/utils/constants.d.ts +0 -15
- package/dist/react/jsx/utils/constants.js +0 -49
- package/dist/react/jsx/utils/getCalleeNameFromExpression.d.ts +0 -9
- package/dist/react/jsx/utils/getCalleeNameFromExpression.js +0 -32
- package/dist/react/jsx/utils/getPathsAndAliases.d.ts +0 -21
- package/dist/react/jsx/utils/getPathsAndAliases.js +0 -91
- package/dist/react/jsx/utils/isNumberLiteral.d.ts +0 -7
- package/dist/react/jsx/utils/isNumberLiteral.js +0 -13
- package/dist/react/jsx/utils/jsxParsing/addGTIdentifierToSyntaxTree.d.ts +0 -9
- package/dist/react/jsx/utils/jsxParsing/addGTIdentifierToSyntaxTree.js +0 -138
- package/dist/react/jsx/utils/jsxParsing/handleChildrenWhitespace.d.ts +0 -6
- package/dist/react/jsx/utils/jsxParsing/handleChildrenWhitespace.js +0 -197
- package/dist/react/jsx/utils/jsxParsing/multiplication/findMultiplicationNode.d.ts +0 -13
- package/dist/react/jsx/utils/jsxParsing/multiplication/findMultiplicationNode.js +0 -42
- package/dist/react/jsx/utils/jsxParsing/multiplication/multiplyJsxTree.d.ts +0 -5
- package/dist/react/jsx/utils/jsxParsing/multiplication/multiplyJsxTree.js +0 -69
- package/dist/react/jsx/utils/jsxParsing/parseJsx.d.ts +0 -33
- package/dist/react/jsx/utils/jsxParsing/parseJsx.js +0 -918
- package/dist/react/jsx/utils/jsxParsing/parseTProps.d.ts +0 -8
- package/dist/react/jsx/utils/jsxParsing/parseTProps.js +0 -65
- package/dist/react/jsx/utils/jsxParsing/removeNullChildrenFields.d.ts +0 -2
- package/dist/react/jsx/utils/jsxParsing/removeNullChildrenFields.js +0 -61
- package/dist/react/jsx/utils/jsxParsing/types.d.ts +0 -48
- package/dist/react/jsx/utils/jsxParsing/types.js +0 -34
- package/dist/react/jsx/utils/mapAttributeName.d.ts +0 -11
- package/dist/react/jsx/utils/mapAttributeName.js +0 -12
- package/dist/react/jsx/utils/parseAst.d.ts +0 -31
- package/dist/react/jsx/utils/parseAst.js +0 -278
- package/dist/react/jsx/utils/parseDeclareStatic.d.ts +0 -15
- package/dist/react/jsx/utils/parseDeclareStatic.js +0 -540
- package/dist/react/jsx/utils/parseString.d.ts +0 -25
- package/dist/react/jsx/utils/parseString.js +0 -540
- package/dist/react/jsx/utils/parseStringFunction.d.ts +0 -30
- package/dist/react/jsx/utils/parseStringFunction.js +0 -348
- package/dist/react/jsx/utils/resolveImportPath.d.ts +0 -11
- package/dist/react/jsx/utils/resolveImportPath.js +0 -111
- package/dist/react/jsx/utils/stringParsing/processTranslationCall/extractStringEntryMetadata.d.ts +0 -29
- package/dist/react/jsx/utils/stringParsing/processTranslationCall/extractStringEntryMetadata.js +0 -86
- package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleInvalidTranslationCall.d.ts +0 -14
- package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleInvalidTranslationCall.js +0 -24
- package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleLiteralTranslationCall.d.ts +0 -19
- package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleLiteralTranslationCall.js +0 -31
- package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleStaticTranslationCall.d.ts +0 -22
- package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleStaticTranslationCall.js +0 -51
- package/dist/react/jsx/utils/stringParsing/processTranslationCall/index.d.ts +0 -18
- package/dist/react/jsx/utils/stringParsing/processTranslationCall/index.js +0 -39
- package/dist/react/jsx/utils/stringParsing/processTranslationCall/routeTranslationCall.d.ts +0 -24
- package/dist/react/jsx/utils/stringParsing/processTranslationCall/routeTranslationCall.js +0 -68
- package/dist/react/jsx/utils/stringParsing/types.d.ts +0 -41
- package/dist/react/jsx/utils/stringParsing/types.js +0 -1
- package/dist/react/jsx/utils/types.d.ts +0 -14
- package/dist/react/jsx/utils/types.js +0 -1
- package/dist/react/jsx/utils/validateStringFunction.d.ts +0 -7
- package/dist/react/jsx/utils/validateStringFunction.js +0 -31
- package/dist/react/jsx/wrapJsx.d.ts +0 -51
- package/dist/react/jsx/wrapJsx.js +0 -387
- package/dist/react/parse/addVitePlugin/index.d.ts +0 -22
- package/dist/react/parse/addVitePlugin/index.js +0 -41
- package/dist/react/parse/addVitePlugin/installCompiler.d.ts +0 -8
- package/dist/react/parse/addVitePlugin/installCompiler.js +0 -22
- package/dist/react/parse/addVitePlugin/updateViteConfig.d.ts +0 -19
- package/dist/react/parse/addVitePlugin/updateViteConfig.js +0 -120
- package/dist/react/parse/addVitePlugin/utils/addCompilerImport.d.ts +0 -9
- package/dist/react/parse/addVitePlugin/utils/addCompilerImport.js +0 -34
- package/dist/react/parse/addVitePlugin/utils/addPluginInvocation.d.ts +0 -11
- package/dist/react/parse/addVitePlugin/utils/addPluginInvocation.js +0 -48
- package/dist/react/parse/addVitePlugin/utils/checkCompilerImport.d.ts +0 -15
- package/dist/react/parse/addVitePlugin/utils/checkCompilerImport.js +0 -113
- package/dist/react/parse/addVitePlugin/utils/checkPluginInvocation.d.ts +0 -12
- package/dist/react/parse/addVitePlugin/utils/checkPluginInvocation.js +0 -32
- package/dist/react/parse/createDictionaryUpdates.d.ts +0 -3
- package/dist/react/parse/createDictionaryUpdates.js +0 -187
- package/dist/react/parse/createInlineUpdates.d.ts +0 -13
- package/dist/react/parse/createInlineUpdates.js +0 -161
- package/dist/react/utils/flattenDictionary.d.ts +0 -20
- package/dist/react/utils/flattenDictionary.js +0 -75
- package/dist/react/utils/getEntryAndMetadata.d.ts +0 -5
- package/dist/react/utils/getEntryAndMetadata.js +0 -11
- package/dist/react/utils/getVariableName.d.ts +0 -25
- package/dist/react/utils/getVariableName.js +0 -37
- package/dist/setup/agentInstructions.d.ts +0 -24
- package/dist/setup/agentInstructions.js +0 -138
- package/dist/setup/detectFramework.d.ts +0 -31
- package/dist/setup/detectFramework.js +0 -106
- package/dist/setup/frameworkUtils.d.ts +0 -3
- package/dist/setup/frameworkUtils.js +0 -30
- package/dist/setup/instructions/base.md +0 -29
- package/dist/setup/instructions/gt-next.md +0 -107
- package/dist/setup/instructions/gt-react.md +0 -98
- package/dist/setup/userInput.d.ts +0 -4
- package/dist/setup/userInput.js +0 -32
- package/dist/setup/wizard.d.ts +0 -3
- package/dist/setup/wizard.js +0 -147
- package/dist/state/recentDownloads.d.ts +0 -12
- package/dist/state/recentDownloads.js +0 -18
- package/dist/state/translateWarnings.d.ts +0 -10
- package/dist/state/translateWarnings.js +0 -13
- package/dist/translation/parse.d.ts +0 -17
- package/dist/translation/parse.js +0 -77
- package/dist/translation/stage.d.ts +0 -3
- package/dist/translation/stage.js +0 -44
- package/dist/translation/validate.d.ts +0 -14
- package/dist/translation/validate.js +0 -100
- package/dist/types/branch.d.ts +0 -14
- package/dist/types/branch.js +0 -1
- package/dist/types/data/json.d.ts +0 -6
- package/dist/types/data/json.js +0 -1
- package/dist/types/data.d.ts +0 -37
- package/dist/types/data.js +0 -1
- package/dist/types/files.d.ts +0 -8
- package/dist/types/files.js +0 -1
- package/dist/types/libraries.d.ts +0 -31
- package/dist/types/libraries.js +0 -72
- package/dist/types/parsing.d.ts +0 -3
- package/dist/types/parsing.js +0 -1
- package/dist/utils/addExplicitAnchorIds.d.ts +0 -24
- package/dist/utils/addExplicitAnchorIds.js +0 -416
- package/dist/utils/constants.d.ts +0 -5
- package/dist/utils/constants.js +0 -6
- package/dist/utils/credentials.d.ts +0 -12
- package/dist/utils/credentials.js +0 -120
- package/dist/utils/flattenJsonFiles.d.ts +0 -2
- package/dist/utils/flattenJsonFiles.js +0 -36
- package/dist/utils/gitDiff.d.ts +0 -8
- package/dist/utils/gitDiff.js +0 -34
- package/dist/utils/gt.d.ts +0 -2
- package/dist/utils/gt.js +0 -2
- package/dist/utils/hash.d.ts +0 -6
- package/dist/utils/hash.js +0 -11
- package/dist/utils/headers.d.ts +0 -1
- package/dist/utils/headers.js +0 -14
- package/dist/utils/localizeRelativeAssets.d.ts +0 -8
- package/dist/utils/localizeRelativeAssets.js +0 -166
- package/dist/utils/localizeStaticImports.d.ts +0 -15
- package/dist/utils/localizeStaticImports.js +0 -397
- package/dist/utils/localizeStaticUrls.d.ts +0 -19
- package/dist/utils/localizeStaticUrls.js +0 -450
- package/dist/utils/mintlifyTitleFallback.d.ts +0 -6
- package/dist/utils/mintlifyTitleFallback.js +0 -80
- package/dist/utils/parse/needsCJS.d.ts +0 -20
- package/dist/utils/parse/needsCJS.js +0 -72
- package/dist/utils/persistPostprocessHashes.d.ts +0 -12
- package/dist/utils/persistPostprocessHashes.js +0 -39
- package/dist/utils/processAnchorIds.d.ts +0 -6
- package/dist/utils/processAnchorIds.js +0 -56
- package/dist/utils/processOpenApi.d.ts +0 -8
- package/dist/utils/processOpenApi.js +0 -651
- package/dist/utils/sanitizeFileContent.d.ts +0 -6
- package/dist/utils/sanitizeFileContent.js +0 -29
- package/dist/utils/sharedStaticAssets.d.ts +0 -9
- package/dist/utils/sharedStaticAssets.js +0 -384
- package/dist/utils/validateMdx.d.ts +0 -10
- package/dist/utils/validateMdx.js +0 -25
- package/dist/utils/wrapPlainUrls.d.ts +0 -8
- package/dist/utils/wrapPlainUrls.js +0 -72
- package/dist/workflows/download.d.ts +0 -32
- package/dist/workflows/download.js +0 -131
- package/dist/workflows/enqueue.d.ts +0 -17
- package/dist/workflows/enqueue.js +0 -59
- package/dist/workflows/setupProject.d.ts +0 -13
- package/dist/workflows/setupProject.js +0 -48
- package/dist/workflows/stage.d.ts +0 -18
- package/dist/workflows/stage.js +0 -59
- package/dist/workflows/steps/BranchStep.d.ts +0 -13
- package/dist/workflows/steps/BranchStep.js +0 -161
- package/dist/workflows/steps/DownloadStep.d.ts +0 -19
- package/dist/workflows/steps/DownloadStep.js +0 -131
- package/dist/workflows/steps/EnqueueStep.d.ts +0 -15
- package/dist/workflows/steps/EnqueueStep.js +0 -33
- package/dist/workflows/steps/PollJobsStep.d.ts +0 -31
- package/dist/workflows/steps/PollJobsStep.js +0 -288
- package/dist/workflows/steps/SetupStep.d.ts +0 -16
- package/dist/workflows/steps/SetupStep.js +0 -72
- package/dist/workflows/steps/UploadSourcesStep.d.ts +0 -27
- package/dist/workflows/steps/UploadSourcesStep.js +0 -131
- package/dist/workflows/steps/UploadTranslationsStep.d.ts +0 -22
- package/dist/workflows/steps/UploadTranslationsStep.js +0 -71
- package/dist/workflows/steps/UserEditDiffsStep.d.ts +0 -11
- package/dist/workflows/steps/UserEditDiffsStep.js +0 -30
- package/dist/workflows/steps/WorkflowStep.d.ts +0 -4
- package/dist/workflows/steps/WorkflowStep.js +0 -2
- package/dist/workflows/upload.d.ts +0 -15
- package/dist/workflows/upload.js +0 -47
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import { logErrorAndExit } from '../console/logging.js';
|
|
2
|
-
import { logger } from '../console/logger.js';
|
|
3
|
-
import path from 'node:path';
|
|
4
|
-
import fs from 'node:fs';
|
|
5
|
-
import chalk from 'chalk';
|
|
6
|
-
// Fetches project ID and API key by opening the dashboard in the browser
|
|
7
|
-
export async function retrieveCredentials(settings, keyType) {
|
|
8
|
-
// Generate a session ID
|
|
9
|
-
const { sessionId } = await generateCredentialsSession(settings.baseUrl, keyType);
|
|
10
|
-
const urlToOpen = `${settings.dashboardUrl}/cli/wizard/${sessionId}`;
|
|
11
|
-
await import('open').then((open) => open.default(urlToOpen, {
|
|
12
|
-
wait: false,
|
|
13
|
-
}));
|
|
14
|
-
logger.message(`${chalk.dim(`If the browser window didn't open automatically, please open the following link:`)}\n\n${chalk.cyan(urlToOpen)}`);
|
|
15
|
-
const spinner = logger.createSpinner('dots');
|
|
16
|
-
spinner.start('Waiting for response from dashboard...');
|
|
17
|
-
const credentials = await new Promise(async (resolve, reject) => {
|
|
18
|
-
const interval = setInterval(async () => {
|
|
19
|
-
// Ping the dashboard to see if the credentials are set
|
|
20
|
-
try {
|
|
21
|
-
const res = await fetch(`${settings.baseUrl}/cli/wizard/${sessionId}`, {
|
|
22
|
-
method: 'GET',
|
|
23
|
-
});
|
|
24
|
-
if (res.status === 200) {
|
|
25
|
-
const data = await res.json();
|
|
26
|
-
resolve(data);
|
|
27
|
-
clearInterval(interval);
|
|
28
|
-
clearTimeout(timeout);
|
|
29
|
-
fetch(`${settings.baseUrl}/cli/wizard/${sessionId}`, {
|
|
30
|
-
method: 'DELETE',
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
catch (err) {
|
|
35
|
-
console.error(err);
|
|
36
|
-
}
|
|
37
|
-
}, 2000);
|
|
38
|
-
// timeout after 1 hour
|
|
39
|
-
const timeout = setTimeout(() => {
|
|
40
|
-
spinner.stop('Timed out');
|
|
41
|
-
clearInterval(interval);
|
|
42
|
-
logErrorAndExit('Timed out waiting for response from dashboard');
|
|
43
|
-
}, 1000 * 60 * 60);
|
|
44
|
-
});
|
|
45
|
-
spinner.stop('Received credentials');
|
|
46
|
-
return credentials;
|
|
47
|
-
}
|
|
48
|
-
export async function generateCredentialsSession(url, keyType) {
|
|
49
|
-
const res = await fetch(`${url}/cli/wizard/session`, {
|
|
50
|
-
method: 'POST',
|
|
51
|
-
headers: {
|
|
52
|
-
'Content-Type': 'application/json',
|
|
53
|
-
},
|
|
54
|
-
body: JSON.stringify({
|
|
55
|
-
keyType,
|
|
56
|
-
}),
|
|
57
|
-
});
|
|
58
|
-
if (!res.ok) {
|
|
59
|
-
logErrorAndExit('Failed to generate credentials session');
|
|
60
|
-
}
|
|
61
|
-
return await res.json();
|
|
62
|
-
}
|
|
63
|
-
// Checks if the credentials are set in the environment variables
|
|
64
|
-
export function areCredentialsSet() {
|
|
65
|
-
return process.env.GT_PROJECT_ID && process.env.GT_API_KEY;
|
|
66
|
-
}
|
|
67
|
-
// Sets the credentials in .env.local file
|
|
68
|
-
export async function setCredentials(credentials, type, framework, cwd = process.cwd()) {
|
|
69
|
-
const envFile = path.join(cwd, '.env.local');
|
|
70
|
-
let envContent = '';
|
|
71
|
-
// Check if .env.local exists, create it if it doesn't
|
|
72
|
-
if (!fs.existsSync(envFile)) {
|
|
73
|
-
// File doesn't exist, create it
|
|
74
|
-
await fs.promises.writeFile(envFile, '', 'utf8');
|
|
75
|
-
// Add .env.local to .gitignore if it exists
|
|
76
|
-
const gitignoreFile = path.join(cwd, '.gitignore');
|
|
77
|
-
if (fs.existsSync(gitignoreFile)) {
|
|
78
|
-
const gitignoreContent = await fs.promises.readFile(gitignoreFile, 'utf8');
|
|
79
|
-
if (!gitignoreContent.includes('.env.local')) {
|
|
80
|
-
await fs.promises.appendFile(gitignoreFile, '\n.env.local\n', 'utf8');
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
// Create .gitignore file with .env.local
|
|
85
|
-
await fs.promises.writeFile(gitignoreFile, '.env.local\n', 'utf8');
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
// Read existing content
|
|
90
|
-
envContent = await fs.promises.readFile(envFile, 'utf8');
|
|
91
|
-
}
|
|
92
|
-
// Always append the credentials to the file
|
|
93
|
-
let prefix = '';
|
|
94
|
-
if (framework === 'next-pages') {
|
|
95
|
-
prefix = 'NEXT_PUBLIC_';
|
|
96
|
-
}
|
|
97
|
-
else if (framework === 'vite') {
|
|
98
|
-
prefix = 'VITE_';
|
|
99
|
-
}
|
|
100
|
-
else if (framework === 'gatsby') {
|
|
101
|
-
prefix = 'GATSBY_';
|
|
102
|
-
}
|
|
103
|
-
else if (framework === 'react') {
|
|
104
|
-
prefix = 'REACT_APP_';
|
|
105
|
-
}
|
|
106
|
-
else if (framework === 'redwood') {
|
|
107
|
-
prefix = 'REDWOOD_ENV_';
|
|
108
|
-
}
|
|
109
|
-
envContent += `\n${prefix}GT_PROJECT_ID=${credentials.projectId}\n`;
|
|
110
|
-
if (type === 'development') {
|
|
111
|
-
envContent += `${prefix || ''}GT_DEV_API_KEY=${credentials.apiKey}\n`;
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
envContent += `GT_API_KEY=${credentials.apiKey}\n`;
|
|
115
|
-
}
|
|
116
|
-
// Ensure we don't have excessive newlines
|
|
117
|
-
envContent = envContent.replace(/\n{3,}/g, '\n\n').trim() + '\n';
|
|
118
|
-
// Write the updated content back to the file
|
|
119
|
-
await fs.promises.writeFile(envFile, envContent, 'utf8');
|
|
120
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { createFileMapping } from '../formats/files/fileMapping.js';
|
|
2
|
-
import fs from 'node:fs';
|
|
3
|
-
export default async function flattenJsonFiles(settings, includeFiles) {
|
|
4
|
-
if (!settings.files ||
|
|
5
|
-
(Object.keys(settings.files.placeholderPaths).length === 1 &&
|
|
6
|
-
settings.files.placeholderPaths.gt)) {
|
|
7
|
-
return;
|
|
8
|
-
}
|
|
9
|
-
const { resolvedPaths: sourceFiles } = settings.files;
|
|
10
|
-
const fileMapping = createFileMapping(sourceFiles, settings.files.placeholderPaths, settings.files.transformPaths, settings.locales, settings.defaultLocale);
|
|
11
|
-
await Promise.all(Object.values(fileMapping).map(async (filesMap) => {
|
|
12
|
-
const targetFiles = Object.values(filesMap).filter((p) => p.endsWith('.json') && (!includeFiles || includeFiles.has(p)));
|
|
13
|
-
await Promise.all(targetFiles.map(async (file) => {
|
|
14
|
-
// Read each json file
|
|
15
|
-
const json = JSON.parse(fs.readFileSync(file, 'utf8'));
|
|
16
|
-
// Flatten the json
|
|
17
|
-
const flattenedJson = flattenJson(json);
|
|
18
|
-
// Write the flattened json to the target file
|
|
19
|
-
await fs.promises.writeFile(file, JSON.stringify(flattenedJson, null, 2));
|
|
20
|
-
return flattenedJson;
|
|
21
|
-
}));
|
|
22
|
-
}));
|
|
23
|
-
}
|
|
24
|
-
function flattenJson(json, prefix = '') {
|
|
25
|
-
const result = {};
|
|
26
|
-
for (const [key, value] of Object.entries(json)) {
|
|
27
|
-
const newKey = prefix ? `${prefix}.${key}` : key;
|
|
28
|
-
if (value !== null && typeof value === 'object' && !Array.isArray(value)) {
|
|
29
|
-
Object.assign(result, flattenJson(value, newKey));
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
result[newKey] = value;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
return result;
|
|
36
|
-
}
|
package/dist/utils/gitDiff.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Returns a unified diff using the system's git, comparing two paths even if not in a repo.
|
|
3
|
-
* Uses `git diff --no-index` so neither path needs to be tracked by git.
|
|
4
|
-
*
|
|
5
|
-
* Exit codes: 0 (no changes), 1 (changes), >1 (error). We treat 0/1 as success.
|
|
6
|
-
* Throws if git is unavailable or another error occurs.
|
|
7
|
-
*/
|
|
8
|
-
export declare function getGitUnifiedDiff(oldPath: string, newPath: string): Promise<string>;
|
package/dist/utils/gitDiff.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { execFile } from 'node:child_process';
|
|
2
|
-
import { promisify } from 'node:util';
|
|
3
|
-
const execFileAsync = promisify(execFile);
|
|
4
|
-
/**
|
|
5
|
-
* Returns a unified diff using the system's git, comparing two paths even if not in a repo.
|
|
6
|
-
* Uses `git diff --no-index` so neither path needs to be tracked by git.
|
|
7
|
-
*
|
|
8
|
-
* Exit codes: 0 (no changes), 1 (changes), >1 (error). We treat 0/1 as success.
|
|
9
|
-
* Throws if git is unavailable or another error occurs.
|
|
10
|
-
*/
|
|
11
|
-
export async function getGitUnifiedDiff(oldPath, newPath) {
|
|
12
|
-
try {
|
|
13
|
-
const res = await execFileAsync('git', [
|
|
14
|
-
'diff',
|
|
15
|
-
'--no-index',
|
|
16
|
-
'--text',
|
|
17
|
-
'--unified=3',
|
|
18
|
-
'--no-color',
|
|
19
|
-
'--',
|
|
20
|
-
oldPath,
|
|
21
|
-
newPath,
|
|
22
|
-
], {
|
|
23
|
-
windowsHide: true,
|
|
24
|
-
});
|
|
25
|
-
return res.stdout || '';
|
|
26
|
-
}
|
|
27
|
-
catch (error) {
|
|
28
|
-
// Exit code 1 means differences found; stdout contains the diff
|
|
29
|
-
if (error && error.code === 1 && typeof error.stdout === 'string') {
|
|
30
|
-
return error.stdout;
|
|
31
|
-
}
|
|
32
|
-
throw error;
|
|
33
|
-
}
|
|
34
|
-
}
|
package/dist/utils/gt.d.ts
DELETED
package/dist/utils/gt.js
DELETED
package/dist/utils/hash.d.ts
DELETED
package/dist/utils/hash.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import crypto from 'crypto';
|
|
2
|
-
/**
|
|
3
|
-
* Hashes a string using SHA-256 algorithm.
|
|
4
|
-
* @param {string} string - The string to be hashed.
|
|
5
|
-
* @returns {string} The hashed string.
|
|
6
|
-
*/
|
|
7
|
-
export function hashStringSync(string) {
|
|
8
|
-
const hash = crypto.createHash('sha256');
|
|
9
|
-
hash.update(string);
|
|
10
|
-
return hash.digest('hex');
|
|
11
|
-
}
|
package/dist/utils/headers.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function getAuthHeaders(projectId: string, apiKey: string): Record<string, string>;
|
package/dist/utils/headers.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export function getAuthHeaders(projectId, apiKey) {
|
|
2
|
-
const authHeaders = {
|
|
3
|
-
'x-gt-project-id': projectId,
|
|
4
|
-
};
|
|
5
|
-
if (apiKey) {
|
|
6
|
-
if (apiKey.startsWith('gtx-internal-')) {
|
|
7
|
-
authHeaders['x-gt-internal-api-key'] = apiKey;
|
|
8
|
-
}
|
|
9
|
-
else {
|
|
10
|
-
authHeaders['x-gt-api-key'] = apiKey;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
return authHeaders;
|
|
14
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { Settings } from '../types/index.js';
|
|
2
|
-
type RewriteResult = {
|
|
3
|
-
content: string;
|
|
4
|
-
hasChanges: boolean;
|
|
5
|
-
};
|
|
6
|
-
export declare function localizeRelativeAssetsForContent(content: string, sourcePath: string, targetPath: string, cwd: string): RewriteResult;
|
|
7
|
-
export default function localizeRelativeAssets(settings: Settings, targetLocales?: string[], includeFiles?: Set<string>): Promise<void>;
|
|
8
|
-
export {};
|
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
import * as fs from 'fs';
|
|
2
|
-
import path from 'node:path';
|
|
3
|
-
import { unified } from 'unified';
|
|
4
|
-
import remarkParse from 'remark-parse';
|
|
5
|
-
import remarkMdx from 'remark-mdx';
|
|
6
|
-
import remarkFrontmatter from 'remark-frontmatter';
|
|
7
|
-
import remarkStringify from 'remark-stringify';
|
|
8
|
-
import { visit } from 'unist-util-visit';
|
|
9
|
-
import { escapeHtmlInTextNodes, normalizeCJKCharacters } from 'gt-remark';
|
|
10
|
-
import { createFileMapping } from '../formats/files/fileMapping.js';
|
|
11
|
-
function stripQueryAndHash(url) {
|
|
12
|
-
const match = url.match(/^[^?#]+/);
|
|
13
|
-
const base = match ? match[0] : url;
|
|
14
|
-
const suffix = url.slice(base.length);
|
|
15
|
-
return { base, suffix };
|
|
16
|
-
}
|
|
17
|
-
function isSkippableUrl(url) {
|
|
18
|
-
if (!url)
|
|
19
|
-
return true;
|
|
20
|
-
if (url.startsWith('/'))
|
|
21
|
-
return true;
|
|
22
|
-
if (/^(https?:)?\/\//i.test(url))
|
|
23
|
-
return true;
|
|
24
|
-
if (url.startsWith('data:'))
|
|
25
|
-
return true;
|
|
26
|
-
if (url.startsWith('#'))
|
|
27
|
-
return true;
|
|
28
|
-
if (url.startsWith('mailto:'))
|
|
29
|
-
return true;
|
|
30
|
-
if (url.startsWith('tel:'))
|
|
31
|
-
return true;
|
|
32
|
-
return false;
|
|
33
|
-
}
|
|
34
|
-
function toPosix(p) {
|
|
35
|
-
return p.replace(/\\/g, '/');
|
|
36
|
-
}
|
|
37
|
-
function isSubPath(child, parent) {
|
|
38
|
-
const rel = path.relative(parent, child);
|
|
39
|
-
return rel === '' || (!rel.startsWith('..') && !path.isAbsolute(rel));
|
|
40
|
-
}
|
|
41
|
-
export function localizeRelativeAssetsForContent(content, sourcePath, targetPath, cwd) {
|
|
42
|
-
let changed = false;
|
|
43
|
-
let ast;
|
|
44
|
-
try {
|
|
45
|
-
const processor = unified()
|
|
46
|
-
.use(remarkParse)
|
|
47
|
-
.use(remarkFrontmatter, ['yaml', 'toml'])
|
|
48
|
-
.use(remarkMdx);
|
|
49
|
-
ast = processor.runSync(processor.parse(content));
|
|
50
|
-
}
|
|
51
|
-
catch {
|
|
52
|
-
return { content, hasChanges: false };
|
|
53
|
-
}
|
|
54
|
-
const sourceDir = path.dirname(sourcePath);
|
|
55
|
-
const targetDir = path.dirname(targetPath);
|
|
56
|
-
const maybeRewrite = (url) => {
|
|
57
|
-
if (isSkippableUrl(url))
|
|
58
|
-
return null;
|
|
59
|
-
const { base, suffix } = stripQueryAndHash(url);
|
|
60
|
-
if (isSkippableUrl(base))
|
|
61
|
-
return null;
|
|
62
|
-
const targetResolved = path.resolve(targetDir, base);
|
|
63
|
-
if (fs.existsSync(targetResolved)) {
|
|
64
|
-
return null;
|
|
65
|
-
}
|
|
66
|
-
const sourceResolved = path.resolve(sourceDir, base);
|
|
67
|
-
if (!fs.existsSync(sourceResolved)) {
|
|
68
|
-
return null;
|
|
69
|
-
}
|
|
70
|
-
let newPath;
|
|
71
|
-
if (isSubPath(sourceResolved, cwd)) {
|
|
72
|
-
newPath = '/' + toPosix(path.relative(cwd, sourceResolved));
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
const rel = toPosix(path.relative(targetDir, sourceResolved));
|
|
76
|
-
newPath = rel || toPosix(path.basename(sourceResolved));
|
|
77
|
-
}
|
|
78
|
-
if (newPath === base)
|
|
79
|
-
return null;
|
|
80
|
-
changed = true;
|
|
81
|
-
return newPath + suffix;
|
|
82
|
-
};
|
|
83
|
-
visit(ast, (node) => {
|
|
84
|
-
if (node.type === 'image' && typeof node.url === 'string') {
|
|
85
|
-
const newUrl = maybeRewrite(node.url);
|
|
86
|
-
if (newUrl)
|
|
87
|
-
node.url = newUrl;
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
if ((node.type === 'mdxJsxFlowElement' ||
|
|
91
|
-
node.type === 'mdxJsxTextElement') &&
|
|
92
|
-
node.name === 'img' &&
|
|
93
|
-
Array.isArray(node.attributes)) {
|
|
94
|
-
for (const attr of node.attributes) {
|
|
95
|
-
if (attr &&
|
|
96
|
-
attr.type === 'mdxJsxAttribute' &&
|
|
97
|
-
attr.name === 'src' &&
|
|
98
|
-
typeof attr.value === 'string') {
|
|
99
|
-
const newUrl = maybeRewrite(attr.value);
|
|
100
|
-
if (newUrl)
|
|
101
|
-
attr.value = newUrl;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
try {
|
|
107
|
-
const s = unified()
|
|
108
|
-
.use(remarkFrontmatter, ['yaml', 'toml'])
|
|
109
|
-
.use(remarkMdx)
|
|
110
|
-
.use(normalizeCJKCharacters)
|
|
111
|
-
.use(escapeHtmlInTextNodes)
|
|
112
|
-
.use(remarkStringify, {
|
|
113
|
-
handlers: {
|
|
114
|
-
text(node) {
|
|
115
|
-
return node.value;
|
|
116
|
-
},
|
|
117
|
-
},
|
|
118
|
-
});
|
|
119
|
-
const outTree = s.runSync(ast);
|
|
120
|
-
let out = s.stringify(outTree);
|
|
121
|
-
if (out.endsWith('\n') && !content.endsWith('\n'))
|
|
122
|
-
out = out.slice(0, -1);
|
|
123
|
-
if (content.startsWith('\n') && !out.startsWith('\n'))
|
|
124
|
-
out = '\n' + out;
|
|
125
|
-
return { content: out, hasChanges: changed };
|
|
126
|
-
}
|
|
127
|
-
catch {
|
|
128
|
-
return { content, hasChanges: false };
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
export default async function localizeRelativeAssets(settings, targetLocales, includeFiles) {
|
|
132
|
-
if (!settings.files ||
|
|
133
|
-
(Object.keys(settings.files.placeholderPaths).length === 1 &&
|
|
134
|
-
settings.files.placeholderPaths.gt)) {
|
|
135
|
-
return;
|
|
136
|
-
}
|
|
137
|
-
const { resolvedPaths: sourceFiles } = settings.files;
|
|
138
|
-
const locales = targetLocales || settings.locales;
|
|
139
|
-
const fileMapping = createFileMapping(sourceFiles, settings.files.placeholderPaths, settings.files.transformPaths, settings.locales, settings.defaultLocale);
|
|
140
|
-
const cwd = process.cwd();
|
|
141
|
-
const processPromises = Object.entries(fileMapping)
|
|
142
|
-
.filter(([locale]) => locales.includes(locale))
|
|
143
|
-
.map(async ([locale, filesMap]) => {
|
|
144
|
-
const reverseMap = new Map();
|
|
145
|
-
for (const [sourcePath, targetPath] of Object.entries(filesMap)) {
|
|
146
|
-
reverseMap.set(targetPath, sourcePath);
|
|
147
|
-
}
|
|
148
|
-
const targetFiles = Object.values(filesMap).filter((p) => (p.endsWith('.md') || p.endsWith('.mdx')) &&
|
|
149
|
-
(!includeFiles || includeFiles.has(p)));
|
|
150
|
-
await Promise.all(targetFiles.map(async (targetPath) => {
|
|
151
|
-
if (!fs.existsSync(targetPath))
|
|
152
|
-
return;
|
|
153
|
-
const sourcePath = reverseMap.get(targetPath);
|
|
154
|
-
if (!sourcePath)
|
|
155
|
-
return;
|
|
156
|
-
if (!fs.existsSync(sourcePath))
|
|
157
|
-
return;
|
|
158
|
-
const content = await fs.promises.readFile(targetPath, 'utf8');
|
|
159
|
-
const result = localizeRelativeAssetsForContent(content, sourcePath, targetPath, cwd);
|
|
160
|
-
if (result.hasChanges) {
|
|
161
|
-
await fs.promises.writeFile(targetPath, result.content);
|
|
162
|
-
}
|
|
163
|
-
}));
|
|
164
|
-
});
|
|
165
|
-
await Promise.all(processPromises);
|
|
166
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Settings } from '../types/index.js';
|
|
2
|
-
/**
|
|
3
|
-
* Localizes static imports in content files.
|
|
4
|
-
* Currently only supported for md and mdx files. (/docs/ -> /[locale]/docs/)
|
|
5
|
-
* @param settings - The settings object containing the project configuration.
|
|
6
|
-
* @returns void
|
|
7
|
-
*
|
|
8
|
-
* @TODO This is an experimental feature, and only works in very specific cases. This needs to be improved before
|
|
9
|
-
* it can be enabled by default.
|
|
10
|
-
*
|
|
11
|
-
* Before this becomes a non-experimental feature, we need to:
|
|
12
|
-
* - Support more file types
|
|
13
|
-
* - Support more complex paths
|
|
14
|
-
*/
|
|
15
|
-
export default function localizeStaticImports(settings: Settings, includeFiles?: Set<string>): Promise<void>;
|