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
package/README.md
CHANGED
|
@@ -14,12 +14,21 @@
|
|
|
14
14
|
|
|
15
15
|
# gtx-cli
|
|
16
16
|
|
|
17
|
+
> **Deprecated:** This package has been renamed to [`gt`](https://www.npmjs.com/package/gt). Please use `gt` instead. This package is a backward-compatibility wrapper and will continue to work, but all future development happens in `gt`.
|
|
18
|
+
|
|
17
19
|
Command-line tool for General Translation's i18n platform.
|
|
18
20
|
|
|
21
|
+
## Migration
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npm uninstall gtx-cli
|
|
25
|
+
npm install gt --save-dev
|
|
26
|
+
```
|
|
27
|
+
|
|
19
28
|
## Installation
|
|
20
29
|
|
|
21
30
|
```bash
|
|
22
|
-
npm install
|
|
31
|
+
npm install gt --save-dev
|
|
23
32
|
```
|
|
24
33
|
|
|
25
34
|
## Quick Start
|
|
@@ -27,13 +36,13 @@ npm install gtx-cli --save-dev
|
|
|
27
36
|
Set up your project:
|
|
28
37
|
|
|
29
38
|
```bash
|
|
30
|
-
npx
|
|
39
|
+
npx gt init
|
|
31
40
|
```
|
|
32
41
|
|
|
33
42
|
Generate translations:
|
|
34
43
|
|
|
35
44
|
```bash
|
|
36
|
-
npx
|
|
45
|
+
npx gt translate
|
|
37
46
|
```
|
|
38
47
|
|
|
39
48
|
See the [full documentation](https://generaltranslation.com/docs/cli) for guides and API reference.
|
package/dist/bin/bin-entry.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// Entry point for binaries
|
|
2
|
-
import { main } from '
|
|
2
|
+
import { main } from 'gt';
|
|
3
3
|
import dotenv from 'dotenv';
|
|
4
4
|
import { program } from 'commander';
|
|
5
5
|
dotenv.config({ path: '.env' });
|
|
6
6
|
dotenv.config({ path: '.env.local', override: true });
|
|
7
7
|
dotenv.config({ path: '.env.production', override: true });
|
|
8
8
|
main(program);
|
|
9
|
+
program.name('gtx-cli');
|
|
9
10
|
program.parse();
|
|
@@ -1,9 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const DEFAULT_SRC_PATTERNS: string[];
|
|
3
|
-
/**
|
|
4
|
-
* Generates settings from any
|
|
5
|
-
* @param flags - The CLI flags to generate settings from
|
|
6
|
-
* @param cwd - The current working directory
|
|
7
|
-
* @returns The generated settings
|
|
8
|
-
*/
|
|
9
|
-
export declare function generateSettings(flags: Record<string, any>, cwd?: string): Promise<Settings>;
|
|
1
|
+
export * from 'gt/config/generateSettings';
|
|
@@ -1,214 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { loadConfig } from '../fs/config/loadConfig.js';
|
|
3
|
-
import { defaultBaseUrl, libraryDefaultLocale, } from 'generaltranslation/internal';
|
|
4
|
-
import fs from 'node:fs';
|
|
5
|
-
import { createOrUpdateConfig } from '../fs/config/setupConfig.js';
|
|
6
|
-
import { resolveFiles } from '../fs/config/parseFilesConfig.js';
|
|
7
|
-
import { validateSettings } from './validateSettings.js';
|
|
8
|
-
import { DEFAULT_GIT_REMOTE_NAME, GT_DASHBOARD_URL, } from '../utils/constants.js';
|
|
9
|
-
import { resolveProjectId } from '../fs/utils.js';
|
|
10
|
-
import path from 'node:path';
|
|
11
|
-
import chalk from 'chalk';
|
|
12
|
-
import { resolveConfig } from './resolveConfig.js';
|
|
13
|
-
import { gt } from '../utils/gt.js';
|
|
14
|
-
import { generatePreset } from './optionPresets.js';
|
|
15
|
-
export const DEFAULT_SRC_PATTERNS = [
|
|
16
|
-
'src/**/*.{js,jsx,ts,tsx}',
|
|
17
|
-
'app/**/*.{js,jsx,ts,tsx}',
|
|
18
|
-
'pages/**/*.{js,jsx,ts,tsx}',
|
|
19
|
-
'components/**/*.{js,jsx,ts,tsx}',
|
|
20
|
-
];
|
|
21
|
-
/**
|
|
22
|
-
* Generates settings from any
|
|
23
|
-
* @param flags - The CLI flags to generate settings from
|
|
24
|
-
* @param cwd - The current working directory
|
|
25
|
-
* @returns The generated settings
|
|
26
|
-
*/
|
|
27
|
-
export async function generateSettings(flags, cwd = process.cwd()) {
|
|
28
|
-
// Load config file
|
|
29
|
-
let gtConfig = {};
|
|
30
|
-
if (flags.config && !flags.config.endsWith('.json')) {
|
|
31
|
-
flags.config = `${flags.config}.json`;
|
|
32
|
-
}
|
|
33
|
-
if (flags.config) {
|
|
34
|
-
gtConfig = loadConfig(flags.config);
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
const config = resolveConfig(cwd);
|
|
38
|
-
if (config) {
|
|
39
|
-
gtConfig = config.config;
|
|
40
|
-
flags.config = config.path;
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
gtConfig = {};
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
// Warn if apiKey is present in gt.config.json
|
|
47
|
-
if (gtConfig.apiKey) {
|
|
48
|
-
warnApiKeyInConfig(flags.config);
|
|
49
|
-
exitSync(1);
|
|
50
|
-
}
|
|
51
|
-
const projectIdEnv = resolveProjectId();
|
|
52
|
-
// Resolve mismatched projectIds
|
|
53
|
-
if (gtConfig.projectId &&
|
|
54
|
-
flags.projectId &&
|
|
55
|
-
gtConfig.projectId !== flags.projectId) {
|
|
56
|
-
logErrorAndExit(`Project ID mismatch between ${chalk.green(gtConfig.projectId)} and ${chalk.green(flags.projectId)}! Please use the same projectId in all configs.`);
|
|
57
|
-
}
|
|
58
|
-
else if (gtConfig.projectId &&
|
|
59
|
-
projectIdEnv &&
|
|
60
|
-
gtConfig.projectId !== projectIdEnv) {
|
|
61
|
-
logErrorAndExit(`Project ID mismatch between ${chalk.green(gtConfig.projectId)} and ${chalk.green(projectIdEnv)}! Please use the same projectId in all configs.`);
|
|
62
|
-
}
|
|
63
|
-
if (flags.options?.docsUrlPattern &&
|
|
64
|
-
!flags.options?.docsUrlPattern.includes('[locale]')) {
|
|
65
|
-
logErrorAndExit('Failed to localize static urls: URL pattern must include "[locale]" to denote the location of the locale');
|
|
66
|
-
}
|
|
67
|
-
if (flags.options?.docsImportPattern &&
|
|
68
|
-
!flags.options?.docsImportPattern.includes('[locale]')) {
|
|
69
|
-
logErrorAndExit('Failed to localize static imports: Import pattern must include "[locale]" to denote the location of the locale');
|
|
70
|
-
}
|
|
71
|
-
if (flags.options?.copyFiles) {
|
|
72
|
-
for (const file of flags.options.copyFiles) {
|
|
73
|
-
if (!file.includes('[locale]')) {
|
|
74
|
-
logErrorAndExit('Failed to copy files: File path must include "[locale]" to denote the location of the locale');
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
// merge options
|
|
79
|
-
const mergedOptions = { ...gtConfig, ...flags };
|
|
80
|
-
// Add defaultLocale if not provided
|
|
81
|
-
mergedOptions.defaultLocale =
|
|
82
|
-
mergedOptions.defaultLocale || libraryDefaultLocale;
|
|
83
|
-
// merge locales
|
|
84
|
-
mergedOptions.locales = Array.from(new Set([...(gtConfig.locales || []), ...(flags.locales || [])]));
|
|
85
|
-
// Separate defaultLocale from locales
|
|
86
|
-
mergedOptions.locales = mergedOptions.locales.filter((locale) => locale !== mergedOptions.defaultLocale);
|
|
87
|
-
// Add apiKey if not provided
|
|
88
|
-
mergedOptions.apiKey = mergedOptions.apiKey || process.env.GT_API_KEY;
|
|
89
|
-
// Add projectId if not provided
|
|
90
|
-
mergedOptions.projectId = mergedOptions.projectId || resolveProjectId();
|
|
91
|
-
// Add baseUrl if not provided
|
|
92
|
-
mergedOptions.baseUrl = mergedOptions.baseUrl || defaultBaseUrl;
|
|
93
|
-
// Add dashboardUrl if not provided
|
|
94
|
-
mergedOptions.dashboardUrl = mergedOptions.dashboardUrl || GT_DASHBOARD_URL;
|
|
95
|
-
// Add locales if not provided
|
|
96
|
-
mergedOptions.locales = mergedOptions.locales || [];
|
|
97
|
-
// Add default config file name if not provided
|
|
98
|
-
mergedOptions.config =
|
|
99
|
-
mergedOptions.config || path.join(cwd, 'gt.config.json');
|
|
100
|
-
// Display projectId if present
|
|
101
|
-
if (mergedOptions.projectId)
|
|
102
|
-
displayProjectId(mergedOptions.projectId);
|
|
103
|
-
// Add stageTranslations if not provided
|
|
104
|
-
// For human review, always stage the project
|
|
105
|
-
mergedOptions.stageTranslations = mergedOptions.stageTranslations ?? false;
|
|
106
|
-
// Add publish if not provided
|
|
107
|
-
mergedOptions.publish = (gtConfig.publish || flags.publish) ?? false;
|
|
108
|
-
// Populate src if not provided
|
|
109
|
-
mergedOptions.src = mergedOptions.src || DEFAULT_SRC_PATTERNS;
|
|
110
|
-
// Resolve all glob patterns in the files object
|
|
111
|
-
const compositePatterns = [
|
|
112
|
-
...Object.entries(mergedOptions.options?.jsonSchema || {}),
|
|
113
|
-
]
|
|
114
|
-
.filter(([, schema]) => schema.composite)
|
|
115
|
-
.map(([key]) => key);
|
|
116
|
-
mergedOptions.files = mergedOptions.files
|
|
117
|
-
? resolveFiles(mergedOptions.files, mergedOptions.defaultLocale, mergedOptions.locales, cwd, compositePatterns)
|
|
118
|
-
: { resolvedPaths: {}, placeholderPaths: {}, transformPaths: {} };
|
|
119
|
-
mergedOptions.options = {
|
|
120
|
-
...(mergedOptions.options || {}),
|
|
121
|
-
mintlify: {
|
|
122
|
-
...(mergedOptions.options?.mintlify || {}),
|
|
123
|
-
inferTitleFromFilename: gtConfig.options?.mintlify?.inferTitleFromFilename ||
|
|
124
|
-
mergedOptions.options?.mintlify?.inferTitleFromFilename,
|
|
125
|
-
},
|
|
126
|
-
experimentalLocalizeStaticImports: gtConfig.options?.experimentalLocalizeStaticImports ||
|
|
127
|
-
flags.experimentalLocalizeStaticImports,
|
|
128
|
-
experimentalLocalizeStaticUrls: gtConfig.options?.experimentalLocalizeStaticUrls ||
|
|
129
|
-
flags.experimentalLocalizeStaticUrls,
|
|
130
|
-
experimentalLocalizeRelativeAssets: gtConfig.options?.experimentalLocalizeRelativeAssets ||
|
|
131
|
-
flags.experimentalLocalizeRelativeAssets,
|
|
132
|
-
experimentalHideDefaultLocale: gtConfig.options?.experimentalHideDefaultLocale ||
|
|
133
|
-
flags.experimentalHideDefaultLocale,
|
|
134
|
-
experimentalFlattenJsonFiles: gtConfig.options?.experimentalFlattenJsonFiles ||
|
|
135
|
-
flags.experimentalFlattenJsonFiles,
|
|
136
|
-
experimentalClearLocaleDirs: gtConfig.options?.experimentalClearLocaleDirs ||
|
|
137
|
-
flags.experimentalClearLocaleDirs,
|
|
138
|
-
clearLocaleDirsExclude: gtConfig.options?.clearLocaleDirsExclude || flags.clearLocaleDirsExclude,
|
|
139
|
-
};
|
|
140
|
-
// Add additional options if provided
|
|
141
|
-
if (mergedOptions.options) {
|
|
142
|
-
if (mergedOptions.options.jsonSchema) {
|
|
143
|
-
for (const fileGlob of Object.keys(mergedOptions.options.jsonSchema)) {
|
|
144
|
-
const jsonSchema = mergedOptions.options.jsonSchema[fileGlob];
|
|
145
|
-
if (jsonSchema.preset) {
|
|
146
|
-
mergedOptions.options.jsonSchema[fileGlob] = {
|
|
147
|
-
...generatePreset(jsonSchema.preset, 'json'),
|
|
148
|
-
...jsonSchema,
|
|
149
|
-
};
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
if (mergedOptions.options.yamlSchema) {
|
|
154
|
-
for (const fileGlob of Object.keys(mergedOptions.options.yamlSchema)) {
|
|
155
|
-
const yamlSchema = mergedOptions.options.yamlSchema[fileGlob];
|
|
156
|
-
if (yamlSchema.preset) {
|
|
157
|
-
mergedOptions.options.yamlSchema[fileGlob] = {
|
|
158
|
-
...generatePreset(yamlSchema.preset, 'yaml'),
|
|
159
|
-
...yamlSchema,
|
|
160
|
-
};
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
// Add parsing options if not provided
|
|
166
|
-
mergedOptions.parsingOptions = mergedOptions.parsingOptions || {};
|
|
167
|
-
mergedOptions.parsingOptions.conditionNames = mergedOptions.parsingOptions
|
|
168
|
-
.conditionNames || [
|
|
169
|
-
'development',
|
|
170
|
-
'browser',
|
|
171
|
-
'module',
|
|
172
|
-
'import',
|
|
173
|
-
'require',
|
|
174
|
-
'default',
|
|
175
|
-
];
|
|
176
|
-
// Add branch options if not provided
|
|
177
|
-
const branchOptions = mergedOptions.branchOptions || {};
|
|
178
|
-
// If --branch is set, enable branching
|
|
179
|
-
branchOptions.enabled =
|
|
180
|
-
flags.enableBranching ??
|
|
181
|
-
gtConfig.branchOptions?.enabled ??
|
|
182
|
-
(flags.branch ? true : false);
|
|
183
|
-
branchOptions.currentBranch =
|
|
184
|
-
flags.branch ?? gtConfig.branchOptions?.currentBranch ?? undefined;
|
|
185
|
-
branchOptions.autoDetectBranches = flags.disableBranchDetection
|
|
186
|
-
? false
|
|
187
|
-
: (gtConfig.branchOptions?.autoDetectBranches ?? true);
|
|
188
|
-
branchOptions.remoteName =
|
|
189
|
-
flags.remoteName ??
|
|
190
|
-
gtConfig.branchOptions?.remoteName ??
|
|
191
|
-
DEFAULT_GIT_REMOTE_NAME;
|
|
192
|
-
mergedOptions.branchOptions = branchOptions;
|
|
193
|
-
// if there's no existing config file, creates one
|
|
194
|
-
// does not include the API key to avoid exposing it
|
|
195
|
-
if (!fs.existsSync(mergedOptions.config)) {
|
|
196
|
-
await createOrUpdateConfig(mergedOptions.config, {
|
|
197
|
-
projectId: mergedOptions.projectId,
|
|
198
|
-
defaultLocale: mergedOptions.defaultLocale,
|
|
199
|
-
locales: mergedOptions.locales?.length > 0 ? mergedOptions.locales : undefined,
|
|
200
|
-
framework: mergedOptions.framework,
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
mergedOptions.configDirectory = path.join(cwd, '.gt');
|
|
204
|
-
validateSettings(mergedOptions);
|
|
205
|
-
// Set up GT instance
|
|
206
|
-
gt.setConfig({
|
|
207
|
-
projectId: mergedOptions.projectId,
|
|
208
|
-
apiKey: mergedOptions.apiKey,
|
|
209
|
-
baseUrl: mergedOptions.baseUrl,
|
|
210
|
-
sourceLocale: mergedOptions.defaultLocale,
|
|
211
|
-
customMapping: mergedOptions.customMapping,
|
|
212
|
-
});
|
|
213
|
-
return mergedOptions;
|
|
214
|
-
}
|
|
1
|
+
export * from 'gt/config/generateSettings';
|
|
@@ -1,33 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import path from 'node:path';
|
|
3
|
-
import { loadConfig } from '../fs/config/loadConfig.js';
|
|
4
|
-
export function resolveConfig(cwd) {
|
|
5
|
-
const configFilepath = 'gt.config.json';
|
|
6
|
-
if (fs.existsSync(path.join(cwd, configFilepath))) {
|
|
7
|
-
return {
|
|
8
|
-
path: path.join(cwd, configFilepath),
|
|
9
|
-
config: loadConfig(path.join(cwd, configFilepath)),
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
if (fs.existsSync(path.join(cwd, 'src/gt.config.json'))) {
|
|
13
|
-
return {
|
|
14
|
-
path: path.join(cwd, 'src/gt.config.json'),
|
|
15
|
-
config: loadConfig(path.join(cwd, 'src/gt.config.json')),
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
// Support config under .gt for parity with .locadex
|
|
19
|
-
if (fs.existsSync(path.join(cwd, '.gt/gt.config.json'))) {
|
|
20
|
-
return {
|
|
21
|
-
path: path.join(cwd, '.gt/gt.config.json'),
|
|
22
|
-
config: loadConfig(path.join(cwd, '.gt/gt.config.json')),
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
// Backward compatibility: support legacy .locadex directory
|
|
26
|
-
if (fs.existsSync(path.join(cwd, '.locadex/gt.config.json'))) {
|
|
27
|
-
return {
|
|
28
|
-
path: path.join(cwd, '.locadex/gt.config.json'),
|
|
29
|
-
config: loadConfig(path.join(cwd, '.locadex/gt.config.json')),
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
return null;
|
|
33
|
-
}
|
|
1
|
+
export * from 'gt/config/resolveConfig';
|
|
@@ -1,17 +1 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
* Checks if the config file exists.
|
|
4
|
-
* If yes, make sure make sure projectId is correct
|
|
5
|
-
* If not, creates a new JSON file at the given filepath and writes the provided config object to it.
|
|
6
|
-
* @param {string} configFilepath - The path to the config file.
|
|
7
|
-
* @param {Record<string, any>} configObject - The config object to write if the file does not exist.
|
|
8
|
-
*/
|
|
9
|
-
export declare function createOrUpdateConfig(configFilepath: string, options: {
|
|
10
|
-
projectId?: string;
|
|
11
|
-
defaultLocale?: string;
|
|
12
|
-
locales?: string[];
|
|
13
|
-
files?: FilesOptions;
|
|
14
|
-
framework?: SupportedFrameworks;
|
|
15
|
-
baseUrl?: string;
|
|
16
|
-
publish?: boolean;
|
|
17
|
-
}): Promise<string>;
|
|
1
|
+
export * from 'gt/fs/config/setupConfig';
|
|
@@ -1,50 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { displayCreatedConfigFile } from '../../console/logging.js';
|
|
3
|
-
import { logger } from '../../console/logger.js';
|
|
4
|
-
import { GT_CONFIG_SCHEMA_URL } from '../../utils/constants.js';
|
|
5
|
-
/**
|
|
6
|
-
* Checks if the config file exists.
|
|
7
|
-
* If yes, make sure make sure projectId is correct
|
|
8
|
-
* If not, creates a new JSON file at the given filepath and writes the provided config object to it.
|
|
9
|
-
* @param {string} configFilepath - The path to the config file.
|
|
10
|
-
* @param {Record<string, any>} configObject - The config object to write if the file does not exist.
|
|
11
|
-
*/
|
|
12
|
-
export async function createOrUpdateConfig(configFilepath, options) {
|
|
13
|
-
// Filter out empty string values from the config object
|
|
14
|
-
const newContent = {
|
|
15
|
-
...(options.projectId && { projectId: options.projectId }),
|
|
16
|
-
...(options.defaultLocale && { defaultLocale: options.defaultLocale }),
|
|
17
|
-
...(options.files && { files: options.files }),
|
|
18
|
-
...(options.framework && { framework: options.framework }),
|
|
19
|
-
...(options.baseUrl && { baseUrl: options.baseUrl }),
|
|
20
|
-
...(options.publish && { publish: options.publish }),
|
|
21
|
-
};
|
|
22
|
-
try {
|
|
23
|
-
// if file exists
|
|
24
|
-
let oldContent = {};
|
|
25
|
-
if (fs.existsSync(configFilepath)) {
|
|
26
|
-
oldContent = JSON.parse(await fs.promises.readFile(configFilepath, 'utf-8'));
|
|
27
|
-
}
|
|
28
|
-
// merge old and new content
|
|
29
|
-
const mergedContent = {
|
|
30
|
-
$schema: GT_CONFIG_SCHEMA_URL,
|
|
31
|
-
...oldContent,
|
|
32
|
-
...newContent,
|
|
33
|
-
};
|
|
34
|
-
// Add locales to mergedContent if they exist
|
|
35
|
-
if (options.locales) {
|
|
36
|
-
mergedContent.locales = mergedContent.locales
|
|
37
|
-
? [...new Set([...mergedContent.locales, ...options.locales])]
|
|
38
|
-
: options.locales;
|
|
39
|
-
}
|
|
40
|
-
// write to file
|
|
41
|
-
const mergedJsonContent = JSON.stringify(mergedContent, null, 2);
|
|
42
|
-
await fs.promises.writeFile(configFilepath, mergedJsonContent, 'utf-8');
|
|
43
|
-
// show update in console
|
|
44
|
-
displayCreatedConfigFile(configFilepath);
|
|
45
|
-
}
|
|
46
|
-
catch (error) {
|
|
47
|
-
logger.error(`An error occurred while updating ${configFilepath}: ${error}`);
|
|
48
|
-
}
|
|
49
|
-
return configFilepath;
|
|
50
|
-
}
|
|
1
|
+
export * from 'gt/fs/config/setupConfig';
|
package/dist/fs/matchFiles.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export * from 'gt/fs/matchFiles';
|
package/dist/fs/matchFiles.js
CHANGED
package/dist/functions.d.ts
CHANGED
|
@@ -1,7 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* This file serves as an entrypoint for programmatically invoking CLI commands.
|
|
3
|
-
* Import from 'gtx-cli/functions' to access these APIs.
|
|
4
|
-
*/
|
|
5
|
-
export { getValidateJson } from './translation/validate.js';
|
|
6
|
-
export type { ValidationResult, ValidationMessage, ValidationLevel, } from './translation/validate.js';
|
|
7
|
-
export { Libraries, GTLibrary, InlineLibrary, ReactLibrary, GT_LIBRARIES, INLINE_LIBRARIES, REACT_LIBRARIES, GT_LIBRARIES_UPSTREAM, } from './types/libraries.js';
|
|
1
|
+
export * from 'gt/functions';
|
package/dist/functions.js
CHANGED
|
@@ -1,6 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* This file serves as an entrypoint for programmatically invoking CLI commands.
|
|
3
|
-
* Import from 'gtx-cli/functions' to access these APIs.
|
|
4
|
-
*/
|
|
5
|
-
export { getValidateJson } from './translation/validate.js';
|
|
6
|
-
export { Libraries, GT_LIBRARIES, INLINE_LIBRARIES, REACT_LIBRARIES, GT_LIBRARIES_UPSTREAM, } from './types/libraries.js';
|
|
1
|
+
export * from 'gt/functions';
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,27 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { NextCLI } from './cli/next.js';
|
|
3
|
-
import { ReactCLI } from './cli/react.js';
|
|
4
|
-
import { determineLibrary } from './fs/determineFramework.js';
|
|
5
|
-
import { NodeCLI } from './cli/node.js';
|
|
6
|
-
import { Libraries } from './types/libraries.js';
|
|
7
|
-
export function main(program) {
|
|
8
|
-
program.name('gtx-cli');
|
|
9
|
-
const { library, additionalModules } = determineLibrary();
|
|
10
|
-
let cli;
|
|
11
|
-
if (library === Libraries.GT_NEXT) {
|
|
12
|
-
cli = new NextCLI(program, library, additionalModules);
|
|
13
|
-
}
|
|
14
|
-
else if (library === Libraries.GT_REACT ||
|
|
15
|
-
library === Libraries.GT_REACT_NATIVE) {
|
|
16
|
-
cli = new ReactCLI(program, library, additionalModules);
|
|
17
|
-
}
|
|
18
|
-
else if (library === Libraries.GT_NODE) {
|
|
19
|
-
cli = new NodeCLI(program, library, additionalModules);
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
cli = new BaseCLI(program, library, additionalModules);
|
|
23
|
-
}
|
|
24
|
-
cli.init();
|
|
25
|
-
cli.execute();
|
|
26
|
-
}
|
|
27
|
-
export { BaseCLI };
|
|
1
|
+
export * from 'gt';
|
package/dist/main.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
import { main } from './index.js';
|
|
2
|
+
import { main } from 'gt';
|
|
4
3
|
import dotenv from 'dotenv';
|
|
5
4
|
import { program } from 'commander';
|
|
6
5
|
dotenv.config({ path: '.env' });
|
|
7
6
|
dotenv.config({ path: '.env.local', override: true });
|
|
8
7
|
dotenv.config({ path: '.env.production', override: true });
|
|
9
8
|
main(program);
|
|
9
|
+
program.name('gtx-cli');
|
|
10
10
|
program.parse();
|
|
@@ -1,7 +1 @@
|
|
|
1
|
-
export
|
|
2
|
-
type?: string;
|
|
3
|
-
}, tsconfigJson?: {
|
|
4
|
-
compilerOptions?: {
|
|
5
|
-
module?: string;
|
|
6
|
-
};
|
|
7
|
-
}): Promise<void>;
|
|
1
|
+
export * from 'gt/next/parse/handleInitGT';
|
|
@@ -1,157 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { parse } from '@babel/parser';
|
|
3
|
-
import generateModule from '@babel/generator';
|
|
4
|
-
import traverseModule from '@babel/traverse';
|
|
5
|
-
// Handle CommonJS/ESM interop
|
|
6
|
-
const traverse = traverseModule.default || traverseModule;
|
|
7
|
-
const generate = generateModule.default || generateModule;
|
|
8
|
-
import * as t from '@babel/types';
|
|
9
|
-
import { logger } from '../../console/logger.js';
|
|
10
|
-
import { needsCJS } from '../../utils/parse/needsCJS.js';
|
|
11
|
-
export async function handleInitGT(filepath, errors, warnings, filesUpdated, packageJson, tsconfigJson) {
|
|
12
|
-
const code = await fs.promises.readFile(filepath, 'utf8');
|
|
13
|
-
let ast;
|
|
14
|
-
try {
|
|
15
|
-
ast = parse(code, {
|
|
16
|
-
sourceType: 'module',
|
|
17
|
-
plugins: ['jsx', 'typescript'],
|
|
18
|
-
tokens: true,
|
|
19
|
-
createParenthesizedExpressions: true,
|
|
20
|
-
});
|
|
21
|
-
// Get cjs or esm
|
|
22
|
-
const cjsEnabled = needsCJS({
|
|
23
|
-
ast,
|
|
24
|
-
warnings,
|
|
25
|
-
filepath,
|
|
26
|
-
packageJson,
|
|
27
|
-
tsconfigJson,
|
|
28
|
-
});
|
|
29
|
-
// Check if withGTConfig or initGT is already imported/required
|
|
30
|
-
let hasGTConfig = false;
|
|
31
|
-
let hasInitGT = false;
|
|
32
|
-
traverse(ast, {
|
|
33
|
-
ImportDeclaration(path) {
|
|
34
|
-
if (path.node.source.value === 'gt-next/config') {
|
|
35
|
-
path.node.specifiers.forEach((spec) => {
|
|
36
|
-
if (t.isImportSpecifier(spec)) {
|
|
37
|
-
if (spec.local.name === 'withGTConfig')
|
|
38
|
-
hasGTConfig = true;
|
|
39
|
-
if (spec.local.name === 'initGT')
|
|
40
|
-
hasInitGT = true;
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
VariableDeclaration(path) {
|
|
46
|
-
path.node.declarations.forEach((dec) => {
|
|
47
|
-
if (t.isVariableDeclarator(dec)) {
|
|
48
|
-
// Handle destructuring: const { withGTConfig } = require('gt-next/config')
|
|
49
|
-
if (t.isCallExpression(dec.init) &&
|
|
50
|
-
t.isIdentifier(dec.init.callee, { name: 'require' }) &&
|
|
51
|
-
t.isStringLiteral(dec.init.arguments[0], {
|
|
52
|
-
value: 'gt-next/config',
|
|
53
|
-
})) {
|
|
54
|
-
// Handle simple assignment: const withGTConfig = require(...)
|
|
55
|
-
if (t.isIdentifier(dec.id, { name: 'withGTConfig' }))
|
|
56
|
-
hasGTConfig = true;
|
|
57
|
-
if (t.isIdentifier(dec.id, { name: 'initGT' }))
|
|
58
|
-
hasInitGT = true;
|
|
59
|
-
// Handle destructuring: const { withGTConfig } = require(...)
|
|
60
|
-
if (t.isObjectPattern(dec.id)) {
|
|
61
|
-
dec.id.properties.forEach((prop) => {
|
|
62
|
-
if (t.isObjectProperty(prop) &&
|
|
63
|
-
t.isIdentifier(prop.key) &&
|
|
64
|
-
t.isIdentifier(prop.value)) {
|
|
65
|
-
if (prop.key.name === 'withGTConfig')
|
|
66
|
-
hasGTConfig = true;
|
|
67
|
-
if (prop.key.name === 'initGT')
|
|
68
|
-
hasInitGT = true;
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
// Handle member access: const withGTConfig = require('gt-next/config').withGTConfig
|
|
74
|
-
else if (t.isMemberExpression(dec.init) &&
|
|
75
|
-
t.isCallExpression(dec.init.object) &&
|
|
76
|
-
t.isIdentifier(dec.init.object.callee, { name: 'require' }) &&
|
|
77
|
-
t.isStringLiteral(dec.init.object.arguments[0], {
|
|
78
|
-
value: 'gt-next/config',
|
|
79
|
-
})) {
|
|
80
|
-
if (t.isIdentifier(dec.id, { name: 'withGTConfig' }) &&
|
|
81
|
-
t.isIdentifier(dec.init.property, { name: 'withGTConfig' })) {
|
|
82
|
-
hasGTConfig = true;
|
|
83
|
-
}
|
|
84
|
-
if (t.isIdentifier(dec.id, { name: 'initGT' }) &&
|
|
85
|
-
t.isIdentifier(dec.init.property, { name: 'initGT' })) {
|
|
86
|
-
hasInitGT = true;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
},
|
|
92
|
-
});
|
|
93
|
-
// Return early if either withGTConfig or initGT is already present
|
|
94
|
-
if (hasGTConfig || hasInitGT) {
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
ast.program.body.unshift(cjsEnabled
|
|
98
|
-
? t.variableDeclaration('const', [
|
|
99
|
-
t.variableDeclarator(t.identifier('withGTConfig'), t.memberExpression(t.callExpression(t.identifier('require'), [
|
|
100
|
-
t.stringLiteral('gt-next/config'),
|
|
101
|
-
]), t.identifier('withGTConfig'))),
|
|
102
|
-
])
|
|
103
|
-
: t.importDeclaration([
|
|
104
|
-
t.importSpecifier(t.identifier('withGTConfig'), t.identifier('withGTConfig')),
|
|
105
|
-
], t.stringLiteral('gt-next/config')));
|
|
106
|
-
// Find and transform the default export
|
|
107
|
-
traverse(ast, {
|
|
108
|
-
ExportDefaultDeclaration(path) {
|
|
109
|
-
const oldExport = path.node.declaration;
|
|
110
|
-
let exportExpression;
|
|
111
|
-
if (t.isFunctionDeclaration(oldExport)) {
|
|
112
|
-
exportExpression = t.functionExpression(oldExport.id, oldExport.params, oldExport.body, oldExport.generator, oldExport.async);
|
|
113
|
-
}
|
|
114
|
-
else if (t.isClassDeclaration(oldExport)) {
|
|
115
|
-
exportExpression = t.classExpression(oldExport.id, oldExport.superClass, oldExport.body, oldExport.decorators);
|
|
116
|
-
}
|
|
117
|
-
else if (t.isTSDeclareFunction(oldExport)) {
|
|
118
|
-
// For TypeScript declare functions, create an empty function expression
|
|
119
|
-
// since declare functions don't have a runtime implementation
|
|
120
|
-
warnings.push(`Found TypeScript declare function in ${filepath}. Converting to empty function.`);
|
|
121
|
-
exportExpression = t.functionExpression(oldExport.id, oldExport.params, t.blockStatement([]), false, false);
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
exportExpression = oldExport;
|
|
125
|
-
}
|
|
126
|
-
// Validate that we have a valid Next.js config export
|
|
127
|
-
if (!t.isObjectExpression(exportExpression) &&
|
|
128
|
-
!t.isFunctionExpression(exportExpression) &&
|
|
129
|
-
!t.isArrowFunctionExpression(exportExpression)) {
|
|
130
|
-
warnings.push(`Unexpected export type in ${filepath}. Next.js config should export an object or a function returning an object.`);
|
|
131
|
-
}
|
|
132
|
-
path.node.declaration = t.callExpression(t.identifier('withGTConfig'), [
|
|
133
|
-
exportExpression,
|
|
134
|
-
t.objectExpression([]),
|
|
135
|
-
]);
|
|
136
|
-
},
|
|
137
|
-
});
|
|
138
|
-
// Generate the modified code
|
|
139
|
-
const output = generate(ast, {
|
|
140
|
-
retainLines: true,
|
|
141
|
-
retainFunctionParens: true,
|
|
142
|
-
comments: true,
|
|
143
|
-
compact: 'auto',
|
|
144
|
-
}, code);
|
|
145
|
-
// Post-process the output to fix import spacing
|
|
146
|
-
let processedCode = output.code;
|
|
147
|
-
// Add newline after the comment only
|
|
148
|
-
processedCode = processedCode.replace(/((?:import\s*{\s*withGTConfig\s*}\s*from|const\s*{\s*withGTConfig\s*}\s*=\s*require)\s*['"]gt-next\/config['"];?)/, '$1\n');
|
|
149
|
-
// Write the modified code back to the file
|
|
150
|
-
await fs.promises.writeFile(filepath, processedCode);
|
|
151
|
-
filesUpdated.push(filepath);
|
|
152
|
-
}
|
|
153
|
-
catch (error) {
|
|
154
|
-
logger.error(`Error parsing file ${filepath}: ${error}`);
|
|
155
|
-
errors.push(`Failed to parse ${filepath}: ${error}`);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
1
|
+
export * from 'gt/next/parse/handleInitGT';
|
|
@@ -1,12 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { Libraries } from '../../types/libraries.js';
|
|
3
|
-
/**
|
|
4
|
-
* Wraps all JSX elements in the src directory with a <T> tag, with unique ids.
|
|
5
|
-
* - Ignores pure strings
|
|
6
|
-
*
|
|
7
|
-
* @param options - The options object
|
|
8
|
-
* @returns An object containing the updates and errors
|
|
9
|
-
*/
|
|
10
|
-
export declare function wrapContentNext(options: WrapOptions, pkg: `${typeof Libraries.GT_NEXT}`, errors: string[], warnings: string[]): Promise<{
|
|
11
|
-
filesUpdated: string[];
|
|
12
|
-
}>;
|
|
1
|
+
export * from 'gt/next/parse/wrapContent';
|