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,53 +0,0 @@
|
|
|
1
|
-
import fs from 'node:fs';
|
|
2
|
-
import path from 'node:path';
|
|
3
|
-
import { gt } from '../../utils/gt.js';
|
|
4
|
-
/**
|
|
5
|
-
* Extracts projectId, defaultLocale, and locales from a next.config.js file.
|
|
6
|
-
* @param {string} filePath - The path to the next.config.js file.
|
|
7
|
-
* @returns {object|null} - An object containing the extracted values or null if none found or incorrect types.
|
|
8
|
-
*/
|
|
9
|
-
export async function parseNextConfig(filePath) {
|
|
10
|
-
// Resolve the absolute path
|
|
11
|
-
const absoluteFilePath = path.resolve(filePath);
|
|
12
|
-
// Check if the file exists
|
|
13
|
-
if (!fs.existsSync(absoluteFilePath)) {
|
|
14
|
-
return {};
|
|
15
|
-
}
|
|
16
|
-
// Read the file content
|
|
17
|
-
const fileContent = await fs.promises.readFile(absoluteFilePath, 'utf8');
|
|
18
|
-
// Regular expressions to extract the values
|
|
19
|
-
const defaultLocaleRegex = /defaultLocale:\s*['"]([^'"]+)['"]/;
|
|
20
|
-
const projectIdRegex = /projectId:\s*['"]([^'"]+)['"]/;
|
|
21
|
-
const localesRegex = /locales:\s*\[([^\]]+)\]/;
|
|
22
|
-
// Extract the values
|
|
23
|
-
const defaultLocaleMatch = fileContent.match(defaultLocaleRegex);
|
|
24
|
-
const projectIdMatch = fileContent.match(projectIdRegex);
|
|
25
|
-
const localesMatch = fileContent.match(localesRegex);
|
|
26
|
-
const defaultLocale = defaultLocaleMatch && typeof defaultLocaleMatch[1] === 'string'
|
|
27
|
-
? defaultLocaleMatch[1]
|
|
28
|
-
: undefined;
|
|
29
|
-
const projectId = projectIdMatch && typeof projectIdMatch[1] === 'string'
|
|
30
|
-
? projectIdMatch[1]
|
|
31
|
-
: undefined;
|
|
32
|
-
const locales = localesMatch
|
|
33
|
-
? localesMatch[1]
|
|
34
|
-
.split(',')
|
|
35
|
-
.map((locale) => locale.trim().replace(/['"]/g, ''))
|
|
36
|
-
.filter((locale) => typeof locale === 'string')
|
|
37
|
-
: undefined;
|
|
38
|
-
// Ensure approvedLocales is an array of strings
|
|
39
|
-
const validLocales = locales && locales.every((locale) => gt.isValidLocale(locale))
|
|
40
|
-
? locales
|
|
41
|
-
: undefined;
|
|
42
|
-
// Return the extracted values if they pass type checks or return null
|
|
43
|
-
if (defaultLocale || projectId || validLocales) {
|
|
44
|
-
return {
|
|
45
|
-
...(defaultLocale && { defaultLocale }),
|
|
46
|
-
...(projectId && { projectId }),
|
|
47
|
-
...(validLocales && { locales: validLocales }),
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
return {};
|
|
52
|
-
}
|
|
53
|
-
}
|
package/dist/next/jsx/utils.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import * as t from '@babel/types';
|
|
2
|
-
import { NodePath } from '@babel/traverse';
|
|
3
|
-
export declare function isHtmlElement(element: t.JSXOpeningElement): boolean;
|
|
4
|
-
export declare function isBodyElement(element: t.JSXOpeningElement): boolean;
|
|
5
|
-
export declare function hasGTProviderChild(element: t.JSXElement): boolean;
|
|
6
|
-
export declare function addDynamicLangAttribute(element: t.JSXOpeningElement): void;
|
|
7
|
-
export declare function makeParentFunctionAsync(path: NodePath): boolean;
|
package/dist/next/jsx/utils.js
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import * as t from '@babel/types';
|
|
2
|
-
// Helper function to check if is the <html> fragment
|
|
3
|
-
export function isHtmlElement(element) {
|
|
4
|
-
return (t.isJSXIdentifier(element.name) &&
|
|
5
|
-
element.name.name.toLowerCase() === 'html');
|
|
6
|
-
}
|
|
7
|
-
// Helper function to check if is the <body> fragment
|
|
8
|
-
export function isBodyElement(element) {
|
|
9
|
-
return (t.isJSXIdentifier(element.name) &&
|
|
10
|
-
element.name.name.toLowerCase() === 'body');
|
|
11
|
-
}
|
|
12
|
-
// Helper function to check if the <body> element has a <GTProvider> child
|
|
13
|
-
export function hasGTProviderChild(element) {
|
|
14
|
-
return element.children.some((child) => t.isJSXElement(child) &&
|
|
15
|
-
t.isJSXIdentifier(child.openingElement.name) &&
|
|
16
|
-
child.openingElement.name.name === 'GTProvider');
|
|
17
|
-
}
|
|
18
|
-
export function addDynamicLangAttribute(element) {
|
|
19
|
-
// Remove existing lang attribute if present
|
|
20
|
-
const langAttrIndex = element.attributes.findIndex((attr) => t.isJSXAttribute(attr) &&
|
|
21
|
-
t.isJSXIdentifier(attr.name) &&
|
|
22
|
-
attr.name.name === 'lang');
|
|
23
|
-
if (langAttrIndex !== -1) {
|
|
24
|
-
element.attributes.splice(langAttrIndex, 1);
|
|
25
|
-
}
|
|
26
|
-
// Add lang={await getLocale()} attribute
|
|
27
|
-
element.attributes.push(t.jsxAttribute(t.jsxIdentifier('lang'), t.jsxExpressionContainer(t.awaitExpression(t.callExpression(t.identifier('getLocale'), [])))));
|
|
28
|
-
}
|
|
29
|
-
export function makeParentFunctionAsync(path) {
|
|
30
|
-
const functionParent = path.getFunctionParent();
|
|
31
|
-
if (!functionParent)
|
|
32
|
-
return false;
|
|
33
|
-
const node = functionParent.node;
|
|
34
|
-
if ((t.isFunctionDeclaration(node) ||
|
|
35
|
-
t.isFunctionExpression(node) ||
|
|
36
|
-
t.isArrowFunctionExpression(node)) &&
|
|
37
|
-
!node.async) {
|
|
38
|
-
node.async = true;
|
|
39
|
-
return true;
|
|
40
|
-
}
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
@@ -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,15 +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 BRANCH_COMPONENT = "Branch";
|
|
11
|
-
export declare const GT_TRANSLATION_FUNCS: string[];
|
|
12
|
-
export declare const VARIABLE_COMPONENTS: string[];
|
|
13
|
-
export declare const GT_ATTRIBUTES_WITH_SUGAR: readonly ["$id", "$context", "$maxChars"];
|
|
14
|
-
export declare const GT_ATTRIBUTES: readonly ["id", "context", "maxChars", "$id", "$context", "$maxChars"];
|
|
15
|
-
export declare const DATA_ATTR_PREFIX: "data-";
|
|
@@ -1,49 +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
|
-
export const BRANCH_COMPONENT = 'Branch';
|
|
11
|
-
// GT translation functions
|
|
12
|
-
export const GT_TRANSLATION_FUNCS = [
|
|
13
|
-
INLINE_TRANSLATION_HOOK,
|
|
14
|
-
INLINE_TRANSLATION_HOOK_ASYNC,
|
|
15
|
-
INLINE_MESSAGE_HOOK,
|
|
16
|
-
INLINE_MESSAGE_HOOK_ASYNC,
|
|
17
|
-
MSG_REGISTRATION_FUNCTION,
|
|
18
|
-
DECLARE_VAR_FUNCTION,
|
|
19
|
-
DECLARE_STATIC_FUNCTION,
|
|
20
|
-
TRANSLATION_COMPONENT,
|
|
21
|
-
STATIC_COMPONENT,
|
|
22
|
-
'Var',
|
|
23
|
-
'DateTime',
|
|
24
|
-
'Currency',
|
|
25
|
-
'Num',
|
|
26
|
-
BRANCH_COMPONENT,
|
|
27
|
-
'Plural',
|
|
28
|
-
];
|
|
29
|
-
// Valid variable components
|
|
30
|
-
export const VARIABLE_COMPONENTS = [
|
|
31
|
-
'Var',
|
|
32
|
-
'DateTime',
|
|
33
|
-
'Currency',
|
|
34
|
-
'Num',
|
|
35
|
-
STATIC_COMPONENT,
|
|
36
|
-
];
|
|
37
|
-
export const GT_ATTRIBUTES_WITH_SUGAR = [
|
|
38
|
-
'$id',
|
|
39
|
-
'$context',
|
|
40
|
-
'$maxChars',
|
|
41
|
-
];
|
|
42
|
-
export const GT_ATTRIBUTES = [
|
|
43
|
-
'id',
|
|
44
|
-
'context',
|
|
45
|
-
'maxChars',
|
|
46
|
-
...GT_ATTRIBUTES_WITH_SUGAR,
|
|
47
|
-
];
|
|
48
|
-
// Data attribute prefix injected by build tools
|
|
49
|
-
export const DATA_ATTR_PREFIX = 'data-';
|
|
@@ -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
|
-
};
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import traverseModule from '@babel/traverse';
|
|
2
|
-
import { GT_TRANSLATION_FUNCS, INLINE_TRANSLATION_HOOK, INLINE_TRANSLATION_HOOK_ASYNC, INLINE_MESSAGE_HOOK, INLINE_MESSAGE_HOOK_ASYNC, MSG_REGISTRATION_FUNCTION, TRANSLATION_COMPONENT, } from '../../jsx/utils/constants.js';
|
|
3
|
-
import { extractImportName } from './parseAst.js';
|
|
4
|
-
// Handle CommonJS/ESM interop
|
|
5
|
-
const traverse = traverseModule.default || traverseModule;
|
|
6
|
-
/**
|
|
7
|
-
* Constructs tracking for gt related variables of interest
|
|
8
|
-
* inlineTranslationPaths: these are string-related translation functions
|
|
9
|
-
* translationComponentPaths: these are just <T> components
|
|
10
|
-
* importAliases: any other GT related imports
|
|
11
|
-
*/
|
|
12
|
-
export function getPathsAndAliases(ast, pkgs) {
|
|
13
|
-
// First pass: collect imports and process translation functions
|
|
14
|
-
const importAliases = {};
|
|
15
|
-
const inlineTranslationPaths = [];
|
|
16
|
-
const translationComponentPaths = [];
|
|
17
|
-
traverse(ast, {
|
|
18
|
-
ImportDeclaration(path) {
|
|
19
|
-
if (pkgs.some((pkg) => path.node.source.value.startsWith(pkg))) {
|
|
20
|
-
const importName = extractImportName(path.node, pkgs, GT_TRANSLATION_FUNCS);
|
|
21
|
-
for (const name of importName) {
|
|
22
|
-
if (name.original === INLINE_TRANSLATION_HOOK ||
|
|
23
|
-
name.original === INLINE_TRANSLATION_HOOK_ASYNC ||
|
|
24
|
-
name.original === INLINE_MESSAGE_HOOK ||
|
|
25
|
-
name.original === INLINE_MESSAGE_HOOK_ASYNC ||
|
|
26
|
-
name.original === MSG_REGISTRATION_FUNCTION) {
|
|
27
|
-
inlineTranslationPaths.push({
|
|
28
|
-
localName: name.local,
|
|
29
|
-
path,
|
|
30
|
-
originalName: name.original,
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
else if (name.original === TRANSLATION_COMPONENT) {
|
|
34
|
-
translationComponentPaths.push({
|
|
35
|
-
localName: name.local,
|
|
36
|
-
path,
|
|
37
|
-
originalName: name.original,
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
importAliases[name.local] = name.original;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
VariableDeclarator(path) {
|
|
47
|
-
// Check if the init is a require call
|
|
48
|
-
if (path.node.init?.type === 'CallExpression' &&
|
|
49
|
-
path.node.init.callee.type === 'Identifier' &&
|
|
50
|
-
path.node.init.callee.name === 'require') {
|
|
51
|
-
// Check if it's requiring our package
|
|
52
|
-
const args = path.node.init.arguments;
|
|
53
|
-
if (args.length === 1 &&
|
|
54
|
-
args[0].type === 'StringLiteral' &&
|
|
55
|
-
pkgs.some((pkg) => args[0].value.startsWith(pkg))) {
|
|
56
|
-
const parentPath = path.parentPath;
|
|
57
|
-
if (parentPath.isVariableDeclaration()) {
|
|
58
|
-
const importName = extractImportName(parentPath.node, pkgs, GT_TRANSLATION_FUNCS);
|
|
59
|
-
for (const name of importName) {
|
|
60
|
-
if (name.original === INLINE_TRANSLATION_HOOK ||
|
|
61
|
-
name.original === INLINE_TRANSLATION_HOOK_ASYNC ||
|
|
62
|
-
name.original === INLINE_MESSAGE_HOOK ||
|
|
63
|
-
name.original === INLINE_MESSAGE_HOOK_ASYNC) {
|
|
64
|
-
inlineTranslationPaths.push({
|
|
65
|
-
localName: name.local,
|
|
66
|
-
path: parentPath,
|
|
67
|
-
originalName: name.original,
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
else if (name.original === TRANSLATION_COMPONENT) {
|
|
71
|
-
translationComponentPaths.push({
|
|
72
|
-
localName: name.local,
|
|
73
|
-
path: parentPath,
|
|
74
|
-
originalName: name.original,
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
importAliases[name.local] = name.original;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
},
|
|
85
|
-
});
|
|
86
|
-
return {
|
|
87
|
-
importAliases,
|
|
88
|
-
inlineTranslationPaths,
|
|
89
|
-
translationComponentPaths,
|
|
90
|
-
};
|
|
91
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import * as t from '@babel/types';
|
|
2
|
-
/**
|
|
3
|
-
* Given an expression, return true if it is a number literal
|
|
4
|
-
* @param expr - The expression to check
|
|
5
|
-
* @returns True if the expression is a number literal, false otherwise
|
|
6
|
-
*/
|
|
7
|
-
export declare function isNumberLiteral(expr: t.Expression): boolean;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import * as t from '@babel/types';
|
|
2
|
-
/**
|
|
3
|
-
* Given an expression, return true if it is a number literal
|
|
4
|
-
* @param expr - The expression to check
|
|
5
|
-
* @returns True if the expression is a number literal, false otherwise
|
|
6
|
-
*/
|
|
7
|
-
export function isNumberLiteral(expr) {
|
|
8
|
-
if (t.isUnaryExpression(expr)) {
|
|
9
|
-
return (isNumberLiteral(expr.argument) &&
|
|
10
|
-
(expr.operator === '-' || expr.operator === '+'));
|
|
11
|
-
}
|
|
12
|
-
return t.isNumericLiteral(expr);
|
|
13
|
-
}
|