gtx-cli 2.6.29 → 2.6.30-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -3
- package/dist/bin/bin-entry.js +2 -1
- package/dist/functions.d.ts +1 -7
- package/dist/functions.js +1 -6
- package/dist/index.d.ts +1 -4
- package/dist/index.js +1 -27
- package/dist/main.js +2 -2
- package/package.json +9 -60
- package/CHANGELOG.md +0 -1255
- package/dist/api/collectUserEditDiffs.d.ts +0 -9
- package/dist/api/collectUserEditDiffs.js +0 -159
- package/dist/api/downloadFileBatch.d.ts +0 -23
- package/dist/api/downloadFileBatch.js +0 -190
- package/dist/api/saveLocalEdits.d.ts +0 -6
- package/dist/api/saveLocalEdits.js +0 -38
- package/dist/cli/base.d.ts +0 -59
- package/dist/cli/base.js +0 -529
- package/dist/cli/commands/download.d.ts +0 -8
- package/dist/cli/commands/download.js +0 -51
- package/dist/cli/commands/enqueue.d.ts +0 -9
- package/dist/cli/commands/enqueue.js +0 -27
- package/dist/cli/commands/setupProject.d.ts +0 -7
- package/dist/cli/commands/setupProject.js +0 -37
- package/dist/cli/commands/stage.d.ts +0 -9
- package/dist/cli/commands/stage.js +0 -59
- package/dist/cli/commands/translate.d.ts +0 -7
- package/dist/cli/commands/translate.js +0 -70
- package/dist/cli/commands/upload.d.ts +0 -13
- package/dist/cli/commands/upload.js +0 -142
- package/dist/cli/commands/utils/validation.d.ts +0 -13
- package/dist/cli/commands/utils/validation.js +0 -38
- package/dist/cli/flags.d.ts +0 -15
- package/dist/cli/flags.js +0 -70
- package/dist/cli/inline.d.ts +0 -17
- package/dist/cli/inline.js +0 -135
- package/dist/cli/next.d.ts +0 -10
- package/dist/cli/next.js +0 -12
- package/dist/cli/node.d.ts +0 -10
- package/dist/cli/node.js +0 -9
- package/dist/cli/react.d.ts +0 -12
- package/dist/cli/react.js +0 -72
- package/dist/config/generateSettings.d.ts +0 -9
- package/dist/config/generateSettings.js +0 -214
- package/dist/config/optionPresets.d.ts +0 -3
- package/dist/config/optionPresets.js +0 -65
- package/dist/config/resolveConfig.d.ts +0 -4
- package/dist/config/resolveConfig.js +0 -33
- package/dist/config/utils.d.ts +0 -2
- package/dist/config/utils.js +0 -4
- package/dist/config/validateSettings.d.ts +0 -3
- package/dist/config/validateSettings.js +0 -32
- package/dist/console/colors.d.ts +0 -6
- package/dist/console/colors.js +0 -19
- package/dist/console/displayTranslateSummary.d.ts +0 -1
- package/dist/console/displayTranslateSummary.js +0 -42
- package/dist/console/formatting.d.ts +0 -1
- package/dist/console/formatting.js +0 -7
- package/dist/console/index.d.ts +0 -33
- package/dist/console/index.js +0 -44
- package/dist/console/logger.d.ts +0 -35
- package/dist/console/logger.js +0 -250
- package/dist/console/logging.d.ts +0 -52
- package/dist/console/logging.js +0 -175
- package/dist/formats/files/aggregateFiles.d.ts +0 -4
- package/dist/formats/files/aggregateFiles.js +0 -173
- package/dist/formats/files/collectFiles.d.ts +0 -6
- package/dist/formats/files/collectFiles.js +0 -49
- package/dist/formats/files/convertToFileTranslationData.d.ts +0 -15
- package/dist/formats/files/convertToFileTranslationData.js +0 -21
- package/dist/formats/files/fileMapping.d.ts +0 -11
- package/dist/formats/files/fileMapping.js +0 -115
- package/dist/formats/files/save.d.ts +0 -5
- package/dist/formats/files/save.js +0 -17
- package/dist/formats/files/supportedFiles.d.ts +0 -11
- package/dist/formats/files/supportedFiles.js +0 -20
- package/dist/formats/json/extractJson.d.ts +0 -15
- package/dist/formats/json/extractJson.js +0 -101
- package/dist/formats/json/flattenJson.d.ts +0 -14
- package/dist/formats/json/flattenJson.js +0 -64
- package/dist/formats/json/mergeJson.d.ts +0 -13
- package/dist/formats/json/mergeJson.js +0 -367
- package/dist/formats/json/parseJson.d.ts +0 -2
- package/dist/formats/json/parseJson.js +0 -109
- package/dist/formats/json/utils.d.ts +0 -47
- package/dist/formats/json/utils.js +0 -150
- package/dist/formats/utils.d.ts +0 -2
- package/dist/formats/utils.js +0 -24
- package/dist/formats/yaml/mergeYaml.d.ts +0 -5
- package/dist/formats/yaml/mergeYaml.js +0 -61
- package/dist/formats/yaml/parseYaml.d.ts +0 -5
- package/dist/formats/yaml/parseYaml.js +0 -24
- package/dist/formats/yaml/utils.d.ts +0 -2
- package/dist/formats/yaml/utils.js +0 -23
- package/dist/fs/clearLocaleDirs.d.ts +0 -8
- package/dist/fs/clearLocaleDirs.js +0 -126
- package/dist/fs/config/downloadedVersions.d.ts +0 -21
- package/dist/fs/config/downloadedVersions.js +0 -50
- package/dist/fs/config/loadConfig.d.ts +0 -1
- package/dist/fs/config/loadConfig.js +0 -9
- package/dist/fs/config/parseFilesConfig.d.ts +0 -27
- package/dist/fs/config/parseFilesConfig.js +0 -150
- package/dist/fs/config/setupConfig.d.ts +0 -17
- package/dist/fs/config/setupConfig.js +0 -50
- package/dist/fs/config/updateConfig.d.ts +0 -21
- package/dist/fs/config/updateConfig.js +0 -57
- package/dist/fs/config/updateVersions.d.ts +0 -11
- package/dist/fs/config/updateVersions.js +0 -30
- package/dist/fs/copyFile.d.ts +0 -7
- package/dist/fs/copyFile.js +0 -39
- package/dist/fs/createLoadTranslationsFile.d.ts +0 -1
- package/dist/fs/createLoadTranslationsFile.js +0 -49
- package/dist/fs/determineFramework.d.ts +0 -5
- package/dist/fs/determineFramework.js +0 -53
- package/dist/fs/findFilepath.d.ts +0 -36
- package/dist/fs/findFilepath.js +0 -90
- package/dist/fs/index.d.ts +0 -1
- package/dist/fs/index.js +0 -1
- package/dist/fs/loadJSON.d.ts +0 -6
- package/dist/fs/loadJSON.js +0 -17
- package/dist/fs/matchFiles.d.ts +0 -1
- package/dist/fs/matchFiles.js +0 -8
- package/dist/fs/saveJSON.d.ts +0 -1
- package/dist/fs/saveJSON.js +0 -7
- package/dist/fs/utils.d.ts +0 -1
- package/dist/fs/utils.js +0 -16
- package/dist/generated/version.d.ts +0 -1
- package/dist/generated/version.js +0 -2
- package/dist/git/branches.d.ts +0 -7
- package/dist/git/branches.js +0 -88
- package/dist/hooks/postProcess.d.ts +0 -4
- package/dist/hooks/postProcess.js +0 -110
- package/dist/locadex/setupFlow.d.ts +0 -2
- package/dist/locadex/setupFlow.js +0 -9
- package/dist/next/config/parseNextConfig.d.ts +0 -10
- package/dist/next/config/parseNextConfig.js +0 -53
- package/dist/next/jsx/utils.d.ts +0 -7
- package/dist/next/jsx/utils.js +0 -42
- package/dist/next/parse/handleInitGT.d.ts +0 -7
- package/dist/next/parse/handleInitGT.js +0 -157
- package/dist/next/parse/wrapContent.d.ts +0 -12
- package/dist/next/parse/wrapContent.js +0 -164
- package/dist/react/config/createESBuildConfig.d.ts +0 -2
- package/dist/react/config/createESBuildConfig.js +0 -119
- package/dist/react/jsx/evaluateJsx.d.ts +0 -24
- package/dist/react/jsx/evaluateJsx.js +0 -123
- package/dist/react/jsx/utils/buildImportMap.d.ts +0 -9
- package/dist/react/jsx/utils/buildImportMap.js +0 -30
- package/dist/react/jsx/utils/constants.d.ts +0 -13
- package/dist/react/jsx/utils/constants.js +0 -46
- package/dist/react/jsx/utils/getCalleeNameFromExpression.d.ts +0 -9
- package/dist/react/jsx/utils/getCalleeNameFromExpression.js +0 -32
- package/dist/react/jsx/utils/getPathsAndAliases.d.ts +0 -21
- package/dist/react/jsx/utils/getPathsAndAliases.js +0 -91
- package/dist/react/jsx/utils/isNumberLiteral.d.ts +0 -7
- package/dist/react/jsx/utils/isNumberLiteral.js +0 -13
- package/dist/react/jsx/utils/jsxParsing/addGTIdentifierToSyntaxTree.d.ts +0 -9
- package/dist/react/jsx/utils/jsxParsing/addGTIdentifierToSyntaxTree.js +0 -135
- package/dist/react/jsx/utils/jsxParsing/handleChildrenWhitespace.d.ts +0 -6
- package/dist/react/jsx/utils/jsxParsing/handleChildrenWhitespace.js +0 -197
- package/dist/react/jsx/utils/jsxParsing/multiplication/findMultiplicationNode.d.ts +0 -13
- package/dist/react/jsx/utils/jsxParsing/multiplication/findMultiplicationNode.js +0 -42
- package/dist/react/jsx/utils/jsxParsing/multiplication/multiplyJsxTree.d.ts +0 -5
- package/dist/react/jsx/utils/jsxParsing/multiplication/multiplyJsxTree.js +0 -69
- package/dist/react/jsx/utils/jsxParsing/parseJsx.d.ts +0 -33
- package/dist/react/jsx/utils/jsxParsing/parseJsx.js +0 -912
- package/dist/react/jsx/utils/jsxParsing/parseTProps.d.ts +0 -8
- package/dist/react/jsx/utils/jsxParsing/parseTProps.js +0 -65
- package/dist/react/jsx/utils/jsxParsing/removeNullChildrenFields.d.ts +0 -2
- package/dist/react/jsx/utils/jsxParsing/removeNullChildrenFields.js +0 -61
- package/dist/react/jsx/utils/jsxParsing/types.d.ts +0 -48
- package/dist/react/jsx/utils/jsxParsing/types.js +0 -34
- package/dist/react/jsx/utils/mapAttributeName.d.ts +0 -11
- package/dist/react/jsx/utils/mapAttributeName.js +0 -12
- package/dist/react/jsx/utils/parseAst.d.ts +0 -31
- package/dist/react/jsx/utils/parseAst.js +0 -278
- package/dist/react/jsx/utils/parseDeclareStatic.d.ts +0 -15
- package/dist/react/jsx/utils/parseDeclareStatic.js +0 -540
- package/dist/react/jsx/utils/parseString.d.ts +0 -25
- package/dist/react/jsx/utils/parseString.js +0 -540
- package/dist/react/jsx/utils/parseStringFunction.d.ts +0 -30
- package/dist/react/jsx/utils/parseStringFunction.js +0 -348
- package/dist/react/jsx/utils/resolveImportPath.d.ts +0 -11
- package/dist/react/jsx/utils/resolveImportPath.js +0 -111
- package/dist/react/jsx/utils/stringParsing/processTranslationCall/extractStringEntryMetadata.d.ts +0 -29
- package/dist/react/jsx/utils/stringParsing/processTranslationCall/extractStringEntryMetadata.js +0 -86
- package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleInvalidTranslationCall.d.ts +0 -14
- package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleInvalidTranslationCall.js +0 -24
- package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleLiteralTranslationCall.d.ts +0 -19
- package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleLiteralTranslationCall.js +0 -31
- package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleStaticTranslationCall.d.ts +0 -22
- package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleStaticTranslationCall.js +0 -51
- package/dist/react/jsx/utils/stringParsing/processTranslationCall/index.d.ts +0 -18
- package/dist/react/jsx/utils/stringParsing/processTranslationCall/index.js +0 -39
- package/dist/react/jsx/utils/stringParsing/processTranslationCall/routeTranslationCall.d.ts +0 -24
- package/dist/react/jsx/utils/stringParsing/processTranslationCall/routeTranslationCall.js +0 -68
- package/dist/react/jsx/utils/stringParsing/types.d.ts +0 -41
- package/dist/react/jsx/utils/stringParsing/types.js +0 -1
- package/dist/react/jsx/utils/types.d.ts +0 -14
- package/dist/react/jsx/utils/types.js +0 -1
- package/dist/react/jsx/utils/validateStringFunction.d.ts +0 -7
- package/dist/react/jsx/utils/validateStringFunction.js +0 -31
- package/dist/react/jsx/wrapJsx.d.ts +0 -51
- package/dist/react/jsx/wrapJsx.js +0 -387
- package/dist/react/parse/addVitePlugin/index.d.ts +0 -22
- package/dist/react/parse/addVitePlugin/index.js +0 -41
- package/dist/react/parse/addVitePlugin/installCompiler.d.ts +0 -8
- package/dist/react/parse/addVitePlugin/installCompiler.js +0 -22
- package/dist/react/parse/addVitePlugin/updateViteConfig.d.ts +0 -19
- package/dist/react/parse/addVitePlugin/updateViteConfig.js +0 -120
- package/dist/react/parse/addVitePlugin/utils/addCompilerImport.d.ts +0 -9
- package/dist/react/parse/addVitePlugin/utils/addCompilerImport.js +0 -34
- package/dist/react/parse/addVitePlugin/utils/addPluginInvocation.d.ts +0 -11
- package/dist/react/parse/addVitePlugin/utils/addPluginInvocation.js +0 -48
- package/dist/react/parse/addVitePlugin/utils/checkCompilerImport.d.ts +0 -15
- package/dist/react/parse/addVitePlugin/utils/checkCompilerImport.js +0 -113
- package/dist/react/parse/addVitePlugin/utils/checkPluginInvocation.d.ts +0 -12
- package/dist/react/parse/addVitePlugin/utils/checkPluginInvocation.js +0 -32
- package/dist/react/parse/createDictionaryUpdates.d.ts +0 -3
- package/dist/react/parse/createDictionaryUpdates.js +0 -187
- package/dist/react/parse/createInlineUpdates.d.ts +0 -13
- package/dist/react/parse/createInlineUpdates.js +0 -161
- package/dist/react/parse/wrapContent.d.ts +0 -12
- package/dist/react/parse/wrapContent.js +0 -162
- package/dist/react/utils/flattenDictionary.d.ts +0 -20
- package/dist/react/utils/flattenDictionary.js +0 -75
- package/dist/react/utils/getEntryAndMetadata.d.ts +0 -5
- package/dist/react/utils/getEntryAndMetadata.js +0 -11
- package/dist/react/utils/getVariableName.d.ts +0 -25
- package/dist/react/utils/getVariableName.js +0 -37
- package/dist/setup/agentInstructions.d.ts +0 -24
- package/dist/setup/agentInstructions.js +0 -138
- package/dist/setup/detectFramework.d.ts +0 -31
- package/dist/setup/detectFramework.js +0 -106
- package/dist/setup/frameworkUtils.d.ts +0 -3
- package/dist/setup/frameworkUtils.js +0 -30
- package/dist/setup/instructions/base.md +0 -29
- package/dist/setup/instructions/gt-next.md +0 -107
- package/dist/setup/instructions/gt-react.md +0 -98
- package/dist/setup/userInput.d.ts +0 -4
- package/dist/setup/userInput.js +0 -32
- package/dist/setup/wizard.d.ts +0 -3
- package/dist/setup/wizard.js +0 -147
- package/dist/state/recentDownloads.d.ts +0 -12
- package/dist/state/recentDownloads.js +0 -18
- package/dist/state/translateWarnings.d.ts +0 -10
- package/dist/state/translateWarnings.js +0 -13
- package/dist/translation/parse.d.ts +0 -17
- package/dist/translation/parse.js +0 -77
- package/dist/translation/stage.d.ts +0 -3
- package/dist/translation/stage.js +0 -44
- package/dist/translation/validate.d.ts +0 -14
- package/dist/translation/validate.js +0 -100
- package/dist/types/branch.d.ts +0 -14
- package/dist/types/branch.js +0 -1
- package/dist/types/data/json.d.ts +0 -6
- package/dist/types/data/json.js +0 -1
- package/dist/types/data.d.ts +0 -37
- package/dist/types/data.js +0 -1
- package/dist/types/files.d.ts +0 -8
- package/dist/types/files.js +0 -1
- package/dist/types/index.d.ts +0 -243
- package/dist/types/index.js +0 -1
- package/dist/types/libraries.d.ts +0 -31
- package/dist/types/libraries.js +0 -72
- package/dist/types/parsing.d.ts +0 -3
- package/dist/types/parsing.js +0 -1
- package/dist/utils/addExplicitAnchorIds.d.ts +0 -24
- package/dist/utils/addExplicitAnchorIds.js +0 -416
- package/dist/utils/constants.d.ts +0 -5
- package/dist/utils/constants.js +0 -6
- package/dist/utils/credentials.d.ts +0 -12
- package/dist/utils/credentials.js +0 -120
- package/dist/utils/flattenJsonFiles.d.ts +0 -2
- package/dist/utils/flattenJsonFiles.js +0 -36
- package/dist/utils/gitDiff.d.ts +0 -8
- package/dist/utils/gitDiff.js +0 -34
- package/dist/utils/gt.d.ts +0 -2
- package/dist/utils/gt.js +0 -2
- package/dist/utils/hash.d.ts +0 -6
- package/dist/utils/hash.js +0 -11
- package/dist/utils/headers.d.ts +0 -1
- package/dist/utils/headers.js +0 -14
- package/dist/utils/installPackage.d.ts +0 -3
- package/dist/utils/installPackage.js +0 -77
- package/dist/utils/localizeRelativeAssets.d.ts +0 -8
- package/dist/utils/localizeRelativeAssets.js +0 -166
- package/dist/utils/localizeStaticImports.d.ts +0 -15
- package/dist/utils/localizeStaticImports.js +0 -397
- package/dist/utils/localizeStaticUrls.d.ts +0 -19
- package/dist/utils/localizeStaticUrls.js +0 -450
- package/dist/utils/mintlifyTitleFallback.d.ts +0 -6
- package/dist/utils/mintlifyTitleFallback.js +0 -80
- package/dist/utils/packageInfo.d.ts +0 -3
- package/dist/utils/packageInfo.js +0 -17
- package/dist/utils/packageJson.d.ts +0 -6
- package/dist/utils/packageJson.js +0 -68
- package/dist/utils/packageManager.d.ts +0 -28
- package/dist/utils/packageManager.js +0 -269
- package/dist/utils/parse/needsCJS.d.ts +0 -20
- package/dist/utils/parse/needsCJS.js +0 -72
- package/dist/utils/persistPostprocessHashes.d.ts +0 -12
- package/dist/utils/persistPostprocessHashes.js +0 -39
- package/dist/utils/processAnchorIds.d.ts +0 -6
- package/dist/utils/processAnchorIds.js +0 -56
- package/dist/utils/processOpenApi.d.ts +0 -8
- package/dist/utils/processOpenApi.js +0 -651
- package/dist/utils/sanitizeFileContent.d.ts +0 -6
- package/dist/utils/sanitizeFileContent.js +0 -29
- package/dist/utils/sharedStaticAssets.d.ts +0 -9
- package/dist/utils/sharedStaticAssets.js +0 -384
- package/dist/utils/validateMdx.d.ts +0 -10
- package/dist/utils/validateMdx.js +0 -25
- package/dist/workflows/download.d.ts +0 -32
- package/dist/workflows/download.js +0 -127
- package/dist/workflows/enqueue.d.ts +0 -17
- package/dist/workflows/enqueue.js +0 -59
- package/dist/workflows/setupProject.d.ts +0 -13
- package/dist/workflows/setupProject.js +0 -48
- package/dist/workflows/stage.d.ts +0 -18
- package/dist/workflows/stage.js +0 -59
- package/dist/workflows/steps/BranchStep.d.ts +0 -13
- package/dist/workflows/steps/BranchStep.js +0 -161
- package/dist/workflows/steps/DownloadStep.d.ts +0 -19
- package/dist/workflows/steps/DownloadStep.js +0 -131
- package/dist/workflows/steps/EnqueueStep.d.ts +0 -15
- package/dist/workflows/steps/EnqueueStep.js +0 -33
- package/dist/workflows/steps/PollJobsStep.d.ts +0 -31
- package/dist/workflows/steps/PollJobsStep.js +0 -288
- package/dist/workflows/steps/SetupStep.d.ts +0 -16
- package/dist/workflows/steps/SetupStep.js +0 -72
- package/dist/workflows/steps/UploadSourcesStep.d.ts +0 -27
- package/dist/workflows/steps/UploadSourcesStep.js +0 -131
- package/dist/workflows/steps/UploadTranslationsStep.d.ts +0 -22
- package/dist/workflows/steps/UploadTranslationsStep.js +0 -71
- package/dist/workflows/steps/UserEditDiffsStep.d.ts +0 -11
- package/dist/workflows/steps/UserEditDiffsStep.js +0 -30
- package/dist/workflows/steps/WorkflowStep.d.ts +0 -4
- package/dist/workflows/steps/WorkflowStep.js +0 -2
- package/dist/workflows/upload.d.ts +0 -15
- package/dist/workflows/upload.js +0 -47
package/dist/fs/matchFiles.js
DELETED
package/dist/fs/saveJSON.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function saveJSON(filepath: string, data: Record<string, any>): Promise<void>;
|
package/dist/fs/saveJSON.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import path from 'node:path';
|
|
2
|
-
import fs from 'node:fs';
|
|
3
|
-
export async function saveJSON(filepath, data) {
|
|
4
|
-
// Ensure directory exists
|
|
5
|
-
await fs.promises.mkdir(path.dirname(filepath), { recursive: true });
|
|
6
|
-
await fs.promises.writeFile(filepath, JSON.stringify(data, null, 2));
|
|
7
|
-
}
|
package/dist/fs/utils.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function resolveProjectId(): string | undefined;
|
package/dist/fs/utils.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export function resolveProjectId() {
|
|
2
|
-
const CANDIDATES = [
|
|
3
|
-
process.env.GT_PROJECT_ID, // any server side, Remix
|
|
4
|
-
process.env.NEXT_PUBLIC_GT_PROJECT_ID, // Next.js
|
|
5
|
-
process.env.VITE_GT_PROJECT_ID, // Vite
|
|
6
|
-
process.env.REACT_APP_GT_PROJECT_ID, // Create React App
|
|
7
|
-
process.env.REDWOOD_ENV_GT_PROJECT_ID, // RedwoodJS
|
|
8
|
-
process.env.GATSBY_GT_PROJECT_ID, // Gatsby
|
|
9
|
-
process.env.EXPO_PUBLIC_GT_PROJECT_ID, // Expo (React Native)
|
|
10
|
-
process.env.RAZZLE_GT_PROJECT_ID, // Razzle
|
|
11
|
-
process.env.UMI_GT_PROJECT_ID, // UmiJS
|
|
12
|
-
process.env.BLITZ_PUBLIC_GT_PROJECT_ID, // Blitz.js
|
|
13
|
-
process.env.PUBLIC_GT_PROJECT_ID, // WMR, Qwik (general "public" convention)
|
|
14
|
-
];
|
|
15
|
-
return CANDIDATES.find((projectId) => projectId !== undefined);
|
|
16
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const PACKAGE_VERSION = "2.6.29";
|
package/dist/git/branches.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export declare function getCurrentBranch(remoteName: string): Promise<{
|
|
2
|
-
currentBranchName: string;
|
|
3
|
-
defaultBranch: boolean;
|
|
4
|
-
defaultBranchName: string;
|
|
5
|
-
} | null>;
|
|
6
|
-
export declare function getIncomingBranches(remoteName: string): Promise<string[]>;
|
|
7
|
-
export declare function getCheckedOutBranches(remoteName: string): Promise<string[]>;
|
package/dist/git/branches.js
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { execFile } from 'child_process';
|
|
2
|
-
import { promisify } from 'util';
|
|
3
|
-
const execAsync = promisify(execFile);
|
|
4
|
-
const MAX_BRANCHES = 5;
|
|
5
|
-
export async function getCurrentBranch(remoteName) {
|
|
6
|
-
try {
|
|
7
|
-
const { stdout } = await execAsync('git', ['rev-parse', '--abbrev-ref', 'HEAD'], {
|
|
8
|
-
encoding: 'utf8',
|
|
9
|
-
windowsHide: true,
|
|
10
|
-
});
|
|
11
|
-
const currentBranchName = stdout.trim();
|
|
12
|
-
// Get the default branch (usually main or master)
|
|
13
|
-
const { stdout: defaultBranchRef } = await execAsync('git', ['symbolic-ref', `refs/remotes/${remoteName}/HEAD`], { encoding: 'utf8', windowsHide: true });
|
|
14
|
-
const defaultBranchName = defaultBranchRef
|
|
15
|
-
.trim()
|
|
16
|
-
.replace(`refs/remotes/${remoteName}/`, '');
|
|
17
|
-
const defaultBranch = currentBranchName === defaultBranchName;
|
|
18
|
-
return { currentBranchName, defaultBranch, defaultBranchName };
|
|
19
|
-
}
|
|
20
|
-
catch {
|
|
21
|
-
return null;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
export async function getIncomingBranches(remoteName) {
|
|
25
|
-
try {
|
|
26
|
-
// Get merge commits into the current branch
|
|
27
|
-
const { stdout } = await execAsync('git', [
|
|
28
|
-
'log',
|
|
29
|
-
'--merges',
|
|
30
|
-
'--first-parent',
|
|
31
|
-
'--pretty=format:%s',
|
|
32
|
-
`-${MAX_BRANCHES}`,
|
|
33
|
-
], {
|
|
34
|
-
encoding: 'utf8',
|
|
35
|
-
windowsHide: true,
|
|
36
|
-
});
|
|
37
|
-
if (!stdout.trim()) {
|
|
38
|
-
return [];
|
|
39
|
-
}
|
|
40
|
-
const branches = [];
|
|
41
|
-
const lines = stdout.trim().split('\n');
|
|
42
|
-
for (const line of lines) {
|
|
43
|
-
// Parse merge commit messages:
|
|
44
|
-
// - "Merge branch 'feature-name'" or "Merge branch 'feature-name' into main"
|
|
45
|
-
// - "Merge pull request #123 from user/branch-name"
|
|
46
|
-
const branchMatch = line.match(/Merge branch '([^']+)'/);
|
|
47
|
-
const prMatch = line.match(/Merge pull request #\d+ from [^/]+\/(.+)/);
|
|
48
|
-
if (branchMatch && branchMatch[1]) {
|
|
49
|
-
branches.push(branchMatch[1]);
|
|
50
|
-
}
|
|
51
|
-
else if (prMatch && prMatch[1]) {
|
|
52
|
-
branches.push(prMatch[1]);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
return branches.slice(0, MAX_BRANCHES);
|
|
56
|
-
}
|
|
57
|
-
catch {
|
|
58
|
-
// If log fails or no merges found, return empty array
|
|
59
|
-
return [];
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
export async function getCheckedOutBranches(remoteName) {
|
|
63
|
-
try {
|
|
64
|
-
// Get current branch
|
|
65
|
-
const currentBranchResult = await getCurrentBranch(remoteName);
|
|
66
|
-
if (!currentBranchResult) {
|
|
67
|
-
return [];
|
|
68
|
-
}
|
|
69
|
-
// If we're already on the default branch, return empty
|
|
70
|
-
if (currentBranchResult.defaultBranch) {
|
|
71
|
-
return [];
|
|
72
|
-
}
|
|
73
|
-
// Check if there's a merge-base (common ancestor) between default branch and current
|
|
74
|
-
// This means the branch was at some point checked out from the default branch
|
|
75
|
-
try {
|
|
76
|
-
await execAsync('git', ['merge-base', currentBranchResult.defaultBranchName, 'HEAD'], { encoding: 'utf8', windowsHide: true });
|
|
77
|
-
// If merge-base exists, the branch shares history with default branch
|
|
78
|
-
return [currentBranchResult.defaultBranchName];
|
|
79
|
-
}
|
|
80
|
-
catch {
|
|
81
|
-
// No common ancestor found
|
|
82
|
-
return [];
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
catch {
|
|
86
|
-
return [];
|
|
87
|
-
}
|
|
88
|
-
}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import fs from 'node:fs';
|
|
2
|
-
import { spawn } from 'node:child_process';
|
|
3
|
-
import chalk from 'chalk';
|
|
4
|
-
import { logger } from '../console/logger.js';
|
|
5
|
-
export async function detectFormatter() {
|
|
6
|
-
// Try Prettier
|
|
7
|
-
try {
|
|
8
|
-
await import('prettier');
|
|
9
|
-
return 'prettier';
|
|
10
|
-
}
|
|
11
|
-
catch { }
|
|
12
|
-
// Try ESLint
|
|
13
|
-
try {
|
|
14
|
-
await import('eslint');
|
|
15
|
-
return 'eslint';
|
|
16
|
-
}
|
|
17
|
-
catch { }
|
|
18
|
-
// Try Biome
|
|
19
|
-
try {
|
|
20
|
-
return await new Promise((resolve, reject) => {
|
|
21
|
-
const child = spawn('npx', ['@biomejs/biome', '--version'], {
|
|
22
|
-
stdio: 'ignore',
|
|
23
|
-
});
|
|
24
|
-
child.on('error', () => {
|
|
25
|
-
resolve(null);
|
|
26
|
-
});
|
|
27
|
-
child.on('close', (code) => {
|
|
28
|
-
if (code === 0) {
|
|
29
|
-
resolve('biome');
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
resolve(null);
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
catch { }
|
|
38
|
-
return null;
|
|
39
|
-
}
|
|
40
|
-
export async function formatFiles(filesUpdated, formatter) {
|
|
41
|
-
if (filesUpdated.length === 0)
|
|
42
|
-
return;
|
|
43
|
-
try {
|
|
44
|
-
const detectedFormatter = formatter || (await detectFormatter());
|
|
45
|
-
if (!detectedFormatter) {
|
|
46
|
-
logger.warn(chalk.yellow('No supported formatter detected'));
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
if (detectedFormatter === 'prettier') {
|
|
50
|
-
logger.message(chalk.dim('Cleaning up with prettier...'));
|
|
51
|
-
const prettier = await import('prettier');
|
|
52
|
-
for (const file of filesUpdated) {
|
|
53
|
-
const config = await prettier.resolveConfig(file);
|
|
54
|
-
const content = await fs.promises.readFile(file, 'utf-8');
|
|
55
|
-
const formatted = await prettier.format(content, {
|
|
56
|
-
...config,
|
|
57
|
-
filepath: file,
|
|
58
|
-
});
|
|
59
|
-
await fs.promises.writeFile(file, formatted);
|
|
60
|
-
}
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
if (detectedFormatter === 'biome') {
|
|
64
|
-
logger.message(chalk.dim('Cleaning up with biome...'));
|
|
65
|
-
try {
|
|
66
|
-
await new Promise((resolve, reject) => {
|
|
67
|
-
const args = [
|
|
68
|
-
'@biomejs/biome',
|
|
69
|
-
'format',
|
|
70
|
-
'--write',
|
|
71
|
-
...filesUpdated.map((file) => file),
|
|
72
|
-
];
|
|
73
|
-
const child = spawn('npx', args, {
|
|
74
|
-
stdio: ['ignore', 'inherit', 'inherit'],
|
|
75
|
-
});
|
|
76
|
-
child.on('error', (error) => {
|
|
77
|
-
logger.warn(chalk.yellow('Biome formatting failed: ' + error.message));
|
|
78
|
-
resolve();
|
|
79
|
-
});
|
|
80
|
-
child.on('close', (code) => {
|
|
81
|
-
if (code !== 0) {
|
|
82
|
-
logger.warn(chalk.yellow(`Biome formatting failed with exit code ${code}`));
|
|
83
|
-
}
|
|
84
|
-
resolve();
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
catch (error) {
|
|
89
|
-
logger.warn(chalk.yellow('Biome formatting failed: ' + String(error)));
|
|
90
|
-
}
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
if (detectedFormatter === 'eslint') {
|
|
94
|
-
logger.message(chalk.dim('Cleaning up with eslint...'));
|
|
95
|
-
const { ESLint } = await import('eslint');
|
|
96
|
-
const eslint = new ESLint({
|
|
97
|
-
fix: true,
|
|
98
|
-
overrideConfigFile: undefined, // Will use project's .eslintrc
|
|
99
|
-
});
|
|
100
|
-
for (const file of filesUpdated) {
|
|
101
|
-
const results = await eslint.lintFiles([file]);
|
|
102
|
-
await ESLint.outputFixes(results);
|
|
103
|
-
}
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
catch (e) {
|
|
108
|
-
logger.warn(chalk.yellow('Unable to run code formatter: ' + String(e)));
|
|
109
|
-
}
|
|
110
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { logger } from '../console/logger.js';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
export async function setupLocadex(settings) {
|
|
4
|
-
const urlToOpen = `${settings.dashboardUrl}/api/integrations/github/start?returnTo=%2Fproject%2Flocadex`;
|
|
5
|
-
await import('open').then((open) => open.default(urlToOpen, {
|
|
6
|
-
wait: false,
|
|
7
|
-
}));
|
|
8
|
-
logger.message(`${chalk.dim(`If the browser window didn't open automatically, please open the following link:`)}\n\n${chalk.cyan(urlToOpen)}`);
|
|
9
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Extracts projectId, defaultLocale, and locales from a next.config.js file.
|
|
3
|
-
* @param {string} filePath - The path to the next.config.js file.
|
|
4
|
-
* @returns {object|null} - An object containing the extracted values or null if none found or incorrect types.
|
|
5
|
-
*/
|
|
6
|
-
export declare function parseNextConfig(filePath: string): Promise<{
|
|
7
|
-
projectId?: string;
|
|
8
|
-
defaultLocale?: string;
|
|
9
|
-
locales?: string[];
|
|
10
|
-
}>;
|
|
@@ -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,157 +0,0 @@
|
|
|
1
|
-
import fs from 'node:fs';
|
|
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,12 +0,0 @@
|
|
|
1
|
-
import { WrapOptions } from '../../types/index.js';
|
|
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
|
-
}>;
|