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.
- package/README.md +12 -3
- package/dist/bin/bin-entry.js +2 -1
- 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/package.json +9 -60
- package/CHANGELOG.md +0 -1255
- 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/generateSettings.d.ts +0 -9
- package/dist/config/generateSettings.js +0 -214
- package/dist/config/optionPresets.d.ts +0 -3
- package/dist/config/optionPresets.js +0 -65
- package/dist/config/resolveConfig.d.ts +0 -4
- package/dist/config/resolveConfig.js +0 -33
- 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 -33
- package/dist/console/index.js +0 -44
- 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 -173
- 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/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/setupConfig.d.ts +0 -17
- package/dist/fs/config/setupConfig.js +0 -50
- 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/matchFiles.d.ts +0 -1
- package/dist/fs/matchFiles.js +0 -8
- 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/next/parse/handleInitGT.d.ts +0 -7
- package/dist/next/parse/handleInitGT.js +0 -157
- package/dist/next/parse/wrapContent.d.ts +0 -12
- package/dist/next/parse/wrapContent.js +0 -164
- 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 -13
- package/dist/react/jsx/utils/constants.js +0 -46
- 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 -135
- 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 -912
- 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/parse/wrapContent.d.ts +0 -12
- package/dist/react/parse/wrapContent.js +0 -162
- 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/index.d.ts +0 -243
- package/dist/types/index.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/installPackage.d.ts +0 -3
- package/dist/utils/installPackage.js +0 -77
- 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/packageInfo.d.ts +0 -3
- package/dist/utils/packageInfo.js +0 -17
- package/dist/utils/packageJson.d.ts +0 -6
- package/dist/utils/packageJson.js +0 -68
- package/dist/utils/packageManager.d.ts +0 -28
- package/dist/utils/packageManager.js +0 -269
- 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/workflows/download.d.ts +0 -32
- package/dist/workflows/download.js +0 -127
- 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,164 +0,0 @@
|
|
|
1
|
-
import fs from 'node:fs';
|
|
2
|
-
import * as t from '@babel/types';
|
|
3
|
-
import { parse } from '@babel/parser';
|
|
4
|
-
import traverseModule from '@babel/traverse';
|
|
5
|
-
import generateModule from '@babel/generator';
|
|
6
|
-
// Handle CommonJS/ESM interop
|
|
7
|
-
const traverse = traverseModule.default || traverseModule;
|
|
8
|
-
const generate = generateModule.default || generateModule;
|
|
9
|
-
import { isMeaningful } from '../../react/jsx/evaluateJsx.js';
|
|
10
|
-
import { handleJsxElement } from '../../react/jsx/wrapJsx.js';
|
|
11
|
-
import { getRelativePath } from '../../fs/findFilepath.js';
|
|
12
|
-
import { isHtmlElement, isBodyElement, hasGTProviderChild, addDynamicLangAttribute, makeParentFunctionAsync, } from '../jsx/utils.js';
|
|
13
|
-
import { generateImportMap, createImports, } from '../../react/jsx/utils/parseAst.js';
|
|
14
|
-
import { matchFiles } from '../../fs/matchFiles.js';
|
|
15
|
-
import { DEFAULT_SRC_PATTERNS } from '../../config/generateSettings.js';
|
|
16
|
-
import { Libraries } from '../../types/libraries.js';
|
|
17
|
-
const IMPORT_MAP = {
|
|
18
|
-
T: { name: 'T', source: Libraries.GT_NEXT },
|
|
19
|
-
Var: { name: 'Var', source: Libraries.GT_NEXT },
|
|
20
|
-
GTT: { name: 'T', source: Libraries.GT_NEXT },
|
|
21
|
-
GTVar: { name: 'Var', source: Libraries.GT_NEXT },
|
|
22
|
-
GTProvider: { name: 'GTProvider', source: Libraries.GT_NEXT },
|
|
23
|
-
getLocale: { name: 'getLocale', source: Libraries.GT_NEXT + '/server' },
|
|
24
|
-
};
|
|
25
|
-
/**
|
|
26
|
-
* Wraps all JSX elements in the src directory with a <T> tag, with unique ids.
|
|
27
|
-
* - Ignores pure strings
|
|
28
|
-
*
|
|
29
|
-
* @param options - The options object
|
|
30
|
-
* @returns An object containing the updates and errors
|
|
31
|
-
*/
|
|
32
|
-
export async function wrapContentNext(options, pkg, errors, warnings) {
|
|
33
|
-
const files = matchFiles(process.cwd(), options.src || DEFAULT_SRC_PATTERNS);
|
|
34
|
-
const filesUpdated = [];
|
|
35
|
-
for (const file of files) {
|
|
36
|
-
const code = await fs.promises.readFile(file, 'utf8');
|
|
37
|
-
// Create relative path from src directory and remove extension
|
|
38
|
-
const relativePath = getRelativePath(file, process.cwd());
|
|
39
|
-
let ast;
|
|
40
|
-
try {
|
|
41
|
-
ast = parse(code, {
|
|
42
|
-
sourceType: 'module',
|
|
43
|
-
plugins: ['jsx', 'typescript'],
|
|
44
|
-
tokens: true,
|
|
45
|
-
createParenthesizedExpressions: true,
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
catch (error) {
|
|
49
|
-
errors.push(`Error: Failed to parse ${file}: ${error}`);
|
|
50
|
-
continue;
|
|
51
|
-
}
|
|
52
|
-
let modified = false;
|
|
53
|
-
const usedImports = [];
|
|
54
|
-
const { importAlias, initialImports } = generateImportMap(ast, pkg);
|
|
55
|
-
// If the file already has a T import, skip processing it
|
|
56
|
-
if (initialImports.includes(IMPORT_MAP.T.name)) {
|
|
57
|
-
continue;
|
|
58
|
-
}
|
|
59
|
-
let globalId = 0;
|
|
60
|
-
traverse(ast, {
|
|
61
|
-
JSXElement(path) {
|
|
62
|
-
if (pkg === Libraries.GT_NEXT &&
|
|
63
|
-
options.addGTProvider &&
|
|
64
|
-
isHtmlElement(path.node.openingElement)) {
|
|
65
|
-
// Find the body element recursively in the HTML tree
|
|
66
|
-
const findBodyElement = (children) => {
|
|
67
|
-
for (const child of children) {
|
|
68
|
-
if (t.isJSXElement(child) &&
|
|
69
|
-
isBodyElement(child.openingElement)) {
|
|
70
|
-
return child;
|
|
71
|
-
}
|
|
72
|
-
if (t.isJSXElement(child)) {
|
|
73
|
-
const bodyInChild = findBodyElement(child.children);
|
|
74
|
-
if (bodyInChild)
|
|
75
|
-
return bodyInChild;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
return null;
|
|
79
|
-
};
|
|
80
|
-
const bodyElement = findBodyElement(path.node.children);
|
|
81
|
-
if (!bodyElement) {
|
|
82
|
-
warnings.push(`File ${file} has a <html> tag without a <body> tag. Skipping GTProvider insertion.`);
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
// Skip if body already has GTProvider
|
|
86
|
-
if (hasGTProviderChild(bodyElement)) {
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
|
-
// Handle lang attribute for html tag
|
|
90
|
-
const langAttr = path.node.openingElement.attributes.find((attr) => t.isJSXAttribute(attr) &&
|
|
91
|
-
t.isJSXIdentifier(attr.name) &&
|
|
92
|
-
t.isStringLiteral(attr.value) &&
|
|
93
|
-
attr.name.name === 'lang');
|
|
94
|
-
if (langAttr) {
|
|
95
|
-
makeParentFunctionAsync(path);
|
|
96
|
-
addDynamicLangAttribute(path.node.openingElement);
|
|
97
|
-
usedImports.push('getLocale');
|
|
98
|
-
}
|
|
99
|
-
// Wrap body children with GTProvider
|
|
100
|
-
const bodyChildren = bodyElement.children;
|
|
101
|
-
const gtProviderElement = t.jsxElement(t.jsxOpeningElement(t.jsxIdentifier('GTProvider'), [], false), t.jsxClosingElement(t.jsxIdentifier('GTProvider')), bodyChildren, false);
|
|
102
|
-
bodyElement.children = [gtProviderElement];
|
|
103
|
-
usedImports.push('GTProvider');
|
|
104
|
-
modified = true;
|
|
105
|
-
path.skip();
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
// If skip wrapping Ts, skip processing this node
|
|
109
|
-
if (options.skipTs) {
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
// Check if this JSX element has any JSX element ancestors
|
|
113
|
-
if (t.isJSXElement(path.parentPath?.node) ||
|
|
114
|
-
t.isJSXExpressionContainer(path.parentPath?.node)) {
|
|
115
|
-
// If we found a JSX parent, skip processing this node
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
// At this point, we're only processing top-level JSX elements
|
|
119
|
-
const opts = {
|
|
120
|
-
...importAlias,
|
|
121
|
-
idPrefix: relativePath,
|
|
122
|
-
idCount: globalId,
|
|
123
|
-
usedImports,
|
|
124
|
-
modified: false,
|
|
125
|
-
createIds: !options.disableIds,
|
|
126
|
-
warnings,
|
|
127
|
-
file,
|
|
128
|
-
};
|
|
129
|
-
const wrapped = handleJsxElement(path.node, opts, isMeaningful);
|
|
130
|
-
path.replaceWith(wrapped.node);
|
|
131
|
-
// Update global counters
|
|
132
|
-
modified = modified || opts.modified;
|
|
133
|
-
globalId = opts.idCount;
|
|
134
|
-
},
|
|
135
|
-
});
|
|
136
|
-
if (!modified)
|
|
137
|
-
continue;
|
|
138
|
-
const needsImport = usedImports.filter((imp) => !initialImports.includes(imp));
|
|
139
|
-
if (needsImport.length > 0) {
|
|
140
|
-
createImports(ast, needsImport, IMPORT_MAP);
|
|
141
|
-
}
|
|
142
|
-
try {
|
|
143
|
-
const output = generate(ast, {
|
|
144
|
-
retainLines: true,
|
|
145
|
-
retainFunctionParens: true,
|
|
146
|
-
comments: true,
|
|
147
|
-
compact: 'auto',
|
|
148
|
-
}, code);
|
|
149
|
-
// Post-process the output to fix import spacing
|
|
150
|
-
let processedCode = output.code;
|
|
151
|
-
if (needsImport.length > 0) {
|
|
152
|
-
// Add newline after the comment only
|
|
153
|
-
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');
|
|
154
|
-
}
|
|
155
|
-
// Write the modified code back to the file
|
|
156
|
-
await fs.promises.writeFile(file, processedCode);
|
|
157
|
-
filesUpdated.push(file);
|
|
158
|
-
}
|
|
159
|
-
catch (error) {
|
|
160
|
-
errors.push(`Error: Failed to write ${file}: ${error}`);
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
return { filesUpdated };
|
|
164
|
-
}
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
import fs from 'node:fs';
|
|
2
|
-
import path from 'node:path';
|
|
3
|
-
import { displayResolvedPaths } from '../../console/logging.js';
|
|
4
|
-
export default function createESBuildConfig(config = {}) {
|
|
5
|
-
const esbuildOptions = {
|
|
6
|
-
bundle: true,
|
|
7
|
-
format: 'cjs',
|
|
8
|
-
platform: 'node',
|
|
9
|
-
target: 'es2021',
|
|
10
|
-
loader: {
|
|
11
|
-
'.js': 'jsx',
|
|
12
|
-
'.ts': 'ts',
|
|
13
|
-
'.css': 'css', // Add CSS loader
|
|
14
|
-
},
|
|
15
|
-
sourcemap: 'inline',
|
|
16
|
-
external: ['server-only'],
|
|
17
|
-
define: {
|
|
18
|
-
React: 'global.React',
|
|
19
|
-
},
|
|
20
|
-
plugins: [],
|
|
21
|
-
};
|
|
22
|
-
// Add the custom plugin to handle 'server-only' imports
|
|
23
|
-
esbuildOptions.plugins.push({
|
|
24
|
-
name: 'ignore-server-only',
|
|
25
|
-
setup(build) {
|
|
26
|
-
build.onResolve({ filter: /^server-only$/ }, () => {
|
|
27
|
-
return {
|
|
28
|
-
path: 'server-only',
|
|
29
|
-
namespace: 'ignore-server-only',
|
|
30
|
-
};
|
|
31
|
-
});
|
|
32
|
-
build.onLoad({ filter: /^server-only$/, namespace: 'ignore-server-only' }, () => {
|
|
33
|
-
return {
|
|
34
|
-
contents: 'module.exports = {};',
|
|
35
|
-
loader: 'js',
|
|
36
|
-
};
|
|
37
|
-
});
|
|
38
|
-
},
|
|
39
|
-
});
|
|
40
|
-
// Add a plugin to handle CSS imports
|
|
41
|
-
esbuildOptions.plugins.push({
|
|
42
|
-
name: 'css-module',
|
|
43
|
-
setup(build) {
|
|
44
|
-
build.onResolve({ filter: /\.css$/ }, (args) => {
|
|
45
|
-
return {
|
|
46
|
-
path: path.resolve(args.resolveDir, args.path),
|
|
47
|
-
namespace: 'css-module',
|
|
48
|
-
};
|
|
49
|
-
});
|
|
50
|
-
build.onLoad({ filter: /\.css$/, namespace: 'css-module' }, async (args) => {
|
|
51
|
-
const css = await fs.promises.readFile(args.path, 'utf8');
|
|
52
|
-
const contents = `
|
|
53
|
-
const style = document.createElement('style');
|
|
54
|
-
style.textContent = ${JSON.stringify(css)};
|
|
55
|
-
document.head.appendChild(style);
|
|
56
|
-
`;
|
|
57
|
-
return { contents, loader: 'js' };
|
|
58
|
-
});
|
|
59
|
-
},
|
|
60
|
-
});
|
|
61
|
-
if (config.compilerOptions) {
|
|
62
|
-
if (config.compilerOptions.paths) {
|
|
63
|
-
const aliases = {};
|
|
64
|
-
const resolvedPaths = [];
|
|
65
|
-
for (const [key, value] of Object.entries(config.compilerOptions.paths)) {
|
|
66
|
-
if (Array.isArray(value) && typeof value[0] === 'string') {
|
|
67
|
-
const resolvedPath = path.resolve(process.cwd(), value[0].replace('/*', ''));
|
|
68
|
-
aliases[key.replace('/*', '')] = resolvedPath;
|
|
69
|
-
resolvedPaths.push([key, resolvedPath]);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
if (resolvedPaths.length) {
|
|
73
|
-
displayResolvedPaths(resolvedPaths);
|
|
74
|
-
}
|
|
75
|
-
esbuildOptions.plugins = esbuildOptions.plugins || [];
|
|
76
|
-
esbuildOptions.plugins.push({
|
|
77
|
-
name: 'alias',
|
|
78
|
-
setup(build) {
|
|
79
|
-
build.onResolve({ filter: /.*/ }, (args) => {
|
|
80
|
-
for (const [aliasKey, aliasPath] of Object.entries(aliases)) {
|
|
81
|
-
if (args.path.startsWith(`${aliasKey}/`)) {
|
|
82
|
-
const resolvedPath = path.resolve(aliasPath, args.path.slice(aliasKey.length + 1));
|
|
83
|
-
const extensions = ['.js', '.ts', '.css']; // Add .css to extensions
|
|
84
|
-
function resolveWithExtensions(basePath) {
|
|
85
|
-
for (const ext of extensions) {
|
|
86
|
-
const fullPath = `${basePath}${ext}`;
|
|
87
|
-
try {
|
|
88
|
-
const realPath = fs.realpathSync(fullPath);
|
|
89
|
-
return realPath;
|
|
90
|
-
}
|
|
91
|
-
catch (_) {
|
|
92
|
-
continue;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
return null;
|
|
96
|
-
}
|
|
97
|
-
try {
|
|
98
|
-
const realPath = fs.realpathSync(resolvedPath);
|
|
99
|
-
return { path: realPath };
|
|
100
|
-
}
|
|
101
|
-
catch (err) {
|
|
102
|
-
const hasExtension = extensions.some((ext) => resolvedPath.endsWith(ext));
|
|
103
|
-
if (!hasExtension) {
|
|
104
|
-
const resolvedWithExt = resolveWithExtensions(resolvedPath);
|
|
105
|
-
if (resolvedWithExt) {
|
|
106
|
-
return { path: resolvedWithExt };
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
throw new Error(`Unable to resolve path: ${resolvedPath}`);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
},
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
return esbuildOptions;
|
|
119
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import * as t from '@babel/types';
|
|
2
|
-
/**
|
|
3
|
-
* Checks if a node is meaningful. Does not recurse into children.
|
|
4
|
-
* @param node - The node to check
|
|
5
|
-
* @returns Whether the node is meaningful
|
|
6
|
-
*/
|
|
7
|
-
export declare function isMeaningful(node: t.Node): boolean;
|
|
8
|
-
export declare function isStaticExpression(expr: t.Expression | t.JSXEmptyExpression, jsxStatic?: false): {
|
|
9
|
-
isStatic: boolean;
|
|
10
|
-
value?: string;
|
|
11
|
-
};
|
|
12
|
-
export declare function isStaticExpression(expr: t.Expression | t.JSXEmptyExpression, jsxStatic?: true): {
|
|
13
|
-
isStatic: boolean;
|
|
14
|
-
value?: string | boolean | null;
|
|
15
|
-
};
|
|
16
|
-
export declare function isStaticExpression(expr: t.Expression | t.JSXEmptyExpression, jsxStatic?: boolean): {
|
|
17
|
-
isStatic: boolean;
|
|
18
|
-
value?: string | boolean | null;
|
|
19
|
-
};
|
|
20
|
-
export declare function isStaticValue(expr: t.Expression | t.JSXEmptyExpression): boolean;
|
|
21
|
-
export declare function isValidIcu(string: string): {
|
|
22
|
-
isValid: boolean;
|
|
23
|
-
error?: string;
|
|
24
|
-
};
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import * as t from '@babel/types';
|
|
2
|
-
import { parse } from '@formatjs/icu-messageformat-parser';
|
|
3
|
-
const MEANINGFUL_REGEX = /[\p{L}\p{N}]/u;
|
|
4
|
-
/**
|
|
5
|
-
* Checks if a node is meaningful. Does not recurse into children.
|
|
6
|
-
* @param node - The node to check
|
|
7
|
-
* @returns Whether the node is meaningful
|
|
8
|
-
*/
|
|
9
|
-
export function isMeaningful(node) {
|
|
10
|
-
if (t.isStringLiteral(node) || t.isJSXText(node)) {
|
|
11
|
-
return MEANINGFUL_REGEX.test(node.value);
|
|
12
|
-
}
|
|
13
|
-
// Handle template literals without expressions
|
|
14
|
-
if (t.isTemplateLiteral(node) && node.expressions.length === 0) {
|
|
15
|
-
return MEANINGFUL_REGEX.test(node.quasis[0].value.raw);
|
|
16
|
-
}
|
|
17
|
-
if (t.isJSXExpressionContainer(node)) {
|
|
18
|
-
const value = isStaticExpression(node.expression);
|
|
19
|
-
if (value.isStatic && value.value) {
|
|
20
|
-
return MEANINGFUL_REGEX.test(value.value);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
if (t.isBinaryExpression(node)) {
|
|
24
|
-
if (node.operator === '+') {
|
|
25
|
-
return isMeaningful(node.left) || isMeaningful(node.right);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return false;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Checks if an expression is static (does not contain any variables which could change at runtime).
|
|
32
|
-
* @param expr - The expression to check
|
|
33
|
-
* @param ignoreStaticFunction - Whether to ignore static functions
|
|
34
|
-
* @returns An object containing the result of the static check
|
|
35
|
-
*/
|
|
36
|
-
export function isStaticExpression(expr, jsxStatic = false) {
|
|
37
|
-
// Handle empty expressions
|
|
38
|
-
if (t.isJSXEmptyExpression(expr)) {
|
|
39
|
-
return { isStatic: true, value: '' };
|
|
40
|
-
}
|
|
41
|
-
// Handle direct string literals
|
|
42
|
-
if (t.isStringLiteral(expr)) {
|
|
43
|
-
return { isStatic: true, value: expr.value };
|
|
44
|
-
}
|
|
45
|
-
// Handle template literals without expressions
|
|
46
|
-
if (t.isTemplateLiteral(expr) && expr.expressions.length === 0) {
|
|
47
|
-
return {
|
|
48
|
-
isStatic: true,
|
|
49
|
-
value: jsxStatic ? expr.quasis[0].value.cooked : expr.quasis[0].value.raw,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
// Binary expressions are not static
|
|
53
|
-
if (t.isBinaryExpression(expr)) {
|
|
54
|
-
// Not a static expression
|
|
55
|
-
return { isStatic: false };
|
|
56
|
-
}
|
|
57
|
-
// Handle parenthesized expressions
|
|
58
|
-
if (t.isParenthesizedExpression(expr)) {
|
|
59
|
-
return isStaticExpression(expr.expression, jsxStatic);
|
|
60
|
-
}
|
|
61
|
-
// Handle numeric literals by converting them to strings
|
|
62
|
-
if (t.isNumericLiteral(expr)) {
|
|
63
|
-
return { isStatic: true, value: String(expr.value) };
|
|
64
|
-
}
|
|
65
|
-
// Handle unary expressions by converting them to strings
|
|
66
|
-
if (t.isUnaryExpression(expr)) {
|
|
67
|
-
let value;
|
|
68
|
-
let operator = '';
|
|
69
|
-
if (expr.operator === '-') {
|
|
70
|
-
operator = expr.operator;
|
|
71
|
-
}
|
|
72
|
-
if (t.isNumericLiteral(expr.argument)) {
|
|
73
|
-
if (expr.argument.value === 0) {
|
|
74
|
-
value = '0';
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
value = operator + expr.argument.value.toString();
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
// invalid
|
|
82
|
-
return { isStatic: false };
|
|
83
|
-
}
|
|
84
|
-
return { isStatic: true, value };
|
|
85
|
-
}
|
|
86
|
-
// Handle boolean literals by converting them to strings
|
|
87
|
-
if (t.isBooleanLiteral(expr)) {
|
|
88
|
-
return {
|
|
89
|
-
isStatic: true,
|
|
90
|
-
value: jsxStatic ? expr.value : String(expr.value),
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
// Handle null literal
|
|
94
|
-
if (t.isNullLiteral(expr)) {
|
|
95
|
-
return { isStatic: true, value: jsxStatic ? null : 'null' };
|
|
96
|
-
}
|
|
97
|
-
// Not a static expression
|
|
98
|
-
return { isStatic: false };
|
|
99
|
-
}
|
|
100
|
-
export function isStaticValue(expr) {
|
|
101
|
-
if (t.isStringLiteral(expr)) {
|
|
102
|
-
return true;
|
|
103
|
-
}
|
|
104
|
-
if (t.isNumericLiteral(expr)) {
|
|
105
|
-
return true;
|
|
106
|
-
}
|
|
107
|
-
if (t.isTemplateLiteral(expr)) {
|
|
108
|
-
return true;
|
|
109
|
-
}
|
|
110
|
-
return false;
|
|
111
|
-
}
|
|
112
|
-
export function isValidIcu(string) {
|
|
113
|
-
try {
|
|
114
|
-
parse(string);
|
|
115
|
-
}
|
|
116
|
-
catch (error) {
|
|
117
|
-
return {
|
|
118
|
-
isValid: false,
|
|
119
|
-
error: error instanceof Error ? error.message : String(error),
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
return { isValid: true };
|
|
123
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { NodePath } from '@babel/traverse';
|
|
2
|
-
/**
|
|
3
|
-
* Builds a map of imported function names to their import paths from a given program path.
|
|
4
|
-
* Handles both named imports and default imports.
|
|
5
|
-
*
|
|
6
|
-
* Example: import { getInfo } from './constants' -> Map { 'getInfo' => './constants' }
|
|
7
|
-
* Example: import utils from './utils' -> Map { 'utils' => './utils' }
|
|
8
|
-
*/
|
|
9
|
-
export declare function buildImportMap(programPath: NodePath): Map<string, string>;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import * as t from '@babel/types';
|
|
2
|
-
/**
|
|
3
|
-
* Builds a map of imported function names to their import paths from a given program path.
|
|
4
|
-
* Handles both named imports and default imports.
|
|
5
|
-
*
|
|
6
|
-
* Example: import { getInfo } from './constants' -> Map { 'getInfo' => './constants' }
|
|
7
|
-
* Example: import utils from './utils' -> Map { 'utils' => './utils' }
|
|
8
|
-
*/
|
|
9
|
-
export function buildImportMap(programPath) {
|
|
10
|
-
const importMap = new Map();
|
|
11
|
-
programPath.traverse({
|
|
12
|
-
ImportDeclaration(importPath) {
|
|
13
|
-
if (t.isStringLiteral(importPath.node.source)) {
|
|
14
|
-
const importSource = importPath.node.source.value;
|
|
15
|
-
importPath.node.specifiers.forEach((spec) => {
|
|
16
|
-
if (t.isImportSpecifier(spec) &&
|
|
17
|
-
t.isIdentifier(spec.imported) &&
|
|
18
|
-
t.isIdentifier(spec.local)) {
|
|
19
|
-
importMap.set(spec.local.name, importSource);
|
|
20
|
-
}
|
|
21
|
-
else if (t.isImportDefaultSpecifier(spec) &&
|
|
22
|
-
t.isIdentifier(spec.local)) {
|
|
23
|
-
importMap.set(spec.local.name, importSource);
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
});
|
|
29
|
-
return importMap;
|
|
30
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export declare const DECLARE_VAR_FUNCTION = "declareVar";
|
|
2
|
-
export declare const DECLARE_STATIC_FUNCTION = "declareStatic";
|
|
3
|
-
export declare const MSG_REGISTRATION_FUNCTION = "msg";
|
|
4
|
-
export declare const INLINE_TRANSLATION_HOOK = "useGT";
|
|
5
|
-
export declare const INLINE_TRANSLATION_HOOK_ASYNC = "getGT";
|
|
6
|
-
export declare const INLINE_MESSAGE_HOOK = "useMessages";
|
|
7
|
-
export declare const INLINE_MESSAGE_HOOK_ASYNC = "getMessages";
|
|
8
|
-
export declare const TRANSLATION_COMPONENT = "T";
|
|
9
|
-
export declare const STATIC_COMPONENT = "Static";
|
|
10
|
-
export declare const GT_TRANSLATION_FUNCS: string[];
|
|
11
|
-
export declare const VARIABLE_COMPONENTS: string[];
|
|
12
|
-
export declare const GT_ATTRIBUTES_WITH_SUGAR: readonly ["$id", "$context", "$maxChars"];
|
|
13
|
-
export declare const GT_ATTRIBUTES: readonly ["id", "context", "maxChars", "$id", "$context", "$maxChars"];
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
export const DECLARE_VAR_FUNCTION = 'declareVar';
|
|
2
|
-
export const DECLARE_STATIC_FUNCTION = 'declareStatic';
|
|
3
|
-
export const MSG_REGISTRATION_FUNCTION = 'msg';
|
|
4
|
-
export const INLINE_TRANSLATION_HOOK = 'useGT';
|
|
5
|
-
export const INLINE_TRANSLATION_HOOK_ASYNC = 'getGT';
|
|
6
|
-
export const INLINE_MESSAGE_HOOK = 'useMessages';
|
|
7
|
-
export const INLINE_MESSAGE_HOOK_ASYNC = 'getMessages';
|
|
8
|
-
export const TRANSLATION_COMPONENT = 'T';
|
|
9
|
-
export const STATIC_COMPONENT = 'Static';
|
|
10
|
-
// GT translation functions
|
|
11
|
-
export const GT_TRANSLATION_FUNCS = [
|
|
12
|
-
INLINE_TRANSLATION_HOOK,
|
|
13
|
-
INLINE_TRANSLATION_HOOK_ASYNC,
|
|
14
|
-
INLINE_MESSAGE_HOOK,
|
|
15
|
-
INLINE_MESSAGE_HOOK_ASYNC,
|
|
16
|
-
MSG_REGISTRATION_FUNCTION,
|
|
17
|
-
DECLARE_VAR_FUNCTION,
|
|
18
|
-
DECLARE_STATIC_FUNCTION,
|
|
19
|
-
TRANSLATION_COMPONENT,
|
|
20
|
-
STATIC_COMPONENT,
|
|
21
|
-
'Var',
|
|
22
|
-
'DateTime',
|
|
23
|
-
'Currency',
|
|
24
|
-
'Num',
|
|
25
|
-
'Branch',
|
|
26
|
-
'Plural',
|
|
27
|
-
];
|
|
28
|
-
// Valid variable components
|
|
29
|
-
export const VARIABLE_COMPONENTS = [
|
|
30
|
-
'Var',
|
|
31
|
-
'DateTime',
|
|
32
|
-
'Currency',
|
|
33
|
-
'Num',
|
|
34
|
-
STATIC_COMPONENT,
|
|
35
|
-
];
|
|
36
|
-
export const GT_ATTRIBUTES_WITH_SUGAR = [
|
|
37
|
-
'$id',
|
|
38
|
-
'$context',
|
|
39
|
-
'$maxChars',
|
|
40
|
-
];
|
|
41
|
-
export const GT_ATTRIBUTES = [
|
|
42
|
-
'id',
|
|
43
|
-
'context',
|
|
44
|
-
'maxChars',
|
|
45
|
-
...GT_ATTRIBUTES_WITH_SUGAR,
|
|
46
|
-
];
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import * as t from '@babel/types';
|
|
2
|
-
/**
|
|
3
|
-
* Get the callee name from an expression: ... = useGT();
|
|
4
|
-
* Rule of thumb, only call on expressions with parentheses
|
|
5
|
-
*/
|
|
6
|
-
export declare function getCalleeNameFromExpression(expr: t.Expression): {
|
|
7
|
-
namespaceName: string | null;
|
|
8
|
-
functionName: string | null;
|
|
9
|
-
};
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import * as t from '@babel/types';
|
|
2
|
-
/**
|
|
3
|
-
* Get the callee name from an expression: ... = useGT();
|
|
4
|
-
* Rule of thumb, only call on expressions with parentheses
|
|
5
|
-
*/
|
|
6
|
-
export function getCalleeNameFromExpression(expr) {
|
|
7
|
-
// If its an await expression, unwrap it
|
|
8
|
-
if (t.isAwaitExpression(expr)) {
|
|
9
|
-
return getCalleeNameFromExpression(expr.argument);
|
|
10
|
-
}
|
|
11
|
-
// Check that this is a call expression eg: func()
|
|
12
|
-
if (!t.isCallExpression(expr)) {
|
|
13
|
-
return { namespaceName: null, functionName: null };
|
|
14
|
-
}
|
|
15
|
-
// Get the callee name
|
|
16
|
-
const calleeName = expr.callee;
|
|
17
|
-
// Simple case: ... = useGT();
|
|
18
|
-
if (t.isIdentifier(calleeName)) {
|
|
19
|
-
return { namespaceName: null, functionName: calleeName.name };
|
|
20
|
-
}
|
|
21
|
-
// Member expression: ... = GT.useGT();
|
|
22
|
-
if (t.isMemberExpression(calleeName)) {
|
|
23
|
-
if (t.isIdentifier(calleeName.object) &&
|
|
24
|
-
t.isIdentifier(calleeName.property)) {
|
|
25
|
-
return {
|
|
26
|
-
namespaceName: calleeName.object.name,
|
|
27
|
-
functionName: calleeName.property.name,
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return { namespaceName: null, functionName: null };
|
|
32
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { NodePath } from '@babel/traverse';
|
|
2
|
-
import { GTLibrary } from '../../../types/libraries.js';
|
|
3
|
-
/**
|
|
4
|
-
* Constructs tracking for gt related variables of interest
|
|
5
|
-
* inlineTranslationPaths: these are string-related translation functions
|
|
6
|
-
* translationComponentPaths: these are just <T> components
|
|
7
|
-
* importAliases: any other GT related imports
|
|
8
|
-
*/
|
|
9
|
-
export declare function getPathsAndAliases(ast: any, pkgs: GTLibrary[]): {
|
|
10
|
-
importAliases: Record<string, string>;
|
|
11
|
-
inlineTranslationPaths: Array<{
|
|
12
|
-
localName: string;
|
|
13
|
-
path: NodePath;
|
|
14
|
-
originalName: string;
|
|
15
|
-
}>;
|
|
16
|
-
translationComponentPaths: Array<{
|
|
17
|
-
localName: string;
|
|
18
|
-
path: NodePath;
|
|
19
|
-
originalName: string;
|
|
20
|
-
}>;
|
|
21
|
-
};
|